Skip to content

Commit 1234742

Browse files
committed
refactor: deleted legacy code and made piggies creation both ways
1 parent 22445c7 commit 1234742

File tree

1 file changed

+12
-42
lines changed

1 file changed

+12
-42
lines changed

piggies/views.py

+12-42
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,17 @@
44
from django.contrib.auth import get_user_model
55

66
from authentication.decorators import cognito_authenticated
7+
from authentication.utils import get_user_id_from_token
78

89
from .models import Piggies
910
from .serializers import PiggiesSerializer
1011

1112

1213
class PiggiesViewSet(viewsets.ViewSet):
13-
def get_user_id_from_token(self, request):
14-
try:
15-
authorization_header = request.headers.get("Authorization")
16-
if not authorization_header:
17-
raise Exception("Authorization header not found")
18-
19-
token = authorization_header.split()[1]
20-
decoded_token = jwt.decode(token, options={"verify_signature": False})
21-
username = decoded_token.get("username")
22-
if not username:
23-
raise Exception("User ID not found in token")
24-
return username
25-
except jwt.DecodeError:
26-
raise Exception("Invalid token")
27-
except jwt.ExpiredSignatureError:
28-
raise Exception("Expired token")
29-
except Exception as e:
30-
raise Exception(f"Error decoding token: {e}")
31-
3214
@cognito_authenticated
3315
def list(self, request):
3416
try:
35-
username = self.get_user_id_from_token(request)
17+
username = get_user_id_from_token(request)
3618
User = get_user_model()
3719
users = [{"user_id": str(x.user_id), "first_name": x.first_name} for x in User.objects.all()]
3820

@@ -60,46 +42,34 @@ def list(self, request):
6042
@cognito_authenticated
6143
def create(self, request):
6244
try:
63-
username = self.get_user_id_from_token(request)
45+
username = get_user_id_from_token(request)
6446
data = request.data.copy()
6547
data["username"] = username
6648

6749
serializer = PiggiesSerializer(data=data)
50+
6851
if serializer.is_valid():
6952
serializer.save()
7053
response = {
7154
"username": serializer.data["username"],
7255
"piggy": serializer.data["piggy"],
7356
}
74-
return Response(data=response, status=status.HTTP_201_CREATED)
57+
58+
serializer = PiggiesSerializer(data={"username": data["piggy"], "piggy": username})
59+
60+
if serializer.is_valid():
61+
serializer.save()
62+
63+
return Response(data=response, status=status.HTTP_201_CREATED)
7564
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
7665
except Exception as e:
7766
return Response({"error": str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
7867

7968

8069
class NotPiggiesViewSet(viewsets.ViewSet):
81-
def get_user_id_from_token(self, request):
82-
try:
83-
authorization_header = request.headers.get("Authorization")
84-
if not authorization_header:
85-
raise Exception("Authorization header not found")
86-
87-
token = authorization_header.split()[1]
88-
decoded_token = jwt.decode(token, options={"verify_signature": False})
89-
username = decoded_token.get("username")
90-
if not username:
91-
raise Exception("User ID not found in token")
92-
return username
93-
except jwt.DecodeError:
94-
raise Exception("Invalid token")
95-
except jwt.ExpiredSignatureError:
96-
raise Exception("Expired token")
97-
except Exception as e:
98-
raise Exception(f"Error decoding token: {e}")
99-
10070
def users(self, request):
10171
try:
102-
username = self.get_user_id_from_token(request)
72+
username = get_user_id_from_token(request)
10373
User = get_user_model()
10474
users = [
10575
{"user_id": str(x.user_id), "first_name": x.first_name, "email": x.email} for x in User.objects.all()

0 commit comments

Comments
 (0)