From 530cfc44be40983fafc290485bd06ff46c740357 Mon Sep 17 00:00:00 2001 From: Anatoly Date: Mon, 10 Feb 2020 16:56:11 +0300 Subject: [PATCH] done "GM-377" --- apps/establishment/views/back.py | 6 +- apps/partner/views/back.py | 144 ++++++++++++++++++++++++++++++- 2 files changed, 145 insertions(+), 5 deletions(-) diff --git a/apps/establishment/views/back.py b/apps/establishment/views/back.py index a3d6387d..c49a0713 100644 --- a/apps/establishment/views/back.py +++ b/apps/establishment/views/back.py @@ -1273,7 +1273,8 @@ class EstablishmentNoteListCreateView(EstablishmentMixinViews, ## List/Create view ### *GET* #### Description - Return paginated list of establishment notes by `establishment slug` + Return paginated list of establishment notes by `establishment slug`. + Establishments would filter by country code. ##### Response E.g.: ``` @@ -1335,7 +1336,8 @@ class EstablishmentNoteRUDView(EstablishmentMixinViews, ## Retrieve/Update/Destroy view ### *GET* #### Description - Return paginated list of establishment notes by `establishment slug` + Return paginated list of establishment notes by `establishment slug`. + Establishments would filter by country code. ##### Response E.g.: ``` diff --git a/apps/partner/views/back.py b/apps/partner/views/back.py index f6e2de89..cfe881eb 100644 --- a/apps/partner/views/back.py +++ b/apps/partner/views/back.py @@ -11,8 +11,49 @@ from utils.permissions import IsEstablishmentManager, IsEstablishmentAdministrat class PartnerLstView(generics.ListCreateAPIView): - """Partner list/create view. - Allows to get partners for current country, or create a new one. + """ + ## List/Create view + ### *GET* + #### Description + Return non-paginated queryset. Available filters: + * establishment () - filter by establishment identifier + * type (`enum`) - filter by partner type + ``` + Partner - 0 + Sponsor - 1 + ``` + * ordering (`str`) - set ordering by `partner_bind_date` field + ##### Response + E.g.: + ``` + [ + { + "id": 1, + ... + } + ] + ``` + ### *POST* + #### Description + Create new partner + ##### Request + Available: + * name (`str`) - partner name + * images (`list`) - array of an images + * type (`int`) - partner type + ``` + Partner - 0 + Sponsor - 1 + ``` + * country_id (`int`) - identifier of country + ##### Response + E.g.: + ``` + { + "id": 1, + ... + } + ``` """ queryset = Partner.objects.with_base_related() serializer_class = serializers.BackPartnerSerializer @@ -25,6 +66,29 @@ class PartnerLstView(generics.ListCreateAPIView): class EstablishmentPartners(generics.ListAPIView): + """ + ## List view + ### *GET* + #### Description + Return non-paginated list of establishment partners + by `establishment slug`. + Ordering by a field - `partner_bind_date` (descending). + Available ordering fields: `__all__` + Available filters: + * type (`int`) - partner type + ``` + Partner - 0 + Sponsor - 1 + ``` + #### Response + E.g.: + ``` + { + "id": 1, + ... + } + ``` + """ queryset = PartnerToEstablishment.objects.with_base_related() serializer_class = serializers.PartnersForEstablishmentSerializer pagination_class = None @@ -42,7 +106,49 @@ class EstablishmentPartners(generics.ListAPIView): class PartnerRUDView(generics.RetrieveUpdateDestroyAPIView): - """Partner RUD view.""" + """ + ## Retrieve/Update/Destroy view + ### *GET* + #### Description + Return serialized object of partner + ##### Response + E.g.: + ``` + { + "id": 1, + ... + } + ``` + ### *PUT*/*PATCH* + #### Description + Completely/Partially update a partner object. + ##### Request + Available: + * name (`str`) - partner name + * images (`list`) - array of images + * type (`int`) - partner type + ``` + Partner - 0 + Sponsor - 1 + ``` + * country_id (`int`) - identifier of country + ##### Response + E.g.: + ``` + { + "id": 1, + ... + } + ``` + ### *DELETE* + #### Description + Delete a partner + ##### Response + E.g.: + ``` + No content + ``` + """ queryset = Partner.objects.with_base_related() serializer_class = serializers.BackPartnerSerializer lookup_field = 'id' @@ -63,6 +169,24 @@ class PartnerPicturesListView(generics.RetrieveAPIView): class BindPartnerToEstablishmentView(generics.CreateAPIView): + """ + ## Binding a partner to establishment + ### *POST* + #### Description + Bind existing partner to an establishment. + ##### Request + In `URL kwargs`: + * partner_id (`int`) - identifier of a partner + * establishment_id (`int`) - identifier of an establishment + ##### Response + E.g.: + ``` + { + "id": 1, + ... + } + ``` + """ serializer_class = serializers.PartnersForEstablishmentSerializer permission_classes = get_permission_classes( IsEstablishmentManager, @@ -71,6 +195,20 @@ class BindPartnerToEstablishmentView(generics.CreateAPIView): class UnbindPartnerFromEstablishmentView(generics.DestroyAPIView): + """ + ## Unbinding a partner from establishment + ### *DELETE* + #### Description + Unbind an existing partner from an establishment. + ##### Request + In `URL kwargs`: + * partner_id (`int`) - identifier of a partner + * establishment_id (`int`) - identifier of an establishment + ##### Response + ``` + No content + ``` + """ serializer_class = serializers.PartnersForEstablishmentSerializer permission_classes = get_permission_classes( IsEstablishmentManager,