Skip to content

Commit

Permalink
(PC-33256)[API] feat: use isOpenToPublic in onboarding data
Browse files Browse the repository at this point in the history
  • Loading branch information
xordoquy-pass committed Jan 29, 2025
1 parent be5fdb7 commit d26651a
Show file tree
Hide file tree
Showing 7 changed files with 64 additions and 4 deletions.
5 changes: 3 additions & 2 deletions api/src/pcapi/core/offerers/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -2037,14 +2037,15 @@ def create_from_onboarding_data(
common_kwargs = dict(
address=address,
bookingEmail=user.email,
contact=None,
description=None,
isOpenToPublic=onboarding_data.isOpenToPublic,
managingOffererId=user_offerer.offererId,
name=name,
publicName=onboarding_data.publicName,
venueLabelId=None,
venueTypeCode=onboarding_data.venueTypeCode,
withdrawalDetails=None,
description=None,
contact=None,
audioDisabilityCompliant=None,
mentalDisabilityCompliant=None,
motorDisabilityCompliant=None,
Expand Down
1 change: 1 addition & 0 deletions api/src/pcapi/routes/backoffice/pro/blueprint.py
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,7 @@ def create_offerer() -> utils.BackofficeResponse:
motorDisabilityCompliant=None,
visualDisabilityCompliant=None,
comment=None,
isOpenToPublic=False,
)
venue = offerers_api.create_venue(venue_creation_info, current_user)
offerers_api.create_venue_registration(venue.id, new_onboarding_info.target, new_onboarding_info.webPresence)
Expand Down
5 changes: 3 additions & 2 deletions api/src/pcapi/routes/serialization/offerers_serialize.py
Original file line number Diff line number Diff line change
Expand Up @@ -268,14 +268,15 @@ class CreateOffererQueryModel(BaseModel):


class SaveNewOnboardingDataQueryModel(BaseModel):
address: offerers_schemas.AddressBodyModel
createVenueWithoutSiret: bool = False
isOpenToPublic: bool | None
publicName: str | None
siret: str
target: Target
token: str
venueTypeCode: str
webPresence: str
token: str
address: offerers_schemas.AddressBodyModel

class Config:
extra = "forbid"
Expand Down
1 change: 1 addition & 0 deletions api/src/pcapi/routes/serialization/venues_serialize.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ class PostVenueBodyModel(BaseModel, AccessibilityComplianceMixin):
address: offerers_schemas.AddressBodyModel
bookingEmail: offerers_schemas.VenueBookingEmail
comment: offerers_schemas.VenueComment | None
isOpenToPublic: bool | None
managingOffererId: int
name: offerers_schemas.VenueName
publicName: offerers_schemas.VenuePublicName | None
Expand Down
1 change: 1 addition & 0 deletions api/src/pcapi/scripts/beneficiary/import_test_users.py
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ def _create_pro_user(row: dict) -> User:
mentalDisabilityCompliant=False,
motorDisabilityCompliant=False,
visualDisabilityCompliant=False,
isOpenToPublic=True,
)
venue = offerers_api.create_venue(venue_creation_info, user)
offerers_api.create_venue_registration(venue.id, new_onboarding_info.target, new_onboarding_info.webPresence)
Expand Down
54 changes: 54 additions & 0 deletions api/tests/core/offerers/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -2106,6 +2106,7 @@ def test_new_siren_new_siret(self, requests_mock):
)
assert created_virtual_venue.isVirtual
self.assert_common_venue_attrs(created_venue)
assert created_venue.isOpenToPublic is None
assert created_venue.comment is None
assert created_venue.siret == "85331845900031"
assert created_venue.current_pricing_point_id == created_venue.id
Expand Down Expand Up @@ -2137,6 +2138,59 @@ def test_new_siren_new_siret(self, requests_mock):
# Venue Registration
self.assert_venue_registration_attrs(created_venue)

@pytest.mark.settings(ADRESSE_BACKEND="pcapi.connectors.api_adresse.ApiAdresseBackend")
@pytest.mark.parametrize("isOpenToPublic", [True, False])
def test_new_offerer_and_isOpenToPublic(self, isOpenToPublic, requests_mock):
api_adresse_response = {
"type": "FeatureCollection",
"version": "draft",
"features": [
{
"type": "Feature",
"geometry": {"type": "Point", "coordinates": [2.337933, 48.863666]},
"properties": {
"label": "3 Rue de Valois 75001 Paris",
"score": 0.9652045454545454,
"housenumber": "3",
"id": "75101_9575_00003",
"name": "3 Rue de Valois",
"postcode": "75001",
"citycode": "75101",
"x": 651428.82,
"y": 6862829.62,
"city": "Paris",
"district": "Paris 1er Arrondissement",
"context": "75, Paris, Île-de-France",
"type": "housenumber",
"importance": 0.61725,
"street": "Rue de Valois",
},
}
],
"attribution": "BAN",
"licence": "ETALAB-2.0",
"query": "3 Rue de valois, 75001 Paris",
"filters": {"postcode": "75001"},
"limit": 1,
}
requests_mock.get(
"https://api-adresse.data.gouv.fr/search?q=3 RUE DE VALOIS&postcode=75001&autocomplete=0&limit=1",
json=api_adresse_response,
)
user = users_factories.UserFactory(email="pro@example.com")
user.add_non_attached_pro_role()

onboarding_data = self.get_onboarding_data(create_venue_without_siret=False)
onboarding_data.isOpenToPublic = isOpenToPublic
created_user_offerer = offerers_api.create_from_onboarding_data(user, onboarding_data)

# Offerer has been created
created_offerer = created_user_offerer.offerer
created_venue, created_virtual_venue = sorted(
created_user_offerer.offerer.managedVenues, key=lambda v: v.isVirtual
)
assert created_venue.isOpenToPublic is isOpenToPublic

def test_existing_siren_new_siret(self):
offerer = offerers_factories.OffererFactory(siren="853318459")
offerers_factories.VirtualVenueFactory(managingOfferer=offerer)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import type { Target } from './Target';
export type SaveNewOnboardingDataQueryModel = {
address: AddressBodyModel;
createVenueWithoutSiret?: boolean;
isOpenToPublic?: boolean | null;
publicName?: string | null;
siret: string;
target: Target;
Expand Down

0 comments on commit d26651a

Please sign in to comment.