From 4f76af87a60d31c0feb7e81d54fe2a735a83760a Mon Sep 17 00:00:00 2001 From: realrafi Date: Thu, 2 Jul 2026 11:34:35 +0330 Subject: [PATCH] feat: added remark service --- .../task-manager/providers/remark.service.ts | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/modules/task-manager/providers/remark.service.ts diff --git a/src/modules/task-manager/providers/remark.service.ts b/src/modules/task-manager/providers/remark.service.ts new file mode 100644 index 0000000..b30d40b --- /dev/null +++ b/src/modules/task-manager/providers/remark.service.ts @@ -0,0 +1,53 @@ +import { Injectable, NotFoundException } from "@nestjs/common"; +import { RemarkRepository } from "../repositories/remark.repository"; +import { TaskRepository } from "../repositories/task.repository"; +import { TMRemark } from "../entities/remark.entity"; +import { CreateRemarkDto } from "../dto/remark/create-remark.dto"; +import { UpdateRemarkDto } from "../dto/remark/update-remark.dto"; + +@Injectable() +export class RemarkService { + constructor( + private readonly remarkRepository: RemarkRepository, + private readonly taskRepository: TaskRepository, + ) {} + + findAll(): Promise { + return this.remarkRepository.findAll(); + } + + findByTask(taskId: string): Promise { + return this.remarkRepository.findByTask(taskId); + } + + async findOne(id: string): Promise { + const remark = await this.remarkRepository.findOneById(id); + if (!remark) throw new NotFoundException(`Remark #${id} not found`); + return remark; + } + + async create(dto: CreateRemarkDto): Promise { + const task = await this.taskRepository.findOneById(dto.taskId); + if (!task) throw new NotFoundException(`Task #${dto.taskId} not found`); + + const remark = this.remarkRepository.create(dto); + return this.remarkRepository.save(remark); + } + + async update(id: string, dto: UpdateRemarkDto): Promise { + const remark = await this.findOne(id); + + if (dto.taskId) { + const task = await this.taskRepository.findOneById(dto.taskId); + if (!task) throw new NotFoundException(`Task #${dto.taskId} not found`); + } + + Object.assign(remark, dto); + return this.remarkRepository.save(remark); + } + + async remove(id: string): Promise { + await this.findOne(id); + await this.remarkRepository.delete(id); + } +}