team-3/src/c3nav/editor/api.py

29 lines
897 B
Python
Raw Normal View History

2016-09-13 15:18:24 +02:00
from django.http import Http404
2016-09-29 19:35:08 +02:00
from rest_framework.decorators import detail_route
2016-09-13 15:18:24 +02:00
from rest_framework.response import Response
from rest_framework.viewsets import ViewSet
2016-09-13 15:18:24 +02:00
2016-09-27 16:18:18 +02:00
from c3nav.editor.hosters import hosters
from c3nav.editor.serializers import HosterSerializer
2016-09-13 15:18:24 +02:00
class HosterViewSet(ViewSet):
"""
Get Package Hosters
"""
def list(self, request, version=None):
2016-09-29 19:35:08 +02:00
serializer = HosterSerializer(hosters.values(), many=True)
2016-09-13 15:18:24 +02:00
return Response(serializer.data)
def retrieve(self, request, pk=None, version=None):
if pk not in hosters:
raise Http404
2016-09-29 19:35:08 +02:00
serializer = HosterSerializer(hosters[pk])
2016-09-13 15:18:24 +02:00
return Response(serializer.data)
2016-09-29 19:35:08 +02:00
@detail_route(methods=['get'])
def state(self, request, pk=None, version=None):
if pk not in hosters:
raise Http404
return Response(hosters[pk].get_state(request))