From 0766dab8306d24b22550e1a4a054ff3f2956a0b1 Mon Sep 17 00:00:00 2001 From: Hasan-Ahmad Date: Mon, 22 Oct 2018 11:22:48 +0100 Subject: Added special snakes api --- api/serializers.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'api/serializers.py') diff --git a/api/serializers.py b/api/serializers.py index 51d89425..683a6df5 100644 --- a/api/serializers.py +++ b/api/serializers.py @@ -2,10 +2,11 @@ from rest_framework.serializers import ModelSerializer, PrimaryKeyRelatedField from rest_framework_bulk import BulkSerializerMixin from .models import ( - DocumentationLink, Member, - OffTopicChannelName, Role, - SnakeFact, SnakeIdiom, - SnakeName, Tag + DocumentationLink, + Member, OffTopicChannelName, + Role, SnakeFact, + SnakeIdiom, SnakeName, + SpecialSnake, Tag ) @@ -42,6 +43,12 @@ class SnakeNameSerializer(ModelSerializer): fields = ('name', 'scientific') +class SpecialSnakeSerializer(ModelSerializer): + class Meta: + model = SpecialSnake + fields = ('name', 'info',) + + class RoleSerializer(ModelSerializer): class Meta: model = Role -- cgit v1.2.3 From da5780d914d152187f395ffce3fec26106e1888e Mon Sep 17 00:00:00 2001 From: Hasan-Ahmad Date: Tue, 23 Oct 2018 12:58:23 +0100 Subject: Added image field --- api/migrations/0013_specialsnake_image.py | 21 +++++++++++++++++++++ api/models.py | 1 + api/serializers.py | 4 ++-- 3 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 api/migrations/0013_specialsnake_image.py (limited to 'api/serializers.py') diff --git a/api/migrations/0013_specialsnake_image.py b/api/migrations/0013_specialsnake_image.py new file mode 100644 index 00000000..a0d0d318 --- /dev/null +++ b/api/migrations/0013_specialsnake_image.py @@ -0,0 +1,21 @@ +# Generated by Django 2.1.2 on 2018-10-23 11:51 + +import datetime +from django.db import migrations, models +from django.utils.timezone import utc + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0012_specialsnake'), + ] + + operations = [ + migrations.AddField( + model_name='specialsnake', + name='image', + field=models.URLField(default=datetime.datetime(2018, 10, 23, 11, 51, 23, 703868, tzinfo=utc)), + preserve_default=False, + ), + ] diff --git a/api/models.py b/api/models.py index 6571d16a..2ba50adf 100644 --- a/api/models.py +++ b/api/models.py @@ -110,6 +110,7 @@ class SpecialSnake(ModelReprMixin, models.Model): max_length=140, primary_key=True ) info = models.TextField() + image = models.URLField() def __str__(self): return self.name diff --git a/api/serializers.py b/api/serializers.py index 683a6df5..6c878c5d 100644 --- a/api/serializers.py +++ b/api/serializers.py @@ -40,13 +40,13 @@ class SnakeIdiomSerializer(ModelSerializer): class SnakeNameSerializer(ModelSerializer): class Meta: model = SnakeName - fields = ('name', 'scientific') + fields = ('name', 'scientific',) class SpecialSnakeSerializer(ModelSerializer): class Meta: model = SpecialSnake - fields = ('name', 'info',) + fields = ('name', 'image', 'info',) class RoleSerializer(ModelSerializer): -- cgit v1.2.3 From cac5ea311608508585437481ccb184e376eba36c Mon Sep 17 00:00:00 2001 From: Hasan-Ahmad Date: Wed, 24 Oct 2018 14:43:00 +0100 Subject: Added special snake documentation, fixed linting errors --- api/serializers.py | 6 +++--- api/viewsets.py | 35 +++++++++++++++++++++++++++++------ 2 files changed, 32 insertions(+), 9 deletions(-) (limited to 'api/serializers.py') diff --git a/api/serializers.py b/api/serializers.py index 6c878c5d..69ae1da7 100644 --- a/api/serializers.py +++ b/api/serializers.py @@ -2,10 +2,10 @@ from rest_framework.serializers import ModelSerializer, PrimaryKeyRelatedField from rest_framework_bulk import BulkSerializerMixin from .models import ( - DocumentationLink, + DocumentationLink, Member, OffTopicChannelName, - Role, SnakeFact, - SnakeIdiom, SnakeName, + Role, SnakeFact, + SnakeIdiom, SnakeName, SpecialSnake, Tag ) diff --git a/api/viewsets.py b/api/viewsets.py index 098b34f6..70fc96f8 100644 --- a/api/viewsets.py +++ b/api/viewsets.py @@ -11,15 +11,15 @@ from rest_framework_bulk import BulkCreateModelMixin from .models import ( DocumentationLink, Member, - OffTopicChannelName, + OffTopicChannelName, SnakeFact, SnakeIdiom, - SpecialSnake, SnakeName, + SnakeName, SpecialSnake, Tag ) from .serializers import ( - OffTopicChannelNameSerializer, - DocumentationLinkSerializer, MemberSerializer, - SnakeFactSerializer, SnakeIdiomSerializer, + DocumentationLinkSerializer, + MemberSerializer, OffTopicChannelNameSerializer, + SnakeFactSerializer, SnakeIdiomSerializer, SnakeNameSerializer, SpecialSnakeSerializer, TagSerializer ) @@ -204,7 +204,7 @@ class SnakeFactViewSet(ListModelMixin, GenericViewSet): class SnakeIdiomViewSet(ListModelMixin, GenericViewSet): """ - View providing for the snake cog. + View providing snake idioms for the snake cog. ## Routes ### GET /bot/snake-idioms @@ -284,6 +284,29 @@ class SnakeNameViewSet(ViewSet): class SpecialSnakeViewSet(ListModelMixin, GenericViewSet): + """ + View providing special snake names for our bot's snake cog. + + ## Routes + ### GET /bot/special-snakes + Returns a list of special snake names. + + #### Response Format + >>> [ + ... { + ... 'name':'Snakky sneakatus', + ... 'info':'Scary snek', + ... 'image':'https://discordapp.com/assets/53ef346458017da2062aca5c7955946b.svg' + ... }, + ... ] + + #### Status codes + - 200: returned on success + + ## Authentication + Requires an API token. + """ + serializer_class = SpecialSnakeSerializer queryset = SpecialSnake.objects.all() -- cgit v1.2.3 From 0e7f075253f5a491d69f70f8cda640372ebc050c Mon Sep 17 00:00:00 2001 From: Hasan-Ahmad Date: Sat, 27 Oct 2018 17:08:04 +0100 Subject: trailing comma extermination --- api/serializers.py | 4 ++-- api/urls.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'api/serializers.py') diff --git a/api/serializers.py b/api/serializers.py index 69ae1da7..3a379771 100644 --- a/api/serializers.py +++ b/api/serializers.py @@ -40,13 +40,13 @@ class SnakeIdiomSerializer(ModelSerializer): class SnakeNameSerializer(ModelSerializer): class Meta: model = SnakeName - fields = ('name', 'scientific',) + fields = ('name', 'scientific') class SpecialSnakeSerializer(ModelSerializer): class Meta: model = SpecialSnake - fields = ('name', 'image', 'info',) + fields = ('name', 'image', 'info') class RoleSerializer(ModelSerializer): diff --git a/api/urls.py b/api/urls.py index 63802858..8229b08c 100644 --- a/api/urls.py +++ b/api/urls.py @@ -28,7 +28,7 @@ bot_router.register( ) bot_router.register( 'snake-facts', - SnakeFactViewSet, + SnakeFactViewSet ) bot_router.register( 'snake-idioms', @@ -41,11 +41,11 @@ bot_router.register( ) bot_router.register( 'special-snakes', - SpecialSnakeViewSet, + SpecialSnakeViewSet ) bot_router.register( 'tags', - TagViewSet, + TagViewSet ) app_name = 'api' -- cgit v1.2.3 From d3268527642df788531e3cd07a3e293b6d4affc7 Mon Sep 17 00:00:00 2001 From: Hasan-Ahmad Date: Sat, 27 Oct 2018 17:27:11 +0100 Subject: Changed image urlfield to ArrayField --- api/migrations/0015_auto_20181027_1617.py | 19 +++++++++++++++++++ api/migrations/0016_auto_20181027_1619.py | 18 ++++++++++++++++++ api/models.py | 4 +++- api/serializers.py | 2 +- 4 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 api/migrations/0015_auto_20181027_1617.py create mode 100644 api/migrations/0016_auto_20181027_1619.py (limited to 'api/serializers.py') diff --git a/api/migrations/0015_auto_20181027_1617.py b/api/migrations/0015_auto_20181027_1617.py new file mode 100644 index 00000000..8973ff6d --- /dev/null +++ b/api/migrations/0015_auto_20181027_1617.py @@ -0,0 +1,19 @@ +# Generated by Django 2.1.2 on 2018-10-27 16:17 + +import django.contrib.postgres.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0014_auto_20181025_1959'), + ] + + operations = [ + migrations.AlterField( + model_name='specialsnake', + name='image', + field=django.contrib.postgres.fields.ArrayField(base_field=models.URLField(), size=None), + ), + ] diff --git a/api/migrations/0016_auto_20181027_1619.py b/api/migrations/0016_auto_20181027_1619.py new file mode 100644 index 00000000..b8bdfb16 --- /dev/null +++ b/api/migrations/0016_auto_20181027_1619.py @@ -0,0 +1,18 @@ +# Generated by Django 2.1.2 on 2018-10-27 16:19 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0015_auto_20181027_1617'), + ] + + operations = [ + migrations.RenameField( + model_name='specialsnake', + old_name='image', + new_name='images', + ), + ] diff --git a/api/models.py b/api/models.py index eb9c2e16..bc778330 100644 --- a/api/models.py +++ b/api/models.py @@ -114,7 +114,9 @@ class SpecialSnake(ModelReprMixin, models.Model): info = models.TextField( help_text='Info about a special snake.' ) - image = models.URLField() + images = pgfields.ArrayField( + models.URLField() + ) def __str__(self): return self.name diff --git a/api/serializers.py b/api/serializers.py index 3a379771..f8d15bbf 100644 --- a/api/serializers.py +++ b/api/serializers.py @@ -46,7 +46,7 @@ class SnakeNameSerializer(ModelSerializer): class SpecialSnakeSerializer(ModelSerializer): class Meta: model = SpecialSnake - fields = ('name', 'image', 'info') + fields = ('name', 'images', 'info') class RoleSerializer(ModelSerializer): -- cgit v1.2.3