diff options
-rw-r--r-- | api/serializers.py | 21 | ||||
-rw-r--r-- | api/urls.py | 18 | ||||
-rw-r--r-- | api/viewsets.py | 41 |
3 files changed, 51 insertions, 29 deletions
diff --git a/api/serializers.py b/api/serializers.py index 97c4a60c..9a92313a 100644 --- a/api/serializers.py +++ b/api/serializers.py @@ -3,16 +3,23 @@ from rest_framework.validators import UniqueValidator from rest_framework_bulk import BulkSerializerMixin from .models import ( - DeletedMessage, DocumentationLink, - Infraction, MessageDeletionContext, - Nomination, OffTopicChannelName, - Reminder, Role, - SnakeFact, SnakeIdiom, - SnakeName, SpecialSnake, - Tag, User + BotSetting, DeletedMessage, + DocumentationLink, Infraction, + MessageDeletionContext, Nomination, + OffTopicChannelName, Reminder, + Role, SnakeFact, + SnakeIdiom, SnakeName, + SpecialSnake, Tag, + User ) +class BotSettingSerializer(ModelSerializer): + class Meta: + model = BotSetting + fields = ('name', 'data') + + class DeletedMessageSerializer(ModelSerializer): author = PrimaryKeyRelatedField( queryset=User.objects.all() diff --git a/api/urls.py b/api/urls.py index 5db89e67..6c89a52e 100644 --- a/api/urls.py +++ b/api/urls.py @@ -3,19 +3,23 @@ from rest_framework.routers import DefaultRouter from .views import HealthcheckView, RulesView from .viewsets import ( - DeletedMessageViewSet, DocumentationLinkViewSet, - InfractionViewSet, NominationViewSet, - OffTopicChannelNameViewSet, ReminderViewSet, - RoleViewSet, SnakeFactViewSet, - SnakeIdiomViewSet, SnakeNameViewSet, - SpecialSnakeViewSet, TagViewSet, - UserViewSet + BotSettingViewSet, DeletedMessageViewSet, + DocumentationLinkViewSet, InfractionViewSet, + NominationViewSet, OffTopicChannelNameViewSet, + ReminderViewSet, RoleViewSet, + SnakeFactViewSet, SnakeIdiomViewSet, + SnakeNameViewSet, SpecialSnakeViewSet, + TagViewSet, UserViewSet ) # http://www.django-rest-framework.org/api-guide/routers/#defaultrouter bot_router = DefaultRouter(trailing_slash=False) bot_router.register( + 'bot-settings', + BotSettingViewSet +) +bot_router.register( 'deleted-messages', DeletedMessageViewSet ) diff --git a/api/viewsets.py b/api/viewsets.py index d17d1590..61e93058 100644 --- a/api/viewsets.py +++ b/api/viewsets.py @@ -5,7 +5,8 @@ from rest_framework.exceptions import ParseError, ValidationError from rest_framework.filters import SearchFilter from rest_framework.mixins import ( CreateModelMixin, DestroyModelMixin, - ListModelMixin, RetrieveModelMixin + ListModelMixin, RetrieveModelMixin, + UpdateModelMixin ) from rest_framework.response import Response from rest_framework.status import HTTP_201_CREATED @@ -13,25 +14,35 @@ from rest_framework.viewsets import GenericViewSet, ModelViewSet, ViewSet from rest_framework_bulk import BulkCreateModelMixin from .models import ( - DocumentationLink, Infraction, - MessageDeletionContext, Nomination, - OffTopicChannelName, Reminder, - Role, SnakeFact, - SnakeIdiom, SnakeName, - SpecialSnake, Tag, - User + BotSetting, DocumentationLink, + Infraction, MessageDeletionContext, + Nomination, OffTopicChannelName, + Reminder, Role, + SnakeFact, SnakeIdiom, + SnakeName, SpecialSnake, + Tag, User ) from .serializers import ( - DocumentationLinkSerializer, ExpandedInfractionSerializer, - InfractionSerializer, MessageDeletionContextSerializer, - NominationSerializer, OffTopicChannelNameSerializer, - ReminderSerializer, RoleSerializer, - SnakeFactSerializer, SnakeIdiomSerializer, - SnakeNameSerializer, SpecialSnakeSerializer, - TagSerializer, UserSerializer + BotSettingSerializer, DocumentationLinkSerializer, + ExpandedInfractionSerializer, InfractionSerializer, + MessageDeletionContextSerializer, NominationSerializer, + OffTopicChannelNameSerializer, ReminderSerializer, + RoleSerializer, SnakeFactSerializer, + SnakeIdiomSerializer, SnakeNameSerializer, + SpecialSnakeSerializer, TagSerializer, + UserSerializer ) +class BotSettingViewSet(UpdateModelMixin, GenericViewSet): + """ + View providing update operations on bot setting routes. + """ + + serializer_class = BotSettingSerializer + queryset = BotSetting.objects.all() + + class DeletedMessageViewSet(CreateModelMixin, GenericViewSet): """ View providing support for posting bulk deletion logs generated by the bot. |