aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--api/serializers.py21
-rw-r--r--api/urls.py18
-rw-r--r--api/viewsets.py41
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.