from rest_framework.response import Response from rest_framework import status from rest_framework.permissions import AllowAny from rest_framework.generics import GenericAPIView from drf_spectacular.utils import extend_schema, OpenApiParameter from core.services.didox import DidoxService class DidoxCompanyInfoAPIView(GenericAPIView): authentication_classes = [] permission_classes = [AllowAny] @extend_schema( tags=["Didox"], summary="Get company info by TIN", description="TIN/JSHSHIR orqali Didoxdan ma'lumot olish", parameters=[ OpenApiParameter( name="tin", type=int, location=OpenApiParameter.PATH, required=True, description="TIN / STIR / INN / JSHSHIR" ) ], responses={200: dict}, ) def get(self, request, *args, **kwargs): tin = kwargs.get("tin") # 🔥 TYPE CHECK try: tin = int(tin) except (TypeError, ValueError): return Response( {"detail": "TIN must be a valid integer"}, status=status.HTTP_400_BAD_REQUEST ) data = DidoxService.get_company_info(tin) if not data: return Response( {"detail": "Didox service unavailable"}, status=status.HTTP_502_BAD_GATEWAY ) return Response(data, status=status.HTTP_200_OK)