File size: 1,366 Bytes
03a92a9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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 };