diff --git a/src/pcapi/routes/serialization/offers_serialize.py b/src/pcapi/routes/serialization/offers_serialize.py index bb9feb5f98..d0ca167323 100644 --- a/src/pcapi/routes/serialization/offers_serialize.py +++ b/src/pcapi/routes/serialization/offers_serialize.py @@ -497,6 +497,7 @@ class GetOfferResponseModel(BaseModel): audioDisabilityCompliant: Optional[bool] mentalDisabilityCompliant: Optional[bool] motorDisabilityCompliant: Optional[bool] + nonHumanizedId: int visualDisabilityCompliant: Optional[bool] lastProvider: Optional[GetOfferLastProviderResponseModel] lastProviderId: Optional[str] @@ -533,6 +534,7 @@ def extract_datetime_list_from_DateTimes_type( # pylint: disable=no-self-argume @classmethod def from_orm(cls, offer): # type: ignore offer.subcategoryId = offer.subcategoryId or get_subcategory_from_type(offer.type, offer.venue.isVirtual) + offer.nonHumanizedId = offer.id return super().from_orm(offer) class Config: diff --git a/tests/routes/pro/get_offer_test.py b/tests/routes/pro/get_offer_test.py index 390715092a..877dd28e99 100644 --- a/tests/routes/pro/get_offer_test.py +++ b/tests/routes/pro/get_offer_test.py @@ -33,6 +33,7 @@ def test_access_by_beneficiary(self, app): assert "bic" not in response_json["venue"]["managingOfferer"] assert "validationToken" not in response_json["venue"]["managingOfferer"] assert "thumbUrl" in response_json + assert response_json["nonHumanizedId"] == offer.id def test_access_even_if_offerer_has_no_siren(self, app): # Given @@ -141,6 +142,7 @@ def test_returns_an_event_stock(self, app): "mediaUrls": [], "mediations": [], "name": "Derrick", + "nonHumanizedId": stock.offer.id, "offerType": { "appLabel": "Cinéma", "canExpire": None,