mirror of
https://github.com/ae-utbm/sith.git
synced 2025-07-09 19:40:19 +00:00
Started launderette API
This commit is contained in:
@ -10,6 +10,14 @@ router.register(r'user', UserViewSet, base_name='api_user')
|
||||
router.register(r'club', ClubViewSet, base_name='api_club')
|
||||
router.register(r'group', GroupViewSet, base_name='api_group')
|
||||
|
||||
# Launderette
|
||||
router.register(r'launderette/place', LaunderettePlaceViewSet,
|
||||
base_name='api_launderette_place')
|
||||
router.register(r'launderette/machine', LaunderetteMachineViewSet,
|
||||
base_name='api_launderette_machine')
|
||||
router.register(r'launderette/token', LaunderetteTokenViewSet,
|
||||
base_name='api_launderette_token')
|
||||
|
||||
urlpatterns = [
|
||||
|
||||
# API
|
||||
|
@ -11,6 +11,8 @@ from core.templatetags.renderer import markdown
|
||||
from counter.models import Counter
|
||||
from core.models import User, RealGroup
|
||||
from club.models import Club
|
||||
from launderette.models import Launderette, Machine, Token
|
||||
|
||||
from api.views import serializers
|
||||
from api.views import RightManagedModelViewSet
|
||||
|
||||
@ -76,3 +78,63 @@ class GroupViewSet(RightManagedModelViewSet):
|
||||
|
||||
serializer_class = serializers.GroupRead
|
||||
queryset = RealGroup.objects.all()
|
||||
|
||||
class LaunderettePlaceViewSet(RightManagedModelViewSet):
|
||||
"""
|
||||
Manage Launderette (api/v1/launderette/place/)
|
||||
"""
|
||||
|
||||
serializer_class = serializers.LaunderettePlaceRead
|
||||
queryset = Launderette.objects.all()
|
||||
|
||||
class LaunderetteMachineViewSet(RightManagedModelViewSet):
|
||||
"""
|
||||
Manage Washing Machines (api/v1/launderette/machine/)
|
||||
"""
|
||||
|
||||
serializer_class = serializers.LaunderetteMachineRead
|
||||
queryset = Machine.objects.all()
|
||||
|
||||
class LaunderetteTokenViewSet(RightManagedModelViewSet):
|
||||
"""
|
||||
Manage Launderette's tokens (api/v1/launderette/token/)
|
||||
"""
|
||||
|
||||
serializer_class = serializers.LaunderetteTokenRead
|
||||
queryset = Token.objects.all()
|
||||
|
||||
@list_route()
|
||||
def washing(self, request):
|
||||
"""
|
||||
Return all washing tokens (api/v1/launderette/token/washing)
|
||||
"""
|
||||
self.queryset = self.queryset.filter(type='WASHING')
|
||||
serializer = self.get_serializer(self.queryset, many=True)
|
||||
return Response(serializer.data)
|
||||
|
||||
@list_route()
|
||||
def drying(self, request):
|
||||
"""
|
||||
Return all drying tokens (api/v1/launderette/token/drying)
|
||||
"""
|
||||
self.queryset = self.queryset.filter(type='DRYING')
|
||||
serializer = self.get_serializer(self.queryset, many=True)
|
||||
return Response(serializer.data)
|
||||
|
||||
@list_route()
|
||||
def avaliable(self, request):
|
||||
"""
|
||||
Return all avaliable tokens (api/v1/launderette/token/avaliable)
|
||||
"""
|
||||
self.queryset = self.queryset.filter(borrow_date__isnull=True, user__isnull=True)
|
||||
serializer = self.get_serializer(self.queryset, many=True)
|
||||
return Response(serializer.data)
|
||||
|
||||
@list_route()
|
||||
def unavaliable(self, request):
|
||||
"""
|
||||
Return all unavaliable tokens (api/v1/launderette/token/unavaliable)
|
||||
"""
|
||||
self.queryset = self.queryset.filter(borrow_date__isnull=False, user__isnull=False)
|
||||
serializer = self.get_serializer(self.queryset, many=True)
|
||||
return Response(serializer.data)
|
||||
|
@ -1,6 +1,7 @@
|
||||
from rest_framework import serializers
|
||||
from counter.models import Counter
|
||||
from core.models import User, RealGroup
|
||||
from launderette.models import Launderette, Machine, Token
|
||||
from club.models import Club
|
||||
|
||||
|
||||
@ -8,8 +9,8 @@ class CounterRead(serializers.ModelSerializer):
|
||||
|
||||
is_open = serializers.BooleanField(read_only=True)
|
||||
barman_list = serializers.ListField(
|
||||
child=serializers.IntegerField()
|
||||
)
|
||||
child=serializers.IntegerField()
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = Counter
|
||||
@ -35,3 +36,31 @@ class GroupRead(serializers.ModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = RealGroup
|
||||
|
||||
|
||||
class LaunderettePlaceRead(serializers.ModelSerializer):
|
||||
|
||||
machine_list = serializers.ListField(
|
||||
child=serializers.IntegerField()
|
||||
)
|
||||
token_list = serializers.ListField(
|
||||
child=serializers.IntegerField()
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = Launderette
|
||||
fields = ('id', 'name', 'counter', 'machine_list',
|
||||
'token_list', 'get_absolute_url')
|
||||
|
||||
class LaunderetteMachineRead(serializers.ModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = Machine
|
||||
fields = ('id', 'name', 'is_working', 'launderette')
|
||||
|
||||
class LaunderetteTokenRead(serializers.ModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = Token
|
||||
fields = ('id', 'name', 'type', 'launderette', 'borrow_date',
|
||||
'user', 'is_avaliable')
|
||||
|
Reference in New Issue
Block a user