clean responses messages; create doc
This commit is contained in:
@@ -6,6 +6,7 @@ from rest_framework.response import Response
|
||||
from rest_framework.viewsets import ModelViewSet, ReadOnlyModelViewSet
|
||||
from rest_framework import status
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
from django.core.exceptions import PermissionDenied
|
||||
|
||||
from authentication.models import User
|
||||
from authentication.serializers import (UserSerializer,
|
||||
@@ -18,29 +19,22 @@ class UserCreateView(APIView):
|
||||
"""
|
||||
Allow user registration for anyone
|
||||
"""
|
||||
|
||||
#TODELETE : for testing purpose
|
||||
def get(self, request, *args, **kwargs):
|
||||
user = User.objects.all()
|
||||
serializer = UserSerializer(user, many=True)
|
||||
return Response(serializer.data)
|
||||
|
||||
def post(self, request):
|
||||
"""
|
||||
User subscription
|
||||
Args:
|
||||
Creates a new user
|
||||
Requires :
|
||||
username->str, email->str, password->str, password2->str, age->int,
|
||||
can_be_contacted->bool, can_data_be_shared->bool
|
||||
"""
|
||||
serializer = UserRegisterSerializer(data=request.data)
|
||||
if serializer.is_valid(raise_exception=True):
|
||||
serializer.save()
|
||||
response = {
|
||||
"message": "User created successfully",
|
||||
"detail": "User created successfully",
|
||||
"data": serializer.data
|
||||
}
|
||||
return Response(data=response,
|
||||
status=status.HTTP_201_CREATED)
|
||||
return Response(serializer.errors,
|
||||
status=status.HTTP_400_BAD_REQUEST)
|
||||
return Response(data=response, status=status.HTTP_201_CREATED)
|
||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
|
||||
class PasswordUpdateView(APIView):
|
||||
@@ -56,10 +50,11 @@ class PasswordUpdateView(APIView):
|
||||
user.set_password(serializer.data.get('new_password'))
|
||||
user.save()
|
||||
update_session_auth_hash(request, user)
|
||||
return Response(serializer.errors,
|
||||
status=status.HTTP_204_NO_CONTENT)
|
||||
return Response(serializer.errors,
|
||||
status=status.HTTP_400_BAD_REQUEST)
|
||||
response = {
|
||||
"detail": "Password updated successfully."
|
||||
}
|
||||
return Response(response, status=status.HTTP_204_NO_CONTENT)
|
||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
class UserView(APIView):
|
||||
permission_classes = [IsAuthenticated]
|
||||
@@ -67,16 +62,18 @@ class UserView(APIView):
|
||||
def get(self, request, *args, **kwargs):
|
||||
return Response(UserSerializer(request.user).data)
|
||||
|
||||
def put(self, request):
|
||||
def patch(self, request):
|
||||
user = request.user
|
||||
serializer = UserUpdateSerializer(user, data=request.data)
|
||||
print(serializer.initial_data)
|
||||
if serializer.is_valid():
|
||||
serializer.save()
|
||||
return Response("Data updated",
|
||||
status=status.HTTP_201_CREATED)
|
||||
return Response("Error",
|
||||
status=status.HTTP_400_BAD_REQUEST)
|
||||
response = {
|
||||
"detail": "Data updated",
|
||||
"data": serializer.data
|
||||
}
|
||||
return Response(response, status=status.HTTP_201_CREATED)
|
||||
response = {"detail": "Data error"}
|
||||
return Response(response, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
def delete(self, request):
|
||||
user = request.user
|
||||
@@ -84,13 +81,9 @@ class UserView(APIView):
|
||||
if 'user' in request.data:
|
||||
if username == request.data['user']:
|
||||
user.delete()
|
||||
return Response(f"User {username} deleted.",
|
||||
status=status.HTTP_204_NO_CONTENT)
|
||||
return Response("Token's owner and user provided don't match",
|
||||
status=status.HTTP_400_BAD_REQUEST)
|
||||
return Response("Username to delete must be given in data",
|
||||
status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
|
||||
|
||||
response = {"detail": f"User {username} deleted."}
|
||||
return Response(response, status=status.HTTP_204_NO_CONTENT)
|
||||
raise PermissionDenied()
|
||||
response = {"detail": "Username to delete must be given in data"}
|
||||
return Response(response, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user