IotCoreController.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. import boto3
  4. from django.views import View
  5. from Model.models import Device_User, UserRegionModel
  6. from Object.IOTCore.IotObject import ChinaIOTClient, AsiaIOTClient, EuropeIOTClient, AmericaIOTClient
  7. from Object.ResponseObject import ResponseObject
  8. class IotCoreView(View):
  9. def get(self, request, *args, **kwargs):
  10. request.encoding = 'utf-8'
  11. request_dict = request.GET
  12. operation = kwargs.get('operation', None)
  13. return self.validate(operation, request_dict)
  14. def post(self, request, *args, **kwargs):
  15. request.encoding = 'utf-8'
  16. request_dict = request.POST
  17. operation = kwargs.get('operation', None)
  18. return self.validate(operation, request_dict)
  19. def validate(self, operation, request_dict):
  20. response = ResponseObject()
  21. if operation == 'createProvisioningClaim':
  22. return self.create_provisioning_claim(request_dict, response)
  23. else:
  24. return response.json(404)
  25. def create_provisioning_claim(self, request_dict, response):
  26. uid = request_dict.get('uid', None)
  27. if uid:
  28. user_region_qs = UserRegionModel.objects.filter(user__device_info__UID=uid)
  29. if user_region_qs.exists():
  30. user_region = user_region_qs[0]
  31. if user_region.region_id == 1:
  32. iotClient = AmericaIOTClient()
  33. return response.json(0, {'res': iotClient.create_provisioning_claim('Ansjer_Iot_Queue')})
  34. elif user_region.region_id == 2:
  35. iotClient = AsiaIOTClient()
  36. return response.json(0, {'res': iotClient.create_provisioning_claim('Ansjer_Iot_Queue')})
  37. elif user_region.region_id == 3:
  38. iotClient = EuropeIOTClient()
  39. return response.json(0, {'res': iotClient.create_provisioning_claim('Ansjer_Iot_Queue')})
  40. else:
  41. iotClient = AmericaIOTClient()
  42. return response.json(0, {'res': iotClient.create_provisioning_claim('Ansjer_Iot_Queue')})
  43. else:
  44. return response.json(444)