final commit
This commit is contained in:
@@ -62,7 +62,7 @@ export class BlogsController {
|
||||
async updateAboutFields(
|
||||
@Res() res: Response,
|
||||
@Body() updateAboutFieldsDto: UpdateAboutFieldsDto,
|
||||
@Param("id", new IsUuidPipe("blog not found")) id: string
|
||||
@Param("id", new IsUuidPipe("blog not found")) id: string,
|
||||
): Promise<Response> {
|
||||
await this.blogsService.updateAboutFields(id, updateAboutFieldsDto);
|
||||
return CustomResponses.successResponse(res, "", HttpStatus.OK);
|
||||
@@ -83,7 +83,7 @@ export class BlogsController {
|
||||
async updateFeaturedImage(
|
||||
@Res() res: Response,
|
||||
@Body() updateFeaturedImageDto: UpdateFeaturedImageDto,
|
||||
@Param("id", new IsUuidPipe("blog not found")) id: string
|
||||
@Param("id", new IsUuidPipe("blog not found")) id: string,
|
||||
): Promise<Response> {
|
||||
if (!(await this.blogsService.isBlogExistsById(id))) throw new ApiError("blog not found", HttpStatus.NOT_FOUND);
|
||||
await this.blogsService.updateFeaturedImageById(id, updateFeaturedImageDto.image);
|
||||
@@ -105,7 +105,7 @@ export class BlogsController {
|
||||
async updateGallery(
|
||||
@Res() res: Response,
|
||||
@Body() updateGalleryDto: UpdateGalleryDto,
|
||||
@Param("id", new IsUuidPipe("blog not found")) id: string
|
||||
@Param("id", new IsUuidPipe("blog not found")) id: string,
|
||||
): Promise<Response> {
|
||||
if (!(await this.blogsService.isBlogExistsById(id))) throw new ApiError("blog not found", HttpStatus.NOT_FOUND);
|
||||
await this.blogsService.updateGalleryById(id, updateGalleryDto.gallery);
|
||||
@@ -127,7 +127,7 @@ export class BlogsController {
|
||||
async updateDynamicData(
|
||||
@Res() res: Response,
|
||||
@Body() updateDynamicDataDto: UpdateDynamicDataDto,
|
||||
@Param("id", new IsUuidPipe("blog not found")) id: string
|
||||
@Param("id", new IsUuidPipe("blog not found")) id: string,
|
||||
): Promise<Response> {
|
||||
if (!(await this.blogsService.isBlogExistsById(id))) throw new ApiError("blog not found", HttpStatus.NOT_FOUND);
|
||||
await this.blogsService.updateDynamicDataById(id, updateDynamicDataDto);
|
||||
@@ -149,7 +149,7 @@ export class BlogsController {
|
||||
async updateTranslations(
|
||||
@Res() res: Response,
|
||||
@Body() updateTranslationsDto: UpdateTranslationsDto,
|
||||
@Param("id", new IsUuidPipe("blog not found")) id: string
|
||||
@Param("id", new IsUuidPipe("blog not found")) id: string,
|
||||
): Promise<Response> {
|
||||
if (!(await this.blogsService.isBlogExistsById(id))) throw new ApiError("blog not found", HttpStatus.NOT_FOUND);
|
||||
await this.blogsService.updateTranslationsDataById(id, updateTranslationsDto);
|
||||
@@ -197,7 +197,7 @@ export class BlogsController {
|
||||
@Get("latest/:language")
|
||||
async getLatestBlogs(
|
||||
@Res() res: Response,
|
||||
@Param("language", new IsLanguageEnumPipe("language not found")) language: LanguageEnum
|
||||
@Param("language", new IsLanguageEnumPipe("language not found")) language: LanguageEnum,
|
||||
): Promise<Response> {
|
||||
const blogs = await this.blogsService.fetchLastBlogsByLanguage(language);
|
||||
return CustomResponses.successResponse(res, "", HttpStatus.OK, blogs);
|
||||
@@ -208,7 +208,7 @@ export class BlogsController {
|
||||
@Get("all/:language")
|
||||
async getNewestBlogs(
|
||||
@Res() res: Response,
|
||||
@Param("language", new IsLanguageEnumPipe("language not found")) language: LanguageEnum
|
||||
@Param("language", new IsLanguageEnumPipe("language not found")) language: LanguageEnum,
|
||||
): Promise<Response> {
|
||||
const blogs = await this.blogsService.fetchNewestBlogsByLanguage(language);
|
||||
return CustomResponses.successResponse(res, "", HttpStatus.OK, blogs);
|
||||
@@ -220,9 +220,21 @@ export class BlogsController {
|
||||
async getSingleBlog(
|
||||
@Res() res: Response,
|
||||
@Param("language", new IsLanguageEnumPipe("language not found")) language: LanguageEnum,
|
||||
@Param("href", new IsHrefPipe("blog not found")) href: string
|
||||
@Param("href", new IsHrefPipe("blog not found")) href: string,
|
||||
): Promise<Response> {
|
||||
const blog = await this.blogsService.fetchSingleBlogByLanguageAndHref(language, href);
|
||||
return CustomResponses.successResponse(res, "", HttpStatus.OK, blog);
|
||||
}
|
||||
|
||||
@ApiOperation({ summary: "fetch related blogs by language exception" })
|
||||
@PublicRoute()
|
||||
@Get("related/:href/:language")
|
||||
async getRelatedBlogs(
|
||||
@Res() res: Response,
|
||||
@Param("language", new IsLanguageEnumPipe("language not found")) language: LanguageEnum,
|
||||
@Param("href", new IsHrefPipe("blog not found")) href: string,
|
||||
): Promise<Response> {
|
||||
const blog = await this.blogsService.fetchRelatedBlogsByLanguageAndExceptionHref(language, href);
|
||||
return CustomResponses.successResponse(res, "", HttpStatus.OK, blog);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -303,12 +303,30 @@ export class BlogsService {
|
||||
return blogs;
|
||||
}
|
||||
|
||||
async fetchRelatedBlogsByLanguageAndExceptionHref(language: LanguageEnum, href: string): Promise<Blog[]> {
|
||||
const blogs = await this.blogsRepository
|
||||
.createQueryBuilder("b")
|
||||
.select(["b.id", "b.featuredImage", "b.gallery", "b.href", "b.publishedAt", "b.createdAt"])
|
||||
.leftJoinAndSelect("b.writer", "writer")
|
||||
.leftJoinAndSelect("b.translations", "translation", "translation.language = :language", { language })
|
||||
.where("b.href != :href", { href })
|
||||
.andWhere("b.deletedAt IS NULL")
|
||||
.andWhere("b.publishedAt IS NOT NULL")
|
||||
.orderBy("b.publishedAt", "DESC")
|
||||
.limit(3)
|
||||
.getMany();
|
||||
|
||||
return blogs;
|
||||
}
|
||||
|
||||
async fetchNewestBlogsByLanguage(language: LanguageEnum): Promise<Blog[]> {
|
||||
const blogs = await this.blogsRepository
|
||||
.createQueryBuilder("blog")
|
||||
.select(["blog.id", "blog.featuredImage", "blog.gallery", "blog.href", "blog.publishedAt"])
|
||||
.select(["blog.id", "blog.featuredImage", "blog.gallery", "blog.href", "blog.publishedAt", "blog.createdAt"])
|
||||
.leftJoinAndSelect("blog.writer", "writer")
|
||||
.leftJoinAndSelect("blog.translations", "translation", "translation.language = :language", { language })
|
||||
.where("blog.publishedAt IS NOT NULL")
|
||||
.where("blog.deletedAt IS NULL")
|
||||
.andWhere("blog.publishedAt IS NOT NULL")
|
||||
.orderBy("blog.publishedAt", "DESC")
|
||||
.getMany();
|
||||
|
||||
@@ -318,8 +336,9 @@ export class BlogsService {
|
||||
async fetchSingleBlogByLanguageAndHref(language: LanguageEnum, href: string): Promise<Blog | null> {
|
||||
const blog = await this.blogsRepository
|
||||
.createQueryBuilder("blog")
|
||||
.select(["blog.id", "blog.featuredImage", "blog.gallery", "blog.href", "blog.publishedAt"])
|
||||
.select(["blog.id", "blog.featuredImage", "blog.gallery", "blog.href", "blog.publishedAt", "blog.createdAt"])
|
||||
.leftJoinAndSelect("blog.translations", "translation", "translation.language = :language", { language })
|
||||
.leftJoinAndSelect("blog.writer", "writer")
|
||||
.where("blog.publishedAt IS NOT NULL AND blog.href = :href", { href })
|
||||
.getOne();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user