Replace OverwriteId type with Either RoleId UserId #121
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.
Summary
This pull request replaces
OverwriteId
withEither RoleId UserId
, and removes the type flag from surrounding ADTs.API Changes
OverwriteId
is removed.EditChannelPermissions
andDeleteChannelPermission
have changed to useEither
.ChannelPermissionsOptsType
is removed sinceEither
is enough to replace this.Overwrite
ADT no longer has aoverwriteType
flag.ChannelPermissionsOpts
ADT no longer has achannelPermissionsOptsType
flag.Motivation
I was trying to invoke a request to
EditChannelPermissions
. This requires anOverwriteId
as one of its arguments, which is either a role or user id (specified by a flag inside the ADT). The official docs for this are here.Before the recent ID overhaul, I could pass either UserId or RoleId with no problem since it was all the same type internally. However since the types are opaque now, I have to unwrap the Id and wrap it once again as an OverwriteId to use it. This is quite cumbersome.
The current code is also not making full use of the types Haskell offers, since the
Either
type can solve the above problem, and actually even more by getting rid of the flag parameters!