Commit 230799c6 authored by Ilham Maulana's avatar Ilham Maulana 💻

fix: user profile update endpoint

parent 77f68fcb
......@@ -11,7 +11,6 @@ class UserSerializer(serializers.ModelSerializer):
"id",
"username",
"email",
"password",
"first_name",
"last_name",
"is_staff",
......@@ -19,10 +18,8 @@ class UserSerializer(serializers.ModelSerializer):
extra_kwargs = {"password": {"write_only": True}}
def update(self, instance, validated_data):
partial = self.context.get("is_partial", False)
return serializers.ModelSerializer.update(
self, instance, validated_data, partial=partial
)
partial = validated_data.get("is_partial", False)
return serializers.ModelSerializer.update(self, instance, validated_data)
class LoginHistorySerializer(serializers.ModelSerializer):
......
......@@ -19,6 +19,8 @@ from .serializers import (
Member,
MemberSerializer,
TokenSerializer,
User,
UserSerializer,
)
from .permissions import IsStaffUser, IsNotStaffUser
......@@ -284,3 +286,15 @@ class ResetPasswordConfirmView(views.APIView):
{"message": "Reset password success"},
status=status.HTTP_200_OK,
)
class UserViewSet(viewsets.ModelViewSet):
serializer_class = UserSerializer
queryset = User.objects.all().order_by("id")
def update(self, request, pk):
instance = self.get_object()
serializer = self.get_serializer(instance, data=request.data)
serializer.is_valid(raise_exception=True)
serializer.save()
return Response(serializer.data, status=status.HTTP_200_OK)
......@@ -14,6 +14,7 @@ from .auth.views import (
TokenResetPasswordView,
ResetPasswordConfirmView,
UserDetailView,
UserViewSet,
)
from .book.views import BookViewSet, CategoryViewSet
from .loans.views import (
......@@ -25,6 +26,7 @@ from .loans.views import (
router = routers.DefaultRouter()
router.register(r"user", UserViewSet, basename="user")
router.register(r"librarians", LibrarianViewSet, basename="librarians")
router.register(r"members", MemberViewSet, basename="members")
router.register(r"books", BookViewSet, basename="books")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment