39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
|
|
from rest_framework import serializers
|
||
|
|
|
||
|
|
from .models import SensorDevice
|
||
|
|
|
||
|
|
|
||
|
|
class HandshakeSerializer(serializers.Serializer):
|
||
|
|
device_identifier = serializers.CharField(max_length=255)
|
||
|
|
device_name = serializers.CharField(max_length=255, required=False, allow_blank=True)
|
||
|
|
handshake_token = serializers.CharField(max_length=255, required=False, allow_blank=True)
|
||
|
|
metadata = serializers.JSONField(required=False)
|
||
|
|
translation_config = serializers.JSONField(required=False)
|
||
|
|
|
||
|
|
|
||
|
|
class SensorIngestSerializer(serializers.Serializer):
|
||
|
|
sensor_uuid = serializers.UUIDField()
|
||
|
|
reading_at = serializers.DateTimeField(required=False)
|
||
|
|
payload = serializers.JSONField()
|
||
|
|
|
||
|
|
|
||
|
|
class SensorPayloadQuerySerializer(serializers.Serializer):
|
||
|
|
limit = serializers.IntegerField(required=False, min_value=1, max_value=500, default=50)
|
||
|
|
|
||
|
|
|
||
|
|
class SensorDeviceSerializer(serializers.ModelSerializer):
|
||
|
|
class Meta:
|
||
|
|
model = SensorDevice
|
||
|
|
fields = (
|
||
|
|
"sensor_uuid",
|
||
|
|
"device_identifier",
|
||
|
|
"device_name",
|
||
|
|
"handshake_token",
|
||
|
|
"metadata",
|
||
|
|
"translation_config",
|
||
|
|
"is_active",
|
||
|
|
"created_at",
|
||
|
|
"updated_at",
|
||
|
|
)
|
||
|
|
read_only_fields = ("sensor_uuid", "created_at", "updated_at")
|