mirror of https://github.com/veops/cmdb.git
47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
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))
|