Documentation
¶
Overview ¶
Package api provides interfaces and implementations for Microsoft Teams operations backed by Microsoft Graph.
The package groups functionality into APIs for teams, channels, chats, users, and messaging, and returns Graph model types along with request errors from the internal sender layer.
Index ¶
- func GetMe(ctx context.Context, client *graph.GraphServiceClient, ...) (msmodels.Userable, *sender.RequestError)
- func ParseQuery(s *search.SearchMessagesOptions) string
- type ChannelAPI
- type ChatAPI
- type GroupChatAPI
- type OneOnOneChatAPI
- type SearchAPI
- type SearchEntity
- type SearchMessage
- type TeamAPI
- type UserAPI
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetMe ¶
func GetMe(ctx context.Context, client *graph.GraphServiceClient, senderCfg *config.SenderConfig) (msmodels.Userable, *sender.RequestError)
func ParseQuery ¶
func ParseQuery(s *search.SearchMessagesOptions) string
ParseQuery constructs the final search query string based on the provided options.
Types ¶
type ChannelAPI ¶
type ChannelAPI interface {
ListChannels(ctx context.Context, teamID string) (msmodels.ChannelCollectionResponseable, *sender.RequestError)
GetChannel(ctx context.Context, teamID, channelID string) (msmodels.Channelable, *sender.RequestError)
CreateStandardChannel(ctx context.Context, teamID string, channel msmodels.Channelable) (msmodels.Channelable, *sender.RequestError)
CreatePrivateChannelWithMembers(ctx context.Context, teamID, displayName string, memberIDs, ownersID []string) (msmodels.Channelable, *sender.RequestError)
DeleteChannel(ctx context.Context, teamID, channelID string) *sender.RequestError
SendMessage(ctx context.Context, teamID, channelID, content, contentType string, mentions []msmodels.ChatMessageMentionable) (msmodels.ChatMessageable, *sender.RequestError)
SendReply(ctx context.Context, teamID, channelID, messageID, content, contentType string, mentions []msmodels.ChatMessageMentionable) (msmodels.ChatMessageable, *sender.RequestError)
ListMessages(ctx context.Context, teamID, channelID string, top *int32, includeSystem bool) (msmodels.ChatMessageCollectionResponseable, *sender.RequestError)
GetMessage(ctx context.Context, teamID, channelID, messageID string) (msmodels.ChatMessageable, *sender.RequestError)
ListReplies(ctx context.Context, teamID, channelID, messageID string, top *int32, includeSystem bool) (msmodels.ChatMessageCollectionResponseable, *sender.RequestError)
GetReply(ctx context.Context, teamID, channelID, messageID, replyID string) (msmodels.ChatMessageable, *sender.RequestError)
ListMembers(ctx context.Context, teamID, channelID string) (msmodels.ConversationMemberCollectionResponseable, *sender.RequestError)
AddMember(ctx context.Context, teamID, channelID, userRef string, roles []string) (msmodels.ConversationMemberable, *sender.RequestError)
UpdateMemberRoles(ctx context.Context, teamID, channelID, memberID string, roles []string) (msmodels.ConversationMemberable, *sender.RequestError)
RemoveMember(ctx context.Context, teamID, channelID, memberID string) *sender.RequestError
ListMessagesNext(ctx context.Context, teamID, channelID, nextLink string, includeSystem bool) (msmodels.ChatMessageCollectionResponseable, *sender.RequestError)
ListRepliesNext(ctx context.Context, teamID, channelID, messageID, nextLink string, includeSystem bool) (msmodels.ChatMessageCollectionResponseable, *sender.RequestError)
SearchChannelMessages(ctx context.Context, teamID, channelID *string, opts *search.SearchMessagesOptions, searchConfig *search.SearchConfig) ([]*SearchMessage, *sender.RequestError, *int32)
}
func GetChannelAPI ¶
func GetChannelAPI(c *graph.GraphServiceClient, sCfg *config.SenderConfig, searchAPI SearchAPI) ChannelAPI
func NewChannels ¶
func NewChannels(client *graph.GraphServiceClient, senderCfg *config.SenderConfig, searchAPI SearchAPI) ChannelAPI
type ChatAPI ¶
type ChatAPI interface {
OneOnOneChatAPI
GroupChatAPI
ListMessages(ctx context.Context, chatID string, includeSystem bool) (msmodels.ChatMessageCollectionResponseable, *sender.RequestError)
ListChats(ctx context.Context, chatType *string) (msmodels.ChatCollectionResponseable, *sender.RequestError)
SendMessage(ctx context.Context, chatID, content, contentType string, mentions []msmodels.ChatMessageMentionable) (msmodels.ChatMessageable, *sender.RequestError)
DeleteMessage(ctx context.Context, chatID, messageID string) *sender.RequestError
GetMessage(ctx context.Context, chatID, messageID string) (msmodels.ChatMessageable, *sender.RequestError)
ListAllMessages(ctx context.Context, startTime, endTime *time.Time, top *int32) (msmodels.ChatMessageCollectionResponseable, *sender.RequestError)
ListPinnedMessages(ctx context.Context, chatID string) (msmodels.PinnedChatMessageInfoCollectionResponseable, *sender.RequestError)
PinMessage(ctx context.Context, chatID, messageID string) *sender.RequestError
UnpinMessage(ctx context.Context, chatID, pinnedID string) *sender.RequestError
ListMessagesNext(ctx context.Context, chatID, nextLink string, includeSystem bool) (msmodels.ChatMessageCollectionResponseable, *sender.RequestError)
SearchChatMessages(ctx context.Context, chatID *string, opts *search.SearchMessagesOptions, searchConfig *search.SearchConfig) ([]*SearchMessage, *sender.RequestError, *int32)
}
func GetChatAPI ¶
func GetChatAPI(c *graph.GraphServiceClient, sCfg *config.SenderConfig, searchAPI SearchAPI) ChatAPI
func NewChat ¶
func NewChat(client *graph.GraphServiceClient, senderCfg *config.SenderConfig, searchAPI SearchAPI) ChatAPI
type GroupChatAPI ¶
type GroupChatAPI interface {
GetGroupChat(ctx context.Context, chatID string) (msmodels.Chatable, *sender.RequestError)
CreateGroupChat(ctx context.Context, recipientRefs []string, topic string, includeMe bool) (msmodels.Chatable, *sender.RequestError)
AddMemberToGroupChat(ctx context.Context, chatID, userRef string) (msmodels.ConversationMemberable, *sender.RequestError)
RemoveMemberFromGroupChat(ctx context.Context, chatID, memberID string) *sender.RequestError
ListGroupChatMembers(ctx context.Context, chatID string) (msmodels.ConversationMemberCollectionResponseable, *sender.RequestError)
UpdateGroupChatTopic(ctx context.Context, chatID, topic string) (msmodels.Chatable, *sender.RequestError)
}
type OneOnOneChatAPI ¶
type SearchAPI ¶
type SearchAPI interface {
// SearchMessages runs POST /search/query with entityTypes=["chatMessage"].
SearchMessages(ctx context.Context, searchRequest *search.SearchMessagesOptions) (graphsearch.QueryPostResponseable, *sender.RequestError)
}
func GetSearchAPI ¶
func GetSearchAPI(c *graph.GraphServiceClient, sCfg *config.SenderConfig) SearchAPI
func NewSearch ¶
func NewSearch(client *graph.GraphServiceClient, senderCfg *config.SenderConfig) SearchAPI
type SearchEntity ¶
type SearchMessage ¶
type SearchMessage struct {
Message msmodels.ChatMessageable
ChannelID *string
TeamID *string
ChatID *string
}
type TeamAPI ¶
type TeamAPI interface {
CreateFromTemplate(ctx context.Context, displayName, description string, owners, members []string, visibility string, includeMe bool) (string, *sender.RequestError)
CreateViaGroup(ctx context.Context, displayName, mailNickname, visibility string) (string, *sender.RequestError)
Get(ctx context.Context, teamID string) (msmodels.Teamable, *sender.RequestError)
ListMyJoined(ctx context.Context) (msmodels.TeamCollectionResponseable, *sender.RequestError)
Archive(ctx context.Context, teamID string, spoReadOnlyForMembers *bool) *sender.RequestError
Unarchive(ctx context.Context, teamID string) *sender.RequestError
Delete(ctx context.Context, teamID string) *sender.RequestError
RestoreDeleted(ctx context.Context, deletedGroupID string) (msmodels.DirectoryObjectable, *sender.RequestError)
UpdateTeam(ctx context.Context, teamID string, update *models.TeamUpdate) (msmodels.Teamable, *sender.RequestError)
ListMembers(ctx context.Context, teamID string) (msmodels.ConversationMemberCollectionResponseable, *sender.RequestError)
GetMember(ctx context.Context, teamID, memberID string) (msmodels.ConversationMemberable, *sender.RequestError)
AddMember(ctx context.Context, teamID, userRef string, roles []string) (msmodels.ConversationMemberable, *sender.RequestError)
RemoveMember(ctx context.Context, teamID, memberID string) *sender.RequestError
UpdateMemberRoles(ctx context.Context, teamID, memberID string, roles []string) (msmodels.ConversationMemberable, *sender.RequestError)
ListAllMessages(ctx context.Context, teamID string, startTime, endTime *time.Time, top *int32) (msmodels.ChatMessageCollectionResponseable, *sender.RequestError)
}
func GetTeamAPI ¶
func GetTeamAPI(c *graph.GraphServiceClient, sCfg *config.SenderConfig) TeamAPI
func NewTeams ¶
func NewTeams(client *graph.GraphServiceClient, senderCfg *config.SenderConfig) TeamAPI
type UserAPI ¶
type UserAPI interface {
GetUserByEmailOrUPN(ctx context.Context, emailOrUPN string) (msmodels.Userable, *sender.RequestError)
}
func GetUserAPI ¶
func GetUserAPI(c *graph.GraphServiceClient, sCfg *config.SenderConfig) UserAPI
func NewUser ¶
func NewUser(client *graph.GraphServiceClient, senderCfg *config.SenderConfig) UserAPI
Click to show internal directories.
Click to hide internal directories.