-
Notifications
You must be signed in to change notification settings - Fork 404
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #162 from simontigers/cmdb_icon_manage
feat: add cmdb custom icon manage
- Loading branch information
Showing
4 changed files
with
89 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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({}) |