Drivine @transactional() decorator breaks Nest ValidationPipe if used with @UsePies()
import { Controller, Post, Body, ValidationPipe, UsePipes } from '@nestjs/common';
import { Transactional } from '@liberation-data/drivine';
import { SpotSaveRequestDto, SpotSaveDto } from '@slackmap/api/spot/dto';
import { SpotRepository } from '@slackmap/api/spot/data';
@Controller()
export class SpotSaveController {
constructor(private spotRepository: SpotRepository) {}
@Post('spot/save')
@Transactional() // <<< if you comment this out, validation will work
@UsePipes(new ValidationPipe())
async process(@Body() data: SpotSaveRequestDto): Promise<SpotSaveDto> {
const spot = await this.spotRepository.create(data.spot)
return {spot}
}
}
It will work if you use it on the method param like:
async process(@Body(new ValidationPipe()) data: SpotSaveRequestDto): Promise<SpotSaveDto> {
const spot = await this.spotRepository.create(data.spot)
return {spot}
}
Drivine @transactional() decorator breaks Nest ValidationPipe if used with @UsePies()
It will work if you use it on the method param like: