Add booking api endpoint
This commit is contained in:
parent
0cd0a3dcd9
commit
d9023f37d5
@ -20,7 +20,6 @@ from rest_framework.documentation import include_docs_urls
|
||||
from rest_framework.permissions import AllowAny
|
||||
from django.contrib.auth import views as auth_views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
path('admin/', admin.site.urls),
|
||||
path('', include('roomservice.urls')),
|
||||
@ -28,9 +27,8 @@ urlpatterns = [
|
||||
path('login/', auth_views.login, {'template_name': 'login.jinja'}, name='login'),
|
||||
path('logout/', auth_views.logout, name='logout'),
|
||||
|
||||
|
||||
# APIs
|
||||
# path('api/', include('respool.api.urls')),
|
||||
path('api/', include('roomservice.api.urls')),
|
||||
|
||||
# API Docs
|
||||
# path('api/docs/', include_docs_urls(title='Respool API Docs', public=True,
|
||||
|
||||
0
roofis2/roomservice/api/__init__.py
Normal file
0
roofis2/roomservice/api/__init__.py
Normal file
20
roofis2/roomservice/api/serializers.py
Normal file
20
roofis2/roomservice/api/serializers.py
Normal file
@ -0,0 +1,20 @@
|
||||
from roomservice.models import Booking, Room
|
||||
from rest_framework import serializers
|
||||
|
||||
|
||||
class RoomSerializer(serializers.HyperlinkedModelSerializer):
|
||||
class Meta:
|
||||
model = Room
|
||||
fields = ('id',)
|
||||
|
||||
|
||||
class BookingSerializer(serializers.HyperlinkedModelSerializer):
|
||||
room = RoomSerializer(many=False, read_only=True)
|
||||
start_date = serializers.DateField(format='iso-8601')
|
||||
end_date = serializers.DateField(format='iso-8601')
|
||||
start_time = serializers.TimeField(format='iso-8601')
|
||||
end_time = serializers.TimeField(format='iso-8601')
|
||||
|
||||
class Meta:
|
||||
model = Booking
|
||||
fields = ('id', 'room', 'start_date', 'end_date', 'start_time', 'end_time')
|
||||
7
roofis2/roomservice/api/urls.py
Normal file
7
roofis2/roomservice/api/urls.py
Normal file
@ -0,0 +1,7 @@
|
||||
from django.urls import path
|
||||
from . import views
|
||||
|
||||
app_name = 'roomservice.api'
|
||||
urlpatterns = [
|
||||
path('booking', views.ApiBooking.as_view(), name='api-booking'),
|
||||
]
|
||||
21
roofis2/roomservice/api/views.py
Normal file
21
roofis2/roomservice/api/views.py
Normal file
@ -0,0 +1,21 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from roomservice.models import Booking
|
||||
from roomservice.api.serializers import BookingSerializer
|
||||
|
||||
from rest_framework import generics
|
||||
from rest_framework.decorators import permission_classes
|
||||
from rest_framework.permissions import IsAuthenticated, AllowAny
|
||||
|
||||
|
||||
@permission_classes((AllowAny,))
|
||||
class ApiBooking(generics.ListAPIView):
|
||||
serializer_class = BookingSerializer
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = Booking.objects.all()
|
||||
roomId = self.request.query_params.get('room_id')
|
||||
|
||||
if roomId:
|
||||
queryset = queryset.filter(room=roomId)
|
||||
return queryset
|
||||
@ -1,4 +1,4 @@
|
||||
from django.urls import path
|
||||
from django.urls import path, include
|
||||
from . import views
|
||||
|
||||
app_name = 'roomservice'
|
||||
@ -10,4 +10,6 @@ urlpatterns = [
|
||||
path('booking', views.booking, name='booking'),
|
||||
path('search', views.search, name='search'),
|
||||
path('search', views.location_based_search, name='location-based-search'),
|
||||
|
||||
path('roomservice', include('roomservice.api.urls'))
|
||||
]
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
from roomservice.models import Room, Favorite
|
||||
from roomservice.models import Room, Favorite, Booking
|
||||
from django.shortcuts import render, redirect
|
||||
import logging
|
||||
|
||||
|
||||
Reference in New Issue
Block a user