import { Injectable, NotFoundException } from '@nestjs/common'; import { CreateComplaintDto } from './dto/create-complaint.dto'; import { UpdateComplaintDto } from './dto/update-complaint.dto'; import { ComplaintRepository } from './repositories/complaint.repository'; import { Complaint } from './entities/complaint.entity'; import { ComplaintMessages } from 'src/common/enums/messages.enum'; @Injectable() export class ComplaintService { constructor(private readonly complaintRepository: ComplaintRepository) {} async create(createComplaintDto: CreateComplaintDto): Promise { const complaint = this.complaintRepository.create(createComplaintDto); await this.complaintRepository.save(complaint); return complaint; } async findAll(): Promise { return this.complaintRepository.find(); } async findOneOrFail(id: string): Promise { const complaint = await this.complaintRepository.findOne({ where: { id } }); if (!complaint) throw new NotFoundException(ComplaintMessages.COMPLAINT_NOT_FOUND); return complaint; } async update(id: string, updateComplaintDto: UpdateComplaintDto): Promise { const complaint = await this.findOneOrFail(id); Object.assign(complaint, updateComplaintDto); return this.complaintRepository.save(complaint); } async remove(id: string): Promise { const complaint = await this.findOneOrFail(id); await this.complaintRepository.remove(complaint); return complaint; } }