|
@@ -11,6 +11,7 @@ import string
|
|
|
from django.views import View
|
|
|
|
|
|
from Object.ResponseObject import ResponseObject
|
|
|
+from Service.CommonService import CommonService
|
|
|
|
|
|
|
|
|
class SensorGateway(View):
|
|
@@ -27,14 +28,53 @@ class SensorGateway(View):
|
|
|
def validation(self, request_dict, request, operation):
|
|
|
response = ResponseObject()
|
|
|
if operation == 'getSensorId': # 返回唯一标识id给设备
|
|
|
- return self.getSensorId(response)
|
|
|
+ return self.getSensorId(request_dict, response)
|
|
|
+ elif operation == 'registerToAWSIoTCore': # 注册到AWS IoT Core
|
|
|
+ return self.registerToAWSIoTCore(request_dict, response)
|
|
|
else:
|
|
|
return response.json(404)
|
|
|
|
|
|
@staticmethod
|
|
|
- def getSensorId(response):
|
|
|
+ def getSensorId(request_dict, response):
|
|
|
+ """
|
|
|
+ 传感器设备获取设备id
|
|
|
+ @param request_dict: 请求参数
|
|
|
+ @time_stamp: 时间戳
|
|
|
+ @time_stamp_token: 时间戳token
|
|
|
+ @param response: 响应对象
|
|
|
+ @return: sensorId 六位的随机id
|
|
|
+ """
|
|
|
+ time_stamp = request_dict.get('time_stamp', None)
|
|
|
+ time_stamp_token = request_dict.get('time_stamp_token', None)
|
|
|
+
|
|
|
+ if not all([time_stamp, time_stamp_token]):
|
|
|
+ return response.json(444, {'param': 'time_stamp, time_stamp_token'})
|
|
|
try:
|
|
|
+ # 时间戳token校验
|
|
|
+ if not CommonService.check_time_stamp_token(time_stamp_token, time_stamp):
|
|
|
+ return response.json(13)
|
|
|
+
|
|
|
sensorId = ''.join(random.sample(string.ascii_letters + string.digits, 6))
|
|
|
return response.json(0, {'sensorId': sensorId})
|
|
|
except Exception as e:
|
|
|
return response.json(500, repr(e))
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def registerToAWSIoTCore(request_dict, response):
|
|
|
+ """
|
|
|
+ 传感器设备注册到AWS IoT Core
|
|
|
+ @param request_dict: 请求参数
|
|
|
+ @request_dict sensor_id: 设备id
|
|
|
+ @param response: 响应对象
|
|
|
+ @return: res iot证书等数据
|
|
|
+ """
|
|
|
+ sensor_id = request_dict.get('sensor_id', None)
|
|
|
+ time_stamp = request_dict.get('time_stamp', None)
|
|
|
+ time_stamp_token = request_dict.get('time_stamp_token', None)
|
|
|
+
|
|
|
+ if not all([sensor_id, time_stamp, time_stamp_token]):
|
|
|
+ return response.json(444, {'param': 'sensor_id, time_stamp, time_stamp_token'})
|
|
|
+ try:
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ return response.json(500, repr(e))
|