Follow-up: Resolve technical debt for Members::ActivationService and Members::AwaitService
With !86340 (merged) we add another parameter to activate members of either a user's memberships, a member (or its user), or all members of the group. Generally the AwaitService
is also very similar and it makes maybe sense to re-use some code.
1. Use Factories
Maybe we could use a for_
method, e.g.
module Members
class ActivateService
def self.for_group(group, current_user)
members = # find members in group
new(group, members: members, current_user)
end
def self.for_member(group, member, current_user)
members = # find members in group for member
new(group, members: members, current_user)
end
def self.for_user(group, user, current_user)
members = # find members in group for user
new(group, members: members, current_user)
end
end
end
2. Re-use code
There are parts of the code that are identical (e.g. validations), or updating the data, which we might want to re-use.
Edited by Nicolas Dular