diff options
| author | Nadir Chowdhury <[email protected]> | 2021-05-01 11:46:26 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-05-01 06:46:26 -0400 |
| commit | b705173676f7f5c67feecd49bb57f57547736be7 (patch) | |
| tree | bb8b581acbfa2aba2d612e52a97673c4d94230b6 /discord | |
| parent | Clarify ClientUser.verified docs (diff) | |
| download | discord.py-b705173676f7f5c67feecd49bb57f57547736be7.tar.xz discord.py-b705173676f7f5c67feecd49bb57f57547736be7.zip | |
Add types for ApplicationCommandPermissions & co
Diffstat (limited to 'discord')
| -rw-r--r-- | discord/http.py | 38 | ||||
| -rw-r--r-- | discord/types/interactions.py | 34 |
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): |