endpoints

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Apr 13, 2021 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const (
	APIVersion = "8"
	Base       = "https://discord.com/"
	CDN        = "https://cdn.discordapp.com"
	API        = Base + "api/v" + APIVersion
)

Discord Endpoint Constants

Variables

View Source
var (
	GetGateway        = NewAPIRoute(GET, "/gateway")
	GetGatewayBot     = NewAPIRoute(GET, "/gateway/bot")
	GetBotApplication = NewAPIRoute(GET, "/oauth2/applications/@me")
)

Misc

View Source
var (
	GetGlobalCommands   = NewAPIRoute(GET, "/applications/{application.id}/commands")
	GetGlobalCommand    = NewAPIRoute(GET, "/applications/{application.id}/command/{command.id}")
	CreateGlobalCommand = NewAPIRoute(POST, "/applications/{application.id}/commands")
	SetGlobalCommands   = NewAPIRoute(PUT, "/applications/{application.id}/commands")
	EditGlobalCommand   = NewAPIRoute(PATCH, "/applications/{application.id}/commands/{command.id}")
	DeleteGlobalCommand = NewAPIRoute(DELETE, "/applications/{application.id}/commands")

	GetGuildCommands   = NewAPIRoute(GET, "/applications/{application.id}/guilds/{guild.id}/commands")
	GetGuildCommand    = NewAPIRoute(GET, "/applications/{application.id}/guilds/{guild.id}/command/{command.id}")
	CreateGuildCommand = NewAPIRoute(POST, "/applications/{application.id}/guilds/{guild.id}/commands")
	SetGuildCommands   = NewAPIRoute(PUT, "/applications/{application.id}/guilds/{guild.id}/commands")
	EditGuildCommand   = NewAPIRoute(PATCH, "/applications/{application.id}/guilds/{guild.id}/commands/{command.id}")
	DeleteGuildCommand = NewAPIRoute(DELETE, "/applications/{application.id}/guilds/{guild.id}/commands")

	GetGuildCommandPermissions  = NewAPIRoute(GET, "/applications/{application.id}/guilds/{guild.id}/commands/permissions")
	GetGuildCommandPermission   = NewAPIRoute(GET, "/applications/{application.id}/guilds/{guild.id}/commands/{command.id}/permissions")
	SetGuildCommandsPermissions = NewAPIRoute(PUT, "/applications/{application.id}/guilds/{guild.id}/commands/permissions")
	SetGuildCommandPermissions  = NewAPIRoute(PUT, "/applications/{application.id}/guilds/{guild.id}/commands/{command.id}/permissions")

	CreateInteractionResponse = NewAPIRoute(POST, "/interactions/{interaction.id}/{interaction.token}/callback")
	EditInteractionResponse   = NewAPIRoute(PATCH, "/webhooks/{application.id}/{interaction.token}/messages/@original")
	DeleteInteractionResponse = NewAPIRoute(DELETE, "/webhooks/{application.id}/{interaction.token}/messages/@original")

	CreateFollowupMessage = NewAPIRoute(POST, "/webhooks/{application.id}/{interaction.token}")
	EditFollowupMessage   = NewAPIRoute(PATCH, "/webhooks/{application.id}/{interaction.token}/messages/{message.id}")
	DeleteFollowupMessage = NewAPIRoute(DELETE, "/webhooks/{application.id}/{interaction.token}/messages/{message.id}")
)

Interactions

View Source
var (
	GetUser         = NewAPIRoute(GET, "/users/{user.id}")
	GetSelfUser     = NewAPIRoute(GET, "/users/@me")
	UpdateSelfUser  = NewAPIRoute(PATCH, "/users/@me")
	GetGuilds       = NewAPIRoute(GET, "/users/@me/guilds")
	LeaveGuild      = NewAPIRoute(DELETE, "/users/@me/guilds/{guild.id}")
	GetDMChannels   = NewAPIRoute(GET, "/users/@me/channels")
	CreateDMChannel = NewAPIRoute(POST, "/users/@me/channels")
)

Users

View Source
var (
	GetGuild     = NewAPIRoute(GET, "/guilds/{guild.id}")
	CreateGuild  = NewAPIRoute(POST, "/guilds")
	UpdateGuild  = NewAPIRoute(PATCH, "/guilds/{guild.id}")
	DeleteGuild  = NewAPIRoute(DELETE, "/guilds/{guild.id}")
	GetVanityURL = NewAPIRoute(GET, "/guilds/{guild.id}/vanity-url")

	CreateChannel  = NewAPIRoute(POST, "/guilds/{guild.id}/channels")
	GetChannels    = NewAPIRoute(GET, "/guilds/{guild.id}/channels")
	UpdateChannels = NewAPIRoute(PATCH, "/guilds/{guild.id}/channels")

	GetBans   = NewAPIRoute(GET, "/guilds/{guild.id}/bans")
	GetBan    = NewAPIRoute(GET, "/guilds/{guild.id}/bans/{user.id}")
	CreateBan = NewAPIRoute(POST, "/guilds/{guild.id}/bans/{user.id}")
	DeleteBan = NewAPIRoute(DELETE, "/guilds/{guild.id}/bans/{user.id}")

	GetMember          = NewAPIRoute(GET, "/guilds/{guild.id}/members/{user.id}")
	GetMembers         = NewAPIRoute(GET, "/guilds/{guild.id}/members")
	AddMember          = NewAPIRoute(PUT, "/guilds/{guild.id}/members/{user.id}")
	UpdateMember       = NewAPIRoute(PATCH, "/guilds/{guild.id}/members/{user.id}")
	RemoveMember       = NewAPIRoute(DELETE, "/guilds/{guild.id}/members/{user.id}")
	RemoveMemberReason = NewAPIRoute(DELETE, "/guilds/{guild.id}/members/{user.id}?reason={reason}")
	AddMemberRole      = NewAPIRoute(PUT, "/guilds/{guild.id}/members/{user.id}/roles/{role.id}")
	RemoveMemberRole   = NewAPIRoute(DELETE, "/guilds/{guild.id}/members/{user.id}/roles/{role.id}")

	UpdateSelfNick = NewAPIRoute(PATCH, "/guilds/{guild.id}/members/@me/nick")

	PrunableCount = NewAPIRoute(GET, "/guilds/{guild.id}/prune")
	PruneMembers  = NewAPIRoute(POST, "/guilds/{guild.id}/prune")

	GetGuildWebhooks = NewAPIRoute(GET, "/guilds/{guild.id}/webhooks")

	GetAuditLogs = NewAPIRoute(GET, "/guilds/{guild.id}/audit-logs")

	GetVoiceRegions = NewAPIRoute(GET, "/guilds/{guild.id}/regions")

	GetIntegrations   = NewAPIRoute(GET, "/guilds/{guild.id}/integrations")
	CreateIntegration = NewAPIRoute(POST, "/guilds/{guild.id}/integrations")
	UpdateIntegration = NewAPIRoute(PATCH, "/guilds/{guild.id}/integrations/{integration.id}")
	DeleteIntegration = NewAPIRoute(DELETE, "/guilds/{guild.id}/integrations/{integration.id}")
	SyncIntegration   = NewAPIRoute(POST, "/guilds/{guild.id}/integrations/{integration.id}/sync")
)

Guilds

View Source
var (
	GetRoles            = NewAPIRoute(GET, "/guilds/{guild.id}/roles")
	GetRole             = NewAPIRoute(GET, "/guilds/{guild.id}/roles/{role.id}")
	CreateRole          = NewAPIRoute(POST, "/guilds/{guild.id}/roles")
	UpdateRoles         = NewAPIRoute(PATCH, "/guilds/{guild.id}/roles")
	UpdateRole          = NewAPIRoute(PATCH, "/guilds/{guild.id}/roles/{role.id}")
	UpdateRolePositions = NewAPIRoute(PATCH, "/guilds/{guild.id}/roles")
	DelteRole           = NewAPIRoute(DELETE, "/guilds/{guild.id}/roles/{role.id}")
)

Roles

View Source
var (
	GetChannel    = NewAPIRoute(GET, "/channels/{channel.id}")
	UpdateChannel = NewAPIRoute(PATCH, "/channels/{channel.id}")
	DeleteChannel = NewAPIRoute(DELETE, "/channels/{channel.id}")

	GetWebhooks   = NewAPIRoute(GET, "/channels/{channel.id}/webhooks")
	CreateWebhook = NewAPIRoute(POST, "/channels/{channel.id}/webhooks")

	GetPermissionOverrides   = NewAPIRoute(GET, "/channels/{channel.id}/permissions")
	GetPermissionOverride    = NewAPIRoute(GET, "/channels/{channel.id}/permissions/{overwrite.id}")
	CreatePermissionOverride = NewAPIRoute(PUT, "/channels/{channel.id}/permissions/{overwrite.id}")
	UpdatePermissionOverride = NewAPIRoute(PUT, "/channels/{channel.id}/permissions/{overwrite.id}")
	DeletePermissionOverride = NewAPIRoute(DELETE, "/channels/{channel.id}/permissions/{overwrite.id}")

	SendTyping = NewAPIRoute(POST, "/channels/{channel.id}/typing")
)

Channels

View Source
var (
	GetMessages       = NewAPIRoute(GET, "/channels/{channel.id}/messages")
	GetMessage        = NewAPIRoute(GET, "/channels/{channel.id}/messages/{message.id}")
	CreateMessage     = NewAPIRoute(POST, "/channels/{channel.id}/messages")
	UpdateMessage     = NewAPIRoute(PATCH, "/channels/{channel.id}/messages/{message.id}")
	DeleteMessage     = NewAPIRoute(DELETE, "/channels/{channel.id}/messages/{message.id}")
	BulkDeleteMessage = NewAPIRoute(POST, "/channels/{channel.id}/messages/bulk-delete")

	GetPinnedMessages   = NewAPIRoute(GET, "/channels/{channel.id}/pins")
	AddPinnedMessage    = NewAPIRoute(PUT, "/channels/{channel.id}/pins/{message.id}")
	RemovePinnedMessage = NewAPIRoute(DELETE, "/channels/{channel.id}/pins/{message.id}")

	CrosspostMessage = NewAPIRoute(POST, "/channels/{channel.id}/messages/{message.id}/crosspost")

	GetReactions            = NewAPIRoute(GET, "/channels/{channel.id}/messages/{message.id}/reactions/{emoji}")
	AddReaction             = NewAPIRoute(PUT, "/channels/{channel.id}/messages/{message.id}/reactions/{emoji}/@me")
	RemoveOwnReaction       = NewAPIRoute(DELETE, "/channels/{channel.id}/messages/{message.id}/reactions/{emoji}/@me")
	RemoveUserReaction      = NewAPIRoute(DELETE, "/channels/{channel.id}/messages/{message.id}/reactions/{emoji}/{user.id}")
	RemoveAllReactions      = NewAPIRoute(DELETE, "/channels/{channel.id}/messages/{message.id}/reactions")
	RemoveAllReactionsEmoji = NewAPIRoute(DELETE, "/channels/{channel.id}/messages/{message.id}/reactions/{emoji}")
)

Messages

View Source
var (
	GetEmotes   = NewAPIRoute(GET, "/guilds/{guild.id}/emojis")
	Getemote    = NewAPIRoute(GET, "/guilds/{guild.id}/emojis/{emoji.id}")
	CreateEmote = NewAPIRoute(POST, "/guilds/{guild.id}/emojis")
	UpdateEmote = NewAPIRoute(PATCH, "/guilds/{guild.id}/emojis/{emote.id}")
	DeleteEmote = NewAPIRoute(DELETE, "/guilds/{guild.id}/emojis/{emote.id}")
)

Emotes

View Source
var (
	GetWebhook             = NewAPIRoute(GET, "/webhooks/{webhook.id}")
	GetWebhookWithToken    = NewAPIRoute(GET, "/webhooks/{webhook.id}/{token}")
	UpdateWebhok           = NewAPIRoute(PATCH, "/webhooks/{webhook.id}")
	UpdateWebhokWithToken  = NewAPIRoute(PATCH, "/webhooks/{webhook.id}/{token}")
	DeleteWebhook          = NewAPIRoute(DELETE, "/webhooks/{webhook.id}")
	DeleteWebhookWithToken = NewAPIRoute(DELETE, "/webhooks/{webhook.id}/{token}")

	CreateWebhookMessage       = NewAPIRoute(POST, "/webhooks/{webhook.id}")
	CreateWebhookMessageSlack  = NewAPIRoute(POST, "/webhooks/{webhook.id}/slack")
	CreateWebhookMessageGithub = NewAPIRoute(POST, "/webhooks/{webhook.id}/github")
	UpdateWebhookMessage       = NewAPIRoute(POST, "/webhooks/{webhook.id}/{token}/messages/{message.id}")
	DeleteWebhookMessage       = NewAPIRoute(POST, "/webhooks/{webhook.id}/{token}/messages/{message.id}")
)

Webhooks

View Source
var (
	GetInvite    = NewAPIRoute(GET, "/invites/{code}")
	CreateInvite = NewAPIRoute(POST, "/channels/{channel.id}/invites")
	DeleteInvite = NewAPIRoute(DELETE, "/invites/{code}")

	GetGuildInvite    = NewAPIRoute(GET, "/guilds/{guild.id}/invites")
	GetChannelInvites = NewAPIRoute(GET, "/channels/{channel.id}/invites")
)

Invites

View Source
var (
	Emote                = NewCDNRoute("/emojis/{emote.id}.", PNG, GIF)
	GuildIcon            = NewCDNRoute("/icons/{guild.id}/{icon.hash}.", PNG, JPEG, WEBP, GIF)
	GuildSplash          = NewCDNRoute("/splashes/{guild.id}/guild.splash.", PNG, JPEG, WEBP)
	GuildDiscoverySplash = NewCDNRoute("/discovery-splashes/{guild.id}/guild.discovery.splash.", PNG, JPEG, WEBP)
	GuildBanner          = NewCDNRoute("/banners/{guild.id}/guild.banner.", PNG, JPEG, WEBP)
	DefaultUserAvatar    = NewCDNRoute("/embed/avatars/{user.discriminator%5}.", PNG)
	UserAvatar           = NewCDNRoute("/avatars/{user.id}/user.avatar.", PNG, JPEG, WEBP, GIF)
	ApplicationIcon      = NewCDNRoute("/app-icons/{application.id}/icon.", PNG, JPEG, WEBP)
	ApplicationAsset     = NewCDNRoute("/app-assets/{application.id}/{asset.id}.", PNG, JPEG, WEBP)
	AchievementIcon      = NewCDNRoute("/app-assets/{application.id}/achievements/{achievement.id}/icons/{icon.hash}.", PNG, JPEG, WEBP)
	TeamIcon             = NewCDNRoute("/team-icons/{team.id}/team.icon.", PNG, JPEG, WEBP)
	Attachments          = NewCDNRoute("/attachments/{channel.id}/{attachment.id}/{file.name}", BLANK)
)

CDN

View Source
var (
	InviteURL = NewRoute("https://discord.gg/{code}")
)

Other

Functions

This section is empty.

Types

type APIRoute

type APIRoute struct {
	Route
	// contains filtered or unexported fields
}

APIRoute is a basic struct containing Method and URL

func NewAPIRoute

func NewAPIRoute(method Method, url string) APIRoute

NewAPIRoute generates a new discord api route struct

func NewCustomRoute added in v0.1.3

func NewCustomRoute(method Method, url string) APIRoute

NewCustomRoute generates a new custom route struct

func (APIRoute) Compile

func (r APIRoute) Compile(args ...interface{}) (*CompiledAPIRoute, error)

Compile returns a CompiledAPIRoute

func (APIRoute) Method

func (r APIRoute) Method() Method

Method returns the request method used by the route

type CDNRoute

type CDNRoute struct {
	Route
	// contains filtered or unexported fields
}

CDNRoute is a route for interacting with images hosted on discord's CDN

func NewCDNRoute

func NewCDNRoute(url string, supportedFileExtensions ...FileExtension) CDNRoute

NewCDNRoute generates a new discord cdn route struct

func (CDNRoute) Compile

func (r CDNRoute) Compile(fileExtension FileExtension, args ...interface{}) (*CompiledCDNRoute, error)

Compile builds a full request URL based on provided arguments

type CompiledAPIRoute

type CompiledAPIRoute struct {
	*CompiledRoute
	// contains filtered or unexported fields
}

CompiledAPIRoute is APIRoute compiled with all URL args

func (CompiledAPIRoute) Method

func (r CompiledAPIRoute) Method() Method

Method returns the request method used by the route

type CompiledCDNRoute

type CompiledCDNRoute struct {
	*CompiledRoute
}

CompiledCDNRoute is CDNRoute compiled with all URL args

type CompiledRoute

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

CompiledRoute is Route compiled with all URL args

func (CompiledRoute) Route

func (r CompiledRoute) Route() string

Route returns the full request url

type CustomRoute added in v0.1.3

type CustomRoute struct {
	APIRoute
}

CustomRoute is APIRoute but custom for you

func (CustomRoute) Compile added in v0.1.3

func (r CustomRoute) Compile(args ...interface{}) (*CompiledAPIRoute, error)

Compile returns a CompiledAPIRoute

type FileExtension

type FileExtension string

FileExtension is the type of an image on Discord's CDN

const (
	PNG   FileExtension = "png"
	JPEG  FileExtension = "jpg"
	WEBP  FileExtension = "webp"
	GIF   FileExtension = "gif"
	BLANK FileExtension = ""
)

The available FileExtension(s)

func (FileExtension) String

func (f FileExtension) String() string

type Method

type Method string

Method is a HTTP request Method

const (
	DELETE Method = "DELETE"
	GET    Method = "GET"
	POST   Method = "POST"
	PUT    Method = "PUT"
	PATCH  Method = "PATCH"
)

HTTP Methods used by Discord

func (Method) String

func (m Method) String() string

type Route

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

Route the base struct for routes used in disgo

func NewRoute added in v0.2.0

func NewRoute(url string) Route

NewRoute generates a Route when given a URL

func (Route) Compile

func (r Route) Compile(args ...interface{}) (*CompiledRoute, error)

Compile builds a full request URL based on provided arguments

type Token added in v0.2.0

type Token string

Token holds a discord token and is used to keep your logs clean from critical information

func (Token) GoString added in v0.2.0

func (t Token) GoString() string

GoString masks the token

func (Token) MarshalJSON added in v0.2.0

func (t Token) MarshalJSON() ([]byte, error)

MarshalJSON makes sure we don#t send ********* to discords as tokens

func (Token) String added in v0.2.0

func (t Token) String() string

String masks the token

func (*Token) UnmarshalJSON added in v0.2.0

func (t *Token) UnmarshalJSON(raw []byte) error

UnmarshalJSON makes sure we parse tokens from discord correctly

Jump to

Keyboard shortcuts

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