def get()

in gnm_deliverables/views/deliverables_dash_views.py [0:0]


    def get(self, request):
        from django.utils import timezone
        try:
            end_date = timezone.make_aware(datetime.now())
            start_date = end_date.replace(day=1, hour=23, minute=59, second=59, microsecond=999)
            if "startDate" in self.request.GET:
                try:
                    start_date = parse_date(self.request.GET["startDate"])
                except Exception as err:
                    logger.warning("Could not parse provided string {0} as a date: {1}".format(start_date, err))
                try:
                    start_date = timezone.make_aware(start_date)
                except ValueError:  #we get this if the timezone is already tz-aware
                    pass
            if "endDate" in self.request.GET:
                try:
                    end_date = parse_date(self.request.GET["endDate"])
                except Exception as err:
                    logger.warning("Could not parse provided string {0} as a date: {1}".format(end_date, err))
                try:
                    end_date = timezone.make_aware(end_date)
                except ValueError: #we get this if the timezone is already tz-aware
                    pass

            data = self.invert_data({
                "gnm_website": self.build_dataset(GNMWebsite.objects.all(), start_date, end_date),
                "youtube": self.build_dataset(Youtube.objects.all(), start_date, end_date),
                "dailymotion": self.build_dataset(DailyMotion.objects.all(), start_date, end_date),
                "mainstream": self.build_dataset(Mainstream.objects.all(), start_date, end_date)
            }, start_date, end_date)

            return Response(data)
        except Exception as err:
            logger.exception("Could not compute data aggregation: ", err)
            return Response({"status": "error", "detail": str(err)}, status=500)