diff options
| -rw-r--r-- | pydis_site/apps/api/serializers.py | 21 | ||||
| -rw-r--r-- | pydis_site/apps/api/urls.py | 12 | ||||
| -rw-r--r-- | pydis_site/apps/api/viewsets.py | 31 | 
3 files changed, 41 insertions, 23 deletions
| diff --git a/pydis_site/apps/api/serializers.py b/pydis_site/apps/api/serializers.py index 9a92313a..2b0a687f 100644 --- a/pydis_site/apps/api/serializers.py +++ b/pydis_site/apps/api/serializers.py @@ -5,12 +5,12 @@ from rest_framework_bulk import BulkSerializerMixin  from .models import (      BotSetting, DeletedMessage,      DocumentationLink, Infraction, -    MessageDeletionContext, Nomination, -    OffTopicChannelName, Reminder, -    Role, SnakeFact, -    SnakeIdiom, SnakeName, -    SpecialSnake, Tag, -    User +    LogEntry, MessageDeletionContext, +    Nomination, OffTopicChannelName, +    Reminder, Role, +    SnakeFact, SnakeIdiom, +    SnakeName, SpecialSnake, +    Tag, User  ) @@ -102,6 +102,15 @@ class ExpandedInfractionSerializer(InfractionSerializer):          return ret +class LogEntrySerializer(ModelSerializer): +    class Meta: +        model = LogEntry +        fields = ( +            'application', 'logger_name', 'timestamp', +            'level', 'module', 'line' +        ) + +  class OffTopicChannelNameSerializer(ModelSerializer):      class Meta:          model = OffTopicChannelName diff --git a/pydis_site/apps/api/urls.py b/pydis_site/apps/api/urls.py index 6c89a52e..724d7e2b 100644 --- a/pydis_site/apps/api/urls.py +++ b/pydis_site/apps/api/urls.py @@ -5,11 +5,12 @@ from .views import HealthcheckView, RulesView  from .viewsets import (      BotSettingViewSet, DeletedMessageViewSet,      DocumentationLinkViewSet, InfractionViewSet, -    NominationViewSet, OffTopicChannelNameViewSet, -    ReminderViewSet, RoleViewSet, -    SnakeFactViewSet, SnakeIdiomViewSet, -    SnakeNameViewSet, SpecialSnakeViewSet, -    TagViewSet, UserViewSet +    LogEntryViewSet, NominationViewSet, +    OffTopicChannelNameViewSet, ReminderViewSet, +    RoleViewSet, SnakeFactViewSet, +    SnakeIdiomViewSet, SnakeNameViewSet, +    SpecialSnakeViewSet, TagViewSet, +    UserViewSet  ) @@ -81,6 +82,7 @@ urlpatterns = (      # from django_hosts.resolvers import reverse      # snake_name_endpoint = reverse('bot:snakename-list', host='api')  # `bot/` endpoints      path('bot/', include((bot_router.urls, 'api'), namespace='bot')), +    path('logs', LogEntryViewSet.as_view({'post': 'create'}), name='logs'),      path('healthcheck', HealthcheckView.as_view(), name='healthcheck'),      path('rules', RulesView.as_view(), name='rules')  ) diff --git a/pydis_site/apps/api/viewsets.py b/pydis_site/apps/api/viewsets.py index 949ffaaa..b97f19b6 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,12 @@ class InfractionViewSet(CreateModelMixin, RetrieveModelMixin, ListModelMixin, Ge          return self.partial_update(*args, **kwargs) +class LogEntryViewSet(CreateModelMixin, GenericViewSet): +    # TODO: doc me foobar baz boom bang crow caw caw caw +    queryset = LogEntry.objects.all() +    serializer_class = LogEntrySerializer + +  class OffTopicChannelNameViewSet(DestroyModelMixin, ViewSet):      """      View of off-topic channel names used by the bot | 
