Skip to content

Commit

Permalink
Implement emoji endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
LordPrinz committed Jul 3, 2023
1 parent a78e022 commit 89799b5
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 4 deletions.
47 changes: 43 additions & 4 deletions src/server/controllers/emojiController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,53 @@ import { NextFunction, Response, Request } from "express";
import catchAsync from "../../utils/server/catchAsync";
import client from "../../bot";

type Emoji = {
id: string;
name: string;
url: string;
};

const getAllEmoji = () =>
catchAsync(async (req: Request, res: Response, next: NextFunction) => {
const emojis = client.emojis;
console.log(emojis);
res.end();
const guilds = client.guilds.cache;

const emojis: Emoji[] = [];

for (const guild of guilds.values()) {
const guildEmojis = await guild.emojis.fetch();
guildEmojis.map((emoji) => {
emojis.push({
id: emoji.identifier,
name: emoji.name as string,
url: emoji.url,
});
});
}

res.status(200).json({
status: "success",
results: emojis.length,
data: emojis,
});
});
const getEmoji = () =>
catchAsync(async (req: Request, res: Response, next: NextFunction) => {});
catchAsync(async (req: Request, res: Response, next: NextFunction) => {
const emoji = client.emojis.cache.find(
(emoji) => emoji.identifier === req.params.id
);

const transformedEmoji = {
id: emoji?.identifier,
name: emoji?.name,
url: emoji?.url,
};

res.status(200).json({
status: "success",
results: 1,
data: transformedEmoji,
});
});

export default {
getAllEmojis: getAllEmoji(),
Expand Down
2 changes: 2 additions & 0 deletions src/server/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import userRouter from "./routes/userRouter";
import messageRouter from "./routes/messageRouter";
import channelRouter from "./routes/channelRouter";
import serverRouter from "./routes/serverRouter";
import emojiRouter from "./routes/emojiRouter";

// Express Server

Expand Down Expand Up @@ -40,6 +41,7 @@ app.use("/api/v1/users", userRouter);
app.use("/api/v1/channels", channelRouter);
app.use("/api/v1/messages", messageRouter);
app.use("/api/v1/servers", serverRouter);
app.use("/api/v1/emojis", emojiRouter);

app.get("/favicon.ico", (req, res) => {
res.status(204).end();
Expand Down
3 changes: 3 additions & 0 deletions src/server/routes/emojiRouter.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import express from "express";
import emojiController from "../controllers/emojiController";

const router = express.Router();

router.route("/").get(emojiController.getAllEmojis);
router.route("/:id").get(emojiController.getEmoji);

export default router;

0 comments on commit 89799b5

Please sign in to comment.