aboutsummaryrefslogtreecommitdiffstats
path: root/bot/utils/moderation.py
diff options
context:
space:
mode:
Diffstat (limited to 'bot/utils/moderation.py')
-rw-r--r--bot/utils/moderation.py37
1 files changed, 19 insertions, 18 deletions
diff --git a/bot/utils/moderation.py b/bot/utils/moderation.py
index 724b455bc..c1eb98dd6 100644
--- a/bot/utils/moderation.py
+++ b/bot/utils/moderation.py
@@ -1,11 +1,12 @@
import logging
+from datetime import datetime
from typing import Union
from aiohttp import ClientError
from discord import Member, Object, User
from discord.ext.commands import Context
-from bot.constants import Keys, URLs
+from bot.constants import Keys
log = logging.getLogger(__name__)
@@ -13,33 +14,33 @@ HEADERS = {"X-API-KEY": Keys.site_api}
async def post_infraction(
- ctx: Context, user: Union[Member, Object, User], type: str, reason: str, duration: str = None, hidden: bool = False
+ ctx: Context,
+ user: Union[Member, Object, User],
+ type: str,
+ reason: str,
+ expires_at: datetime = None,
+ hidden: bool = False,
+ active: bool = True,
):
payload = {
- "type": type,
+ "actor": ctx.message.author.id,
+ "hidden": hidden,
"reason": reason,
- "user_id": str(user.id),
- "actor_id": str(ctx.message.author.id),
- "hidden": hidden
+ "type": type,
+ "user": user.id,
+ "active": active
}
- if duration:
- payload['duration'] = duration
+ if expires_at:
+ payload['expires_at'] = expires_at.isoformat()
try:
- response = await ctx.bot.http_session.post(
- URLs.site_infractions,
- headers=HEADERS,
- json=payload
+ response = await ctx.bot.api_client.post(
+ 'bot/infractions', json=payload
)
except ClientError:
log.exception("There was an error adding an infraction.")
await ctx.send(":x: There was an error adding the infraction.")
return
- response_object = await response.json()
- if "error_code" in response_object:
- await ctx.send(f":x: There was an error adding the infraction: {response_object['error_message']}")
- return
-
- return response_object
+ return response