Skip to content

Commit

Permalink
changed friend serializer to use show id and username for sender and …
Browse files Browse the repository at this point in the history
…receiver user in user_service, in views.py in token_service wrapped err in str()
  • Loading branch information
mtoof committed Jul 25, 2024
1 parent 5443390 commit db4391d
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 9 deletions.
4 changes: 2 additions & 2 deletions Backend/token_service/token_service/token_app/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,9 @@ def handle_token_request(ch, method, properties, body):
"access": access_token
}
except Exception as err:
response_message = {"error": err}
response_message = {"error": str(err)}
except Exception as err:
response_message = {"error": err}
response_message = {"error": str(err)}
publish_message("user_token_response_queue", json.dumps(response_message))


Expand Down
14 changes: 13 additions & 1 deletion Backend/user_service/user_service/user_app/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,21 @@


class FriendSerializer(serializers.ModelSerializer):
sender_id = serializers.IntegerField(source="sender_user.id")
receiver_id = serializers.IntegerField(source="receiver_user.id")
sender_username = serializers.SerializerMethodField()
receiver_username = serializers.SerializerMethodField()
class Meta:
model=FriendRequest
fields = ["sender_user", "receiver_user", "status"]
fields = ["sender_id", "sender_username", "receiver_id", "receiver_username", "status"]

def get_sender_username(self, obj):
return obj.sender_user.username

def get_receiver_username(self, obj):
return obj.receiver_user.username


class UserSerializer(serializers.ModelSerializer):
"""
UserSerializer class to define the user serializer.
Expand Down
4 changes: 2 additions & 2 deletions Backend/user_service/user_service/user_app/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
path("user/<int:pk>/",UserViewSet.as_view({"get": "retrieve_user","put": "update_user","delete": "destroy_user",}),name="user-detail",),
path("user/<int:pk>/logout/", UserLogoutView.as_view({"post": "logout",}),name="user-logout",),
path("user/<int:user_pk>/friends/", FriendsViewSet.as_view({"get": "friends_list"}), name="friends-list"),
path("user/<int:user_pk>/request/<int:pk>/", FriendsViewSet.as_view({"post": "send_friend_request"}), name="send-request"),
path("user/<int:user_pk>/request/", FriendsViewSet.as_view({"post": "send_friend_request"}), name="send-request"),
path("user/<int:user_pk>/accept/<int:pk>/", FriendsViewSet.as_view({"put": "accept_friend_request"}), name="accept-request"),
path("user/<int:user_pk>/pending/", FriendsViewSet.as_view({"get": "friend_requests"}), name="friend-request-list"),
path("user/<int:user_pk>/reject/<int:pk>", FriendsViewSet.as_view({"put": "reject_friend_request"}), name="reject-request"),
path("user/<int:user_pk>/reject/<int:pk>/", FriendsViewSet.as_view({"put": "reject_friend_request"}), name="reject-request"),
path("user/<int:user_pk>/friends/<int:pk>/remove/", FriendsViewSet.as_view({"delete": "remove_friend"}), name="remove-friend"),
]
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class UserLoginView(viewsets.ViewSet):
def login(self, request):
username = request.data.get("username")
password = request.data.get("password")

status_code = 0
if username and password:
user = authenticate(username=username, password=password)
if user is not None:
Expand Down
9 changes: 6 additions & 3 deletions Backend/user_service/user_service/user_app/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -223,14 +223,17 @@ def remove_friend(self, request, user_pk=None, pk=None):
return Response({"error": str(err)}, status=status.HTTP_400_BAD_REQUEST)


def send_friend_request(self, request, user_pk=None, pk=None):
def send_friend_request(self, request, user_pk=None):
try:
validate_token(request)
if (user_pk == pk):
friend_username = request.data.get("username")
if not friend_username:
return Response({"error": "Username is required"}, status=status.HTTP_400_BAD_REQUEST)
receiver = get_object_or_404(User, username=friend_username)
if (user_pk == receiver.id):
raise ValidationError(detail={"You can't send a friend request to yourself"}, code=status.HTTP_400_BAD_REQUEST)

current_user = get_object_or_404(User, id=user_pk)
receiver = get_object_or_404(User, id=pk)

existing_request = FriendRequest.objects.filter(
(Q(sender_user=current_user) & Q(receiver_user=receiver) & Q(status='pending')) |
Expand Down

0 comments on commit db4391d

Please sign in to comment.