diff --git a/wtnt/user/auth/service.py b/wtnt/user/auth/service.py index 45369ec..4585e97 100644 --- a/wtnt/user/auth/service.py +++ b/wtnt/user/auth/service.py @@ -14,6 +14,13 @@ class AuthService(BaseService): + def get_user(self): + user_id = self.request.user.id + user = User.objects.get(pk=user_id) + serializer = UserSerializer(user) + + return serializer.data + def determine_callback_url(self): is_web = self.request.META.get("HTTP_X_FROM", None) is_debug = self.request.META.get("HTTP_X_DEBUG", None) diff --git a/wtnt/user/auth/urls.py b/wtnt/user/auth/urls.py index a2120cf..1289480 100644 --- a/wtnt/user/auth/urls.py +++ b/wtnt/user/auth/urls.py @@ -6,6 +6,7 @@ FinishGithubLoginView, WtntTokenRefreshView, EmailVerifyView, + GetUserDataByJWT, ) urlpatterns = [ @@ -15,4 +16,5 @@ path("logout", LogoutView.as_view(), name="logout"), path("token/refresh", WtntTokenRefreshView.as_view(), name="token-refresh"), path("email", EmailVerifyView.as_view(), name="verify-email"), + path("get-user", GetUserDataByJWT.as_view(), name="get-user"), ] diff --git a/wtnt/user/auth/views.py b/wtnt/user/auth/views.py index 358529f..035e5ba 100644 --- a/wtnt/user/auth/views.py +++ b/wtnt/user/auth/views.py @@ -95,6 +95,14 @@ def post(self, request): return Response({"user": data}, status=status.HTTP_201_CREATED) +class GetUserDataByJWT(APIView): + def get(self, request): + auth_service = AuthService(request) + data = auth_service.get_user() + + return Response({"user": data}, status=status.HTTP_200_OK) + + class WtntTokenRefreshView(TokenRefreshView): def post(self, request: Request, *args, **kwargs): refresh_service = RefreshService(request)