blob: 5ccf3b806b8c7191d0232bfa47e3f484885e5832 [file] [log] [blame]
Dirk Vogtd1345212016-09-14 14:31:45 +02001from rest_framework import serializers
Dirk Vogtf2a33422016-10-11 17:17:26 +02002from rest_framework.serializers import PrimaryKeyRelatedField
3from rest_framework.serializers import CharField
4from rest_framework.serializers import ObjectDoesNotExist
5from rest_framework.exceptions import NotFound
6from crashreports.models import Crashreport
7from crashreports.models import Device
Dirk Vogtd1345212016-09-14 14:31:45 +02008from rest_framework import permissions
9
Dirk Vogtf2a33422016-10-11 17:17:26 +020010
Dirk Vogtd1345212016-09-14 14:31:45 +020011class CrashReportSerializer(serializers.ModelSerializer):
Dirk Vogtf2a33422016-10-11 17:17:26 +020012 permission_classes = (permissions.AllowAny,)
13 uuid = serializers.CharField(max_length=64)
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)
25 report.device=device
26 report.save()
27 return report
28
29
30class DeviceSerializer(serializers.ModelSerializer):
31 permission_classes = (permissions.IsAdminUser,)
32 class Meta:
33 model = Device