| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | 
							- #!/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 = 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:
 
-                 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)
 
 
  |