mirror of
				https://github.com/veops/cmdb.git
				synced 2025-11-04 21:56:16 +08:00 
			
		
		
		
	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:
		@@ -1,4 +1,6 @@
 | 
			
		||||
# -*- coding:utf-8 -*-
 | 
			
		||||
from urllib.parse import urlparse
 | 
			
		||||
 | 
			
		||||
from api.extensions import cache
 | 
			
		||||
from api.models.common_setting import CompanyInfo
 | 
			
		||||
 | 
			
		||||
@@ -11,6 +13,7 @@ class CompanyInfoCRUD(object):
 | 
			
		||||
 | 
			
		||||
    @staticmethod
 | 
			
		||||
    def create(**kwargs):
 | 
			
		||||
        CompanyInfoCRUD.check_data(**kwargs)
 | 
			
		||||
        res = CompanyInfo.create(**kwargs)
 | 
			
		||||
        CompanyInfoCache.refresh(res.info)
 | 
			
		||||
        return res
 | 
			
		||||
@@ -22,10 +25,26 @@ class CompanyInfoCRUD(object):
 | 
			
		||||
        if not existed:
 | 
			
		||||
            existed = CompanyInfoCRUD.create(**kwargs)
 | 
			
		||||
        else:
 | 
			
		||||
            CompanyInfoCRUD.check_data(**kwargs)
 | 
			
		||||
            existed = existed.update(**kwargs)
 | 
			
		||||
        CompanyInfoCache.refresh(existed.info)
 | 
			
		||||
        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):
 | 
			
		||||
    key = 'CompanyInfoCache::'
 | 
			
		||||
@@ -41,4 +60,4 @@ class CompanyInfoCache(object):
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    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:
 | 
			
		||||
                tmp[column] = d.get(column, '')
 | 
			
		||||
            notice_info = d.get('notice_info', {})
 | 
			
		||||
            notice_info = copy.deepcopy(notice_info) if notice_info else {}
 | 
			
		||||
            tmp.update(**notice_info)
 | 
			
		||||
            results.append(tmp)
 | 
			
		||||
        return results
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user