Skip to content

Commit 958feb8

Browse files
author
Rishabh Garg
committed
Added Conversation and Message Model, DAO and Repository
1 parent 741c3d5 commit 958feb8

File tree

8 files changed

+119
-1
lines changed

8 files changed

+119
-1
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { NextFunction, Response, Request } from "express";
2+
import { ConversationRepository } from "../repositories/conversation.repository";
3+
4+
export class ConversationController {
5+
conversationRepository: ConversationRepository;
6+
constructor() {
7+
this.conversationRepository = new ConversationRepository();
8+
}
9+
10+
getRecord = async (request: Request, response: Response, next: NextFunction) => {
11+
await this.conversationRepository.getRecord();
12+
response.send('Get Response');
13+
}
14+
15+
createRecord = async (request: Request, response: Response, next: NextFunction) => {
16+
response.json(request.body);
17+
}
18+
19+
updateRecord = async (request: Request, response: Response, next: NextFunction) => {
20+
response.json(request.body);
21+
}
22+
23+
deleteRecord = async (request: Request, response: Response, next: NextFunction) => {
24+
response.send(request.params.id + ' deleted successfully');
25+
}
26+
}

app/controllers/user.controller.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ export class UerController {
99

1010
getRecord = async (request: Request, response: Response, next: NextFunction) => {
1111
const users = await this.userRepository.retrieve({}, {}, {});
12-
console.log(users);
1312
response.send(users);
1413
}
1514

app/models/conversation.model.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
2+
import mongoose = require("mongoose");
3+
import { UserModel } from "./user.model";
4+
export interface ConversationModel extends mongoose.Document {
5+
members?: UserModel[] | string[];
6+
createdAt?: Date;
7+
_id?: string;
8+
isGroup?: boolean;
9+
groupName?: string;
10+
}

app/models/message.model.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
2+
import mongoose = require("mongoose");
3+
import { UserModel } from "./user.model";
4+
import { ConversationModel } from "./conversation.model";
5+
export interface MessageModel extends mongoose.Document {
6+
sender?: UserModel | string;
7+
messageText?: string;
8+
createdAt?: Date;
9+
conversationId?: ConversationModel | string;
10+
members?: UserModel[] | string[];
11+
_id?: string;
12+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { RepositoryBase } from "../config/base.repository";
2+
import { ConversationModel } from "../models/conversation.model";
3+
import { ConversationSchemaDO } from "../schemas/conversation.schema";
4+
5+
export class ConversationRepository extends RepositoryBase<ConversationModel> {
6+
constructor() {
7+
super(ConversationSchemaDO);
8+
}
9+
}

app/routes/conversation.route.ts

Whitespace-only changes.

app/schemas/conversation.schema.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
2+
import Mongoose = require("mongoose");
3+
import DataAccess = require("../config/mongo.connector");
4+
import { ConversationModel } from "../models/conversation.model";
5+
const mongooseConnection = DataAccess.mongooseConnection;
6+
7+
class ConversationSchema {
8+
static get schema() {
9+
var schema = new Mongoose.Schema({
10+
createdAt: {
11+
type: Date,
12+
default: Date.now
13+
},
14+
isGroup: {
15+
type: Boolean,
16+
default: false
17+
},
18+
groupName: {
19+
type: String
20+
},
21+
members: [{
22+
type: Mongoose.Schema.Types.ObjectId,
23+
ref: 'Users'
24+
}]
25+
});
26+
return schema;
27+
}
28+
}
29+
export const ConversationSchemaDO = mongooseConnection.model<ConversationModel>("Conversations", ConversationSchema.schema);

app/schemas/message.schema.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
2+
import Mongoose = require("mongoose");
3+
import DataAccess = require("../config/mongo.connector");
4+
import { MessageModel } from "../models/message.model";
5+
const mongooseConnection = DataAccess.mongooseConnection;
6+
7+
class MessageSchema {
8+
static get schema() {
9+
var schema = new Mongoose.Schema({
10+
createdAt: {
11+
type: Date,
12+
default: Date.now
13+
},
14+
conversationId: {
15+
type: Mongoose.Schema.Types.ObjectId,
16+
ref: 'Conversations'
17+
},
18+
messageText: {
19+
type: String
20+
},
21+
members: [{
22+
type: Mongoose.Schema.Types.ObjectId,
23+
ref: 'Users'
24+
}],
25+
sender: {
26+
type: Mongoose.Schema.Types.ObjectId,
27+
ref: 'Users'
28+
}
29+
});
30+
return schema;
31+
}
32+
}
33+
export const MessageSchemaDO = mongooseConnection.model<MessageModel>("Messages", MessageSchema.schema);

0 commit comments

Comments
 (0)