rest

package
v0.6.12 Latest Latest
Warning

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

Go to latest
Published: Jan 11, 2022 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultConfig = Config{
	HTTPClient:        &http.Client{Timeout: 20 * time.Second},
	RateLimiterConfig: &rrate.DefaultConfig,
	UserAgent:         fmt.Sprintf("DiscordBot (%s, %s)", info.GitHub, info.Version),
}

DefaultConfig is the configuration which is used by default

Functions

func NewError

func NewError(rq *http.Request, rqBody []byte, rs *http.Response, rsBody []byte) error

NewError returns a new Error with the given http.Request, http.Response

func NewErrorAPIErr

func NewErrorAPIErr(rq *http.Request, rqBody []byte, rs *http.Response, rsBody []byte, apiError discord.APIError) error

NewErrorAPIErr returns a new Error with the given http.Request, http.Response & discord.APIError

func NewErrorErr

func NewErrorErr(rq *http.Request, rqBody []byte, rs *http.Response, rsBody []byte, err error) error

NewErrorErr returns a new Error with the given http.Request, http.Response & error

Types

type ApplicationService

type ApplicationService interface {
	Service
	GetGlobalCommands(applicationID discord.Snowflake, opts ...RequestOpt) ([]discord.ApplicationCommand, error)
	GetGlobalCommand(applicationID discord.Snowflake, commandID discord.Snowflake, opts ...RequestOpt) (discord.ApplicationCommand, error)
	CreateGlobalCommand(applicationID discord.Snowflake, commandCreate discord.ApplicationCommandCreate, opts ...RequestOpt) (discord.ApplicationCommand, error)
	SetGlobalCommands(applicationID discord.Snowflake, commandCreates []discord.ApplicationCommandCreate, opts ...RequestOpt) ([]discord.ApplicationCommand, error)
	UpdateGlobalCommand(applicationID discord.Snowflake, commandID discord.Snowflake, commandUpdate discord.ApplicationCommandUpdate, opts ...RequestOpt) (discord.ApplicationCommand, error)
	DeleteGlobalCommand(applicationID discord.Snowflake, commandID discord.Snowflake, opts ...RequestOpt) error

	GetGuildCommands(applicationID discord.Snowflake, guildID discord.Snowflake, opts ...RequestOpt) ([]discord.ApplicationCommand, error)
	GetGuildCommand(applicationID discord.Snowflake, guildID discord.Snowflake, commandID discord.Snowflake, opts ...RequestOpt) (discord.ApplicationCommand, error)
	CreateGuildCommand(applicationID discord.Snowflake, guildID discord.Snowflake, command discord.ApplicationCommandCreate, opts ...RequestOpt) (discord.ApplicationCommand, error)
	SetGuildCommands(applicationID discord.Snowflake, guildID discord.Snowflake, commands []discord.ApplicationCommandCreate, opts ...RequestOpt) ([]discord.ApplicationCommand, error)
	UpdateGuildCommand(applicationID discord.Snowflake, guildID discord.Snowflake, commandID discord.Snowflake, command discord.ApplicationCommandUpdate, opts ...RequestOpt) (discord.ApplicationCommand, error)
	DeleteGuildCommand(applicationID discord.Snowflake, guildID discord.Snowflake, commandID discord.Snowflake, opts ...RequestOpt) error

	GetGuildCommandsPermissions(applicationID discord.Snowflake, guildID discord.Snowflake, opts ...RequestOpt) ([]discord.ApplicationCommandPermissions, error)
	GetGuildCommandPermissions(applicationID discord.Snowflake, guildID discord.Snowflake, commandID discord.Snowflake, opts ...RequestOpt) (*discord.ApplicationCommandPermissions, error)
	SetGuildCommandsPermissions(applicationID discord.Snowflake, guildID discord.Snowflake, commandPermissions []discord.ApplicationCommandPermissionsSet, opts ...RequestOpt) ([]discord.ApplicationCommandPermissions, error)
	SetGuildCommandPermissions(applicationID discord.Snowflake, guildID discord.Snowflake, commandID discord.Snowflake, commandPermissions []discord.ApplicationCommandPermission, opts ...RequestOpt) (*discord.ApplicationCommandPermissions, error)
}

func NewApplicationService

func NewApplicationService(restClient Client) ApplicationService

type AuditLogService

type AuditLogService interface {
	Service
	GetAuditLog(guildID discord.Snowflake, userID discord.Snowflake, actionType discord.AuditLogEvent, before discord.Snowflake, limit int, opts ...RequestOpt) (*discord.AuditLog, error)
}

func NewAuditLogService

func NewAuditLogService(restClient Client) AuditLogService

type AuditLogServiceImpl

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

func (*AuditLogServiceImpl) GetAuditLog

func (s *AuditLogServiceImpl) GetAuditLog(guildID discord.Snowflake, userID discord.Snowflake, actionType discord.AuditLogEvent, before discord.Snowflake, limit int, opts ...RequestOpt) (auditLog *discord.AuditLog, err error)

func (*AuditLogServiceImpl) RestClient

func (s *AuditLogServiceImpl) RestClient() Client

type ChannelService

type ChannelService interface {
	Service
	GetChannel(channelID discord.Snowflake, opts ...RequestOpt) (discord.Channel, error)
	UpdateChannel(channelID discord.Snowflake, channelUpdate discord.ChannelUpdate, opts ...RequestOpt) (discord.Channel, error)
	DeleteChannel(channelID discord.Snowflake, opts ...RequestOpt) error

	GetWebhooks(channelID discord.Snowflake, opts ...RequestOpt) ([]discord.Webhook, error)
	CreateWebhook(channelID discord.Snowflake, webhookCreate discord.WebhookCreate, opts ...RequestOpt) (discord.Webhook, error)

	GetPermissionOverwrites(channelID discord.Snowflake, opts ...RequestOpt) ([]discord.PermissionOverwrite, error)
	GetPermissionOverwrite(channelID discord.Snowflake, overwriteID discord.Snowflake, opts ...RequestOpt) (*discord.PermissionOverwrite, error)
	UpdatePermissionOverwrite(channelID discord.Snowflake, overwriteID discord.Snowflake, permissionOverwrite discord.PermissionOverwriteUpdate, opts ...RequestOpt) error
	DeletePermissionOverwrite(channelID discord.Snowflake, overwriteID discord.Snowflake, opts ...RequestOpt) error

	SendTyping(channelID discord.Snowflake, opts ...RequestOpt) error

	GetMessage(channelID discord.Snowflake, messageID discord.Snowflake, opts ...RequestOpt) (*discord.Message, error)
	GetMessages(channelID discord.Snowflake, around discord.Snowflake, before discord.Snowflake, after discord.Snowflake, limit int, opts ...RequestOpt) ([]discord.Message, error)
	CreateMessage(channelID discord.Snowflake, messageCreate discord.MessageCreate, opts ...RequestOpt) (*discord.Message, error)
	UpdateMessage(channelID discord.Snowflake, messageID discord.Snowflake, messageUpdate discord.MessageUpdate, opts ...RequestOpt) (*discord.Message, error)
	DeleteMessage(channelID discord.Snowflake, messageID discord.Snowflake, opts ...RequestOpt) error
	BulkDeleteMessages(channelID discord.Snowflake, messageIDs []discord.Snowflake, opts ...RequestOpt) error
	CrosspostMessage(channelID discord.Snowflake, messageID discord.Snowflake, opts ...RequestOpt) (*discord.Message, error)

	GetReactions(channelID discord.Snowflake, messageID discord.Snowflake, emoji string, opts ...RequestOpt) ([]discord.User, error)
	AddReaction(channelID discord.Snowflake, messageID discord.Snowflake, emoji string, opts ...RequestOpt) error
	RemoveOwnReaction(channelID discord.Snowflake, messageID discord.Snowflake, emoji string, opts ...RequestOpt) error
	RemoveUserReaction(channelID discord.Snowflake, messageID discord.Snowflake, emoji string, userID discord.Snowflake, opts ...RequestOpt) error
	RemoveAllReactions(channelID discord.Snowflake, messageID discord.Snowflake, opts ...RequestOpt) error
	RemoveAllReactionsForEmoji(channelID discord.Snowflake, messageID discord.Snowflake, emoji string, opts ...RequestOpt) error

	GetPinnedMessages(channelID discord.Snowflake, opts ...RequestOpt) ([]discord.Message, error)
	PinMessage(channelID discord.Snowflake, messageID discord.Snowflake, opts ...RequestOpt) error
	UnpinMessage(channelID discord.Snowflake, messageID discord.Snowflake, opts ...RequestOpt) error
}

func NewChannelService

func NewChannelService(restClient Client) ChannelService

type Check

type Check func() bool

Check is a function which gets executed right before a request is made

type Client

type Client interface {
	// Logger returns the logger the rest client uses
	Logger() log.Logger

	// HTTPClient returns the http.Client the rest client uses
	HTTPClient() *http.Client

	// RateLimiter returns the rrate.Limiter the rest client uses
	RateLimiter() rrate.Limiter
	// Config returns the Config the rest client uses
	Config() Config

	// Close closes the rest client and awaits all pending requests to finish. You can use a cancelling context to abort the waiting
	Close(ctx context.Context) error

	// Do makes a request to the given route.CompiledAPIRoute and marshals the given interface{} as json and unmarshalls the response into the given interface
	Do(route *route.CompiledAPIRoute, rqBody interface{}, rsBody interface{}, opts ...RequestOpt) error
}

Client allows doing requests to different endpoints

func NewClient

func NewClient(config *Config) Client

NewClient constructs a new Client with the given Config struct

type Config

type Config struct {
	Logger            log.Logger
	HTTPClient        *http.Client
	RateLimiter       rrate.Limiter
	RateLimiterConfig *rrate.Config
	BotTokenFunc      func() string
	UserAgent         string
}

Config is the configuration for the rest client

func (*Config) Apply

func (c *Config) Apply(opts []ConfigOpt)

Apply applies the given ConfigOpt(s) to the Config

type ConfigOpt

type ConfigOpt func(config *Config)

ConfigOpt can be used to supply optional parameters to NewClient

func WithBotTokenFunc added in v0.6.6

func WithBotTokenFunc(botTokenFunc func() string) ConfigOpt

WithBotTokenFunc sets the function to get the bot token

func WithHTTPClient

func WithHTTPClient(httpClient *http.Client) ConfigOpt

WithHTTPClient applies a custom http.Client to the rest rate limiter

func WithLogger

func WithLogger(logger log.Logger) ConfigOpt

WithLogger applies a custom logger to the rest rate limiter

func WithRateLimiter

func WithRateLimiter(rateLimiter rrate.Limiter) ConfigOpt

WithRateLimiter applies a custom rrate.Limiter to the rest client

func WithRateLimiterConfig

func WithRateLimiterConfig(rateLimiterConfig rrate.Config) ConfigOpt

WithRateLimiterConfig applies a custom logger to the rest rate limiter

func WithRateLimiterConfigOpts

func WithRateLimiterConfigOpts(opts ...rrate.ConfigOpt) ConfigOpt

WithRateLimiterConfigOpts applies rrate.ConfigOpt for the rrate.Limiter to the rest rate limiter

func WithUserAgent

func WithUserAgent(userAgent string) ConfigOpt

WithUserAgent sets the user agent for all requests

type EmojiService

type EmojiService interface {
	Service
	GetEmojis(guildID discord.Snowflake, opts ...RequestOpt) ([]discord.Emoji, error)
	GetEmoji(guildID discord.Snowflake, emojiID discord.Snowflake, opts ...RequestOpt) (*discord.Emoji, error)
	CreateEmoji(guildID discord.Snowflake, emojiCreate discord.EmojiCreate, opts ...RequestOpt) (*discord.Emoji, error)
	UpdateEmoji(guildID discord.Snowflake, emojiID discord.Snowflake, emojiUpdate discord.EmojiUpdate, opts ...RequestOpt) (*discord.Emoji, error)
	DeleteEmoji(guildID discord.Snowflake, emojiID discord.Snowflake, opts ...RequestOpt) error
}

func NewEmojiService

func NewEmojiService(restClient Client) EmojiService

type Error

type Error struct {
	discord.APIError
	Request  *http.Request
	RqBody   []byte
	Response *http.Response
	RsBody   []byte
	Err      error
}

Error holds the http.Response & an error related to a REST request

func (Error) Error

func (e Error) Error() string

Error returns the error formatted as string

func (Error) Is

func (e Error) Is(target error) bool

Is returns true if the error is a discord.APIError 6 has the same StatusCode

func (Error) String

func (e Error) String() string

Error returns the error formatted as string

type GatewayService

type GatewayService interface {
	Service
	GetGateway(opts ...RequestOpt) (*discord.Gateway, error)
	GetGatewayBot(opts ...RequestOpt) (*discord.GatewayBot, error)
}

func NewGatewayService

func NewGatewayService(restClient Client) GatewayService

type GuildScheduledEventService added in v0.6.1

type GuildScheduledEventService interface {
	Service
	GetGuildScheduledEvents(guildID discord.Snowflake, withUserCounts bool, opts ...RequestOpt) ([]discord.GuildScheduledEvent, error)
	GetGuildScheduledEvent(guildID discord.Snowflake, guildScheduledEventID discord.Snowflake, withUserCounts bool, opts ...RequestOpt) (*discord.GuildScheduledEvent, error)
	CreateGuildScheduledEvent(guildID discord.Snowflake, guildScheduledEventCreate discord.GuildScheduledEventCreate, opts ...RequestOpt) (*discord.GuildScheduledEvent, error)
	UpdateGuildScheduledEvent(guildID discord.Snowflake, guildScheduledEventID discord.Snowflake, guildScheduledEventUpdate discord.GuildScheduledEventUpdate, opts ...RequestOpt) (*discord.GuildScheduledEvent, error)
	DeleteGuildScheduledEvent(guildID discord.Snowflake, guildScheduledEventID discord.Snowflake, opts ...RequestOpt) error

	GetGuildScheduledEventUsers(guildID discord.Snowflake, guildScheduledEventID discord.Snowflake, limit int, withMember bool, before discord.Snowflake, after discord.Snowflake, opts ...RequestOpt) ([]discord.GuildScheduledEventUser, error)
}

func NewGuildScheduledEventService added in v0.6.1

func NewGuildScheduledEventService(restClient Client) GuildScheduledEventService

type GuildService

type GuildService interface {
	Service
	GetGuild(guildID discord.Snowflake, withCounts bool, opts ...RequestOpt) (*discord.Guild, error)
	GetGuildPreview(guildID discord.Snowflake, opts ...RequestOpt) (*discord.GuildPreview, error)
	CreateGuild(guildCreate discord.GuildCreate, opts ...RequestOpt) (*discord.Guild, error)
	UpdateGuild(guildID discord.Snowflake, guildUpdate discord.GuildUpdate, opts ...RequestOpt) (*discord.Guild, error)
	DeleteGuild(guildID discord.Snowflake, opts ...RequestOpt) error

	CreateChannel(guildID discord.Snowflake, guildChannelCreate discord.GuildChannelCreate, opts ...RequestOpt) (discord.GuildChannel, error)

	GetRoles(guildID discord.Snowflake, opts ...RequestOpt) ([]discord.Role, error)
	GetRole(guildID discord.Snowflake, roleID discord.Snowflake, opts ...RequestOpt) ([]discord.Role, error)
	CreateRole(guildID discord.Snowflake, createRole discord.RoleCreate, opts ...RequestOpt) (*discord.Role, error)
	UpdateRole(guildID discord.Snowflake, roleID discord.Snowflake, roleUpdate discord.RoleUpdate, opts ...RequestOpt) (*discord.Role, error)
	UpdateRolePositions(guildID discord.Snowflake, rolePositionUpdates []discord.RolePositionUpdate, opts ...RequestOpt) ([]discord.Role, error)
	DeleteRole(guildID discord.Snowflake, roleID discord.Snowflake, opts ...RequestOpt) error

	GetMember(guildID discord.Snowflake, userID discord.Snowflake, opts ...RequestOpt) (*discord.Member, error)
	GetMembers(guildID discord.Snowflake, opts ...RequestOpt) ([]discord.Member, error)
	SearchMembers(guildID discord.Snowflake, query string, limit int, opts ...RequestOpt) ([]discord.Member, error)
	AddMember(guildID discord.Snowflake, userID discord.Snowflake, memberAdd discord.MemberAdd, opts ...RequestOpt) (*discord.Member, error)
	RemoveMember(guildID discord.Snowflake, userID discord.Snowflake, opts ...RequestOpt) error
	UpdateMember(guildID discord.Snowflake, userID discord.Snowflake, memberUpdate discord.MemberUpdate, opts ...RequestOpt) (*discord.Member, error)
	AddMemberRole(guildID discord.Snowflake, userID discord.Snowflake, roleID discord.Snowflake, opts ...RequestOpt) error
	RemoveMemberRole(guildID discord.Snowflake, userID discord.Snowflake, roleID discord.Snowflake, opts ...RequestOpt) error

	UpdateSelfNick(guildID discord.Snowflake, nick string, opts ...RequestOpt) (*string, error)

	GetBans(guildID discord.Snowflake, opts ...RequestOpt) ([]discord.Ban, error)
	GetBan(guildID discord.Snowflake, userID discord.Snowflake, opts ...RequestOpt) (*discord.Ban, error)
	AddBan(guildID discord.Snowflake, userID discord.Snowflake, deleteMessageDays int, opts ...RequestOpt) error
	DeleteBan(guildID discord.Snowflake, userID discord.Snowflake, opts ...RequestOpt) error

	GetIntegrations(guildID discord.Snowflake, opts ...RequestOpt) ([]discord.Integration, error)
	DeleteIntegration(guildID discord.Snowflake, integrationID discord.Snowflake, opts ...RequestOpt) error
	GetWebhooks(guildID discord.Snowflake, opts ...RequestOpt) ([]discord.Webhook, error)

	UpdateCurrentUserVoiceState(guildID discord.Snowflake, currentUserVoiceStateUpdate discord.UserVoiceStateUpdate, opts ...RequestOpt) error
	UpdateUserVoiceState(guildID discord.Snowflake, userID discord.Snowflake, userVoiceStateUpdate discord.UserVoiceStateUpdate, opts ...RequestOpt) error
}

func NewGuildService

func NewGuildService(restClient Client) GuildService

type GuildTemplateService

type GuildTemplateService interface {
	Service
	GetGuildTemplate(templateCode string, opts ...RequestOpt) (*discord.GuildTemplate, error)
	GetGuildTemplates(guildID discord.Snowflake, opts ...RequestOpt) ([]discord.GuildTemplate, error)
	CreateGuildTemplate(guildID discord.Snowflake, guildTemplateCreate discord.GuildTemplateCreate, opts ...RequestOpt) (*discord.GuildTemplate, error)
	CreateGuildFromTemplate(templateCode string, createGuildFromTemplate discord.GuildFromTemplateCreate, opts ...RequestOpt) (*discord.Guild, error)
	SyncGuildTemplate(guildID discord.Snowflake, templateCode string, opts ...RequestOpt) (*discord.GuildTemplate, error)
	UpdateGuildTemplate(guildID discord.Snowflake, templateCode string, guildTemplateUpdate discord.GuildTemplateUpdate, opts ...RequestOpt) (*discord.GuildTemplate, error)
	DeleteGuildTemplate(guildID discord.Snowflake, templateCode string, opts ...RequestOpt) (*discord.GuildTemplate, error)
}

func NewGuildTemplateService

func NewGuildTemplateService(restClient Client) GuildTemplateService

type InteractionService

type InteractionService interface {
	Service
	GetInteractionResponse(interactionID discord.Snowflake, interactionToken string, opts ...RequestOpt) (*discord.Message, error)
	CreateInteractionResponse(interactionID discord.Snowflake, interactionToken string, interactionResponse discord.InteractionResponse, opts ...RequestOpt) error
	UpdateInteractionResponse(applicationID discord.Snowflake, interactionToken string, messageUpdate discord.MessageUpdate, opts ...RequestOpt) (*discord.Message, error)
	DeleteInteractionResponse(applicationID discord.Snowflake, interactionToken string, opts ...RequestOpt) error

	GetFollowupMessage(applicationID discord.Snowflake, interactionToken string, messageID discord.Snowflake, opts ...RequestOpt) (*discord.Message, error)
	CreateFollowupMessage(applicationID discord.Snowflake, interactionToken string, messageCreate discord.MessageCreate, opts ...RequestOpt) (*discord.Message, error)
	UpdateFollowupMessage(applicationID discord.Snowflake, interactionToken string, messageID discord.Snowflake, messageUpdate discord.MessageUpdate, opts ...RequestOpt) (*discord.Message, error)
	DeleteFollowupMessage(applicationID discord.Snowflake, interactionToken string, messageID discord.Snowflake, opts ...RequestOpt) error
}

func NewInteractionService

func NewInteractionService(restClient Client) InteractionService

type InviteService

type InviteService interface {
	Service
	GetInvite(code string, opts ...RequestOpt) (*discord.Invite, error)
	CreateInvite(channelID discord.Snowflake, inviteCreate discord.InviteCreate, opts ...RequestOpt) (*discord.Invite, error)
	DeleteInvite(code string, opts ...RequestOpt) (*discord.Invite, error)
	GetGuildInvites(guildID discord.Snowflake, opts ...RequestOpt) ([]discord.Invite, error)
	GetChannelInvites(channelID discord.Snowflake, opts ...RequestOpt) ([]discord.Invite, error)
}

func NewInviteService

func NewInviteService(restClient Client) InviteService

type OAuth2Service

type OAuth2Service interface {
	Service
	GetBotApplicationInfo(opts ...RequestOpt) (*discord.Application, error)

	GetCurrentAuthorizationInfo(bearerToken string, opts ...RequestOpt) (*discord.AuthorizationInformation, error)
	GetCurrentUser(bearerToken string, opts ...RequestOpt) (*discord.OAuth2User, error)
	GetCurrentUserGuilds(bearerToken string, before discord.Snowflake, after discord.Snowflake, limit int, opts ...RequestOpt) ([]discord.OAuth2Guild, error)
	GetCurrentUserConnections(bearerToken string, opts ...RequestOpt) ([]discord.Connection, error)

	GetAccessToken(clientID discord.Snowflake, clientSecret string, code string, redirectURI string, opts ...RequestOpt) (*discord.AccessTokenExchange, error)
	RefreshAccessToken(clientID discord.Snowflake, clientSecret string, refreshToken string, opts ...RequestOpt) (*discord.AccessTokenExchange, error)
}

func NewOAuth2Service

func NewOAuth2Service(restClient Client) OAuth2Service

type RequestConfig

type RequestConfig struct {
	Request *http.Request
	Ctx     context.Context
	Checks  []Check
	Delay   time.Duration
}

RequestConfig are additional options for the request

func (*RequestConfig) Apply

func (c *RequestConfig) Apply(opts []RequestOpt)

Apply applies the given RequestOpt(s) to the RequestConfig & sets the context if none is set

type RequestOpt

type RequestOpt func(config *RequestConfig)

RequestOpt can be used to supply optional parameters to Client.Do

func WithCheck

func WithCheck(check Check) RequestOpt

