#!/usr/bin/env python3 # -*- coding: utf-8 -*- import boto3 from django.views import View from Model.models import Device_User, UserRegionModel from Object.IOTCore.IotObject import ChinaIOTClient, AsiaIOTClient, EuropeIOTClient, AmericaIOTClient from Object.ResponseObject import ResponseObject 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) if uid: user_region_qs = UserRegionModel.objects.filter(user__device_info__UID=uid) if user_region_qs.exists(): user_region = user_region_qs[0] if user_region.region_id == 1: iotClient = AmericaIOTClient() 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)