diff --git a/src/modules/tickets/providers/tickets.service.ts b/src/modules/tickets/providers/tickets.service.ts index 6532859..5e52665 100755 --- a/src/modules/tickets/providers/tickets.service.ts +++ b/src/modules/tickets/providers/tickets.service.ts @@ -56,7 +56,9 @@ export class TicketsService { .loadRelationCountAndMap("category.usersCount", "group.users"); if (queryDto.isActive !== undefined) { - queryBuilder.andWhere("category.isActive = :isActive", { isActive: queryDto.isActive === 1 }); + queryBuilder.andWhere("category.isActive = :isActive", { + isActive: queryDto.isActive === 1, + }); } if (queryDto.q) { @@ -73,7 +75,10 @@ export class TicketsService { const existCategory = await this.ticketsCategoryRepository.findCategoryByTitle(createDto.title); if (existCategory) throw new BadRequestException(TicketMessageEnum.CATEGORY_EXIST); - const ticketCategory = this.ticketsCategoryRepository.create({ ...createDto, group: userGroup }); + const ticketCategory = this.ticketsCategoryRepository.create({ + ...createDto, + group: userGroup, + }); await this.ticketsCategoryRepository.save(ticketCategory); return { @@ -88,10 +93,16 @@ export class TicketsService { if (updateCategoryDto.title) { const { title } = updateCategoryDto; - const existCategory = await this.ticketsCategoryRepository.findOneBy({ title, id: Not(paramDto.id) }); + const existCategory = await this.ticketsCategoryRepository.findOneBy({ + title, + id: Not(paramDto.id), + }); if (existCategory) throw new BadRequestException(TicketMessageEnum.CATEGORY_EXIST); } - await this.ticketsCategoryRepository.save({ ...category, ...updateCategoryDto }); + await this.ticketsCategoryRepository.save({ + ...category, + ...updateCategoryDto, + }); return { message: CommonMessage.UPDATE_SUCCESS, @@ -121,14 +132,19 @@ export class TicketsService { try { const [user, ticketCategory] = await Promise.all([ this.usersService.findOneByIdWithQueryRunner(userId, queryRunner), - queryRunner.manager.findOne(TicketCategory, { where: { id: createDto.categoryId }, relations: { group: { users: true } } }), + queryRunner.manager.findOne(TicketCategory, { + where: { id: createDto.categoryId }, + relations: { group: { users: true } }, + }), ]); if (!ticketCategory) throw new BadRequestException(TicketMessageEnum.CATEGORY_NOT_FOUND); let service = null; if (createDto.danakServiceId) { - service = await queryRunner.manager.findOneBy(DanakService, { id: createDto.danakServiceId }); + service = await queryRunner.manager.findOneBy(DanakService, { + id: createDto.danakServiceId, + }); if (!service) throw new BadRequestException(TicketMessageEnum.SERVICE_NOT_FOUND); } @@ -200,9 +216,13 @@ export class TicketsService { .take(limit); if (queryDto.status) { - queryBuilder.andWhere("ticket.status = :status", { status: queryDto.status }); + queryBuilder.andWhere("ticket.status = :status", { + status: queryDto.status, + }); } else { - queryBuilder.andWhere("ticket.status != :closedStatus", { closedStatus: TicketStatus.CLOSED }); + queryBuilder.andWhere("ticket.status != :closedStatus", { + closedStatus: TicketStatus.CLOSED, + }); } const [tickets, count] = await queryBuilder.getManyAndCount(); @@ -228,7 +248,9 @@ export class TicketsService { } if (queryDto.status) { - queryBuilder.andWhere("ticket.status = :status", { status: queryDto.status }); + queryBuilder.andWhere("ticket.status = :status", { + status: queryDto.status, + }); } if (queryDto.userId) { @@ -254,7 +276,8 @@ export class TicketsService { const isSuperAdmin = await this.usersService.isSuperAdmin(userId); console.log(isSuperAdmin); console.log(ticket.assignedTo); - if (!isSuperAdmin && ticket.assignedTo?.id !== userId) throw new BadRequestException(TicketMessageEnum.TICKET_NOT_ASSIGNED_TO_USER); + if (isAdmin && !isSuperAdmin && ticket.assignedTo?.id !== userId) + throw new BadRequestException(TicketMessageEnum.TICKET_NOT_ASSIGNED_TO_USER); const user = await queryRunner.manager.findOneBy(User, { id: userId }); if (!user) throw new BadRequestException(UserMessage.USER_NOT_FOUND); @@ -334,13 +357,17 @@ export class TicketsService { //******************************** */ async getUnreadTickets() { - const unreadTickets = await this.ticketsRepository.count({ where: { status: TicketStatus.PENDING } }); + const unreadTickets = await this.ticketsRepository.count({ + where: { status: TicketStatus.PENDING }, + }); return unreadTickets; } //******************************** */ async countUserTickets(userId: string) { - const ticketCount = await this.ticketsRepository.count({ where: { user: { id: userId }, status: Not(TicketStatus.CLOSED) } }); + const ticketCount = await this.ticketsRepository.count({ + where: { user: { id: userId }, status: Not(TicketStatus.CLOSED) }, + }); return ticketCount; } @@ -396,7 +423,10 @@ export class TicketsService { private async findTicket(queryRunner: QueryRunner, ticketId: string, userId: string, isAdmin: boolean): Promise { const ticket = isAdmin - ? await queryRunner.manager.findOne(Ticket, { where: { id: ticketId }, relations: { user: true, assignedTo: true } }) + ? await queryRunner.manager.findOne(Ticket, { + where: { id: ticketId }, + relations: { user: true, assignedTo: true }, + }) : await queryRunner.manager.findOne(Ticket, { where: { id: ticketId, user: { id: userId } }, relations: { user: true, assignedTo: true },