Code Duplication    Length = 18-18 lines in 2 locations

omaha_server/omaha/api.py 2 locations

@@ 250-267 (lines=18) @@
247
        try:
248
            return Application.objects.get(name=name)
249
        except Application.DoesNotExist:
250
            raise Http404
251
252
    def get(self, request, app_name, format=None):
253
        import logging
254
        logging.info('Starting working in view')
255
        app = self.get_object(app_name)
256
257
        now = timezone.now()
258
        data = LiveStatisticsInputSerializer(data=request.GET)
259
        data.is_valid()
260
261
        end = data.validated_data.get('end', now)
262
        start = data.validated_data.get('start', end - datetime.timedelta(hours=24))
263
        channel = data.validated_data.get('channel')
264
265
        data = get_users_live_versions(app.id, start, end, channel, tz=request.session.get('django_timezone', 'UTC'))
266
        logging.info('Getting data is finished')
267
        serializer = StatisticsMonthsSerializer(dict(data=dict(data)))
268
        return Response(serializer.data)
269
270
@@ 208-225 (lines=18) @@
205
                     for year in range(start.year, end.year+1)]
206
207
        data = {}
208
        platforms = Platform.objects.values_list('name', flat=True)
209
        for platform in platforms:
210
            if platform == 'mac':
211
                platform_keys = self.MAC_KEYS
212
            else:
213
                platform_keys = self.OMAHA_KEYS
214
            platform_data = {key: [] for key in platform_keys}
215
            for diapason in diapasons:
216
                step = get_users_statistics_months(app_id=app.id, platform=platform, year=diapason[1],
217
                                                   start=diapason[0][0], end=diapason[0][1])
218
                for key in platform_data:
219
                    platform_data[key] += step[key]
220
            data.update({platform: platform_data})
221
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)