Skip to content

Commit

Permalink
send message
Browse files Browse the repository at this point in the history
  • Loading branch information
u0509421 committed Jan 10, 2025
1 parent d85984d commit 2384b9b
Show file tree
Hide file tree
Showing 6 changed files with 91 additions and 24 deletions.
3 changes: 3 additions & 0 deletions backend/controllers/message.controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export const sendMessage = async (req, res) => {
console.log("message sent", req.params.id);
};
24 changes: 24 additions & 0 deletions backend/models/conversation.model.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import mongoose from "mongoose";

const conversationSchema = new mongoose.Schema(
{
participants: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "User",
},
],
messages: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "Message",
default: [],
},
],
},
{ timestamps: true }
);

const Conversation = mongoose.model("Conversation", conversationSchema);

export default Conversation;
26 changes: 26 additions & 0 deletions backend/models/message.model.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import mongoose from "mongoose";

const messageSchema = new mongoose.Schema(
{
senderId: {
type: mongoose.Schema.Types.ObjectId,
ref: "User",
required: true,
},
receiverId: {
type: mongoose.Schema.Types.ObjectId,
ref: "User",
required: true,
},
message: {
type: String,
required: true,
},
},
// createdAt, updatedAt when timestamp is true > message.createdAt, message.updatedAt
{ timestamps: true }
);

const Message = mongoose.model("Message", messageSchema);

export default Message;
52 changes: 28 additions & 24 deletions backend/models/user.model.js
Original file line number Diff line number Diff line change
@@ -1,30 +1,34 @@
import mongoose from "mongoose";

const userSchema = new mongoose.Schema({
fullName: {
type: String,
required: true,
const userSchema = new mongoose.Schema(
{
fullName: {
type: String,
required: true,
},
username: {
type: String,
required: true,
unique: true,
},
password: {
type: String,
required: true,
minlength: 6,
},
gender: {
type: String,
required: true,
enum: ["male", "female"],
},
profilePic: {
type: String,
default: "",
},
},
username: {
type: String,
required: true,
unique: true,
},
password: {
type: String,
required: true,
minlength: 6,
},
gender: {
type: String,
required: true,
enum: ["male", "female"],
},
profilePic: {
type: String,
default: "",
},
});
// createdAt, updatedAt when timestamp is true > user.createdAt, user.updatedAt
{ timestamps: true }
);

const User = mongoose.model("User", userSchema);

Expand Down
8 changes: 8 additions & 0 deletions backend/routes/message.routes.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import express from "express";
import { sendMessage } from "../controllers/message.controller.js";

const router = express.Router();

router.post("/send/:id", sendMessage);

export default router;
2 changes: 2 additions & 0 deletions backend/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import dotenv from "dotenv";

// file imports
import authRoutes from "./routes/auth.routes.js";
import messageRoutes from "./routes/message.routes.js";
import connectToMongoDB from "./db/connectToMongoDB.js";

const app = express();
Expand All @@ -14,6 +15,7 @@ dotenv.config();
// middleware
app.use(express.json()); // for parsing application/json (from req.body)
app.use("/api/auth", authRoutes);
app.use("/api/messages", messageRoutes);

// app.get("/", (req, res) => {
// // root route http://localhost:3000
Expand Down

0 comments on commit 2384b9b

Please sign in to comment.