import { Context } from "hono"; import { sendMessageToChannel, removeMessageFromChannel } from "../services/realtime.js" import { success } from "zod"; export async function postMessageToChannel( io: any, c: Context ) { try { io = c.get("io"); const instanceId = c.req.param("instanceId"); const categoryId = c.req.param("categoryId"); const channelId = c.req.param("channelId"); const message = await c.req.json(); const result = await sendMessageToChannel( instanceId, categoryId, channelId, message, "new_channel_message", io ) if(result === "Event not implemented"){ console.log("controller::realtime::postMessageToChannel - Failed to send message") return c.json({ success: false, message: "Event not implemented or recognized", status: 400 }) } if(result === "no acknowledgment"){ console.log("controller::realtime::postMessageToChannel - No acknowledgment received from client") return c.json({ success: false, message: "No acknowledgment received from client", status: 500 }) } if(!result){ throw new Error("failed to send message"); } return c.json({ success: true, message: "Message sent successfully", status: 200 }) } catch (err) { const errMessage = err as Error; console.log("controller::realtime::postMessageToChannel - ", errMessage); return c.json({ success: false, message: errMessage.message, status: 500 }); } } export async function deleteMessageFromChannel( io: any, c: Context ){ try { io = c.get("io"); const instanceId = c.req.param("instanceId"); const categoryId = c.req.param("categoryId"); const channelId = c.req.param("channelId"); const messageId = c.req.param("messageId"); const result = await removeMessageFromChannel( instanceId, categoryId, channelId, messageId, "delete_channel_message", io ) if(result === "event not implemented"){ console.log("controller::realtime::deleteMessageFromChannel - Event not implemented") return c.json({ success: false, message: "Event not implemented or recognized", status: 400 }); } if(result === "no acknowledgment"){ console.log("controller::realtime::deleteMessageFromChannel - No acknowledgment received from client") return c.json({ success: false, message: "No acknowledgment received from client", status: 500 }); } if(!result){ throw new Error("failed to delete message"); } c.json({ success: true, message: "Message deleted successfully", status: 200 }) } catch (err) { const errMessage = err as Error; console.log("services::realtime::deleteMessageFromChannel - ", errMessage); return c.json({ success: false, message: errMessage.message, status: 500 }); } }