From fc120e48fb24b1ea5266ada5b99e06a5d743408b Mon Sep 17 00:00:00 2001 From: David Date: Sun, 31 Mar 2024 19:44:59 -0230 Subject: [PATCH] Socket.io Back-end v3.6.15; Better way to use the room models. --- Node+Socket.io+React/back-end/changelog.txt | 4 ++++ Node+Socket.io+React/back-end/package.json | 3 ++- .../back-end/src/api/services/chatService.ts | 13 +++---------- Node+Socket.io+React/back-end/src/model/Chat.ts | 9 ++++++--- Node+Socket.io+React/back-end/src/server.ts | 4 ++-- 5 files changed, 17 insertions(+), 16 deletions(-) diff --git a/Node+Socket.io+React/back-end/changelog.txt b/Node+Socket.io+React/back-end/changelog.txt index c4899a0..b96f271 100644 --- a/Node+Socket.io+React/back-end/changelog.txt +++ b/Node+Socket.io+React/back-end/changelog.txt @@ -45,3 +45,7 @@ patch: - The SocketUser type is change to UserDTO. - The leave and join messages now doesn't send to the sender because of front-end changes. - The usersJoined room object keys are now a Map instead of a array + refactor of the userList method. + +v3.6.15 +patch: +- Added a better way to use the room models and they're properly initialize to avoid overwrites. diff --git a/Node+Socket.io+React/back-end/package.json b/Node+Socket.io+React/back-end/package.json index 77539bc..d6d64e1 100644 --- a/Node+Socket.io+React/back-end/package.json +++ b/Node+Socket.io+React/back-end/package.json @@ -1,6 +1,6 @@ { "name": "back-end", - "version": "3.6.14", + "version": "3.6.15", "author": "David Bishop", "description": "Demo Node server for a chat app.", "repository": { @@ -16,6 +16,7 @@ "dev": "cross-env NODE_ENV=development nodemon", "build": "rollup -c", "serve": "cross-env NODE_ENV=production node ./build/bundle.cjs", + "deploy": "fly deploy", "clean": "rm -rf node_modules" }, "dependencies": { diff --git a/Node+Socket.io+React/back-end/src/api/services/chatService.ts b/Node+Socket.io+React/back-end/src/api/services/chatService.ts index c739037..6bb93fc 100644 --- a/Node+Socket.io+React/back-end/src/api/services/chatService.ts +++ b/Node+Socket.io+React/back-end/src/api/services/chatService.ts @@ -5,16 +5,12 @@ import { RoomIds } from "../../typings/RoomIds"; import { MessageDTO } from "../../dtos/MessageDto"; -import { model } from "mongoose"; -import { ChatAlphaSchema, ChatBravoSchema } from "../../model/Chat"; +import { roomModals } from "../../model/Chat"; import CustomError from "../utils/CustomError"; export const getChats = async (roomId: RoomIds) => { try { - const roomModel = model( - "", - roomId === "alpha" ? ChatAlphaSchema : ChatBravoSchema - ); + const roomModel = roomModals[roomId]; return roomModel.find().sort({ timestamp: -1 }).limit(32); } catch (error: any) { @@ -29,10 +25,7 @@ export const storeMessage = async ({ roomId, }: MessageDTO) => { try { - const roomModel = model( - "", - roomId === "alpha" ? ChatAlphaSchema : ChatBravoSchema - ); + const roomModel = roomModals[roomId]; const chat = new roomModel({ _id: `${userId}__${Math.random().toString(36).substring(2, 6)}`, diff --git a/Node+Socket.io+React/back-end/src/model/Chat.ts b/Node+Socket.io+React/back-end/src/model/Chat.ts index 82a415d..b024467 100644 --- a/Node+Socket.io+React/back-end/src/model/Chat.ts +++ b/Node+Socket.io+React/back-end/src/model/Chat.ts @@ -1,4 +1,4 @@ -import { Schema } from "mongoose"; +import { Schema, model } from "mongoose"; export const ChatAlphaSchema = new Schema( { @@ -9,7 +9,6 @@ export const ChatAlphaSchema = new Schema( }, { collection: "chat_alpha" } ); -// export const ChatAlpha = model("chat_alpha", ChatAlphaSchema); export const ChatBravoSchema = new Schema( { @@ -20,4 +19,8 @@ export const ChatBravoSchema = new Schema( }, { collection: "chat_bravo" } ); -// export const ChatBravo = model("chat_bravo", ChatBravoSchema); + +export const roomModals = { + alpha: model("chat_alpha", ChatAlphaSchema), + bravo: model("chat_bravo", ChatBravoSchema), +}; diff --git a/Node+Socket.io+React/back-end/src/server.ts b/Node+Socket.io+React/back-end/src/server.ts index c7a0812..861b355 100644 --- a/Node+Socket.io+React/back-end/src/server.ts +++ b/Node+Socket.io+React/back-end/src/server.ts @@ -1,9 +1,9 @@ /* Chat App Demo (back-end) - * Version: 3.6.14 + * Version: 3.6.15 * * Author: David Bishop * Creation Date: December 10, 2023 - * Last Updated: March 28, 2024 + * Last Updated: March 31, 2024 * * Description: * This application is a demo chat app that allows users to exchange messages in real-time.