diff options
| author | 2019-02-18 20:43:01 +0100 | |
|---|---|---|
| committer | 2019-02-18 20:43:01 +0100 | |
| commit | 35d48ad86c8e714579b3006bcca630fb374bd709 (patch) | |
| tree | 962b79fdba5dfcf451ef3d0b6a67e76cf4140bb7 | |
| parent | Create a data migration for the `defcon` settings. (diff) | |
Add a new endpoint for updating bot settings.
Diffstat (limited to '')
| -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. | 
