From 04b53a755c501031311782f4491663cee3f24ce9 Mon Sep 17 00:00:00 2001 From: josedario87 Date: Thu, 28 Aug 2025 20:08:26 -0600 Subject: [PATCH] fix --- server/src/adminApi.ts | 63 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/server/src/adminApi.ts b/server/src/adminApi.ts index 0466278..19d0168 100644 --- a/server/src/adminApi.ts +++ b/server/src/adminApi.ts @@ -1028,4 +1028,67 @@ adminRouter.post("/admin/namemanager/import", async (req: Request, res: Response } }); +// In-memory storage for community messages +interface Message { + id: string; + content: string; + timestamp: number; +} + +let communityMessages: Message[] = []; + +// GET /api/messages - Get all messages +adminRouter.get("/messages", async (req: Request, res: Response) => { + try { + res.json({ messages: communityMessages }); + } catch (error) { + console.error('[AdminAPI] Error fetching messages:', error); + res.status(500).json({ error: 'Failed to fetch messages' }); + } +}); + +// POST /api/messages - Add a new message +adminRouter.post("/messages", async (req: Request, res: Response) => { + try { + const { content } = req.body; + + if (!content || typeof content !== 'string') { + return res.status(400).json({ error: 'Content is required and must be a string' }); + } + + const trimmedContent = content.trim(); + if (trimmedContent.length === 0) { + return res.status(400).json({ error: 'Content cannot be empty' }); + } + + if (trimmedContent.length > 500) { + return res.status(400).json({ error: 'Content cannot exceed 500 characters' }); + } + + const message: Message = { + id: `msg_${Date.now()}_${Math.random().toString(36).slice(2)}`, + content: trimmedContent, + timestamp: Date.now() + }; + + communityMessages.push(message); + + // Keep only the last 1000 messages to prevent memory issues + if (communityMessages.length > 1000) { + communityMessages = communityMessages.slice(-1000); + } + + console.log(`[AdminAPI] New message added: ${message.id.slice(0, 12)}... (${trimmedContent.length} chars)`); + + res.json({ + success: true, + message: 'Message added successfully', + id: message.id + }); + } catch (error) { + console.error('[AdminAPI] Error adding message:', error); + res.status(500).json({ error: 'Failed to add message' }); + } +}); + export { adminRouter, broadcastDashboardUpdate };