mirror of
https://github.com/ae-utbm/sith.git
synced 2025-07-09 19:40:19 +00:00
Added counters in api
This commit is contained in:
@ -1,7 +1,13 @@
|
||||
from . import serializers
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.decorators import api_view
|
||||
from rest_framework import viewsets
|
||||
from rest_framework.decorators import detail_route
|
||||
from rest_framework.decorators import list_route
|
||||
|
||||
from django.shortcuts import get_object_or_404
|
||||
from core.templatetags.renderer import markdown
|
||||
from counter.models import Counter
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
@ -11,3 +17,30 @@ def RenderMarkdown(request):
|
||||
"""
|
||||
if request.method == 'GET':
|
||||
return Response(markdown(request.GET['text']))
|
||||
|
||||
|
||||
class CounterViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
Manage Counters (api/v1/counter)
|
||||
"""
|
||||
|
||||
serializer_class = serializers.Counter
|
||||
queryset = Counter.objects.all()
|
||||
|
||||
@list_route()
|
||||
def bar(self, request):
|
||||
"""
|
||||
Return all counters (api/v1/counter/all)
|
||||
"""
|
||||
self.queryset = Counter.objects.filter(type="BAR")
|
||||
serializer = self.get_serializer(self.queryset, many=True)
|
||||
return Response(serializer.data)
|
||||
|
||||
@detail_route(methods=['GET'])
|
||||
def id(self, request, pk=None):
|
||||
"""
|
||||
Get by id (api/v1/{nk}/id)
|
||||
"""
|
||||
self.queryset = get_object_or_404(Counter.objects.filter(id=pk))
|
||||
serializer = self.get_serializer(self.queryset)
|
||||
return Response(serializer.data)
|
||||
|
@ -1 +1,11 @@
|
||||
from rest_framework import serializers
|
||||
from counter.models import Counter
|
||||
|
||||
|
||||
class Counter(serializers.ModelSerializer):
|
||||
|
||||
is_open = serializers.BooleanField(read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = Counter
|
||||
fields = ('id', 'name', 'is_open')
|
||||
|
Reference in New Issue
Block a user