From 2ae5f5205ec19dbc1574b6136da9479e080c6ba2 Mon Sep 17 00:00:00 2001 From: Hasan-Ahmad Date: Thu, 11 Oct 2018 16:14:34 +0100 Subject: Added snake facts api --- api/viewsets.py | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to 'api/viewsets.py') diff --git a/api/viewsets.py b/api/viewsets.py index e3fa219c..29eb5782 100644 --- a/api/viewsets.py +++ b/api/viewsets.py @@ -12,12 +12,12 @@ from rest_framework_bulk import BulkCreateModelMixin from .models import ( DocumentationLink, Member, OffTopicChannelName, SnakeName, - Tag + Tag, SnakeFact, ) from .serializers import ( DocumentationLinkSerializer, MemberSerializer, OffTopicChannelNameSerializer, SnakeNameSerializer, - TagSerializer + TagSerializer, SnakeFactSerializer ) @@ -230,6 +230,31 @@ class SnakeNameViewSet(ViewSet): return Response({}) +class SnakeFactViewSet(RetrieveModelMixin, GenericViewSet): + """ + View providing snake facts created by the Pydis community in the first code jam. + + ## Routes + ### GET /bot/snake-fact/ + Returns a snake fact in the database. + + #### Response format + >>> [ + ... {'fact': 'Snakes are dangerous'}, + ... {'fact': 'Except for Python, we all love it'} + ... ] + + #### Status codes + - 200: returned on success + + ## Authentication + Requires an API token. + """ + + serializer_class = SnakeFactSerializer + queryset = SnakeFact.objects.all() + + class TagViewSet(ModelViewSet): """ View providing CRUD operations on tags shown by our bot. -- cgit v1.2.3 From 87cea3fb21f85bf43e53b4a65df827628cc2b2b5 Mon Sep 17 00:00:00 2001 From: Hasan-Ahmad Date: Sat, 13 Oct 2018 15:34:08 +0100 Subject: Fixed ordering, switched to ListModelMixin --- api/viewsets.py | 54 +++++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) (limited to 'api/viewsets.py') diff --git a/api/viewsets.py b/api/viewsets.py index 29eb5782..4e36aa8e 100644 --- a/api/viewsets.py +++ b/api/viewsets.py @@ -12,12 +12,12 @@ from rest_framework_bulk import BulkCreateModelMixin from .models import ( DocumentationLink, Member, OffTopicChannelName, SnakeName, - Tag, SnakeFact, + SnakeFact, Tag, ) from .serializers import ( DocumentationLinkSerializer, MemberSerializer, OffTopicChannelNameSerializer, SnakeNameSerializer, - TagSerializer, SnakeFactSerializer + SnakeFactSerializer, TagSerializer, ) @@ -174,6 +174,31 @@ class OffTopicChannelNameViewSet(DestroyModelMixin, ViewSet): return Response(serialized.data) +class SnakeFactViewSet(ListModelMixin, GenericViewSet): + """ + View providing snake facts created by the Pydis community in the first code jam. + + ## Routes + ### GET /bot/snake-fact/ + Returns a snake fact in the database. + + #### Response format + >>> [ + ... {'fact': 'Snakes are dangerous'}, + ... {'fact': 'Except for Python, we all love it'} + ... ] + + #### Status codes + - 200: returned on success + + ## Authentication + Requires an API token. + """ + + serializer_class = SnakeFactSerializer + queryset = SnakeFact.objects.all() + + class SnakeNameViewSet(ViewSet): """ View providing snake names for the bot's snake cog from our first code jam's winners. @@ -230,31 +255,6 @@ class SnakeNameViewSet(ViewSet): return Response({}) -class SnakeFactViewSet(RetrieveModelMixin, GenericViewSet): - """ - View providing snake facts created by the Pydis community in the first code jam. - - ## Routes - ### GET /bot/snake-fact/ - Returns a snake fact in the database. - - #### Response format - >>> [ - ... {'fact': 'Snakes are dangerous'}, - ... {'fact': 'Except for Python, we all love it'} - ... ] - - #### Status codes - - 200: returned on success - - ## Authentication - Requires an API token. - """ - - serializer_class = SnakeFactSerializer - queryset = SnakeFact.objects.all() - - class TagViewSet(ModelViewSet): """ View providing CRUD operations on tags shown by our bot. -- cgit v1.2.3 From e0298cdbd1f1a4fdd1963c93ea271cb52fb5c923 Mon Sep 17 00:00:00 2001 From: Hasan-Ahmad Date: Mon, 15 Oct 2018 21:45:21 +0100 Subject: Fixed import order and linting --- api/admin.py | 2 +- api/models.py | 2 +- api/serializers.py | 4 ++-- api/urls.py | 4 ++-- api/viewsets.py | 7 +++---- 5 files changed, 9 insertions(+), 10 deletions(-) (limited to 'api/viewsets.py') diff --git a/api/admin.py b/api/admin.py index 7d7cf6fb..1ce8d767 100644 --- a/api/admin.py +++ b/api/admin.py @@ -4,7 +4,7 @@ from .models import ( DocumentationLink, Member, OffTopicChannelName, Role, SnakeFact, SnakeName, - Tag, + Tag ) diff --git a/api/models.py b/api/models.py index c37417eb..7c9b63f5 100644 --- a/api/models.py +++ b/api/models.py @@ -70,7 +70,7 @@ class SnakeFact(ModelReprMixin, models.Model): ) def __str__(self): - return f"{self.fact}" + return self.fact class SnakeName(ModelReprMixin, models.Model): diff --git a/api/serializers.py b/api/serializers.py index a4482c30..a0f823e9 100644 --- a/api/serializers.py +++ b/api/serializers.py @@ -4,8 +4,8 @@ from rest_framework_bulk import BulkSerializerMixin from .models import ( DocumentationLink, Member, OffTopicChannelName, Role, - SnakeFact, SnakeName, - Tag, + SnakeFact, SnakeName, + Tag, ) diff --git a/api/urls.py b/api/urls.py index 5cc1b346..40883c64 100644 --- a/api/urls.py +++ b/api/urls.py @@ -4,8 +4,8 @@ from rest_framework.routers import DefaultRouter from .views import HealthcheckView from .viewsets import ( DocumentationLinkViewSet, MemberViewSet, - OffTopicChannelNameViewSet, SnakeNameViewSet, - TagViewSet, SnakeFactViewSet + OffTopicChannelNameViewSet, SnakeFactViewSet, SnakeNameViewSet, + TagViewSet ) diff --git a/api/viewsets.py b/api/viewsets.py index 4e36aa8e..9edc2b69 100644 --- a/api/viewsets.py +++ b/api/viewsets.py @@ -11,13 +11,12 @@ from rest_framework_bulk import BulkCreateModelMixin from .models import ( DocumentationLink, Member, - OffTopicChannelName, SnakeName, - SnakeFact, Tag, + OffTopicChannelName, SnakeFact, SnakeName, Tag ) from .serializers import ( DocumentationLinkSerializer, MemberSerializer, - OffTopicChannelNameSerializer, SnakeNameSerializer, - SnakeFactSerializer, TagSerializer, + OffTopicChannelNameSerializer, SnakeFactSerializer, SnakeNameSerializer, + TagSerializer ) -- cgit v1.2.3 From 60363b8d84e7ea86ab82e99dc9d5e11b55d9221e Mon Sep 17 00:00:00 2001 From: Hasan-Ahmad Date: Mon, 15 Oct 2018 21:56:32 +0100 Subject: exterminated trailing comma, fixed imports 2 per line --- api/serializers.py | 2 +- api/viewsets.py | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'api/viewsets.py') diff --git a/api/serializers.py b/api/serializers.py index a0f823e9..fe2ab2f1 100644 --- a/api/serializers.py +++ b/api/serializers.py @@ -5,7 +5,7 @@ from .models import ( DocumentationLink, Member, OffTopicChannelName, Role, SnakeFact, SnakeName, - Tag, + Tag ) diff --git a/api/viewsets.py b/api/viewsets.py index 9edc2b69..22862c16 100644 --- a/api/viewsets.py +++ b/api/viewsets.py @@ -11,12 +11,13 @@ from rest_framework_bulk import BulkCreateModelMixin from .models import ( DocumentationLink, Member, - OffTopicChannelName, SnakeFact, SnakeName, Tag + OffTopicChannelName, SnakeFact, + SnakeName, Tag ) from .serializers import ( DocumentationLinkSerializer, MemberSerializer, - OffTopicChannelNameSerializer, SnakeFactSerializer, SnakeNameSerializer, - TagSerializer + OffTopicChannelNameSerializer, SnakeFactSerializer, + SnakeNameSerializer, TagSerializer ) -- cgit v1.2.3