view.tpl 5.4 KB
Newer Older
wanli's avatar
wanli committed
1 2 3
#!/usr/bin/env python
# -*- coding: utf_8 -*-

wanli's avatar
wanli committed
4
from flask import current_app, jsonify, request
wanli's avatar
wanli committed
5 6 7
from flask_restful import Resource
from flask_restful.reqparse import RequestParser
from flask_jwt_extended import ( jwt_required, get_jwt_identity )
wanli's avatar
wanli committed
8 9 10
from application.signal_manager import signalManager
{%- set pipe = joiner(",") %}
from models.{{ config['name'] }} import {% for k, v in config["view"].items() -%}
wanli's avatar
wanli committed
11
{{ pipe() }} {{ k }}{{ config['name'] | letterUpper }}Schema{% if k == "getList" %}{{ pipe() }} {{ k }}{{ config['name'] | letterUpper }}sSchema{% endif %}
12
{%- endfor %}
wanli's avatar
wanli committed
13
from webcreator.log import logger
wanli's avatar
wanli committed
14
from webcreator.response import ResponseCode, response_result
wanli's avatar
wanli committed
15

wanli's avatar
wanli committed
16
class {{ config['name'] | letterUpper }}ResourceList(Resource):
wanli's avatar
wanli committed
17
    def __init__(self):
wanli's avatar
wanli committed
18 19 20
        pass
        # 特殊参数,即不是从json获取参数的接口,可以将这个注释打开
        # self.parser = RequestParser()
wanli's avatar
wanli committed
21

wanli's avatar
wanli committed
22 23
{%- if config["view"]["getList"] %}
{% if config["view"]["getList"]["auth"] %}
24
    @jwt_required(locations=["headers"])
wanli's avatar
wanli committed
25
{%- endif %}
wanli's avatar
wanli committed
26
    def get(self):
wanli's avatar
wanli committed
27 28 29 30
        # 特殊参数,即不是从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()
wanli's avatar
wanli committed
31 32

        try:
wanli's avatar
wanli committed
33
            json_payload = request.json
wanli's avatar
wanli committed
34
            logger.warn(json_payload)
35
            data = getList{{ config['name'] | letterUpper }}Schema.load(json_payload)
wanli's avatar
wanli committed
36
            result, message = signalManager.actionGetList{{ config["name"] | letterUpper }}.emit(data)
37
            json_dumps = getList{{ config['name'] | letterUpper }}Schema.dump(result)
wanli's avatar
wanli committed
38 39
            if result:
                json_dumps = getList{{ config['name'] | letterUpper }}sSchema.dump(result.items)
40
                logger.warn(json_dumps)
wanli's avatar
wanli committed
41 42
                return response_result(message, data=json_dumps, count=result.total)
            return response_result(message)
wanli's avatar
wanli committed
43 44
        except Exception as e:
            current_app.logger.error(e)
wanli's avatar
wanli committed
45
            return response_result(ResponseCode.HTTP_SERVER_ERROR)
wanli's avatar
wanli committed
46 47 48 49
{%- endif %}

{%- if config["view"]["post"] %}
{% if config["view"]["post"]["auth"] %}
50
    @jwt_required(locations=["headers"])
wanli's avatar
wanli committed
51 52 53 54 55
{%- endif %}
    def post(self):
        try:
            json_payload = request.json
            data = post{{ config['name'] | letterUpper }}Schema.load(json_payload)
wanli's avatar
wanli committed
56 57 58 59
            result, message = signalManager.actionPost{{ config["name"] | letterUpper }}.emit(data)
            logger.info(result)
            logger.warn(message)
            return response_result(message)
wanli's avatar
wanli committed
60 61
        except Exception as e:
            current_app.logger.error(e)
wanli's avatar
wanli committed
62
            return response_result(ResponseCode.HTTP_SERVER_ERROR)
wanli's avatar
wanli committed
63 64
{% endif %}

wanli's avatar
wanli committed
65
class {{ config['name'] | letterUpper }}Resource(Resource):
wanli's avatar
wanli committed
66 67 68 69 70 71 72
    def __init__(self):
        pass
        # 特殊参数,即不是从json获取参数的接口,可以将这个注释打开
        # self.parser = RequestParser()

{%- if config["view"]["get"] %}
{% if config["view"]["get"]["auth"] %}
73
    @jwt_required(locations=["headers"])
wanli's avatar
wanli committed
74
{%- endif %}
wanli's avatar
wanli committed
75
    def get(self, uuid):
wanli's avatar
wanli committed
76 77 78 79 80 81 82
        # 特殊参数,即不是从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
wanli's avatar
wanli committed
83
            print("========>", uuid, json_payload)
wanli's avatar
wanli committed
84
            data = get{{ config['name'] | letterUpper }}Schema.load(json_payload)
wanli's avatar
wanli committed
85 86 87 88 89
            result, message = signalManager.actionGet{{ config["name"] | letterUpper }}.emit(uuid, data)
            if result:
                json_dumps = get{{ config['name'] | letterUpper }}Schema.dump(result)
                return response_result(message, data=json_dumps)
            return response_result(message)
wanli's avatar
wanli committed
90 91
        except Exception as e:
            current_app.logger.error(e)
wanli's avatar
wanli committed
92
            return response_result(ResponseCode.HTTP_SERVER_ERROR)
wanli's avatar
wanli committed
93 94 95 96
{% endif %}

{%- if config["view"]["put"] %}
{% if config["view"]["put"]["auth"] %}
97
    @jwt_required(locations=["headers"])
wanli's avatar
wanli committed
98
{%- endif %}
wanli's avatar
wanli committed
99
    def put(self, uuid):
wanli's avatar
wanli committed
100 101
        try:
            json_payload = request.json
wanli's avatar
wanli committed
102
            print("========>", uuid, json_payload)
wanli's avatar
wanli committed
103
            data = put{{ config['name'] | letterUpper }}Schema.load(json_payload)
wanli's avatar
wanli committed
104 105 106 107
            result, message = signalManager.actionPut{{ config["name"] | letterUpper }}.emit(uuid, data)
            logger.info(result)
            logger.info(message)
            return response_result(message, data=result)
wanli's avatar
wanli committed
108 109
        except Exception as e:
            current_app.logger.error(e)
wanli's avatar
wanli committed
110
            return response_result(ResponseCode.HTTP_SERVER_ERROR)
wanli's avatar
wanli committed
111 112 113 114
{% endif %}

{%- if config["view"]["delete"] %}
{% if config["view"]["delete"]["auth"] %}
115
    @jwt_required(locations=["headers"])
wanli's avatar
wanli committed
116
{%- endif %}
wanli's avatar
wanli committed
117
    def delete(self, uuid):
wanli's avatar
wanli committed
118 119
        try:
            json_payload = request.json
wanli's avatar
wanli committed
120
            print("========>", uuid, json_payload)
121
            # data = delete{{ config['name'] | letterUpper }}Schema.load(json_payload)
wanli's avatar
wanli committed
122 123
            result, message = signalManager.actionDelete{{ config["name"] | letterUpper }}.emit(uuid)
            return response_result(message, data=result)
wanli's avatar
wanli committed
124 125
        except Exception as e:
            current_app.logger.error(e)
wanli's avatar
wanli committed
126 127
            return response_result(ResponseCode.HTTP_SERVER_ERROR)
{% endif %}