1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
'''
Author: your name
Date: 2021-07-15 09:33:39
LastEditTime: 2021-07-27 16:41:32
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\views\package.py
'''
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import os
import json
import traceback
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 application.signal_manager import signalManager
from models.package import getListPackageSchema, getListPackagesSchema, getPackageSchema
from webcreator.log import logger
from webcreator.response import ResponseCode, response_result
class PackageResourceList(Resource):
def __init__(self):
# 特殊参数,即不是从json获取参数的接口,可以将这个注释打开
self.parser = RequestParser()
@jwt_required(locations=["headers"])
def get(self):
# 特殊参数,即不是从json获取参数的接口,可以将这个注释打开
self.parser.add_argument("app", type=str, location="args", nullable=True, required=False)
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:
jwt = get_jwt_identity()
data = dict()
for key, value in args.items():
if value != None:
data[key] = value
result, message = signalManager.actionGetListPackage.emit(data, jwt)
if result:
# json_dumps = getListPackagesSchema.dump(result.items)
replace_key = '******'
response = []
for p, a in result.items:
t = p.to_dict()
if p.geo_location != "" and isinstance(p.geo_location, str):
t['geo_location'] = json.loads(p.geo_location)
if p.remarks != "" and isinstance(p.remarks, str):
t['remarks'] = json.loads(p.remarks)
t['remarks']['appDir'] = replace_key + t['remarks']['appDir'][len(replace_key):]
t['app_name'] = a.app_name
t['file_dir'] = os.path.dirname(p.file_path)
t['application'] = a.to_dict()
t['package_info'] = json.loads(p.package_info)
t['package_info']['epkfile'] = replace_key + t['package_info']['epkfile'][len(replace_key):]
response.append(t)
return response_result(message, data=response, total=result.total, pageSize=args.pageSize)
return response_result(message)
except Exception as e:
traceback.print_exc()
current_app.logger.error(e)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
class PackageResource(Resource):
def __init__(self):
# 特殊参数,即不是从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:
jwt = get_jwt_identity()
json_payload = request.json
print("========>", uuid, json_payload)
result, message = signalManager.actionGetPackage.emit(uuid, jwt)
if result:
json_dumps = getPackageSchema.dump(result)
return response_result(message, data=json_dumps)
return response_result(message)
except Exception as e:
traceback.print_exc()
current_app.logger.error(e)
return response_result(ResponseCode.HTTP_SERVER_ERROR)