1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- import time
- import boto3
- from django.views import View
- from Model.models import Device_User, Device_Info, RegionCountryModel
- from Object.IOTCore.IotObject import ChinaIOTClient, AsiaIOTClient, EuropeIOTClient, AmericaIOTClient
- from Object.ResponseObject import ResponseObject
- from Service.CommonService import CommonService
- class IotCoreView(View):
- def get(self, request, *args, **kwargs):
- request.encoding = 'utf-8'
- request_dict = request.GET
- operation = kwargs.get('operation', None)
- return self.validate(operation, request_dict)
- def post(self, request, *args, **kwargs):
- request.encoding = 'utf-8'
- request_dict = request.POST
- operation = kwargs.get('operation', None)
- return self.validate(operation, request_dict)
- def validate(self, operation, request_dict):
- response = ResponseObject()
- if operation == 'createProvisioningClaim':
- return self.create_provisioning_claim(request_dict, response)
- else:
- return response.json(404)
- def create_provisioning_claim(self, request_dict, response):
- uid = request_dict.get('uid', None)
- token = request_dict.get('token', None)
- time_stamp = request_dict.get('time_stamp', None)
- if uid and token and time_stamp:
- token = int(CommonService.decode_data(token))
- time_stamp = int(time_stamp)
- now_time = int(time.time())
- distance = now_time - time_stamp
- #if token != time_stamp and distance > 600: 暂时去掉延时
- if token != time_stamp:
- return response.json(404)
- region_country_qs = Device_Info.objects.filter(UID=uid).values('userID__region_country')
- if not region_country_qs.exists():
- return response.json(173)
- region_country_qs = RegionCountryModel.objects.filter(number=region_country_qs[0]['userID__region_country'])
- if region_country_qs.exists():
- user_region = region_country_qs[0]
- if user_region.region_id == 1:
- iotClient = ChinaIOTClient()
- return response.json(0, {'res': iotClient.create_provisioning_claim('Ansjer_Iot_Queue')})
- elif user_region.region_id == 2:
- iotClient = AsiaIOTClient()
- return response.json(0, {'res': iotClient.create_provisioning_claim('Ansjer_Iot_Queue')})
- elif user_region.region_id == 3:
- iotClient = EuropeIOTClient()
- return response.json(0, {'res': iotClient.create_provisioning_claim('Ansjer_Iot_Queue')})
- else:
- iotClient = AmericaIOTClient()
- return response.json(0, {'res': iotClient.create_provisioning_claim('Ansjer_Iot_Queue')})
- else:
- return response.json(444)
|