feat: 添加亚控通用调用接口
This commit is contained in:
parent
f612c8e662
commit
7867fe0e67
|
@ -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)),
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue