Update Folder creation and Tag creation API calls to return the id of the created instances.
This commit is contained in:
@@ -32,15 +32,10 @@ class FolderSerializer(serializers.HyperlinkedModelSerializer):
|
||||
return obj.documents.count()
|
||||
|
||||
|
||||
class NewFolderSerializer(serializers.Serializer):
|
||||
label = serializers.CharField()
|
||||
|
||||
def create(self, validated_data):
|
||||
try:
|
||||
data = validated_data.copy()
|
||||
return Folder.objects.create(**data)
|
||||
except Exception as exception:
|
||||
raise ValidationError(exception)
|
||||
class NewFolderSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
fields = ('label', 'id')
|
||||
model = Folder
|
||||
|
||||
|
||||
class FolderDocumentSerializer(DocumentSerializer):
|
||||
|
||||
@@ -34,10 +34,13 @@ class FolderAPITestCase(APITestCase):
|
||||
)
|
||||
|
||||
def test_folder_create(self):
|
||||
self.client.post(
|
||||
response = self.client.post(
|
||||
reverse('rest_api:folder-list'), {'label': TEST_FOLDER_LABEL}
|
||||
)
|
||||
|
||||
self.assertEqual(response.data['id'], 1)
|
||||
self.assertEqual(response.data['label'], TEST_FOLDER_LABEL)
|
||||
|
||||
folder = Folder.objects.first()
|
||||
|
||||
self.assertEqual(Folder.objects.count(), 1)
|
||||
|
||||
@@ -21,7 +21,8 @@ from .permissions import (
|
||||
permission_tag_remove, permission_tag_view
|
||||
)
|
||||
from .serializers import (
|
||||
DocumentTagSerializer, NewDocumentTagSerializer, TagSerializer
|
||||
DocumentTagSerializer, NewDocumentTagSerializer, NewTagSerializer,
|
||||
TagSerializer
|
||||
)
|
||||
|
||||
|
||||
@@ -71,7 +72,12 @@ class APITagListView(generics.ListCreateAPIView):
|
||||
mayan_view_permissions = {'POST': (permission_tag_create,)}
|
||||
permission_classes = (MayanPermission,)
|
||||
queryset = Tag.objects.all()
|
||||
serializer_class = TagSerializer
|
||||
|
||||
def get_serializer_class(self):
|
||||
if self.request.method == 'GET':
|
||||
return TagSerializer
|
||||
elif self.request.method == 'POST':
|
||||
return NewTagSerializer
|
||||
|
||||
def get(self, *args, **kwargs):
|
||||
"""
|
||||
|
||||
@@ -33,6 +33,15 @@ class TagSerializer(serializers.HyperlinkedModelSerializer):
|
||||
return instance.documents.count()
|
||||
|
||||
|
||||
|
||||
class NewTagSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
fields = (
|
||||
'color', 'label', 'id'
|
||||
)
|
||||
model = Tag
|
||||
|
||||
|
||||
class NewDocumentTagSerializer(serializers.Serializer):
|
||||
tag = serializers.IntegerField(
|
||||
help_text=_('Primary key of the tag to be added.')
|
||||
|
||||
@@ -40,12 +40,16 @@ class TagAPITestCase(APITestCase):
|
||||
self.admin_user.delete()
|
||||
|
||||
def test_tag_create(self):
|
||||
self.client.post(
|
||||
response = self.client.post(
|
||||
reverse('rest_api:tag-list'), {
|
||||
'label': TEST_TAG_LABEL, 'color': TEST_TAG_COLOR
|
||||
}
|
||||
)
|
||||
|
||||
self.assertEqual(response.data['id'], 1)
|
||||
self.assertEqual(response.data['label'], TEST_TAG_LABEL)
|
||||
self.assertEqual(response.data['color'], TEST_TAG_COLOR)
|
||||
|
||||
tag = Tag.objects.first()
|
||||
|
||||
self.assertEqual(Tag.objects.count(), 1)
|
||||
|
||||
Reference in New Issue
Block a user