From 44e0a08f7229e0f988987b08aab59967e983266d Mon Sep 17 00:00:00 2001 From: roboc Date: Mon, 30 Jan 2023 00:17:50 +0000 Subject: [PATCH] bugfix mapping issues --- local_api.py | 2 +- src/web/controllers.py | 2 +- src/web/mapping.py | 22 ++++++++++++++++++++-- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/local_api.py b/local_api.py index 02b4131..db65e53 100644 --- a/local_api.py +++ b/local_api.py @@ -101,7 +101,7 @@ def get_list_of_listings_for_brand(): @app.route("/influencers/me/listings", methods=['GET']) def get_list_of_listings_for_influencer(): - return generic_handler(routeKey="GET /influencer/me/listings", params={}) + return generic_handler(routeKey="GET /influencers/me/listings", params={}) @app.route("/brands/me/listings", methods=['POST']) diff --git a/src/web/controllers.py b/src/web/controllers.py index 89efb60..3c783da 100644 --- a/src/web/controllers.py +++ b/src/web/controllers.py @@ -34,7 +34,7 @@ def __init__(self, repository: Repository, def _get_all(self, context: PinfluencerContext, response) -> None: users = self._repository.load_collection() context.response.status_code = 200 - context.response.body = (list(map(lambda x: self._mapper.map(_from=x, to=response).__dict__, users))) + context.response.body = (list(map(lambda x: self._mapper.map_to_dict(_from=x, to=response), users))) def get_all(self, context: PinfluencerContext) -> None: self._get_all(context=context, response=self._response) diff --git a/src/web/mapping.py b/src/web/mapping.py index 12e0a65..7c1cdd4 100644 --- a/src/web/mapping.py +++ b/src/web/mapping.py @@ -2,9 +2,10 @@ from src.crosscutting import PinfluencerObjectMapper, Rule from src.domain.models import Brand, Value, Category, Influencer, Listing, AudienceAgeSplit, AudienceAge, \ - AudienceGenderSplit, GenderEnum, AudienceGender, BrandListing + AudienceGenderSplit, GenderEnum, AudienceGender, BrandListing, InfluencerListing from src.web.views import BrandRequestDto, BrandResponseDto, InfluencerRequestDto, InfluencerResponseDto, \ - ListingRequestDto, ListingResponseDto, AudienceAgeViewDto, AudienceGenderViewDto, BrandListingResponseDto + ListingRequestDto, ListingResponseDto, AudienceAgeViewDto, AudienceGenderViewDto, BrandListingResponseDto, \ + InfluencerListingResponseDto class MappingRules: @@ -118,6 +119,15 @@ def __add_listing_rules(self): field='values', expression=self.__map_values_view_to_listing) + self.__mapper.add_rule(_type_from=InfluencerListing, + _type_to=InfluencerListingResponseDto, + field='values', + expression=self.__map_values_to_listing_view) + self.__mapper.add_rule(_type_from=InfluencerListingResponseDto, + _type_to=InfluencerListing, + field='values', + expression=self.__map_values_view_to_listing) + # categories self.__mapper.add_rule(_type_from=Listing, _type_to=ListingRequestDto, @@ -143,6 +153,14 @@ def __add_listing_rules(self): _type_to=BrandListing, field='categories', expression=self.__map_categories_view_to_listing) + self.__mapper.add_rule(_type_from=InfluencerListing, + _type_to=InfluencerListingResponseDto, + field='categories', + expression=self.__map_categories_to_listing_view) + self.__mapper.add_rule(_type_from=InfluencerListingResponseDto, + _type_to=InfluencerListing, + field='categories', + expression=self.__map_categories_view_to_listing)