Skip to content

Commit 785c39d

Browse files
committed
feat: Implement CreateTokenView
1 parent 475fb93 commit 785c39d

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

app/user/views.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,3 +99,25 @@ def create(self, request, *args, **kwargs):
9999
serializer.save()
100100
return Response({"message": "Your password has been updated."}, status.HTTP_200_OK)
101101

102+
103+
104+
class CreateTokenView(ObtainAuthToken):
105+
"""Create a new auth token for user"""
106+
107+
serializer_class = AuthTokenSerializer
108+
renderer_classes = api_settings.DEFAULT_RENDERER_CLASSES
109+
110+
def post(self, request, *args, **kwargs):
111+
serializer = self.serializer_class(
112+
data=request.data, context={"request": request}
113+
)
114+
serializer.is_valid(raise_exception=True)
115+
user = serializer.validated_data["user"]
116+
try:
117+
token, created = Token.objects.get_or_create(user=user)
118+
return Response(
119+
{"token": token.key, "created": created, "roles": user.roles},
120+
status=status.HTTP_200_OK,
121+
)
122+
except Exception as e:
123+
return Response({"message": str(e)}, 500)

0 commit comments

Comments
 (0)