from django.shortcuts import get_object_or_404 from rest_framework import generics from rest_framework.response import Response from core.apps.accounts.permissions.permissions import HasRolePermission from core.apps.shared.models import UsdCourse from core.apps.shared.serializers.usd_course import UsdCourseSerializer class UsdCourseApiView(generics.GenericAPIView): serializer_class = UsdCourseSerializer queryset = UsdCourse.objects.all() permission_classes = [HasRolePermission] def get(self, request): value = UsdCourse.objects.first() serializer = self.serializer_class(value) return Response(serializer.data, status=200) def patch(self, request): usd_cource = UsdCourse.objects.first() if not usd_cource: usd_cource = UsdCourse.objects.create(value=0) old_value = usd_cource.value serializer = self.serializer_class(data=request.data) if not serializer.is_valid(): return Response(serializer.errors, status=400) value = serializer.validated_data.get("value") usd_cource.value = value usd_cource.save() return Response( {"new_value": usd_cource.value, "old_value": old_value}, status=200 )