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 rest_framework import serializers
from django.contrib.auth.models import User 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 GameListSerializer(serializers.ModelSerializer):
class Meta: class Meta:
@ -17,6 +17,17 @@ class UserRegisterSerializer(serializers.ModelSerializer):
'email' '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 CheckPointCoordinatesSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = CheckPoint model = CheckPoint
@ -36,10 +47,6 @@ class CurrentCheckPointSerializer(serializers.ModelSerializer):
'description', 'description',
'address', 'address',
] ]
# def get_done_check_points(self, obj):
# return(CheckPointCoordinatesSerializer(obj).data)
class TeamSerializer(serializers.ModelSerializer): class TeamSerializer(serializers.ModelSerializer):
game = serializers.SerializerMethodField() game = serializers.SerializerMethodField()

View File

@ -12,6 +12,7 @@ urlpatterns = [
path('register', views.UserRegisterAPIView, name = 'UserRegister'), path('register', views.UserRegisterAPIView, name = 'UserRegister'),
path('login', obtain_auth_token, name = 'UserLogin'), path('login', obtain_auth_token, name = 'UserLogin'),
path('logout', views.UserLogoutAPIView, name = 'UserLogout'), path('logout', views.UserLogoutAPIView, name = 'UserLogout'),
path('profile', views.ProfileInfoAPIView, name = 'ProfileInfo'),
path('activate/<uidb64>/<token>', views.UserActivationAPIView, name = 'UserActivation'), path('activate/<uidb64>/<token>', views.UserActivationAPIView, name = 'UserActivation'),
path('reset_password_request', views.UserResetPasswordRequestAPIView, name = 'UserResetPasswordRequest'), path('reset_password_request', views.UserResetPasswordRequestAPIView, name = 'UserResetPasswordRequest'),
path('reset_password/<uidb64>/<token>', views.UserResetPasswordAPIView, name = 'UserResetPassword'), 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.template.loader import render_to_string
from django.contrib.auth.tokens import PasswordResetTokenGenerator from django.contrib.auth.tokens import PasswordResetTokenGenerator
from django.core.mail import EmailMultiAlternatives 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.utils.html import strip_tags
from django.contrib.auth.password_validation import validate_password from django.contrib.auth.password_validation import validate_password
from django_filters.rest_framework import DjangoFilterBackend 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':'User does not exist'}, status = status.HTTP_400_BAD_REQUEST)
return Response({'ok':False, 'error':serializer.errors}, 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']) @api_view(['POST'])
@permission_classes([permissions.IsAuthenticated]) @permission_classes([permissions.IsAuthenticated])
def UserLogoutAPIView(request): def UserLogoutAPIView(request):