Commit 25c3b2ec authored by Ristylou Dolar's avatar Ristylou Dolar

Moved auto-generated number create from serializers to viewsets

parent 033f710d
from rest_framework import serializers from rest_framework import serializers
from .models import APIService, APIEndpoint, Application from .models import APIService, APIEndpoint, Application
from api.utils import BadRequestException, number_generator from api.utils import BadRequestException
from rest_framework.exceptions import ValidationError from rest_framework.exceptions import ValidationError
from django.utils.crypto import get_random_string
class GroupDependentSerializer(serializers.ModelSerializer): class GroupDependentSerializer(serializers.ModelSerializer):
...@@ -63,15 +62,6 @@ class ApplicationSerializer(serializers.ModelSerializer): ...@@ -63,15 +62,6 @@ class ApplicationSerializer(serializers.ModelSerializer):
return not bool(self._errors) return not bool(self._errors)
def create(self, validated_data):
new_application = Application.objects.create(**validated_data)
new_application.application_no = number_generator(
'APP', new_application.id
)
new_application.save()
return new_application
class APIServiceSerializer(serializers.ModelSerializer): class APIServiceSerializer(serializers.ModelSerializer):
class Meta: class Meta:
...@@ -126,13 +116,6 @@ class APIServiceSerializer(serializers.ModelSerializer): ...@@ -126,13 +116,6 @@ class APIServiceSerializer(serializers.ModelSerializer):
return not bool(self._errors) return not bool(self._errors)
def create(self, validated_data):
new_service = APIService.objects.create(**validated_data)
new_service.api_service_no = number_generator('SVC', new_service.id)
new_service.service_token = get_random_string(length=16)
new_service.save()
return new_service
class APIEndpointSerializer(serializers.ModelSerializer): class APIEndpointSerializer(serializers.ModelSerializer):
service_name = serializers.ReadOnlyField(source='service.name') service_name = serializers.ReadOnlyField(source='service.name')
...@@ -187,9 +170,3 @@ class APIEndpointSerializer(serializers.ModelSerializer): ...@@ -187,9 +170,3 @@ class APIEndpointSerializer(serializers.ModelSerializer):
raise BadRequestException(error_message) raise BadRequestException(error_message)
return not bool(self._errors) return not bool(self._errors)
def create(self, validated_data):
new_endpoint = APIEndpoint.objects.create(**validated_data)
new_endpoint.api_endpoint_no = number_generator('ENP', new_endpoint.id)
new_endpoint.save()
return new_endpoint
...@@ -5,8 +5,10 @@ from rest_framework.decorators import action ...@@ -5,8 +5,10 @@ from rest_framework.decorators import action
from rest_framework.response import Response from rest_framework.response import Response
from api.models import Application from api.models import Application
from api.serializers import ApplicationSerializer, GroupDependentSerializer from api.serializers import ApplicationSerializer, GroupDependentSerializer
from api.utils import (CustomPagination, BadRequestException, from api.utils import (
status_message_response) CustomPagination, BadRequestException,
status_message_response, number_generator
)
AUTHENTICATOR_GROUP = settings.AUTHENTICATOR_GROUP AUTHENTICATOR_GROUP = settings.AUTHENTICATOR_GROUP
...@@ -26,7 +28,14 @@ class ApplicationViewSet(viewsets.ModelViewSet): ...@@ -26,7 +28,14 @@ class ApplicationViewSet(viewsets.ModelViewSet):
try: try:
serializer = self.get_serializer(data=request.data) serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
self.perform_create(serializer) app_create = serializer.save()
# for application_no
app_id = app_create.pk
app_create.application_no = number_generator(
'APP', app_id
)
app_create.save()
message = status_message_response( message = status_message_response(
201, 'success', 201, 'success',
...@@ -94,9 +103,9 @@ class ApplicationViewSet(viewsets.ModelViewSet): ...@@ -94,9 +103,9 @@ class ApplicationViewSet(viewsets.ModelViewSet):
def retrieve(self, request, *args, **kwargs): def retrieve(self, request, *args, **kwargs):
try: try:
id = self.kwargs['pk'] id = self.kwargs['pk']
instance = Application.objects.get(id=id) instance = Application.objects.get(id=id)
serializer = self.get_serializer(instance) serializer = self.get_serializer(instance)
message = status_message_response( message = status_message_response(
200, 'success', 200, 'success',
'Application retrieved', serializer.data 'Application retrieved', serializer.data
...@@ -110,7 +119,7 @@ class ApplicationViewSet(viewsets.ModelViewSet): ...@@ -110,7 +119,7 @@ class ApplicationViewSet(viewsets.ModelViewSet):
except Exception as e: except Exception as e:
message = status_message_response( message = status_message_response(
500, 'failed', 500, 'failed',
'Request was not able to process' + str(e), [] 'Request was not able to process' + str(e), []
) )
return Response(message, return Response(message,
......
...@@ -4,9 +4,9 @@ from rest_framework.response import Response ...@@ -4,9 +4,9 @@ from rest_framework.response import Response
from api.models import APIEndpoint from api.models import APIEndpoint
from api.serializers import APIEndpointSerializer from api.serializers import APIEndpointSerializer
from api.utils import ( from api.utils import (
APIEndpointFilter, CustomPagination, APIEndpointFilter, CustomPagination,
BadRequestException, status_message_response BadRequestException, status_message_response, number_generator
) )
from django_filters.rest_framework import DjangoFilterBackend from django_filters.rest_framework import DjangoFilterBackend
...@@ -26,7 +26,14 @@ class APIEndpointViewSet(viewsets.ModelViewSet): ...@@ -26,7 +26,14 @@ class APIEndpointViewSet(viewsets.ModelViewSet):
try: try:
serializer = self.get_serializer(data=request.data) serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
self.perform_create(serializer) endpoint_create = serializer.save()
# for endpoint_no
endpoint_id = endpoint_create.pk
endpoint_create.api_endpoint_no = number_generator(
'ENP', endpoint_id
)
endpoint_create.save()
message = status_message_response( message = status_message_response(
201, 'success', 201, 'success',
...@@ -80,9 +87,9 @@ class APIEndpointViewSet(viewsets.ModelViewSet): ...@@ -80,9 +87,9 @@ class APIEndpointViewSet(viewsets.ModelViewSet):
def retrieve(self, request, *args, **kwargs): def retrieve(self, request, *args, **kwargs):
try: try:
id = self.kwargs['pk'] id = self.kwargs['pk']
instance = APIEndpoint.objects.get(id=id) instance = APIEndpoint.objects.get(id=id)
serializer = self.get_serializer(instance) serializer = self.get_serializer(instance)
message = status_message_response( message = status_message_response(
200, 'success', 200, 'success',
'Endpoint retrieved', serializer.data 'Endpoint retrieved', serializer.data
...@@ -96,7 +103,7 @@ class APIEndpointViewSet(viewsets.ModelViewSet): ...@@ -96,7 +103,7 @@ class APIEndpointViewSet(viewsets.ModelViewSet):
except Exception as e: except Exception as e:
message = status_message_response( message = status_message_response(
500, 'failed', 500, 'failed',
'Request was not able to process' + str(e), [] 'Request was not able to process' + str(e), []
) )
return Response(message, return Response(message,
......
...@@ -4,8 +4,10 @@ from rest_framework.response import Response ...@@ -4,8 +4,10 @@ from rest_framework.response import Response
from api.models import APIService from api.models import APIService
from api.serializers import APIServiceSerializer from api.serializers import APIServiceSerializer
from api.utils import ( from api.utils import (
CustomPagination, BadRequestException, status_message_response CustomPagination, BadRequestException,
status_message_response, number_generator
) )
from django.utils.crypto import get_random_string
class APIServiceViewSet(viewsets.ModelViewSet): class APIServiceViewSet(viewsets.ModelViewSet):
...@@ -22,7 +24,15 @@ class APIServiceViewSet(viewsets.ModelViewSet): ...@@ -22,7 +24,15 @@ class APIServiceViewSet(viewsets.ModelViewSet):
try: try:
serializer = self.get_serializer(data=request.data) serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
self.perform_create(serializer) service_create = serializer.save()
# for service_no
service_id = service_create.pk
service_create.api_service_no = number_generator(
'SVC', service_id
)
service_create.service_token = get_random_string(length=16)
service_create.save()
message = status_message_response( message = status_message_response(
201, 'success', 201, 'success',
...@@ -76,9 +86,9 @@ class APIServiceViewSet(viewsets.ModelViewSet): ...@@ -76,9 +86,9 @@ class APIServiceViewSet(viewsets.ModelViewSet):
def retrieve(self, request, *args, **kwargs): def retrieve(self, request, *args, **kwargs):
try: try:
id = self.kwargs['pk'] id = self.kwargs['pk']
instance = APIService.objects.get(id=id) instance = APIService.objects.get(id=id)
serializer = self.get_serializer(instance) serializer = self.get_serializer(instance)
message = status_message_response( message = status_message_response(
200, 'success', 200, 'success',
'Service retrieved', serializer.data 'Service retrieved', serializer.data
...@@ -92,7 +102,7 @@ class APIServiceViewSet(viewsets.ModelViewSet): ...@@ -92,7 +102,7 @@ class APIServiceViewSet(viewsets.ModelViewSet):
except Exception as e: except Exception as e:
message = status_message_response( message = status_message_response(
500, 'failed', 500, 'failed',
'Request was not able to process' + str(e), [] 'Request was not able to process' + str(e), []
) )
return Response(message, return Response(message,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment