package app import ( "github.com/mattermost/focalboard/server/model" "github.com/mattermost/focalboard/server/utils" "github.com/mattermost/mattermost-server/v6/shared/mlog" ) func (a *App) CreateSubscription(sub *model.Subscription) (*model.Subscription, error) { sub, err := a.store.CreateSubscription(sub) if err != nil { return nil, err } a.notifySubscriptionChanged(sub) return sub, nil } func (a *App) DeleteSubscription(blockID string, subscriberID string) (*model.Subscription, error) { sub, err := a.store.GetSubscription(blockID, subscriberID) if err != nil { return nil, err } if err := a.store.DeleteSubscription(blockID, subscriberID); err != nil { return nil, err } sub.DeleteAt = utils.GetMillis() a.notifySubscriptionChanged(sub) return sub, nil } func (a *App) GetSubscriptions(subscriberID string) ([]*model.Subscription, error) { return a.store.GetSubscriptions(subscriberID) } func (a *App) notifySubscriptionChanged(subscription *model.Subscription) { if a.notifications == nil { return } board, err := a.getBoardForBlock(subscription.BlockID) if err != nil { a.logger.Error("Error notifying subscription change", mlog.String("subscriber_id", subscription.SubscriberID), mlog.String("block_id", subscription.BlockID), mlog.Err(err), ) } a.notifications.BroadcastSubscriptionChange(board.TeamID, subscription) }