// Copyright (c) 2024 Mattermost Community Enterprise // Registration of Notification implementation package notification import ( "github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/shared/mlog" "github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/einterfaces" ) // NotificationFactory is a function type that creates a NotificationInterface type NotificationFactory func(store store.Store, config func() *model.Config, logger mlog.LoggerIFace) einterfaces.NotificationInterface // NewNotificationFactory returns a factory function for creating Notification interfaces func NewNotificationFactory() NotificationFactory { return func(store store.Store, config func() *model.Config, logger mlog.LoggerIFace) einterfaces.NotificationInterface { cfg := &NotificationConfig{ Store: store, Config: config, Logger: logger, } return NewNotificationInterface(cfg) } } // CreateNotificationInterface creates a new Notification interface directly func CreateNotificationInterface(store store.Store, config func() *model.Config, logger mlog.LoggerIFace) einterfaces.NotificationInterface { cfg := &NotificationConfig{ Store: store, Config: config, Logger: logger, } return NewNotificationInterface(cfg) }