mirror of https://github.com/veops/cmdb.git
fix(api): get_employee_notice check data None (#305)
* fix(api): get_employee_notice check data None * fix(api): remove path when save messager url
This commit is contained in:
parent
093065551b
commit
67d64abf42
|
@ -1,4 +1,6 @@
|
||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
from urllib.parse import urlparse
|
||||||
|
|
||||||
from api.extensions import cache
|
from api.extensions import cache
|
||||||
from api.models.common_setting import CompanyInfo
|
from api.models.common_setting import CompanyInfo
|
||||||
|
|
||||||
|
@ -11,6 +13,7 @@ class CompanyInfoCRUD(object):
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def create(**kwargs):
|
def create(**kwargs):
|
||||||
|
CompanyInfoCRUD.check_data(**kwargs)
|
||||||
res = CompanyInfo.create(**kwargs)
|
res = CompanyInfo.create(**kwargs)
|
||||||
CompanyInfoCache.refresh(res.info)
|
CompanyInfoCache.refresh(res.info)
|
||||||
return res
|
return res
|
||||||
|
@ -22,10 +25,26 @@ class CompanyInfoCRUD(object):
|
||||||
if not existed:
|
if not existed:
|
||||||
existed = CompanyInfoCRUD.create(**kwargs)
|
existed = CompanyInfoCRUD.create(**kwargs)
|
||||||
else:
|
else:
|
||||||
|
CompanyInfoCRUD.check_data(**kwargs)
|
||||||
existed = existed.update(**kwargs)
|
existed = existed.update(**kwargs)
|
||||||
CompanyInfoCache.refresh(existed.info)
|
CompanyInfoCache.refresh(existed.info)
|
||||||
return existed
|
return existed
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def check_data(**kwargs):
|
||||||
|
info = kwargs.get('info', {})
|
||||||
|
info['messenger'] = CompanyInfoCRUD.check_messenger(info.get('messenger', None))
|
||||||
|
|
||||||
|
kwargs['info'] = info
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def check_messenger(messenger):
|
||||||
|
if not messenger:
|
||||||
|
return messenger
|
||||||
|
|
||||||
|
parsed_url = urlparse(messenger)
|
||||||
|
return f"{parsed_url.scheme}://{parsed_url.netloc}"
|
||||||
|
|
||||||
|
|
||||||
class CompanyInfoCache(object):
|
class CompanyInfoCache(object):
|
||||||
key = 'CompanyInfoCache::'
|
key = 'CompanyInfoCache::'
|
||||||
|
@ -41,4 +60,4 @@ class CompanyInfoCache(object):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def refresh(cls, info):
|
def refresh(cls, info):
|
||||||
cache.set(cls.key, info)
|
cache.set(cls.key, info)
|
||||||
|
|
|
@ -563,6 +563,7 @@ class EmployeeCRUD(object):
|
||||||
for column in direct_columns:
|
for column in direct_columns:
|
||||||
tmp[column] = d.get(column, '')
|
tmp[column] = d.get(column, '')
|
||||||
notice_info = d.get('notice_info', {})
|
notice_info = d.get('notice_info', {})
|
||||||
|
notice_info = copy.deepcopy(notice_info) if notice_info else {}
|
||||||
tmp.update(**notice_info)
|
tmp.update(**notice_info)
|
||||||
results.append(tmp)
|
results.append(tmp)
|
||||||
return results
|
return results
|
||||||
|
|
Loading…
Reference in New Issue