diff options
author | 2018-10-19 18:51:48 +0100 | |
---|---|---|
committer | 2018-10-19 18:51:48 +0100 | |
commit | b70ee7dff60759b5853534e10baff26b11665b1b (patch) | |
tree | 0cc5c181c309473654410762a899a7627e5522d7 /api | |
parent | Merge branch 'django' of https://gitlab.com/python-discord/projects/site into... (diff) |
Added snake idioms api
Diffstat (limited to 'api')
-rw-r--r-- | api/admin.py | 5 | ||||
-rw-r--r-- | api/migrations/0010_snakeidiom.py | 21 | ||||
-rw-r--r-- | api/models.py | 13 | ||||
-rw-r--r-- | api/serializers.py | 8 | ||||
-rw-r--r-- | api/urls.py | 7 | ||||
-rw-r--r-- | api/viewsets.py | 11 |
6 files changed, 59 insertions, 6 deletions
diff --git a/api/admin.py b/api/admin.py index 1ce8d767..de544b52 100644 --- a/api/admin.py +++ b/api/admin.py @@ -3,8 +3,8 @@ from django.contrib import admin from .models import ( DocumentationLink, Member, OffTopicChannelName, Role, - SnakeFact, SnakeName, - Tag + SnakeFact, SnakeIdiom, + SnakeName, Tag ) @@ -13,5 +13,6 @@ admin.site.register(Member) admin.site.register(OffTopicChannelName) admin.site.register(Role) admin.site.register(SnakeFact) +admin.site.register(SnakeIdiom) admin.site.register(SnakeName) admin.site.register(Tag) diff --git a/api/migrations/0010_snakeidiom.py b/api/migrations/0010_snakeidiom.py new file mode 100644 index 00000000..982a9466 --- /dev/null +++ b/api/migrations/0010_snakeidiom.py @@ -0,0 +1,21 @@ +# Generated by Django 2.1.2 on 2018-10-19 16:27 + +import api.models +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0009_snakefact'), + ] + + operations = [ + migrations.CreateModel( + name='SnakeIdiom', + fields=[ + ('idiom', models.CharField(help_text='A snake idiom', max_length=140, primary_key=True, serialize=False)), + ], + bases=(api.models.ModelReprMixin, models.Model), + ), + ] diff --git a/api/models.py b/api/models.py index 7c9b63f5..81cd63aa 100644 --- a/api/models.py +++ b/api/models.py @@ -73,6 +73,19 @@ class SnakeFact(ModelReprMixin, models.Model): return self.fact +class SnakeIdiom(ModelReprMixin, models.Model): + """A snake idiom used by the snake cog.""" + + idiom = models.CharField( + primary_key=True, + max_length=140, + help_text="A snake idiom" + ) + + def __str__(self): + return self.idiom + + class SnakeName(ModelReprMixin, models.Model): """A snake name used by the bot's snake cog.""" diff --git a/api/serializers.py b/api/serializers.py index fe2ab2f1..fae5abd9 100644 --- a/api/serializers.py +++ b/api/serializers.py @@ -4,7 +4,7 @@ from rest_framework_bulk import BulkSerializerMixin from .models import ( DocumentationLink, Member, OffTopicChannelName, Role, - SnakeFact, SnakeName, + SnakeFact, SnakeIdiom, SnakeName, Tag ) @@ -30,6 +30,12 @@ class SnakeFactSerializer(ModelSerializer): fields = ('fact',) +class SnakeIdiomSerializer(ModelSerializer): + class Meta: + model = SnakeIdiom + fields = ('idiom',) + + class SnakeNameSerializer(ModelSerializer): class Meta: model = SnakeName diff --git a/api/urls.py b/api/urls.py index 40883c64..4f1b2455 100644 --- a/api/urls.py +++ b/api/urls.py @@ -4,7 +4,8 @@ from rest_framework.routers import DefaultRouter from .views import HealthcheckView from .viewsets import ( DocumentationLinkViewSet, MemberViewSet, - OffTopicChannelNameViewSet, SnakeFactViewSet, SnakeNameViewSet, + OffTopicChannelNameViewSet, SnakeFactViewSet, + SnakeIdiomViewSet, SnakeNameViewSet, TagViewSet ) @@ -29,6 +30,10 @@ bot_router.register( SnakeFactViewSet, ) bot_router.register( + 'snake-idioms', + SnakeIdiomViewSet +) +bot_router.register( 'snake-names', SnakeNameViewSet, base_name='snakename' diff --git a/api/viewsets.py b/api/viewsets.py index 22862c16..a9294109 100644 --- a/api/viewsets.py +++ b/api/viewsets.py @@ -12,12 +12,14 @@ from rest_framework_bulk import BulkCreateModelMixin from .models import ( DocumentationLink, Member, OffTopicChannelName, SnakeFact, - SnakeName, Tag + SnakeIdiom, SnakeName, + Tag ) from .serializers import ( DocumentationLinkSerializer, MemberSerializer, OffTopicChannelNameSerializer, SnakeFactSerializer, - SnakeNameSerializer, TagSerializer + SnakeIdiomSerializer, SnakeNameSerializer, + TagSerializer ) @@ -199,6 +201,11 @@ class SnakeFactViewSet(ListModelMixin, GenericViewSet): queryset = SnakeFact.objects.all() +class SnakeIdiomViewSet(ListModelMixin, GenericViewSet): + serializer_class = SnakeIdiomSerializer + queryset = SnakeIdiom.objects.all() + + class SnakeNameViewSet(ViewSet): """ View providing snake names for the bot's snake cog from our first code jam's winners. |