Skip to content

Commit a899cd9

Browse files
committed
feat: refactor views to use DRF status codes, consistent responses, and serializer validation
1 parent 6e8a620 commit a899cd9

File tree

1 file changed

+28
-49
lines changed
  • django-postgres/django_postgres/application

1 file changed

+28
-49
lines changed
Lines changed: 28 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,43 @@
1-
from django.shortcuts import render
2-
from .models import User
31
from rest_framework.response import Response
42
from rest_framework.decorators import api_view
3+
from rest_framework import status
4+
from .models import User
55
from .serializers import UserSerializer
6-
from uuid import uuid4
7-
from django.http import JsonResponse
8-
import json
9-
106

117
@api_view(["GET", "PUT", "DELETE"])
12-
def get_update_deleteUser(request, uuid: uuid4):
8+
def get_update_deleteUser(request, uuid):
9+
try:
10+
user = User.objects.get(id=uuid)
11+
except User.DoesNotExist:
12+
return Response({"message": "User not found"}, status=status.HTTP_404_NOT_FOUND)
1313

1414
if request.method == "GET":
15-
try:
16-
data = UserSerializer(User.objects.get(id=uuid)).data
17-
return Response(data)
18-
except Exception as e:
19-
return Response({"message": str(e)})
20-
15+
data = UserSerializer(user).data
16+
return Response(data)
17+
2118
if request.method == "PUT":
22-
try:
23-
user = User.objects.get(id=uuid)
24-
25-
user.name=request.data['name']
26-
user.email=request.data['email']
27-
user.password=request.data['password']
28-
user.website=request.data['website']
29-
user.save()
19+
serializer = UserSerializer(user, data=request.data)
20+
if serializer.is_valid():
21+
serializer.save()
22+
return Response({"message": "User Updated!!"})
23+
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
3024

31-
return JsonResponse({"message": "User Updated!!"})
32-
except Exception as e:
33-
return JsonResponse({"message": str(e)[2:-2]})
34-
3525
if request.method == "DELETE":
36-
try:
37-
User.objects.get(id=uuid).delete()
38-
return JsonResponse({"message": "User Deleted!!"})
39-
except Exception as e:
40-
return JsonResponse({"message": str(e)[2:-2]})
41-
26+
user.delete()
27+
return Response({"message": "User Deleted!!"}, status=status.HTTP_204_NO_CONTENT)
4228

4329
@api_view(["GET", "POST"])
4430
def getAll_createUser(request):
45-
4631
if request.method == "GET":
47-
try:
48-
data = UserSerializer(User.objects.all(), many=True)
49-
if data.data == []:
50-
return JsonResponse({"message": "No Users Found!!"})
51-
return Response(data.data)
52-
except Exception as e:
53-
return JsonResponse({"message": str(e)})
54-
32+
users = User.objects.all()
33+
data = UserSerializer(users, many=True).data
34+
if not data:
35+
return Response({"message": "No Users Found!!"})
36+
return Response(data)
37+
5538
if request.method == "POST":
56-
try:
57-
new_user = User.objects.create(name=request.data['name'],
58-
email=request.data['email'],
59-
password=request.data['password'],
60-
website=request.data['website'])
61-
data = UserSerializer(new_user)
62-
return JsonResponse({"message": "User Created!!"})
63-
except Exception as e:
64-
return JsonResponse({"message": str(e)})
39+
serializer = UserSerializer(data=request.data)
40+
if serializer.is_valid():
41+
serializer.save()
42+
return Response({"message": "User Created!!"}, status=status.HTTP_201_CREATED)
43+
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

0 commit comments

Comments
 (0)