From 731a3ca4cefd7ed9bc6619b0d98cb0c28f14f290 Mon Sep 17 00:00:00 2001 From: Akarys42 Date: Tue, 22 Oct 2019 18:05:09 +0200 Subject: Create an OffensiveMessage model This model will be used to store message that triggered a filter and that will be deleted one week after it was sent. --- pydis_site/apps/api/viewsets/bot/__init__.py | 1 + .../apps/api/viewsets/bot/offensive_message.py | 66 ++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 pydis_site/apps/api/viewsets/bot/offensive_message.py (limited to 'pydis_site/apps/api/viewsets/bot') diff --git a/pydis_site/apps/api/viewsets/bot/__init__.py b/pydis_site/apps/api/viewsets/bot/__init__.py index f1851e32..b3e0fa4d 100644 --- a/pydis_site/apps/api/viewsets/bot/__init__.py +++ b/pydis_site/apps/api/viewsets/bot/__init__.py @@ -5,6 +5,7 @@ from .documentation_link import DocumentationLinkViewSet from .infraction import InfractionViewSet from .nomination import NominationViewSet from .off_topic_channel_name import OffTopicChannelNameViewSet +from .offensive_message import OffensiveMessageViewSet from .reminder import ReminderViewSet from .role import RoleViewSet from .tag import TagViewSet diff --git a/pydis_site/apps/api/viewsets/bot/offensive_message.py b/pydis_site/apps/api/viewsets/bot/offensive_message.py new file mode 100644 index 00000000..cd200efe --- /dev/null +++ b/pydis_site/apps/api/viewsets/bot/offensive_message.py @@ -0,0 +1,66 @@ +from django_filters.rest_framework import DjangoFilterBackend +from rest_framework.filters import SearchFilter +from rest_framework.mixins import ( + CreateModelMixin, + DestroyModelMixin, + ListModelMixin, + UpdateModelMixin +) +from rest_framework.viewsets import GenericViewSet + +from pydis_site.apps.api.models.bot.offensive_message import OffensiveMessage +from pydis_site.apps.api.serializers import OffensiveMessageSerializer + + +class OffensiveMessageViewSet( + CreateModelMixin, ListModelMixin, DestroyModelMixin, UpdateModelMixin, GenericViewSet +): + """ + View providing CRUD access to reminders. + + ## Routes + ### GET /bot/offensive-message + Returns all offensive messages in the database. + + #### Response format + >>> [ + ... { + ... 'id': '631953598091100200', + ... 'channel_id': '291284109232308226', + ... 'delete_date': '2020-01-01' + ... }, + ... ... + ... ] + + #### Status codes + - 200: returned on success + + ### POST /bot/offensive-message + Create a new offensive message object. + + #### Request body + >>> { + ... 'id': int, + ... 'channel_id': int, + ... 'delete_date': datetime.date # ISO-8601-formatted date + ... } + + #### Status codes + - 201: returned on success + - 400: if the body format is invalid + + ### DELETE /bot/offensive-message/ + Delete the offensive message object with the given `id`. + + #### Status codes + - 204: returned on success + - 404: if a offensive message object with the given `id` does not exist + + ## Authentication + Requires an API token. + """ + + serializer_class = OffensiveMessageSerializer + queryset = OffensiveMessage.objects.all() + filter_backends = (DjangoFilterBackend, SearchFilter) + filter_fields = ('delete_date',) -- cgit v1.2.3 From e19d310eb03efa5b576b523649c0d6df761f5325 Mon Sep 17 00:00:00 2001 From: Akarys42 Date: Sat, 26 Oct 2019 11:19:15 +0200 Subject: Change docs to use datetime.datetime instead of datetime.date --- pydis_site/apps/api/viewsets/bot/offensive_message.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'pydis_site/apps/api/viewsets/bot') diff --git a/pydis_site/apps/api/viewsets/bot/offensive_message.py b/pydis_site/apps/api/viewsets/bot/offensive_message.py index cd200efe..380234dd 100644 --- a/pydis_site/apps/api/viewsets/bot/offensive_message.py +++ b/pydis_site/apps/api/viewsets/bot/offensive_message.py @@ -27,7 +27,7 @@ class OffensiveMessageViewSet( ... { ... 'id': '631953598091100200', ... 'channel_id': '291284109232308226', - ... 'delete_date': '2020-01-01' + ... 'delete_date': '2019-11-01T21:51:15.545000Z' ... }, ... ... ... ] @@ -42,7 +42,7 @@ class OffensiveMessageViewSet( >>> { ... 'id': int, ... 'channel_id': int, - ... 'delete_date': datetime.date # ISO-8601-formatted date + ... 'delete_date': datetime.datetime # ISO-8601-formatted date ... } #### Status codes -- cgit v1.2.3 From 981ae74578862ef24d03947eb368d19c9057461e Mon Sep 17 00:00:00 2001 From: Akarys42 Date: Sat, 26 Oct 2019 11:33:14 +0200 Subject: Delete unnecessary search filter --- pydis_site/apps/api/viewsets/bot/offensive_message.py | 4 ---- 1 file changed, 4 deletions(-) (limited to 'pydis_site/apps/api/viewsets/bot') diff --git a/pydis_site/apps/api/viewsets/bot/offensive_message.py b/pydis_site/apps/api/viewsets/bot/offensive_message.py index 380234dd..0ef5666b 100644 --- a/pydis_site/apps/api/viewsets/bot/offensive_message.py +++ b/pydis_site/apps/api/viewsets/bot/offensive_message.py @@ -1,5 +1,3 @@ -from django_filters.rest_framework import DjangoFilterBackend -from rest_framework.filters import SearchFilter from rest_framework.mixins import ( CreateModelMixin, DestroyModelMixin, @@ -62,5 +60,3 @@ class OffensiveMessageViewSet( serializer_class = OffensiveMessageSerializer queryset = OffensiveMessage.objects.all() - filter_backends = (DjangoFilterBackend, SearchFilter) - filter_fields = ('delete_date',) -- cgit v1.2.3 From a33af9d6d356fa416863e487f71aae4ba0977a0f Mon Sep 17 00:00:00 2001 From: Akarys42 Date: Thu, 7 Nov 2019 18:59:47 +0100 Subject: Fix copy pasting mistake --- pydis_site/apps/api/viewsets/bot/offensive_message.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'pydis_site/apps/api/viewsets/bot') diff --git a/pydis_site/apps/api/viewsets/bot/offensive_message.py b/pydis_site/apps/api/viewsets/bot/offensive_message.py index 0ef5666b..371bd8e7 100644 --- a/pydis_site/apps/api/viewsets/bot/offensive_message.py +++ b/pydis_site/apps/api/viewsets/bot/offensive_message.py @@ -14,7 +14,7 @@ class OffensiveMessageViewSet( CreateModelMixin, ListModelMixin, DestroyModelMixin, UpdateModelMixin, GenericViewSet ): """ - View providing CRUD access to reminders. + View providing CRUD access to offensive messages. ## Routes ### GET /bot/offensive-message -- cgit v1.2.3 From edaf17636ac9ccf832136ed54d00f0a5038d9d7b Mon Sep 17 00:00:00 2001 From: Akarys42 Date: Thu, 7 Nov 2019 19:02:19 +0100 Subject: Block PATCH and PUT methods --- pydis_site/apps/api/viewsets/bot/offensive_message.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'pydis_site/apps/api/viewsets/bot') diff --git a/pydis_site/apps/api/viewsets/bot/offensive_message.py b/pydis_site/apps/api/viewsets/bot/offensive_message.py index 371bd8e7..f25c14b4 100644 --- a/pydis_site/apps/api/viewsets/bot/offensive_message.py +++ b/pydis_site/apps/api/viewsets/bot/offensive_message.py @@ -1,8 +1,7 @@ from rest_framework.mixins import ( CreateModelMixin, DestroyModelMixin, - ListModelMixin, - UpdateModelMixin + ListModelMixin ) from rest_framework.viewsets import GenericViewSet @@ -11,7 +10,7 @@ from pydis_site.apps.api.serializers import OffensiveMessageSerializer class OffensiveMessageViewSet( - CreateModelMixin, ListModelMixin, DestroyModelMixin, UpdateModelMixin, GenericViewSet + CreateModelMixin, ListModelMixin, DestroyModelMixin, GenericViewSet ): """ View providing CRUD access to offensive messages. -- cgit v1.2.3 From f3653925b8ddd4ce5d1c81cd9b1dd94cb0b36b53 Mon Sep 17 00:00:00 2001 From: Akarys42 Date: Sat, 14 Dec 2019 11:46:37 +0100 Subject: Rename route /bot/offensive-message to /bot/offensive-messages --- pydis_site/apps/api/urls.py | 2 +- pydis_site/apps/api/viewsets/bot/offensive_message.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'pydis_site/apps/api/viewsets/bot') diff --git a/pydis_site/apps/api/urls.py b/pydis_site/apps/api/urls.py index b1864ba7..4a0281b4 100644 --- a/pydis_site/apps/api/urls.py +++ b/pydis_site/apps/api/urls.py @@ -35,7 +35,7 @@ bot_router.register( NominationViewSet ) bot_router.register( - 'offensive-message', + 'offensive-messages', OffensiveMessageViewSet ) bot_router.register( diff --git a/pydis_site/apps/api/viewsets/bot/offensive_message.py b/pydis_site/apps/api/viewsets/bot/offensive_message.py index f25c14b4..54cb3a38 100644 --- a/pydis_site/apps/api/viewsets/bot/offensive_message.py +++ b/pydis_site/apps/api/viewsets/bot/offensive_message.py @@ -16,7 +16,7 @@ class OffensiveMessageViewSet( View providing CRUD access to offensive messages. ## Routes - ### GET /bot/offensive-message + ### GET /bot/offensive-messages Returns all offensive messages in the database. #### Response format @@ -32,7 +32,7 @@ class OffensiveMessageViewSet( #### Status codes - 200: returned on success - ### POST /bot/offensive-message + ### POST /bot/offensive-messages Create a new offensive message object. #### Request body @@ -46,7 +46,7 @@ class OffensiveMessageViewSet( - 201: returned on success - 400: if the body format is invalid - ### DELETE /bot/offensive-message/ + ### DELETE /bot/offensive-messages/ Delete the offensive message object with the given `id`. #### Status codes -- cgit v1.2.3