chore: complete criticism module

This commit is contained in:
Matin
2025-01-27 14:21:59 +03:30
parent 5bdf7baceb
commit a7e3172cb4
4 changed files with 33 additions and 2 deletions
+1
View File
@@ -131,4 +131,5 @@ export const enum CriticismMessage {
TITLE_STRING = "عنوان انتقادات باید یک رشته باشد",
CONTENT_IS_REQUIRED = "متن انتقادات مورد نیاز است",
CONTENT_IS_STRING = "متن انتقادات باید رشته باشد",
NOT_FOUND = "انتقادی با این ایدی یافت نشد",
}
@@ -27,6 +27,14 @@ export class CriticismController {
return this.criticismService.findAll();
}
@AuthGuards()
@Roles(RoleEnum.ADMIN)
@ApiOperation({ summary: "Get one Criticism with id ===> login as admin" })
@Get(":id")
fineOne(@Param() paramDto: ParamDto) {
return this.criticismService.findOneAndMarkAsRead(paramDto.id);
}
@AuthGuards()
@Roles(RoleEnum.ADMIN)
@ApiOperation({ summary: "Delete one Criticism with id ===> login as admin" })
@@ -14,6 +14,9 @@ export class Criticism extends BaseEntity {
@Column({ type: "text", nullable: false })
content: string;
@Column({ type: "boolean", default: false })
isRead: boolean;
@OneToMany(() => CriticismFile, (criticismFile) => criticismFile.criticism, { eager: true, cascade: true })
files: CriticismFile[];
}
@@ -1,6 +1,6 @@
import { BadRequestException, Injectable } from "@nestjs/common";
import { CommonMessage } from "../../../common/enums/message.enum";
import { CommonMessage, CriticismMessage } from "../../../common/enums/message.enum";
import { CreateCriticismDto } from "../DTO/create-criticism.dto";
import { CriticismRepository } from "../repositories/criticisms.repository";
@@ -23,10 +23,29 @@ export class CriticismsService {
};
}
//##################################### ##
async findAll() {
return await this.criticismRepository.find({});
const criticisms = await this.criticismRepository.find();
return {
criticisms,
};
}
//##################################### ##
async findOneAndMarkAsRead(id: string) {
const criticism = await this.criticismRepository.findOneBy({ id });
if (!criticism) throw new BadRequestException(CriticismMessage.NOT_FOUND);
criticism.isRead = true;
await this.criticismRepository.save(criticism);
return {
criticism,
};
}
//##################################### ##
async delete(id: string) {
const criticism = await this.criticismRepository.findOneBy({ id });
if (!criticism) throw new BadRequestException();