Skip to content

Commit

Permalink
client-configs | common resource views to get and post
Browse files Browse the repository at this point in the history
  • Loading branch information
snyaggarwal committed Feb 22, 2021
1 parent 627a49c commit b7f5fde
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 22 deletions.
25 changes: 24 additions & 1 deletion core/client_configs/views.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
from rest_framework import generics
from rest_framework import generics, status
from rest_framework.generics import RetrieveAPIView, UpdateAPIView, DestroyAPIView
from rest_framework.response import Response

from core.client_configs.serializers import ClientConfigSerializer
from core.common.views import BaseAPIView
from .models import ClientConfig


Expand All @@ -24,3 +25,25 @@ def update(self, request, *args, **kwargs):
serializer.is_valid(raise_exception=True)

return Response(serializer.data)


class ResourceClientConfigsView(BaseAPIView, RetrieveAPIView):
swagger_schema = None
serializer_class = ClientConfigSerializer

def get(self, request, *args, **kwargs):
instance = self.get_object()
configs = instance.client_configs.filter(is_active=True)

return Response(self.get_serializer(configs, many=True).data, status=status.HTTP_200_OK)

def post(self, request, *args, **kwargs): # pylint: disable=unused-argument
instance = self.get_object()
serializer = self.get_serializer(
data={**request.data, 'resource_type': instance.__class__.__name__, 'resource_id': instance.id}
)
if serializer.is_valid():
serializer.save()
if serializer.is_valid():
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
23 changes: 2 additions & 21 deletions core/orgs/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from rest_framework.response import Response
from rest_framework.views import APIView

from core.client_configs.serializers import ClientConfigSerializer
from core.client_configs.views import ResourceClientConfigsView
from core.collections.views import CollectionListView
from core.common.constants import NOT_FOUND, MUST_SPECIFY_EXTRA_PARAM_IN_BODY
from core.common.mixins import ListWithHeadersMixin
Expand Down Expand Up @@ -144,30 +144,11 @@ def destroy(self, request, *args, **kwargs):
return Response({'detail': DELETE_ACCEPTED}, status=status.HTTP_202_ACCEPTED)


class OrganizationClientConfigsView(BaseAPIView, RetrieveAPIView):
class OrganizationClientConfigsView(ResourceClientConfigsView):
lookup_field = 'org'
model = Organization
queryset = Organization.objects.filter(is_active=True)
serializer_class = ClientConfigSerializer
permission_classes = (CanViewConceptDictionary, )
swagger_schema = None

def get(self, request, *args, **kwargs):
instance = self.get_object()
configs = instance.client_configs.filter(is_active=True)

return Response(self.get_serializer(configs, many=True).data, status=status.HTTP_200_OK)

def post(self, request, *args, **kwargs): # pylint: disable=unused-argument
instance = self.get_object()
serializer = self.get_serializer(
data={**request.data, 'resource_type': instance.__class__.__name__, 'resource_id': instance.id}
)
if serializer.is_valid():
serializer.save()
if serializer.is_valid():
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)


class OrganizationMemberView(generics.GenericAPIView):
Expand Down

0 comments on commit b7f5fde

Please sign in to comment.