Source code for apps.api.views.device_type_view

from rest_framework import status
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework.permissions import IsAuthenticated
from django.utils import timezone
from apps.api.exceptions import ApiException, ValidationException
from apps.api.serializers.serializers import DeviceTypeSerializer
from apps.core.models.device_type import DeviceType
from apps.api.model_helper import *


[docs]class DeviceTypeViewManagement(APIView): # permission_classes = (IsAuthenticated,)
[docs] def get(self, request): device_types = DeviceType.objects.filter(deleted_at__isnull=True) serializer = DeviceTypeSerializer(device_types, many=True) return Response(status=status.HTTP_200_OK, data=serializer.data)
[docs] def post(self, request): device_type = get_deleted_device_type_by_name(request.data['type_name']) if device_type: serializer = DeviceTypeSerializer(device_type, data=request.data) else: serializer = DeviceTypeSerializer(data=request.data) if not serializer.is_valid(): raise ValidationException(f"Validation error: {serializer.errors}", status.HTTP_400_BAD_REQUEST) serializer.save() return Response(status=status.HTTP_201_CREATED, data=serializer.data)
[docs]class DeviceTypeViewDetail(APIView): # permission_classes = (IsAuthenticated,)
[docs] def delete(self, request, device_type_id): device_type = get_device_type(device_type_id) if check_device_existence(device_type_id): device_type.soft_delete() return Response(status=status.HTTP_204_NO_CONTENT)
[docs] def get(self, request, device_type_id): device_type = get_device_type(device_type_id) serializer = DeviceTypeSerializer(device_type) return Response(status=status.HTTP_200_OK, data=serializer.data)
[docs] def put(self, request, device_type_id): data = request.data device_type = get_device_type(device_type_id) serializer = DeviceTypeSerializer(device_type, data=data) if not serializer.is_valid(): raise ValidationException(f"Validation error: {serializer.errors}", status.HTTP_400_BAD_REQUEST) serializer.save() return Response(status=status.HTTP_200_OK, data=serializer.data)