Могу ли я получить параметры пути в функции защиты nestjs другим способом, чем просто искать необработанный объект запроса из контекста http?
что я хочу сделать, например,
@Patch(':id/someActionName')
@UseGuards(SomeGuard)
async activateRole(@Param('id') id,@Body() input: SomeObject): Promise<any> {
//some logic
return response;
}
и мой SomeGuard получит значение параметра "id" и "input", входной параметр прост, но я не вижу простого способа получить "id",
В вашей защите вы можете получить доступ к параметрам маршрута, получив запрос из контекста следующим образом:
canActivate(context: ExecutionContext): boolean {
const request = context.switchToHttp().getRequest();
const params = request.params;
const id = params.id; // automatically parsed
}
Это не было в документации, и у меня была такая же проблема, как и вы, и мне пришлось прорыть объект запроса.