Add API endpoint for TLE
Signed-off-by: Alfredos-Panagiotis Damkalis <fredy@fredy.gr>spacecruft
parent
e2b916f3ed
commit
e1b859887f
|
@ -3,7 +3,8 @@ import django_filters
|
|||
from django_filters import rest_framework as filters
|
||||
from django_filters.rest_framework import FilterSet
|
||||
|
||||
from db.base.models import Artifact, DemodData, Mode, Satellite, Transmitter
|
||||
from db.base.models import Artifact, DemodData, Mode, Satellite, Tle, \
|
||||
Transmitter
|
||||
|
||||
|
||||
class TransmitterViewFilter(FilterSet):
|
||||
|
@ -56,6 +57,17 @@ class TelemetryViewFilter(FilterSet):
|
|||
fields = ['satellite', 'app_source', 'observer', 'transmitter']
|
||||
|
||||
|
||||
class TleViewFilter(FilterSet):
|
||||
"""SatNOGS DB Tle API View Filter"""
|
||||
norad_cat_id = django_filters.NumberFilter(
|
||||
field_name='satellite__norad_cat_id', lookup_expr='exact'
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = Tle
|
||||
fields = ['norad_cat_id']
|
||||
|
||||
|
||||
class ArtifactViewFilter(FilterSet):
|
||||
"""SatNOGS DB Artifact API View Filter"""
|
||||
class Meta:
|
||||
|
|
|
@ -5,7 +5,7 @@ import h5py
|
|||
from rest_framework import serializers
|
||||
|
||||
from db.base.models import TRANSMITTER_STATUS, Artifact, DemodData, Mode, \
|
||||
Satellite, Telemetry, Transmitter
|
||||
Satellite, Telemetry, Tle, Transmitter
|
||||
|
||||
|
||||
class ModeSerializer(serializers.ModelSerializer):
|
||||
|
@ -90,6 +90,20 @@ class TransmitterSerializer(serializers.ModelSerializer):
|
|||
return obj.satellite.norad_cat_id
|
||||
|
||||
|
||||
class TleSerializer(serializers.ModelSerializer):
|
||||
"""SatNOGS DB Tle API Serializer"""
|
||||
|
||||
norad_cat_id = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = Tle
|
||||
fields = ('tle0', 'tle1', 'tle2', 'tle_source', 'norad_cat_id', 'updated')
|
||||
|
||||
def get_norad_cat_id(self, obj):
|
||||
"""Returns Satellite NORAD ID"""
|
||||
return obj.satellite.norad_cat_id
|
||||
|
||||
|
||||
class TelemetrySerializer(serializers.ModelSerializer):
|
||||
"""SatNOGS DB Telemetry API Serializer"""
|
||||
norad_cat_id = serializers.SerializerMethodField()
|
||||
|
|
|
@ -10,5 +10,6 @@ ROUTER.register(r'modes', views.ModeView)
|
|||
ROUTER.register(r'satellites', views.SatelliteView)
|
||||
ROUTER.register(r'transmitters', views.TransmitterView)
|
||||
ROUTER.register(r'telemetry', views.TelemetryView)
|
||||
ROUTER.register(r'tle', views.TleView)
|
||||
|
||||
API_URLPATTERNS = ROUTER.urls
|
||||
|
|
|
@ -11,7 +11,8 @@ from rest_framework.serializers import ValidationError
|
|||
from db.api import filters, pagination, serializers
|
||||
from db.api.perms import SafeMethodsWithPermission
|
||||
from db.api.renderers import BrowserableJSONLDRenderer, JSONLDRenderer
|
||||
from db.base.models import Artifact, DemodData, Mode, Satellite, Transmitter
|
||||
from db.base.models import Artifact, DemodData, LatestTle, Mode, Satellite, \
|
||||
Transmitter
|
||||
from db.base.tasks import update_satellite
|
||||
|
||||
|
||||
|
@ -46,6 +47,14 @@ class TransmitterView(viewsets.ReadOnlyModelViewSet): # pylint: disable=R0901
|
|||
lookup_field = 'uuid'
|
||||
|
||||
|
||||
class TleView(viewsets.ReadOnlyModelViewSet): # pylint: disable=R0901
|
||||
"""SatNOGS DB Tle API view class"""
|
||||
renderer_classes = [JSONRenderer]
|
||||
queryset = LatestTle.objects.all()
|
||||
serializer_class = serializers.TleSerializer
|
||||
filterset_class = filters.TleViewFilter
|
||||
|
||||
|
||||
class TelemetryView( # pylint: disable=R0901
|
||||
mixins.ListModelMixin, mixins.RetrieveModelMixin, mixins.CreateModelMixin,
|
||||
viewsets.GenericViewSet):
|
||||
|
|
Loading…
Reference in New Issue