Skip to content
Snippets Groups Projects
Commit e82c6ede authored by Jorrit Schaap's avatar Jorrit Schaap
Browse files

catch parsing errors

parent ccfef5eb
No related branches found
No related tags found
1 merge request!1148TMSS_992
......@@ -3,7 +3,7 @@ import sys
import logging
logger = logging.getLogger(__name__)
from django.http import HttpResponse, JsonResponse, Http404, FileResponse, HttpResponseNotFound
from django.http import HttpResponse, JsonResponse, Http404, FileResponse, HttpResponseNotFound, HttpResponseServerError
from rest_framework.response import Response as RestResponse
from rest_framework import status
from django.shortcuts import get_object_or_404, render
......@@ -20,7 +20,6 @@ from rest_framework.decorators import authentication_classes, permission_classes
from django.apps import apps
import re
from lofar.sas.tmss.tmss.tmssapp.serializers import SchedulingUnitDraftSerializer, SchedulingUnitBlueprintSerializer
from rest_framework.decorators import api_view, renderer_classes
from lofar.sas.tmss.tmss.tmssapp.renderers.ImagePNGRenderer import ImagePNGRenderer
from datetime import datetime, date, time, timedelta
......@@ -224,28 +223,30 @@ def utc(request):
])
@api_view(['GET'])
def lst(request):
# Handling optional parameters via django paths in urls.py is a pain, we access them on the request directly instead.
timestamp = request.GET.get('timestamp', None)
station = request.GET.get('station', None)
longitude = request.GET.get('longitude', None)
# conversions
if timestamp:
timestamp = dateutil.parser.parse(timestamp) # isot to datetime
if longitude:
longitude = float(longitude)
if station:
lst_lon = local_sidereal_time_for_utc_and_station(timestamp, station)
elif longitude:
lst_lon = local_sidereal_time_for_utc_and_longitude(timestamp, longitude)
else:
# fall back to defaults
lst_lon = local_sidereal_time_for_utc_and_station(timestamp)
# todo: do we want to return a dict, so users can make sure their parameters were parsed correctly instead?
return HttpResponse(str(lst_lon), content_type='text/plain')
try:
# Handling optional parameters via django paths in urls.py is a pain, we access them on the request directly instead.
timestamp = request.GET.get('timestamp', None)
station = request.GET.get('station', None)
longitude = request.GET.get('longitude', None)
# conversions
if timestamp:
timestamp = dateutil.parser.parse(timestamp) # iso to datetime
if longitude:
longitude = float(longitude)
if station:
lst_lon = local_sidereal_time_for_utc_and_station(timestamp, station)
elif longitude:
lst_lon = local_sidereal_time_for_utc_and_longitude(timestamp, longitude)
else:
# fall back to defaults
lst_lon = local_sidereal_time_for_utc_and_station(timestamp)
# todo: do we want to return a dict, so users can make sure their parameters were parsed correctly instead?
return HttpResponse(str(lst_lon), content_type='text/plain')
except Exception as e:
return HttpResponseServerError(str(e), content_type='text/plain')
@permission_classes([AllowAny])
@authentication_classes([AllowAny])
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment