mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
* model -> public/model * plugin -> public/plugin * public/model/utils -> public/utils * platform/shared/mlog -> public/shared/mlog * platform/shared/i18n -> public/shared/i18n * platform/shared/markdown -> public/shared/markdown * platform/services/timezones -> public/shared/timezones * channels/einterfaces -> einterfaces * expose public/ submodule * go mod tidy * .github: cache-dependency-path, setup-go-work * modules-tidy for public/ too * remove old gomodtidy
56 lines
1.5 KiB
Go
56 lines
1.5 KiB
Go
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
package app
|
|
|
|
import (
|
|
"github.com/mattermost/mattermost-server/server/v8/boards/model"
|
|
"github.com/mattermost/mattermost-server/server/v8/boards/utils"
|
|
|
|
"github.com/mattermost/mattermost-server/server/public/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.wsAdapter.BroadcastSubscriptionChange(board.TeamID, subscription)
|
|
}
|