make client interface
This commit is contained in:
@@ -78,13 +78,18 @@ type Service interface {
|
||||
IsAssignableResource(id gidx.PrefixedID) bool
|
||||
}
|
||||
|
||||
// EventPublisher defines the required methods to publish events.
|
||||
type EventPublisher interface {
|
||||
PublishChange(ctx context.Context, subjectType string, change events.ChangeMessage) error
|
||||
}
|
||||
|
||||
var _ Service = &service{}
|
||||
|
||||
type service struct {
|
||||
logger *zap.SugaredLogger
|
||||
publisher *events.Publisher
|
||||
metal *metal.Client
|
||||
perms *permissions.Client
|
||||
publisher EventPublisher
|
||||
metal metal.Client
|
||||
perms permissions.Client
|
||||
idPrefixMap map[string]ObjectType
|
||||
|
||||
rootResource prefixedID
|
||||
@@ -100,7 +105,7 @@ func (r prefixedID) PrefixedID() gidx.PrefixedID {
|
||||
}
|
||||
|
||||
// New creates a new service.
|
||||
func New(publisher *events.Publisher, metal *metal.Client, perms *permissions.Client, options ...Option) (Service, error) {
|
||||
func New(publisher EventPublisher, metal metal.Client, perms permissions.Client, options ...Option) (Service, error) {
|
||||
svc := &service{
|
||||
publisher: publisher,
|
||||
metal: metal,
|
||||
|
||||
Reference in New Issue
Block a user