mirror of
https://github.com/mainflux/mainflux.git
synced 2025-05-02 22:17:10 +08:00
47 lines
1.2 KiB
Go
47 lines
1.2 KiB
Go
![]() |
// Copyright (c) Mainflux
|
||
|
// SPDX-License-Identifier: Apache-2.0
|
||
|
|
||
|
package notifiers
|
||
|
|
||
|
import "context"
|
||
|
|
||
|
// Subscription represents a user Subscription.
|
||
|
type Subscription struct {
|
||
|
ID string
|
||
|
OwnerID string
|
||
|
Contact string
|
||
|
Topic string
|
||
|
}
|
||
|
|
||
|
// Page represents page metadata with content.
|
||
|
type Page struct {
|
||
|
PageMetadata
|
||
|
Total uint
|
||
|
Subscriptions []Subscription
|
||
|
}
|
||
|
|
||
|
// PageMetadata contains page metadata that helps navigation.
|
||
|
type PageMetadata struct {
|
||
|
Offset uint
|
||
|
// Limit values less than 0 indicate no limit.
|
||
|
Limit int
|
||
|
Topic string
|
||
|
Contact string
|
||
|
}
|
||
|
|
||
|
// SubscriptionsRepository specifies a Subscription persistence API.
|
||
|
type SubscriptionsRepository interface {
|
||
|
// Save persists a subscription. Successful operation is indicated by non-nil
|
||
|
// error response.
|
||
|
Save(ctx context.Context, sub Subscription) (string, error)
|
||
|
|
||
|
// Retrieve retrieves the subscription for the given id.
|
||
|
Retrieve(ctx context.Context, id string) (Subscription, error)
|
||
|
|
||
|
// RetrieveAll retrieves all the subscriptions for the given page metadata.
|
||
|
RetrieveAll(ctx context.Context, pm PageMetadata) (Page, error)
|
||
|
|
||
|
// Remove removes the subscription for the given ID.
|
||
|
Remove(ctx context.Context, id string) error
|
||
|
}
|