Exemplo n.º 1
0
def get_campus():
    moodle = request.headers['moodle']
    wstoken = g.wstoken

    result = moodle_sv.get_campus(moodle, wstoken)
    campus = [{'id': x['campus']} for x in result]
    return response(200, 'success', campus)
Exemplo n.º 2
0
def verify():
    moodle = request.headers['moodle']
    wstoken = g.wstoken
    key = g.key
    username = g.username
    if not face_sv.exist(key, username):
        raise ErrorAPI(404, 'user not registered')

    sessionid = request.form.get('sessionid')
    if not sessionid:
        raise ErrorAPI(400, 'missing sessionid')
    front = request.form.get('front')
    if not front:
        raise ErrorAPI(400, 'missing front')
    left = request.form.get('left')
    if not front:
        raise ErrorAPI(400, 'missing left')
    right = request.form.get('right')
    if not front:
        raise ErrorAPI(400, 'missing right')

    result = face_sv.verify(key, username, [front, left, right])
    moodle_sv.verify(moodle=moodle,
                     wstoken=wstoken,
                     username=username,
                     sessionid=sessionid,
                     image_front=front,
                     image_left=left,
                     image_right=right,
                     result=int(result))
    if not result:
        raise ErrorAPI(400, 'invalid faces')

    return response(200, 'success')
Exemplo n.º 3
0
def face_feedback():
    moodle = request.headers['moodle']
    wstoken = g.wstoken
    key = g.key

    if 'image' not in request.json:
        raise ErrorAPI(400, 'missing image')
    if 'roomid' not in request.json:
        raise ErrorAPI(400, 'missing roomid')
    if 'usertaken' not in request.json:
        raise ErrorAPI(400, 'missing usertaken')
    if 'userbetaken' not in request.json:
        raise ErrorAPI(400, 'missing userbetaken')

    description = 'mistaken in face recognition'
    if 'description' in request.json:
        description = request.json['description']

    if not face_sv.exist(key, request.json['usertaken']):
        raise ErrorAPI(404, 'user not registered')

    moodle_sv.create_feedback(moodle=moodle,
                              wstoken=wstoken,
                              roomid=request.json['roomid'],
                              usertaken=request.json['usertaken'],
                              userbetaken=request.json['userbetaken'],
                              description=description,
                              image=request.json['image'])
    return response(200, 'success')
Exemplo n.º 4
0
def login():
    moodle = request.headers['moodle']
    wstoken = g.wstoken

    if 'username' not in request.json:
        raise ErrorAPI(400, 'missing "username"')
    if 'password' not in request.json:
        raise ErrorAPI(400, 'missing "password"')
    username = request.json['username']
    password = request.json['password']

    user = moodle_sv.user_info(
        moodle=moodle,
        wstoken=wstoken,
        username=username
    )
    if not user:
        raise ErrorAPI(404, 'userinfo not found')

    user['token'] = moodle_sv.login(
        moodle=moodle,
        username=username,
        password=password
    )
    return response(200, 'success', user)
Exemplo n.º 5
0
def checkin(roomid):
    moodle = request.headers['moodle']
    wstoken = g.wstoken

    if 'usernames' not in request.json:
        raise ErrorAPI(400, 'missing usernames')
    usernames = request.json['usernames']

    users = []
    for username in usernames:
        user = {
            'username': username,
            'status': 200
        }
        res = moodle_sv.checkin(
            moodle=moodle,
            wstoken=wstoken,
            roomid=roomid,
            username=username
        )
        if 'status' in res:
            user['status'] = res['status']
        user['message'] = res['message']
        users.append(user)

    return response(200, 'success', users)
