add profile info view

This commit is contained in:
TUTOR03 2020-11-29 04:49:16 +05:00
parent b068359e58
commit a297597dc4
3 changed files with 21 additions and 6 deletions

View File

@ -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()

View File

@ -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/<uidb64>/<token>', views.UserActivationAPIView, name = 'UserActivation'),
path('reset_password_request', views.UserResetPasswordRequestAPIView, name = 'UserResetPasswordRequest'),
path('reset_password/<uidb64>/<token>', views.UserResetPasswordAPIView, name = 'UserResetPassword'),

View File

@ -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):