const { DefaultError } = require("../errors/errors") const banRepo = require("../repositories/banRepo") async function banUser(userId, message, expiresAt) { const existingBan = await banRepo.isBanned(userId) if (existingBan) { throw new DefaultError(409, "Already has an active ban.", "Duplicate active ban.") } return await banRepo.banUser(userId, message, expiresAt) } async function unbanUser(banId) { const existingBan = await banRepo.isBanned(userId) if (!existingBan) { throw new DefaultError(404, "No active ban.", "No active ban found.") } return await banRepo.unbanUser(banId) } async function isUserBanned(userId) { const ban = await banRepo.isBanned(userId) if (!ban) { return false } if (new Date(ban.expiresAt) <= new Date()) { await banRepo.deactivate(ban.id) return false } return true } module.exports = { banUser, unbanUser, isUserBanned }