from flask import Blueprint, request from Modules.Filters.FiltersImpl import FilterImpl from Utils.ErrorUtil import APIReturnError, AttrCheckError from Utils.RouteUtil import RouteParamsCheck filters_route = Blueprint('data_filters', __name__) @filters_route.route('/new', methods=['POST']) def new_filter_route(): """新建筛选器""" try: RouteParamsCheck(req=request.json, params=["filter_name", "filter_range"]).required() data = request.json impl = FilterImpl() result = impl.new_filter(data=data) return {"info": "新建筛选器", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code except AttrCheckError as e: return {"info": e.__str__()} @filters_route.route('/edit', methods=['POST']) def edit_filter_route(): """编辑筛选器""" try: RouteParamsCheck(req=request.json, params=["filter_id", "filter_range", "filter_name"]).required() data = request.json impl = FilterImpl() result = impl.eidt_filter(data=data) return {"info": "编辑筛选器", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code except AttrCheckError as e: return {"info": e.__str__()} @filters_route.route('/delete', methods=['GET']) def delete_filter_route(): """删除筛选器""" try: RouteParamsCheck(req=request.args, params=["filter_id"]).required() filter_id = request.args['filter_id'] impl = FilterImpl() result = impl.delete_filter(filter_id=filter_id) return {"info": "删除筛选器", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @filters_route.route('/search', methods=['GET']) def search_filter_route(): """查询筛选器""" try: RouteParamsCheck(req=request.args, params=["filter_name", "page_no", "page_size"]).required() filter_name = request.args['filter_name'] page_no = request.args['page_no'] page_size = request.args['page_size'] impl = FilterImpl() result = impl.search_filter(filter_name=filter_name, page_no=page_no, page_size=page_size) return {"info": "查询筛选器", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @filters_route.route('/db_gather', methods=['GET']) def db_gather_route(): """获取数据库集合名称""" try: RouteParamsCheck(req=request.args, params=["db_name"]).required() db_name = request.args['db_name'] impl = FilterImpl() result = impl.search_db_gather(db_name=db_name) return {"info": "获取数据库集合", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @filters_route.route('/db_field', methods=['GET']) def db_field_route(): """查询数据库字段""" try: RouteParamsCheck(req=request.args, params=["database", "datasheet"]).required() database = request.args['database'] datasheet = request.args['datasheet'] impl = FilterImpl() result = impl.search_db_field(database=database, datasheet=datasheet) return {"info": "查询数据库字段", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code