api

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Jan 16, 2026 License: MIT Imports: 20 Imported by: 0

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

Constants

This section is empty.

Variables

This section is empty.

Functions

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 OneOnOneChatAPI interface {
	CreateOneOnOneChat(ctx context.Context, recipientRef string) (msmodels.Chatable, *sender.RequestError)
	GetOneOnOneChat(ctx context.Context, chatID string) (msmodels.Chatable, *sender.RequestError)
}

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 NewSearch

func NewSearch(client *graph.GraphServiceClient, senderCfg *config.SenderConfig) SearchAPI

type SearchEntity

type SearchEntity struct {
	ChannelID *string
	TeamID    *string
	MessageID *string
	ChatID    *string
}

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

Jump to

Keyboard shortcuts

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