Commit e60789b3 authored by wanli's avatar wanli

修复后端框架问题以及完善文件管理器

parent daeea215
......@@ -60,14 +60,8 @@ def _custom_abort(http_status_code, **kwargs):
自定义abort 400响应数据格式
"""
if http_status_code == 400:
message = kwargs.get('msg')
if isinstance(message, dict):
param, info = list(message.items())[0]
data = '{}:{}!'.format(param, info)
return abort(jsonify(response_result(ResponseCode.HTTP_INVAILD_REQUEST, data=data)))
else:
return abort(jsonify(response_result(ResponseCode.HTTP_INVAILD_REQUEST, data=message)))
# return { 'code': http_status_code, 'msg': kwargs.get('message') }
return abort(jsonify(response_result(ResponseCode.HTTP_INVAILD_REQUEST, msg=kwargs)))
return abort(http_status_code)
def _access_control(response):
......
'''
Author: your name
Date: 2021-06-30 17:43:46
LastEditTime: 2021-07-12 10:45:38
LastEditTime: 2021-07-14 18:40:19
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\application\config.py
......
'''
Author: your name
Date: 2021-06-30 18:03:41
LastEditTime: 2021-07-14 18:14:38
LastEditors: your name
LastEditTime: 2021-07-15 10:23:56
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\application\signal_manager.py
'''
......
'''
Author: your name
Date: 2021-06-30 17:43:46
LastEditTime: 2021-07-14 18:22:50
LastEditors: your name
LastEditTime: 2021-07-15 10:24:23
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\controllers\__init__.py
'''
......
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from datetime import datetime
from application.app import db
from models.annex import AnnexModel
from webcreator.log import logger
# from webcreator.response import ResponseCode, response_result
from webcreator.response import ResponseCode
class AnnexResource(object):
def __init__(self):
......@@ -13,8 +16,8 @@ class AnnexResource(object):
filters = [AnnexModel.is_delete==False, AnnexModel.uuid==uuid]
result = AnnexModel.query.filter(*filters).first()
if result:
return (True, result)
return (False, result)
return result, ResponseCode.HTTP_SUCCESS
return None, ResponseCode.HTTP_NOT_FOUND
def getList(self, params):
# handle business
......@@ -22,7 +25,9 @@ class AnnexResource(object):
filters = [AnnexModel.is_delete==False]
result = AnnexModel.query.filter(*filters).order_by(AnnexModel.create_at).paginate(params.get('page', 1), params.get('pageSize', 10), error_out=False)
return (True, result.items, result.total)
if result:
return result, ResponseCode.HTTP_SUCCESS
return None, ResponseCode.HTTP_NOT_FOUND
def post(self, params, jwt={}):
# handle business
......@@ -32,20 +37,20 @@ class AnnexResource(object):
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
elif result and result.is_delete == False:
return (False, "record code exists")
return False, ResponseCode.HTTP_INVAILD_REQUEST
result = AnnexModel(**params)
db.session.add(result)
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
def put(self, uuid, params, jwt={}):
# handle business
result = AnnexModel.query.filter(AnnexModel.uuid==uuid).first()
if not result:
return (False, "record not exists")
return None, ResponseCode.HTTP_NOT_FOUND
if params:
for key, value in params.items():
......@@ -53,21 +58,21 @@ class AnnexResource(object):
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
else:
return (False, "params is null")
return False, ResponseCode.HTTP_INVAILD_REQUEST
def delete(self, uuid, jwt={}):
# handle business
result = AnnexModel.query.filter(AnnexModel.uuid==uuid).first()
if not result:
return (False, "record not exists")
return False, ResponseCode.HTTP_NOT_FOUND
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
result.is_delete = True
db.session.delete(result)
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
annexManager = AnnexResource()
\ No newline at end of file
'''
Author: your name
Date: 2021-07-12 11:14:48
LastEditTime: 2021-07-12 11:29:36
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\controllers\appi.py
'''
import os
import re
import json
import shutil
from urllib import parse
from datetime import datetime
from application.app import db, config
from models.annex import AnnexModel
from models.app import AppModel
from models.user import UserModel
from models.package import PackageModel
from webcreator.log import logger
from webcreator import utils
from webcreator.utils.epk import EpkApp
from webcreator.response import ResponseCode
class BuildAppResource(object):
def __init__(self):
super().__init__()
def post(self, params, jwt={}):
logger.info(params)
user = UserModel.query.filter(UserModel.id==jwt['id'])
if not user:
return False, ResponseCode.USER_NOT_EXISTS
if params.get("access_key"):
params.pop("access_key")
params.update({
'create_by': user,
'create_at': datetime.now(),
'update_by': user,
'update_at': datetime.now(),
})
app = AppModel(**params)
db.session.add(app)
db.session.commit()
dir_format = "{}-{}-{}".format(app.app_name, app.app_version, datetime.now().strftime("%Y%m%d%H%M%S"))
upload_dir = os.sep.join([config.UPLOAD_ROOT_DIR, "evueapps"])
target_dir = os.sep.join([upload_dir, user.account, dir_format])
dest_dir = os.sep.join([target_dir, "src"])
if not os.path.exists(dest_dir):
os.makedirs(dest_dir)
for target_file in params.get('files'):
filename = os.path.basename(target_file)
name, suffix = os.path.splitext(filename)
name = re.sub(r"_\d{14}$", "", name)
dst_file = os.path.normpath(os.sep.join([dest_dir, name + suffix]))
shutil.copy(os.path.normpath(target_file), dst_file)
res = AnnexModel(app=app, title=filename, path=dst_file.replace(config.UPLOAD_ROOT_DIR, ""), size=os.path.getsize(dst_file), create_by=user, create_at=datetime.now(), update_by=user, update_at=datetime.now())
db.session.add(res)
db.session.flush()
db.session.commit()
# 打包成EPK文件
app_info = {}
params = { 'appName': app.app_name, 'appDir': dest_dir, 'appVersion': app.app_version, 'output': target_dir }
if user.role == "administrator" or user.role == "community":
params['algorithm'] = "h"
epk = EpkApp(**params)
app_info = epk.pack()
app_info['md5'] = str(app_info['md5'])
# 更新数据库对应文件路径
# 将文件拷贝过去后,需要重新更新数据库文件记录
epk_path = os.sep.join([target_dir.replace(config.UPLOAD_ROOT_DIR, ""), "{}.epk".format(app.app_name)]).replace('\\', '/')
result = PackageModel.query.filter(PackageModel.app==app.id).one_or_none()
if result:
result.app_path = epk_path
result.app_info = app_info
result.update_by = user
result.update_at = datetime.now()
db.session.commit()
else:
result = PackageModel(app=app.id, file_path=epk_path, package_info=app_info, app_version=params.get("app_version"), source=2, create_by=user, create_at=datetime.now(), update_by=user, update_at=datetime.now())
db.session.add(result)
db.session.commit()
with open(os.sep.join([target_dir, "epk.json"]), "w") as f:
json.dump(app.to_dict(), f)
return { 'app_name': app.app_name, 'app_file': "{}.epk".format(app.app_name), 'app_url': parse.urljoin(config['UPLOAD_SERVER'], epk_path) }, ResponseCode.HTTP_SUCCESS
buildAppResource = BuildAppResource()
'''
Author: your name
Date: 2021-06-30 18:03:41
LastEditTime: 2021-07-12 11:31:06
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\controllers\area.py
'''
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from datetime import datetime
from application.app import db
from models.area import AreaModel
......@@ -22,7 +17,7 @@ class AreaResource(object):
result = AreaModel.query.filter(*filters).first()
if result:
return result, ResponseCode.HTTP_SUCCESS
return result, ResponseCode.HTTP_NOT_FOUND
return None, ResponseCode.HTTP_NOT_FOUND
def getList(self, params):
# handle business
......@@ -49,13 +44,13 @@ class AreaResource(object):
result = AreaModel(**params)
db.session.add(result)
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
def put(self, uuid, params, jwt={}):
# handle business
result = AreaModel.query.filter(AreaModel.uuid==uuid).first()
if not result:
return False, ResponseCode.HTTP_NOT_FOUND
return None, ResponseCode.HTTP_NOT_FOUND
if params:
for key, value in params.items():
......@@ -80,4 +75,4 @@ class AreaResource(object):
db.session.commit()
return True, ResponseCode.HTTP_SUCCESS
areaManager = AreaResource()
areaManager = AreaResource()
\ No newline at end of file
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from datetime import datetime
from application.app import db
from models.device import DeviceModel
from webcreator.log import logger
# from webcreator.response import ResponseCode, response_result
from webcreator.response import ResponseCode
class DeviceResource(object):
def __init__(self):
......@@ -13,8 +16,8 @@ class DeviceResource(object):
filters = [DeviceModel.is_delete==False, DeviceModel.uuid==uuid]
result = DeviceModel.query.filter(*filters).first()
if result:
return (True, result)
return (False, result)
return result, ResponseCode.HTTP_SUCCESS
return None, ResponseCode.HTTP_NOT_FOUND
def getList(self, params):
# handle business
......@@ -22,7 +25,9 @@ class DeviceResource(object):
filters = [DeviceModel.is_delete==False]
result = DeviceModel.query.filter(*filters).order_by(DeviceModel.create_at).paginate(params.get('page', 1), params.get('pageSize', 10), error_out=False)
return (True, result.items, result.total)
if result:
return result, ResponseCode.HTTP_SUCCESS
return None, ResponseCode.HTTP_NOT_FOUND
def post(self, params, jwt={}):
# handle business
......@@ -32,20 +37,20 @@ class DeviceResource(object):
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
elif result and result.is_delete == False:
return (False, "record code exists")
return False, ResponseCode.HTTP_INVAILD_REQUEST
result = DeviceModel(**params)
db.session.add(result)
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
def put(self, uuid, params, jwt={}):
# handle business
result = DeviceModel.query.filter(DeviceModel.uuid==uuid).first()
if not result:
return (False, "record not exists")
return None, ResponseCode.HTTP_NOT_FOUND
if params:
for key, value in params.items():
......@@ -53,21 +58,21 @@ class DeviceResource(object):
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
else:
return (False, "params is null")
return False, ResponseCode.HTTP_INVAILD_REQUEST
def delete(self, uuid, jwt={}):
# handle business
result = DeviceModel.query.filter(DeviceModel.uuid==uuid).first()
if not result:
return (False, "record not exists")
return False, ResponseCode.HTTP_NOT_FOUND
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
result.is_delete = True
db.session.delete(result)
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
deviceManager = DeviceResource()
\ No newline at end of file
......@@ -55,7 +55,7 @@ class FileManager(object):
@param {*} self
@return {*}
'''
def content(self, disk, target_path='/'):
def content(self, disk, target_path=""):
'''
目录信息结构体:
{
......@@ -86,7 +86,6 @@ class FileManager(object):
}
'''
target_path = Path(target_path)
result = {
"directories": [],
"files": []
......@@ -96,7 +95,14 @@ class FileManager(object):
if not disk_path.exists():
return result
target_path = disk_path.joinpath(target_path)
if target_path == None:
target_path = ""
if target_path.startswith("/"):
target_path = target_path[1:]
target_path = disk_path.joinpath(Path(target_path))
if not target_path.exists():
return result
......@@ -112,7 +118,7 @@ class FileManager(object):
else:
result["files"].append({
"basename": child.name,
"dirname": child.parent,
"dirname": child.parent.relative_to(disk_path).as_posix(),
"extension": child.suffix[1:],
"filename": child.stem,
"path": child.resolve().relative_to(disk_path).as_posix(),
......@@ -121,13 +127,14 @@ class FileManager(object):
"type": "file"
})
# pprint.pprint(result)
with open("result.json", "w") as f:
json.dump(result, f)
f.seek(0)
f.truncate()
f.write(json.dumps(result, ensure_ascii=True))
pprint.pprint(result)
return result, ResponseCode.HTTP_SUCCESS
'''
......@@ -135,7 +142,7 @@ class FileManager(object):
@param {*} self
@return {*}
'''
def tree(self, disk, target_path="/"):
def tree(self, disk, target_path=""):
'''
{
basename: "trees"
......@@ -149,13 +156,18 @@ class FileManager(object):
}
'''
target_path = Path(target_path)
result = []
rp = Path(disk_root)
disk_path = rp / disk
if not disk_path.exists():
return result
if target_path == None:
target_path = ""
if target_path.startswith("/"):
target_path = target_path[1:]
temp_path = disk_path.joinpath(target_path)
if not temp_path.exists():
return result
......@@ -173,7 +185,7 @@ class FileManager(object):
"timestamp": int(child.stat().st_mtime),
"type": "dir"
})
pprint.pprint(result)
# pprint.pprint(result)
return result, ResponseCode.HTTP_SUCCESS
......
'''
Author: your name
Date: 2021-06-29 19:24:32
LastEditTime: 2021-07-12 12:09:34
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\backend\controller\monitor.py
'''
from application.app import db
from models.monitorEvm import MonitorEvmModel
from models.monitorImage import MonitorImageModel
from models.monitorLvgl import MonitorLvglModel
from models.monitorSystem import MonitorSystemModel
from models.monitorWatch import MonitorWatchModel
class SystemResource(object):
def get(self):
return MonitorSystemModel.query.all()
def post(self, params):
result = MonitorSystemModel(**params)
db.session.add(result)
db.session.commit()
return True
class LvglResource(object):
def get(self):
return MonitorLvglModel.query.all()
def post(self, params):
result = MonitorLvglModel(**params)
db.session.add(result)
db.session.commit()
return True
class EvmResource(object):
def get(self):
return MonitorEvmModel.query.all()
def post(self, params):
result = MonitorEvmModel(**params)
db.session.add(result)
db.session.commit()
return True
class ImageResource(object):
def get(self):
return MonitorImageModel.query.all()
def post(self, params):
result = MonitorImageModel(**params)
db.session.add(result)
db.session.commit()
return True
def post_array(self, array, watch):
t = []
for a in array:
a.update({ "watch": watch })
t.append(**a)
db.session.execute(MonitorImageModel.__table__.insert(), t)
db.session.commit()
return True
systemResource = SystemResource()
lvglResource = LvglResource()
evmResource = EvmResource()
imageResource = ImageResource()
def insert_data(msg):
# 先判断手表imei是否存在,不存在则先注册手表IMEI
watch_id = -1
if msg.get("imei"):
result = MonitorWatchModel.query.filter_by(imei=msg.get("imei")).one_or_none()
if result:
watch_id = result.id
else:
result = MonitorWatchModel.query.filter(MonitorWatchModel.imei==msg.get("imei")).one_or_none()
db.session.add(result)
db.session.commit()
watch_id = result.id
if msg.get("system") or msg.get("request"):
msg.get("system", {}).update({ "watch": watch_id })
msg.get("system").update(msg.get("request", {}))
systemResource.post(msg.get("system"))
if msg.get("lvgl"):
msg.get("lvgl").update({ "watch": watch_id })
lvglResource.post(msg.get("lvgl"))
if msg.get("evm"):
msg.get("evm").update({ "watch": watch_id })
evmResource.post(msg.get("evm"))
if msg.get("image"):
imageResource.post_array(msg.get("image"), watch_id)
def get_watch_list():
result = MonitorWatchModel.query.all()
tmp = []
for item in result:
tmp.append({
'id': item.id,
'imei': item.imei
})
return tmp
def evm_data(watch, start, end):
filters = [MonitorEvmModel.watch==watch]
if start:
filters.append(MonitorEvmModel.timestamp >= start)
if end:
filters.append(MonitorEvmModel.timestamp <= end)
result = MonitorEvmModel.query.filter(*filters).order_by(MonitorEvmModel.timestamp).all()
temp = []
for item in result:
t = item.to_dict()
if t.get("timestamp"):
t.update({ 'timestamp': t.get("timestamp").strftime("%Y-%m-%d %H:%M:%S") })
temp.append(t)
return temp
def lvgl_data(watch, start, end):
filters = [MonitorLvglModel.watch==watch]
if start:
filters.append(MonitorLvglModel.timestamp>=start)
if end:
filters.append(MonitorLvglModel.timestamp<=end)
result = MonitorLvglModel.query.filter(*filters).order_by(MonitorLvglModel.timestamp).all()
temp = []
for item in result:
t = item.to_dict()
if t.get("timestamp"):
t.update({ 'timestamp': t.get("timestamp").strftime("%Y-%m-%d %H:%M:%S") })
temp.append(t)
return temp
def image_data(watch, start, end):
filters = [MonitorImageModel.watch==watch]
if start:
filters.append(MonitorImageModel.timestamp>=start)
if end:
filters.append(MonitorImageModel.timestamp<=end)
result = MonitorImageModel.query.filter(*filters).order_by(MonitorImageModel.timestamp).all()
temp = []
for item in result:
t = item.to_dict()
if t.get("timestamp"):
t.update({ 'timestamp': t.get("timestamp").strftime("%Y-%m-%d %H:%M:%S") })
temp.append(t)
return temp
def get_monitor_list(watch, category, start, end):
# 判断watch是否存在
w = MonitorWatchModel.query.filter(MonitorWatchModel.id==watch).first()
if not w:
return []
if category == "system":
return []
elif category == "image":
return image_data(watch, start, end)
elif category == "lvgl":
return lvgl_data(watch, start, end)
elif category == "evm":
return evm_data(watch, start, end)
else:
return {
'evm': evm_data(watch, start, end),
'lvgl': lvgl_data(watch, start, end),
'image': image_data(watch, start, end)
}
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from datetime import datetime
from application.app import db
from models.monitorEvm import MonitorEvmModel
from webcreator.log import logger
# from webcreator.response import ResponseCode, response_result
from webcreator.response import ResponseCode
class MonitorEvmResource(object):
def __init__(self):
......@@ -13,8 +16,8 @@ class MonitorEvmResource(object):
filters = [MonitorEvmModel.is_delete==False, MonitorEvmModel.uuid==uuid]
result = MonitorEvmModel.query.filter(*filters).first()
if result:
return (True, result)
return (False, result)
return result, ResponseCode.HTTP_SUCCESS
return None, ResponseCode.HTTP_NOT_FOUND
def getList(self, params):
# handle business
......@@ -22,7 +25,9 @@ class MonitorEvmResource(object):
filters = [MonitorEvmModel.is_delete==False]
result = MonitorEvmModel.query.filter(*filters).order_by(MonitorEvmModel.create_at).paginate(params.get('page', 1), params.get('pageSize', 10), error_out=False)
return (True, result.items, result.total)
if result:
return result, ResponseCode.HTTP_SUCCESS
return None, ResponseCode.HTTP_NOT_FOUND
def post(self, params, jwt={}):
# handle business
......@@ -32,20 +37,20 @@ class MonitorEvmResource(object):
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
elif result and result.is_delete == False:
return (False, "record code exists")
return False, ResponseCode.HTTP_INVAILD_REQUEST
result = MonitorEvmModel(**params)
db.session.add(result)
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
def put(self, uuid, params, jwt={}):
# handle business
result = MonitorEvmModel.query.filter(MonitorEvmModel.uuid==uuid).first()
if not result:
return (False, "record not exists")
return None, ResponseCode.HTTP_NOT_FOUND
if params:
for key, value in params.items():
......@@ -53,21 +58,21 @@ class MonitorEvmResource(object):
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
else:
return (False, "params is null")
return False, ResponseCode.HTTP_INVAILD_REQUEST
def delete(self, uuid, jwt={}):
# handle business
result = MonitorEvmModel.query.filter(MonitorEvmModel.uuid==uuid).first()
if not result:
return (False, "record not exists")
return False, ResponseCode.HTTP_NOT_FOUND
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
result.is_delete = True
db.session.delete(result)
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
monitorEvmManager = MonitorEvmResource()
\ No newline at end of file
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from datetime import datetime
from application.app import db
from models.monitorImage import MonitorImageModel
from webcreator.log import logger
# from webcreator.response import ResponseCode, response_result
from webcreator.response import ResponseCode
class MonitorImageResource(object):
def __init__(self):
......@@ -13,8 +16,8 @@ class MonitorImageResource(object):
filters = [MonitorImageModel.is_delete==False, MonitorImageModel.uuid==uuid]
result = MonitorImageModel.query.filter(*filters).first()
if result:
return (True, result)
return (False, result)
return result, ResponseCode.HTTP_SUCCESS
return None, ResponseCode.HTTP_NOT_FOUND
def getList(self, params):
# handle business
......@@ -22,7 +25,9 @@ class MonitorImageResource(object):
filters = [MonitorImageModel.is_delete==False]
result = MonitorImageModel.query.filter(*filters).order_by(MonitorImageModel.create_at).paginate(params.get('page', 1), params.get('pageSize', 10), error_out=False)
return (True, result.items, result.total)
if result:
return result, ResponseCode.HTTP_SUCCESS
return None, ResponseCode.HTTP_NOT_FOUND
def post(self, params, jwt={}):
# handle business
......@@ -32,20 +37,20 @@ class MonitorImageResource(object):
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
elif result and result.is_delete == False:
return (False, "record code exists")
return False, ResponseCode.HTTP_INVAILD_REQUEST
result = MonitorImageModel(**params)
db.session.add(result)
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
def put(self, uuid, params, jwt={}):
# handle business
result = MonitorImageModel.query.filter(MonitorImageModel.uuid==uuid).first()
if not result:
return (False, "record not exists")
return None, ResponseCode.HTTP_NOT_FOUND
if params:
for key, value in params.items():
......@@ -53,21 +58,21 @@ class MonitorImageResource(object):
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
else:
return (False, "params is null")
return False, ResponseCode.HTTP_INVAILD_REQUEST
def delete(self, uuid, jwt={}):
# handle business
result = MonitorImageModel.query.filter(MonitorImageModel.uuid==uuid).first()
if not result:
return (False, "record not exists")
return False, ResponseCode.HTTP_NOT_FOUND
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
result.is_delete = True
db.session.delete(result)
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
monitorImageManager = MonitorImageResource()
\ No newline at end of file
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from datetime import datetime
from application.app import db
from models.monitorLvgl import MonitorLvglModel
from webcreator.log import logger
# from webcreator.response import ResponseCode, response_result
from webcreator.response import ResponseCode
class MonitorLvglResource(object):
def __init__(self):
......@@ -13,8 +16,8 @@ class MonitorLvglResource(object):
filters = [MonitorLvglModel.is_delete==False, MonitorLvglModel.uuid==uuid]
result = MonitorLvglModel.query.filter(*filters).first()
if result:
return (True, result)
return (False, result)
return result, ResponseCode.HTTP_SUCCESS
return None, ResponseCode.HTTP_NOT_FOUND
def getList(self, params):
# handle business
......@@ -22,7 +25,9 @@ class MonitorLvglResource(object):
filters = [MonitorLvglModel.is_delete==False]
result = MonitorLvglModel.query.filter(*filters).order_by(MonitorLvglModel.create_at).paginate(params.get('page', 1), params.get('pageSize', 10), error_out=False)
return (True, result.items, result.total)
if result:
return result, ResponseCode.HTTP_SUCCESS
return None, ResponseCode.HTTP_NOT_FOUND
def post(self, params, jwt={}):
# handle business
......@@ -32,20 +37,20 @@ class MonitorLvglResource(object):
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
elif result and result.is_delete == False:
return (False, "record code exists")
return False, ResponseCode.HTTP_INVAILD_REQUEST
result = MonitorLvglModel(**params)
db.session.add(result)
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
def put(self, uuid, params, jwt={}):
# handle business
result = MonitorLvglModel.query.filter(MonitorLvglModel.uuid==uuid).first()
if not result:
return (False, "record not exists")
return None, ResponseCode.HTTP_NOT_FOUND
if params:
for key, value in params.items():
......@@ -53,21 +58,21 @@ class MonitorLvglResource(object):
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
else:
return (False, "params is null")
return False, ResponseCode.HTTP_INVAILD_REQUEST
def delete(self, uuid, jwt={}):
# handle business
result = MonitorLvglModel.query.filter(MonitorLvglModel.uuid==uuid).first()
if not result:
return (False, "record not exists")
return False, ResponseCode.HTTP_NOT_FOUND
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
result.is_delete = True
db.session.delete(result)
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
monitorLvglManager = MonitorLvglResource()
\ No newline at end of file
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from datetime import datetime
from application.app import db
from models.monitorSystem import MonitorSystemModel
from webcreator.log import logger
# from webcreator.response import ResponseCode, response_result
from webcreator.response import ResponseCode
class MonitorSystemResource(object):
def __init__(self):
......@@ -13,8 +16,8 @@ class MonitorSystemResource(object):
filters = [MonitorSystemModel.is_delete==False, MonitorSystemModel.uuid==uuid]
result = MonitorSystemModel.query.filter(*filters).first()
if result:
return (True, result)
return (False, result)
return result, ResponseCode.HTTP_SUCCESS
return None, ResponseCode.HTTP_NOT_FOUND
def getList(self, params):
# handle business
......@@ -22,7 +25,9 @@ class MonitorSystemResource(object):
filters = [MonitorSystemModel.is_delete==False]
result = MonitorSystemModel.query.filter(*filters).order_by(MonitorSystemModel.create_at).paginate(params.get('page', 1), params.get('pageSize', 10), error_out=False)
return (True, result.items, result.total)
if result:
return result, ResponseCode.HTTP_SUCCESS
return None, ResponseCode.HTTP_NOT_FOUND
def post(self, params, jwt={}):
# handle business
......@@ -32,20 +37,20 @@ class MonitorSystemResource(object):
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
elif result and result.is_delete == False:
return (False, "record code exists")
return False, ResponseCode.HTTP_INVAILD_REQUEST
result = MonitorSystemModel(**params)
db.session.add(result)
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
def put(self, uuid, params, jwt={}):
# handle business
result = MonitorSystemModel.query.filter(MonitorSystemModel.uuid==uuid).first()
if not result:
return (False, "record not exists")
return None, ResponseCode.HTTP_NOT_FOUND
if params:
for key, value in params.items():
......@@ -53,21 +58,21 @@ class MonitorSystemResource(object):
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
else:
return (False, "params is null")
return False, ResponseCode.HTTP_INVAILD_REQUEST
def delete(self, uuid, jwt={}):
# handle business
result = MonitorSystemModel.query.filter(MonitorSystemModel.uuid==uuid).first()
if not result:
return (False, "record not exists")
return False, ResponseCode.HTTP_NOT_FOUND
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
result.is_delete = True
db.session.delete(result)
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
monitorSystemManager = MonitorSystemResource()
\ No newline at end of file
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from datetime import datetime
from application.app import db
from models.monitorWatch import MonitorWatchModel
from webcreator.log import logger
# from webcreator.response import ResponseCode, response_result
from webcreator.response import ResponseCode
class MonitorWatchResource(object):
def __init__(self):
......@@ -13,8 +16,8 @@ class MonitorWatchResource(object):
filters = [MonitorWatchModel.is_delete==False, MonitorWatchModel.uuid==uuid]
result = MonitorWatchModel.query.filter(*filters).first()
if result:
return (True, result)
return (False, result)
return result, ResponseCode.HTTP_SUCCESS
return None, ResponseCode.HTTP_NOT_FOUND
def getList(self, params):
# handle business
......@@ -22,7 +25,9 @@ class MonitorWatchResource(object):
filters = [MonitorWatchModel.is_delete==False]
result = MonitorWatchModel.query.filter(*filters).order_by(MonitorWatchModel.create_at).paginate(params.get('page', 1), params.get('pageSize', 10), error_out=False)
return (True, result.items, result.total)
if result:
return result, ResponseCode.HTTP_SUCCESS
return None, ResponseCode.HTTP_NOT_FOUND
def post(self, params, jwt={}):
# handle business
......@@ -32,20 +37,20 @@ class MonitorWatchResource(object):
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
elif result and result.is_delete == False:
return (False, "record code exists")
return False, ResponseCode.HTTP_INVAILD_REQUEST
result = MonitorWatchModel(**params)
db.session.add(result)
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
def put(self, uuid, params, jwt={}):
# handle business
result = MonitorWatchModel.query.filter(MonitorWatchModel.uuid==uuid).first()
if not result:
return (False, "record not exists")
return None, ResponseCode.HTTP_NOT_FOUND
if params:
for key, value in params.items():
......@@ -53,21 +58,21 @@ class MonitorWatchResource(object):
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
else:
return (False, "params is null")
return False, ResponseCode.HTTP_INVAILD_REQUEST
def delete(self, uuid, jwt={}):
# handle business
result = MonitorWatchModel.query.filter(MonitorWatchModel.uuid==uuid).first()
if not result:
return (False, "record not exists")
return False, ResponseCode.HTTP_NOT_FOUND
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
result.is_delete = True
db.session.delete(result)
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
monitorWatchManager = MonitorWatchResource()
\ No newline at end of file
'''
Author: your name
Date: 2021-06-30 18:03:41
LastEditTime: 2021-07-12 11:11:49
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\controllers\package.py
'''
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import os
import re
import shutil
from datetime import datetime
from application.app import db, config
from models.annex import AnnexModel
from models.app import AppModel
from models.user import UserModel
from models.package import PackageModel
from webcreator.utils.epk import EpkApp
from webcreator.log import logger
from webcreator.response import ResponseCode
class PackageResource(object):
def __init__(self):
super().__init__()
def get(self, uuid, params):
# handle business
filters = [PackageModel.is_delete==False, PackageModel.uuid==uuid]
result = PackageModel.query.filter(*filters).first()
if result:
return result, ResponseCode.HTTP_SUCCESS
return None, ResponseCode.HTTP_NOT_FOUND
def getList(self, params):
# handle business
logger.warn(params)
filters = [PackageModel.is_delete==False]
result = PackageModel.query.filter(*filters).order_by(PackageModel.create_at).paginate(params.get('page', 1), params.get('pageSize', 10), error_out=False)
if result:
return result, ResponseCode.HTTP_SUCCESS
user = UserModel.query.filter(id=params.get('user')).onr_or_none()
if not user:
return False, ResponseCode.USER_NOT_EXISTS
temp = {}
if user.role == "administrator":
temp.update({"is_delete": False})
else:
temp.update({ "create_by": user.id, "is_delete": False })
if "scope_type" in params and params.get("scope_type") == "list":
result = PackageModel.query.filter_by(**temp).order_by(PackageModel.create_at.desc())
temp = []
for item in result:
temp.append({ "name": item.app.app_name, "uuid": str(item.uuid) })
return temp, len(temp), "get build_logs {}.".format("success" if temp else "fail")
result = PackageModel.query.filter_by(**temp).order_by(PackageModel.create_at.desc()).paginate(params.get("pagenum", 1), params.get("pagesize", 10), error_out=False)
if result.total and len(result.items):
temp = []
for item in result.items:
t = item.to_dict()
t.update({
"create_at": item.create_at.strftime("%Y-%m-%d %H:%M:%S") if item.create_at else None,
"update_at": item.update_at.strftime("%Y-%m-%d %H:%M:%S") if item.update_at else None,
})
temp.append(t)
return (temp, result.total), ResponseCode.HTTP_SUCCESS
return result, ResponseCode.HTTP_NO_DATA
def post(self, params, jwt={}):
# 判断用户是否存在
user = UserModel.query.filter(UserModel.id==params.get('user'))
if not user:
return False, ResponseCode.USER_NOT_EXISTS
# 判断app是否存在
app = AppModel.query.filter(AppModel.id==params.get("app"))
if not app:
return False, ResponseCode.HTTP_NOT_FOUND
# 根据应用查找有哪些源文件
source_files = AnnexModel.query.filter(AnnexModel.app==app.id).all()
if not source_files:
return None, ResponseCode.HTTP_NO_DATA
dir_format = "{}-{}-{}".format(app.app_name, app.app_version, datetime.now().strftime("%Y%m%d%H%M%S"))
upload_dir = os.sep.join([config.UPLOAD_ROOT_DIR, "uploads", "evueapps"])
target_dir = os.sep.join([upload_dir, user.account, dir_format])
dest_dir = os.sep.join([target_dir, "src"])
if not os.path.exists(dest_dir):
os.makedirs(dest_dir)
app_files = []
for sf in source_files:
target_file = os.sep.join([config.UPLOAD_ROOT_DIR, sf.path])
filename = os.path.basename(target_file)
name, suffix = os.path.splitext(filename)
name = re.sub(r"_\d{14}$", "", name)
dst_file = os.path.normpath(os.sep.join([dest_dir, name + suffix]))
shutil.move(os.path.normpath(target_file), dst_file)
app_files.append([sf.id, dst_file])
# 打包成EPK文件
app_info = {}
params = { 'appName': app.app_name, 'appDir': dest_dir, 'appVersion': app.app_version, 'output': target_dir }
if user.role == "administrator" or user.role == "community":
params['algorithm'] = "h"
epk = EpkApp(**params)
app_info = epk.pack()
if app_info:
app_info['md5'] = str(app_info['md5'])
# 更新数据库对应文件路径
# for sf in source_files:
# for af in app_files:
# if sf.id == af[0]:
# t = os.path.normpath(af[1].replace(config.UPLOAD_ROOT_DIR, "")).replace('\\', '/')
# sf.set(path=t)
# db.session.flush()
# db.session.commit()
epk_path = os.sep.join([target_dir.replace(config.UPLOAD_ROOT_DIR, ""), "{}.epk".format(app.app_name)]).replace('\\', '/')
# handle business
# result = PackageModel.query.filter(PackageModel.app == params.get('app')).first()
# if result and result.is_delete:
# result.is_delete = False
# result.update_by = jwt.get("id", "")
# result.update_date = datetime.now()
# db.session.commit()
# return True, ResponseCode.HTTP_SUCCESS
# elif result and result.is_delete == False:
# return False, ResponseCode.HTTP_INVAILD_REQUEST
result = PackageModel(app=app.id, file_path=epk_path, package_info=app_info, app_version=params.get("app_version"), create_by=user.id, create_at=datetime.now(), update_by=user.id, update_at=datetime.now())
db.session.add(result)
db.session.commit()
return True, ResponseCode.HTTP_SUCCESS
def put(self, uuid, params, jwt={}):
# handle business
result = PackageModel.query.filter(PackageModel.uuid==uuid).first()
if not result:
return None, ResponseCode.HTTP_NOT_FOUND
if params:
for key, value in params.items():
if value != None: setattr(result, key, value)
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
db.session.commit()
return True, ResponseCode.HTTP_SUCCESS
else:
return False, ResponseCode.HTTP_INVAILD_REQUEST
def delete(self, uuid, jwt={}):
# handle business
result = PackageModel.query.filter(PackageModel.uuid==uuid).first()
if not result:
return False, ResponseCode.HTTP_NOT_FOUND
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
result.is_delete = True
db.session.delete(result)
db.session.commit()
return True, ResponseCode.HTTP_SUCCESS
packageManager = PackageResource()
\ No newline at end of file
'''
Author: your name
Date: 2021-06-30 18:03:41
LastEditTime: 2021-07-15 10:39:52
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\controllers\package.py
'''
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import os
import re
import shutil
from datetime import datetime
from application.app import db
from application.app import db, config
from models.annex import AnnexModel
from models.app import AppModel
from models.user import UserModel
from models.package import PackageModel
from webcreator.utils.epk import EpkApp
from webcreator.log import logger
# from webcreator.response import ResponseCode, response_result
from webcreator.response import ResponseCode
class PackageResource(object):
def __init__(self):
......@@ -13,8 +31,8 @@ class PackageResource(object):
filters = [PackageModel.is_delete==False, PackageModel.uuid==uuid]
result = PackageModel.query.filter(*filters).first()
if result:
return (True, result)
return (False, result)
return result, ResponseCode.HTTP_SUCCESS
return None, ResponseCode.HTTP_NOT_FOUND
def getList(self, params):
# handle business
......@@ -22,30 +40,113 @@ class PackageResource(object):
filters = [PackageModel.is_delete==False]
result = PackageModel.query.filter(*filters).order_by(PackageModel.create_at).paginate(params.get('page', 1), params.get('pageSize', 10), error_out=False)
return (True, result.items, result.total)
if result:
return result, ResponseCode.HTTP_SUCCESS
user = UserModel.query.filter(id=params.get('user')).onr_or_none()
if not user:
return False, ResponseCode.USER_NOT_EXISTS
temp = {}
if user.role == "administrator":
temp.update({"is_delete": False})
else:
temp.update({ "create_by": user.id, "is_delete": False })
if "scope_type" in params and params.get("scope_type") == "list":
result = PackageModel.query.filter_by(**temp).order_by(PackageModel.create_at.desc())
temp = []
for item in result:
temp.append({ "name": item.app.app_name, "uuid": str(item.uuid) })
return temp, len(temp), "get build_logs {}.".format("success" if temp else "fail")
result = PackageModel.query.filter_by(**temp).order_by(PackageModel.create_at.desc()).paginate(params.get("pagenum", 1), params.get("pagesize", 10), error_out=False)
if result.total and len(result.items):
temp = []
for item in result.items:
t = item.to_dict()
t.update({
"create_at": item.create_at.strftime("%Y-%m-%d %H:%M:%S") if item.create_at else None,
"update_at": item.update_at.strftime("%Y-%m-%d %H:%M:%S") if item.update_at else None,
})
temp.append(t)
return (temp, result.total), ResponseCode.HTTP_SUCCESS
return result, ResponseCode.HTTP_NO_DATA
def post(self, params, jwt={}):
# 判断用户是否存在
user = UserModel.query.filter(UserModel.id==params.get('user'))
if not user:
return False, ResponseCode.USER_NOT_EXISTS
# 判断app是否存在
app = AppModel.query.filter(AppModel.id==params.get("app"))
if not app:
return False, ResponseCode.HTTP_NOT_FOUND
# 根据应用查找有哪些源文件
source_files = AnnexModel.query.filter(AnnexModel.app==app.id).all()
if not source_files:
return None, ResponseCode.HTTP_NO_DATA
dir_format = "{}-{}-{}".format(app.app_name, app.app_version, datetime.now().strftime("%Y%m%d%H%M%S"))
upload_dir = os.sep.join([config.UPLOAD_ROOT_DIR, "uploads", "evueapps"])
target_dir = os.sep.join([upload_dir, user.account, dir_format])
dest_dir = os.sep.join([target_dir, "src"])
if not os.path.exists(dest_dir):
os.makedirs(dest_dir)
app_files = []
for sf in source_files:
target_file = os.sep.join([config.UPLOAD_ROOT_DIR, sf.path])
filename = os.path.basename(target_file)
name, suffix = os.path.splitext(filename)
name = re.sub(r"_\d{14}$", "", name)
dst_file = os.path.normpath(os.sep.join([dest_dir, name + suffix]))
shutil.move(os.path.normpath(target_file), dst_file)
app_files.append([sf.id, dst_file])
# 打包成EPK文件
app_info = {}
params = { 'appName': app.app_name, 'appDir': dest_dir, 'appVersion': app.app_version, 'output': target_dir }
if user.role == "administrator" or user.role == "community":
params['algorithm'] = "h"
epk = EpkApp(**params)
app_info = epk.pack()
if app_info:
app_info['md5'] = str(app_info['md5'])
# 更新数据库对应文件路径
# for sf in source_files:
# for af in app_files:
# if sf.id == af[0]:
# t = os.path.normpath(af[1].replace(config.UPLOAD_ROOT_DIR, "")).replace('\\', '/')
# sf.set(path=t)
# db.session.flush()
# db.session.commit()
epk_path = os.sep.join([target_dir.replace(config.UPLOAD_ROOT_DIR, ""), "{}.epk".format(app.app_name)]).replace('\\', '/')
# handle business
result = PackageModel.query.filter(PackageModel.app == params.get('app')).first()
if result and result.is_delete:
result.is_delete = False
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
db.session.commit()
return (True, None)
elif result and result.is_delete == False:
return (False, "record code exists")
# result = PackageModel.query.filter(PackageModel.app == params.get('app')).first()
# if result and result.is_delete:
# result.is_delete = False
# result.update_by = jwt.get("id", "")
# result.update_date = datetime.now()
# db.session.commit()
# return True, ResponseCode.HTTP_SUCCESS
# elif result and result.is_delete == False:
# return False, ResponseCode.HTTP_INVAILD_REQUEST
result = PackageModel(**params)
result = PackageModel(app=app.id, file_path=epk_path, package_info=app_info, app_version=params.get("app_version"), create_by=user.id, create_at=datetime.now(), update_by=user.id, update_at=datetime.now())
db.session.add(result)
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
def put(self, uuid, params, jwt={}):
# handle business
result = PackageModel.query.filter(PackageModel.uuid==uuid).first()
if not result:
return (False, "record not exists")
return None, ResponseCode.HTTP_NOT_FOUND
if params:
for key, value in params.items():
......@@ -53,21 +154,21 @@ class PackageResource(object):
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
else:
return (False, "params is null")
return False, ResponseCode.HTTP_INVAILD_REQUEST
def delete(self, uuid, jwt={}):
# handle business
result = PackageModel.query.filter(PackageModel.uuid==uuid).first()
if not result:
return (False, "record not exists")
return False, ResponseCode.HTTP_NOT_FOUND
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
result.is_delete = True
db.session.delete(result)
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
packageManager = PackageResource()
\ No newline at end of file
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import os
import json
import traceback
import tempfile
import base64
from hashlib import md5
from application.config import config
from webcreator.log import logger
# 判断目录是否存在,不存在则创建
# if not os.path.exists(os.path.join(config.UPLOAD_ROOT_DIR, config.get("UPLOAD_DIR"))):
# os.makedirs(os.path.join(config.UPLOAD_ROOT_DIR, config.get("UPLOAD_DIR")))
def checkAccess(path):
realpath = os.path.realpath(path)
if not realpath.startswith(config.UPLOAD_ROOT_DIR):
return False
return True
def checkPath(path):
if not path:
return False, {"code": -1, "data": None, "message": "[%s] arg missed!" % path}
fpath = os.path.abspath(os.sep.join(
[os.path.abspath(config.UPLOAD_ROOT_DIR), path]))
if not checkAccess(fpath):
return False, {"code": -1, "data": None, "message": "You have no access to [%s]!" % fpath}
if not os.path.exists(fpath):
return False, {"code": -1, "data": None, "message": "[%s] is not existed!" % fpath}
return True, os.path.abspath(fpath)
def saveToFile(saveFile, content):
try:
tfn = tempfile.mktemp()
tf = open(tfn, 'w+b')
tf.write(content)
tf.close()
os.rename(tfn, saveFile)
return True
except Exception as e:
traceback.print_exc()
logger.error(str(e))
return False
def getFileInfo(infofile):
info = dict()
info.update({
"isfile": os.path.isfile(infofile),
"isdir": os.path.isdir(infofile),
"size": os.path.getsize(infofile),
"atime": os.path.getatime(infofile),
"mtime": os.path.getmtime(infofile),
"ctime": os.path.getctime(infofile),
"name": os.path.basename(infofile)
})
return info
class UploadResource(object):
def __init__(self):
super(UploadResource, self).__init__()
def download(self, data):
obj = json.loads(data)
isAccessed, path = checkPath(obj["path"])
if not isAccessed:
return {"code": -1, "data": None, "message": "invaild access"}
if not os.path.isfile(path):
return {"code": -1, "data": None, "message": "Path [%s] is not a valid file!" % path}
try:
with open(path, "rb") as f:
content = base64.b64encode(f.read())
md5code = md5(content).hexdigest()
return {
"data": {
"content": content,
"md5": md5code,
"filename": os.path.basename(path)
},
"code": 0,
"message": "download file [%s] successfully!" % obj['path']
}
except Exception as e:
traceback.print_exc()
logger.error(str(e))
return {
"data": None,
"code": -1,
"message": "upload file [%s] failed!\n %s" % (obj['path'], repr(e))
}
def delete(self, data):
try:
isAccessed, path = checkPath(data["path"])
if not isAccessed:
return {"code": -1, "data": None, "message": "invaild access"}
if os.path.isfile(path):
os.remove(path)
return {"code": 0, "data": None, "message": "delete file [%s] successfully!" % path}
elif os.path.isdir(path):
os.rmdir(path)
return {"code": 0, "data": None, "message": "delete dir [%s] successfully!" % path}
else:
return {"code": 0, "data": None, "message": "Path [%s] is not a valid file or path!" % path}
except Exception as e:
traceback.print_exc()
logger.error(str(e))
return {"code": -1, "data": None, "message": repr(e)}
def dirlist(self, data):
obj = json.loads(data)
isAccessed, path = checkPath(obj["path"])
if not isAccessed:
return {"code": -1, "data": None, "message": "invaild access"}
result = []
for p in os.listdir(path):
result.append(getFileInfo(os.path.join(config.UPLOAD_ROOT_DIR, p)))
return {"code": 0, "result": result, "message": "Get [%s] successfully!" % path}
def filemd5(self, data):
obj = json.loads(data)
isAccessed, path = checkPath(obj["path"])
if not isAccessed:
return {"code": -1, "data": None, "message": "invaild access"}
if not os.path.isfile(path):
return {"code": -1, "data": None, "message": "Path [%s] is not a valid file!" % path}
with open(path, "rb") as f:
filemd5 = md5(f.read()).hexdigest()
return {"code": 0, "result": filemd5, "message": "Get md5 of [%s] successfully!" % path}
def fileinfo(self, data):
obj = json.loads(data)
isAccessed, path = checkPath(obj["path"])
if not isAccessed:
return {"code": -1, "data": None, "message": "invaild access"}
if not os.path.isfile(path):
return {"code": -1, "data": None, "message": "Path [%s] is not a valid file!" % path}
return {"code": 0, "result": getFileInfo(path), "message": "Get md5 of [%s] successfully!" % path}
uploadResource = UploadResource()
'''
Author: your name
Date: 2021-07-14 18:14:14
LastEditTime: 2021-07-14 18:35:57
Date: 2021-07-15 09:33:39
LastEditTime: 2021-07-15 10:22:20
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\models\annex.py
FilePath: \evm-store\tools\build_out\models\annex.20210715101849.py
'''
# -*- coding: utf-8 -*-
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from application.app import db, ma
from .base import PrimaryModel
......@@ -30,14 +31,14 @@ class AnnexModel(PrimaryModel):
self.path = path
self.size = size
self.create_by = create_by
self.update_by = update_by
self.create_at = create_at
self.update_by = update_by
self.update_at = update_at
def __repr__(self):
return '<AnnexModel %r>' % (self.app)
def to_json(self):
def to_dict(self):
return {
'app': self.app,
'title': self.title,
......
# -*- coding: utf-8 -*-
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from application.app import db, ma
from .base import PrimaryModel
......@@ -7,19 +8,19 @@ from marshmallow import Schema, fields, INCLUDE, EXCLUDE
class AreaModel(PrimaryModel):
__tablename__ = 'evm_area'
areaCode = db.Column(db.String(20), index = True, nullable = False)
areaName = db.Column(db.String(20), index = True, nullable = False)
areaCode = db.Column(db.String(20), index = True, nullable = False, default = '')
areaName = db.Column(db.String(20), index = True, nullable = False, default = '')
level = db.Column(db.Integer, nullable = False, default = 1)
cityCode = db.Column(db.Integer, nullable = True)
center = db.Column(db.String(20), index = True, nullable = False)
parentId = db.Column(db.String(20), nullable = True)
hasChildren = db.Column(db.Boolean, nullable = True)
cityCode = db.Column(db.Integer, nullable = True, default = 0)
center = db.Column(db.String(20), index = True, nullable = False, default = '')
parentId = db.Column(db.String(20), nullable = True, default = '')
hasChildren = db.Column(db.Boolean, nullable = True, default = False)
# __table_args__ = (
# db.Index('idx_xxx', 'xxx', mysql_using='btree'),
# )
def __init__(self, areaCode, areaName, level, cityCode, center, parentId, hasChildren):
def __init__(self, areaCode='', areaName='', level=1, cityCode=0, center='', parentId='', hasChildren=False):
self.areaCode = areaCode
self.areaName = areaName
self.level = level
......
# -*- coding: utf-8 -*-
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import uuid
from datetime import datetime
......
# -*- coding: utf-8 -*-
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from application.app import db, ma
from .base import PrimaryModel
......@@ -16,7 +17,7 @@ class DeviceModel(PrimaryModel):
# db.Index('idx_xxx', 'xxx', mysql_using='btree'),
# )
def __init__(self, imei, name, type, desc):
def __init__(self, imei, name='', type='', desc=''):
self.imei = imei
self.name = name
self.type = type
......@@ -25,7 +26,7 @@ class DeviceModel(PrimaryModel):
def __repr__(self):
return '<DeviceModel %r>' % (self.imei)
def to_json(self):
def to_dict(self):
return {
'imei': self.imei,
'name': self.name,
......
# -*- coding: utf-8 -*-
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from application.app import db, ma
from .base import PrimaryModel
from marshmallow import Schema, fields, INCLUDE, EXCLUDE
class MonitorEvmModel(PrimaryModel):
__tablename__ = 'evm_monitorEvm'
__tablename__ = 'evm_monitor_evm'
watch = db.Column(db.Integer, nullable = False)
heap_map_size = db.Column(db.Integer, nullable = True)
heap_total_size = db.Column(db.Integer, nullable = False)
heap_used_size = db.Column(db.Integer, nullable = True)
stack_total_size = db.Column(db.Integer, nullable = True)
stack_used_size = db.Column(db.Integer, nullable = False)
heap_map_size = db.Column(db.Integer, nullable = True, default = 0)
heap_total_size = db.Column(db.Integer, nullable = False, default = 0)
heap_used_size = db.Column(db.Integer, nullable = True, default = 0)
stack_total_size = db.Column(db.Integer, nullable = True, default = 0)
stack_used_size = db.Column(db.Integer, nullable = False, default = 0)
# __table_args__ = (
# db.Index('idx_xxx', 'xxx', mysql_using='btree'),
# )
def __init__(self, watch, heap_map_size, heap_total_size, heap_used_size, stack_total_size, stack_used_size):
def __init__(self, watch, heap_map_size=0, heap_total_size=0, heap_used_size=0, stack_total_size=0, stack_used_size=0):
self.watch = watch
self.heap_map_size = heap_map_size
self.heap_total_size = heap_total_size
......@@ -29,7 +30,7 @@ class MonitorEvmModel(PrimaryModel):
def __repr__(self):
return '<MonitorEvmModel %r>' % (self.watch)
def to_json(self):
def to_dict(self):
return {
'watch': self.watch,
'heap_map_size': self.heap_map_size,
......
# -*- coding: utf-8 -*-
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from application.app import db, ma
from .base import PrimaryModel
from marshmallow import Schema, fields, INCLUDE, EXCLUDE
class MonitorImageModel(PrimaryModel):
__tablename__ = 'evm_monitorImage'
__tablename__ = 'evm_monitor_image'
watch = db.Column(db.Integer, nullable = False)
length = db.Column(db.Integer, nullable = True)
png_uncompressed_size = db.Column(db.Integer, nullable = False)
png_total_count = db.Column(db.Integer, nullable = True)
png_file_size = db.Column(db.Integer, nullable = True)
length = db.Column(db.Integer, nullable = True, default = 0)
png_uncompressed_size = db.Column(db.Integer, nullable = False, default = 0)
png_total_count = db.Column(db.Integer, nullable = True, default = 0)
png_file_size = db.Column(db.Integer, nullable = True, default = 0)
uri = db.Column(db.String(20), index = True, nullable = False, default = '')
# __table_args__ = (
# db.Index('idx_xxx', 'xxx', mysql_using='btree'),
# )
def __init__(self, watch, length, png_uncompressed_size, png_total_count, png_file_size, uri):
def __init__(self, watch, length=0, png_uncompressed_size=0, png_total_count=0, png_file_size=0, uri=''):
self.watch = watch
self.length = length
self.png_uncompressed_size = png_uncompressed_size
......@@ -29,7 +30,7 @@ class MonitorImageModel(PrimaryModel):
def __repr__(self):
return '<MonitorImageModel %r>' % (self.watch)
def to_json(self):
def to_dict(self):
return {
'watch': self.watch,
'length': self.length,
......
# -*- coding: utf-8 -*-
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from application.app import db, ma
from .base import PrimaryModel
from marshmallow import Schema, fields, INCLUDE, EXCLUDE
class MonitorLvglModel(PrimaryModel):
__tablename__ = 'evm_monitorLvgl'
__tablename__ = 'evm_monitor_lvgl'
watch = db.Column(db.Integer, nullable = False)
total_size = db.Column(db.Integer, nullable = True)
free_cnt = db.Column(db.Integer, nullable = False)
free_size = db.Column(db.Integer, nullable = True)
free_biggest_size = db.Column(db.Integer, nullable = False)
used_cnt = db.Column(db.Integer, nullable = False)
used_pct = db.Column(db.Integer, nullable = False)
frag_pct = db.Column(db.Integer, nullable = False)
total_size = db.Column(db.Integer, nullable = True, default = 0)
free_cnt = db.Column(db.Integer, nullable = False, default = 0)
free_size = db.Column(db.Integer, nullable = True, default = 0)
free_biggest_size = db.Column(db.Integer, nullable = False, default = 0)
used_cnt = db.Column(db.Integer, nullable = False, default = 0)
used_pct = db.Column(db.Integer, nullable = False, default = 0)
frag_pct = db.Column(db.Integer, nullable = False, default = 0)
# __table_args__ = (
# db.Index('idx_xxx', 'xxx', mysql_using='btree'),
# )
def __init__(self, watch, total_size, free_cnt, free_size, free_biggest_size, used_cnt, used_pct, frag_pct):
def __init__(self, watch, total_size=0, free_cnt=0, free_size=0, free_biggest_size=0, used_cnt=0, used_pct=0, frag_pct=0):
self.watch = watch
self.total_size = total_size
self.free_cnt = free_cnt
......@@ -33,7 +34,7 @@ class MonitorLvglModel(PrimaryModel):
def __repr__(self):
return '<MonitorLvglModel %r>' % (self.watch)
def to_json(self):
def to_dict(self):
return {
'watch': self.watch,
'total_size': self.total_size,
......
# -*- coding: utf-8 -*-
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from application.app import db, ma
from .base import PrimaryModel
from marshmallow import Schema, fields, INCLUDE, EXCLUDE
class MonitorSystemModel(PrimaryModel):
__tablename__ = 'evm_monitorSystem'
__tablename__ = 'evm_monitor_system'
watch = db.Column(db.Integer, nullable = False)
free_size = db.Column(db.Integer, nullable = True)
free_size = db.Column(db.Integer, nullable = True, default = 0)
host = db.Column(db.String(20), index = True, nullable = False, default = '')
path = db.Column(db.String(20), index = True, nullable = False, default = '')
protocol = db.Column(db.String(20), index = True, nullable = False, default = '')
......@@ -17,7 +18,7 @@ class MonitorSystemModel(PrimaryModel):
# db.Index('idx_xxx', 'xxx', mysql_using='btree'),
# )
def __init__(self, watch, free_size, host, path, protocol):
def __init__(self, watch, free_size=0, host='', path='', protocol=''):
self.watch = watch
self.free_size = free_size
self.host = host
......@@ -27,7 +28,7 @@ class MonitorSystemModel(PrimaryModel):
def __repr__(self):
return '<MonitorSystemModel %r>' % (self.watch)
def to_json(self):
def to_dict(self):
return {
'watch': self.watch,
'free_size': self.free_size,
......
# -*- coding: utf-8 -*-
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from application.app import db, ma
from .base import PrimaryModel
from marshmallow import Schema, fields, INCLUDE, EXCLUDE
class MonitorWatchModel(PrimaryModel):
__tablename__ = 'evm_monitorWatch'
__tablename__ = 'evm_monitor_watch'
imei = db.Column(db.String(20), index = True, nullable = False, default = '')
......@@ -13,13 +14,13 @@ class MonitorWatchModel(PrimaryModel):
# db.Index('idx_xxx', 'xxx', mysql_using='btree'),
# )
def __init__(self, imei):
def __init__(self, imei=''):
self.imei = imei
def __repr__(self):
return '<MonitorWatchModel %r>' % (self.imei)
def to_json(self):
def to_dict(self):
return {
'imei': self.imei,
}
......
'''
Author: your name
Date: 2021-06-30 18:03:41
LastEditTime: 2021-07-12 01:59:31
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\models\package.py
'''
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from application.app import db, ma
from .base import PrimaryModel
from marshmallow import Schema, fields, INCLUDE, EXCLUDE
class PackageModel(PrimaryModel):
__tablename__ = 'evm_package'
app = db.Column(db.Integer, nullable = False)
app_version = db.Column(db.String(200), nullable = False)
package_info = db.Column(db.String(20), nullable = False)
file_path = db.Column(db.String(200), nullable = False)
source = db.Column(db.Integer, nullable = False)
user_agent = db.Column(db.String(200), nullable = False)
download_url = db.Column(db.String(200), nullable = False)
ip = db.Column(db.String(128), nullable = False)
geo_location = db.Column(db.String(200), nullable = False)
operator = db.Column(db.String(50), nullable = False)
# __table_args__ = (
# db.Index('idx_xxx', 'xxx', mysql_using='btree'),
# )
def __init__(self, app, app_version, package_info, file_path, source="", user_agent="", download_url="", ip="", geo_location="", operator="", create_by=None, create_at=None, update_by=None, update_at=None):
self.app = app
self.app_version = app_version
self.package_info = package_info
self.file_path = file_path
self.source = source
self.user_agent = user_agent
self.download_url = download_url
self.ip = ip
self.geo_location = geo_location
self.operator = operator
self.create_by = create_by
self.create_at = create_at
self.update_by = update_by
self.update_at = update_at
def __repr__(self):
return '<PackageModel %r>' % (self.app)
def to_dict(self):
return {
'app_version': self.app_version,
'package_info': self.package_info,
'file_path': self.file_path,
'source': self.source,
'user_agent': self.user_agent,
'download_url': self.download_url,
'ip': self.ip,
'geo_location': self.geo_location,
'operator': self.operator,
}
class GetListPackageSchema(ma.SQLAlchemySchema):
class Meta:
# unknown = INCLUDE # 未知字段默认包含
unknown = EXCLUDE # 未知字段默认排除
model = PackageModel
page = fields.Integer(required=False)
pageSize = fields.Integer(required=False)
app = ma.auto_field()
app_version = ma.auto_field()
package_info = ma.auto_field()
file_path = ma.auto_field()
source = ma.auto_field()
user_agent = ma.auto_field()
download_url = ma.auto_field()
ip = ma.auto_field()
geo_location = ma.auto_field()
operator = ma.auto_field()
getListPackageSchema = GetListPackageSchema()
getListPackagesSchema = GetListPackageSchema(many=True)
class GetPackageSchema(ma.SQLAlchemySchema):
class Meta:
# unknown = INCLUDE # 未知字段默认包含
unknown = EXCLUDE # 未知字段默认排除
model = PackageModel
app = ma.auto_field()
app_version = ma.auto_field()
package_info = ma.auto_field()
file_path = ma.auto_field()
source = ma.auto_field()
user_agent = ma.auto_field()
download_url = ma.auto_field()
ip = ma.auto_field()
geo_location = ma.auto_field()
operator = ma.auto_field()
getPackageSchema = GetPackageSchema()
'''
Author: your name
Date: 2021-06-30 18:03:41
LastEditTime: 2021-07-14 18:35:01
LastEditTime: 2021-07-15 10:22:39
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\models\package.py
'''
# -*- coding: utf-8 -*-
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from application.app import db, ma
from .base import PrimaryModel
......@@ -30,7 +31,7 @@ class PackageModel(PrimaryModel):
# db.Index('idx_xxx', 'xxx', mysql_using='btree'),
# )
def __init__(self, app, app_version, package_info, file_path, source=0, user_agent='', download_url='', ip='127.0.0.1', geo_location='', operator='', create_by=None, create_at=None, update_by=None, update_at=None):
def __init__(self, app, app_version, package_info, file_path, source="", user_agent="", download_url="", ip="", geo_location="", operator="", create_by=None, create_at=None, update_by=None, update_at=None):
self.app = app
self.app_version = app_version
self.package_info = package_info
......@@ -42,14 +43,14 @@ class PackageModel(PrimaryModel):
self.geo_location = geo_location
self.operator = operator
self.create_by = create_by
self.update_by = update_by
self.create_at = create_at
self.update_by = update_by
self.update_at = update_at
def __repr__(self):
return '<PackageModel %r>' % (self.app)
def to_json(self):
def to_dict(self):
return {
'app_version': self.app_version,
'package_info': self.package_info,
......
{"directories": [{"basename": "evueapps", "dirname": ".", "path": "evueapps", "timestamp": 1618901644, "type": "dir"}], "files": [{"basename": "appjs.c", "dirname": ".", "extension": "c", "filename": "appjs", "path": "appjs.c", "size": 2145, "timestamp": 1625480571, "type": "file"}, {"basename": "result.json", "dirname": ".", "extension": "json", "filename": "result", "path": "result.json", "size": 394, "timestamp": 1624420270, "type": "file"}]}
\ No newline at end of file
'''
Author: your name
Date: 2021-07-15 03:22:19
LastEditTime: 2021-07-15 09:12:48
LastEditors: your name
LastEditTime: 2021-07-15 10:20:28
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\views\__init__.py
'''
......
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from flask import current_app, jsonify, request
from flask_restful import Resource
from flask_restful.reqparse import RequestParser
......@@ -23,16 +26,16 @@ class AnnexResourceList(Resource):
json_payload = request.json
logger.warn(json_payload)
data = getListAnnexSchema.load(json_payload)
result = signalManager.actionGetListAnnex.emit(data)
result, message = signalManager.actionGetListAnnex.emit(data)
json_dumps = getListAnnexSchema.dump(result)
if result[0]:
json_dumps = getListAnnexsSchema.dump(result[1])
if result:
json_dumps = getListAnnexsSchema.dump(result.items)
logger.warn(json_dumps)
return response_result(ResponseCode.OK, data=json_dumps, count=result[2])
return response_result(ResponseCode.REQUEST_ERROR)
return response_result(message, data=json_dumps, count=result.total)
return response_result(message)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
class AnnexResource(Resource):
def __init__(self):
......@@ -51,14 +54,14 @@ class AnnexResource(Resource):
json_payload = request.json
print("========>", uuid, json_payload)
data = getAnnexSchema.load(json_payload)
result = signalManager.actionGetAnnex.emit(uuid, data)
if result[0]:
json_dumps = getAnnexSchema.dump(result[1])
return response_result(ResponseCode.OK, data=json_dumps)
return response_result(ResponseCode.NO_DATA)
result, message = signalManager.actionGetAnnex.emit(uuid, data)
if result:
json_dumps = getAnnexSchema.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.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
@jwt_required(locations=["headers"])
......@@ -67,10 +70,8 @@ class AnnexResource(Resource):
json_payload = request.json
print("========>", uuid, json_payload)
# data = deleteAnnexSchema.load(json_payload)
result = signalManager.actionDeleteAnnex.emit(uuid)
if result[0] == True:
return response_result(ResponseCode.OK)
return response_result(ResponseCode.REQUEST_ERROR, msg=result[1])
result, message = signalManager.actionDeleteAnnex.emit(uuid)
return response_result(message, data=result)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
#!/usr/bin/env python
# -*- coding: utf_8 -*-
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.app import postAppSchema, deleteAppSchema, getListAppSchema, getListAppsSchema, getAppSchema, putAppSchema
from webcreator.log import logger
from webcreator.response import ResponseCode, response_result
class AppResourceList(Resource):
def __init__(self):
pass
# 特殊参数,即不是从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 = getListAppSchema.load(json_payload)
result, message = signalManager.actionGetListApp.emit(data)
json_dumps = getListAppSchema.dump(result)
if result:
json_dumps = getListAppsSchema.dump(result.items)
logger.warn(json_dumps)
return response_result(message, data=json_dumps, count=result.total)
return response_result(message)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
@jwt_required(locations=["headers"])
def post(self):
try:
json_payload = request.json
data = postAppSchema.load(json_payload)
result, message = signalManager.actionPostApp.emit(data)
logger.info(result)
logger.warn(message)
return response_result(message)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
class AppResource(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 = getAppSchema.load(json_payload)
result, message = signalManager.actionGetApp.emit(uuid, data)
if result:
json_dumps = getAppSchema.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)
@jwt_required(locations=["headers"])
def put(self, uuid):
try:
json_payload = request.json
print("========>", uuid, json_payload)
data = putAppSchema.load(json_payload)
result, message = signalManager.actionPutApp.emit(uuid, data)
logger.info(result)
logger.info(message)
return response_result(message, data=result)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
@jwt_required(locations=["headers"])
def delete(self, uuid):
try:
json_payload = request.json
print("========>", uuid, json_payload)
# data = deleteAppSchema.load(json_payload)
result, message = signalManager.actionDeleteApp.emit(uuid)
return response_result(message, data=result)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
......@@ -25,29 +25,28 @@ class AppResourceList(Resource):
data = getListAppSchema.load(json_payload)
result = signalManager.actionGetListApp.emit(data)
json_dumps = getListAppSchema.dump(result)
if result[0]:
json_dumps = getListAppsSchema.dump(result[1])
if result:
json_dumps = getListAppsSchema.dump(result.items)
logger.warn(json_dumps)
return response_result(ResponseCode.OK, data=json_dumps, count=result[2])
return response_result(ResponseCode.REQUEST_ERROR)
return response_result(ResponseCode.HTTP_SUCCESS, data=json_dumps, count=result.total)
return response_result(ResponseCode.HTTP_NOT_FOUND)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
@jwt_required(locations=["headers"])
def post(self):
try:
json_payload = request.json
data = postAppSchema.load(json_payload)
result = signalManager.actionPostApp.emit(data)
if result[0] == False:
# json_dumps = postAppSchema.dump(result)
return response_result(ResponseCode.REQUEST_ERROR, msg=result[1])
logger.warn(result)
return response_result(ResponseCode.OK)
result, message = signalManager.actionPostApp.emit(data)
if result:
logger.warn(result)
return response_result(ResponseCode.HTTP_SUCCESS, data=result, msg=message)
return response_result(ResponseCode.HTTP_NOT_FOUND)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
class AppResource(Resource):
......@@ -67,14 +66,14 @@ class AppResource(Resource):
json_payload = request.json
print("========>", uuid, json_payload)
data = getAppSchema.load(json_payload)
result = signalManager.actionGetApp.emit(uuid, data)
if result[0]:
json_dumps = getAppSchema.dump(result[1])
return response_result(ResponseCode.OK, data=json_dumps)
return response_result(ResponseCode.NO_DATA)
result, message = signalManager.actionGetApp.emit(uuid, data)
if result:
json_dumps = getAppSchema.dump(result)
return response_result(ResponseCode.HTTP_SUCCESS, data=json_dumps, msg=message)
return response_result(ResponseCode.HTTP_NOT_FOUND)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
@jwt_required(locations=["headers"])
......@@ -83,14 +82,13 @@ class AppResource(Resource):
json_payload = request.json
print("========>", uuid, json_payload)
data = putAppSchema.load(json_payload)
result = signalManager.actionPutApp.emit(uuid, data)
if result[0] == True:
# json_dumps = putAppSchema.dump(result)
return response_result(ResponseCode.OK)
return response_result(ResponseCode.NOTHING_CHANGE, msg=result[1])
result, message = signalManager.actionPutApp.emit(uuid, data)
if result:
return response_result(ResponseCode.HTTP_SUCCESS, data=result, msg=message)
return response_result(ResponseCode.HTTP_NO_CHANGE, msg=message)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
@jwt_required(locations=["headers"])
......@@ -99,10 +97,10 @@ class AppResource(Resource):
json_payload = request.json
print("========>", uuid, json_payload)
# data = deleteAppSchema.load(json_payload)
result = signalManager.actionDeleteApp.emit(uuid)
if result[0] == True:
return response_result(ResponseCode.OK)
return response_result(ResponseCode.REQUEST_ERROR, msg=result[1])
result, message = signalManager.actionDeleteApp.emit(uuid)
if result:
return response_result(ResponseCode.HTTP_SUCCESS, data=result, msg=message)
return response_result(ResponseCode.HTTP_NOT_FOUND, msg=message)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from flask import current_app, jsonify, request
from flask_restful import Resource
from flask_restful.reqparse import RequestParser
......@@ -23,13 +26,13 @@ class AreaResourceList(Resource):
json_payload = request.json
logger.warn(json_payload)
data = getListAreaSchema.load(json_payload)
result = signalManager.actionGetListArea.emit(data)
result, message = signalManager.actionGetListArea.emit(data)
json_dumps = getListAreaSchema.dump(result)
if result[0]:
json_dumps = getListAreasSchema.dump(result[1])
if result:
json_dumps = getListAreasSchema.dump(result.items)
logger.warn(json_dumps)
return response_result(ResponseCode.HTTP_SUCCESS, data=json_dumps, count=result[2])
return response_result(ResponseCode.HTTP_INVAILD_REQUEST)
return response_result(message, data=json_dumps, count=result.total)
return response_result(message)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
......@@ -39,12 +42,10 @@ class AreaResourceList(Resource):
try:
json_payload = request.json
data = postAreaSchema.load(json_payload)
result = signalManager.actionPostArea.emit(data)
if result[0] == False:
# json_dumps = postAreaSchema.dump(result)
return response_result(ResponseCode.HTTP_INVAILD_REQUEST, msg=result[1])
logger.warn(result)
return response_result(ResponseCode.HTTP_SUCCESS)
result, message = signalManager.actionPostArea.emit(data)
logger.info(result)
logger.warn(message)
return response_result(message)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
......@@ -67,11 +68,11 @@ class AreaResource(Resource):
json_payload = request.json
print("========>", uuid, json_payload)
data = getAreaSchema.load(json_payload)
result = signalManager.actionGetArea.emit(uuid, data)
if result[0]:
json_dumps = getAreaSchema.dump(result[1])
return response_result(ResponseCode.HTTP_SUCCESS, data=json_dumps)
return response_result(ResponseCode.HTTP_NOT_FOUND)
result, message = signalManager.actionGetArea.emit(uuid, data)
if result:
json_dumps = getAreaSchema.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)
......@@ -83,11 +84,10 @@ class AreaResource(Resource):
json_payload = request.json
print("========>", uuid, json_payload)
data = putAreaSchema.load(json_payload)
result = signalManager.actionPutArea.emit(uuid, data)
if result[0] == True:
# json_dumps = putAreaSchema.dump(result)
return response_result(ResponseCode.HTTP_SUCCESS)
return response_result(ResponseCode.NOTHING_CHANGE, msg=result[1])
result, message = signalManager.actionPutArea.emit(uuid, data)
logger.info(result)
logger.info(message)
return response_result(message, data=result)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
......@@ -99,10 +99,8 @@ class AreaResource(Resource):
json_payload = request.json
print("========>", uuid, json_payload)
# data = deleteAreaSchema.load(json_payload)
result = signalManager.actionDeleteArea.emit(uuid)
if result[0] == True:
return response_result(ResponseCode.HTTP_SUCCESS)
return response_result(ResponseCode.HTTP_INVAILD_REQUEST, msg=result[1])
result, message = signalManager.actionDeleteArea.emit(uuid)
return response_result(message, data=result)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from flask import current_app, jsonify, request
from flask_restful import Resource
from flask_restful.reqparse import RequestParser
......@@ -23,31 +26,29 @@ class DeviceResourceList(Resource):
json_payload = request.json
logger.warn(json_payload)
data = getListDeviceSchema.load(json_payload)
result = signalManager.actionGetListDevice.emit(data)
result, message = signalManager.actionGetListDevice.emit(data)
json_dumps = getListDeviceSchema.dump(result)
if result[0]:
json_dumps = getListDevicesSchema.dump(result[1])
if result:
json_dumps = getListDevicesSchema.dump(result.items)
logger.warn(json_dumps)
return response_result(ResponseCode.OK, data=json_dumps, count=result[2])
return response_result(ResponseCode.REQUEST_ERROR)
return response_result(message, data=json_dumps, count=result.total)
return response_result(message)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
@jwt_required(locations=["headers"])
def post(self):
try:
json_payload = request.json
data = postDeviceSchema.load(json_payload)
result = signalManager.actionPostDevice.emit(data)
if result[0] == False:
# json_dumps = postDeviceSchema.dump(result)
return response_result(ResponseCode.REQUEST_ERROR, msg=result[1])
logger.warn(result)
return response_result(ResponseCode.OK)
result, message = signalManager.actionPostDevice.emit(data)
logger.info(result)
logger.warn(message)
return response_result(message)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
class DeviceResource(Resource):
......@@ -67,14 +68,14 @@ class DeviceResource(Resource):
json_payload = request.json
print("========>", uuid, json_payload)
data = getDeviceSchema.load(json_payload)
result = signalManager.actionGetDevice.emit(uuid, data)
if result[0]:
json_dumps = getDeviceSchema.dump(result[1])
return response_result(ResponseCode.OK, data=json_dumps)
return response_result(ResponseCode.NO_DATA)
result, message = signalManager.actionGetDevice.emit(uuid, data)
if result:
json_dumps = getDeviceSchema.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.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
@jwt_required(locations=["headers"])
......@@ -83,14 +84,13 @@ class DeviceResource(Resource):
json_payload = request.json
print("========>", uuid, json_payload)
data = putDeviceSchema.load(json_payload)
result = signalManager.actionPutDevice.emit(uuid, data)
if result[0] == True:
# json_dumps = putDeviceSchema.dump(result)
return response_result(ResponseCode.OK)
return response_result(ResponseCode.NOTHING_CHANGE, msg=result[1])
result, message = signalManager.actionPutDevice.emit(uuid, data)
logger.info(result)
logger.info(message)
return response_result(message, data=result)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
@jwt_required(locations=["headers"])
......@@ -99,10 +99,8 @@ class DeviceResource(Resource):
json_payload = request.json
print("========>", uuid, json_payload)
# data = deleteDeviceSchema.load(json_payload)
result = signalManager.actionDeleteDevice.emit(uuid)
if result[0] == True:
return response_result(ResponseCode.OK)
return response_result(ResponseCode.REQUEST_ERROR, msg=result[1])
result, message = signalManager.actionDeleteDevice.emit(uuid)
return response_result(message, data=result)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
This diff is collapsed.
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from flask import current_app, jsonify, request
from flask_restful import Resource
from flask_restful.reqparse import RequestParser
......@@ -23,16 +26,16 @@ class MonitorEvmResourceList(Resource):
json_payload = request.json
logger.warn(json_payload)
data = getListMonitorEvmSchema.load(json_payload)
result = signalManager.actionGetListMonitorEvm.emit(data)
result, message = signalManager.actionGetListMonitorEvm.emit(data)
json_dumps = getListMonitorEvmSchema.dump(result)
if result[0]:
json_dumps = getListMonitorEvmsSchema.dump(result[1])
if result:
json_dumps = getListMonitorEvmsSchema.dump(result.items)
logger.warn(json_dumps)
return response_result(ResponseCode.OK, data=json_dumps, count=result[2])
return response_result(ResponseCode.REQUEST_ERROR)
return response_result(message, data=json_dumps, count=result.total)
return response_result(message)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
class MonitorEvmResource(Resource):
def __init__(self):
......@@ -51,11 +54,11 @@ class MonitorEvmResource(Resource):
json_payload = request.json
print("========>", uuid, json_payload)
data = getMonitorEvmSchema.load(json_payload)
result = signalManager.actionGetMonitorEvm.emit(uuid, data)
if result[0]:
json_dumps = getMonitorEvmSchema.dump(result[1])
return response_result(ResponseCode.OK, data=json_dumps)
return response_result(ResponseCode.NO_DATA)
result, message = signalManager.actionGetMonitorEvm.emit(uuid, data)
if result:
json_dumps = getMonitorEvmSchema.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.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from flask import current_app, jsonify, request
from flask_restful import Resource
from flask_restful.reqparse import RequestParser
......@@ -23,16 +26,16 @@ class MonitorImageResourceList(Resource):
json_payload = request.json
logger.warn(json_payload)
data = getListMonitorImageSchema.load(json_payload)
result = signalManager.actionGetListMonitorImage.emit(data)
result, message = signalManager.actionGetListMonitorImage.emit(data)
json_dumps = getListMonitorImageSchema.dump(result)
if result[0]:
json_dumps = getListMonitorImagesSchema.dump(result[1])
if result:
json_dumps = getListMonitorImagesSchema.dump(result.items)
logger.warn(json_dumps)
return response_result(ResponseCode.OK, data=json_dumps, count=result[2])
return response_result(ResponseCode.REQUEST_ERROR)
return response_result(message, data=json_dumps, count=result.total)
return response_result(message)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
class MonitorImageResource(Resource):
def __init__(self):
......@@ -51,11 +54,11 @@ class MonitorImageResource(Resource):
json_payload = request.json
print("========>", uuid, json_payload)
data = getMonitorImageSchema.load(json_payload)
result = signalManager.actionGetMonitorImage.emit(uuid, data)
if result[0]:
json_dumps = getMonitorImageSchema.dump(result[1])
return response_result(ResponseCode.OK, data=json_dumps)
return response_result(ResponseCode.NO_DATA)
result, message = signalManager.actionGetMonitorImage.emit(uuid, data)
if result:
json_dumps = getMonitorImageSchema.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.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from flask import current_app, jsonify, request
from flask_restful import Resource
from flask_restful.reqparse import RequestParser
......@@ -23,16 +26,16 @@ class MonitorLvglResourceList(Resource):
json_payload = request.json
logger.warn(json_payload)
data = getListMonitorLvglSchema.load(json_payload)
result = signalManager.actionGetListMonitorLvgl.emit(data)
result, message = signalManager.actionGetListMonitorLvgl.emit(data)
json_dumps = getListMonitorLvglSchema.dump(result)
if result[0]:
json_dumps = getListMonitorLvglsSchema.dump(result[1])
if result:
json_dumps = getListMonitorLvglsSchema.dump(result.items)
logger.warn(json_dumps)
return response_result(ResponseCode.OK, data=json_dumps, count=result[2])
return response_result(ResponseCode.REQUEST_ERROR)
return response_result(message, data=json_dumps, count=result.total)
return response_result(message)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
class MonitorLvglResource(Resource):
def __init__(self):
......@@ -51,11 +54,11 @@ class MonitorLvglResource(Resource):
json_payload = request.json
print("========>", uuid, json_payload)
data = getMonitorLvglSchema.load(json_payload)
result = signalManager.actionGetMonitorLvgl.emit(uuid, data)
if result[0]:
json_dumps = getMonitorLvglSchema.dump(result[1])
return response_result(ResponseCode.OK, data=json_dumps)
return response_result(ResponseCode.NO_DATA)
result, message = signalManager.actionGetMonitorLvgl.emit(uuid, data)
if result:
json_dumps = getMonitorLvglSchema.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.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from flask import current_app, jsonify, request
from flask_restful import Resource
from flask_restful.reqparse import RequestParser
......@@ -23,16 +26,16 @@ class MonitorSystemResourceList(Resource):
json_payload = request.json
logger.warn(json_payload)
data = getListMonitorSystemSchema.load(json_payload)
result = signalManager.actionGetListMonitorSystem.emit(data)
result, message = signalManager.actionGetListMonitorSystem.emit(data)
json_dumps = getListMonitorSystemSchema.dump(result)
if result[0]:
json_dumps = getListMonitorSystemsSchema.dump(result[1])
if result:
json_dumps = getListMonitorSystemsSchema.dump(result.items)
logger.warn(json_dumps)
return response_result(ResponseCode.OK, data=json_dumps, count=result[2])
return response_result(ResponseCode.REQUEST_ERROR)
return response_result(message, data=json_dumps, count=result.total)
return response_result(message)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
class MonitorSystemResource(Resource):
def __init__(self):
......@@ -51,11 +54,11 @@ class MonitorSystemResource(Resource):
json_payload = request.json
print("========>", uuid, json_payload)
data = getMonitorSystemSchema.load(json_payload)
result = signalManager.actionGetMonitorSystem.emit(uuid, data)
if result[0]:
json_dumps = getMonitorSystemSchema.dump(result[1])
return response_result(ResponseCode.OK, data=json_dumps)
return response_result(ResponseCode.NO_DATA)
result, message = signalManager.actionGetMonitorSystem.emit(uuid, data)
if result:
json_dumps = getMonitorSystemSchema.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.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from flask import current_app, jsonify, request
from flask_restful import Resource
from flask_restful.reqparse import RequestParser
......@@ -23,16 +26,16 @@ class MonitorWatchResourceList(Resource):
json_payload = request.json
logger.warn(json_payload)
data = getListMonitorWatchSchema.load(json_payload)
result = signalManager.actionGetListMonitorWatch.emit(data)
result, message = signalManager.actionGetListMonitorWatch.emit(data)
json_dumps = getListMonitorWatchSchema.dump(result)
if result[0]:
json_dumps = getListMonitorWatchsSchema.dump(result[1])
if result:
json_dumps = getListMonitorWatchsSchema.dump(result.items)
logger.warn(json_dumps)
return response_result(ResponseCode.OK, data=json_dumps, count=result[2])
return response_result(ResponseCode.REQUEST_ERROR)
return response_result(message, data=json_dumps, count=result.total)
return response_result(message)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
class MonitorWatchResource(Resource):
def __init__(self):
......@@ -51,11 +54,11 @@ class MonitorWatchResource(Resource):
json_payload = request.json
print("========>", uuid, json_payload)
data = getMonitorWatchSchema.load(json_payload)
result = signalManager.actionGetMonitorWatch.emit(uuid, data)
if result[0]:
json_dumps = getMonitorWatchSchema.dump(result[1])
return response_result(ResponseCode.OK, data=json_dumps)
return response_result(ResponseCode.NO_DATA)
result, message = signalManager.actionGetMonitorWatch.emit(uuid, data)
if result:
json_dumps = getMonitorWatchSchema.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.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
#!/usr/bin/env python
# -*- coding: utf_8 -*-
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):
pass
# 特殊参数,即不是从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 = getListPackageSchema.load(json_payload)
result, message = signalManager.actionGetListPackage.emit(data)
json_dumps = getListPackageSchema.dump(result)
if result:
json_dumps = getListPackagesSchema.dump(result.items)
logger.warn(json_dumps)
return response_result(message, data=json_dumps, count=result.total)
return response_result(message)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
class PackageResource(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 = getPackageSchema.load(json_payload)
result, message = signalManager.actionGetPackage.emit(uuid, data)
if result:
json_dumps = getPackageSchema.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)
'''
Author: your name
Date: 2021-06-15 17:40:14
LastEditTime: 2021-07-14 18:28:54
LastEditTime: 2021-06-30 17:22:44
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\tools\resources\webcreator\event.py
......
'''
Author: your name
Date: 2021-04-22 18:04:15
LastEditTime: 2021-07-14 18:28:45
LastEditTime: 2021-07-14 18:38:28
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\tools\resources\webcreator\log.py
......
......@@ -26,16 +26,9 @@ import string
import datetime
import threading
import decimal
class Klass:
def __init__(self):
pass
klass = Klass()
def dict2obj(dictionary):
klass.__dict__.update(dictionary)
return klass
import urllib
from urllib import parse, request
from urllib.parse import urlparse, urljoin, urlencode
class DecimalEncoder(json.JSONEncoder):
def default(self, o):
......@@ -43,19 +36,6 @@ class DecimalEncoder(json.JSONEncoder):
return float(o)
super(DecimalEncoder, self).default(o)
class ObjectDict(dict):
"""Makes a dictionary behave like an object, with attribute-style access.
"""
def __getattr__(self, name):
try:
return self[name]
except KeyError:
raise AttributeError(name)
def __setattr__(self, name, value):
self[name] = value
def ThreadMaker(f):
def runner(*args, **argv):
t = threading.Thread(target=f, args=args, kwargs=argv)
......@@ -132,7 +112,7 @@ def secondsToTime(seconds, sep=":"):
return sep.join([str(i) for i in [h, m, s]])
def md5_salt(s):
def md5_encryption(s):
md5 = hashlib.md5("EhuqUkwV".encode("utf-8"))
md5.update(s.encode('utf-8'))
return md5.hexdigest()
......@@ -148,6 +128,20 @@ def filter_dict(source: dict, rules_list: list):
return result
def get_location_by_ip(ip):
params = { 'ak': 'aZEAgYG8wKuLd6DS9BmCloGtfnGGkRMn', 'coor': 'bd09ll' }
parameters = urllib.parse.urlencode(params)
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko' }
if ip != '127.0.0.1':
params.update({ 'ip': ip })
parameters = urllib.parse.urlencode(params)
url = 'http://api.map.baidu.com/location/ip'
req = request.Request(url='%s%s%s' % (url, '?', parameters), headers=headers)
ret = request.urlopen(req).read()
jsonData = json.loads(ret)
return jsonData
def sql_filter(sql):
return re.sub(r"[\"\\/*\'=\-#;<>+%$()!@]", "", sql)
......@@ -158,12 +152,37 @@ def random_string(length=32):
def get_days_before_datetime(dt, dayAgo):
if not isinstance(dt, datetime.datetime):
dt = datetime.datetime.strptime(dt, "%Y-%m-%d %H:%M:%S")
# 先获得时间数组格式的日期
dayAgo = (dt - datetime.timedelta(days = dayAgo))
# 转换为其他字符串格式
return dayAgo.strftime("%Y-%m-%d %H:%M:%S")
class Klass:
def __init__(self):
pass
klass = Klass()
def dict2obj(dictionary):
klass.__dict__.update(dictionary)
return klass
class ObjectDict(Dict[str, Any]):
"""Makes a dictionary behave like an object, with attribute-style access."""
def __getattr__(self, name: str) -> Any:
try:
return self[name]
except KeyError:
raise AttributeError(name)
def __setattr__(self, name: str, value: Any) -> None:
self[name] = value
if __name__ == "__main__":
d = { 'a': 1, 'b': 2 }
print(dict2obj(d))
print(os.path.abspath(__file__))
print(random_string(7))
\ No newline at end of file
print(random_string(7))
'''
Author: your name
Date: 2021-06-30 17:43:46
LastEditTime: 2021-07-14 18:37:35
LastEditors: Please set LastEditors
Date: 2021-06-15 17:40:19
LastEditTime: 2021-07-14 18:38:12
LastEditors: your name
Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\webcreator\webscoket.py
FilePath: \evm-store\tools\resources\webcreator\webscoket.py
'''
#!/usr/bin/env python
# -*- coding: utf_8 -*-
......
......@@ -50,7 +50,7 @@
"apis": [
{
"name": "area",
"enable": false,
"enable": true,
"controller": {
"className": "Resource"
},
......@@ -329,7 +329,7 @@
},
{
"name": "app",
"enable": true,
"enable": false,
"controller": {
"className": "Resource"
},
......@@ -556,7 +556,7 @@
},
{
"name": "package",
"enable": true,
"enable": false,
"controller": {
"className": "Resource"
},
......
[2021-07-14 18:14:14,257][ INFO][in gen_code.py -> copyFiles line:107] copy files finished!
[2021-07-15 10:18:49,740][ INFO][in gen_code.py -> copyFiles line:107] copy files finished!
[2021-07-15 10:18:49,941][ ERROR][in gen_code.py -> handleModules line:132] Îļþ£º%s ²»´æÔÚ
......@@ -26,16 +26,9 @@ import string
import datetime
import threading
import decimal
class Klass:
def __init__(self):
pass
klass = Klass()
def dict2obj(dictionary):
klass.__dict__.update(dictionary)
return klass
import urllib
from urllib import parse, request
from urllib.parse import urlparse, urljoin, urlencode
class DecimalEncoder(json.JSONEncoder):
def default(self, o):
......@@ -43,19 +36,6 @@ class DecimalEncoder(json.JSONEncoder):
return float(o)
super(DecimalEncoder, self).default(o)
class ObjectDict(dict):
"""Makes a dictionary behave like an object, with attribute-style access.
"""
def __getattr__(self, name):
try:
return self[name]
except KeyError:
raise AttributeError(name)
def __setattr__(self, name, value):
self[name] = value
def ThreadMaker(f):
def runner(*args, **argv):
t = threading.Thread(target=f, args=args, kwargs=argv)
......@@ -132,7 +112,7 @@ def secondsToTime(seconds, sep=":"):
return sep.join([str(i) for i in [h, m, s]])
def md5_salt(s):
def md5_encryption(s):
md5 = hashlib.md5("EhuqUkwV".encode("utf-8"))
md5.update(s.encode('utf-8'))
return md5.hexdigest()
......@@ -148,6 +128,20 @@ def filter_dict(source: dict, rules_list: list):
return result
def get_location_by_ip(ip):
params = { 'ak': 'aZEAgYG8wKuLd6DS9BmCloGtfnGGkRMn', 'coor': 'bd09ll' }
parameters = urllib.parse.urlencode(params)
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko' }
if ip != '127.0.0.1':
params.update({ 'ip': ip })
parameters = urllib.parse.urlencode(params)
url = 'http://api.map.baidu.com/location/ip'
req = request.Request(url='%s%s%s' % (url, '?', parameters), headers=headers)
ret = request.urlopen(req).read()
jsonData = json.loads(ret)
return jsonData
def sql_filter(sql):
return re.sub(r"[\"\\/*\'=\-#;<>+%$()!@]", "", sql)
......@@ -158,12 +152,37 @@ def random_string(length=32):
def get_days_before_datetime(dt, dayAgo):
if not isinstance(dt, datetime.datetime):
dt = datetime.datetime.strptime(dt, "%Y-%m-%d %H:%M:%S")
# 先获得时间数组格式的日期
dayAgo = (dt - datetime.timedelta(days = dayAgo))
# 转换为其他字符串格式
return dayAgo.strftime("%Y-%m-%d %H:%M:%S")
class Klass:
def __init__(self):
pass
klass = Klass()
def dict2obj(dictionary):
klass.__dict__.update(dictionary)
return klass
class ObjectDict(Dict[str, Any]):
"""Makes a dictionary behave like an object, with attribute-style access."""
def __getattr__(self, name: str) -> Any:
try:
return self[name]
except KeyError:
raise AttributeError(name)
def __setattr__(self, name: str, value: Any) -> None:
self[name] = value
if __name__ == "__main__":
d = { 'a': 1, 'b': 2 }
print(dict2obj(d))
print(os.path.abspath(__file__))
print(random_string(7))
\ No newline at end of file
print(random_string(7))
# -*- coding: utf-8 -*-
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import uuid
from datetime import datetime
......@@ -35,4 +36,4 @@ class UuidBaseModel(BaseModel):
class SortBaseModel(BaseModel):
__abstract__ = True
sort = db.Column(db.Integer, default=0)
\ No newline at end of file
sort = db.Column(db.Integer, default=0)
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from datetime import datetime
from application.app import db
from models.{{ config['name'] }} import {{ config['name'] | letterUpper }}Model
from webcreator.log import logger
# from webcreator.response import ResponseCode, response_result
from webcreator.response import ResponseCode
class {{ config['name'] | letterUpper }}Resource(object):
def __init__(self):
......@@ -13,8 +16,8 @@ class {{ config['name'] | letterUpper }}Resource(object):
filters = [{{ config['name'] | letterUpper }}Model.is_delete==False, {{ config['name'] | letterUpper }}Model.uuid==uuid]
result = {{ config['name'] | letterUpper }}Model.query.filter(*filters).first()
if result:
return (True, result)
return (False, result)
return result, ResponseCode.HTTP_SUCCESS
return None, ResponseCode.HTTP_NOT_FOUND
def getList(self, params):
# handle business
......@@ -22,7 +25,9 @@ class {{ config['name'] | letterUpper }}Resource(object):
filters = [{{ config['name'] | letterUpper }}Model.is_delete==False]
result = {{ config['name'] | letterUpper }}Model.query.filter(*filters).order_by({{ config['name'] | letterUpper }}Model.create_at).paginate(params.get('page', 1), params.get('pageSize', 10), error_out=False)
return (True, result.items, result.total)
if result:
return result, ResponseCode.HTTP_SUCCESS
return None, ResponseCode.HTTP_NOT_FOUND
def post(self, params, jwt={}):
# handle business
......@@ -32,20 +37,20 @@ class {{ config['name'] | letterUpper }}Resource(object):
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
elif result and result.is_delete == False:
return (False, "record code exists")
return False, ResponseCode.HTTP_INVAILD_REQUEST
result = {{ config['name'] | letterUpper }}Model(**params)
db.session.add(result)
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
def put(self, uuid, params, jwt={}):
# handle business
result = {{ config['name'] | letterUpper }}Model.query.filter({{ config['name'] | letterUpper }}Model.uuid==uuid).first()
if not result:
return (False, "record not exists")
return None, ResponseCode.HTTP_NOT_FOUND
if params:
for key, value in params.items():
......@@ -53,21 +58,21 @@ class {{ config['name'] | letterUpper }}Resource(object):
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
else:
return (False, "params is null")
return False, ResponseCode.HTTP_INVAILD_REQUEST
def delete(self, uuid, jwt={}):
# handle business
result = {{ config['name'] | letterUpper }}Model.query.filter({{ config['name'] | letterUpper }}Model.uuid==uuid).first()
if not result:
return (False, "record not exists")
return False, ResponseCode.HTTP_NOT_FOUND
result.update_by = jwt.get("id", "")
result.update_date = datetime.now()
result.is_delete = True
db.session.delete(result)
db.session.commit()
return (True, None)
return True, ResponseCode.HTTP_SUCCESS
{{ config["name"] }}Manager = {{ config['name'] | letterUpper }}Resource()
\ No newline at end of file
{{ config["name"] }}Manager = {{ config['name'] | letterUpper }}Resource()
# -*- coding: utf-8 -*-
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from application.app import db, ma
from .base import PrimaryModel
......@@ -7,14 +8,14 @@ from marshmallow import Schema, fields, INCLUDE, EXCLUDE
{%- endif %}
class {{ config['name'] | letterUpper }}Model(PrimaryModel):
__tablename__ = '{{ application["tablePrefix"] }}{{ config['name'] }}'
__tablename__ = {% if config.get("model").get("tableName", None) != None %}'{{ config.get("model").get("tableName") }}'{% else %}'{{ application["tablePrefix"] }}{{ config['name'] }}'{% endif %}
{% for value in config['model']['fields'] %}
{%- if value.get('primaryKey', None) %}
{{ value.get('name') }} = db.Column(db.{{ value.get('dataType') }}, primary_key = True)
{%- elif value.get('dataType') == "Int" or value.get('dataType') == "Integer" %}
{{ value.get('name') }} = db.Column(db.{{ value.get('dataType') }}{% if value.get("length", None) %}{% endif %}{% if value.get("index", False) %}, index = True{% endif %}{% if value.get("required", False) %}, nullable = False{% else %}, nullable = True{% endif %}{% if value.get("default", None) %}, default = {{value.get("default")}}{% endif %})
{{ value.get('name') }} = db.Column(db.{{ value.get('dataType') }}{% if value.get("length", None) %}{% endif %}{% if value.get("index", False) %}, index = True{% endif %}{% if value.get("required", False) %}, nullable = False{% else %}, nullable = True{% endif %}{% if value.get("default", None) != None %}, default = {{value.get("default")}}{% endif %})
{%- else %}
{{ value.get('name') }} = db.Column(db.{{ value.get('dataType') }}{% if value.get("length", None) %}({{value.get("length")}}){% endif %}{% if value.get("index", False) %}, index = True{% endif %}{% if value.get("required", False) %}, nullable = False{% else %}, nullable = True{% endif %}{% if value.get("default", None) %}, default = {{value.get("default")}}{% endif %})
{{ value.get('name') }} = db.Column(db.{{ value.get('dataType') }}{% if value.get("length", None) %}({{value.get("length")}}){% endif %}{% if value.get("index", False) %}, index = True{% endif %}{% if value.get("required", False) %}, nullable = False{% else %}, nullable = True{% endif %}{% if value.get("default", None) != None %}, default = {{value.get("default")}}{% endif %})
{%- endif %}
{%- endfor %}
......@@ -22,7 +23,7 @@ class {{ config['name'] | letterUpper }}Model(PrimaryModel):
# db.Index('idx_xxx', 'xxx', mysql_using='btree'),
# )
def __init__(self{% for value in config['model']['fields'] %}, {{ value.get("name") }}{% endfor %}):
def __init__(self{% for value in config['model']['fields'] %}, {% if value.get("default", None) != None %}{{ value.get("name") }}={{ value.get("default") }}{% else %}{{ value.get("name") }}{% endif %}{% endfor %}):
{%- for value in config['model']['fields'] %}
self.{{ value.get("name") }} = {{ value.get("name") }}
{%- endfor %}
......@@ -30,7 +31,7 @@ class {{ config['name'] | letterUpper }}Model(PrimaryModel):
def __repr__(self):
return '<{{ config['name'] | letterUpper }}Model %r>' % (self.{{ config['model']['fields'][0]["name"] }})
def to_json(self):
def to_dict(self):
return {
{%- for item in config['model']['fields'] %}
{%- if item.get("toJson") %}
......@@ -48,8 +49,8 @@ class {{ key | letterUpper }}{{ config['name'] | letterUpper }}Schema(ma.SQLAlch
{%- if config['model']['foreignKey'] %}
include_fk = {{ config['model']['foreignKey'] }}
{% endif %}
{#
这里需要判断下,如果是数据库表的字段,则使用auto_field(),否则应该使用json配置中的字段信息
{#
这里需要判断下,如果是数据库表的字段,则使用auto_field(),否则应该使用json配置中的字段信息
class BandMembersSchema(Schema):
# missing用来指定反序列化时默认缺省值,default用来指定序列化时默认缺省值
......@@ -82,4 +83,4 @@ class {{ key | letterUpper }}{{ config['name'] | letterUpper }}Schema(ma.SQLAlch
{%- if key == "getList" %}
{{ key }}{{ config['name'] | letterUpper }}sSchema = {{ key | letterUpper }}{{ config['name'] | letterUpper }}Schema(many=True)
{%- endif %}
{% endfor %}
\ No newline at end of file
{% endfor %}
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from flask import current_app, jsonify, request
from flask_restful import Resource
from flask_restful.reqparse import RequestParser
......@@ -30,16 +33,16 @@ class {{ config['name'] | letterUpper }}ResourceList(Resource):
json_payload = request.json
logger.warn(json_payload)
data = getList{{ config['name'] | letterUpper }}Schema.load(json_payload)
result = signalManager.actionGetList{{ config["name"] | letterUpper }}.emit(data)
result, message = signalManager.actionGetList{{ config["name"] | letterUpper }}.emit(data)
json_dumps = getList{{ config['name'] | letterUpper }}Schema.dump(result)
if result[0]:
json_dumps = getList{{ config['name'] | letterUpper }}sSchema.dump(result[1])
if result:
json_dumps = getList{{ config['name'] | letterUpper }}sSchema.dump(result.items)
logger.warn(json_dumps)
return response_result(ResponseCode.OK, data=json_dumps, count=result[2])
return response_result(ResponseCode.REQUEST_ERROR)
return response_result(message, data=json_dumps, count=result.total)
return response_result(message)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
{%- endif %}
{%- if config["view"]["post"] %}
......@@ -50,15 +53,13 @@ class {{ config['name'] | letterUpper }}ResourceList(Resource):
try:
json_payload = request.json
data = post{{ config['name'] | letterUpper }}Schema.load(json_payload)
result = signalManager.actionPost{{ config["name"] | letterUpper }}.emit(data)
if result[0] == False:
# json_dumps = post{{ config["name"] | letterUpper }}Schema.dump(result)
return response_result(ResponseCode.REQUEST_ERROR, msg=result[1])
logger.warn(result)
return response_result(ResponseCode.OK)
result, message = signalManager.actionPost{{ config["name"] | letterUpper }}.emit(data)
logger.info(result)
logger.warn(message)
return response_result(message)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
{% endif %}
class {{ config['name'] | letterUpper }}Resource(Resource):
......@@ -81,14 +82,14 @@ class {{ config['name'] | letterUpper }}Resource(Resource):
json_payload = request.json
print("========>", uuid, json_payload)
data = get{{ config['name'] | letterUpper }}Schema.load(json_payload)
result = signalManager.actionGet{{ config["name"] | letterUpper }}.emit(uuid, data)
if result[0]:
json_dumps = get{{ config['name'] | letterUpper }}Schema.dump(result[1])
return response_result(ResponseCode.OK, data=json_dumps)
return response_result(ResponseCode.NO_DATA)
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)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
{% endif %}
{%- if config["view"]["put"] %}
......@@ -100,14 +101,13 @@ class {{ config['name'] | letterUpper }}Resource(Resource):
json_payload = request.json
print("========>", uuid, json_payload)
data = put{{ config['name'] | letterUpper }}Schema.load(json_payload)
result = signalManager.actionPut{{ config["name"] | letterUpper }}.emit(uuid, data)
if result[0] == True:
# json_dumps = put{{ config['name'] | letterUpper }}Schema.dump(result)
return response_result(ResponseCode.OK)
return response_result(ResponseCode.NOTHING_CHANGE, msg=result[1])
result, message = signalManager.actionPut{{ config["name"] | letterUpper }}.emit(uuid, data)
logger.info(result)
logger.info(message)
return response_result(message, data=result)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
{% endif %}
{%- if config["view"]["delete"] %}
......@@ -119,11 +119,9 @@ class {{ config['name'] | letterUpper }}Resource(Resource):
json_payload = request.json
print("========>", uuid, json_payload)
# data = delete{{ config['name'] | letterUpper }}Schema.load(json_payload)
result = signalManager.actionDelete{{ config["name"] | letterUpper }}.emit(uuid)
if result[0] == True:
return response_result(ResponseCode.OK)
return response_result(ResponseCode.REQUEST_ERROR, msg=result[1])
result, message = signalManager.actionDelete{{ config["name"] | letterUpper }}.emit(uuid)
return response_result(message, data=result)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
{% endif %}
\ No newline at end of file
return response_result(ResponseCode.HTTP_SERVER_ERROR)
{% endif %}
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