feat: 添加亚控通用调用接口

This commit is contained in:
caoqianming 2024-06-19 15:23:40 +08:00
parent f612c8e662
commit 7867fe0e67
2 changed files with 37 additions and 7 deletions

View File

@ -1,7 +1,7 @@
from email.mime import base
from django.urls import path, include
from rest_framework import routers
from apps.third.views import DahuaTestView, DhCommonViewSet, SpTestView, SpeakerViewSet, XxCommonViewSet, XxTestView
from apps.third.views import DahuaTestView, DhCommonViewSet, SpTestView, SpeakerViewSet, XxCommonViewSet, XxTestView, KingCommonViewSet
from apps.third.views_d import BltViewSet, TDeviceViewSet, TlogViewSet
API_BASE_URL = 'api/third/'
@ -14,6 +14,7 @@ router.register('speaker', SpeakerViewSet, basename='api_speaker')
router.register('tdevice', TDeviceViewSet, basename='tdevice')
router.register('tlog', TlogViewSet, basename='tlog')
router.register('tdevice/blt', BltViewSet, basename='blt')
router.register('king', KingCommonViewSet, basename='king')
# router.register('doorauth', DoorAuthViewSet, basename='doorauth')
urlpatterns = [
path(API_BASE_URL, include(router.urls)),

View File

@ -4,6 +4,8 @@ from rest_framework.exceptions import ParseError, APIException
from apps.ecm.service import dispatch_dahua_event, handle_xx_event, loc_change, rail_in, rail_out
from apps.hrm.services import HrmService
from apps.third.tapis import dhapis, xxapis, spapis
from apps.third.king.king_api import kapis
from apps.third.king.k import kingClient
from apps.third.errors import TAPI_CODE_WRONG
from apps.third.dahua import dhClient
from apps.third.xunxi import xxClient
@ -134,12 +136,12 @@ class XxCommonViewSet(CreateModelMixin, CustomGenericViewSet):
serializer.is_valid(raise_exception=True)
vdata = serializer.validated_data
if vdata.get('code', ''):
xxapi = xxapis.get(vdata['code'], None)
if xxapi is None:
raise ParseError(**TAPI_CODE_WRONG)
vdata['url'] = xxapi['url']
vdata['method'] = xxapi['method']
_, res = xxClient.request(
kapi = kapis.get(vdata['code'], None)
if kapi is None:
raise ParseError("code不存在")
vdata['url'] = kapi['url']
vdata['method'] = kapi['method']
_, res = kingClient.request(
url=vdata['url'],
method=vdata.get('method', 'post'),
params=vdata.get('params', {}),
@ -226,6 +228,33 @@ class XxCommonViewSet(CreateModelMixin, CustomGenericViewSet):
return Response()
class KingCommonViewSet(CreateModelMixin, CustomGenericViewSet):
perms_map = {'post': '*'}
serializer_class = RequestCommonSerializer
permission_classes = [IsAdminUser]
def create(self, request, *args, **kwargs):
"""
亚控通用调用接口
亚控通用调用接口
"""
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
vdata = serializer.validated_data
if vdata.get('code', ''):
xxapi = dhapis.get(vdata['code'], None)
if xxapi is None:
raise ParseError(**TAPI_CODE_WRONG)
vdata['url'] = xxapi['url']
vdata['method'] = xxapi['method']
_, res = dhClient.request(
url=vdata['url'],
method=vdata.get('method', 'post'),
params=vdata.get('params', {}),
json=vdata.get('json', {}))
return Response(res)
class DhCommonViewSet(CreateModelMixin, CustomGenericViewSet):
perms_map = {'post': '*'}
serializer_class = RequestCommonSerializer