aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/apps/api/viewsets
diff options
context:
space:
mode:
authorGravatar Johannes Christ <[email protected]>2022-01-30 15:34:04 +0100
committerGravatar Johannes Christ <[email protected]>2022-02-13 16:19:47 +0100
commit6c9fb075dc52d5674f90698cb74138712f7d99e1 (patch)
tree456d5937fa4dda15adf121c5446dde6e38180629 /pydis_site/apps/api/viewsets
parentUpdate Exercism Resource (#658) (diff)
Allow searching users by username and discriminator
A test case is added to demonstrate this functionality. Closes #578. Co-authored-by: Boris Muratov <[email protected]>
Diffstat (limited to 'pydis_site/apps/api/viewsets')
-rw-r--r--pydis_site/apps/api/viewsets/bot/user.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/pydis_site/apps/api/viewsets/bot/user.py b/pydis_site/apps/api/viewsets/bot/user.py
index a867a80f..3318b2b9 100644
--- a/pydis_site/apps/api/viewsets/bot/user.py
+++ b/pydis_site/apps/api/viewsets/bot/user.py
@@ -2,6 +2,7 @@ import typing
from collections import OrderedDict
from django.db.models import Q
+from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import status
from rest_framework.decorators import action
from rest_framework.pagination import PageNumberPagination
@@ -77,6 +78,8 @@ class UserViewSet(ModelViewSet):
... }
#### Optional Query Parameters
+ - username: username to search for
+ - discriminator: discriminator to search for
- page_size: number of Users in one page, defaults to 10,000
- page: page number
@@ -233,6 +236,8 @@ class UserViewSet(ModelViewSet):
serializer_class = UserSerializer
queryset = User.objects.all().order_by("id")
pagination_class = UserListPagination
+ filter_backends = (DjangoFilterBackend,)
+ filter_fields = ('name', 'discriminator')
def get_serializer(self, *args, **kwargs) -> ModelSerializer:
"""Set Serializer many attribute to True if request body contains a list."""