''' Author: your name Date: 2021-07-19 14:29:33 LastEditTime: 2021-07-19 15:31:33 LastEditors: Please set LastEditors Description: In User Settings Edit FilePath: \evm-store\tools\build_out\views\api.py ''' #!/usr/bin/env python # -*- coding: utf_8 -*- import os from flask import current_app, jsonify, request from flask_restful import Resource from flask_restful.reqparse import RequestParser from flask_jwt_extended import ( jwt_required, get_jwt_identity ) from marshmallow.exceptions import ValidationError from application.signal_manager import signalManager from models.login import postLoginSchema, getListLoginSchema, getListLoginsSchema, getLoginSchema from webcreator.log import logger from webcreator.response import ResponseCode, response_result class AppReviewResource(Resource): def __init__(self): # 特殊参数,即不是从json获取参数的接口,可以将这个注释打开 self.parser = RequestParser() def get(self): # 特殊参数,即不是从json获取参数的接口,可以将这个注释打开 # self.parser.add_argument("page", type=int, location="args", default=1) # self.parser.add_argument("pageSize", type=int, location="args", default=15) # args = self.parser.parse_args() try: json_payload = request.json logger.warn(json_payload) data = getListLoginSchema.load(json_payload) result, message = signalManager.actionGetListLogin.emit(data) json_dumps = getListLoginSchema.dump(result) if result: json_dumps = getListLoginsSchema.dump(result.items) return response_result(message, data=json_dumps, count=result.total) return response_result(message) except ValidationError as e: return response_result(ResponseCode.HTTP_INVAILD_REQUEST, data=e.messages) except Exception as e: data = None if hasattr(e, 'args'): data = e.args current_app.logger.error(e) return response_result(ResponseCode.HTTP_SERVER_ERROR, data=data) @jwt_required(locations=["headers"]) def post(self): self.parser.add_argument("review", type=int, location="json", default=0, required=True) self.parser.add_argument("app", type=str, location="json", required=False) args = self.parser.parse_args() try: jwt = get_jwt_identity() result, message = signalManager.actionPostAppReview.emit(args.app, args.review, jwt) if result: return response_result(message, data=result) return response_result(message) except ValidationError as e: return response_result(ResponseCode.HTTP_INVAILD_REQUEST, data=e.messages) except Exception as e: data = None if hasattr(e, 'args'): data = e.args current_app.logger.error(e) return response_result(ResponseCode.HTTP_SERVER_ERROR, data=data) class BuildAppResource(Resource): def __init__(self): pass # 特殊参数,即不是从json获取参数的接口,可以将这个注释打开 # self.parser = RequestParser() @jwt_required(locations=["headers"]) def get(self, uuid): # 特殊参数,即不是从json获取参数的接口,可以将这个注释打开 # self.parser.add_argument("page", type=int, location="args", default=1) # self.parser.add_argument("pageSize", type=int, location="args", default=15) # args = self.parser.parse_args() try: json_payload = request.json print("========>", uuid, json_payload) data = getLoginSchema.load(json_payload) result, message = signalManager.actionGetLogin.emit(uuid, data) if result: json_dumps = getLoginSchema.dump(result) return response_result(message, data=json_dumps) return response_result(message) except Exception as e: current_app.logger.error(e) return response_result(ResponseCode.HTTP_SERVER_ERROR)