diff --git a/docs/admin_api.md b/docs/admin_api.md index 9c4b87c..292bb9d 100644 --- a/docs/admin_api.md +++ b/docs/admin_api.md @@ -150,7 +150,7 @@ Returns empty body with 204 status code on success. ### GET `/guilds/` -Returns a partial guild object. +Returns a partial guild object. Gives a 404 when the guild is not found. ### PATCH `/guilds/` diff --git a/litecord/blueprints/admin_api/guilds.py b/litecord/blueprints/admin_api/guilds.py index 0c0f469..e27f544 100644 --- a/litecord/blueprints/admin_api/guilds.py +++ b/litecord/blueprints/admin_api/guilds.py @@ -23,6 +23,7 @@ from litecord.auth import admin_check from litecord.schemas import validate from litecord.admin_schemas import GUILD_UPDATE from litecord.blueprints.guilds import delete_guild +from litecord.errors import GuildNotFound bp = Blueprint('guilds_admin', __name__) @@ -31,9 +32,12 @@ async def get_guild(guild_id: int): """Get a basic guild payload.""" await admin_check() - return jsonify( - await app.storage.get_guild(guild_id) - ) + guild = await app.storage.get_guild(guild_id) + + if not guild: + raise GuildNotFound() + + return jsonify(guild) @bp.route('/', methods=['PATCH']) diff --git a/tests/test_admin_api/test_guilds.py b/tests/test_admin_api/test_guilds.py index 0e38602..c3b32f9 100644 --- a/tests/test_admin_api/test_guilds.py +++ b/tests/test_admin_api/test_guilds.py @@ -23,6 +23,7 @@ import pytest from tests.common import login from litecord.blueprints.guilds import delete_guild +from litecord.errors import GuildNotFound async def _create_guild(test_cli, *, token=None): token = token or await login('admin', test_cli) @@ -125,5 +126,9 @@ async def test_guild_delete(test_cli): ret_early=True) assert resp.status_code == 404 + rjson = await resp.json + assert isinstance(rjson, dict) + assert rjson['error'] + assert rjson['code'] == GuildNotFound.error_code finally: await delete_guild(int(guild_id), app_=test_cli.app)