From 387735415df2e34ebac95a14283a8c66bd9a0e6f Mon Sep 17 00:00:00 2001 From: kyeah Date: Sun, 21 Jan 2024 18:07:06 +0900 Subject: [PATCH] fix: filter notification list --- src/blurting/blurting.service.ts | 15 ++++++++++++++- src/chat/chat.service.ts | 12 +++++++++++- src/firebase/fcm.service.ts | 5 ----- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/blurting/blurting.service.ts b/src/blurting/blurting.service.ts index 30c0ce8..759096b 100644 --- a/src/blurting/blurting.service.ts +++ b/src/blurting/blurting.service.ts @@ -15,6 +15,7 @@ import { BlurtingQuestionEntity, LikeEntity, UserEntity, + NotificationEntity, } from 'src/entities'; import { UserService } from 'src/user/user.service'; import { In, Repository } from 'typeorm'; @@ -41,6 +42,8 @@ export class BlurtingService { private readonly questionRepository: Repository, @InjectRepository(BlurtingAnswerEntity) private readonly answerRepository: Repository, + @InjectRepository(NotificationEntity) + private readonly notificationRepository: Repository, @Inject(CACHE_MANAGER) private cacheManager: Cache, @InjectQueue('blurtingQuestions') private readonly queue: Queue, private readonly fcmService: FcmService, @@ -61,9 +64,14 @@ export class BlurtingService { await this.userService.updateUser(id, 'group', group); await this.fcmService.sendPush( id, - '그룹 매칭이 완료되었습니다.', + '그룹 매칭이 완료되었습니다!', 'blurting', ); + const newEntity = this.notificationRepository.create({ + user: { id: id }, + body: '그룹 매칭이 완료되었습니다!', + }); + await this.notificationRepository.insert(newEntity); }), ); @@ -499,6 +507,11 @@ export class BlurtingService { `${user.userNickname}님이 당신에게 화살표를 보냈습니다!`, 'blurting', ); + const newEntity = this.notificationRepository.create({ + user: { id: userId }, + body: `${user.userNickname}님이 당신에게 화살표를 보냈습니다!`, + }); + await this.notificationRepository.insert(newEntity); } async getArrows(userId: number): Promise { diff --git a/src/chat/chat.service.ts b/src/chat/chat.service.ts index bef17e8..0b0943b 100644 --- a/src/chat/chat.service.ts +++ b/src/chat/chat.service.ts @@ -2,6 +2,8 @@ import { Injectable } from '@nestjs/common'; import { InjectModel } from '@nestjs/mongoose/dist/common'; import { Room, Chatting, SocketUser } from './models'; import { Model } from 'mongoose'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; import { UnauthorizedException } from '@nestjs/common/exceptions'; import { Socket } from 'socket.io'; import * as jwt from 'jsonwebtoken'; @@ -13,6 +15,7 @@ import { } from 'src/dtos/chat.dto'; import { UserService } from 'src/user/user.service'; import { FcmService } from 'src/firebase/fcm.service'; +import { NotificationEntity } from 'src/entities'; @Injectable() export class ChatService { @@ -22,6 +25,8 @@ export class ChatService { private readonly roomModel: Model, @InjectModel(SocketUser.name) private readonly socketUserModel: Model, + @InjectRepository(NotificationEntity) + private readonly notificationRepository: Repository, private readonly userService: UserService, private readonly fcmService: FcmService, ) {} @@ -352,8 +357,13 @@ export class ChatService { return room.users[index].blur; } - pushCreateRoom(userId: number) { + async pushCreateRoom(userId: number) { this.fcmService.sendPush(userId, '지금 귓속말을 시작해보세요!', 'whisper'); + const newEntity = this.notificationRepository.create({ + user: { id: userId }, + body: '새로운 귓속말이 시작되었습니다!', + }); + await this.notificationRepository.insert(newEntity); } async pushNewChat(roomId: string, userId: number) { diff --git a/src/firebase/fcm.service.ts b/src/firebase/fcm.service.ts index 9a1940d..e403617 100644 --- a/src/firebase/fcm.service.ts +++ b/src/firebase/fcm.service.ts @@ -82,11 +82,6 @@ export class FcmService { this.disableNotification(userId); } }); - const newEntity = this.notificationRepository.create({ - user: { id: userId }, - body: body, - }); - await this.notificationRepository.insert(newEntity); } } catch (error) { return error;