update: the blog list get for admin
This commit is contained in:
@@ -775,6 +775,8 @@ export const enum BlogMessage {
|
|||||||
SLUG_MAX_LENGTH = "حداکثر طول اسلاگ بلاگ باید ۲۵۵ کاراکتر باشد",
|
SLUG_MAX_LENGTH = "حداکثر طول اسلاگ بلاگ باید ۲۵۵ کاراکتر باشد",
|
||||||
CATEGORY_HAS_BLOGS = "دسته بندی مورد نظر دارای بلاگ میباشد",
|
CATEGORY_HAS_BLOGS = "دسته بندی مورد نظر دارای بلاگ میباشد",
|
||||||
BLOG_ALREADY_EXISTS_WITH_THIS_SLUG = "بلاگی با این اسلاگ قبلا ثبت شده است",
|
BLOG_ALREADY_EXISTS_WITH_THIS_SLUG = "بلاگی با این اسلاگ قبلا ثبت شده است",
|
||||||
|
CREATED_AT_REQUIRED = "تاریخ ایجاد الزامی است",
|
||||||
|
CREATED_AT_DATE_STRING = "تاریخ ایجاد باید یک تاریخ باشد",
|
||||||
}
|
}
|
||||||
|
|
||||||
export const enum SliderMessage {
|
export const enum SliderMessage {
|
||||||
|
|||||||
@@ -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 { 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;
|
||||||
|
}
|
||||||
|
|||||||
@@ -123,7 +123,23 @@ export class BlogsRepository extends Repository<Blog> {
|
|||||||
const queryBuilder = this.createQueryBuilder("blog")
|
const queryBuilder = this.createQueryBuilder("blog")
|
||||||
.where("blog.deletedAt IS NULL")
|
.where("blog.deletedAt IS NULL")
|
||||||
.leftJoinAndSelect("blog.category", "category")
|
.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) {
|
if (queryDto.isActive) {
|
||||||
queryBuilder.andWhere("blog.isActive = :isActive", { isActive: queryDto.isActive === 1 });
|
queryBuilder.andWhere("blog.isActive = :isActive", { isActive: queryDto.isActive === 1 });
|
||||||
@@ -158,6 +174,7 @@ export class BlogsRepository extends Repository<Blog> {
|
|||||||
|
|
||||||
return queryBuilder.getManyAndCount();
|
return queryBuilder.getManyAndCount();
|
||||||
}
|
}
|
||||||
|
//*********************************** */
|
||||||
|
|
||||||
async getMostVisitedBlogs(limit: number = 5) {
|
async getMostVisitedBlogs(limit: number = 5) {
|
||||||
return this.createQueryBuilder("blog")
|
return this.createQueryBuilder("blog")
|
||||||
|
|||||||
Reference in New Issue
Block a user