예제 #1
0
파일: user.py 프로젝트: jkwik/ce-be
def terminateClient(token_claims):
    body = request.get_json(force=True)
    # Check that the role of the requestee is COACH
    if token_claims['role'] != Role.COACH.name:
        return {
            "error": "Expected role of COACH"
    }, 400

    # retrieve user with id passed in
    user = User()
    user = User.query.get(body['id'])

    try:
        # update the approved field for this user to null
        user.approved = None
        db.session.commit()
    except Exception as e:
        return {
            "error": body['id']
        }, 500
        raise

    # Grab the user from the database and dump the result into a user schema
    user = User.query.get(user.id)
    result = user_schema.dump(user)
    # remove the sensitive data fields
    del result['password']
    del result['access_token']
    del result['verification_token']

    db.session.close()
    # Return the user
    return {
        "user": result
    }
예제 #2
0
파일: user.py 프로젝트: jkwik/ce-be
def approveClient(token_claims):
    body = request.get_json(force=True)
    # Check that the role of the requestee is COACH
    if token_claims['role'] != Role.COACH.name:
        return {
            "error": "Expected role of COACH"
        }, 400

    # retrieve user with id passed in
    user = User()
    user = User.query.get(body['id'])

    try:
        # update the approved field for this user
        user.approved = True
        # set coach_id to the id of the coach that is currently logged in
        user.coach_id = token_claims['id']
        db.session.commit()

    except Exception as e:
        return {
            "error": "Internal Server Error"
        }, 500
        raise

    # Grab the user from the database and dump the result into a user schema
    user = User.query.get(user.id)

    # Send an approved email
    err = sendApprovedEmail(mail, [user.email], user.first_name, user.last_name)
    if err != None:
        print(err)
        db.session.rollback()
        return {
             "error": "Internal Server Error"
        }, 500
    
    result = user_schema.dump(user)
    # remove the sensitive data fields
    del result['password']
    del result['access_token']
    del result['verification_token']

    db.session.close()
    # Return the user
    return {
        "Approved": result
    }