File size: 1,806 Bytes
4ed058c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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}`))