namespace Maki.Rest { /// /// REST API Endpoint Formatter /// static class RestEndpoints { /// /// Base URL of Discord /// public const string BASE_URL = @"https://discordapp.com"; /// /// Path to the REST API /// public static string BASE_PATH => @"/api/v" + Discord.GATEWAY_VERSION; /// /// Url of Discord's CDN /// public const string CDN_URL = @"https://cdn.discordapp.com"; #region Channels /// /// Gets a Channel endpoint /// /// Channel Id /// Channel endpoint public static string Channel(ulong chanId) => $@"/channels/{chanId}"; /// /// Gets a Channel Bulk Delete endpoint /// /// Channel Id /// Channel Bulk Delete endpoint public static string ChannelBulkDelete(ulong chanId) => $@"/channels/{chanId}/messages/bulk_delete"; /// /// Gets a Channel Call Ring endpoint /// /// Channel Id /// Channel Call Ring endpoint public static string ChannelCallRing(ulong chanId) => $@"/channels/{chanId}/call/ring"; /// /// Gets a Channel Invites endpoint /// /// Channel Id /// Channel Call Ring endpoint public static string ChannelInvites(ulong chanId) => $@"/channels/{chanId}/invites"; /// /// Gets a Channel Message Reaction endpoint /// /// Channel Id /// Message Id /// Reaction Emoji /// Channel Message Reaction endpoint public static string ChannelMessageReaction(ulong chanId, ulong msgId, string reaction) => $@"/channels/{chanId}/messages/{msgId}/reactions/{reaction}"; /// /// Gets a Channel Message Reaction User endpoint /// /// Channel Id /// Message Id /// Reaction Emoji /// User Id /// Channel Message Reaction User endpoint public static string ChannelMessageReactionUser(ulong chanId, ulong msgId, string reaction, ulong userId) => $@"/channels/{chanId}/messages/{msgId}/reactions/{reaction}/{userId}"; /// /// Gets a Channel Message Reactions endpoint /// /// Channel Id /// Message Id /// Channel Message Reactions endpoint public static string ChannelMessageReactions(ulong chanId, ulong msgId) => $@"/channels/{chanId}/messages/{msgId}/reactions"; /// /// Gets a Channel Message endpoint /// /// Channel Id /// Message Id /// Channel Message endpoint public static string ChannelMessage(ulong chanId, ulong msgId) => $@"/channels/{chanId}/messages/{msgId}"; /// /// Gets a Channel Messages endpoint /// /// Channel Id /// Channel Messages endpoint public static string ChannelMessages(ulong chanId) => $@"/channels/{chanId}/messages"; /// /// Gets a Channel Messages Search endpoint /// /// Channel Id /// Channel Messages Search endpoint public static string ChannelMessagesSearch(ulong chanId) => $@"/channels/{chanId}/messages/search"; /// /// Gets a Channel Permission endpoint /// /// Channel Id /// Overwrite Id /// Channel Permission endpoint public static string ChannelPermission(ulong chanId, ulong overId) => $@"/channels/{chanId}/permissions/{overId}"; /// /// Gets a Channel Permissions endpoint /// /// Channel Id /// Channel Permissions endpoint public static string ChannelPermissions(ulong chanId) => $@"/channels/{chanId}/permissions"; /// /// Gets a Channel Pin endpoint /// /// Channel Id /// Message Id /// Channel Pin endpoint public static string ChannelPin(ulong chanId, ulong msgId) => $@"/channels/{chanId}/pins/{msgId}"; /// /// Gets a Channel Pins endpoint /// /// Channel Id /// Channel Pins endpoint public static string ChannelPins(ulong chanId) => $@"/channels/{chanId}/pins"; /// /// Gets a Channel Recipient endpoint /// /// Group (DM Channel) Id /// Recipient (User) Id /// Channel Recipient endpoint public static string ChannelRecipient(ulong groupId, ulong userId) => $@"/channels/{groupId}/recipients/{userId}"; /// /// Gets a Channel Typing endpoint /// /// Channel Id /// Channel Typing endpoint public static string ChannelTyping(ulong chanId) => $@"/channels/{chanId}/typing"; /// /// Gets a Channel Webhooks endpoint /// /// Channel Id /// Channel Webhooks endpoint public static string ChannelWebhooks(ulong chanId) => $@"/channels/{chanId}/webhooks"; /// /// Channels endpoint /// public static string Channels => @"/channels"; #endregion #region Gateway /// /// Gateway endpoint /// public static string Gateway => @"/gateway"; /// /// Bot Gateway endpoint /// public static string GatewayBot => @"/gateway/bot"; #endregion #region Guild /// /// Gets a Guild endpoint /// /// Guild Id /// Guild endpoint public static string Guild(ulong guildId) => $@"/guilds/{guildId}"; /// /// Gets a Guild Ban endpoint /// /// Guild Id /// Member (banned user) Id /// Guild Ban endpoint public static string GuildBan(ulong guildId, ulong memberId) => $@"/guilds/{guildId}/bans/{memberId}"; /// /// Gets a Guild Bans endpoint /// /// Guild Id /// Guild Bans endpoint public static string GuildBans(ulong guildId) => $@"/guilds/{guildId}/bans"; /// /// Gets a Guild Channels endpoint /// /// Guild Id /// Guild Channels endpoint public static string GuildChannels(ulong guildId) => $@"/guilds/{guildId}/channels"; /// /// Gets a Guild Embed endpoint /// /// Guild Id /// Guild Embed endpoint public static string GuildEmbed(ulong guildId) => $@"/guilds/{guildId}/embed"; /// /// Gets a Guild Emoji endpoint /// /// Guild Id /// Emoji Id /// Guild Emoji endpoint public static string GuildEmoji(ulong guildId, ulong emojiId) => $@"/guilds/{guildId}/emojis/{emojiId}"; /// /// Gets a Guild Emojis endpoint /// /// Guild Id /// Guild Emojis endpoint public static string GuildEmojis(ulong guildId) => $@"/guilds/{guildId}/emojis"; /// /// Gets a Guild Integration endpoint /// /// Guild Id /// Integration Id /// Guild Integration endpoint public static string GuildIntegration(ulong guildId, ulong intId) => $@"/guilds/{guildId}/integrations/{intId}"; /// /// Gets a Guild Integration Sync endpoint /// /// Guild Id /// Integration Id /// Guild Integration Sync endpoint public static string GuildIntegrationSync(ulong guildId, ulong intId) => $@"/guilds/{guildId}/integrations/{intId}/sync"; /// /// Gets a Guild Integrations endpoint /// /// Guild Id /// Guild Integrations endpoint public static string GuildIntegrations(ulong guildId) => $@"/guilds/{guildId}/integrations"; /// /// Gets a Guild Invites endpoint /// /// Guild Id /// Guild Invites endpoint public static string GuildInvites(ulong guildId) => $@"/guilds/{guildId}/invites"; /// /// Gets a Guild Member endpoint /// /// Guild Id /// Member (User) Id /// Guild Member endpoint public static string GuildMember(ulong guildId, ulong memberId) => $@"/guilds/{guildId}/members/{memberId}"; /// /// Gets a Guild Member Nickname endpoint /// /// Guild Id /// Member (User) Id /// Guild Member Nickname endpoint public static string GuildMemberNick(ulong guildId, ulong memberId) => $@"/guilds/{guildId}/members/{memberId}/nick"; /// /// Gets a Guild Member Role endpoint /// /// Guild Id /// Member (User) Id /// Role Id /// Guild Member Role endpoint public static string GuildMemberRole(ulong guildId, ulong memberId, ulong roleId) => $@"/guilds/{guildId}/members/{memberId}/roles/{roleId}"; /// /// Gets a Guild Members endpoint /// /// Guild Id /// Guild Members endpoint public static string GuildMembers(ulong guildId) => $@"/guilds/{guildId}/members"; /// /// Gets a Guild Messages Search endpoint /// /// Guild Id /// Guild Messages Search endpoint public static string GuildMessagesSearch(ulong guildId) => $@"/guilds/{guildId}/messages/search"; /// /// Gets a Guild Prune endpoint /// /// Guild Id /// Guild Prune endpoint public static string GuildPrune(ulong guildId) => $@"/guilds/{guildId}/prune"; /// /// Gets a Guild Role endpoint /// /// Guild Id /// Role Id /// Guild Role endpoint public static string GuildRole(ulong guildId, ulong roleId) => $@"/guilds/{guildId}/roles/{roleId}"; /// /// Gets a Guild Roles endpoint /// /// Guild Id /// Guild Roles endpoint public static string GuildRoles(ulong guildId) => $@"/guilds/{guildId}/roles"; /// /// /// /// Guild Id /// public static string GuildVoiceRegions(ulong guildId) => $@"/guilds/{guildId}/regions"; /// /// Gets a Guild Webhooks endpoint /// /// Guild Id /// Guild Webhooks endpoint public static string GuildWebhooks(ulong guildId) => $@"/guilds/{guildId}/webhooks"; /// /// Guild endpoint /// public static string Guilds => @"/guilds"; #endregion #region Invite /// /// Gets an Invite endpoint /// /// Invite Id /// Invite endpoint public static string Invite(ulong inviteId) => $@"/invite/{inviteId}"; #endregion #region OAuth2 /// /// Gets an OAuth2 Application endpoint /// /// OAuth2 Application Id /// OAuth2 Application endpoint public static string OAuth2Application(ulong appId) => $@"/oauth2/applications/{appId}"; #endregion #region Auth /// /// Auth Login endpoint /// public static string AuthLogin => @"/auth/login"; /// /// Auth MFA TOTP endpoint /// public static string AuthMfaTotp => @"/auth/mfa/totp"; #endregion #region User /// /// Gets a User endpoint /// /// User Id /// User endpoint public static string User(ulong userId) => $@"/users/{userId}"; /// /// Gets a User Channels endpoint /// /// User Id /// User Channels endpoint public static string UserChannels(ulong userId) => $@"/users/{userId}/channels"; /// /// Gets a User Guild endpoint /// /// User Id /// Guild Id /// User Guild endpoint public static string UserGuild(ulong userId, ulong guildId) => $@"/users/{userId}/guilds/{guildId}"; /// /// Gets a User Guilds endpoint /// /// User Id /// User Guilds endpoint public static string UserGuilds(ulong userId) => $@"/users/{userId}/guilds"; /// /// Gets a User Note endpoint /// /// User Id /// Target (User) Id /// User Note endpoint public static string UserNote(ulong userId, ulong targetId) => $@"/users/{userId}/note/{targetId}"; /// /// Gets a User Profile endpoint /// /// User Id /// User Profile endpoint public static string UserProfile(ulong userId) => $@"/users/{userId}/profile"; /// /// Gets a User Relationship endpoint /// /// User Id /// Target (User) Id /// User Relationship endpoint public static string UserRelationship(ulong userId, ulong targetId) => $@"/users/{userId}/relationships/{targetId}"; /// /// Gets a User Settings endpoint /// /// User Id /// User Settings endpoint public static string UserSettings(ulong userId) => $@"/users/{userId}/settings"; /// /// Users endpoint /// public static string Users => @"/users"; #endregion #region Voice /// /// Voice Regions endpoint /// public static string VoiceRegions => @"/voice/regions"; #endregion #region Webhooks /// /// Gets a Webhook endpoint /// /// Webhook Id /// Webhook endpoint public static string Webhook(ulong hookId) => $@"/webhooks/{hookId}"; /// /// Gets a Webhook endpoint with token /// /// Webhook Id /// Webhook Token /// Webhook endpoint with token public static string WebhookToken(ulong hookId, string token) => $@"/webhooks/{hookId}/{token}"; /// /// Gets a Webhook endpoint with token for GitHub /// /// Webhook Id /// Webhook Token /// Webhook endpoint with token for GitHub public static string WebhookTokenGitHub(ulong hookId, string token) => $@"/webhooks/{hookId}/{token}/github"; /// /// Gets a Webhook endpoint with token for Slack /// /// Webhook Id /// Webhook Token /// Webhook endpoint with token for Slack public static string WebhookTokenSlack(ulong hookId, string token) => $@"/webhooks/{hookId}/{token}/slack"; #endregion } }