blob: 1ef8dbdae6814b22388490d54388298ba91d3b8f [file] [log] [blame]
Dirk Vogtd1345212016-09-14 14:31:45 +02001from rest_framework import serializers
Dirk Vogtc9e10ab2016-10-12 13:58:15 +02002
Dirk Vogtf2a33422016-10-11 17:17:26 +02003from rest_framework.exceptions import NotFound
4from crashreports.models import Crashreport
5from crashreports.models import Device
Dirk Vogtc9e10ab2016-10-12 13:58:15 +02006from crashreports.models import HeartBeat
Dirk Vogtd1345212016-09-14 14:31:45 +02007from rest_framework import permissions
8
Dirk Vogtf2a33422016-10-11 17:17:26 +02009
Dirk Vogtd1345212016-09-14 14:31:45 +020010class CrashReportSerializer(serializers.ModelSerializer):
Dirk Vogtf2a33422016-10-11 17:17:26 +020011 permission_classes = (permissions.AllowAny,)
12 uuid = serializers.CharField(max_length=64)
Dirk Vogtc9e10ab2016-10-12 13:58:15 +020013
Dirk Vogtd1345212016-09-14 14:31:45 +020014 class Meta:
15 model = Crashreport
Dirk Vogtf2a33422016-10-11 17:17:26 +020016 exclude = ('device',)
17
18 def create(self, validated_data):
19 try:
20 device = Device.objects.get(uuid=validated_data['uuid'])
21 except:
22 raise NotFound(detail="uuid does not exist")
23 validated_data.pop('uuid', None)
24 report = Crashreport(**validated_data)
Dirk Vogtc9e10ab2016-10-12 13:58:15 +020025 report.device = device
Dirk Vogtf2a33422016-10-11 17:17:26 +020026 report.save()
27 return report
Dirk Vogtc9e10ab2016-10-12 13:58:15 +020028
29
30class HeartBeatSerializer(serializers.ModelSerializer):
31 permission_classes = (permissions.AllowAny,)
32 uuid = serializers.CharField(max_length=64)
33
34 class Meta:
35 model = HeartBeat
36 exclude = ('device',)
37
38 def create(self, validated_data):
39 try:
40 device = Device.objects.get(uuid=validated_data['uuid'])
41 except:
42 raise NotFound(detail="uuid does not exist")
43 validated_data.pop('uuid', None)
44 heartbeat = HeartBeat(**validated_data)
45 heartbeat.device = device
46 heartbeat.save()
47 return heartbeat
48
Dirk Vogtf2a33422016-10-11 17:17:26 +020049
50class DeviceSerializer(serializers.ModelSerializer):
51 permission_classes = (permissions.IsAdminUser,)
Dirk Vogtc9e10ab2016-10-12 13:58:15 +020052
Dirk Vogtf2a33422016-10-11 17:17:26 +020053 class Meta:
54 model = Device