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 rest_framework.permissions import AllowAny
|
||||||
from django.contrib.auth import views as auth_views
|
from django.contrib.auth import views as auth_views
|
||||||
|
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('admin/', admin.site.urls),
|
path('admin/', admin.site.urls),
|
||||||
path('', include('roomservice.urls')),
|
path('', include('roomservice.urls')),
|
||||||
@ -28,9 +27,8 @@ urlpatterns = [
|
|||||||
path('login/', auth_views.login, {'template_name': 'login.jinja'}, name='login'),
|
path('login/', auth_views.login, {'template_name': 'login.jinja'}, name='login'),
|
||||||
path('logout/', auth_views.logout, name='logout'),
|
path('logout/', auth_views.logout, name='logout'),
|
||||||
|
|
||||||
|
|
||||||
# APIs
|
# APIs
|
||||||
# path('api/', include('respool.api.urls')),
|
path('api/', include('roomservice.api.urls')),
|
||||||
|
|
||||||
# API Docs
|
# API Docs
|
||||||
# path('api/docs/', include_docs_urls(title='Respool API Docs', public=True,
|
# 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
|
from . import views
|
||||||
|
|
||||||
app_name = 'roomservice'
|
app_name = 'roomservice'
|
||||||
@ -10,4 +10,6 @@ urlpatterns = [
|
|||||||
path('booking', views.booking, name='booking'),
|
path('booking', views.booking, name='booking'),
|
||||||
path('search', views.search, name='search'),
|
path('search', views.search, name='search'),
|
||||||
path('search', views.location_based_search, name='location-based-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
|
from django.shortcuts import render, redirect
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user