towards version 0.2
diff --git a/crashreports/serializers.py b/crashreports/serializers.py
index 783c0d7..5ccf3b8 100644
--- a/crashreports/serializers.py
+++ b/crashreports/serializers.py
@@ -1,10 +1,33 @@
from rest_framework import serializers
-from models import Crashreport
+from rest_framework.serializers import PrimaryKeyRelatedField
+from rest_framework.serializers import CharField
+from rest_framework.serializers import ObjectDoesNotExist
+from rest_framework.exceptions import NotFound
+from crashreports.models import Crashreport
+from crashreports.models import Device
from rest_framework import permissions
+
class CrashReportSerializer(serializers.ModelSerializer):
- permission_classes = (permissions.IsAuthenticated)
+ permission_classes = (permissions.AllowAny,)
+ uuid = serializers.CharField(max_length=64)
class Meta:
model = Crashreport
- fields = ('pk','uuid', 'uptime', 'build_fingerprint', 'boot_reason',
- 'power_on_reason', 'power_off_reason', 'aux_data', 'date','app_version', 'report_type')
+ exclude = ('device',)
+
+ def create(self, validated_data):
+ try:
+ device = Device.objects.get(uuid=validated_data['uuid'])
+ except:
+ raise NotFound(detail="uuid does not exist")
+ validated_data.pop('uuid', None)
+ report = Crashreport(**validated_data)
+ report.device=device
+ report.save()
+ return report
+
+
+class DeviceSerializer(serializers.ModelSerializer):
+ permission_classes = (permissions.IsAdminUser,)
+ class Meta:
+ model = Device