Exemplo n.º 6
0
def update_user():
    moodle = request.headers['moodle']
    wstoken = g.wstoken
    key = g.key
    username = g.username

    front = request.form.get('front')
    if not front:
        raise ErrorAPI(400, 'missing front')
    left = request.form.get('left')
    if not left:
        raise ErrorAPI(400, 'missing left')
    right = request.form.get('right')
    if not right:
        raise ErrorAPI(400, 'missing right')
    replace = request.form.get('replace')
    if not replace:
        raise ErrorAPI(400, 'missing replace')

    if not moodle_sv.user_info(
            moodle=moodle, wstoken=wstoken, username=username):
        raise ErrorAPI(404, 'user not found')

    exist = face_sv.exist(key, username)
    val_t = time()

    user = {'id': username, 'front': front, 'left': left, 'right': right}
    if not exist:
        code = 201
        message = 'created'
        face = face_sv.create(key, user)
    else:
        code = 200
        message = 'success'
        face = face_sv.update(key, user)
    core_t = time()

    res = moodle_sv.create_image(moodle=moodle,
                                 wstoken=wstoken,
                                 username=user['id'],
                                 image_front=user['front'],
                                 image_left=user['left'],
                                 image_right=user['right'],
                                 replace=replace)
    if not res:
        code = 500
        message = 'failed to create image'
        face_sv.remove(key, username)

    t = {
        'face': face,
        'valid': val_t - g.start,
        'core': core_t - val_t,
        'moodle': time() - core_t,
        'total': time() - g.start
    }
    return response(code, message, t=t)
Exemplo n.º 7
0
def remove_user():
    key = g.key
    username = g.username
    if not face_sv.exist(key, username):
        raise ErrorAPI(404, 'user not registered')

    face_sv.remove(key, username)

    return response(200, 'success')
Exemplo n.º 8
0
def get_student(username):
    moodle = request.headers['moodle']
    wstoken = g.wstoken

    user = moodle_sv.user_info(
        moodle=moodle,
        wstoken=wstoken,
        username=username
    )
    if not user:
        raise ErrorAPI(404, 'userinfo not found')
    return response(200, 'success', user)
Exemplo n.º 9
0
def get_sessions(courseid):
    moodle = request.headers['moodle']
    wstoken = g.wstoken

    sessions = moodle_sv.sessions(
        moodle=moodle,
        wstoken=wstoken,
        courseid=courseid
    )
    if not sessions:
        sessions = None
    return response(200, 'success', sessions)
Exemplo n.º 10
0
def get_session(sessionid):
    moodle = request.headers['moodle']
    wstoken = g.wstoken

    session = moodle_sv.session(
        moodle=moodle,
        wstoken=wstoken,
        sessionid=sessionid
    )
    if not session:
        session = None
    return response(200, 'success', session)
Exemplo n.º 11
0
def get_log_by_course(courseid):
    moodle = request.headers['moodle']
    wstoken = g.wstoken

    reports = moodle_sv.log_by_course(
        moodle=moodle,
        wstoken=wstoken,
        courseid=courseid
    )
    if not reports:
        reports = None
    return response(200, 'success', reports)
Exemplo n.º 12
0
def get_schedules():
    moodle = request.headers['moodle']
    userid = g.userid
    token = request.headers['Authorization']

    schedules = moodle_sv.schedules(
        moodle=moodle,
        token=token,
        userid=userid
    )
    if not schedules:
        schedules = None
    return response(200, 'success', schedules)
Exemplo n.º 13
0
def get_rooms():
    moodle = request.headers['moodle']
    wstoken = g.wstoken

    if 'campus' not in request.args:
        raise ErrorAPI(400, 'missing "campus"')
    campus = request.args['campus']

    rooms = moodle_sv.room_by_campus(
        moodle=moodle,
        wstoken=wstoken,
        campus=campus
    )
    if not rooms:
        rooms = None
    return response(200, 'success', rooms)
Exemplo n.º 14
0
def get_user():
    moodle = request.headers['moodle']
    wstoken = g.wstoken
    key = g.key
    username = g.username
    if not face_sv.exist(key, username):
        raise ErrorAPI(404, 'user not registered')
    user = {}
    data = moodle_sv.get_image(moodle=moodle,
                               wstoken=wstoken,
                               username=username)
    user['front'] = data['image_front']
    user['left'] = data['image_left']
    user['right'] = data['image_right']

    return response(200, 'success', user)
