Files
ostan-complain-api/src/modules/complaint/complaint.service.ts
T

42 lines
1.5 KiB
TypeScript

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<Complaint> {
const complaint = this.complaintRepository.create(createComplaintDto);
await this.complaintRepository.save(complaint);
return complaint;
}
async findAll(): Promise<Complaint[]> {
return this.complaintRepository.find();
}
async findOneOrFail(id: string): Promise<Complaint> {
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<Complaint> {
const complaint = await this.findOneOrFail(id);
Object.assign(complaint, updateComplaintDto);
return this.complaintRepository.save(complaint);
}
async remove(id: string): Promise<Complaint> {
const complaint = await this.findOneOrFail(id);
await this.complaintRepository.remove(complaint);
return complaint;
}
}