Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #3
0
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
Beispiel #4
0
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
Beispiel #5
0
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
Beispiel #6
0
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
Beispiel #7
0
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
Beispiel #8
0
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
Beispiel #9
0
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
Beispiel #10
0
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)
Beispiel #11
0
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
Beispiel #12
0
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
Beispiel #13
0
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
Beispiel #14
0
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
Beispiel #15
0
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
Beispiel #16
0
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
Beispiel #17
0
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
Beispiel #18
0
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
Beispiel #19
0
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