diff --git a/django_etesync/models.py b/django_etesync/models.py index 3767b3a..6c50ea2 100644 --- a/django_etesync/models.py +++ b/django_etesync/models.py @@ -41,13 +41,13 @@ class Collection(models.Model): def main_item(self): return self.items.get(uid=None) - @cached_property + @property def content(self): return self.main_item.content @property def stoken(self): - return self.main_item.stoken + return self.content.uid @cached_property def cstoken(self): @@ -78,7 +78,7 @@ class CollectionItem(models.Model): @property def stoken(self): - return self.content.stoken.uid + return self.content.uid def chunk_directory_path(instance, filename): diff --git a/django_etesync/views.py b/django_etesync/views.py index 49b8110..2341484 100644 --- a/django_etesync/views.py +++ b/django_etesync/views.py @@ -67,24 +67,6 @@ from .serializers import ( User = get_user_model() -def get_fresh_stoken(obj): - try: - del obj.main_item - except AttributeError: - pass - - return obj.stoken - - -def get_fresh_item_stoken(obj): - try: - del obj.content - except AttributeError: - pass - - return obj.stoken - - class BaseViewSet(viewsets.ModelViewSet): authentication_classes = tuple(app_settings.API_AUTHENTICATORS) permission_classes = tuple(app_settings.API_PERMISSIONS) @@ -173,18 +155,18 @@ class CollectionViewSet(BaseViewSet): serializer.is_valid(raise_exception=True) self.perform_update(serializer) - return Response({'stoken': get_fresh_stoken(instance)}) + return Response({}) def create(self, request, *args, **kwargs): serializer = self.serializer_class(data=request.data, context=self.get_serializer_context()) if serializer.is_valid(): try: - instance = serializer.save(owner=self.request.user) + serializer.save(owner=self.request.user) except IntegrityError: content = {'code': 'integrity_error'} return Response(content, status=status.HTTP_400_BAD_REQUEST) - return Response({'stoken': get_fresh_stoken(instance)}, status=status.HTTP_201_CREATED) + return Response({}, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) @@ -298,7 +280,7 @@ class CollectionItemViewSet(BaseViewSet): queryset, cstoken_rev = self.filter_by_cstoken(request, queryset) uids, stokens = zip(*[(item['uid'], item.get('stoken')) for item in serializer.validated_data]) - revs = CollectionItemRevision.objects.filter(stoken__uid__in=stokens, current=True) + revs = CollectionItemRevision.objects.filter(uid__in=stokens, current=True) queryset = queryset.filter(uid__in=uids).exclude(revisions__in=revs) queryset, new_cstoken = self.get_queryset_cstoken(queryset) @@ -338,7 +320,6 @@ class CollectionItemViewSet(BaseViewSet): return Response(content, status=status.HTTP_400_BAD_REQUEST) ret = { - "data": [get_fresh_item_stoken(item) for item in items], } return Response(ret, status=status.HTTP_200_OK) @@ -377,7 +358,6 @@ class CollectionItemViewSet(BaseViewSet): return Response(content, status=status.HTTP_400_BAD_REQUEST) ret = { - "data": [get_fresh_item_stoken(item) for item in items], } return Response(ret, status=status.HTTP_200_OK)