github.com/influxdata/influxdb/v2@v2.7.6/mock/notification_rule_store.go (about)

     1  package mock
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/influxdata/influxdb/v2"
     7  	"github.com/influxdata/influxdb/v2/kit/platform"
     8  )
     9  
    10  var _ influxdb.NotificationRuleStore = &NotificationRuleStore{}
    11  
    12  // NotificationRuleStore represents a service for managing notification rule data.
    13  type NotificationRuleStore struct {
    14  	*OrganizationService
    15  	*UserResourceMappingService
    16  	FindNotificationRuleByIDF     func(ctx context.Context, id platform.ID) (influxdb.NotificationRule, error)
    17  	FindNotificationRuleByIDCalls SafeCount
    18  	FindNotificationRulesF        func(ctx context.Context, filter influxdb.NotificationRuleFilter, opt ...influxdb.FindOptions) ([]influxdb.NotificationRule, int, error)
    19  	FindNotificationRulesCalls    SafeCount
    20  	CreateNotificationRuleF       func(ctx context.Context, nr influxdb.NotificationRuleCreate, userID platform.ID) error
    21  	CreateNotificationRuleCalls   SafeCount
    22  	UpdateNotificationRuleF       func(ctx context.Context, id platform.ID, nr influxdb.NotificationRuleCreate, userID platform.ID) (influxdb.NotificationRule, error)
    23  	UpdateNotificationRuleCalls   SafeCount
    24  	PatchNotificationRuleF        func(ctx context.Context, id platform.ID, upd influxdb.NotificationRuleUpdate) (influxdb.NotificationRule, error)
    25  	PatchNotificationRuleCalls    SafeCount
    26  	DeleteNotificationRuleF       func(ctx context.Context, id platform.ID) error
    27  	DeleteNotificationRuleCalls   SafeCount
    28  }
    29  
    30  // NewNotificationRuleStore creats a fake notification rules tore.
    31  func NewNotificationRuleStore() *NotificationRuleStore {
    32  	return &NotificationRuleStore{
    33  		OrganizationService:        NewOrganizationService(),
    34  		UserResourceMappingService: NewUserResourceMappingService(),
    35  		FindNotificationRuleByIDF: func(ctx context.Context, id platform.ID) (influxdb.NotificationRule, error) {
    36  			return nil, nil
    37  		},
    38  		FindNotificationRulesF: func(ctx context.Context, f influxdb.NotificationRuleFilter, _ ...influxdb.FindOptions) ([]influxdb.NotificationRule, int, error) {
    39  			return nil, 0, nil
    40  		},
    41  		CreateNotificationRuleF: func(ctx context.Context, nr influxdb.NotificationRuleCreate, userID platform.ID) error {
    42  			return nil
    43  		},
    44  		UpdateNotificationRuleF: func(ctx context.Context, id platform.ID, nr influxdb.NotificationRuleCreate, userID platform.ID) (influxdb.NotificationRule, error) {
    45  			return nil, nil
    46  		},
    47  		PatchNotificationRuleF: func(ctx context.Context, id platform.ID, upd influxdb.NotificationRuleUpdate) (influxdb.NotificationRule, error) {
    48  			return nil, nil
    49  		},
    50  		DeleteNotificationRuleF: func(ctx context.Context, id platform.ID) error {
    51  			return nil
    52  		},
    53  	}
    54  }
    55  
    56  // FindNotificationRuleByID returns a single telegraf config by ID.
    57  func (s *NotificationRuleStore) FindNotificationRuleByID(ctx context.Context, id platform.ID) (influxdb.NotificationRule, error) {
    58  	defer s.FindNotificationRuleByIDCalls.IncrFn()()
    59  	return s.FindNotificationRuleByIDF(ctx, id)
    60  }
    61  
    62  // FindNotificationRules returns a list of notification rules that match filter and the total count of matching notification rules.
    63  // Additional options provide pagination & sorting.
    64  func (s *NotificationRuleStore) FindNotificationRules(ctx context.Context, filter influxdb.NotificationRuleFilter, opt ...influxdb.FindOptions) ([]influxdb.NotificationRule, int, error) {
    65  	defer s.FindNotificationRulesCalls.IncrFn()()
    66  	return s.FindNotificationRulesF(ctx, filter, opt...)
    67  }
    68  
    69  // CreateNotificationRule creates a new notification rule and sets ID with the new identifier.
    70  func (s *NotificationRuleStore) CreateNotificationRule(ctx context.Context, nr influxdb.NotificationRuleCreate, userID platform.ID) error {
    71  	defer s.CreateNotificationRuleCalls.IncrFn()()
    72  	return s.CreateNotificationRuleF(ctx, nr, userID)
    73  }
    74  
    75  // UpdateNotificationRule updates a single notification rule.
    76  // Returns the new notification rule after update.
    77  func (s *NotificationRuleStore) UpdateNotificationRule(ctx context.Context, id platform.ID, nr influxdb.NotificationRuleCreate, userID platform.ID) (influxdb.NotificationRule, error) {
    78  	defer s.UpdateNotificationRuleCalls.IncrFn()()
    79  	return s.UpdateNotificationRuleF(ctx, id, nr, userID)
    80  }
    81  
    82  // PatchNotificationRule updates a single  notification rule with changeset.
    83  // Returns the new notification rule after update.
    84  func (s *NotificationRuleStore) PatchNotificationRule(ctx context.Context, id platform.ID, upd influxdb.NotificationRuleUpdate) (influxdb.NotificationRule, error) {
    85  	defer s.PatchNotificationRuleCalls.IncrFn()()
    86  	return s.PatchNotificationRuleF(ctx, id, upd)
    87  }
    88  
    89  // DeleteNotificationRule removes a notification rule by ID.
    90  func (s *NotificationRuleStore) DeleteNotificationRule(ctx context.Context, id platform.ID) error {
    91  	defer s.DeleteNotificationRuleCalls.IncrFn()()
    92  	return s.DeleteNotificationRuleF(ctx, id)
    93  }