import { Controller, Get, Post, Put, Delete, Param, Body, HttpCode, UseGuards, NotFoundException, Req, Query, } from '@nestjs/common'; import { AccountsService } from './accounts.service'; import { AuthControlGuard, EndpointControlGuard } from '@/src/middleware/access-control.guard'; import { Navigator } from '@/src/utils/navigator/navigator'; @Controller('accounts') export class AccountsController { constructor( private accountsService: AccountsService, private navigator: Navigator ) { } @Get('events') @HttpCode(200) @UseGuards(AuthControlGuard) async getEvents(@Query() query: any) { const { userToken } = query; if (!userToken) { throw new NotFoundException('User token is missing or null') } const events = await this.navigator.getInfos(this.accountsService, userToken) return { events, message: "Events fetched successfully" }; } @Post('filter') @HttpCode(200) @UseGuards(AuthControlGuard, EndpointControlGuard) async filterAccounts(@Body() query: any, @Req() req: any) { return await this.navigator.getFunction(req, this.accountsService.mapper, query) } }