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)