Commit 35c6ad51 authored by wanli's avatar wanli

feat(手表后端接口): 按照需求返回相应参数

parent b8e0d843
''' '''
Author: your name Author: your name
Date: 2021-07-12 11:14:48 Date: 2021-07-12 11:14:48
LastEditTime: 2021-07-20 11:15:28 LastEditTime: 2021-07-20 11:56:53
LastEditors: Please set LastEditors LastEditors: Please set LastEditors
Description: In User Settings Edit Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\controllers\appi.py FilePath: \evm-store\tools\build_out\controllers\appi.py
...@@ -172,7 +172,7 @@ class AppReview(object): ...@@ -172,7 +172,7 @@ class AppReview(object):
return app, ResponseCode.HTTP_SUCCESS return app, ResponseCode.HTTP_SUCCESS
def getLauncher(self, params, jwt={}): def getLauncher(self, params, jwt={}):
device = DeviceModel.query.filter(DeviceModel.imei==params.get("imei"), AppModel.is_delete==False).one_or_none() device = DeviceModel.query.filter(DeviceModel.imei==params.get("imei"), DeviceModel.is_delete==False).one_or_none()
if not device: if not device:
return None, ResponseCode.DEVICE_NOT_EXISTS return None, ResponseCode.DEVICE_NOT_EXISTS
......
...@@ -48,6 +48,7 @@ class AppModel(PrimaryModel): ...@@ -48,6 +48,7 @@ class AppModel(PrimaryModel):
def to_dict(self): def to_dict(self):
return { return {
'uuid': self.uuid,
'app_name': self.app_name, 'app_name': self.app_name,
'app_icon': self.app_icon, 'app_icon': self.app_icon,
'app_version': self.app_version, 'app_version': self.app_version,
...@@ -83,6 +84,7 @@ class PostAppSchema(ma.SQLAlchemySchema): ...@@ -83,6 +84,7 @@ class PostAppSchema(ma.SQLAlchemySchema):
app_screen_size = ma.auto_field() app_screen_size = ma.auto_field()
app_arch = ma.auto_field() app_arch = ma.auto_field()
app_review = ma.auto_field(required=False) app_review = ma.auto_field(required=False)
remarks = fields.String(required=False)
logo = fields.Raw(required=False) logo = fields.Raw(required=False)
fileList = fields.Raw(required=False) fileList = fields.Raw(required=False)
......
''' '''
Author: your name Author: your name
Date: 2021-07-19 14:29:33 Date: 2021-07-19 14:29:33
LastEditTime: 2021-07-20 11:35:45 LastEditTime: 2021-07-20 13:37:21
LastEditors: Please set LastEditors LastEditors: Please set LastEditors
Description: In User Settings Edit Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\views\api.py FilePath: \evm-store\tools\build_out\views\api.py
...@@ -17,17 +17,18 @@ from datetime import datetime ...@@ -17,17 +17,18 @@ from datetime import datetime
from flask import current_app, jsonify, request, Response from flask import current_app, jsonify, request, Response
from flask_restful import Resource from flask_restful import Resource
from flask_restful.reqparse import RequestParser from flask_restful.reqparse import RequestParser
from flask_jwt_extended import ( jwt_required, get_jwt_identity ) from flask_jwt_extended import (jwt_required, get_jwt_identity)
from werkzeug.utils import secure_filename from werkzeug.utils import secure_filename
from werkzeug.datastructures import FileStorage from werkzeug.datastructures import FileStorage
from marshmallow.exceptions import ValidationError from marshmallow.exceptions import ValidationError
from application.config import config from application.config import config
from application.signal_manager import signalManager from application.signal_manager import signalManager
from models.app import postAppSchema, deleteAppSchema, getListAppSchema, getListAppsSchema, getAppSchema from models.app import postAppSchema, deleteAppSchema, getListAppSchema, getListAppsSchema, getAppSchema
from webcreator.log import logger from webcreator.log import logger
from webcreator.utils.ccode import convert_string from webcreator.utils.ccode import convert_string
from webcreator.response import ResponseCode, response_result from webcreator.response import ResponseCode, response_result
class AppReviewResource(Resource): class AppReviewResource(Resource):
def __init__(self): def __init__(self):
self.parser = RequestParser() self.parser = RequestParser()
...@@ -35,7 +36,8 @@ class AppReviewResource(Resource): ...@@ -35,7 +36,8 @@ class AppReviewResource(Resource):
# 设置启动器接口 # 设置启动器接口
@jwt_required(locations=["headers"]) @jwt_required(locations=["headers"])
def get(self): def get(self):
self.parser.add_argument("app", type=str, location="args", required=False) self.parser.add_argument(
"app", type=str, location="args", required=False)
args = self.parser.parse_args() args = self.parser.parse_args()
try: try:
...@@ -61,13 +63,16 @@ class AppReviewResource(Resource): ...@@ -61,13 +63,16 @@ class AppReviewResource(Resource):
@jwt_required(locations=["headers"]) @jwt_required(locations=["headers"])
def post(self): def post(self):
self.parser.add_argument("review", type=int, location="json", default=0, required=True) self.parser.add_argument(
self.parser.add_argument("app", type=str, location="json", required=False) "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() args = self.parser.parse_args()
try: try:
jwt = get_jwt_identity() jwt = get_jwt_identity()
result, message = signalManager.actionPostAppReview.emit(args.app, args.review, jwt) result, message = signalManager.actionPostAppReview.emit(
args.app, args.review, jwt)
if result: if result:
return response_result(message, data=result) return response_result(message, data=result)
return response_result(message) return response_result(message)
...@@ -87,12 +92,18 @@ class BuildAppResource(Resource): ...@@ -87,12 +92,18 @@ class BuildAppResource(Resource):
self.parser = RequestParser() self.parser = RequestParser()
def post(self): def post(self):
self.parser.add_argument("access_key", type=str, location="form", required=True) self.parser.add_argument(
self.parser.add_argument("app_name", type=str, location="form", required=True) "access_key", type=str, location="form", required=True)
self.parser.add_argument("app_version", type=str, location="form", required=True) self.parser.add_argument("app_name", type=str,
self.parser.add_argument("category", type=str, location="form", required=True) location="form", required=True)
self.parser.add_argument("app_desc", type=str, location="form", required=False) self.parser.add_argument(
self.parser.add_argument("binfiles", type=FileStorage, location="files", required=True) "app_version", type=str, location="form", required=True)
self.parser.add_argument("category", type=str,
location="form", required=True)
self.parser.add_argument("app_desc", type=str,
location="form", required=False)
self.parser.add_argument(
"binfiles", type=FileStorage, location="files", required=True)
args = self.parser.parse_args() args = self.parser.parse_args()
try: try:
...@@ -104,16 +115,19 @@ class BuildAppResource(Resource): ...@@ -104,16 +115,19 @@ class BuildAppResource(Resource):
if 'binfiles' in request.files: if 'binfiles' in request.files:
files = [] files = []
dt = datetime.now().strftime("%Y%m%d%H%M%S") dt = datetime.now().strftime("%Y%m%d%H%M%S")
upload_path = Path(config.EPK_DIR).joinpath(args.access_key).joinpath(dt) upload_path = Path(config.EPK_DIR).joinpath(
args.access_key).joinpath(dt)
if not upload_path.exists(): if not upload_path.exists():
os.makedirs(upload_path.resolve().as_posix()) os.makedirs(upload_path.resolve().as_posix())
for f in request.files.getlist('binfiles'): for f in request.files.getlist('binfiles'):
file_path = upload_path.joinpath(secure_filename(f.filename)) file_path = upload_path.joinpath(
secure_filename(f.filename))
f.save(file_path.resolve().as_posix()) f.save(file_path.resolve().as_posix())
files.append(file_path.resolve().as_posix()) files.append(file_path.resolve().as_posix())
result, message = signalManager.actionApplicationBuild.emit(data, files) result, message = signalManager.actionApplicationBuild.emit(
data, files)
if result: if result:
return response_result(ResponseCode.HTTP_SUCCESS, data=result) return response_result(ResponseCode.HTTP_SUCCESS, data=result)
else: else:
...@@ -125,6 +139,7 @@ class BuildAppResource(Resource): ...@@ -125,6 +139,7 @@ class BuildAppResource(Resource):
current_app.logger.error(e) current_app.logger.error(e)
return response_result(ResponseCode.HTTP_SERVER_ERROR) return response_result(ResponseCode.HTTP_SERVER_ERROR)
class CStringToolResource(Resource): class CStringToolResource(Resource):
def __init__(self): def __init__(self):
# 特殊参数,即不是从json获取参数的接口,可以将这个注释打开 # 特殊参数,即不是从json获取参数的接口,可以将这个注释打开
...@@ -132,7 +147,8 @@ class CStringToolResource(Resource): ...@@ -132,7 +147,8 @@ class CStringToolResource(Resource):
@jwt_required(locations=["headers"]) @jwt_required(locations=["headers"])
def post(self): def post(self):
self.parser.add_argument("string", type=str, location="json", required=True) self.parser.add_argument(
"string", type=str, location="json", required=True)
args = self.parser.parse_args() args = self.parser.parse_args()
try: try:
...@@ -148,6 +164,7 @@ class CStringToolResource(Resource): ...@@ -148,6 +164,7 @@ class CStringToolResource(Resource):
current_app.logger.error(e) current_app.logger.error(e)
return response_result(ResponseCode.HTTP_SERVER_ERROR, data=data) return response_result(ResponseCode.HTTP_SERVER_ERROR, data=data)
class ObfuscatedCode(Resource): class ObfuscatedCode(Resource):
def __init__(self) -> None: def __init__(self) -> None:
super().__init__() super().__init__()
...@@ -156,7 +173,8 @@ class ObfuscatedCode(Resource): ...@@ -156,7 +173,8 @@ class ObfuscatedCode(Resource):
def post(self): def post(self):
# 特殊参数,即不是从json获取参数的接口,可以将这个注释打开 # 特殊参数,即不是从json获取参数的接口,可以将这个注释打开
# self.parser.add_argument("page", type=int, location="args", default=1) # self.parser.add_argument("page", type=int, location="args", default=1)
self.parser.add_argument("string", type=str, location="json", required=True) self.parser.add_argument(
"string", type=str, location="json", required=True)
args = self.parser.parse_args() args = self.parser.parse_args()
try: try:
...@@ -193,6 +211,8 @@ class ObfuscatedCode(Resource): ...@@ -193,6 +211,8 @@ class ObfuscatedCode(Resource):
return response_result(ResponseCode.HTTP_SERVER_ERROR, data=data) return response_result(ResponseCode.HTTP_SERVER_ERROR, data=data)
# 获取启动器接口 # 获取启动器接口
class LauncherResource(Resource): class LauncherResource(Resource):
def __init__(self) -> None: def __init__(self) -> None:
super().__init__() super().__init__()
...@@ -200,7 +220,8 @@ class LauncherResource(Resource): ...@@ -200,7 +220,8 @@ class LauncherResource(Resource):
def post(self): def post(self):
# self.parser.add_argument("page", type=int, location="args", default=1) # self.parser.add_argument("page", type=int, location="args", default=1)
self.parser.add_argument("imei", type=str, location="json", required=True) self.parser.add_argument(
"imei", type=str, location="json", required=True)
args = self.parser.parse_args() args = self.parser.parse_args()
try: try:
...@@ -226,15 +247,27 @@ class LauncherResource(Resource): ...@@ -226,15 +247,27 @@ class LauncherResource(Resource):
return response_result(ResponseCode.HTTP_SERVER_ERROR, data=data) return response_result(ResponseCode.HTTP_SERVER_ERROR, data=data)
# 获取App列表接口 # 获取App列表接口
class AppListResource(Resource): class AppListResource(Resource):
def __init__(self) -> None: def __init__(self) -> None:
super().__init__() super().__init__()
self.parser = RequestParser() self.parser = RequestParser()
def get(self):
try:
return response_result(ResponseCode.HTTP_SUCCESS)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
def post(self): def post(self):
self.parser.add_argument("imei", type=str, location="json", required=False) self.parser.add_argument(
self.parser.add_argument("review", type=int, location="json", required=False) "imei", type=str, location="json", required=False)
self.parser.add_argument("category", type=str, location="json", required=False) self.parser.add_argument(
"review", type=int, location="json", required=False)
self.parser.add_argument("category", type=str,
location="json", required=False)
args = self.parser.parse_args() args = self.parser.parse_args()
try: try:
...@@ -250,10 +283,40 @@ class AppListResource(Resource): ...@@ -250,10 +283,40 @@ class AppListResource(Resource):
# 遍历列表,添加一些额外信息 # 遍历列表,添加一些额外信息
for item in result: for item in result:
t = item.to_dict() t = item.to_dict()
t.update({ 'download': random.randint(1, 1000), 'like': random.randint(0, 100) }) t.update({'download': random.randint(1, 1000),
'like': random.randint(0, 100)})
dataList.append(t) dataList.append(t)
# result = getListAppsSchema.dumps(result) # result = getListAppsSchema.dumps(result)
return response_result(message, data=dataList)
category = [
{
"uuid": 1,
"img": "music.png",
"title": "音乐"
},
{
"uuid": 2,
"img": "movie.png",
"title": "视频"
},
{
"uuid": 3,
"img": "camera.png",
"title": "相机"
},
{
"uuid": 4,
"img": "voice.png",
"title": "语音"
},
{
"uuid": 5,
"img": "tool.png",
"title": "工具"
}
]
return response_result(message, data=dataList, category=category)
except ValidationError as e: except ValidationError as e:
return response_result(ResponseCode.HTTP_INVAILD_REQUEST, data=e.messages) return response_result(ResponseCode.HTTP_INVAILD_REQUEST, data=e.messages)
except Exception as e: except Exception as e:
...@@ -265,6 +328,8 @@ class AppListResource(Resource): ...@@ -265,6 +328,8 @@ class AppListResource(Resource):
return response_result(ResponseCode.HTTP_SERVER_ERROR, data=data) return response_result(ResponseCode.HTTP_SERVER_ERROR, data=data)
# 获取应用接口 # 获取应用接口
class App(Resource): class App(Resource):
def __init__(self) -> None: def __init__(self) -> None:
super().__init__() super().__init__()
...@@ -272,7 +337,8 @@ class App(Resource): ...@@ -272,7 +337,8 @@ class App(Resource):
def get(self): def get(self):
# self.parser.add_argument("page", type=int, location="args", default=1) # self.parser.add_argument("page", type=int, location="args", default=1)
self.parser.add_argument("uuid", type=str, location="args", required=True) self.parser.add_argument(
"uuid", type=str, location="args", required=True)
args = self.parser.parse_args() args = self.parser.parse_args()
try: try:
...@@ -296,6 +362,8 @@ class App(Resource): ...@@ -296,6 +362,8 @@ class App(Resource):
return response_result(ResponseCode.HTTP_SERVER_ERROR, data=data) return response_result(ResponseCode.HTTP_SERVER_ERROR, data=data)
# 获取应用信息接口 # 获取应用信息接口
class AppInfo(Resource): class AppInfo(Resource):
def __init__(self) -> None: def __init__(self) -> None:
super().__init__() super().__init__()
...@@ -303,7 +371,8 @@ class AppInfo(Resource): ...@@ -303,7 +371,8 @@ class AppInfo(Resource):
def get(self): def get(self):
# self.parser.add_argument("page", type=int, location="args", default=1) # self.parser.add_argument("page", type=int, location="args", default=1)
self.parser.add_argument("imei", type=str, location="args", required=True) self.parser.add_argument(
"imei", type=str, location="args", required=True)
args = self.parser.parse_args() args = self.parser.parse_args()
try: try:
...@@ -319,15 +388,20 @@ class AppInfo(Resource): ...@@ -319,15 +388,20 @@ class AppInfo(Resource):
return response_result(ResponseCode.HTTP_SERVER_ERROR, data=data) return response_result(ResponseCode.HTTP_SERVER_ERROR, data=data)
# 下载EPK文件接口 # 下载EPK文件接口
class DownloadEpk(Resource): class DownloadEpk(Resource):
def __init__(self) -> None: def __init__(self) -> None:
super().__init__() super().__init__()
self.parser = RequestParser() self.parser = RequestParser()
def post(self): def post(self):
self.parser.add_argument("byId", type=str, location="json", required=True) self.parser.add_argument(
self.parser.add_argument("uuid", type=str, location="json", required=True) "byId", type=str, location="json", required=True)
self.parser.add_argument("imei", type=str, location="json", required=True) self.parser.add_argument(
"uuid", type=str, location="json", required=True)
self.parser.add_argument(
"imei", type=str, location="json", required=True)
args = self.parser.parse_args() args = self.parser.parse_args()
try: try:
...@@ -337,7 +411,8 @@ class DownloadEpk(Resource): ...@@ -337,7 +411,8 @@ class DownloadEpk(Resource):
if value != None: if value != None:
data[key] = value data[key] = value
data.update({ 'real_ip': request.headers.get('X-Forwarded-For', '127.0.0.1') }) data.update({'real_ip': request.headers.get(
'X-Forwarded-For', '127.0.0.1')})
result, message = signalManager.actionGetEpk.emit(data) result, message = signalManager.actionGetEpk.emit(data)
# 读取epk文件,按照格式返回相应结构体数据 # 读取epk文件,按照格式返回相应结构体数据
logger.info(data) logger.info(data)
...@@ -357,6 +432,7 @@ class DownloadEpk(Resource): ...@@ -357,6 +432,7 @@ class DownloadEpk(Resource):
current_app.logger.error(e) current_app.logger.error(e)
return response_result(ResponseCode.HTTP_SERVER_ERROR, data=data) return response_result(ResponseCode.HTTP_SERVER_ERROR, data=data)
class DownloadApp(Resource): class DownloadApp(Resource):
def __init__(self) -> None: def __init__(self) -> None:
super().__init__() super().__init__()
...@@ -364,7 +440,8 @@ class DownloadApp(Resource): ...@@ -364,7 +440,8 @@ class DownloadApp(Resource):
def get(self): def get(self):
# self.parser.add_argument("page", type=int, location="args", default=1) # self.parser.add_argument("page", type=int, location="args", default=1)
self.parser.add_argument("imei", type=str, location="json", required=True) self.parser.add_argument(
"imei", type=str, location="json", required=True)
args = self.parser.parse_args() args = self.parser.parse_args()
try: try:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment