From b924590746c2a1dd1b8f5aaf6c40de76d5d1b62a Mon Sep 17 00:00:00 2001 From: April Hall Date: Thu, 9 Jan 2025 10:18:00 -0500 Subject: [PATCH] feat: Store messages from the master channel in the DB --- bun.lockb | Bin 192824 -> 170972 bytes package.json | 3 ++- src/lib/server/db/index.ts | 23 ++++++++++++++++++++++- src/lib/websocketConfig.ts | 11 +++++++---- 4 files changed, 31 insertions(+), 6 deletions(-) diff --git a/bun.lockb b/bun.lockb index 81cb291d1b8bdda93da0cd14831632c18a766a69..b4d6c32b7097a47ce89d6eb010567474aed52520 100755 GIT binary patch delta 30737 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 { + io.on('connection', async (socket) => { // Runs on client connect console.log(`[ws:kit] client connected (${socket.id})`); - // Runs on message receive - socket.on('message', (msg) => { + socket.on('message', async (msg) => { console.log(`[ws:kit] message from ${socket.id}: ${msg}`); + // Store the message in the database + await createChannel(client, '000'); + await storeMessage(client, '000', msg, uuidv4(), uuidv4()); io!.emit('message', { user: socket.id, message: msg,