diff --git a/backend/back/serializers.py b/backend/back/serializers.py index c36bc79..4f519b8 100644 --- a/backend/back/serializers.py +++ b/backend/back/serializers.py @@ -1,6 +1,6 @@ from rest_framework import serializers from django.contrib.auth.models import User -from .models import Game, Team, Gamer, CheckPoint +from .models import Game, Team, Gamer, CheckPoint, Profile class GameListSerializer(serializers.ModelSerializer): class Meta: @@ -17,6 +17,17 @@ class UserRegisterSerializer(serializers.ModelSerializer): 'email' ] +class ProfileInfoSerializer(serializers.ModelSerializer): + username = serializers.SerializerMethodField() + class Meta: + model = Profile + fields = [ + 'points', + 'username' + ] + def get_username(self, obj): + return obj.user.username + class CheckPointCoordinatesSerializer(serializers.ModelSerializer): class Meta: model = CheckPoint @@ -36,10 +47,6 @@ class CurrentCheckPointSerializer(serializers.ModelSerializer): 'description', 'address', ] - # def get_done_check_points(self, obj): - - # return(CheckPointCoordinatesSerializer(obj).data) - class TeamSerializer(serializers.ModelSerializer): game = serializers.SerializerMethodField() diff --git a/backend/back/urls.py b/backend/back/urls.py index 5245096..7bafbd5 100644 --- a/backend/back/urls.py +++ b/backend/back/urls.py @@ -12,6 +12,7 @@ urlpatterns = [ path('register', views.UserRegisterAPIView, name = 'UserRegister'), path('login', obtain_auth_token, name = 'UserLogin'), path('logout', views.UserLogoutAPIView, name = 'UserLogout'), + path('profile', views.ProfileInfoAPIView, name = 'ProfileInfo'), path('activate//', views.UserActivationAPIView, name = 'UserActivation'), path('reset_password_request', views.UserResetPasswordRequestAPIView, name = 'UserResetPasswordRequest'), path('reset_password//', views.UserResetPasswordAPIView, name = 'UserResetPassword'), diff --git a/backend/back/views.py b/backend/back/views.py index 2a34e5a..44f4e38 100644 --- a/backend/back/views.py +++ b/backend/back/views.py @@ -10,7 +10,7 @@ from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode from django.template.loader import render_to_string from django.contrib.auth.tokens import PasswordResetTokenGenerator from django.core.mail import EmailMultiAlternatives -from .serializers import UserRegisterSerializer, UserResetPasswordSerializer, UserPasswordSerializer, GameListSerializer, TeamSerializer, CurrentCheckPointSerializer, CheckPointCoordinatesSerializer +from .serializers import UserRegisterSerializer, UserResetPasswordSerializer, UserPasswordSerializer, GameListSerializer, TeamSerializer, CurrentCheckPointSerializer, CheckPointCoordinatesSerializer, ProfileInfoSerializer from django.utils.html import strip_tags from django.contrib.auth.password_validation import validate_password from django_filters.rest_framework import DjangoFilterBackend @@ -299,6 +299,13 @@ def UserResetPasswordAPIView(request, uidb64, token): return Response({'ok':False, 'error':'User does not exist'}, status = status.HTTP_400_BAD_REQUEST) return Response({'ok':False, 'error':serializer.errors}, status = status.HTTP_400_BAD_REQUEST) +@api_view(['GET']) +@permission_classes([permissions.IsAuthenticated]) +def ProfileInfoAPIView(request): + profile = Profile.objects.get(user = request.user) + serializer = ProfileInfoSerializer(profile) + return Response({'ok':True, **serializer.data}, status = status.HTTP_200_OK) + @api_view(['POST']) @permission_classes([permissions.IsAuthenticated]) def UserLogoutAPIView(request):