Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 20 additions & 35 deletions interactions/api/http/scheduledEvent.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from typing import List

from ...api.cache import Cache
from ..models import Snowflake
from .request import _Request
from .route import Route

Expand All @@ -16,15 +15,14 @@ class ScheduledEventRequest:
def __init__(self) -> None:
pass

async def create_scheduled_event(self, guild_id: Snowflake, payload: dict) -> dict:
async def create_scheduled_event(self, guild_id: int, payload: dict) -> dict:
"""
Creates a scheduled event.

:param guild_id: Guild ID snowflake.
:param payload: The dictionary containing the parameters and values to edit the associated event.
:return: A dictionary containing the new guild scheduled event object on success.
"""
guild_id = int(guild_id)
valid_keys = (
"channel_id",
"name",
Expand All @@ -42,50 +40,42 @@ async def create_scheduled_event(self, guild_id: Snowflake, payload: dict) -> di
)

async def get_scheduled_event(
self, guild_id: Snowflake, guild_scheduled_event_id: Snowflake, with_user_count: bool
self, guild_id: int, guild_scheduled_event_id: int, with_user_count: bool
) -> dict:
"""
Gets a guild scheduled event.

:param guild_id: Guild ID snowflake.
:param guild_scheduled_event_id: Guild Scheduled Event ID snowflake.
:param with_user_count: A boolean to include number of users subscribed to the associated event, if given.
:param with_user_count: Whether the number of users subscribed to the events is returned.
:return: A dictionary containing the guild scheduled event object on success.
"""
guild_id, event_id = int(guild_id), int(guild_scheduled_event_id)
params = {}
if with_user_count:
params["with_user_count"] = str(with_user_count)

return await self._req.request(
Route(
"GET",
"/guilds/{guild_id}/scheduled-events/{event_id}",
guild_id=guild_id,
event_id=event_id,
event_id=guild_scheduled_event_id,
),
params=params,
params={"with_user_count": str(with_user_count).lower()},
)

async def get_scheduled_events(self, guild_id: Snowflake, with_user_count: bool) -> List[dict]:
async def get_scheduled_events(self, guild_id: int, with_user_count: bool) -> List[dict]:
"""
Gets all guild scheduled events in a guild.

:param guild_id: Guild ID snowflake.
:param with_user_count: A boolean to include number of users subscribed to the associated event, if given.
:param with_user_count: Whether the number of users subscribed to the associated event is returned.
:return: A List of a dictionary containing the guild scheduled event objects on success.
"""
guild_id = int(guild_id)
params = {}
if with_user_count:
params["with_user_count"] = with_user_count

return await self._req.request(
Route("GET", "/guilds/{guild_id}/scheduled-events", guild_id=guild_id), params=params
Route("GET", "/guilds/{guild_id}/scheduled-events", guild_id=guild_id),
params={"with_user_count": str(with_user_count).lower()},
)

async def modify_scheduled_event(
self, guild_id: Snowflake, guild_scheduled_event_id: Snowflake, payload: dict
self, guild_id: int, guild_scheduled_event_id: int, payload: dict
) -> dict:
"""
Modifies a scheduled event.
Expand All @@ -95,7 +85,6 @@ async def modify_scheduled_event(
:param payload: The dictionary containing the parameters and values to edit the associated event.
:return: A dictionary containing the updated guild scheduled event object on success.
"""
guild_id, event_id = int(guild_id), int(guild_scheduled_event_id)
valid_keys = (
"channel_id",
"name",
Expand All @@ -112,40 +101,37 @@ async def modify_scheduled_event(
"PATCH",
"/guilds/{guild_id}/scheduled-events/{event_id}",
guild_id=guild_id,
event_id=event_id,
event_id=guild_scheduled_event_id,
),
json=data,
)

async def delete_scheduled_event(
self, guild_id: Snowflake, guild_scheduled_event_id: Snowflake
) -> None:
async def delete_scheduled_event(self, guild_id: int, guild_scheduled_event_id: int) -> None:
"""
Deletes a guild scheduled event.

:param guild_id: Guild ID snowflake.
:param guild_scheduled_event_id: Guild Scheduled Event ID snowflake.
:return: Nothing on success.
"""
guild_id, event_id = int(guild_id), int(guild_scheduled_event_id)

return await self._req.request(
Route(
"DELETE",
"/guilds/{guild_id}/scheduled-events/{event_id}",
guild_id=guild_id,
event_id=event_id,
event_id=guild_scheduled_event_id,
)
)

async def get_scheduled_event_users(
self,
guild_id: Snowflake,
guild_scheduled_event_id: Snowflake,
guild_id: int,
guild_scheduled_event_id: int,
limit: int = 100,
with_member: bool = False,
before: Snowflake = None,
after: Snowflake = None,
before: int = None,
after: int = None,
) -> dict:
"""
Get the registered users of a scheduled event.
Expand All @@ -158,22 +144,21 @@ async def get_scheduled_event_users(
:param after: Considers only users after given user ID snowflake. Defaults to None.
:return: Returns a list of guild scheduled event user objects on success.
"""
guild_id, event_id = int(guild_id), int(guild_scheduled_event_id)
params = {
"limit": limit,
"with_member": with_member,
}
if before:
params["before"] = int(before)
params["before"] = before
if after:
params["after"] = int(after)
params["after"] = after

return await self._req.request(
Route(
"GET",
"/guilds/{guild_id}/scheduled-events/{event_id}/users",
guild_id=guild_id,
event_id=event_id,
event_id=guild_scheduled_event_id,
),
params=params,
)