@@ -40,6 +40,7 @@ type MembershipRepo interface {
40
40
FindByIDInUser (ctx context.Context , userID , ID uuid.UUID ) (* Membership , error )
41
41
FindByIDInOrg (ctx context.Context , orgID , ID uuid.UUID ) (* Membership , error )
42
42
FindByOrgAndUser (ctx context.Context , orgID , userID uuid.UUID ) (* Membership , error )
43
+ FindByOrgNameAndUser (ctx context.Context , orgName string , userID uuid.UUID ) (* Membership , error )
43
44
SetCurrent (ctx context.Context , ID uuid.UUID ) (* Membership , error )
44
45
SetRole (ctx context.Context , ID uuid.UUID , role authz.Role ) (* Membership , error )
45
46
Create (ctx context.Context , orgID , userID uuid.UUID , current bool , role authz.Role ) (* Membership , error )
@@ -275,3 +276,19 @@ func (uc *MembershipUseCase) FindByOrgAndUser(ctx context.Context, orgID, userID
275
276
276
277
return m , nil
277
278
}
279
+
280
+ func (uc * MembershipUseCase ) FindByOrgNameAndUser (ctx context.Context , orgName , userID string ) (* Membership , error ) {
281
+ userUUID , err := uuid .Parse (userID )
282
+ if err != nil {
283
+ return nil , NewErrInvalidUUID (err )
284
+ }
285
+
286
+ m , err := uc .repo .FindByOrgNameAndUser (ctx , orgName , userUUID )
287
+ if err != nil {
288
+ return nil , fmt .Errorf ("failed to find membership: %w" , err )
289
+ } else if m == nil {
290
+ return nil , NewErrNotFound ("membership" )
291
+ }
292
+
293
+ return m , nil
294
+ }
0 commit comments