chore: create ticket with select service
This commit is contained in:
@@ -3,6 +3,7 @@ import { DataSource, Not } from "typeorm";
|
||||
|
||||
import { ParamDto } from "../../../common/DTO/param.dto";
|
||||
import { CommonMessage, TicketMessageEnum, UserMessage } from "../../../common/enums/message.enum";
|
||||
import { DanakServicesService } from "../../danak-services/providers/danak-services.service";
|
||||
import { User } from "../../users/entities/user.entity";
|
||||
import { UsersService } from "../../users/providers/users.service";
|
||||
import { PaginationUtils } from "../../utils/providers/pagination.utils";
|
||||
@@ -27,6 +28,7 @@ export class TicketsService {
|
||||
private readonly ticketsRepository: TicketsRepository,
|
||||
private readonly ticketMessagesRepository: TicketMessagesRepository,
|
||||
private readonly usersService: UsersService,
|
||||
private readonly danakServicesService: DanakServicesService,
|
||||
private dataSource: DataSource,
|
||||
) {}
|
||||
//******************************** */
|
||||
@@ -107,12 +109,17 @@ export class TicketsService {
|
||||
//******************************** */
|
||||
|
||||
async createTicket(createDto: CreateTicketDto, userId: string) {
|
||||
let service;
|
||||
const { user } = await this.usersService.findOneById(userId);
|
||||
const ticketCategory = await this.ticketsCategoryRepository.findCategoryById(createDto.categoryId);
|
||||
if (!ticketCategory) throw new BadRequestException(TicketMessageEnum.CATEGORY_NOT_FOUND);
|
||||
const { attachmentUrls } = createDto;
|
||||
|
||||
//
|
||||
if (createDto.danakServiceId) {
|
||||
service = await this.danakServicesService.findServiceById(createDto.danakServiceId);
|
||||
if (!service) throw new BadRequestException(TicketMessageEnum.SERVICE_NOT_FOUND);
|
||||
}
|
||||
|
||||
const ticketMessage: Partial<TicketMessage> = { content: createDto.message, author: user };
|
||||
|
||||
@@ -123,7 +130,13 @@ export class TicketsService {
|
||||
return attachment;
|
||||
});
|
||||
}
|
||||
const ticket = this.ticketsRepository.create({ ...createDto, user, category: ticketCategory, messages: [ticketMessage] });
|
||||
const ticket = this.ticketsRepository.create({
|
||||
...createDto,
|
||||
user,
|
||||
category: ticketCategory,
|
||||
messages: [ticketMessage],
|
||||
danakService: service,
|
||||
});
|
||||
|
||||
await this.ticketsRepository.save(ticket);
|
||||
|
||||
@@ -145,7 +158,24 @@ export class TicketsService {
|
||||
},
|
||||
relations: {
|
||||
category: true,
|
||||
// user: true,
|
||||
danakService: true,
|
||||
},
|
||||
select: {
|
||||
id: true,
|
||||
subject: true,
|
||||
status: true,
|
||||
priority: true,
|
||||
numericId: true,
|
||||
createdAt: true,
|
||||
updatedAt: true,
|
||||
category: {
|
||||
id: true,
|
||||
title: true,
|
||||
},
|
||||
danakService: {
|
||||
id: true,
|
||||
name: true,
|
||||
},
|
||||
},
|
||||
order: {
|
||||
createdAt: "DESC" as const,
|
||||
|
||||
Reference in New Issue
Block a user