in gnm_deliverables/views/metadata_views.py [0:0]
def get(self, request, project_id, asset_id, platform):
try:
asset = DeliverableAsset.objects.get(
deliverable__pluto_core_project_id__exact=project_id, pk=asset_id)
except ObjectDoesNotExist:
return Response({"status": "error", "details": "not found"}, status=404)
if platform == 'youtube' and asset.youtube_master_id:
log_entries = LogEntry.objects.filter(related_youtube=asset.youtube_master_id)
elif platform == 'gnmwebsite' and asset.gnm_website_master_id:
log_entries = LogEntry.objects.filter(
related_gnm_website_id=asset.gnm_website_master_id)
elif platform == 'mainstream' and asset.mainstream_master_id:
log_entries = LogEntry.objects.filter(related_mainstream=asset.mainstream_master_id)
elif platform == 'dailymotion' and asset.DailyMotion_master_id:
log_entries = LogEntry.objects.filter(related_daily_motion=asset.DailyMotion_master_id)
else:
return Response({"status": "error", "details": "not found"}, status=404)
qs = log_entries.order_by('-timestamp')
if "limit" in request.GET:
try:
limit = int(request.GET["limit"])
qs = log_entries.order_by('-timestamp')[0:limit]
except Exception as e:
logger.warning("limit parameter {0} was not valid: {1}".format(request.GET['limit'], str(e)))
if "full" in request.GET:
data = [LogEntrySerializer(entry).data for entry in qs]
else:
data = [entry.log_line for entry in qs]
return Response({"logs": data}, status=200)