Beispiel #1
0
def get_assignment(id):
    assignment = assignments.context().get(id)

    if not assignment:
        return not_found()

    return ok(assignments.schema.dump(assignment))
Beispiel #2
0
def put_course(id):
    course = courses.context().update(id, request.get_json())

    if not course:
        return not_found()

    return ok(courses.schema.dump(course))
Beispiel #3
0
def get_course(id):
    course = courses.context().get(id)

    if not course:
        return not_found()

    return ok(courses.schema.dump(course))
Beispiel #4
0
def post_course():
    data = courses.schema.load(request.get_json())
    data.owner = get_authenticated_user()

    course = courses.context().create(data)

    return ok(courses.schema.dump(course))
Beispiel #5
0
def post_assignment():
    data = request.get_json()

    # Temp fix:
    if 'date' in data:
        temp = data['date'].split('T')[0]
        data['date'] = date.fromisoformat(temp)  # TODO: Generalize

    data = assignments.schema.load(data)
    data.owner = get_authenticated_user()

    assignment = assignments.context().create(data)

    return ok(assignments.schema.dump(assignment))
Beispiel #6
0
def login():
    try:
        data = request.get_json()

        email = data.get('email')
        password = data.get('password')

        return ok(authenticate(email, password))

    except AuthenticationError as err:
        return json_response(None, err.code)

    except ValidationError as err:
        return bad_request(err.to_dict())
Beispiel #7
0
def register():
    try:
        json = request.get_json()

        if 'password' in json:
            json['password'] = generate_password_hash(json['password'])

        user = user_schema.load(json).save()

        return ok(user_schema.dump(user))

    except ValidationError as err:
        return bad_request(err.to_dict())

    except NotUniqueError:
        return bad_request('User already exists')
Beispiel #8
0
def put_assignment(id):
    data = request.get_json()

    # Temp fix 1:
    if 'date' in data:
        temp = data['date'].split('T')[0]
        data['date'] = date.fromisoformat(temp)  # TODO: Generalize

    # Temp fix 2
    if 'course' in data:
        del data['course']  # TODO: Fix

    assignment = assignments.context().update(id, data)

    if not assignment:
        return not_found()

    return ok(assignments.schema.dump(assignment))
Beispiel #9
0
def delete_user(id):
    if not assignments.context().delete(id):
        return not_found()

    return ok()
Beispiel #10
0
def get_assignments():
    assignments_list = assignments.context().get()

    return ok(assignments.schema.dump(assignments_list))
Beispiel #11
0
def delete_user(id):
    if not courses.context().delete(id):
        return not_found()

    return ok()
Beispiel #12
0
def get_courses():
    courses_list = courses.context().get()

    return ok(courses.schema.dump(courses_list))
Beispiel #13
0
def logout():
    # TODO: Revoke token
    return ok()
Beispiel #14
0
def refresh():
    return ok(refresh_authentication())