Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add cmdb custom icon manage #162

Merged
merged 1 commit into from
Aug 31, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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({})