diff --git a/src/common/enums/message.enum.ts b/src/common/enums/message.enum.ts index 94212cb..451dcb7 100755 --- a/src/common/enums/message.enum.ts +++ b/src/common/enums/message.enum.ts @@ -775,6 +775,8 @@ export const enum BlogMessage { SLUG_MAX_LENGTH = "حداکثر طول اسلاگ بلاگ باید ۲۵۵ کاراکتر باشد", CATEGORY_HAS_BLOGS = "دسته بندی مورد نظر دارای بلاگ می‌باشد", BLOG_ALREADY_EXISTS_WITH_THIS_SLUG = "بلاگی با این اسلاگ قبلا ثبت شده است", + CREATED_AT_REQUIRED = "تاریخ ایجاد الزامی است", + CREATED_AT_DATE_STRING = "تاریخ ایجاد باید یک تاریخ باشد", } export const enum SliderMessage { diff --git a/src/modules/blogs/DTO/update-blog.dto.ts b/src/modules/blogs/DTO/update-blog.dto.ts index 7211353..83e1077 100755 --- a/src/modules/blogs/DTO/update-blog.dto.ts +++ b/src/modules/blogs/DTO/update-blog.dto.ts @@ -1,5 +1,13 @@ -import { PartialType } from "@nestjs/swagger"; +import { ApiProperty, PartialType } from "@nestjs/swagger"; +import { IsDateString, IsNotEmpty, IsOptional } from "class-validator"; import { CreateBlogDto } from "./create-blog.dto"; +import { BlogMessage } from "../../../common/enums/message.enum"; -export class UpdateBlogDto extends PartialType(CreateBlogDto) {} +export class UpdateBlogDto extends PartialType(CreateBlogDto) { + @IsOptional() + @IsNotEmpty({ message: BlogMessage.CREATED_AT_REQUIRED }) + @IsDateString({}, { message: BlogMessage.CREATED_AT_DATE_STRING }) + @ApiProperty({ description: "Created at of the blog", example: "2021-01-01" }) + createdAt?: Date; +} diff --git a/src/modules/blogs/repositories/blogs.repository.ts b/src/modules/blogs/repositories/blogs.repository.ts index 7d94169..4657360 100755 --- a/src/modules/blogs/repositories/blogs.repository.ts +++ b/src/modules/blogs/repositories/blogs.repository.ts @@ -123,7 +123,23 @@ export class BlogsRepository extends Repository { const queryBuilder = this.createQueryBuilder("blog") .where("blog.deletedAt IS NULL") .leftJoinAndSelect("blog.category", "category") - .leftJoinAndSelect("blog.author", "author"); + .leftJoinAndSelect("blog.author", "author") + .select([ + "blog.id", + "blog.title", + "blog.previewContent", + "blog.metaTitle", + "blog.imageUrl", + "blog.slug", + "blog.isActive", + "blog.createdAt", + "blog.viewCount", + "category.id", + "category.title", + "author.id", + "author.firstName", + "author.lastName", + ]); if (queryDto.isActive) { queryBuilder.andWhere("blog.isActive = :isActive", { isActive: queryDto.isActive === 1 }); @@ -158,6 +174,7 @@ export class BlogsRepository extends Repository { return queryBuilder.getManyAndCount(); } + //*********************************** */ async getMostVisitedBlogs(limit: number = 5) { return this.createQueryBuilder("blog")