Skip to content

Commit

Permalink
✨ [maykinmedia/archiefbeheercomponent#340] Add endpoint to retrieve r…
Browse files Browse the repository at this point in the history
…eviewers
  • Loading branch information
SilviaAmAm committed May 1, 2024
1 parent 3a03026 commit e0e4660
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 0 deletions.
Empty file.
22 changes: 22 additions & 0 deletions backend/src/openarchiefbeheer/accounts/api/serializers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from rest_framework import serializers

from ..models import Role, User


class RoleSerializer(serializers.ModelSerializer):
class Meta:
model = Role
fields = (
"name",
"can_start_destruction",
"can_review_destruction",
"can_view_case_details",
)


class UserSerializer(serializers.ModelSerializer):
role = RoleSerializer()

class Meta:
model = User
fields = ("username", "first_name", "last_name", "email", "role")
25 changes: 25 additions & 0 deletions backend/src/openarchiefbeheer/accounts/api/views.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from django.db.models import QuerySet
from django.utils.translation import gettext_lazy as _

from drf_spectacular.utils import extend_schema
from rest_framework.generics import ListAPIView

from openarchiefbeheer.accounts.models import User

from .serializers import UserSerializer


@extend_schema(
summary=_("Reviewers list"),
description=_(
"List all the users that have the permission to review destruction lists."
),
responses={
200: UserSerializer(many=True),
},
)
class ReviewersView(ListAPIView):
serializer_class = UserSerializer

def get_queryset(self) -> QuerySet[User]:
return User.objects.filter(role__can_review_destruction=True)
3 changes: 3 additions & 0 deletions backend/src/openarchiefbeheer/api/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
SpectacularRedocView,
)

from openarchiefbeheer.accounts.api.views import ReviewersView

app_name = "api"

urlpatterns = [
Expand Down Expand Up @@ -35,4 +37,5 @@
"openarchiefbeheer.api.authentication.urls", namespace="authentication"
),
),
path("v1/reviewers/", ReviewersView.as_view(), name="reviewers"),
]

0 comments on commit e0e4660

Please sign in to comment.