Skip to content

Commit

Permalink
Add types for ApplicationCommandPermissions & co
Browse files Browse the repository at this point in the history
  • Loading branch information
NCPlayz committed May 1, 2021
1 parent 66b17f5 commit b705173
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 2 deletions.
38 changes: 38 additions & 0 deletions discord/http.py
Original file line number Diff line number Diff line change
Expand Up @@ -1303,6 +1303,44 @@ def delete_followup_message(self, application_id, token, message_id):
)
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):
Expand Down
34 changes: 32 additions & 2 deletions discord/types/interactions.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,13 @@

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


Expand All @@ -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):
Expand All @@ -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]


Expand All @@ -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):
Expand Down

0 comments on commit b705173

Please sign in to comment.