chore: add all notification sewrvice to the queue
This commit is contained in:
@@ -5,7 +5,7 @@ import { ReferralService } from "./referral.service";
|
||||
import { ParamDto } from "../../../common/DTO/param.dto";
|
||||
import { CommonMessage, TicketMessageEnum, UserMessage } from "../../../common/enums/message.enum";
|
||||
import { DanakService } from "../../danak-services/entities/danak-service.entity";
|
||||
import { NotificationsService } from "../../notifications/providers/notifications.service";
|
||||
import { NotificationQueue } from "../../notifications/queue/notification.queue";
|
||||
import { User } from "../../users/entities/user.entity";
|
||||
import { AdminsService } from "../../users/providers/admins.service";
|
||||
import { UsersService } from "../../users/providers/users.service";
|
||||
@@ -28,7 +28,7 @@ import { TicketsRepository } from "../repositories/tickets.repository";
|
||||
export class TicketsService {
|
||||
private readonly logger = new Logger(TicketsService.name);
|
||||
constructor(
|
||||
private readonly notificationsService: NotificationsService,
|
||||
private readonly notificationQueue: NotificationQueue,
|
||||
private readonly ticketsCategoryRepository: TicketCategoryRepository,
|
||||
private readonly ticketsRepository: TicketsRepository,
|
||||
private readonly ticketMessagesRepository: TicketMessagesRepository,
|
||||
@@ -219,7 +219,7 @@ export class TicketsService {
|
||||
await queryRunner.manager.save(Ticket, ticket);
|
||||
|
||||
if (isAdmin) {
|
||||
await this.sendNotificationForAdminResponse(queryRunner, ticket, user);
|
||||
await this.sendNotificationForAdminResponse(ticket, user);
|
||||
}
|
||||
|
||||
await queryRunner.commitTransaction();
|
||||
@@ -295,18 +295,14 @@ export class TicketsService {
|
||||
ticket.assignedTo = admin;
|
||||
await queryRunner.manager.save(this.ticketsRepository.target, ticket);
|
||||
|
||||
await this.notificationsService.createAssignTicketNotificationForAdmin(
|
||||
admin.id,
|
||||
{
|
||||
ticketId: ticket.numericId.toString(),
|
||||
subject: ticket.subject,
|
||||
date: ticket.createdAt,
|
||||
userPhone: ticket.user.phone,
|
||||
userEmail: ticket.user.email,
|
||||
user: `${ticket.user.firstName} ${ticket.user.lastName}`,
|
||||
},
|
||||
queryRunner,
|
||||
);
|
||||
await this.notificationQueue.addAssignTicketNotificationForAdmin(admin.id, {
|
||||
ticketId: ticket.numericId.toString(),
|
||||
subject: ticket.subject,
|
||||
date: ticket.createdAt,
|
||||
userPhone: admin.phone,
|
||||
userEmail: admin.email,
|
||||
user: `${ticket.user.firstName} ${ticket.user.lastName}`,
|
||||
});
|
||||
|
||||
await queryRunner.commitTransaction();
|
||||
return {
|
||||
@@ -345,30 +341,22 @@ export class TicketsService {
|
||||
ticket.assignedTo = assignedUser;
|
||||
await queryRunner.manager.save(Ticket, ticket);
|
||||
|
||||
await this.notificationsService.createAssignTicketNotificationForAdmin(
|
||||
assignedUser.id,
|
||||
{
|
||||
ticketId: ticket.numericId.toString(),
|
||||
subject: ticket.subject,
|
||||
date: ticket.createdAt,
|
||||
userPhone: user.phone,
|
||||
userEmail: user.email,
|
||||
user: `${user.firstName} ${user.lastName}`,
|
||||
},
|
||||
queryRunner,
|
||||
);
|
||||
await this.notificationQueue.addAssignTicketNotificationForAdmin(assignedUser.id, {
|
||||
ticketId: ticket.numericId.toString(),
|
||||
subject: ticket.subject,
|
||||
date: ticket.createdAt,
|
||||
userPhone: user.phone,
|
||||
userEmail: user.email,
|
||||
user: `${user.firstName} ${user.lastName}`,
|
||||
});
|
||||
|
||||
await this.notificationsService.createTicketNotification(
|
||||
user.id,
|
||||
{
|
||||
ticketId: ticket.numericId.toString(),
|
||||
subject: ticket.subject,
|
||||
date: ticket.createdAt,
|
||||
userPhone: user.phone,
|
||||
userEmail: user.email,
|
||||
},
|
||||
queryRunner,
|
||||
);
|
||||
await this.notificationQueue.addTicketNotification(user.id, {
|
||||
ticketId: ticket.numericId.toString(),
|
||||
subject: ticket.subject,
|
||||
date: ticket.createdAt,
|
||||
userPhone: user.phone,
|
||||
userEmail: user.email,
|
||||
});
|
||||
await this.notifySuperAdminsForTicket(queryRunner, ticket);
|
||||
}
|
||||
//***************************** */
|
||||
@@ -409,18 +397,14 @@ export class TicketsService {
|
||||
}
|
||||
//***************************** */
|
||||
|
||||
private async sendNotificationForAdminResponse(queryRunner: QueryRunner, ticket: Ticket, admin: User) {
|
||||
await this.notificationsService.createAnswerTicketNotification(
|
||||
ticket.user.id,
|
||||
{
|
||||
ticketId: ticket.numericId.toString(),
|
||||
subject: ticket.subject,
|
||||
date: ticket.createdAt,
|
||||
userPhone: admin.phone,
|
||||
userEmail: admin.email,
|
||||
},
|
||||
queryRunner,
|
||||
);
|
||||
private async sendNotificationForAdminResponse(ticket: Ticket, admin: User) {
|
||||
await this.notificationQueue.addAnswerTicketNotification(ticket.user.id, {
|
||||
ticketId: ticket.numericId.toString(),
|
||||
subject: ticket.subject,
|
||||
date: ticket.createdAt,
|
||||
userPhone: admin.phone,
|
||||
userEmail: admin.email,
|
||||
});
|
||||
}
|
||||
//***************************** */
|
||||
|
||||
@@ -428,17 +412,13 @@ export class TicketsService {
|
||||
const superAdmins = await this.adminsService.getSuperAdmins(queryRunner);
|
||||
|
||||
for (const admin of superAdmins) {
|
||||
await this.notificationsService.createNewTicketGlobalNotification(
|
||||
admin.id,
|
||||
{
|
||||
ticketId: ticket.numericId.toString(),
|
||||
ticketSubject: ticket.subject,
|
||||
userPhone: admin.phone,
|
||||
userEmail: admin.email,
|
||||
fullName: `${ticket.user.firstName} ${ticket.user.lastName}`,
|
||||
},
|
||||
queryRunner,
|
||||
);
|
||||
await this.notificationQueue.addNewTicketGlobalNotification(admin.id, {
|
||||
ticketId: ticket.numericId.toString(),
|
||||
ticketSubject: ticket.subject,
|
||||
userPhone: admin.phone,
|
||||
userEmail: admin.email,
|
||||
fullName: `${ticket.user.firstName} ${ticket.user.lastName}`,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user