mirror of https://github.com/veops/cmdb.git
Merge pull request #162 from simontigers/cmdb_icon_manage
feat: add cmdb custom icon manage
This commit is contained in:
commit
3e6955fc7a
|
@ -0,0 +1,46 @@
|
||||||
|
from flask import abort
|
||||||
|
|
||||||
|
from api.extensions import db
|
||||||
|
from api.lib.common_setting.resp_format import ErrFormat
|
||||||
|
from api.models.common_setting import CommonData
|
||||||
|
|
||||||
|
|
||||||
|
class CommonDataCRUD(object):
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_data_by_type(data_type):
|
||||||
|
return CommonData.get_by(data_type=data_type)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_data_by_id(_id, to_dict=True):
|
||||||
|
return CommonData.get_by(first=True, id=_id, to_dict=to_dict)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def create_new_data(data_type, **kwargs):
|
||||||
|
try:
|
||||||
|
return CommonData.create(data_type=data_type, **kwargs)
|
||||||
|
except Exception as e:
|
||||||
|
db.session.rollback()
|
||||||
|
abort(400, str(e))
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def update_data(_id, **kwargs):
|
||||||
|
existed = CommonDataCRUD.get_data_by_id(_id, to_dict=False)
|
||||||
|
if not existed:
|
||||||
|
abort(404, ErrFormat.common_data_not_found.format(_id))
|
||||||
|
try:
|
||||||
|
return existed.update(**kwargs)
|
||||||
|
except Exception as e:
|
||||||
|
db.session.rollback()
|
||||||
|
abort(400, str(e))
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def delete(_id):
|
||||||
|
existed = CommonDataCRUD.get_data_by_id(_id, to_dict=False)
|
||||||
|
if not existed:
|
||||||
|
abort(404, ErrFormat.common_data_not_found.format(_id))
|
||||||
|
try:
|
||||||
|
existed.soft_delete()
|
||||||
|
except Exception as e:
|
||||||
|
db.session.rollback()
|
||||||
|
abort(400, str(e))
|
|
@ -54,3 +54,4 @@ class ErrFormat(CommonErrFormat):
|
||||||
email_is_required = "邮箱不能为空"
|
email_is_required = "邮箱不能为空"
|
||||||
email_format_error = "邮箱格式错误"
|
email_format_error = "邮箱格式错误"
|
||||||
|
|
||||||
|
common_data_not_found = "ID {} 找不到记录"
|
||||||
|
|
|
@ -80,3 +80,10 @@ class InternalMessage(Model):
|
||||||
category = db.Column(db.VARCHAR(128), nullable=False)
|
category = db.Column(db.VARCHAR(128), nullable=False)
|
||||||
message_data = db.Column(db.JSON, nullable=True)
|
message_data = db.Column(db.JSON, nullable=True)
|
||||||
employee_id = db.Column(db.Integer, db.ForeignKey('common_employee.employee_id'), comment='ID')
|
employee_id = db.Column(db.Integer, db.ForeignKey('common_employee.employee_id'), comment='ID')
|
||||||
|
|
||||||
|
|
||||||
|
class CommonData(Model):
|
||||||
|
__table_name__ = 'common_data'
|
||||||
|
|
||||||
|
data_type = db.Column(db.VARCHAR(255), default='')
|
||||||
|
data = db.Column(db.JSON)
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
from flask import request
|
||||||
|
|
||||||
|
from api.lib.common_setting.common_data import CommonDataCRUD
|
||||||
|
from api.resource import APIView
|
||||||
|
|
||||||
|
prefix = '/data'
|
||||||
|
|
||||||
|
|
||||||
|
class DataView(APIView):
|
||||||
|
url_prefix = (f'{prefix}/<string:data_type>',)
|
||||||
|
|
||||||
|
def get(self, data_type):
|
||||||
|
data_list = CommonDataCRUD.get_data_by_type(data_type)
|
||||||
|
|
||||||
|
return self.jsonify(data_list)
|
||||||
|
|
||||||
|
def post(self, data_type):
|
||||||
|
params = request.json
|
||||||
|
CommonDataCRUD.create_new_data(data_type, **params)
|
||||||
|
|
||||||
|
return self.jsonify(params)
|
||||||
|
|
||||||
|
|
||||||
|
class DataViewWithId(APIView):
|
||||||
|
url_prefix = (f'{prefix}/<string:data_type>/<int:_id>',)
|
||||||
|
|
||||||
|
def put(self, data_type, _id):
|
||||||
|
params = request.json
|
||||||
|
res = CommonDataCRUD.update_data(_id, **params)
|
||||||
|
|
||||||
|
return self.jsonify(res.to_dict())
|
||||||
|
|
||||||
|
def delete(self, data_type, _id):
|
||||||
|
CommonDataCRUD.delete(_id)
|
||||||
|
return self.jsonify({})
|
Loading…
Reference in New Issue