Доступ запрещён в Nest
Запись в списке помечена как закрытая, а клиент всё равно вызывает маршрут редактирования. Вернуть успех нельзя, хотя операцию выполнять нельзя по правилам сайта.
ForbiddenException сообщает код
«доступ запрещён». Метод сверяет флаг
записи и бросает исключение, если
изменение не разрешено; иначе продолжает
работу.
Покажем на примере постов:
import {
Controller,
ForbiddenException,
Patch,
Param,
} from '@nestjs/common';
@Controller('posts')
export class PostController {
private posts = [
{ id: '1', title: 'Morning note', locked: true },
{ id: '2', title: 'Evening note', locked: false },
];
@Patch(':id')
editPost(@Param('id') id: string): string {
const post = this.posts.find((item) => item.id === id);
if (post?.locked) {
throw new ForbiddenException('Post is locked');
}
return 'Post updated';
}
}
Контроллер подключаем в корневом модуле:
import { Module } from '@nestjs/common';
import { PostController } from './post.controller.js';
@Module({
controllers: [PostController],
})
export class AppModule {}
Сделайте правку работника по номеру
в контроллере WorkerController.
Если запись закрыта для изменений,
прервите метод отказом «доступ запрещён».
Подключите контроллер к корневому
модулю.