service_delete.py 1.9 KB
# coding=utf-8
#author:        4N
#createtime:    2021/9/14
#email:         nheweijun@sina.com
from app.util.component.ApiTemplate import ApiTemplate

from app.models import db
from app.modules.service.models import Service
from app.modules.service.models import ImageService
from app.modules.service.models import TileService
from app.modules.service.models import MapService
class Api(ApiTemplate):

    api_name = "服务删除"

    def process(self):

        # 返回结果
        res = {}

        try:
            guid = self.para.get("guid")

            service = Service.query.filter_by(guid=guid).one_or_none()
            if service.type.__eq__("影像服务"):
                image_service = ImageService.query.filter_by(service_guid=guid).one_or_none()
                db.session.delete(image_service)
            if service.type.__eq__("切片服务"):
                tile_service = TileService.query.filter_by(service_guid=guid).one_or_none()
                db.session.delete(tile_service)
            if service.type.__eq__("地图服务"):
                map_service = MapService.query.filter_by(service_guid=guid).one_or_none()
                db.session.delete(map_service)

            service_functions = service.relate_service_functions.all()
            for function in service_functions:
                db.session.delete(function)
            db.session.delete(service)
            db.session.commit()
            res["result"] = True
        except Exception as e:
            raise e

        return res

    api_doc = {
        "tags": ["服务接口"],
        "parameters": [
            {"name": "guid",
             "in": "formData",
             "type": "string",
             "description": "guid"},
        ],
        "responses": {
            200: {
                "schema": {
                    "properties": {
                    }
                }
            }
        }
    }