diff --git a/litecord/blueprints/guild/channels.py b/litecord/blueprints/guild/channels.py index 1e72c59..2b0467b 100644 --- a/litecord/blueprints/guild/channels.py +++ b/litecord/blueprints/guild/channels.py @@ -26,7 +26,7 @@ from litecord.enums import ChannelType from litecord.blueprints.guild.roles import gen_pairs from litecord.schemas import ( - validate, ROLE_UPDATE_POSITION + validate, ROLE_UPDATE_POSITION, CHAN_CREATE ) from litecord.blueprints.checks import ( guild_check, guild_owner_check, guild_perm_check @@ -98,7 +98,7 @@ async def get_guild_channels(guild_id): async def create_channel(guild_id): """Create a channel in a guild.""" user_id = await token_check() - j = await request.get_json() + j = validate(await request.get_json(), CHAN_CREATE) await guild_check(user_id, guild_id) await guild_perm_check(user_id, guild_id, 'manage_channels') diff --git a/litecord/schemas.py b/litecord/schemas.py index 6123c2b..f6f9062 100644 --- a/litecord/schemas.py +++ b/litecord/schemas.py @@ -302,10 +302,14 @@ CHAN_OVERWRITE = { } -CHAN_UPDATE = { +CHAN_CREATE = { 'name': { 'type': 'string', 'minlength': 2, - 'maxlength': 100, 'required': False}, + 'maxlength': 100, 'required': True + }, + + 'type': {'coerce': ChannelType, + 'default': ChannelType.GUILD_TEXT}, 'position': {'coerce': int, 'required': False}, @@ -337,11 +341,17 @@ CHAN_UPDATE = { }, 'parent_id': {'coerce': int, 'required': False, 'nullable': True} - - } +CHAN_UPDATE = {**CHAN_CREATE, **{ + 'name': { + 'type': 'string', 'minlength': 2, + 'maxlength': 100, 'required': False}, + +}} + + ROLE_CREATE = { 'name': {'type': 'string', 'default': 'new role'}, 'permissions': {'coerce': Permissions, 'nullable': True},