@@ -86,20 +86,8 @@ func (uc *OrgInvitationUseCase) Create(ctx context.Context, orgID, senderID, rec
8686 return nil , NewErrValidationStr ("sender and receiver emails cannot be the same" )
8787 }
8888
89- // 3 - The receiver does not exist in the org already
90- memberships , err := uc .mRepo .FindByOrg (ctx , orgUUID )
91- if err != nil {
92- return nil , fmt .Errorf ("error finding memberships for user %s: %w" , senderUUID .String (), err )
93- }
94-
95- for _ , m := range memberships {
96- if m .UserEmail == receiverEmail {
97- return nil , NewErrValidationStr ("user already exists in the org" )
98- }
99- }
100-
101- // 4 - Check if the user has permissions to invite to the org
102- memberships , err = uc .mRepo .FindByUser (ctx , senderUUID )
89+ // 3 - Check if the user has permissions to invite to the org
90+ memberships , err := uc .mRepo .FindByUser (ctx , senderUUID )
10391 if err != nil {
10492 return nil , fmt .Errorf ("error finding memberships for user %s: %w" , senderUUID .String (), err )
10593 }
@@ -117,6 +105,18 @@ func (uc *OrgInvitationUseCase) Create(ctx context.Context, orgID, senderID, rec
117105 return nil , NewErrNotFound ("user does not have permission to invite to this org" )
118106 }
119107
108+ // 4 - The receiver does not exist in the org already
109+ memberships , err = uc .mRepo .FindByOrg (ctx , orgUUID )
110+ if err != nil {
111+ return nil , fmt .Errorf ("error finding memberships for user %s: %w" , senderUUID .String (), err )
112+ }
113+
114+ for _ , m := range memberships {
115+ if m .UserEmail == receiverEmail {
116+ return nil , NewErrValidationStr ("user already exists in the org" )
117+ }
118+ }
119+
120120 // 5 - Check if there is already an invitation for this user for this org
121121 m , err := uc .repo .PendingInvitation (ctx , orgUUID , receiverEmail )
122122 if err != nil {
0 commit comments