示例#1
0
def api_url_list(request):
    """
    List user urls
    """

    urls = ShortUrl.objects.filter(user=request.user).all()
    serializer = ShortUrlSerializer(urls, many=True)

    return Response(serializer.data)
示例#2
0
    def test_url_create(self):
        """
        Ensure we can create a new account object.
        """
        url = reverse('shortener_app:api_create_url')
        data = {'target': 'https://google.com'}

        response = self.client.post(
            url, data=data, format='json', **self.headers)

        short_url = ShortUrl.objects.filter(user=self.user).first()
        s = ShortUrlSerializer(short_url)
        self.assertNotEqual(short_url, None)
        self.assert_response_ok(response, s.data)
示例#3
0
def api_url_create(request):
    """
    Create user urls
    """

    s_input = ShortUrlCreateSerializer(data=request.data)
    if not s_input.is_valid():
        return Response(s_input.errors, status=status.HTTP_400_BAD_REQUEST)

    try:
        short_url = ShortUrl.create_and_validate(
            s_input.validated_data.get('url'), request.user)
    except ValidationError:
        return Response({'error': 'Invalid url'}, status=status.HTTP_400_BAD_REQUEST)

    s_output = ShortUrlSerializer(short_url)

    return Response(s_output.data)
示例#4
0
    def test_url_list(self):
        """
        Ensure we can create a new account object.
        """
        short_url_1 = ShortUrl()
        short_url_1.url = 'https://www.google.com'
        short_url_1.user = self.user
        short_url_1.save()
        short_url_2 = ShortUrl()
        short_url_2.url = 'https://es.yahoo.com'
        short_url_2.user = self.user
        short_url_2.save()

        s = ShortUrlSerializer([short_url_1, short_url_2], many=True)

        url = reverse('shortener_app:api_list_urls')
        response = self.client.get(url, format='json', **self.headers)

        self.assert_response_ok(response, s.data)
示例#5
0
    def test_url_list_only_my_urls(self):
        """
        Ensure we can create a new account object.
        """
        others_url_short_url = ShortUrl()
        others_url_short_url.url = 'https://www.google.com'
        others_url_short_url.user = None
        others_url_short_url.save()
        my_short_url = ShortUrl()
        my_short_url.url = 'https://es.yahoo.com'
        my_short_url.user = self.user
        my_short_url.save()

        s = ShortUrlSerializer([my_short_url], many=True)

        url = reverse('shortener_app:api_list_urls')
        response = self.client.get(url, format='json', **self.headers)

        self.assert_response_ok(response, s.data)