From 36a43e9ae169af18c67e3eb1d83cf91dca00854c Mon Sep 17 00:00:00 2001 From: Danielllllllllllllll Date: Thu, 27 Jun 2024 21:49:05 +0800 Subject: [PATCH] fix: now you cannot send invitation to yourself --- services/api/controllers/friend/friend_invite.go | 8 ++++++-- services/api/test/friend_invite_test.go | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/services/api/controllers/friend/friend_invite.go b/services/api/controllers/friend/friend_invite.go index 41d0e08..3e7d8e7 100644 --- a/services/api/controllers/friend/friend_invite.go +++ b/services/api/controllers/friend/friend_invite.go @@ -15,8 +15,8 @@ import ( func (s Service) InviteFriend(ctx context.Context, req *monify.InviteFriendRequest) (*monify.InviteFriendResponse, error) { logger := ctx.Value(lib.LoggerContextKey{}).(*zap.Logger) - userId := ctx.Value(lib.UserIdContextKey{}) - if userId == nil { + userId := ctx.Value(lib.UserIdContextKey{}).(uuid.UUID) + if userId == uuid.Nil { return nil, status.Error(codes.Unauthenticated, "Unauthorized.") } receiver_nickId := req.GetReceiverNickId() @@ -35,6 +35,10 @@ func (s Service) InviteFriend(ctx context.Context, req *monify.InviteFriendReque return nil, status.Error(codes.Internal, "") } + if receiverId == userId.String() { + return nil, status.Error(codes.InvalidArgument, "Cannot send invitation to yourself.") + } + inviteId := uuid.New() _, err = db.ExecContext(ctx, `INSERT INTO friend_invite (invite_id, sender, receiver) VALUES ($1, $2, $3)`, diff --git a/services/api/test/friend_invite_test.go b/services/api/test/friend_invite_test.go index 30c2431..2360de4 100644 --- a/services/api/test/friend_invite_test.go +++ b/services/api/test/friend_invite_test.go @@ -15,11 +15,15 @@ func TestInviteFriend(t *testing.T) { _, err := client.UpdateUserNickId(context.Background(), &monify.UpdateUserNickIdRequest{NickId: "test_nickId1"}) assert.NoError(t, err) _, err = client.InviteFriend(context.TODO(), &monify.InviteFriendRequest{ReceiverNickId: "test_nickId1"}) + assert.Error(t, err) + _ = client.CreateTestUser() + _, err = client.InviteFriend(context.TODO(), &monify.InviteFriendRequest{ReceiverNickId: "test_nickId1"}) assert.NoError(t, err) - - // test list invitation _ = client.CreateTestUser() _, err = client.InviteFriend(context.TODO(), &monify.InviteFriendRequest{ReceiverNickId: "test_nickId1"}) + assert.NoError(t, err) + + // test list invitation client.SetTestUser(user1) invitaions, err := client.ListFriendInvitation(context.TODO(), &monify.FriendEmpty{}) assert.NoError(t, err)