Documentation
¶
Overview ¶
Copyright (c) 2023-present Mattermost, Inc. All Rights Reserved. See LICENSE.txt for license information.
Index ¶
- func GetAuthURL(cloudEnv cloudenv.Environment, redirectURL string, tenantID string, ...) string
- func GetMessageFromJSON(data []byte, teamID, channelID, chatID string) (*clientmodels.Message, error)
- func GetResourceIDs(resource string) clientmodels.ActivityIDs
- func IsOAuthError(err error) bool
- func NormalizeGraphAPIError(err error) error
- type AccessToken
- type Activity
- type ChatMessageAttachment
- type ChatMessageAttachmentSender
- type ChatMessageAttachmentUser
- type Client
- type ClientImpl
- func (tc *ClientImpl) Connect() error
- func (tc *ClientImpl) CreateChat(chatType models.ChatType, userIDs []string) (*clientmodels.Chat, error)
- func (tc *ClientImpl) CreateOrGetChatForUsers(userIDs []string) (*clientmodels.Chat, error)
- func (tc *ClientImpl) DeleteChatMessage(userID, chatID, msgID string) error
- func (tc *ClientImpl) DeleteMessage(teamID, channelID, parentID, msgID string) error
- func (tc *ClientImpl) DeleteSubscription(subscriptionID string) error
- func (tc *ClientImpl) GetApp(applicationID string) (*clientmodels.App, error)
- func (tc *ClientImpl) GetChannelInTeam(teamID, channelID string) (*clientmodels.Channel, error)
- func (tc *ClientImpl) GetChannelsInTeam(teamID, filterQuery string) ([]*clientmodels.Channel, error)
- func (tc *ClientImpl) GetChat(chatID string) (*clientmodels.Chat, error)
- func (tc *ClientImpl) GetChatMessage(chatID, messageID string) (*clientmodels.Message, error)
- func (tc *ClientImpl) GetCodeSnippet(url string) (string, error)
- func (tc *ClientImpl) GetFileContent(downloadURL string) ([]byte, error)
- func (tc *ClientImpl) GetFileContentStream(downloadURL string, writer *io.PipeWriter, bufferSize int64)
- func (tc *ClientImpl) GetFileSizeAndDownloadURL(weburl string) (int64, string, error)
- func (tc *ClientImpl) GetHostedFileContent(activityIDs *clientmodels.ActivityIDs) (contentData []byte, err error)
- func (tc *ClientImpl) GetMe() (*clientmodels.User, error)
- func (tc *ClientImpl) GetMessage(teamID, channelID, messageID string) (*clientmodels.Message, error)
- func (tc *ClientImpl) GetMyID() (string, error)
- func (tc *ClientImpl) GetPresencesForUsers(userIDs []string) (map[string]clientmodels.Presence, error)
- func (tc *ClientImpl) GetReply(teamID, channelID, messageID, replyID string) (*clientmodels.Message, error)
- func (tc *ClientImpl) GetTeam(teamID string) (*clientmodels.Team, error)
- func (tc *ClientImpl) GetTeams(filterQuery string) ([]*clientmodels.Team, error)
- func (tc *ClientImpl) GetTeamsAppIDByExternalID(externalID string) (string, error)
- func (tc *ClientImpl) GetTenantID() string
- func (tc *ClientImpl) GetUser(userID string) (*clientmodels.User, error)
- func (tc *ClientImpl) GetUserAvatar(userID string) ([]byte, error)
- func (tc *ClientImpl) ListChannelMessages(teamID string, channelID string, since time.Time) ([]*clientmodels.Message, error)
- func (tc *ClientImpl) ListChannels(teamID string) ([]clientmodels.Channel, error)
- func (tc *ClientImpl) ListChatMessages(chatID string, since time.Time) ([]*clientmodels.Message, error)
- func (tc *ClientImpl) ListSubscriptions() ([]*clientmodels.Subscription, error)
- func (tc *ClientImpl) ListTeams() ([]clientmodels.Team, error)
- func (tc *ClientImpl) ListUsers() ([]clientmodels.User, error)
- func (tc *ClientImpl) RefreshSubscription(subscriptionID string) (*time.Time, error)
- func (tc *ClientImpl) RefreshToken(token *oauth2.Token) (*oauth2.Token, error)
- func (tc *ClientImpl) SendBatchRequestAndGetMessage(batchRequest msgraphcore.BatchRequest, ...) (*clientmodels.Message, error)
- func (tc *ClientImpl) SendChat(chatID, message string, parentMessage *clientmodels.Message, ...) (*clientmodels.Message, error)
- func (tc *ClientImpl) SendMessage(teamID, channelID, parentID, message string) (*clientmodels.Message, error)
- func (tc *ClientImpl) SendMessageWithAttachments(teamID, channelID, parentID, message string, ...) (*clientmodels.Message, error)
- func (tc *ClientImpl) SendUserActivity(userIDs []string, activityType, message string, webURL url.URL, ...) error
- func (tc *ClientImpl) SetChatReaction(chatID, messageID, userID, emoji string) (*clientmodels.Message, error)
- func (tc *ClientImpl) SetReaction(teamID, channelID, parentID, messageID, userID, emoji string) (*clientmodels.Message, error)
- func (tc *ClientImpl) SubscribeToChannel(teamID, channelID, baseURL, webhookSecret string, certificate string) (*clientmodels.Subscription, error)
- func (tc *ClientImpl) SubscribeToChannels(baseURL, webhookSecret string, pay bool, certificate string) (*clientmodels.Subscription, error)
- func (tc *ClientImpl) SubscribeToChats(baseURL, webhookSecret string, pay bool, certificate string) (*clientmodels.Subscription, error)
- func (tc *ClientImpl) SubscribeToUserChats(userID, baseURL, webhookSecret string, pay bool, certificate string) (*clientmodels.Subscription, error)
- func (tc *ClientImpl) UnsetChatReaction(chatID, messageID, userID, emoji string) (*clientmodels.Message, error)
- func (tc *ClientImpl) UnsetReaction(teamID, channelID, parentID, messageID, userID, emoji string) (*clientmodels.Message, error)
- func (tc *ClientImpl) UpdateChatMessage(chatID, msgID, message string, mentions []models.ChatMessageMentionable) (*clientmodels.Message, error)
- func (tc *ClientImpl) UpdateMessage(teamID, channelID, parentID, msgID, message string, ...) (*clientmodels.Message, error)
- func (tc *ClientImpl) UploadFile(teamID, channelID, filename string, filesize int, mimeType string, ...) (*clientmodels.Attachment, error)
- type ConcurrentGraphRequestAdapter
- type ConcurrentSerializationWriterFactory
- type EncryptedContent
- type GraphAPIError
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetAuthURL ¶
func GetAuthURL(cloudEnv cloudenv.Environment, redirectURL string, tenantID string, clientID string, clientSecret string, state string, codeVerifier string) string
GetAuthURL builds the delegated OAuth authorize URL. Like NewTokenClient, its per-cloud wiring is unverified: there are no in-repo callers of the delegated flow today, so verify against a gov tenant before relying on this path.
func GetMessageFromJSON ¶
func GetMessageFromJSON(data []byte, teamID, channelID, chatID string) (*clientmodels.Message, error)
func GetResourceIDs ¶
func GetResourceIDs(resource string) clientmodels.ActivityIDs
func IsOAuthError ¶
func NormalizeGraphAPIError ¶
Types ¶
type AccessToken ¶
type AccessToken struct {
// contains filtered or unexported fields
}
func (AccessToken) GetToken ¶
func (at AccessToken) GetToken(_ context.Context, _ policy.TokenRequestOptions) (azcore.AccessToken, error)
type ChatMessageAttachment ¶
type ChatMessageAttachment struct {
MessageID string `json:"messageId"`
MessagePreview string `json:"messagePreview"`
MessageSender ChatMessageAttachmentSender `json:"messageSender"`
}
type ChatMessageAttachmentSender ¶
type ChatMessageAttachmentSender struct {
User ChatMessageAttachmentUser `json:"user"`
}
type Client ¶
type Client interface {
Connect() error
CreateOrGetChatForUsers(usersIDs []string) (*clientmodels.Chat, error)
SendMessage(teamID, channelID, parentID, message string) (*clientmodels.Message, error)
SendMessageWithAttachments(teamID, channelID, parentID, message string, attachments []*clientmodels.Attachment, mentions []models.ChatMessageMentionable) (*clientmodels.Message, error)
SendChat(chatID, message string, parentMessage *clientmodels.Message, attachments []*clientmodels.Attachment, mentions []models.ChatMessageMentionable) (*clientmodels.Message, error)
UploadFile(teamID, channelID, filename string, filesize int, mimeType string, data io.Reader, chat *clientmodels.Chat) (*clientmodels.Attachment, error)
UpdateMessage(teamID, channelID, parentID, msgID, message string, mentions []models.ChatMessageMentionable) (*clientmodels.Message, error)
UpdateChatMessage(chatID, msgID, message string, mentions []models.ChatMessageMentionable) (*clientmodels.Message, error)
DeleteMessage(teamID, channelID, parentID, msgID string) error
DeleteChatMessage(userID, chatID, msgID string) error
SubscribeToChannels(baseURL, webhookSecret string, pay bool, certificate string) (*clientmodels.Subscription, error)
SubscribeToChats(baseURL, webhookSecret string, pay bool, certificate string) (*clientmodels.Subscription, error)
SubscribeToChannel(teamID, channelID, baseURL, webhookSecret, certificate string) (*clientmodels.Subscription, error)
SubscribeToUserChats(user, baseURL, webhookSecret string, pay bool, certificate string) (*clientmodels.Subscription, error)
RefreshSubscription(subscriptionID string) (*time.Time, error)
DeleteSubscription(subscriptionID string) error
ListSubscriptions() ([]*clientmodels.Subscription, error)
GetTeam(teamID string) (*clientmodels.Team, error)
GetTeams(filterQuery string) ([]*clientmodels.Team, error)
GetChannelInTeam(teamID, channelID string) (*clientmodels.Channel, error)
GetChannelsInTeam(teamID, filterQuery string) ([]*clientmodels.Channel, error)
GetChat(chatID string) (*clientmodels.Chat, error)
GetChatMessage(chatID, messageID string) (*clientmodels.Message, error)
SetChatReaction(chatID, messageID, userID, emoji string) (*clientmodels.Message, error)
SetReaction(teamID, channelID, parentID, messageID, userID, emoji string) (*clientmodels.Message, error)
UnsetChatReaction(chatID, messageID, userID, emoji string) (*clientmodels.Message, error)
UnsetReaction(teamID, channelID, parentID, messageID, userID, emoji string) (*clientmodels.Message, error)
GetMessage(teamID, channelID, messageID string) (*clientmodels.Message, error)
GetReply(teamID, channelID, messageID, replyID string) (*clientmodels.Message, error)
GetUserAvatar(userID string) ([]byte, error)
GetUser(userID string) (*clientmodels.User, error)
GetMyID() (string, error)
GetMe() (*clientmodels.User, error)
GetFileSizeAndDownloadURL(weburl string) (int64, string, error)
GetFileContent(downloadURL string) ([]byte, error)
GetFileContentStream(downloadURL string, writer *io.PipeWriter, bufferSize int64)
GetHostedFileContent(activityIDs *clientmodels.ActivityIDs) ([]byte, error)
GetCodeSnippet(url string) (string, error)
RefreshToken(token *oauth2.Token) (*oauth2.Token, error)
ListUsers() ([]clientmodels.User, error)
ListTeams() ([]clientmodels.Team, error)
ListChannels(teamID string) ([]clientmodels.Channel, error)
ListChannelMessages(teamID, channelID string, since time.Time) ([]*clientmodels.Message, error)
ListChatMessages(chatID string, since time.Time) ([]*clientmodels.Message, error)
GetApp(applicationID string) (*clientmodels.App, error)
GetPresencesForUsers(userIDs []string) (map[string]clientmodels.Presence, error)
GetTeamsAppIDByExternalID(externalID string) (string, error)
SendUserActivity(userIDs []string, activityType, message string, webURL url.URL, params map[string]string) error
GetTenantID() string
}
func NewApp ¶
func NewApp(cloudEnv cloudenv.Environment, tenantID, clientID, clientSecret string, logService *pluginapi.LogService) Client
func NewManualClient ¶
func NewManualClient(tenantID, clientID string, logService *pluginapi.LogService, client *msgraphsdk.GraphServiceClient) Client
NewManualClient wraps a pre-built Graph client (the caller supplies the client and therefore its endpoint), so the cloud environment here is only used for any incidental cloud-derived values. It intentionally hardcodes the commercial cloud: it has no in-repo callers today, so no national cloud is threaded in. If it gains a caller for a gov tenant, thread the cloud environment through.
func NewTokenClient ¶
func NewTokenClient(cloudEnv cloudenv.Environment, redirectURL, tenantID, clientID, clientSecret string, token *oauth2.Token, logService *pluginapi.LogService) Client
NewTokenClient builds a delegated (user token) client. Its cloud wiring is unverified: there are no in-repo callers of the delegated OAuth flow today, so the per-cloud OAuth endpoints below have not been exercised end to end. Verify against a gov tenant before relying on this path.
type ClientImpl ¶
type ClientImpl struct {
// contains filtered or unexported fields
}
func (*ClientImpl) Connect ¶
func (tc *ClientImpl) Connect() error
func (*ClientImpl) CreateChat ¶
func (tc *ClientImpl) CreateChat(chatType models.ChatType, userIDs []string) (*clientmodels.Chat, error)
func (*ClientImpl) CreateOrGetChatForUsers ¶
func (tc *ClientImpl) CreateOrGetChatForUsers(userIDs []string) (*clientmodels.Chat, error)
func (*ClientImpl) DeleteChatMessage ¶
func (tc *ClientImpl) DeleteChatMessage(userID, chatID, msgID string) error
func (*ClientImpl) DeleteMessage ¶
func (tc *ClientImpl) DeleteMessage(teamID, channelID, parentID, msgID string) error
func (*ClientImpl) DeleteSubscription ¶
func (tc *ClientImpl) DeleteSubscription(subscriptionID string) error
func (*ClientImpl) GetApp ¶
func (tc *ClientImpl) GetApp(applicationID string) (*clientmodels.App, error)
func (*ClientImpl) GetChannelInTeam ¶
func (tc *ClientImpl) GetChannelInTeam(teamID, channelID string) (*clientmodels.Channel, error)
func (*ClientImpl) GetChannelsInTeam ¶
func (tc *ClientImpl) GetChannelsInTeam(teamID, filterQuery string) ([]*clientmodels.Channel, error)
func (*ClientImpl) GetChat ¶
func (tc *ClientImpl) GetChat(chatID string) (*clientmodels.Chat, error)
func (*ClientImpl) GetChatMessage ¶
func (tc *ClientImpl) GetChatMessage(chatID, messageID string) (*clientmodels.Message, error)
func (*ClientImpl) GetCodeSnippet ¶
func (tc *ClientImpl) GetCodeSnippet(url string) (string, error)
func (*ClientImpl) GetFileContent ¶
func (tc *ClientImpl) GetFileContent(downloadURL string) ([]byte, error)
func (*ClientImpl) GetFileContentStream ¶
func (tc *ClientImpl) GetFileContentStream(downloadURL string, writer *io.PipeWriter, bufferSize int64)
func (*ClientImpl) GetFileSizeAndDownloadURL ¶
func (tc *ClientImpl) GetFileSizeAndDownloadURL(weburl string) (int64, string, error)
func (*ClientImpl) GetHostedFileContent ¶
func (tc *ClientImpl) GetHostedFileContent(activityIDs *clientmodels.ActivityIDs) (contentData []byte, err error)
func (*ClientImpl) GetMe ¶
func (tc *ClientImpl) GetMe() (*clientmodels.User, error)
func (*ClientImpl) GetMessage ¶
func (tc *ClientImpl) GetMessage(teamID, channelID, messageID string) (*clientmodels.Message, error)
func (*ClientImpl) GetMyID ¶
func (tc *ClientImpl) GetMyID() (string, error)
func (*ClientImpl) GetPresencesForUsers ¶
func (tc *ClientImpl) GetPresencesForUsers(userIDs []string) (map[string]clientmodels.Presence, error)
func (*ClientImpl) GetReply ¶
func (tc *ClientImpl) GetReply(teamID, channelID, messageID, replyID string) (*clientmodels.Message, error)
func (*ClientImpl) GetTeam ¶
func (tc *ClientImpl) GetTeam(teamID string) (*clientmodels.Team, error)
func (*ClientImpl) GetTeams ¶
func (tc *ClientImpl) GetTeams(filterQuery string) ([]*clientmodels.Team, error)
func (*ClientImpl) GetTeamsAppIDByExternalID ¶
func (tc *ClientImpl) GetTeamsAppIDByExternalID(externalID string) (string, error)
func (*ClientImpl) GetTenantID ¶
func (tc *ClientImpl) GetTenantID() string
func (*ClientImpl) GetUser ¶
func (tc *ClientImpl) GetUser(userID string) (*clientmodels.User, error)
func (*ClientImpl) GetUserAvatar ¶
func (tc *ClientImpl) GetUserAvatar(userID string) ([]byte, error)
func (*ClientImpl) ListChannelMessages ¶
func (tc *ClientImpl) ListChannelMessages(teamID string, channelID string, since time.Time) ([]*clientmodels.Message, error)
func (*ClientImpl) ListChannels ¶
func (tc *ClientImpl) ListChannels(teamID string) ([]clientmodels.Channel, error)
func (*ClientImpl) ListChatMessages ¶
func (tc *ClientImpl) ListChatMessages(chatID string, since time.Time) ([]*clientmodels.Message, error)
func (*ClientImpl) ListSubscriptions ¶
func (tc *ClientImpl) ListSubscriptions() ([]*clientmodels.Subscription, error)
func (*ClientImpl) ListTeams ¶
func (tc *ClientImpl) ListTeams() ([]clientmodels.Team, error)
func (*ClientImpl) ListUsers ¶
func (tc *ClientImpl) ListUsers() ([]clientmodels.User, error)
func (*ClientImpl) RefreshSubscription ¶
func (tc *ClientImpl) RefreshSubscription(subscriptionID string) (*time.Time, error)
func (*ClientImpl) RefreshToken ¶
func (*ClientImpl) SendBatchRequestAndGetMessage ¶
func (tc *ClientImpl) SendBatchRequestAndGetMessage(batchRequest msgraphcore.BatchRequest, getMessageRequestItem msgraphcore.BatchItem) (*clientmodels.Message, error)
func (*ClientImpl) SendChat ¶
func (tc *ClientImpl) SendChat(chatID, message string, parentMessage *clientmodels.Message, attachments []*clientmodels.Attachment, mentions []models.ChatMessageMentionable) (*clientmodels.Message, error)
func (*ClientImpl) SendMessage ¶
func (tc *ClientImpl) SendMessage(teamID, channelID, parentID, message string) (*clientmodels.Message, error)
func (*ClientImpl) SendMessageWithAttachments ¶
func (tc *ClientImpl) SendMessageWithAttachments(teamID, channelID, parentID, message string, attachments []*clientmodels.Attachment, mentions []models.ChatMessageMentionable) (*clientmodels.Message, error)
func (*ClientImpl) SendUserActivity ¶
func (*ClientImpl) SetChatReaction ¶
func (tc *ClientImpl) SetChatReaction(chatID, messageID, userID, emoji string) (*clientmodels.Message, error)
func (*ClientImpl) SetReaction ¶
func (tc *ClientImpl) SetReaction(teamID, channelID, parentID, messageID, userID, emoji string) (*clientmodels.Message, error)
func (*ClientImpl) SubscribeToChannel ¶
func (tc *ClientImpl) SubscribeToChannel(teamID, channelID, baseURL, webhookSecret string, certificate string) (*clientmodels.Subscription, error)
func (*ClientImpl) SubscribeToChannels ¶
func (tc *ClientImpl) SubscribeToChannels(baseURL, webhookSecret string, pay bool, certificate string) (*clientmodels.Subscription, error)
func (*ClientImpl) SubscribeToChats ¶
func (tc *ClientImpl) SubscribeToChats(baseURL, webhookSecret string, pay bool, certificate string) (*clientmodels.Subscription, error)
func (*ClientImpl) SubscribeToUserChats ¶
func (tc *ClientImpl) SubscribeToUserChats(userID, baseURL, webhookSecret string, pay bool, certificate string) (*clientmodels.Subscription, error)
func (*ClientImpl) UnsetChatReaction ¶
func (tc *ClientImpl) UnsetChatReaction(chatID, messageID, userID, emoji string) (*clientmodels.Message, error)
func (*ClientImpl) UnsetReaction ¶
func (tc *ClientImpl) UnsetReaction(teamID, channelID, parentID, messageID, userID, emoji string) (*clientmodels.Message, error)
func (*ClientImpl) UpdateChatMessage ¶
func (tc *ClientImpl) UpdateChatMessage(chatID, msgID, message string, mentions []models.ChatMessageMentionable) (*clientmodels.Message, error)
func (*ClientImpl) UpdateMessage ¶
func (tc *ClientImpl) UpdateMessage(teamID, channelID, parentID, msgID, message string, mentions []models.ChatMessageMentionable) (*clientmodels.Message, error)
func (*ClientImpl) UploadFile ¶
func (tc *ClientImpl) UploadFile(teamID, channelID, filename string, filesize int, mimeType string, data io.Reader, chat *clientmodels.Chat) (*clientmodels.Attachment, error)
type ConcurrentGraphRequestAdapter ¶
type ConcurrentGraphRequestAdapter struct {
msgraphsdk.GraphRequestAdapter
// contains filtered or unexported fields
}
func (*ConcurrentGraphRequestAdapter) GetSerializationWriterFactory ¶
func (a *ConcurrentGraphRequestAdapter) GetSerializationWriterFactory() serialization.SerializationWriterFactory
type ConcurrentSerializationWriterFactory ¶
type ConcurrentSerializationWriterFactory struct {
serialization.SerializationWriterFactory
// contains filtered or unexported fields
}
func (*ConcurrentSerializationWriterFactory) GetSerializationWriter ¶
func (sf *ConcurrentSerializationWriterFactory) GetSerializationWriter(contentType string) (serialization.SerializationWriter, error)
type EncryptedContent ¶
type GraphAPIError ¶
type GraphAPIError struct {
Code string `json:"code"`
StatusCode int `json:"status_code"`
Message string `json:"message"`
ClientRequestID string `json:"client_request_id"`
RequestID string `json:"request_id"`
Timestamp time.Time `json:"timestamp"`
}
func (*GraphAPIError) Error ¶
func (e *GraphAPIError) Error() string