Documentation
¶
Overview ¶
Package notifiers contain the domain concept definitions needed to support Mainflux notifications functionality.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrNotify = errors.New("failed to send notification")
ErrNotify wraps sending notification errors,
Functions ¶
This section is empty.
Types ¶
type NotifierRepository ¶
type NotifierRepository interface {
// Save persists multiple notifiers. Notifiers are saved using a transaction.
// If one notifier fails then none will be saved.
// Successful operation is indicated by non-nil error response.
Save(ctx context.Context, nfs ...Notifier) ([]Notifier, error)
// RetrieveByGroup retrieves notifiers related to a certain group,
// identified by a given ID.
RetrieveByGroup(ctx context.Context, groupID string, pm apiutil.PageMetadata) (NotifiersPage, error)
// RetrieveByID retrieves the notifier having the provided ID.
RetrieveByID(ctx context.Context, id string) (Notifier, error)
// Update performs an update to the existing notifier.
// A non-nil error is returned to indicate operation failure.
Update(ctx context.Context, n Notifier) error
// Remove removes notifiers having the provided IDs.
Remove(ctx context.Context, ids ...string) error
// RemoveByGroup removes notifiers related to a certain group,
// identified by a given group ID.
RemoveByGroup(ctx context.Context, groupID string) error
}
NotifierRepository specifies a notifier persistence API.
type NotifiersPage ¶ added in v0.28.1
type Sender ¶ added in v0.28.1
type Sender interface {
// Send method is used to send notification for the
// received message to the provided list of receivers.
Send(to []string, msg protomfx.Message) error
// ValidateContacts method is used to validate contacts
// to which notifications will be sent.
ValidateContacts(contacts []string) error
}
Sender represents an API for sending notification.
type Service ¶
type Service interface {
// CreateNotifiers creates notifiers for a certain group identified by the group ID.
CreateNotifiers(ctx context.Context, token, groupID string, notifiers ...Notifier) ([]Notifier, error)
// ListNotifiersByGroup retrieves data about a subset of notifiers
// related to a certain group, identified by the provided group ID.
ListNotifiersByGroup(ctx context.Context, token string, groupID string, pm apiutil.PageMetadata) (NotifiersPage, error)
// ViewNotifier retrieves data about the notifier identified with the provided ID.
ViewNotifier(ctx context.Context, token, id string) (Notifier, error)
// UpdateNotifier updates the notifier identified by the provided ID.
UpdateNotifier(ctx context.Context, token string, notifier Notifier) error
// RemoveNotifiers removes notifiers identified with the provided IDs.
RemoveNotifiers(ctx context.Context, token string, id ...string) error
// RemoveNotifiersByGroup removes notifiers related to the specified group,
// identified by the provided group ID.
RemoveNotifiersByGroup(ctx context.Context, groupID string) error
consumers.Consumer
}
Service represents a notification service. All methods that accept a token parameter use it to identify and authorize the user performing the operation.
func New ¶
func New(idp uuid.IDProvider, sender Sender, notifierRepo NotifierRepository, things protomfx.ThingsServiceClient) Service
New instantiates the subscriptions service implementation.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package smpp contains the domain concept definitions needed to support Mainflux SMS notifications.
|
Package smpp contains the domain concept definitions needed to support Mainflux SMS notifications. |
|
Package smtp contains the domain concept definitions needed to support Mainflux SMTP notifications.
|
Package smtp contains the domain concept definitions needed to support Mainflux SMTP notifications. |
Click to show internal directories.
Click to hide internal directories.