feat: add Didox service integration for company info retrieval
All checks were successful
Deploy to Production / build-and-deploy (push) Successful in 2m9s

This commit is contained in:
komoliddin
2026-04-21 13:05:45 +05:00
parent 70555fa93a
commit 8a1a66a05d
8 changed files with 94 additions and 1 deletions

View File

@@ -26,6 +26,7 @@ from .views import (
AutoEvaluationListAppraisersView,
AutoEvaluationSetAppraisersView,
AutoEvaluationRemoveAppraisersView,
DidoxCompanyInfoAPIView,
)
@@ -60,4 +61,9 @@ urlpatterns = [
path("<int:id>/remove/", AutoEvaluationRemoveAppraisersView.as_view(), name="auto-evaluation-remove-appraisers"),
]
)),
path(
"didox/info/<int:tin>/",
DidoxCompanyInfoAPIView.as_view(),
name="didox-info"
),
]

View File

@@ -11,3 +11,4 @@ from .report import * # noqa
from .request import * # noqa
from .valuation import * # noqa
from .vehicle import * # noqa
from .didox import * # noqa

View File

@@ -0,0 +1,51 @@
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)