aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/apps/api/viewsets.py
diff options
context:
space:
mode:
authorGravatar Leon Sandøy <[email protected]>2019-04-16 14:16:38 +0200
committerGravatar Leon Sandøy <[email protected]>2019-04-16 14:16:38 +0200
commitda7a5701f1dae277aab4c4947fe7d23fe02987bd (patch)
treef8f8c683664a02a9fd1860c8bb99b6645e74a651 /pydis_site/apps/api/viewsets.py
parentrefactoring slightly to use a class-based view, changing home to main. Ready ... (diff)
parentMerge pull request #207 from python-discord/api/split-models (diff)
merging in changes from the main branch
Diffstat (limited to 'pydis_site/apps/api/viewsets.py')
-rw-r--r--pydis_site/apps/api/viewsets.py57
1 files changed, 45 insertions, 12 deletions
diff --git a/pydis_site/apps/api/viewsets.py b/pydis_site/apps/api/viewsets.py
index 949ffaaa..47915256 100644
--- a/pydis_site/apps/api/viewsets.py
+++ b/pydis_site/apps/api/viewsets.py
@@ -15,22 +15,23 @@ from rest_framework_bulk import BulkCreateModelMixin
from .models import (
BotSetting, DocumentationLink,
- Infraction, MessageDeletionContext,
- Nomination, OffTopicChannelName,
- Reminder, Role,
- SnakeFact, SnakeIdiom,
- SnakeName, SpecialSnake,
- Tag, User
+ Infraction, LogEntry,
+ MessageDeletionContext, Nomination,
+ OffTopicChannelName, Reminder,
+ Role, SnakeFact,
+ SnakeIdiom, SnakeName,
+ SpecialSnake, Tag,
+ User
)
from .serializers import (
BotSettingSerializer, DocumentationLinkSerializer,
ExpandedInfractionSerializer, InfractionSerializer,
- MessageDeletionContextSerializer, NominationSerializer,
- OffTopicChannelNameSerializer, ReminderSerializer,
- RoleSerializer, SnakeFactSerializer,
- SnakeIdiomSerializer, SnakeNameSerializer,
- SpecialSnakeSerializer, TagSerializer,
- UserSerializer
+ LogEntrySerializer, MessageDeletionContextSerializer,
+ NominationSerializer, OffTopicChannelNameSerializer,
+ ReminderSerializer, RoleSerializer,
+ SnakeFactSerializer, SnakeIdiomSerializer,
+ SnakeNameSerializer, SpecialSnakeSerializer,
+ TagSerializer, UserSerializer
)
@@ -280,6 +281,38 @@ class InfractionViewSet(CreateModelMixin, RetrieveModelMixin, ListModelMixin, Ge
return self.partial_update(*args, **kwargs)
+class LogEntryViewSet(CreateModelMixin, GenericViewSet):
+ """
+ View providing support for creating log entries in the site database
+ for viewing via the log browser.
+
+ ## Routes
+ ### POST /logs
+ Create a new log entry.
+
+ #### Request body
+ >>> {
+ ... 'application': str, # 'bot' | 'seasonalbot' | 'site'
+ ... 'logger_name': str, # such as 'bot.cogs.moderation'
+ ... 'timestamp': Optional[str], # from `datetime.utcnow().isoformat()`
+ ... 'level': str, # 'debug' | 'info' | 'warning' | 'error' | 'critical'
+ ... 'module': str, # such as 'pydis_site.apps.api.serializers'
+ ... 'line': int, # > 0
+ ... 'message': str, # textual formatted content of the logline
+ ... }
+
+ #### Status codes
+ - 201: returned on success
+ - 400: if the request body has invalid fields, see the response for details
+
+ ## Authentication
+ Requires a API token.
+ """
+
+ queryset = LogEntry.objects.all()
+ serializer_class = LogEntrySerializer
+
+
class OffTopicChannelNameViewSet(DestroyModelMixin, ViewSet):
"""
View of off-topic channel names used by the bot