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