refactor: unit testable units and cleaner dep injection
This commit is contained in:
@@ -12,12 +12,12 @@ var ErrUnauthorized = errors.New("unauthorized")
|
||||
|
||||
// Authorizer validates whether a user can access a given channel.
|
||||
type Authorizer struct {
|
||||
networkSvc network.Service
|
||||
networkReader network.Reader
|
||||
}
|
||||
|
||||
// NewAuthorizer creates a new channel authorizer.
|
||||
func NewAuthorizer(networkSvc network.Service) *Authorizer {
|
||||
return &Authorizer{networkSvc: networkSvc}
|
||||
func NewAuthorizer(networkReader network.Reader) *Authorizer {
|
||||
return &Authorizer{networkReader: networkReader}
|
||||
}
|
||||
|
||||
// Authorize checks if the given humanID is allowed to subscribe to the channel.
|
||||
@@ -51,7 +51,7 @@ func (a *Authorizer) Authorize(ctx context.Context, channelID, humanID string) e
|
||||
}
|
||||
|
||||
func (a *Authorizer) authorizeNetwork(ctx context.Context, networkID, humanID string) error {
|
||||
isMember, err := a.networkSvc.IsMember(ctx, networkID, humanID)
|
||||
isMember, err := a.networkReader.IsMember(ctx, networkID, humanID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user