| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | #!/usr/bin/env python3# -*- coding: utf-8 -*-import timeimport boto3from django.views import Viewfrom Model.models import Device_User, Device_Info, RegionCountryModelfrom Object.IOTCore.IotObject import ChinaIOTClient, AsiaIOTClient, EuropeIOTClient, AmericaIOTClientfrom Object.ResponseObject import ResponseObjectfrom Service.CommonService import CommonServiceclass 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)
 |