service_delete.py 2.7 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 TileService
from app.modules.service.models import MapService
import requests
class Api(ApiTemplate):

    api_name = "服务删除"

    def process(self):

        # 返回结果
        res = {}

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

            #删除本地服务
            if s_type in ["切片服务","地图服务"]:
                service = Service.query.filter_by(guid=guid).one_or_none()

                if service:
                    if service.type.__eq__("切片服务"):
                        #调用接口
                        #172.26.99.160:6060/dmap/api/manager/deleteService?servername=tileserver&servicename=GDMap
                        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)

                else:
                    raise Exception("服务不存在!")
            # 删除影像服务
            else:
                from app.modules.service.image_service.image_service_delete import Api as RealApi
                api = RealApi()
                api.para = self.para
                res = api.process()

            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"},
            {"name": "type",
             "in": "formData",
             "type": "string",
             "description": "type"},
            {"name": "url",
             "in": "formData",
             "type": "string",
             "description": "url"},
        ],
        "responses": {
            200: {
                "schema": {
                    "properties": {
                    }
                }
            }
        }
    }