refactor: making the checklistitem service to use enum messages

This commit is contained in:
2026-07-07 12:03:42 +03:30
parent eb6fbc3ce5
commit a22d6ceb81
3 changed files with 14 additions and 11 deletions
+4
View File
@@ -947,6 +947,10 @@ export const enum remarkMessage {
REMARK_NOT_FOUND = "برچسب مورد نظر پیدا نشد!"
}
export const enum checkListItemMessage {
CHECKLISTITEM_NOT_FOUND = "آیتم چک لیست پیدا نشد!"
}
export const enum attachmentMessage {
ATTACHMENT_NOT_FOUND = "ضمیمه پیدا نشد!"
}
@@ -32,7 +32,7 @@ export class CheckListItemController {
@ApiResponse({ status: 200, description: "CheckListItem found", type: TMCheckListItem })
@ApiResponse({ status: 404, description: "CheckListItem not found" })
findOne(@Param("id") id: string): Promise<TMCheckListItem> {
return this.checkListItemService.findOne(id);
return this.checkListItemService.findOneOrFail(id);
}
@Post()
@@ -1,18 +1,19 @@
import { Injectable, NotFoundException } from '@nestjs/common';
import { CheckListItemRepository } from '../repositories/check-list-item.repository';
import { TaskRepository } from '../repositories/task.repository';
import { TMCheckListItem } from '../entities/check-list-item.entity';
import { CreateCheckListItemDto } from '../dto/check-list-item/create-check-list-item.dto';
import { UpdateCheckListItemDto } from '../dto/check-list-item/update-check-list-item.dto';
import { CursorPaginationDto } from '../../../common/DTO/cursor-pagination.dto';
import { CursorPaginatedResult } from '../../../common/interfaces/cursor-paginated-result.interface';
import { buildCursorPageFormat } from '../../../common/helpers/cursor-paginated.helper';
import { checkListItemMessage } from '../../../common/enums/message.enum';
import { TaskService } from './task.service';
@Injectable()
export class CheckListItemService {
constructor(
private readonly checkListItemRepository: CheckListItemRepository,
private readonly taskRepository: TaskRepository,
private readonly taskService: TaskService,
) {}
async findAll(pagination: CursorPaginationDto): Promise<CursorPaginatedResult<TMCheckListItem>> {
@@ -36,26 +37,24 @@ export class CheckListItemService {
return buildCursorPageFormat(data, limit, cursorDate);
}
async findOne(id: string): Promise<TMCheckListItem> {
async findOneOrFail(id: string): Promise<TMCheckListItem> {
const checkListItem = await this.checkListItemRepository.findOneById(id);
if (!checkListItem) throw new NotFoundException(`CheckListItem #${id} not found`);
if (!checkListItem) throw new NotFoundException(checkListItemMessage.CHECKLISTITEM_NOT_FOUND);
return checkListItem;
}
async create(dto: CreateCheckListItemDto): Promise<TMCheckListItem> {
const task = await this.taskRepository.findOneById(dto.taskId);
if (!task) throw new NotFoundException(`Task #${dto.taskId} not found`);
await this.taskService.findOneOrFail(dto.taskId);
const checkListItem = this.checkListItemRepository.create(dto);
return this.checkListItemRepository.save(checkListItem);
}
async update(id: string, dto: UpdateCheckListItemDto): Promise<TMCheckListItem> {
const checkListItem = await this.findOne(id);
const checkListItem = await this.findOneOrFail(id);
if (dto.taskId) {
const task = await this.taskRepository.findOneById(dto.taskId);
if (!task) throw new NotFoundException(`Task #${dto.taskId} not found`);
await this.taskService.findOneOrFail(dto.taskId);
}
Object.assign(checkListItem, dto);
@@ -63,7 +62,7 @@ export class CheckListItemService {
}
async remove(id: string): Promise<TMCheckListItem> {
const checkListItem = await this.findOne(id);
const checkListItem = await this.findOneOrFail(id);
await this.checkListItemRepository.delete(id);
return checkListItem;
}