aboutsummaryrefslogtreecommitdiff
path: root/discord
diff options
context:
space:
mode:
authorNadir Chowdhury <[email protected]>2021-05-01 11:46:26 +0100
committerGitHub <[email protected]>2021-05-01 06:46:26 -0400
commitb705173676f7f5c67feecd49bb57f57547736be7 (patch)
treebb8b581acbfa2aba2d612e52a97673c4d94230b6 /discord
parentClarify ClientUser.verified docs (diff)
downloaddiscord.py-b705173676f7f5c67feecd49bb57f57547736be7.tar.xz
discord.py-b705173676f7f5c67feecd49bb57f57547736be7.zip
Add types for ApplicationCommandPermissions & co
Diffstat (limited to 'discord')
-rw-r--r--discord/http.py38
-rw-r--r--discord/types/interactions.py34
2 files changed, 70 insertions, 2 deletions
diff --git a/discord/http.py b/discord/http.py
index 608487e8..c2d668fb 100644
--- a/discord/http.py
+++ b/discord/http.py
@@ -1303,6 +1303,44 @@ class HTTPClient:
)
return self.request(r)
+ def get_guild_application_command_permissions(self, application_id, guild_id) -> Response[List[interactions.GuildApplicationCommandPermissions]]:
+ r = Route(
+ 'GET',
+ '/applications/{application_id}/guilds/{guild_id}/commands/permissions',
+ application_id=application_id,
+ guild_id=guild_id,
+ )
+ return self.request(r)
+
+ def get_application_command_permissions(self, application_id, guild_id, command_id) -> Response[interactions.GuildApplicationCommandPermissions]:
+ r = Route(
+ 'GET',
+ '/applications/{application_id}/guilds/{guild_id}/commands/{command_id}/permissions',
+ application_id=application_id,
+ guild_id=guild_id,
+ command_id=command_id,
+ )
+ return self.request(r)
+
+ def edit_application_command_permissions(self, application_id, guild_id, command_id, payload):
+ r = Route(
+ 'PUT',
+ '/applications/{application_id}/guilds/{guild_id}/commands/{command_id}/permissions',
+ application_id=application_id,
+ guild_id=guild_id,
+ command_id=command_id,
+ )
+ return self.request(r, json=payload)
+
+ def bulk_edit_guild_application_command_permissions(self, application_id, guild_id, payload):
+ r = Route(
+ 'PUT',
+ '/applications/{application_id}/guilds/{guild_id}/commands/permissions',
+ application_id=application_id,
+ guild_id=guild_id,
+ )
+ return self.request(r, json=payload)
+
# Misc
def application_info(self):
diff --git a/discord/types/interactions.py b/discord/types/interactions.py
index 6c7c2654..07cb1932 100644
--- a/discord/types/interactions.py
+++ b/discord/types/interactions.py
@@ -24,11 +24,13 @@ DEALINGS IN THE SOFTWARE.
from __future__ import annotations
-from typing import TypedDict, Union, List, Literal
+from typing import Dict, TypedDict, Union, List, Literal
from .snowflake import Snowflake
from .message import AllowedMentions
+from .channel import PartialChannel
from .embed import Embed
from .member import Member
+from .role import Role
from .user import User
@@ -48,7 +50,7 @@ class _ApplicationCommandOptionOptional(TypedDict, total=False):
options: List[ApplicationCommandOption]
-ApplicationCommandOptionType = Literal[1, 2, 3, 4, 5, 6, 7, 8]
+ApplicationCommandOptionType = Literal[1, 2, 3, 4, 5, 6, 7, 8, 9]
class ApplicationCommandOption(_ApplicationCommandOptionOptional):
@@ -63,6 +65,25 @@ class ApplicationCommandOptionChoice(TypedDict):
value: Union[str, int]
+ApplicationCommandPermissionType = Literal[1, 2]
+
+
+class ApplicationCommandPermissions(TypedDict):
+ id: Snowflake
+ type: ApplicationCommandPermissionType
+ permission: bool
+
+
+class PartialGuildApplicationCommandPermissions(TypedDict):
+ id: Snowflake
+ permissions: List[ApplicationCommandPermissions]
+
+
+class GuildApplicationCommandPermissions(PartialGuildApplicationCommandPermissions):
+ application_id: Snowflake
+ guild_id: Snowflake
+
+
InteractionType = Literal[1, 2]
@@ -73,10 +94,19 @@ class _ApplicationCommandInteractionDataOptionOptional(TypedDict, total=False):
class ApplicationCommandInteractionDataOption(_ApplicationCommandInteractionDataOptionOptional):
name: str
+ type: ApplicationCommandOptionType
+
+
+class ApplicationCommandInteractionDataResolved(TypedDict, total=False):
+ users: Dict[Snowflake, User]
+ members: Dict[Snowflake, Member]
+ roles: Dict[Snowflake, Role]
+ channels: Dict[Snowflake, PartialChannel]
class _ApplicationCommandInteractionDataOptional(TypedDict, total=False):
options: List[ApplicationCommandInteractionDataOption]
+ resolved: ApplicationCommandInteractionDataResolved
class ApplicationCommandInteractionData(_ApplicationCommandInteractionDataOptional):