clean up swagger

This commit is contained in:
Parsa Nazer
2025-03-27 22:15:31 +03:30
parent d36a073e71
commit 6d61508ea2
4 changed files with 32 additions and 10 deletions
+7 -1
View File
@@ -6,7 +6,7 @@ from .serializers import *
from .models import UserAddressModel, User, SecurityBreachAttemptModel from .models import UserAddressModel, User, SecurityBreachAttemptModel
from rest_framework.permissions import IsAuthenticated, AllowAny from rest_framework.permissions import IsAuthenticated, AllowAny
from drf_spectacular.utils import extend_schema, OpenApiParameter, extend_schema_view 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 django.shortcuts import get_object_or_404, redirect
from rest_framework_simplejwt.tokens import RefreshToken from rest_framework_simplejwt.tokens import RefreshToken
import ghasedak_sms import ghasedak_sms
@@ -65,6 +65,12 @@ Code: {otp}"""
except Exception as e: except Exception as e:
return Response({'detail': f'error: {e} مشتی فعلا برو تو غمت نباشه تا بعدا یه کاریش بکنم', 'otp_code': otp}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) 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) # 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): class CustomTokenObtainPairView(TokenObtainPairView):
+2 -2
View File
@@ -3,9 +3,9 @@ from django.contrib import admin
from django.urls import path, include from django.urls import path, include
from drf_spectacular.views import SpectacularSwaggerView, SpectacularAPIView from drf_spectacular.views import SpectacularSwaggerView, SpectacularAPIView
from django.conf import settings 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 product import views
from account.views import CustomTokenObtainPairView from account.views import CustomTokenObtainPairView, TokenRefreshView
from home.views import HomeView from home.views import HomeView
from .views import FakeAdminLoginView from .views import FakeAdminLoginView
from azbankgateways.urls import az_bank_gateways_urls from azbankgateways.urls import az_bank_gateways_urls
+1 -2
View File
@@ -1,8 +1,7 @@
from django.conf.urls.static import static from django.conf.urls.static import static
from django.contrib import admin from django.contrib import admin
from django.urls import path, include from django.urls import path, include
from .views import CartItemViews, CartView, OrderlistView, CartItemClear, ApplyDiscountView, OrderGetView, SetAddressForCartView from .views import *
from .views import PaymentView, callback_view
urlpatterns = [ urlpatterns = [
path('all', OrderlistView.as_view(), name='order-list'), path('all', OrderlistView.as_view(), name='order-list'),
+22 -5
View File
@@ -10,7 +10,7 @@ from .models import OrderItemModel, OrderModel, DiscountCode
from .permissons import CanDeleteCartItemPermissions, GetOrderPermission, SetAddressPermissions from .permissons import CanDeleteCartItemPermissions, GetOrderPermission, SetAddressPermissions
from azbankgateways import bankfactories, models as bank_models from azbankgateways import bankfactories, models as bank_models
from azbankgateways.exceptions import AZBankGatewaysException 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 utils.pagination import StructurePagination
from order.models import OrderModel from order.models import OrderModel
from django.urls import reverse from django.urls import reverse
@@ -23,7 +23,10 @@ from account.models import UserAddressModel
# pass # pass
@extend_schema_view(
post=extend_schema(tags=["cart discount code"]),
delete=extend_schema(tags=["cart discount code"]),
)
class ApplyDiscountView(APIView): class ApplyDiscountView(APIView):
serializer_class = DiscountCodeSerializer serializer_class = DiscountCodeSerializer
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]
@@ -52,6 +55,9 @@ class ApplyDiscountView(APIView):
class CartItemClear(APIView): class CartItemClear(APIView):
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]
serializer_class = OrderItemSerailzier serializer_class = OrderItemSerailzier
@extend_schema(
tags=["order cart"]
)
def delete(self, request): def delete(self, request):
cart_order, created = OrderModel.objects.get_or_create( cart_order, created = OrderModel.objects.get_or_create(
user=request.user, user=request.user,
@@ -60,7 +66,10 @@ class CartItemClear(APIView):
cart_order.items.all().delete() cart_order.items.all().delete()
return Response({'detail': f'سبد خرید با موفقیت خالی شد'}, status=status.HTTP_204_NO_CONTENT) 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): class CartItemViews(APIView):
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]
serializer_class = OrderItemSerailzier serializer_class = OrderItemSerailzier
@@ -101,6 +110,9 @@ class CartItemViews(APIView):
class CartView(APIView): class CartView(APIView):
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]
serializer_class = CartSerializer serializer_class = CartSerializer
@extend_schema(
tags=["order cart"]
)
def get(self, request): def get(self, request):
user = request.user user = request.user
cart_instance, created = OrderModel.objects.get_or_create(user=user, status='CART') cart_instance, created = OrderModel.objects.get_or_create(user=user, status='CART')
@@ -144,7 +156,8 @@ class OrderlistView(APIView):
required=False, required=False,
type=OpenApiTypes.STR, type=OpenApiTypes.STR,
), ),
] ],
tags=["order"]
) )
def get(self, request): def get(self, request):
user = request.user user = request.user
@@ -191,7 +204,8 @@ class PaymentView(APIView):
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]
serializer_class = BankTypeSerializer serializer_class = BankTypeSerializer
@extend_schema( @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): def post(self, request):
print(request.data.get('gateway_type')) print(request.data.get('gateway_type'))
@@ -261,6 +275,9 @@ class SetAddressSerilizer(serializers.Serializer):
class SetAddressForCartView(APIView): class SetAddressForCartView(APIView):
serializer_class = SetAddressSerilizer serializer_class = SetAddressSerilizer
permission_classes = [IsAuthenticated, SetAddressPermissions] permission_classes = [IsAuthenticated, SetAddressPermissions]
@extend_schema(
tags=["order cart"]
)
def post(self, request): def post(self, request):
address_id = request.data.get('address_id', None) address_id = request.data.get('address_id', None)
if not address_id: if not address_id: