Skip to content

Commit

Permalink
Merge pull request #162 from simontigers/cmdb_icon_manage
Browse files Browse the repository at this point in the history
feat: add cmdb custom icon manage
  • Loading branch information
pycook authored Aug 31, 2023
2 parents b1cfb88 + d1af0eb commit 3e6955f
Show file tree
Hide file tree
Showing 4 changed files with 89 additions and 0 deletions.
46 changes: 46 additions & 0 deletions cmdb-api/api/lib/common_setting/common_data.py
Original file line number Diff line number Diff line change
@@ -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))
1 change: 1 addition & 0 deletions cmdb-api/api/lib/common_setting/resp_format.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,4 @@ class ErrFormat(CommonErrFormat):
email_is_required = "邮箱不能为空"
email_format_error = "邮箱格式错误"

common_data_not_found = "ID {} 找不到记录"
7 changes: 7 additions & 0 deletions cmdb-api/api/models/common_setting.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,10 @@ class InternalMessage(Model):
category = db.Column(db.VARCHAR(128), nullable=False)
message_data = db.Column(db.JSON, nullable=True)
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)
35 changes: 35 additions & 0 deletions cmdb-api/api/views/common_setting/common_data.py
Original file line number Diff line number Diff line change
@@ -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({})

0 comments on commit 3e6955f

Please sign in to comment.