1
0
Fork 0

Create missing Satellite on API call

merge-requests/210/head
Nikos Roussos 2017-11-24 22:58:09 +01:00
parent e08a3d193c
commit fac8572c7b
No known key found for this signature in database
GPG Key ID: BADFF1767BA7C8E1
1 changed files with 20 additions and 1 deletions

View File

@ -1,3 +1,5 @@
from orbit import satellite
from rest_framework import viewsets, mixins, status
from rest_framework.parsers import FormParser, FileUploadParser
from rest_framework.permissions import AllowAny
@ -38,7 +40,24 @@ class TelemetryView(viewsets.ModelViewSet, mixins.CreateModelMixin):
def create(self, request, *args, **kwargs):
data = {}
data['satellite'] = Satellite.objects.get(norad_cat_id=request.data.get('noradID')).id
create_satellite = False
norad_cat_id = request.data.get('noradID')
try:
data['satellite'] = Satellite.objects.get(norad_cat_id=norad_cat_id).id
except Satellite.DoesNotExist:
create_satellite = True
if create_satellite:
try:
sat = satellite(norad_cat_id)
except IndexError:
return Response(status=status.HTTP_400_BAD_REQUEST)
else:
tle = sat.tle()
obj = Satellite.objects.create(norad_cat_id=norad_cat_id, name=tle[0],
tle1=tle[1], tle2=tle[2])
data['satellite'] = obj
data['station'] = request.data.get('source')
timestamp = request.data.get('timestamp')
data['timestamp'] = timestamp