import express from "express" import { Welcome2, Goodbye } from "knights-canvas" const app = express() const PORT = process.env.PORT || 7860 // Helper validasi query function validateParams(params, required) { for (let r of required) { if (!params[r]) return r } return null } // Welcome2 API app.get("/api/welcome", async (req, res) => { try { const required = ["username", "group", "avatar", "bg", "member"] const missing = validateParams(req.query, required) if (missing) { return res.status(400).json({ error: `Parameter '${missing}' wajib diisi` }) } const { username, group, avatar, bg, member } = req.query const image = await new Welcome2() .setUsername(username) .setGroupname(group) .setAvatar(avatar) .setBg(bg) .setMember(member) .toAttachment() res.set("Content-Type", "image/png") res.send(image.toBuffer()) } catch (err) { res.status(500).json({ error: err.message }) } }) // Goodbye API app.get("/api/goodbye", async (req, res) => { try { const required = ["username", "group", "avatar", "bg", "member", "icon"] const missing = validateParams(req.query, required) if (missing) { return res.status(400).json({ error: `Parameter '${missing}' wajib diisi` }) } const { username, group, avatar, bg, member, icon } = req.query const image = await new Goodbye() .setUsername(username) .setGuildName(group) .setAvatar(avatar) .setGuildIcon(icon) .setBackground(bg) .setMemberCount(member) .toAttachment() res.set("Content-Type", "image/png") res.send(image.toBuffer()) } catch (err) { res.status(500).json({ error: err.message }) } }) app.listen(PORT, () => console.log(`API running on port ${PORT}`))