#!/usr/bin/env python3 # -*- coding: utf-8 -*- import boto3 from django.views import View from Ansjer.config import AWS_IOT_SES_ACCESS_REGION, AWS_IOT_SES_ACCESS_ID, \ AWS_IOT_SES_ACCESS_SECRET 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): country = request_dict.get('country', None) state = request_dict.get('state', None) if country and state: client = boto3.client('iot', region_name=AWS_IOT_SES_ACCESS_REGION, aws_access_key_id=AWS_IOT_SES_ACCESS_ID, aws_secret_access_key=AWS_IOT_SES_ACCESS_SECRET) result = client.create_provisioning_claim(templateName='Ansjer_Iot_Queue') res = { 'certificateId': result['certificateId'], 'certificatePem': result['certificatePem'], 'publicKey': result['keyPair']['PublicKey'], 'privateKey': result['keyPair']['PrivateKey'], 'endpoint': 'a2rqy12o004ad8-ats.iot.us-east-1.amazonaws.com' } return response.json(0, {'res': res}) else: return response.json(444)