service_engine_list.py 2.0 KB
# coding=utf-8
#author:        4N
#createtime:    2021/9/14
#email:         nheweijun@sina.com

from app.util.component.ApiTemplate import ApiTemplate
from app.modules.service.models import ServiceEngine
from app.util.component.ModelVisitor import ModelVisitor

class Api(ApiTemplate):
    api_name = "服务引擎List"
    def process(self):
        res = {}
        try:
            page_index = int(self.para.get("page_index", "0"))
            page_size = int(self.para.get("page_size", "10"))
            name = self.para.get("name")
            s_type = self.para.get("type")

            service_engines = ServiceEngine.query
            if name:
                service_engines = service_engines.filter(ServiceEngine.name.like("%" + name + "%"))
            if s_type:
                service_engines = service_engines.filter_by(type=s_type)
            res["data"] = {}
            res["data"]["count"] = service_engines.count()
            service_engines = service_engines.limit(page_size).offset(page_index * page_size).all()
            res["data"]["list"] = ModelVisitor.objects_to_jsonarray(service_engines)
        except Exception as e:
            raise e
        return res


    api_doc = {
        "tags": ["引擎接口"],
        "parameters": [
            {"name": "page_index",
             "in": "formData",
             "type": "int",
             "description": "页"},
            {"name": "page_size",
             "in": "formData",
             "type": "int",
             "description": "页大小"},
            {"name": "name",
             "in": "formData",
             "type": "string"},
            {"name": "type",
             "in": "formData",
             "type": "string",
             "enum":["ImageServer"]},
        ],
        "responses": {
            200: {
                "schema": {
                    "properties": {
                    }
                }
            }
        }
    }