WithCheck adds a new check to the request

func WithCtx

func WithCtx(ctx context.Context) RequestOpt

WithCtx applies a custom context to the request

func WithDelay

func WithDelay(delay time.Duration) RequestOpt

WithDelay applies a delay to the request

func WithHeader

func WithHeader(key string, value string) RequestOpt

WithHeader adds a custom header to the request

func WithQueryParam

func WithQueryParam(param string, value interface{}) RequestOpt

WithQueryParam applies a custom query parameter to the request

func WithReason

func WithReason(reason string) RequestOpt

WithReason adds a reason header to the request. Not all discord endpoints support this

type Service

type Service interface {
	RestClient() Client
}

type Services

type Services interface {
	Logger() log.Logger
	RestClient() Client
	HTTPClient() *http.Client
	Close(ctx context.Context) error
	ApplicationService() ApplicationService
	OAuth2Service() OAuth2Service
	AuditLogService() AuditLogService
	GatewayService() GatewayService
	GuildService() GuildService
	ChannelService() ChannelService
	ThreadService() ThreadService
	InteractionService() InteractionService
	InviteService() InviteService
	GuildTemplateService() GuildTemplateService
	UserService() UserService
	VoiceService() VoiceService
	WebhookService() WebhookService
	StageInstanceService() StageInstanceService
	EmojiService() EmojiService
	StickerService() StickerService
	GuildScheduledEventService() GuildScheduledEventService
}

Services is a manager for all of disgo's HTTP requests

func NewServices

func NewServices(logger log.Logger, restClient Client) Services

NewServices returns a new default Services

type StageInstanceService

type StageInstanceService interface {
	Service
	GetStageInstance(guildID discord.Snowflake, opts ...RequestOpt) (*discord.StageInstance, error)
	CreateStageInstance(stageInstanceCreate discord.StageInstanceCreate, opts ...RequestOpt) (*discord.StageInstance, error)
	UpdateStageInstance(guildID discord.Snowflake, stageInstanceUpdate discord.StageInstanceUpdate, opts ...RequestOpt) (*discord.StageInstance, error)
	DeleteStageInstance(guildID discord.Snowflake, opts ...RequestOpt) error
}

func NewStageInstanceService

func NewStageInstanceService(restClient Client) StageInstanceService

type StickerService

type StickerService interface {
	GetNitroStickerPacks(opts ...RequestOpt) ([]discord.StickerPack, error)
	GetSticker(stickerID discord.Snowflake, opts ...RequestOpt) (*discord.Sticker, error)
	GetStickers(guildID discord.Snowflake, opts ...RequestOpt) ([]discord.Sticker, error)
	CreateSticker(guildID discord.Snowflake, createSticker discord.StickerCreate, opts ...RequestOpt) (*discord.Sticker, error)
	UpdateSticker(guildID discord.Snowflake, stickerID discord.Snowflake, stickerUpdate discord.StickerUpdate, opts ...RequestOpt) (*discord.Sticker, error)
	DeleteSticker(guildID discord.Snowflake, stickerID discord.Snowflake, opts ...RequestOpt) error
}

func NewStickerService

func NewStickerService(restClient Client) StickerService

type ThreadService

