bot

package
v1.39.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 10, 2024 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Bot

type Bot struct {
	// contains filtered or unexported fields
}

Bot stores the information for the plugin configuration, and implements the Poster interfaces.

func New

func New(api *pluginapi.Client, botUserID string, configService config.Service, telemetry Telemetry) *Bot

New creates a new bot poster.

func (*Bot) DM

func (b *Bot) DM(userID string, post *model.Post) error

DM sends a DM from the plugin bot to the specified user

func (*Bot) EphemeralPost

func (b *Bot) EphemeralPost(userID, channelID string, post *model.Post)

EphemeralPost sends an ephemeral message to a user

func (*Bot) EphemeralPostWithAttachments

func (b *Bot) EphemeralPostWithAttachments(userID, channelID, postID string, attachments []*model.SlackAttachment, format string, args ...interface{})

EphemeralPostWithAttachments sends an ephemeral message to a user with Slack attachments.

func (*Bot) IsFromPoster added in v1.26.0

func (b *Bot) IsFromPoster(post *model.Post) bool

func (*Bot) NotifyAdmins

func (b *Bot) NotifyAdmins(messageType, authorUserID string, isTeamEdition bool) error

func (*Bot) Post

func (b *Bot) Post(post *model.Post) error

Post posts a custom post. The Message and ChannelId fields should be provided in the specified post

func (*Bot) PostCustomMessageWithAttachments

func (b *Bot) PostCustomMessageWithAttachments(channelID, customType string, attachments []*model.SlackAttachment, format string, args ...interface{}) (*model.Post, error)

func (*Bot) PostMessage

func (b *Bot) PostMessage(channelID, format string, args ...interface{}) (*model.Post, error)

PostMessage posts a message to a specified channel.

func (*Bot) PostMessageToThread

func (b *Bot) PostMessageToThread(rootPostID string, post *model.Post) error

PostMessageToThread posts a message to a specified thread identified by rootPostID. If the rootPostID is blank, or the rootPost is deleted, it will create a standalone post. The overwritten post's RootID will be the correct rootID (save that if you want to continue the thread).

func (*Bot) PostMessageWithAttachments

func (b *Bot) PostMessageWithAttachments(channelID string, attachments []*model.SlackAttachment, format string, args ...interface{}) (*model.Post, error)

PostMessageWithAttachments posts a message with slack attachments to channelID. Returns the post id if posting was successful. Often used to include post actions.

func (*Bot) PublishWebsocketEventToChannel

func (b *Bot) PublishWebsocketEventToChannel(event string, payload interface{}, channelID string)

PublishWebsocketEventToChannel sends a websocket event with payload to channelID

func (*Bot) PublishWebsocketEventToTeam

func (b *Bot) PublishWebsocketEventToTeam(event string, payload interface{}, teamID string)

PublishWebsocketEventToTeam sends a websocket event with payload to teamID

func (*Bot) PublishWebsocketEventToUser

func (b *Bot) PublishWebsocketEventToUser(event string, payload interface{}, userID string)

PublishWebsocketEventToUser sends a websocket event with payload to userID

func (*Bot) SystemEphemeralPost added in v1.26.0

func (b *Bot) SystemEphemeralPost(userID, channelID string, post *model.Post)

SystemEphemeralPost sends an ephemeral message to a user authored by the System

type Poster

type Poster interface {
	// Post posts a custom post, which should provide the Message and ChannelId fields
	Post(post *model.Post) error

	// PostMessage posts a simple message to channelID. Returns the post id if posting was successful.
	PostMessage(channelID, format string, args ...interface{}) (*model.Post, error)

	// PostMessageToThread posts a message to a specified channel and thread identified by rootPostID.
	// If the rootPostID is blank, or the rootPost is deleted, it will create a standalone post. The
	// returned post's RootID (or ID, if there was no root post) should be used as the rootID for
	// future use (i.e., save that if you want to continue the thread).
	PostMessageToThread(rootPostID string, post *model.Post) error

	// PostMessageWithAttachments posts a message with slack attachments to channelID. Returns the post id if
	// posting was successful. Often used to include post actions.
	PostMessageWithAttachments(channelID string, attachments []*model.SlackAttachment, format string, args ...interface{}) (*model.Post, error)

	// PostCustomMessageWithAttachments posts a custom message with the specified type. Falling back to attachments for mobile.
	PostCustomMessageWithAttachments(channelID, customType string, attachments []*model.SlackAttachment, format string, args ...interface{}) (*model.Post, error)

	// DM posts a DM from the plugin bot to the specified user
	DM(userID string, post *model.Post) error

	// EphemeralPost sends an ephemeral message to a user.
	EphemeralPost(userID, channelID string, post *model.Post)

	// SystemEphemeralPost sends an ephemeral message to a user authored by the System.
	SystemEphemeralPost(userID, channelID string, post *model.Post)

	// EphemeralPostWithAttachments sends an ephemeral message to a user with Slack attachments.
	EphemeralPostWithAttachments(userID, channelID, rootPostID string, attachments []*model.SlackAttachment, format string, args ...interface{})

	// PublishWebsocketEventToTeam sends a websocket event with payload to teamID.
	PublishWebsocketEventToTeam(event string, payload interface{}, teamID string)

	// PublishWebsocketEventToChannel sends a websocket event with payload to channelID.
	PublishWebsocketEventToChannel(event string, payload interface{}, channelID string)

	// PublishWebsocketEventToUser sends a websocket event with payload to userID.
	PublishWebsocketEventToUser(event string, payload interface{}, userID string)

	// NotifyAdmins sends a DM with the message to each admins
	NotifyAdmins(message, authorUserID string, isTeamEdition bool) error

	// IsFromPoster returns whether the provided post was sent by this poster
	IsFromPoster(post *model.Post) bool
}

Poster interface - a small subset of the plugin posting API.

type Telemetry

type Telemetry interface {
	NotifyAdmins(userID string, action string)
	StartTrial(userID string, action string)
}

Directories

Path Synopsis
Package mock_bot is a generated GoMock package.
Package mock_bot is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL