Convert the success header generation to a mixin
Signed-off-by: Roberto Rosario <Roberto.Rosario.Gonzalez@mayan-edms.com>
This commit is contained in:
@@ -2,6 +2,8 @@ from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
|
||||
from rest_framework.settings import api_settings
|
||||
|
||||
from mayan.apps.acls.models import AccessControlList
|
||||
|
||||
|
||||
@@ -82,3 +84,11 @@ class ExternalObjectListSerializerMixin(object):
|
||||
)
|
||||
|
||||
return queryset
|
||||
|
||||
|
||||
class SuccessHeadersMixin(object):
|
||||
def get_success_headers(self, data):
|
||||
try:
|
||||
return {'Location': str(data[api_settings.URL_FIELD_NAME])}
|
||||
except (TypeError, KeyError):
|
||||
return {}
|
||||
|
||||
@@ -4,20 +4,25 @@ from rest_framework import viewsets
|
||||
from rest_framework.settings import api_settings
|
||||
|
||||
from .filters import MayanViewSetObjectPermissionsFilter
|
||||
from .mixins import SuccessHeadersMixin
|
||||
from .permissions import MayanViewSetPermission
|
||||
|
||||
|
||||
class MayanAPIGenericViewSet(viewsets.GenericViewSet):
|
||||
class MayanAPIGenericViewSet(SuccessHeadersMixin, viewsets.GenericViewSet):
|
||||
filter_backends = (MayanViewSetObjectPermissionsFilter,)
|
||||
permission_classes = (MayanViewSetPermission,)
|
||||
|
||||
def get_success_headers(self, data):
|
||||
try:
|
||||
return {'Location': str(data[api_settings.URL_FIELD_NAME])}
|
||||
except (TypeError, KeyError):
|
||||
return {}
|
||||
|
||||
|
||||
class MayanAPIModelViewSet(viewsets.ModelViewSet):
|
||||
class MayanAPIModelViewSet(SuccessHeadersMixin, viewsets.ModelViewSet):
|
||||
filter_backends = (MayanViewSetObjectPermissionsFilter,)
|
||||
permission_classes = (MayanViewSetPermission,)
|
||||
|
||||
|
||||
class MayanAPIReadOnlyModelViewSet(SuccessHeadersMixin, viewsets.ReadOnlyModelViewSet):
|
||||
filter_backends = (MayanViewSetObjectPermissionsFilter,)
|
||||
permission_classes = (MayanViewSetPermission,)
|
||||
|
||||
|
||||
class MayanAPIViewSet(SuccessHeadersMixin, viewsets.GenericViewSet):
|
||||
filter_backends = (MayanViewSetObjectPermissionsFilter,)
|
||||
permission_classes = (MayanViewSetPermission,)
|
||||
|
||||
Reference in New Issue
Block a user