image_cancle.py 2.1 KB
# coding=utf-8
#author:        4N
#createtime:    2021/7/19
#email:         nheweijun@sina.com


from app.util.component.ApiTemplate import ApiTemplate
import json
from ..models import Image
import datetime
from app.models import  db


class Api(ApiTemplate):

    api_name = "注册影像数据"

    def process(self):

        #可以注册一个目录
        #返回结果
        res = {}

        try:
            data_server = self.para.get("data_server")
            paths = json.loads(self.para.get("paths"))

            for path in paths:

                exist_image:Image = Image.query.filter_by(path=path.get("path"),
                                                    size=path.get("real_size")).one_or_none()
                if exist_image:
                    servers = exist_image.server.split(",")
                    leave_servers = [ser for ser in servers if not ser.__eq__(data_server)]
                    if len(leave_servers) ==0:
                        db.session.delete(exist_image)
                    else:
                        Image.query.filter_by(path=path.get("path"),
                                              size=path.get("real_size")).update({"server":",".join(leave_servers),
                                                                                  "update_time":datetime.datetime.now()})
                else:
                    raise Exception("数据不存在!")

            db.session.commit()
            res["result"] = True

        except Exception as e:
            raise e

        return res


    api_doc = {
        "tags": ["影像接口"],
        "parameters": [
            {"name": "data_server",
             "in": "formData",
             "type": "string",
             "description": "data_server"},
            {"name": "paths",
             "in": "formData",
             "type": "string",
             "description": "paths"},
        ],
        "responses": {
            200: {
                "schema": {
                    "properties": {
                    }
                }
            }
        }
    }