|
import express from 'express'; |
|
import { Database } from '../database/database.js'; |
|
import { authenticateApiKey, apiLimiter } from '../middleware/midware.js'; |
|
const AntibanRoutes = express.Router(); |
|
|
|
AntibanRoutes.get("/api/v1/ai/ban-user", authenticateApiKey, apiLimiter, async (req, res) => { |
|
const dbClient = new Database("AkenoXJs"); |
|
const collection = dbClient.collection("ban_users"); |
|
try { |
|
const userIdString = req.query.user_id; |
|
const ReasonString = req.query.reason; |
|
const userIdNumber = Number(userIdString); |
|
|
|
if (isNaN(userIdNumber)) { |
|
return res.status(400).json({ error: "Invalid or missing user_id" }); |
|
} |
|
|
|
const existingUser = await collection.findOne({ user_ban: userIdNumber }); |
|
if (existingUser) { |
|
return res.status(200).json({ message: `UserBan is already: ${existingUser.user_ban}`, is_ban: true}); |
|
} |
|
const userDocument = { |
|
user_ban: userIdNumber, |
|
createdAt: new Date() |
|
}; |
|
if (ReasonString) { |
|
userDocument.reason = ReasonString; |
|
} |
|
await collection.insertOne(userDocument); |
|
res.json({ message: `UserBan Successfully banned: ${userIdNumber}`, is_ban: true }); |
|
} catch (error) { |
|
res.status(401).json({ error: error.message }); |
|
} |
|
}); |
|
|
|
export { AntibanRoutes }; |