catalog_next.py 1.7 KB
# coding=utf-8
#author:        4N
#createtime:    2021/3/9
#email:         nheweijun@sina.com


from ..models import *

from app.util.component.ApiTemplate import ApiTemplate
from app.util.component.ModelVisitor import ModelVisitor
class Api(ApiTemplate):
    api_name = "下一级目录"
    def process(self):

        # 返回结果
        res = {}
        try:
            # 业务逻辑

            res["data"] = []
            catalogs = Catalog.query.filter_by(pguid=self.para.get("catalog_guid"),database_guid=self.para.get("database_guid")).all()
            for cata in catalogs:
                catalog_guids = [c.guid for c in Catalog.query.filter(Catalog.path.like("%" + cata.guid + "%")).all()]
                table_count = Table.query.filter(Table.catalog_guid.in_(catalog_guids)).count()



                database_alias = cata.relate_database.alias
                cata_json = ModelVisitor.object_to_json(cata)
                cata_json["table_count"]=table_count
                cata_json["database_alias"] = database_alias

                res["data"].append(cata_json)
            res["result"] = True
        except Exception as e:
            raise e
        return res

    api_doc={

    "tags":["矢量数据目录接口"],
    "parameters":[
        {"name": "catalog_guid",
         "in": "formData",
         "type": "string",
         "description":"目录guid","required": "true"},
        {"name": "database_guid",
         "in": "formData",
         "type": "string",
         "description": "数据库guid", "required": "true"},

    ],
    "responses":{
        200:{
            "schema":{
                "properties":{
                }
            }
            }
        }
    }