Exemplo n.º 15
0
def find(message):
    raw = message.text
    if len(raw) < 6 :
        bot.reply_to(message, "Oops! You didn't say anything! Try /help to learn more.")
    else:
        info = raw[5: len(raw)]
        info = info.split("-")
        artist = info[0]
        song = info[1]
        _json = utilities.fetch_from_wiki(artist, song)
        response = utilities.response(_json)
        if song == 'Roshani' or song == 'roshani' or song == ' roshani' or song == ' Roshani':
            with open('sina.txt', 'r') as sina:
                roshani = sina.read().strip()
            bot.reply_to(message, roshani)
        else:
            bot.reply_to(message, response)
Exemplo n.º 16
0
def find(message):
    raw = message.text
    if len(raw) < 6 :
        bot.reply_to(message, "Oops! You didn't say anything! Try /help to learn more.")
    else:
        info = raw[5: len(raw)]
        info = info.split("-")
        artist = info[0]
        song = info[1]
        _json = utilities.fetch_from_wiki(artist, song)
        response = utilities.response(_json)
        if song == 'Roshani' or song == 'roshani' or song == ' roshani' or song == ' Roshani':
            with open('sina.txt', 'r') as sina:
                roshani = sina.read().strip()
            bot.reply_to(message, roshani)
        else:
            bot.reply_to(message, response)
Exemplo n.º 17
0
def manual_check(sessionid):
    moodle = request.headers['moodle']
    wstoken = g.wstoken

    if 'students' not in request.json:
        raise ErrorAPI(400, 'missing "students"')
    if not isinstance(request.json['students'], list):
        raise ErrorAPI(400, '"students" type list')
    students = request.json['students']

    for student in students:
        moodle_sv.update_log(
            moodle=moodle,
            wstoken=wstoken,
            sessionid=sessionid,
            username=student['username'],
            statusid=student['statusid']
        )
    return response(200, 'success')
Exemplo n.º 18
0
def room_schedule():
    moodle = request.headers['moodle']
    wstoken = g.wstoken

    if 'roomid' not in request.args:
        raise ErrorAPI(400, 'missing "roomid"')
    if 'date' not in request.args:
        raise ErrorAPI(400, 'missing "date"')
    roomid = request.args['roomid']
    date = request.args['date']

    schedule = moodle_sv.room_schedule(
        moodle=moodle,
        wstoken=wstoken,
        roomid=roomid,
        date=date
    )
    if not schedule:
        schedule = None
    return response(200, 'success', schedule)
Exemplo n.º 19
0
def get_student_log():
    moodle = request.headers['moodle']
    wstoken = g.wstoken

    if 'username' not in request.args:
        raise ErrorAPI(400, 'missing "username"')
    if 'courseid' not in request.args:
        raise ErrorAPI(400, 'missing "courseid"')
    username = request.args['username']
    courseid = request.args['courseid']

    reports = moodle_sv.student_log(
        moodle=moodle,
        wstoken=wstoken,
        username=username,
        courseid=courseid
    )
    if not reports:
        reports = None
    return response(200, 'success', reports)
Exemplo n.º 20
0
def find():
    moodle = request.headers['moodle']
    wstoken = g.wstoken
    key = g.key

    if 'images' not in request.json:
        raise ErrorAPI(400, 'missing images')
    images = request.json['images']
    if not isinstance(images, list):
        raise ErrorAPI(400, 'images not list')
    val_t = time()

    data = face_sv.find(key, images)
    core_t = time()
    usernames = data['users']

    if not usernames:
        raise ErrorAPI(400, 'no user registered')

    users = []
    for username in usernames:
        if not username:
            users.append({'status': 404, 'message': 'not registered'})
            continue

        user = moodle_sv.user_info(moodle=moodle,
                                   wstoken=wstoken,
                                   username=username)
        user['status'] = 200
        user['message'] = 'registered'
        users.append(user)

    t = {
        'face': data,
        'valid': val_t - g.start,
        'core': core_t - val_t,
        'moodle': time() - core_t,
        'total': time() - g.start
    }
    return response(200, 'success', users, t=t)
Exemplo n.º 21
0
def count():
    key = g.key
    res = face_sv.count(key)
    return response(200, 'success', res)
Exemplo n.º 22
0
def exception(e):
    log.exception(e)
    return response(500, 'internal server error')
Exemplo n.º 23
0
def page_not_found(e):
    return response(404, str(e))
Exemplo n.º 24
0
def root():
    return response(200, 'ok')