Exemplo n.º 1
0
 def options(self, request, *args, **kwargs):
     """
     Handler method for HTTP 'OPTIONS' request.
     """
     if self.metadata_class is None:
         return self.http_method_not_allowed(request, *args, **kwargs)
     data = self.metadata_class().determine_metadata(request, self)
     return Response(data, status=status.HTTP_200_OK)
Exemplo n.º 2
0
 def create(self, request, *args, **kwargs):
     serializer = self.get_serializer(data=request.data)
     serializer.is_valid(raise_exception=True)
     self.perform_create(serializer)
     headers = self.get_success_headers(serializer.data)
     return Response(serializer.data,
                     status=status.HTTP_201_CREATED,
                     headers=headers)
    def post(self, request):
        serializer = self.get_serializer(data=get_request_data(request))

        if serializer.is_valid():
            user = serializer.object.get('user') or request.user
            token = serializer.object.get('token')
            response_data = jwt_response_payload_handler(token, user, request)

            # extend response to include user ID
            response_data['user_id'] = user.id

            # login user
            login(request, user)

            return Response(response_data)

        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Exemplo n.º 4
0
 def update(self, request, *args, **kwargs):
     partial = kwargs.pop('partial', False)
     instance = self.get_object()
     serializer = self.get_serializer(instance,
                                      data=request.data,
                                      partial=partial)
     serializer.is_valid(raise_exception=True)
     self.perform_update(serializer)
     return Response(serializer.data)
Exemplo n.º 5
0
    def list(self, request, *args, **kwargs):
        queryset = self.filter_queryset(self.get_queryset())

        page = self.paginate_queryset(queryset)
        if page is not None:
            serializer = self.get_serializer(page, many=True)
            return self.get_paginated_response(serializer.data)

        serializer = self.get_serializer(queryset, many=True)
        return Response(serializer.data)
Exemplo n.º 6
0
def exception_handler(exc, context):
    """
    Returns the response that should be used for any given exception.

    By default we handle the REST framework `APIException`, and also
    Django's built-in `Http404` and `PermissionDenied` exceptions.

    Any unhandled exceptions may return `None`, which will cause a 500 error
    to be raised.
    """
    if isinstance(exc, exceptions.APIException):
        headers = {}
        if getattr(exc, 'auth_header', None):
            headers['WWW-Authenticate'] = exc.auth_header
        if getattr(exc, 'wait', None):
            headers['Retry-After'] = '%d' % exc.wait

        if isinstance(exc.detail, (list, dict)):
            data = exc.detail
        else:
            data = {'detail': exc.detail}

        return Response(data, status=exc.status_code, headers=headers)

    elif isinstance(exc, Http404):
        msg = _('Not found.')
        data = {'detail': six.text_type(msg)}
        return Response(data, status=status.HTTP_404_NOT_FOUND)

    elif isinstance(exc, PermissionDenied):
        msg = _('Permission denied.')
        data = {'detail': six.text_type(msg)}
        return Response(data, status=status.HTTP_403_FORBIDDEN)

    # Note: Unhandled exceptions will raise a 500 error.
    return None
Exemplo n.º 7
0
            def get(self, request, *args, **kwargs):
                ret = OrderedDict()
                namespace = get_resolver_match(request).namespace
                for key, url_name in api_root_dict.items():
                    if namespace:
                        url_name = namespace + ':' + url_name
                    try:
                        ret[key] = reverse(
                            url_name,
                            request=request,
                            format=kwargs.get('format', None)
                        )
                    except NoReverseMatch:
                        # Don't bail out if eg. no list routes exist, only detail routes.
                        continue

                return Response(ret)
Exemplo n.º 8
0
 def view(request):
     return Response({})
Exemplo n.º 9
0
 def view(request):
     self.assertEqual(len(request.authenticators), 1)
     self.assertTrue(isinstance(request.authenticators[0],
                                BasicAuthentication))
     return Response({})
Exemplo n.º 10
0
 def view(request):
     self.assertEqual(len(request.parsers), 1)
     self.assertTrue(isinstance(request.parsers[0],
                                JSONParser))
     return Response({})
 def get(self, request):
     return Response('foo')
 def get(self, request, *args, **kwargs):
     return Response({'version': request.version})
Exemplo n.º 13
0
    def post(self, request):
        if request.POST.get('example') is not None:
            return Response(status=status.HTTP_200_OK)

        return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Exemplo n.º 14
0
 def get(self, request):
     return Response({'a': 1, 'b': 2, 'c': 3})
 def get(self, request, *args, **kwargs):
     return Response({'url': reverse('another', request=request)})
Exemplo n.º 16
0
 def get(self, request, **kwargs):
     response = Response(DUMMYCONTENT, status=DUMMYSTATUS)
     return response
Exemplo n.º 17
0
 def patch(self, request):
     return Response()
Exemplo n.º 18
0
 def put(self, request):
     return Response()
Exemplo n.º 19
0
def example(request):
    """
    A view that can returns an HTML representation.
    """
    data = {'object': 'foobar'}
    return Response(data, template_name='example.html')
Exemplo n.º 20
0
 def post(self, request):
     serializer = self.serializer_class(data=request.data)
     serializer.is_valid(raise_exception=True)
     user = serializer.validated_data['user']
     token, created = Token.objects.get_or_create(user=user)
     return Response({'token': token.key})
Exemplo n.º 21
0
 def get(self, request, **kwargs):
     return Response({'foo': ['bar', 'baz']})
Exemplo n.º 22
0
 def get(self, request, *args, **kwargs):
     return Response({'method': 'GET'})
Exemplo n.º 23
0
 def exception_handler(exc):
     return Response('Error!', status=status.HTTP_400_BAD_REQUEST)
Exemplo n.º 24
0
 def post(self, request, **kwargs):
     return Response({'foo': request.DATA})
Exemplo n.º 25
0
 def post(self, request, *args, **kwargs):
     return Response({'method': 'POST', 'data': request.DATA})
Exemplo n.º 26
0
 def get(self, request, **kwargs):
     return Response(status=status.HTTP_204_NO_CONTENT)
 def get(self, request):
     return Response({'foo': 'bar'})
Exemplo n.º 28
0
 def get(self, request, **kwargs):
     return Response('text')
Exemplo n.º 29
0
 def get_paginated_response(self, data):
     return Response(
         OrderedDict([('next', self.get_next_link()),
                      ('previous', self.get_previous_link()),
                      ('results', data)]))
 def get(self, request):
     return Response('test_limit')