def children_statuses_get(): vres = verify_auto(request, allows=['admin', 'staff']) if not vres['code'] == 0: # verification failed vres['count'] = 0 vres['data'] = [] return vres page = request.args.get('page') limit = request.args.get('limit') if page is None or limit is None: page = 0 limit = 0 else: page = int(page) - 1 limit = int(limit) tp = request.args.get('type') if type(tp) != type(''): return ee.PARAMERR(app=': type') tp = tp.lower() if tp == 'temp': tp = 'temperature' if tp not in sttb: return ee.PARAMERR(app=': type') res = get_status(tp, page, limit) return res
def files_get(): vres = verify_auto(request, allows=['admin', 'staff']) if not vres['code'] == 0: # verification failed vres['count'] = 0 vres['data'] = [] return vres page = request.args.get('page') limit = request.args.get('limit') cid = request.args.get('child_id') if page is None or limit is None: page = 0 limit = 0 else: page = int(page) - 1 limit = int(limit) if type(cid) == type('') and not str.isdigit(cid): return ee.PARAMERR(app=": child_id") if cid is None: _alias = request.args.get('alias') if _alias is not None: _cidfa = get_cid_by_alias(_alias) if _cidfa['code'] != 0: return _cidfa if len(_cidfa['data']) > 0: cid = _cidfa['data'][0]['id'] res = get_file_list(page, limit, cid) return res
def children_info_get(): vres = verify_auto(request, allows=['admin', 'staff', 'parent']) if not vres['code'] == 0: # verification failed vres['count'] = 0 vres['data'] = [] return vres _id = request.args.get('id') alias = request.args.get('alias') if _id is None and alias is None: return ee.PARAMERR(app=": id or alias is needed") if type(_id) == type('') and not str.isdigit(_id): return ee.PARAMERR(app=': id') if _id is None: uidfa = get_cid_by_alias(alias) if uidfa['code'] != 0: return uidfa if len(uidfa['data'])==0 or \ uidfa['data'][0]['id'] is None: return ee.IDERR(app=': alias not exists') _id = uidfa['data'][0]['id'] _sk = request.args.get('secret_key') if _sk is None: return ee.NOT_LOGGED() res = get_children_info(_id, _sk) return res
def users_parent_put(): vres = verify_auto(request, allows=['admin', 'staff']) if not vres['code'] == 0: # verification failed vres['count'] = 0 vres['data'] = [] return vres res = update_parent() return res
def users_staff_post(): vres = verify_auto(request, allows=['admin']) if not vres['code'] == 0: # verification failed vres['count'] = 0 vres['data'] = [] return vres res = insert_staff() return res
def users_parent_delete(): vres = verify_auto(request, allows=['admin', 'staff']) if not vres['code'] == 0: # verification failed vres['count'] = 0 vres['data'] = [] return vres res = delete_user_by_id('parent') return res
def children_info_put(): vres = verify_auto(request, allows=['admin', 'staff']) if not vres['code'] == 0: # verification failed vres['count'] = 0 vres['data'] = [] return vres res = update_child() return res
def children_status_get(): vres = verify_auto(request, allows=['admin', 'staff', 'parent']) if not vres['code'] == 0: # verification failed vres['count'] = 0 vres['data'] = [] return vres res = _chk_param_n_gsbc() return res
def do_insert_status(stype): vres = verify_auto(request, allows=['admin', 'staff']) if not vres['code'] == 0: # verification failed vres['count'] = 0 vres['data'] = [] return vres res = insert_status(stype) return res
def users_parent_cids_get(): vres = verify_auto(request, allows=['parent']) if not vres['code'] == 0: # verification failed vres['count'] = 0 vres['data'] = [] return vres _sk = vres['msg'] _pid = gv.logged[_sk]['id'] return get_child_ids(_pid)
def file_delete(): vres = verify_auto(request, allows=['admin', 'staff']) if not vres['code'] == 0: # verification failed vres['count'] = 0 vres['data'] = [] return vres fid = request.form.get('id') if type(fid) == type('') and not str.isdigit(fid): return ee.PARAMERR(app=": id") res = delete_file(fid) return res
def users_staff_get(): vres = verify_auto(request, allows=['admin']) if not vres['code'] == 0: # verification failed vres['count'] = 0 vres['data'] = [] return vres id = request.args.get('id') if id is None: return {'code': 40, 'msg': 'id is needed', 'count': 0, 'data': []} staffs = get_staff(id) return staffs
def users_admin_get(): vres = verify_auto(request, allows=['admin']) if not vres['code'] == 0: # verification failed vres['count'] = 0 vres['data'] = [] return vres _id = gv.logged[vres['msg']]['id'] _param_id = request.args.get('id') if _param_id is not None: _id = _param_id admin = get_userinfo(_id) return admin
def do_query_status(stype): vres = verify_auto(request, allows=['admin', 'staff']) if not vres['code'] == 0: # verification failed vres['count'] = 0 vres['data'] = [] return vres sid = request.args.get('id') if sid is None: return ee.PARAMERR(app=': id') if type(sid) == type('') and not str.isdigit(sid): return ee.PARAMERR(app=': id') res = get_status_by_id(stype, sid=sid) return res
def users_parent_get(): vres = verify_auto(request, allows=['admin', 'staff', 'parent']) if not vres['code'] == 0: # verification failed vres['count'] = 0 vres['data'] = [] return vres _sk = vres['msg'] _id = gv.logged[_sk]['id'] _role = gv.logged[_sk]['role'] if _role in ['admin', 'staff']: _param_id = request.args.get('id') if _param_id is not None: _id = _param_id parent = get_parent(_id) return parent
def users_staffs_get(): vres = verify_auto(request, allows=['admin']) if not vres['code'] == 0: # verification failed vres['count'] = 0 vres['data'] = [] return vres page = request.args.get('page') limit = request.args.get('limit') if page is None or limit is None: page = 0 limit = 0 else: page = int(page) - 1 limit = int(limit) staffs = get_staffs(page, limit) return staffs
def file_get(): vres = verify_auto(request, allows=['admin', 'staff']) if not vres['code'] == 0: # verification failed vres['count'] = 0 vres['data'] = [] return vres fid = request.args.get('id') if not (type(fid) == type('') and str.isdigit(fid)): return ee.PARAMERR(app=": id") finfo = get_file_info(fid) if finfo['code'] != 0: return finfo if len(finfo['data']) == 0: return ee.IDERR(msg='file id is incorrect') fullfilename = os.path.join(filedir, finfo['data'][0]['filename']) if not os.path.exists(fullfilename): return ee.IDERR('file not found') # 普通下载 # response = make_response(send_from_directory(filepath, filename, as_attachment=True)) # response.headers["Content-Disposition"] = "attachment; filename={}".format(filepath.encode().decode('latin-1')) # return send_from_directory(filepath, filename, as_attachment=True) # 流式读取 _block_size = 8 * 1024 * 1024 def send_file(): store_path = fullfilename with open(store_path, 'rb') as targetfile: while 1: data = targetfile.read(_block_size) if not data: break yield data response = Response(send_file(), content_type='application/octet-stream') # 设置文件名,url编码以适应中文 _fn = quote(finfo['data'][0]['originfn']) response.headers[ 'Content-disposition'] = "attachment; filename*=utf-8''{}".format(_fn) #response.headers["Content-disposition"] = 'attachment; filename=%s' % finfo['data'][0]['originfn'] return response
def users_parents_get(): vres = verify_auto(request, allows=['admin', 'staff']) if not vres['code'] == 0: # verification failed vres['count'] = 0 vres['data'] = [] return vres page = request.args.get('page') limit = request.args.get('limit') if page is None or limit is None: page = 0 limit = 0 else: page = int(page) - 1 limit = int(limit) # is simple? simple = request.args.get('simple') if str(simple) == '1': simple = True else: simple = False parents = get_parents(page, limit, simple=simple) return parents
def file_post(): vres = verify_auto(request, allows=['admin', 'staff']) if not vres['code'] == 0: # verification failed vres['count'] = 0 vres['data'] = [] return vres cid = request.form.get('child_id') if type(cid) == type('') and not str.isdigit(cid): return ee.PARAMERR(app=": child_id") if cid is None: _alias = request.form.get('alias') if _alias is None: return ee.PARAMERR(app=': child_id or alias is needed') _cidfa = get_cid_by_alias(_alias) if _cidfa['code'] != 0: return _cidfa if len(_cidfa['data']) > 0: cid = _cidfa['data'][0]['id'] if cid is None: return ee.IDERR(app=': incorrect id or alias') file = request.files['file'] if file is None: return ee.PARAMERR(': no file') originfn = file.filename if originfn is None or len(originfn) < 1: return ee.PARAMERR(app=": filename error") filename = funcs.get_md5(originfn + str(cid)) filepath = os.path.join(filedir, filename) if os.path.exists(filepath): return ee.PARAMERR(': file already exists') funcs.mkdir(filedir) file.save(filepath) res = insert_file_info(cid, filename, originfn) return res