diff --git a/api/serializers.py b/api/serializers.py new file mode 100644 index 0000000..441f2df --- /dev/null +++ b/api/serializers.py @@ -0,0 +1,8 @@ +from rest_framework import serializers +from .models import Session + +class SessionSerializer(serializers.ModelSerializer): + class Meta: + model = Session + fields = ('id', 'seconds', 'created_at',) + diff --git a/api/urls.py b/api/urls.py new file mode 100644 index 0000000..c7d8493 --- /dev/null +++ b/api/urls.py @@ -0,0 +1,7 @@ +from django.urls import path +from . import views + +urlpatterns = [ + path('api/sessions', views.SessionList.as_view(), name='session__list'), + path('api/sessions/', views.SessionDetail.as_view(), name='session_detail'), +] diff --git a/api/views.py b/api/views.py index 91ea44a..bc7289e 100644 --- a/api/views.py +++ b/api/views.py @@ -1,3 +1,11 @@ -from django.shortcuts import render +from rest_framework import generics +from .serializers import SessionSerializer +from .models import Session -# Create your views here. +class SessionList(generics.ListCreateAPIView): + queryset = Session.objects.all() # tell django how to retrieve all objects from the DB + serializer_class = SessionSerializer # tell django what serializer to use + +class SessionDetail(generics.RetrieveUpdateDestroyAPIView): + queryset = Session.objects.all() + serializer_class = SessionSerializer diff --git a/timer_backend/settings.py b/timer_backend/settings.py index 705b091..95ba774 100644 --- a/timer_backend/settings.py +++ b/timer_backend/settings.py @@ -31,6 +31,7 @@ ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = [ + 'rest_framework', 'api', 'django.contrib.admin', 'django.contrib.auth', diff --git a/timer_backend/urls.py b/timer_backend/urls.py index dbabe74..f856c18 100644 --- a/timer_backend/urls.py +++ b/timer_backend/urls.py @@ -15,7 +15,9 @@ Including another URLconf """ from django.contrib import admin from django.urls import path +from django.conf.urls import include urlpatterns = [ + path('', include('api.urls')), # add this path('admin/', admin.site.urls), ]