Exemplo n.º 1
0
def test_reset_password(client, coach):
    data = {"password": "******"}

    token = coach.send_reset_password_mail()

    response = client.post(
        "/api/v1/reset_password",
        data=json.dumps(data),
        query_string={"access_token": token},
    )
    coach = UserModel.find_by_id(user_id=coach.id)
    assert response.status_code == 204
    assert check_password_hash(pwhash=coach.password, password="******")
def remove_participant(workshop_id, participant_id) -> (dict, int):
    workshop = WorkshopModel.find_by_id(workshop_id=workshop_id)
    user = UserModel.find_by_id(participant_id)
    # Check if given workshop_id exists in DB
    if workshop is None or user is None:
        raise EntityNotFoundError
    updated_participants = []
    for participant in workshop.participants:
        if participant.user.userId != participant_id:
            updated_participants.append(participant)
    workshop.participants = updated_participants
    updated_workshop = []
    for registered in user.workshopParticipations:
        if registered != workshop_id:
            updated_workshop.append(registered)
    user.workshopParticipations = updated_workshop
    workshop.save()
    user.save()
    return None, 204
Exemplo n.º 3
0
def update_password(params: dict, data: bytes) -> (None, int):
    # Validate and decode access token
    if "access_token" not in params:
        error = InvalidTokenError()
        error.msg = (
            "Missing access token. You must add an access_token parameter", )
        raise error
    token = params.get("access_token")
    decoded_token = decode_token(token)

    user = UserModel.find_by_id(user_id=decoded_token.get("identity"))
    if user is None:
        raise EntityNotFoundError

    # Load new password
    data, err_msg, err_code = NewPasswordSchema().loads_or_400(data)
    if err_msg:
        return err_msg, err_code

    user.password = generate_password_hash(data["password"])
    user.save()

    return None, 204
Exemplo n.º 4
0
def create_workshop(data: bytes) -> (dict, int):
    # Deserialize data
    schema = WorkshopSchema()
    data, err_msg, err_code = schema.loads_or_400(data)
    if err_msg:
        return err_msg, err_code

    # Check existence of given coachId
    coach_id = data["coachId"]
    coach = UserModel.find_by_id(coach_id)
    if coach is None:
        raise InvalidDataError("Coach does not exist : {}".format(coach_id))

    workshop = WorkshopModel(**data)
    # Append creator id
    workshop.creatorId = get_jwt_identity()
    # Append last created model id
    model = Model.find_last_created_model()
    workshop.model = model

    workshop.save()

    workshop.reload()
    return schema.dump(workshop), 200
Exemplo n.º 5
0
def identity(payload):
    user_id = payload['identity']
    print(payload)
    return UserModel.find_by_id(user_id)
Exemplo n.º 6
0
def test_delete_coaches(client, auth, admin, coach, request):
    headers = auth.login(email="*****@*****.**")
    response = client.delete(f"/api/v1/coaches/{coach.id}", headers=headers)

    assert response.status_code == 204
    assert UserModel.find_by_id(user_id=coach.id) is None
Exemplo n.º 7
0
 def get_user_from_identity(user_id: str) -> UserModel:
     return UserModel.find_by_id(user_id)