mirror of
https://github.com/mattermost/mattermost.git
synced 2026-02-20 08:21:09 -05:00
* MM-11065: Allow to search and get archived channels from the API * Fixing more tests * Add some unit tests * Add includeDeleted parameter to session permissions check function * More test fixing * Adding archive channels list in channels search * Add restriction for archived channel edition * Reverting permissions checks modification * Changed the query parameter to include_deleted * Enable search archive channels as true by default * Adding tests for verify search on deleted channels * Allowing to override archive channels during the imports * Fixed test * Search in archive channels from the API must be explicitly requested * Removing includeDeleted parameter from GetChannelByName and GetChannelByNameForTeam * Back to ViewArchivedChannels config * Fixing tests * Reverting GetChannelByName parameter * Add include deleted parameter on GetChannel functions in plugins api * Fixing tests
71 lines
1.6 KiB
Go
71 lines
1.6 KiB
Go
package plugin_test
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/mattermost/mattermost-server/model"
|
|
"github.com/mattermost/mattermost-server/plugin"
|
|
)
|
|
|
|
type HelpPlugin struct {
|
|
plugin.MattermostPlugin
|
|
|
|
TeamName string
|
|
ChannelName string
|
|
|
|
channelId string
|
|
}
|
|
|
|
func (p *HelpPlugin) OnConfigurationChange() error {
|
|
// Reuse the default implementation of OnConfigurationChange to automatically load the
|
|
// required TeamName and ChannelName.
|
|
if err := p.MattermostPlugin.OnConfigurationChange(); err != nil {
|
|
p.API.LogError(err.Error())
|
|
return nil
|
|
}
|
|
|
|
team, err := p.API.GetTeamByName(p.TeamName)
|
|
if err != nil {
|
|
p.API.LogError("failed to find team", "team_name", p.TeamName)
|
|
return nil
|
|
}
|
|
|
|
channel, err := p.API.GetChannelByName(p.ChannelName, team.Id, false)
|
|
if err != nil {
|
|
p.API.LogError("failed to find channel", "channel_name", p.ChannelName)
|
|
return nil
|
|
}
|
|
|
|
p.channelId = channel.Id
|
|
|
|
return nil
|
|
}
|
|
|
|
func (p *HelpPlugin) MessageHasBeenPosted(c *plugin.Context, post *model.Post) {
|
|
// Ignore posts not in the configured channel
|
|
if post.ChannelId != p.channelId {
|
|
return
|
|
}
|
|
|
|
// Ignore posts this plugin made.
|
|
if sentByPlugin, _ := post.Props["sent_by_plugin"].(bool); sentByPlugin {
|
|
return
|
|
}
|
|
|
|
// Ignore posts without a plea for help.
|
|
if !strings.Contains(post.Message, "help") {
|
|
return
|
|
}
|
|
|
|
p.API.SendEphemeralPost(post.UserId, &model.Post{
|
|
ChannelId: p.channelId,
|
|
Message: "You asked for help? Checkout https://about.mattermost.com/help/",
|
|
Props: map[string]interface{}{
|
|
"sent_by_plugin": true,
|
|
},
|
|
})
|
|
}
|
|
|
|
func Example_helpPlugin() {
|
|
plugin.ClientMain(&HelpPlugin{})
|
|
}
|