123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #!/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)
|