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 ...@@ -3,7 +3,7 @@ import sys
import logging import logging
logger = logging.getLogger(__name__) 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.response import Response as RestResponse
from rest_framework import status from rest_framework import status
from django.shortcuts import get_object_or_404, render from django.shortcuts import get_object_or_404, render
...@@ -20,7 +20,6 @@ from rest_framework.decorators import authentication_classes, permission_classes ...@@ -20,7 +20,6 @@ from rest_framework.decorators import authentication_classes, permission_classes
from django.apps import apps from django.apps import apps
import re import re
from lofar.sas.tmss.tmss.tmssapp.serializers import SchedulingUnitDraftSerializer, SchedulingUnitBlueprintSerializer from lofar.sas.tmss.tmss.tmssapp.serializers import SchedulingUnitDraftSerializer, SchedulingUnitBlueprintSerializer
from rest_framework.decorators import api_view, renderer_classes from rest_framework.decorators import api_view, renderer_classes
from lofar.sas.tmss.tmss.tmssapp.renderers.ImagePNGRenderer import ImagePNGRenderer from lofar.sas.tmss.tmss.tmssapp.renderers.ImagePNGRenderer import ImagePNGRenderer
from datetime import datetime, date, time, timedelta from datetime import datetime, date, time, timedelta
...@@ -224,28 +223,30 @@ def utc(request): ...@@ -224,28 +223,30 @@ def utc(request):
]) ])
@api_view(['GET']) @api_view(['GET'])
def lst(request): def lst(request):
# Handling optional parameters via django paths in urls.py is a pain, we access them on the request directly instead. try:
timestamp = request.GET.get('timestamp', None) # Handling optional parameters via django paths in urls.py is a pain, we access them on the request directly instead.
station = request.GET.get('station', None) timestamp = request.GET.get('timestamp', None)
longitude = request.GET.get('longitude', None) station = request.GET.get('station', None)
longitude = request.GET.get('longitude', None)
# conversions
if timestamp: # conversions
timestamp = dateutil.parser.parse(timestamp) # isot to datetime if timestamp:
if longitude: timestamp = dateutil.parser.parse(timestamp) # iso to datetime
longitude = float(longitude) if longitude:
longitude = float(longitude)
if station:
lst_lon = local_sidereal_time_for_utc_and_station(timestamp, station) if station:
elif longitude: lst_lon = local_sidereal_time_for_utc_and_station(timestamp, station)
lst_lon = local_sidereal_time_for_utc_and_longitude(timestamp, longitude) elif longitude:
else: lst_lon = local_sidereal_time_for_utc_and_longitude(timestamp, longitude)
# fall back to defaults else:
lst_lon = local_sidereal_time_for_utc_and_station(timestamp) # 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') # 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]) @permission_classes([AllowAny])
@authentication_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