chore: add notif service for new criticisms ticket and subscribtion
This commit is contained in:
@@ -7,6 +7,7 @@ import { CommonMessage, TicketMessageEnum, UserMessage } from "../../../common/e
|
||||
import { DanakService } from "../../danak-services/entities/danak-service.entity";
|
||||
import { NotificationsService } from "../../notifications/providers/notifications.service";
|
||||
import { User } from "../../users/entities/user.entity";
|
||||
import { AdminsService } from "../../users/providers/admins.service";
|
||||
import { UsersService } from "../../users/providers/users.service";
|
||||
import { CreateTicketCategoryDto } from "../DTO/create-ticket-category.dto";
|
||||
import { CreateTicketMessageDto } from "../DTO/create-ticket-message.dto";
|
||||
@@ -32,6 +33,7 @@ export class TicketsService {
|
||||
private readonly ticketsRepository: TicketsRepository,
|
||||
private readonly ticketMessagesRepository: TicketMessagesRepository,
|
||||
private readonly usersService: UsersService,
|
||||
private readonly adminsService: AdminsService,
|
||||
private readonly referralService: ReferralService,
|
||||
private dataSource: DataSource,
|
||||
) {}
|
||||
@@ -367,6 +369,7 @@ export class TicketsService {
|
||||
},
|
||||
queryRunner,
|
||||
);
|
||||
await this.notifySuperAdminsForTicket(queryRunner, ticket);
|
||||
}
|
||||
//***************************** */
|
||||
|
||||
@@ -395,7 +398,7 @@ export class TicketsService {
|
||||
}
|
||||
//***************************** */
|
||||
|
||||
private async saveAttachments(queryRunner: QueryRunner, attachmentUrls: string[], ticketMessage: TicketMessage): Promise<void> {
|
||||
private async saveAttachments(queryRunner: QueryRunner, attachmentUrls: string[], ticketMessage: TicketMessage) {
|
||||
const attachments = attachmentUrls.map((url) =>
|
||||
queryRunner.manager.create(TicketMessageAttachment, {
|
||||
attachmentUrl: url,
|
||||
@@ -406,7 +409,7 @@ export class TicketsService {
|
||||
}
|
||||
//***************************** */
|
||||
|
||||
private async sendNotificationForAdminResponse(queryRunner: QueryRunner, ticket: Ticket, admin: User): Promise<void> {
|
||||
private async sendNotificationForAdminResponse(queryRunner: QueryRunner, ticket: Ticket, admin: User) {
|
||||
await this.notificationsService.createAnswerTicketNotification(
|
||||
ticket.user.id,
|
||||
{
|
||||
@@ -419,4 +422,23 @@ export class TicketsService {
|
||||
queryRunner,
|
||||
);
|
||||
}
|
||||
//***************************** */
|
||||
|
||||
private async notifySuperAdminsForTicket(queryRunner: QueryRunner, ticket: Ticket) {
|
||||
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: ticket.user.phone,
|
||||
userEmail: ticket.user.email,
|
||||
fullName: `${ticket.user.firstName} ${ticket.user.lastName}`,
|
||||
},
|
||||
queryRunner,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user