예제 #1
0
 def test_fetch_and_save_when_existing_youtube(self):
     x = Track.objects.all().count()
     responses.add_callback(
         responses.GET, 'https://www.googleapis.com/youtube/v3/videos',
         callback=self.request_callback_youtube,
         content_type='application/json',
     )
     Track.fetch_and_save_track(Track.SERVICES.youtube,
                                self.track_youtube.service_id,
                                self.establishment)
     self.assertEqual(Track.objects.all().count(), x)
예제 #2
0
 def test_fetch_and_save_when_existing_deezer(self):
     x = Track.objects.all().count()
     responses.add_callback(
         responses.GET, ('http://api.deezer.com/track/%s' %
                         self.track.service_id),
         callback=self.request_callback_deezer,
         content_type='application/json',
     )
     Track.fetch_and_save_track(Track.SERVICES.deezer,
                                self.track.service_id, self.establishment)
     self.assertEqual(Track.objects.all().count(), x)
예제 #3
0
 def test_fetch_and_save_when_new_youtube(self):
     x = Track.objects.all().count()
     responses.add_callback(
         responses.GET, 'https://www.googleapis.com/youtube/v3/videos',
         callback=self.request_callback_youtube,
         content_type='application/json',
     )
     track = Track.fetch_and_save_track(Track.SERVICES.youtube, '223456',
                                        self.establishment)
     self.assertTrue(Track.objects.filter(id=track.id).exists())
     self.assertEqual(Track.objects.all().count(), x + 1)
예제 #4
0
 def test_fetch_and_save_when_new_deezer(self):
     x = Track.objects.all().count()
     responses.add_callback(
         responses.GET, 'http://api.deezer.com/track/223456',
         callback=self.request_callback_deezer,
         content_type='application/json',
     )
     track = Track.fetch_and_save_track(Track.SERVICES.deezer, '223456',
                                        self.establishment)
     self.assertTrue(Track.objects.filter(id=track.id).exists())
     self.assertEqual(Track.objects.all().count(), x + 1)
예제 #5
0
    def create(self, request, *args, **kwargs):
        service_id = self.kwargs['service_id']
        service = self.kwargs['service']

        try:
            self.track = Track.fetch_and_save_track(service, service_id,
                                                    self.establishment)
            Vote.objects.create(track=self.track, token=self.get_token())
        except RequestException:
            return Response(status=status.HTTP_503_SERVICE_UNAVAILABLE)
        except ValueError as e:
            return Response(status=status.HTTP_400_BAD_REQUEST, data=e.message)

        serializer = TrackSerializer(self.track)
        self.broadcast_list_changed()
        return Response(serializer.data, status=status.HTTP_201_CREATED)
예제 #6
0
    def create(self, request, *args, **kwargs):
        service_id = self.kwargs['service_id']
        service = self.kwargs['service']

        try:
            self.track = Track.fetch_and_save_track(service, service_id,
                                                    self.establishment)
            Vote.objects.create(track=self.track, token=self.get_token())
        except RequestException:
            return Response(
                status=status.HTTP_503_SERVICE_UNAVAILABLE)
        except ValueError as e:
            return Response(
                status=status.HTTP_400_BAD_REQUEST, data=e.message)

        serializer = TrackSerializer(self.track)
        self.broadcast_list_changed()
        return Response(serializer.data, status=status.HTTP_201_CREATED)
예제 #7
0
 def create(self, validated_data):
     establishment = self.context['establishment']
     return Track.fetch_and_save_track(
         establishment=establishment, service=validated_data['service'],
         service_id=validated_data['service_id'])