Dirk Vogt | d134521 | 2016-09-14 14:31:45 +0200 | [diff] [blame] | 1 | from rest_framework import serializers |
Dirk Vogt | f2a3342 | 2016-10-11 17:17:26 +0200 | [diff] [blame^] | 2 | from rest_framework.serializers import PrimaryKeyRelatedField |
| 3 | from rest_framework.serializers import CharField |
| 4 | from rest_framework.serializers import ObjectDoesNotExist |
| 5 | from rest_framework.exceptions import NotFound |
| 6 | from crashreports.models import Crashreport |
| 7 | from crashreports.models import Device |
Dirk Vogt | d134521 | 2016-09-14 14:31:45 +0200 | [diff] [blame] | 8 | from rest_framework import permissions |
| 9 | |
Dirk Vogt | f2a3342 | 2016-10-11 17:17:26 +0200 | [diff] [blame^] | 10 | |
Dirk Vogt | d134521 | 2016-09-14 14:31:45 +0200 | [diff] [blame] | 11 | class CrashReportSerializer(serializers.ModelSerializer): |
Dirk Vogt | f2a3342 | 2016-10-11 17:17:26 +0200 | [diff] [blame^] | 12 | permission_classes = (permissions.AllowAny,) |
| 13 | uuid = serializers.CharField(max_length=64) |
Dirk Vogt | d134521 | 2016-09-14 14:31:45 +0200 | [diff] [blame] | 14 | class Meta: |
| 15 | model = Crashreport |
Dirk Vogt | f2a3342 | 2016-10-11 17:17:26 +0200 | [diff] [blame^] | 16 | 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 | |
| 30 | class DeviceSerializer(serializers.ModelSerializer): |
| 31 | permission_classes = (permissions.IsAdminUser,) |
| 32 | class Meta: |
| 33 | model = Device |