Skip to content

Commit 0e7d43c

Browse files
committedJul 21, 2022
socket io in code
1 parent 193d01b commit 0e7d43c

File tree

14 files changed

+37924
-46
lines changed

14 files changed

+37924
-46
lines changed
 

‎backend/package-lock.json

Lines changed: 558 additions & 26 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎backend/package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,14 @@
2424
"@nestjs/common": "^8.0.0",
2525
"@nestjs/core": "^8.0.0",
2626
"@nestjs/platform-express": "^8.0.0",
27+
"@nestjs/platform-socket.io": "^9.0.5",
2728
"@nestjs/serve-static": "^2.2.2",
29+
"@nestjs/websockets": "^9.0.5",
2830
"bcrypt": "^5.0.1",
2931
"reflect-metadata": "^0.1.13",
3032
"rimraf": "^3.0.2",
31-
"rxjs": "^7.2.0"
33+
"rxjs": "^7.2.0",
34+
"websocket": "^1.0.34"
3235
},
3336
"devDependencies": {
3437
"@nestjs/cli": "^8.0.0",

‎backend/src/app.module.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { UserController } from './controller/user.controller';
1717
import { Task, TaskSchema } from './model/task.schema';
1818
import { User, UserSchema } from './model/user.schema';
1919
import { isAuthenticated } from './app.middleware';
20+
import { EventsGateway } from './events/event.gateway'
2021

2122
@Module({
2223
imports: [
@@ -43,7 +44,7 @@ import { isAuthenticated } from './app.middleware';
4344
],
4445

4546
controllers: [AppController, TaskController, UserController],
46-
providers: [AppService, taskService, UserService,Handler],
47+
providers: [AppService, taskService, UserService,Handler,EventsGateway],
4748
})
4849

4950
export class AppModule {

‎backend/src/controller/task.controller.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,9 @@ export class TaskController {
3434
}
3535

3636
@Get()
37-
async read(@Query() id): Promise<Object> {
38-
return await this.taskService.readtask(id);
37+
async read( @Req() request,@Query() id): Promise<Object> {
38+
let createdBy=request.user._id;
39+
return await this.taskService.readtask(id,createdBy);
3940
}
4041

4142

‎backend/src/events/event.gateway.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { Server } from 'socket.io';
2+
import { WebSocketGateway, WebSocketServer } from '@nestjs/websockets';
3+
4+
@WebSocketGateway({
5+
cors: {
6+
origin: '*',
7+
},
8+
})
9+
export class EventsGateway {
10+
@WebSocketServer()
11+
server: Server;
12+
newTasks(data: any) {
13+
this.server.emit('newMatch', data);
14+
}
15+
}

‎backend/src/events/event.module.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { Module } from '@nestjs/common';
2+
import { EventsGateway } from './event.gateway';
3+
@Module({
4+
exports: [EventsGateway],
5+
})
6+
export class EventsModule {}

‎backend/src/main.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { NestFactory } from '@nestjs/core';
22
import { AppModule } from './app.module';
33

44
async function bootstrap() {
5-
const app = await NestFactory.create(AppModule);
5+
const app = await NestFactory.create(AppModule, { cors: true });
66
app.enableCors();
77
await app.listen(3002);
88
}

‎backend/src/service/task.service.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,29 @@ import {
44
import { InjectModel } from "@nestjs/mongoose";
55
import { Model } from "mongoose";
66
import { Task, TaskDocument } from "../model/task.schema";
7+
import { EventsGateway } from '../events/event.gateway';
8+
79

810

911
@Injectable()
1012
export class taskService {
1113

12-
constructor(@InjectModel(Task.name) private taskModel: Model<TaskDocument>) { }
14+
constructor(@InjectModel(Task.name)
15+
private taskModel: Model<TaskDocument>,
16+
private EventsGatewayinfo: EventsGateway) { }
1317

1418
async createTask(task: Object): Promise<Task> {
1519
const newTask = new this.taskModel(task);
20+
this.EventsGatewayinfo.newTasks(newTask)
1621
return newTask.save();
1722
}
18-
async readtask(id): Promise<any> {
23+
async readtask(id,createdBy): Promise<any> {
1924
if (id.id) {
2025
return this.taskModel.findOne({ _id: id.id }).populate("createdBy").exec();
2126
}
27+
if (createdBy) {
28+
return this.taskModel.find({ createdBy: createdBy}).populate("createdBy").exec();
29+
}
2230
return this.taskModel.find().populate("createdBy").exec();
2331
}
2432

‎backend/test/app.e2e-spec.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,5 @@ describe('AppController (e2e)', () => {
5656
.field('description', 'test')
5757
.set({ 'authorization': "Bearer "+token })
5858
expect(logi.body.status.code).toEqual(1000);
59-
// token = logi.body.data.token;
6059
});
6160
});

0 commit comments

Comments
 (0)