update: add new field for subscription of user when purchased

This commit is contained in:
mahyargdz
2025-02-28 12:08:46 +03:30
parent 93c5ad49d3
commit 76feef7645
29 changed files with 220 additions and 302 deletions
@@ -1,5 +1,5 @@
import { ApiProperty } from "@nestjs/swagger";
import { IsNotEmpty, IsOptional, IsString } from "class-validator";
import { IsNotEmpty, IsOptional, IsString, IsUrl } from "class-validator";
import { CriticismMessage } from "../../../common/enums/message.enum";
@@ -15,8 +15,8 @@ export class CreateCriticismDto {
content: string;
@IsOptional()
@IsNotEmpty()
@IsString({ each: true })
@IsNotEmpty({ message: CriticismMessage.FILES_IS_REQUIRED })
@IsUrl({ protocols: ["http", "https"], require_protocol: true }, { message: CriticismMessage.FILES_SHOULD_BE_URL, each: true })
@ApiProperty({
description: "The ulr of the criticism files",
example: ["https://example.com/image1.png", "https://example.com/image2.png"],
@@ -8,7 +8,6 @@ import { AuthGuards } from "../../common/decorators/auth-guard.decorator";
import { PermissionsDec } from "../../common/decorators/permission.decorator";
import { UserDec } from "../../common/decorators/user.decorator";
import { ParamDto } from "../../common/DTO/param.dto";
import { User } from "../users/entities/user.entity";
import { PermissionEnum } from "../users/enums/permission.enum";
@Controller("criticisms")
@@ -19,8 +18,8 @@ export class CriticismController {
@AuthGuards()
@ApiOperation({ summary: "Create a new criticism" })
@Post()
create(@Body() createDto: CreateCriticismDto, @UserDec() user: User) {
return this.criticismService.create(createDto, user.id);
create(@Body() createDto: CreateCriticismDto, @UserDec("id") userId: string) {
return this.criticismService.create(createDto, userId);
}
@AuthGuards()
@@ -16,9 +16,10 @@ export class CriticismsService {
async create(createDto: CreateCriticismDto, userId: string) {
const { user } = await this.usersService.findOneById(userId);
const files = createDto.files.map((file) => {
return { fileUrl: file };
});
const files =
createDto.files?.map((file) => {
return { fileUrl: file };
}) || [];
const criticism = this.criticismRepository.create({
...createDto,
user,