update: remove the blog from the response of the update or create blog

This commit is contained in:
mahyargdz
2025-09-03 08:59:17 +03:30
parent 672fe9b783
commit 5e0bd3dce7
24 changed files with 526 additions and 385 deletions
+25 -12
View File
@@ -1,4 +1,5 @@
import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Patch, Post, Query } from "@nestjs/common";
import { CacheInterceptor, CacheTTL } from "@nestjs/cache-manager";
import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Patch, Post, Query, UseInterceptors } from "@nestjs/common";
import { ApiOperation } from "@nestjs/swagger";
import { BlogCommentQueryDto } from "./DTO/blog-comment-query.dto";
@@ -18,7 +19,7 @@ import { AuthGuards } from "../../common/decorators/auth-guard.decorator";
import { Pagination } from "../../common/decorators/pagination.decorator";
import { PermissionsDec } from "../../common/decorators/permission.decorator";
import { SkipAuth } from "../../common/decorators/skip-auth.decorator";
import { UserDec } from "../../common/decorators/user.decorator";
import { IUserIpAndHeaders, UserDec, UserIpAndHeaders } from "../../common/decorators/user.decorator";
import { ParamDto } from "../../common/DTO/param.dto";
import { CategoryListSearchQueryDto } from "../danak-services/DTO/category-search-query.dto";
import { PermissionEnum } from "../users/enums/permission.enum";
@@ -31,6 +32,8 @@ export class BlogsController {
) {}
@ApiOperation({ summary: "Get all public and active blogs with category id" })
@UseInterceptors(CacheInterceptor)
@CacheTTL(120 * 1000)
@SkipAuth()
@Get()
getBlogsPublic(@Query() queryDto: BlogSearchQueryDto) {
@@ -38,6 +41,8 @@ export class BlogsController {
}
@ApiOperation({ summary: "Get most visited and pinned blogs" })
@UseInterceptors(CacheInterceptor)
@CacheTTL(120 * 1000)
@SkipAuth()
@Get("combined")
getCombinedBlogs() {
@@ -53,6 +58,8 @@ export class BlogsController {
}
@ApiOperation({ summary: "Get a blog by id" })
@UseInterceptors(CacheInterceptor)
@CacheTTL(120 * 1000)
@SkipAuth()
@Get(":id")
getBlog(@Param() paramDto: ParamDto, @UserDec("isAdmin") isAdmin: boolean) {
@@ -60,6 +67,8 @@ export class BlogsController {
}
@ApiOperation({ summary: "Get a blog by slug" })
@UseInterceptors(CacheInterceptor)
@CacheTTL(120 * 1000)
@SkipAuth()
@Get("slug/:slug")
getBlogBySlug(@Param() paramDto: BlogSlugDto, @UserDec("isAdmin") isAdmin: boolean) {
@@ -67,6 +76,8 @@ export class BlogsController {
}
@ApiOperation({ summary: "Get most visited blogs" })
@UseInterceptors(CacheInterceptor)
@CacheTTL(120 * 1000)
@SkipAuth()
@Get("most-visited")
getMostVisitedBlogs() {
@@ -82,6 +93,8 @@ export class BlogsController {
}
@ApiOperation({ summary: "Get most pinned blogs" })
@UseInterceptors(CacheInterceptor)
@CacheTTL(120 * 1000)
@SkipAuth()
@Get("pinned")
getPinnedBlogs() {
@@ -100,24 +113,24 @@ export class BlogsController {
@Post()
@AdminRoute()
@PermissionsDec(PermissionEnum.BLOGS)
createBlog(@Body() createBlogDto: CreateBlogDto, @UserDec("id") userId: string) {
return this.blogsService.createBlog(createBlogDto, userId);
createBlog(@Body() createBlogDto: CreateBlogDto, @UserIpAndHeaders() userIpAndHeaders: IUserIpAndHeaders) {
return this.blogsService.createBlog(createBlogDto, userIpAndHeaders);
}
@ApiOperation({ summary: "Update a blog (admin route)" })
@Patch(":id")
@AdminRoute()
@PermissionsDec(PermissionEnum.BLOGS)
updateBlog(@Param() paramDto: ParamDto, @Body() updateBlogDto: UpdateBlogDto, @UserDec("id") userId: string) {
return this.blogsService.updateBlog(paramDto.id, updateBlogDto, userId);
updateBlog(@Param() paramDto: ParamDto, @Body() updateBlogDto: UpdateBlogDto, @UserIpAndHeaders() userIpAndHeaders: IUserIpAndHeaders) {
return this.blogsService.updateBlog(paramDto.id, updateBlogDto, userIpAndHeaders);
}
@ApiOperation({ summary: "Delete a blog (admin route) " })
@Delete(":id")
@AdminRoute()
@PermissionsDec(PermissionEnum.BLOGS)
deleteBlog(@Param() paramDto: ParamDto, @UserDec("id") userId: string) {
return this.blogsService.deleteBlog(paramDto.id, userId);
deleteBlog(@Param() paramDto: ParamDto, @UserIpAndHeaders() userIpAndHeaders: IUserIpAndHeaders) {
return this.blogsService.deleteBlog(paramDto.id, userIpAndHeaders);
}
//-------------- comments --------------
@@ -200,15 +213,15 @@ export class BlogsController {
@Delete("categories/:id")
@AdminRoute()
@PermissionsDec(PermissionEnum.BLOGS)
deleteCategory(@Param() paramDto: ParamDto, @UserDec("id") userId: string) {
return this.blogsService.deleteCategory(paramDto.id, userId);
deleteCategory(@Param() paramDto: ParamDto, @UserIpAndHeaders() userIpAndHeaders: IUserIpAndHeaders) {
return this.blogsService.deleteCategory(paramDto.id, userIpAndHeaders);
}
@ApiOperation({ summary: "toggle status of categories (admin route)" })
@PermissionsDec(PermissionEnum.BLOGS)
@HttpCode(HttpStatus.OK)
@Post("categories/toggle-status/:id")
toggleCategoryStatus(@Param() paramDto: ParamDto) {
return this.blogsService.toggleCategoryStatus(paramDto.id);
toggleCategoryStatus(@Param() paramDto: ParamDto, @UserIpAndHeaders() userIpAndHeaders: IUserIpAndHeaders) {
return this.blogsService.toggleCategoryStatus(paramDto.id, userIpAndHeaders);
}
}