def test_check_user_can_validate_bookings_raise_api_error_when_user_is_authenticated_and_does_not_have_editor_rights_on_booking( self, app): # Given user = User() user.is_authenticated = True # When with pytest.raises(ApiErrors) as errors: check_user_can_validate_bookings(user, None) # Then assert errors.value.errors["global"] == [ "Cette contremarque n'a pas été trouvée" ]
def test_check_user_can_validate_bookings_returns_false_when_user_is_not_logged_in( self, app): # Given user = AnonymousUserMixin() # When result = check_user_can_validate_bookings(user, None) # Then assert result is False
def test_check_user_can_validate_bookings_returns_true_when_user_is_authenticated_and_has_editor_rights_on_booking( self, app): # Given user = create_user() offerer = create_offerer() user_offerer = create_user_offerer(user, offerer, None) repository.save(user, offerer, user_offerer) # When result = check_user_can_validate_bookings(user, offerer.id) # Then assert result is True
def get_booking_by_token(token: str) -> tuple[str, int]: email: Optional[str] = request.args.get("email", None) offer_id = dehumanize(request.args.get("offer_id", None)) check_user_is_logged_in_or_email_is_provided(current_user, email) booking = booking_repository.find_by(token, email, offer_id) bookings_validation.check_is_usable(booking) if check_user_can_validate_bookings(current_user, booking.offererId): response = _create_response_to_get_booking_by_token(booking) return jsonify(response), 200 return "", 204
def get_booking_by_token(token: str): email = request.args.get("email", None) offer_id = dehumanize(request.args.get("offer_id", None)) check_user_is_logged_in_or_email_is_provided(current_user, email) booking_token_upper_case = token.upper() booking = booking_repository.find_by(booking_token_upper_case, email, offer_id) bookings_validation.check_is_usable(booking) if check_user_can_validate_bookings( current_user, booking.stock.offer.venue.managingOffererId): response = _create_response_to_get_booking_by_token(booking) return jsonify(response), 200 return "", 204