From d1f27b2e6f21f9271acaf08842f5a4142c098e38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniele=20Vigan=C3=B2?= Date: Mon, 8 Jun 2020 22:08:41 +0200 Subject: [PATCH] Add transport internal field to telemetry --- .../migrations/0007_telemetry_transport.py | 18 ++++++++++++++++++ freedcs/telemetry/models.py | 3 +++ freedcs/telemetry/serializers.py | 8 +++++++- 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 freedcs/telemetry/migrations/0007_telemetry_transport.py diff --git a/freedcs/telemetry/migrations/0007_telemetry_transport.py b/freedcs/telemetry/migrations/0007_telemetry_transport.py new file mode 100644 index 0000000..29395d8 --- /dev/null +++ b/freedcs/telemetry/migrations/0007_telemetry_transport.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.6 on 2020-06-08 20:07 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('telemetry', '0006_auto_20200603_1317'), + ] + + operations = [ + migrations.AddField( + model_name='telemetry', + name='transport', + field=models.CharField(choices=[('http', 'http'), ('mqtt', 'mqtt')], default='http', max_length=4), + ), + ] diff --git a/freedcs/telemetry/models.py b/freedcs/telemetry/models.py index 2c8a04b..60f1ff0 100644 --- a/freedcs/telemetry/models.py +++ b/freedcs/telemetry/models.py @@ -8,6 +8,9 @@ from api.models import Device class Telemetry(models.Model): device = models.ForeignKey(Device, on_delete=models.CASCADE) time = models.DateTimeField(primary_key=True, auto_now_add=True) + transport = models.CharField(max_length=4, + choices=[('http', 'http'), ('mqtt', 'mqtt')], + default='http') clock = models.IntegerField( validators=[MinValueValidator(0)], null=True) diff --git a/freedcs/telemetry/serializers.py b/freedcs/telemetry/serializers.py index 2149af4..372039b 100644 --- a/freedcs/telemetry/serializers.py +++ b/freedcs/telemetry/serializers.py @@ -11,4 +11,10 @@ class TelemetrySerializer(serializers.ModelSerializer): class Meta: model = Telemetry - fields = ('time', 'device', 'clock', 'payload',) + fields = ('time', 'device', 'clock', 'transport', 'payload',) + read_only_fields = ['transport'] + + def create(self, validated_data): + validated_data['transport'] = 'http' + telemetry = Telemetry.objects.create(**validated_data) + return telemetry