import { Body, Controller, Get, HttpCode, HttpStatus, Inject, Param, Post, Query, Req, UseGuards, } from '@nestjs/common'; import { FieldMapperService } from '../service/field-mapper.service'; import { JwtAuthGuard } from '../../auth/guards/jwt.guard'; import { FieldMapperDto } from '../dto/field-mapper.dto'; @Controller('field-mapper') @UseGuards(JwtAuthGuard) export class FieldMapperController { constructor( @Inject('FieldMapperService') private readonly fieldMapperService: FieldMapperService, ) {} @Post('resolve') async resolve( @Req() req: any, @Query('integration_component') integration_component: number, @Query('action') action: 'LOOKUP' | 'LOAD', @Query('entity_type') entity_type: string, @Query('entity_id') entity_id: number, @Body() inputJson, ) { const loggedInUser = req.user.userData; return await this.fieldMapperService.resolveData( integration_component, action, entity_type, entity_id, loggedInUser, inputJson, inputJson['mapped_entities'], ); } @Post('bulk') @HttpCode(HttpStatus.OK) async createBulk(@Req() req: any, @Body() dtos: FieldMapperDto[]) { const loggedInUser = req.user.userData; return this.fieldMapperService.createFieldMappers(dtos, loggedInUser); } @Post('bulk-update') @HttpCode(HttpStatus.OK) async updateBulk(@Req() req: any, @Body() dtos: FieldMapperDto[]) { const loggedInUser = req.user.userData; return this.fieldMapperService.updateFieldMappers(dtos, loggedInUser); } @Get('getFields/:mapperId') async getFieldsByMapper( @Param('mapperId') mapperId: number, @Query('mapper_entity_type') mapper_entity_type: string, ) { return this.fieldMapperService.getMapperFields( mapperId, mapper_entity_type, ); } @Get('getLovs/:mapperFieldId') async getLovsByMapperField(@Param('mapperFieldId') mapperFieldId: number) { return this.fieldMapperService.getFieldLovs(mapperFieldId); } }