@@ -40,6 +40,7 @@ type MembershipRepo interface {
4040 FindByIDInUser (ctx context.Context , userID , ID uuid.UUID ) (* Membership , error )
4141 FindByIDInOrg (ctx context.Context , orgID , ID uuid.UUID ) (* Membership , error )
4242 FindByOrgAndUser (ctx context.Context , orgID , userID uuid.UUID ) (* Membership , error )
43+ FindByOrgNameAndUser (ctx context.Context , orgName string , userID uuid.UUID ) (* Membership , error )
4344 SetCurrent (ctx context.Context , ID uuid.UUID ) (* Membership , error )
4445 SetRole (ctx context.Context , ID uuid.UUID , role authz.Role ) (* Membership , error )
4546 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
275276
276277 return m , nil
277278}
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