def user_register(request): with transaction.atomic(): serializer = CustomUserSerializer(data=request.data) serializer.is_valid(raise_exception=True) user = serializer.save() Account.generate(user) return Response(status=status.HTTP_201_CREATED)
def patch(self, request): profile = self.get_object(pk=request.user.id) serializer = CustomUserSerializer(profile, request.data, partial=True) if serializer.is_valid(): serializer.save() return Response(serializer.data, status.HTTP_200_OK) return Response(serializer.errors, status.HTTP_400_BAD_REQUEST)
def user_detail(request, pk): try: user = CustomUser.objects.get(pk=pk) # find a single user with an id if request.method == 'GET': user_serializer = CustomUserSerializer(user) return JsonResponse(user_serializer.data) # update a user by the id in the request elif request.method == 'PUT': user_data = JSONParser().parse(request) user_serializer = CustomUserSerializer(user, data=user_data) if user_serializer.is_valid(): user_serializer.save() return JsonResponse(user_serializer.data) return JsonResponse(user_serializer.errors, status=status.HTTP_400_BAD_REQUEST) # delete a user with the specified id elif request.method == 'DELETE': user.delete() return JsonResponse({'message': 'User was deleted successfully!'}, status=status.HTTP_204_NO_CONTENT) except CustomUser.DoesNotExist: return JsonResponse({'message': 'The user does not exist'}, status=status.HTTP_404_NOT_FOUND)
def user_list(request): # retrieve all users/find by username from MongoDB database if request.method == 'GET': users = CustomUser.objects.all() username = request.GET.get('username', None) if username is not None: users = users.filter(username__icontains=username) users_serializer = CustomUserSerializer(users, many=True) # safe = False for objects serialization return JsonResponse(users_serializer.data, safe=False) # create and save a new user elif request.method == 'POST': user_data = JSONParser().parse(request) user_serializer = CustomUserSerializer(data=user_data) if user_serializer.is_valid(): user_serializer.save() return JsonResponse(user_serializer.data, status=status.HTTP_201_CREATED) return JsonResponse(user_serializer.errors, status=status.HTTP_400_BAD_REQUEST) # delete all users from the database elif request.method == 'DELETE': count = CustomUser.objects.all().delete() return JsonResponse({'message': '{} User were deleted successfully!'.format(count[0])}, status=status.HTTP_204_NO_CONTENT)
def post(self, request, format='json'): serializer = CustomUserSerializer(data=request.data) if serializer.is_valid(): user = serializer.save() if user: json = serializer.data return Response(json, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request): serializer = CustomUserSerializer(data=request.data) current_user = request.user if not request.data: return Response({"error": "Missing message body in request"}, status=status.HTTP_400_BAD_REQUEST) if serializer.is_valid(): serializer.update(current_user) return Response({'success': 'User profile updated successfully!'}, status=status.HTTP_200_OK) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def test_creates_a_user(self): data = {"email": "*****@*****.**", "password": "******"} user_count = len(get_user_model().objects.exclude(email=settings.ANONYMOUS_USER_NAME)) self.assertEqual(user_count, 0) serializer = CustomUserSerializer(data=data) self.assertTrue(serializer.is_valid()) serializer.save() user_count = len(get_user_model().objects.exclude(email=settings.ANONYMOUS_USER_NAME)) self.assertEqual(user_count, 1) user = get_user_model().objects.exclude(email=settings.ANONYMOUS_USER_NAME).first() self.assertEqual("*****@*****.**", user.email)
def post(self, request, format='json'): serializer = CustomUserSerializer(data=request.data) if serializer.is_valid(): try: user = serializer.save() except Exception as e: if 'username' in str(e): msg = 'username already taken' elif 'email' in str(e): msg = 'email already taken' return Response({"msg": str(msg)}, status=status.HTTP_400_BAD_REQUEST) if user: json = serializer.data return Response(json, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)