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
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
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
def identity(payload): user_id = payload['identity'] print(payload) return UserModel.find_by_id(user_id)
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
def get_user_from_identity(user_id: str) -> UserModel: return UserModel.find_by_id(user_id)