Spaces:
Paused
Paused
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/user/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 }; |