Both approaches could work just fine IMHO. The second one is better suited if the two roles have a lot of differences in their use-cases, justifying the existence of two distinct use-cases.
I also believe the keyword interactor should be a suffix of the class like CreatePostAsModeratorInteractor.
Also note that the interactor returning the entity directly is not a recommendation of the Clean Architecture as it will inevitably introduce coupling between the interactor and its callers.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Yes,
In a post creation case where the authenticated user can be a simple author or a moderator, where should publish permission be checked?
With a conditional in the interactor:
With derivations for each type of user:
Both approaches could work just fine IMHO. The second one is better suited if the two roles have a lot of differences in their use-cases, justifying the existence of two distinct use-cases.
I also believe the keyword interactor should be a suffix of the class like
CreatePostAsModeratorInteractor
.Also note that the interactor returning the entity directly is not a recommendation of the Clean Architecture as it will inevitably introduce coupling between the interactor and its callers.