import { Body, Controller, Get, HttpCode, HttpStatus, Inject, Post, Query, Req, UseGuards, } from '@nestjs/common'; import { LayoutPreferenceService } from '../service/layout_preference.service'; import { JwtAuthGuard } from 'src/module/auth/guards/jwt.guard'; @Controller('layout-preference') export class LayoutPreferenceController { constructor( @Inject('LayoutPreferenceService') private readonly layoutPreferenceService: LayoutPreferenceService, ) {} @Get('') @UseGuards(JwtAuthGuard) @HttpCode(HttpStatus.OK) async getFilterById( @Query('entity_type') entity_type: string, @Query('type') type: string, @Req() req: Request & { user: any }, ) { const userDat = req.user.userData; return this.layoutPreferenceService.getLayoutPreferenceByUserID( userDat.id, entity_type, userDat.level_id, userDat.level_type, type, ); } @Get('column') @UseGuards(JwtAuthGuard) @HttpCode(HttpStatus.OK) async getColumnValues( @Query('entity_type') entity_type: string, @Query('column') column: string, @Query('sort_by') sort_by: string, @Req() req: Request & { user: any }, ) { const loggedInUser = req.user.userData; return this.layoutPreferenceService.getColumnValue( entity_type, column, sort_by, loggedInUser, ); } @Post('attributes') @UseGuards(JwtAuthGuard) @HttpCode(HttpStatus.OK) async getEntityLayoutAttributes( @Req() req: Request & { user: any }, @Query() queryParams, @Body() body: any, ) { const loggedInUser = req.user.userData; const query_payload = { ...queryParams }; const { entity_type } = body; return this.layoutPreferenceService.getEntityLayoutAttributes( entity_type, query_payload, loggedInUser, ); } }