Get up to 50 messages before ISO 8601 timestamp

This commit is contained in:
Kevin Puig
2025-09-27 19:37:56 -04:00
parent 74d0c502f3
commit 9b46852e20
4 changed files with 117 additions and 3 deletions

View File

@@ -1,8 +1,8 @@
import { Hono } from "hono";
import { describeResponse, describeRoute, resolver } from "hono-openapi";
import { getMessageByIdSchema, sendMessageSchema } from "../validators/messageValidator";
import { getMessageByIdSchema, getMessagesBeforeDate, sendMessageSchema } from "../validators/messageValidator";
import { zValidator } from "@hono/zod-validator";
import { fetchMessageData, sendMessage } from "../controller/messageController";
import { fetchMessageData, fetchMessagesBefore, sendMessage } from "../controller/messageController";
const messageRoutes = new Hono();
@@ -38,6 +38,41 @@ messageRoutes.get(
}
)
messageRoutes.get(
"",
describeRoute({
description: "Get up to 50 messages prior to given datetime",
responses: {
200: {
description: "Success getting up to 50 messages",
content: {
"application/json": { schema: resolver(getMessagesBeforeDate) }
}
}
}
}),
zValidator("query", getMessagesBeforeDate),
async (c) => {
const date = c.req.query("date");
if (!date) {
return c.json({ error: "date not provided" }, 400);
}
const channelId = c.req.query("channelId");
if (!channelId) {
return c.json({ error: "channelId not provided" }, 400);
}
const messagesArr = await fetchMessagesBefore(date, channelId);
if (messagesArr) {
return c.json(messagesArr, 200);
} else {
return c.json({ error: "Failed to fetch messages" }, 500);
}
}
)
messageRoutes.post(
"",
describeRoute({