api-datamanager/Modules/Functions/FinIndex/FinIndexRoutes.py

84 lines
3.1 KiB
Python

from flask import Blueprint, request
from Modules.Functions.FinIndex.FinIndexImpl import FinanceIndexImpl
from Utils.ErrorUtil import APIReturnError
from Utils.RouteUtil import RouteParamsCheck
finance_route = Blueprint('finance', __name__)
@finance_route.route('/new_calculate_func', methods=['POST'])
def new_calculate_func_route():
"""新建指标计算函数"""
try:
RouteParamsCheck(req=request.json, params=[
"函数名称", "说明", "方法", "参数", "标签"
]).required()
data = request.json
impl = FinanceIndexImpl()
result = impl.new_calculate_func(data=data)
return {"info": "新增指标计算函数", "result": result}, 200
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@finance_route.route('/check_calculate_func', methods=['POST'])
def check_calculate_func_route():
"""校验指标计算函数"""
try:
RouteParamsCheck(req=request.json, params=["方法", "参数"]).required()
data = request.json
impl = FinanceIndexImpl()
result = impl.check_calculate_func(data=data)
return {"info": "校验指标计算函数", "result": result}, 200
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@finance_route.route('/search_calculate_func', methods=['POST'])
def search_indicators_func_route():
"""查询指标计算函数"""
try:
RouteParamsCheck(req=request.json, params=["sort", "page_no", "page_size"]).required()
data = request.json
impl = FinanceIndexImpl()
result = impl.search_calculate_func(data=data)
return {"info": "查询指标计算函数", "result": result}, 200
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@finance_route.route('/lock_calculate_func', methods=['GET'])
def lock_calculate_func_route():
"""锁定指标计算函数"""
try:
RouteParamsCheck(request.args, ["fid"]).required()
fid = request.args["fid"]
impl = FinanceIndexImpl()
result = impl.lock_calculate_func(fid=fid)
return {"info": "锁定指标计算函数", "result": result}, 200
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@finance_route.route('/operate_calculate_func', methods=['GET', 'POST'])
def operate_calculate_func_route():
"""查看/编辑函数"""
try:
if request.method == 'GET':
RouteParamsCheck(request.args, ["fid"]).required()
fid = request.args["fid"]
impl = FinanceIndexImpl()
result = impl.view_calculate_func(fid=fid)
return {"info": "查看指标计算函数", "result": result}, 200
if request.method == 'POST':
RouteParamsCheck(request.json, ["函数ID", "函数名称", "说明", "方法", "参数", "标签"]).required()
data = request.json
impl = FinanceIndexImpl()
result = impl.edit_calculate_func(data=data)
return {"info": "编辑指标计算函数", "result": result}, 200
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code