1 from rest_framework import serializers
2 from rest_framework.generics import ListCreateAPIView
3 from rest_framework.permissions import IsAuthenticated
4 from api.utils import never_cache
5 from api.fields import AbsoluteURLField
6 from push import models
9 class DeviceTokenSerializer(serializers.ModelSerializer):
10 deleted = serializers.BooleanField(default=False, write_only=True)
13 model = models.DeviceToken
14 fields = ['token', 'created_at', 'updated_at', 'deleted']
15 read_only_fields = ['created_at', 'updated_at']
18 if self.validated_data['deleted']:
19 self.destroy(self.validated_data)
21 return self.create(self.validated_data)
23 def create(self, validated_data):
24 return models.DeviceToken.objects.create(
25 user=self.context['request'].user,
26 token=validated_data['token'],
29 def destroy(self, validated_data):
30 models.DeviceToken.objects.filter(
31 user=self.context['request'].user,
32 token=validated_data['token']
36 class DeviceTokensView(ListCreateAPIView):
37 permission_classes = [IsAuthenticated]
38 serializer_class = DeviceTokenSerializer
40 def get_queryset(self):
41 return models.DeviceToken.objects.filter(user=self.request.user)