Documentation
¶
Overview ¶
Package connection represents communication channels.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ArtifactLoader ¶
type ArtifactLoader interface {
// AddArtifact describes a method for an uploading message artifacts to a communication channel.
AddArtifact(name string, result string, channelID string, messageID string) (artifactLink string, err error)
// DownloadArtifact describes a method for a downloading message artifacts and snippets from a communication channel.
DownloadArtifact(artifactURL string) (response []byte, err error)
}
MessageValidator defines the interface for artifacts management.
type Assistant ¶
type Assistant interface {
// Init defines the method to initialize the assistant.
Init() error
// Register defines the method to register the assistant.
Register(ctx context.Context) error
// Deregister defines the method to deregister the assistant.
Deregister(ctx context.Context) error
// RestoreSessions checks sessions after restart and establishes DB connection
RestoreSessions(context.Context) error
// CheckIdleSessions defines the method for checking user idle sessions and notification about them.
CheckIdleSessions(context.Context)
// AddChannel adds a new Database Lab instance to communication via the assistant.
AddChannel(channelID string, dbLabInstance *dblab.Instance)
// DumpSessions iterates over channels and collects user's sessions to storage
DumpSessions()
}
Assistant defines the interface of a Query Optimization assistant.
type MessageFinalizer ¶
type MessageFinalizer interface {
// TODO(akartasov): Group Fail and OK methods to Finish(message *structs.Message) error
// Fail finishes a message processing and marks a message as failed.
Fail(message *models.Message, text string) error
// OK finishes a message processing and marks a message as succeeding.
OK(message *models.Message) error
}
MessageFinalizer finishes a message processing.
type MessageProcessor ¶
type MessageProcessor interface {
// ProcessMessageEvent defines the method for processing of incoming messages.
ProcessMessageEvent(context.Context, models.IncomingMessage)
// ProcessAppMentionEvent defines the method for replying to an application mention event.
ProcessAppMentionEvent(incomingMessage models.IncomingMessage)
// RestoreSessions checks sessions after restart and establishes DB connection
RestoreSessions(ctx context.Context) error
// Users returns user's session data
Users() usermanager.UserList
// CheckIdleSessions defines the method of check idleness sessions.
CheckIdleSessions(ctx context.Context)
}
MessageProcessor defines the interface of a message processor.
type MessageValidator ¶
type MessageValidator interface {
// Validate validates an incoming message.
Validate(inputEvent *models.IncomingMessage) error
}
MessageValidator defines the interface for message validation.
type Messenger ¶
type Messenger interface {
// Publish describes a method for posting of various type messages.
Publish(message *models.Message) error
// UpdateText describes a method for updating a message text.
UpdateText(message *models.Message) error
// UpdateStatus describes a method for changing a message status.
UpdateStatus(message *models.Message, status models.MessageStatus) error
MessageFinalizer
ArtifactLoader
}
Messenger defines the interface for communication with an assistant.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package slack provides the Slack implementation of the communication interface.
|
Package slack provides the Slack implementation of the communication interface. |
|
Package slackrtm provides the Slack implementation of the communication interface.
|
Package slackrtm provides the Slack implementation of the communication interface. |
|
Package slacksm provides the Slack SocketMode implementation of the communication interface.
|
Package slacksm provides the Slack SocketMode implementation of the communication interface. |
|
Package webui provides the Web-UI implementation of the communication interface.
|
Package webui provides the Web-UI implementation of the communication interface. |
Click to show internal directories.
Click to hide internal directories.