From d635dcf5dee12123b9e7cf298551a56b4ebf4f29 Mon Sep 17 00:00:00 2001 From: behruz-dev Date: Tue, 7 Oct 2025 15:55:41 +0500 Subject: [PATCH] add api for usd course for Aziz aka --- core/apps/shared/serializers/usd_course.py | 11 ++++++++ core/apps/shared/urls.py | 2 ++ core/apps/shared/views/usd_course.py | 29 ++++++++++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 core/apps/shared/serializers/usd_course.py create mode 100644 core/apps/shared/views/usd_course.py diff --git a/core/apps/shared/serializers/usd_course.py b/core/apps/shared/serializers/usd_course.py new file mode 100644 index 0000000..c7ba83d --- /dev/null +++ b/core/apps/shared/serializers/usd_course.py @@ -0,0 +1,11 @@ +from rest_framework import serializers + +from core.apps.shared.models import UsdCourse + + +class UsdCourseSerializer(serializers.ModelSerializer): + class Meta: + model = UsdCourse + fields = [ + 'id', 'value' + ] \ No newline at end of file diff --git a/core/apps/shared/urls.py b/core/apps/shared/urls.py index 1159d48..ce5b7a0 100644 --- a/core/apps/shared/urls.py +++ b/core/apps/shared/urls.py @@ -1,8 +1,10 @@ from django.urls import path, include from core.apps.shared.views import region as region_views +from core.apps.shared.views.usd_course import UsdCourseApiView urlpatterns = [ path('region/list/', region_views.RegionListApiView.as_view()), path('region//districts/', region_views.DistrictListApiView.as_view()), + path('usd_course/', UsdCourseApiView.as_view()), ] \ No newline at end of file diff --git a/core/apps/shared/views/usd_course.py b/core/apps/shared/views/usd_course.py new file mode 100644 index 0000000..6265e0e --- /dev/null +++ b/core/apps/shared/views/usd_course.py @@ -0,0 +1,29 @@ +from django.shortcuts import get_object_or_404 + +from rest_framework import generics +from rest_framework.response import Response + +from core.apps.shared.models import UsdCourse +from core.apps.shared.serializers.usd_course import UsdCourseSerializer +from core.apps.accounts.permissions.permissions import HasRolePermission + + +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, id): + usd_cource = get_object_or_404(UsdCourse, id=id) + serializer = self.serializer_class(data=request.data) + if 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': value}, status=200)