Change UserService trait to use the GenericProfile trait as the user type, instead of locking in the BasicProfile case class #545
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Since it isn't possible to subclass a case class, and implementors may have a different structure for users than the
BasicProfile
, and in general, it is best to stick to the Robustness Principle (and I'm guessing this is why theGenericProfile
trait exists in the first place?)In my case, I needed this because I am migrating from an old version of SecureSocial, where the
IdentityId
was a thing. I didn't want to migrate all of my user records in mongo, or tack on a transformation step in my DB layer. I imagine others may have other reasons for wanting to have the freedom to implementGenericProfile
differently.Of course, implementors are still free to just use
BasicProfile
.