From 5d0632b2ab25f5ce777ea54dafd8e96bc0773301 Mon Sep 17 00:00:00 2001 From: SunnY0808 <88718471+DSunnyDay@users.noreply.github.com> Date: Sat, 8 Mar 2025 20:33:29 +0800 Subject: [PATCH] Sunny_CMDB --- For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/veops/cmdb?shareId=XXXX-XXXX-XXXX-XXXX). --- cmdb-api/api/lib/cmdb/attribute.py | 18 +++++++++++++++++ cmdb-api/api/models/cmdb.py | 4 ++++ cmdb-api/api/views/cmdb/attribute.py | 1 + cmdb-ui/src/api/file.js | 30 ++++++++++++++++++++++++++++ 4 files changed, 53 insertions(+) diff --git a/cmdb-api/api/lib/cmdb/attribute.py b/cmdb-api/api/lib/cmdb/attribute.py index 77175b0..511b90b 100644 --- a/cmdb-api/api/lib/cmdb/attribute.py +++ b/cmdb-api/api/lib/cmdb/attribute.py @@ -28,6 +28,7 @@ from api.models.cmdb import CIType from api.models.cmdb import CITypeAttribute from api.models.cmdb import CITypeAttributeGroupItem from api.models.cmdb import PreferenceShowAttributes +from api.lib.common_setting.upload_file import CommonFileCRUD class AttributeManager(object): @@ -462,3 +463,20 @@ class AttributeManager(object): db.session.commit() return name + + @staticmethod + def review_attribute(attr_id): + attr = Attribute.get_by_id(attr_id) or abort(404, ErrFormat.attribute_not_found.format("id={}".format(attr_id))) + + if not attr.is_review: + return abort(400, ErrFormat.attribute_not_reviewable) + + if attr.is_upload_file: + file_data = CommonFileCRUD.get_file(attr.name) + return file_data + + if attr.is_image: + image_data = CommonFileCRUD.get_file(attr.name) + return image_data + + return abort(400, ErrFormat.attribute_not_reviewable) diff --git a/cmdb-api/api/models/cmdb.py b/cmdb-api/api/models/cmdb.py index 351af9b..422531d 100644 --- a/cmdb-api/api/models/cmdb.py +++ b/cmdb-api/api/models/cmdb.py @@ -125,6 +125,10 @@ class Attribute(Model): option = db.Column(db.JSON) + is_upload_file = db.Column(db.Boolean, default=False) # Pa2de + is_image = db.Column(db.Boolean, default=False) # Pa2de + is_review = db.Column(db.Boolean, default=False) # P36eb + def _get_webhook(self): if self._choice_web_hook: if self._choice_web_hook.get('headers') and "Cookie" in self._choice_web_hook['headers']: diff --git a/cmdb-api/api/views/cmdb/attribute.py b/cmdb-api/api/views/cmdb/attribute.py index fffbcdc..48cdd32 100644 --- a/cmdb-api/api/views/cmdb/attribute.py +++ b/cmdb-api/api/views/cmdb/attribute.py @@ -13,6 +13,7 @@ from api.lib.utils import get_page from api.lib.utils import get_page_size from api.lib.utils import handle_arg_list from api.resource import APIView +from api.lib.common_setting.upload_file import CommonFileCRUD # Pb14e class AttributeSearchView(APIView): diff --git a/cmdb-ui/src/api/file.js b/cmdb-ui/src/api/file.js index e53e681..11d4783 100644 --- a/cmdb-ui/src/api/file.js +++ b/cmdb-ui/src/api/file.js @@ -29,3 +29,33 @@ export function deleteFileData(data_type, id) { method: 'delete', }) } + +export function postUploadFile(parameter) { + return axios({ + url: '/common-setting/v1/upload-file', + method: 'post', + data: parameter, + }) +} + +export function getUploadFile(file_id) { + return axios({ + url: `/common-setting/v1/upload-file/${file_id}`, + method: 'get', + }) +} + +export function postReviewFile(parameter) { + return axios({ + url: '/common-setting/v1/review-file', + method: 'post', + data: parameter, + }) +} + +export function getReviewFile(file_id) { + return axios({ + url: `/common-setting/v1/review-file/${file_id}`, + method: 'get', + }) +}