aboutsummaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorGravatar Johannes Christ <[email protected]>2018-08-15 21:46:56 +0200
committerGravatar Johannes Christ <[email protected]>2018-08-15 21:46:56 +0200
commitfc38b383ea99df7f0c26bd94d04445c88527d566 (patch)
tree6c2111a4766067437aeab3e2c1eaf0d4e1efaa3f /api
parentUse `reverse` from `django-hosts`. (diff)
Use viewsets and the `rest_framework` router.
Diffstat (limited to 'api')
-rw-r--r--api/serializers.py8
-rw-r--r--api/tests.py3
-rw-r--r--api/tests/__init__.py0
-rw-r--r--api/tests/test_snake_names.py10
-rw-r--r--api/urls.py11
-rw-r--r--api/views.py3
-rw-r--r--api/viewsets.py9
7 files changed, 38 insertions, 6 deletions
diff --git a/api/serializers.py b/api/serializers.py
new file mode 100644
index 00000000..327e78db
--- /dev/null
+++ b/api/serializers.py
@@ -0,0 +1,8 @@
+from rest_framework.serializers import ModelSerializer
+
+from .models import SnakeName
+
+
+class SnakeNameSerializer(ModelSerializer):
+ class Meta:
+ model = SnakeName
diff --git a/api/tests.py b/api/tests.py
deleted file mode 100644
index 7ce503c2..00000000
--- a/api/tests.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from django.test import TestCase
-
-# Create your tests here.
diff --git a/api/tests/__init__.py b/api/tests/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/api/tests/__init__.py
diff --git a/api/tests/test_snake_names.py b/api/tests/test_snake_names.py
new file mode 100644
index 00000000..14574311
--- /dev/null
+++ b/api/tests/test_snake_names.py
@@ -0,0 +1,10 @@
+from django_hosts.resolvers import reverse
+from rest_framework.test import APITestCase, force_authenticate
+
+
+class EmptyDatabaseSnakeNameTests(APITestCase):
+ def test_endpoint_returns_empty_list(self):
+ import pdb; pdb.set_trace()
+ url = reverse('snake-names-list', host='api')
+ response = self.client.get(url)
+ self.assertEqual(response.status_code, 200)
diff --git a/api/urls.py b/api/urls.py
new file mode 100644
index 00000000..c1fa70d5
--- /dev/null
+++ b/api/urls.py
@@ -0,0 +1,11 @@
+from rest_framework.routers import SimpleRouter
+
+from .viewsets import SnakeNameViewSet
+
+
+# http://www.django-rest-framework.org/api-guide/routers/#simplerouter
+router = SimpleRouter(trailing_slash=False)
+router.register(r'snake-names', SnakeNameViewSet)
+
+app_name = 'api'
+urlpatterns = router.urls
diff --git a/api/views.py b/api/views.py
deleted file mode 100644
index 91ea44a2..00000000
--- a/api/views.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from django.shortcuts import render
-
-# Create your views here.
diff --git a/api/viewsets.py b/api/viewsets.py
new file mode 100644
index 00000000..14e88029
--- /dev/null
+++ b/api/viewsets.py
@@ -0,0 +1,9 @@
+from rest_framework.viewsets import ReadOnlyModelViewSet
+
+from .models import SnakeName
+from .serializers import SnakeNameSerializer
+
+
+class SnakeNameViewSet(ReadOnlyModelViewSet):
+ queryset = SnakeName.objects.all()
+ serializer_class = SnakeNameSerializer