Code Duplication    Length = 18-18 lines in 2 locations

omaha_server/omaha/api.py 2 locations

@@ 271-288 (lines=18) @@
268
        return Response(serializer.data)
269
270
271
class StatisticsChannelsView(APIView):
272
    def get_object(self, name):
273
        try:
274
            return Application.objects.get(name=name)
275
        except Application.DoesNotExist:
276
            raise Http404
277
278
    def get(self, request, app_name, format=None):
279
        now = timezone.now()
280
        app = self.get_object(app_name)
281
282
        date = MonthInputSerializer(data=request.GET)
283
        date.is_valid()
284
        date = date.validated_data.get('date', now)
285
286
        data = get_channel_statistics(app.id, date=date)
287
        serializer = StatisticsMonthsSerializer(dict(data=dict(data)))
288
        return Response(serializer.data)
289
290
291
class ServerVersionView(APIView):
@@ 225-242 (lines=18) @@
222
        serializer = StatisticsMonthsSerializer(dict(data=data))
223
        return Response(serializer.data)
224
225
class StatisticsVersionsView(APIView):
226
    def get_object(self, name):
227
        try:
228
            return Application.objects.get(name=name)
229
        except Application.DoesNotExist:
230
            raise Http404
231
232
    def get(self, request, app_name, format=None):
233
        now = timezone.now()
234
        app = self.get_object(app_name)
235
236
        date = MonthInputSerializer(data=request.GET)
237
        date.is_valid()
238
        date = date.validated_data.get('date', now)
239
240
        data = get_users_versions(app.id, date=date)
241
        serializer = StatisticsMonthsSerializer(dict(data=dict(data)))
242
        return Response(serializer.data)
243
244
245
class StatisticsVersionsLiveView(APIView):