type ThreadService interface {
	Service
	CreateThreadWithMessage(channelID discord.Snowflake, messageID discord.Snowflake, threadCreateWithMessage discord.ThreadCreateWithMessage, opts ...RequestOpt) (thread discord.GuildThread, err error)
	CreateThread(channelID discord.Snowflake, threadCreate discord.ThreadCreate, opts ...RequestOpt) (thread discord.GuildThread, err error)
	JoinThread(threadID discord.Snowflake, opts ...RequestOpt) error
	LeaveThread(threadID discord.Snowflake, opts ...RequestOpt) error
	AddThreadMember(threadID discord.Snowflake, userID discord.Snowflake, opts ...RequestOpt) error
	RemoveThreadMember(threadID discord.Snowflake, userID discord.Snowflake, opts ...RequestOpt) error
	GetThreadMember(threadID discord.Snowflake, userID discord.Snowflake, opts ...RequestOpt) (threadMember *discord.ThreadMember, err error)
	GetThreadMembers(threadID discord.Snowflake, opts ...RequestOpt) (threadMembers []discord.ThreadMember, err error)

	GetPublicArchivedThreads(channelID discord.Snowflake, before discord.Time, limit int, opts ...RequestOpt) (threads *discord.GetThreads, err error)
	GetPrivateArchivedThreads(channelID discord.Snowflake, before discord.Time, limit int, opts ...RequestOpt) (threads *discord.GetThreads, err error)
	GetJoinedPrivateAchievedThreads(channelID discord.Snowflake, before discord.Time, limit int, opts ...RequestOpt) (threads *discord.GetThreads, err error)

	GetActiveGuildThreads(guildID discord.Snowflake, opts ...RequestOpt) (threads *discord.GetAllThreads, err error)
}

func NewThreadService

func NewThreadService(restClient Client) ThreadService

type UserService

type UserService interface {
	Service
	GetUser(userID discord.Snowflake, opts ...RequestOpt) (*discord.User, error)
	UpdateSelfUser(selfUserUpdate discord.SelfUserUpdate, opts ...RequestOpt) (*discord.OAuth2User, error)
	GetGuilds(before int, after int, limit int, opts ...RequestOpt) ([]discord.OAuth2Guild, error)
	LeaveGuild(guildID discord.Snowflake, opts ...RequestOpt) error
	GetDMChannels(opts ...RequestOpt) ([]discord.Channel, error)
	CreateDMChannel(userID discord.Snowflake, opts ...RequestOpt) (*discord.Channel, error)
}

func NewUserService

func NewUserService(restClient Client) UserService

type VoiceService

type VoiceService interface {
	Service
	GetVoiceRegions(opts ...RequestOpt) ([]discord.VoiceRegion, error)
}

func NewVoiceService

func NewVoiceService(restClient Client) VoiceService

type WebhookService

type WebhookService interface {
	Service
	GetWebhook(webhookID discord.Snowflake, opts ...RequestOpt) (discord.Webhook, error)
	UpdateWebhook(webhookID discord.Snowflake, webhookUpdate discord.WebhookUpdate, opts ...RequestOpt) (discord.Webhook, error)
	DeleteWebhook(webhookID discord.Snowflake, opts ...RequestOpt) error

	GetWebhookWithToken(webhookID discord.Snowflake, webhookToken string, opts ...RequestOpt) (discord.Webhook, error)
	UpdateWebhookWithToken(webhookID discord.Snowflake, webhookToken string, webhookUpdate discord.WebhookUpdateWithToken, opts ...RequestOpt) (discord.Webhook, error)
	DeleteWebhookWithToken(webhookID discord.Snowflake, webhookToken string, opts ...RequestOpt) error

	CreateMessage(webhookID discord.Snowflake, webhookToken string, messageCreate discord.WebhookMessageCreate, wait bool, threadID discord.Snowflake, opts ...RequestOpt) (*discord.Message, error)
	CreateMessageSlack(webhookID discord.Snowflake, webhookToken string, messageCreate discord.Payload, wait bool, threadID discord.Snowflake, opts ...RequestOpt) (*discord.Message, error)
	CreateMessageGitHub(webhookID discord.Snowflake, webhookToken string, messageCreate discord.Payload, wait bool, threadID discord.Snowflake, opts ...RequestOpt) (*discord.Message, error)
	UpdateMessage(webhookID discord.Snowflake, webhookToken string, messageID discord.Snowflake, messageUpdate discord.WebhookMessageUpdate, threadID discord.Snowflake, opts ...RequestOpt) (*discord.Message, error)
	DeleteMessage(webhookID discord.Snowflake, webhookToken string, messageID discord.Snowflake, threadID discord.Snowflake, opts ...RequestOpt) error
}

func NewWebhookService

func NewWebhookService(restClient Client) WebhookService

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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