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)
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)
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)
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)
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)