From 6d61508ea2d99a761cfdfbc838016dea611ff7e5 Mon Sep 17 00:00:00 2001 From: Parsa Nazer Date: Thu, 27 Mar 2025 22:15:31 +0330 Subject: [PATCH] clean up swagger --- backend/account/views.py | 8 +++++++- backend/core/urls.py | 4 ++-- backend/order/urls.py | 3 +-- backend/order/views.py | 27 ++++++++++++++++++++++----- 4 files changed, 32 insertions(+), 10 deletions(-) diff --git a/backend/account/views.py b/backend/account/views.py index c19236f..a6c46b7 100644 --- a/backend/account/views.py +++ b/backend/account/views.py @@ -6,7 +6,7 @@ from .serializers import * from .models import UserAddressModel, User, SecurityBreachAttemptModel from rest_framework.permissions import IsAuthenticated, AllowAny from drf_spectacular.utils import extend_schema, OpenApiParameter, extend_schema_view -from rest_framework_simplejwt.views import TokenObtainPairView +from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView from django.shortcuts import get_object_or_404, redirect from rest_framework_simplejwt.tokens import RefreshToken import ghasedak_sms @@ -65,6 +65,12 @@ Code: {otp}""" except Exception as e: return Response({'detail': f'error: {e} مشتی فعلا برو تو غمت نباشه تا بعدا یه کاریش بکنم', 'otp_code': otp}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) # return Response({'detail': f'An error occurred: {e}'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) +@extend_schema_view( + post=extend_schema(tags=['authentication']) +) +class TokenRefreshView(TokenRefreshView): + pass + class CustomTokenObtainPairView(TokenObtainPairView): diff --git a/backend/core/urls.py b/backend/core/urls.py index 3e46822..eeb96c0 100644 --- a/backend/core/urls.py +++ b/backend/core/urls.py @@ -3,9 +3,9 @@ from django.contrib import admin from django.urls import path, include from drf_spectacular.views import SpectacularSwaggerView, SpectacularAPIView from django.conf import settings -from rest_framework_simplejwt.views import TokenObtainPairView,TokenRefreshView +from rest_framework_simplejwt.views import TokenObtainPairView from product import views -from account.views import CustomTokenObtainPairView +from account.views import CustomTokenObtainPairView, TokenRefreshView from home.views import HomeView from .views import FakeAdminLoginView from azbankgateways.urls import az_bank_gateways_urls diff --git a/backend/order/urls.py b/backend/order/urls.py index 6ec9fd4..31d4db3 100644 --- a/backend/order/urls.py +++ b/backend/order/urls.py @@ -1,8 +1,7 @@ from django.conf.urls.static import static from django.contrib import admin from django.urls import path, include -from .views import CartItemViews, CartView, OrderlistView, CartItemClear, ApplyDiscountView, OrderGetView, SetAddressForCartView -from .views import PaymentView, callback_view +from .views import * urlpatterns = [ path('all', OrderlistView.as_view(), name='order-list'), diff --git a/backend/order/views.py b/backend/order/views.py index 4dcab70..19a01ee 100644 --- a/backend/order/views.py +++ b/backend/order/views.py @@ -10,7 +10,7 @@ from .models import OrderItemModel, OrderModel, DiscountCode from .permissons import CanDeleteCartItemPermissions, GetOrderPermission, SetAddressPermissions from azbankgateways import bankfactories, models as bank_models from azbankgateways.exceptions import AZBankGatewaysException -from drf_spectacular.utils import extend_schema, OpenApiParameter, OpenApiTypes +from drf_spectacular.utils import extend_schema, OpenApiParameter, OpenApiTypes, extend_schema_view from utils.pagination import StructurePagination from order.models import OrderModel from django.urls import reverse @@ -23,7 +23,10 @@ from account.models import UserAddressModel # pass - +@extend_schema_view( + post=extend_schema(tags=["cart discount code"]), + delete=extend_schema(tags=["cart discount code"]), +) class ApplyDiscountView(APIView): serializer_class = DiscountCodeSerializer permission_classes = [IsAuthenticated] @@ -52,6 +55,9 @@ class ApplyDiscountView(APIView): class CartItemClear(APIView): permission_classes = [IsAuthenticated] serializer_class = OrderItemSerailzier + @extend_schema( + tags=["order cart"] + ) def delete(self, request): cart_order, created = OrderModel.objects.get_or_create( user=request.user, @@ -60,7 +66,10 @@ class CartItemClear(APIView): cart_order.items.all().delete() return Response({'detail': f'سبد خرید با موفقیت خالی شد'}, status=status.HTTP_204_NO_CONTENT) - +@extend_schema_view( + post=extend_schema(tags=["order cart"]), + delete=extend_schema(tags=["order cart"]), +) class CartItemViews(APIView): permission_classes = [IsAuthenticated] serializer_class = OrderItemSerailzier @@ -101,6 +110,9 @@ class CartItemViews(APIView): class CartView(APIView): permission_classes = [IsAuthenticated] serializer_class = CartSerializer + @extend_schema( + tags=["order cart"] + ) def get(self, request): user = request.user cart_instance, created = OrderModel.objects.get_or_create(user=user, status='CART') @@ -144,7 +156,8 @@ class OrderlistView(APIView): required=False, type=OpenApiTypes.STR, ), - ] + ], + tags=["order"] ) def get(self, request): user = request.user @@ -191,7 +204,8 @@ class PaymentView(APIView): permission_classes = [IsAuthenticated] serializer_class = BankTypeSerializer @extend_schema( - description="choices=['BMI', 'SEP', 'ZARINPAL', 'IDPAY', 'ZIBAL', 'BAHAMTA', 'MELLAT', 'PAYV1']" + description="choices=['BMI', 'SEP', 'ZARINPAL', 'IDPAY', 'ZIBAL', 'BAHAMTA', 'MELLAT', 'PAYV1']", + tags=['order payment'] ) def post(self, request): print(request.data.get('gateway_type')) @@ -261,6 +275,9 @@ class SetAddressSerilizer(serializers.Serializer): class SetAddressForCartView(APIView): serializer_class = SetAddressSerilizer permission_classes = [IsAuthenticated, SetAddressPermissions] + @extend_schema( + tags=["order cart"] + ) def post(self, request): address_id = request.data.get('address_id', None) if not address_id: