import { Body, Controller, Get, Inject, Param, Post, Req, UseGuards, } from "@nestjs/common"; import { LoggerService } from "./logger.service"; import { ApiTokenGuard } from "src/api/guards/api-token.guard"; import { QueryGuard } from "../guards/query.guard"; import { Token } from "src/api/entities/token.entity"; import { Query } from "../entities/query.entity"; @Controller("logger") @UseGuards(ApiTokenGuard) export class LoggerController { constructor( @Inject(LoggerService) private readonly loggerService: LoggerService ) {} @Get("/:traceId") getByTraceId( @Req() req: Request & { apiToken: Token }, @Param("traceId") traceId: string ) { return this.loggerService.findByTraceId(req.apiToken.project.id, traceId); } @Post("/findAll") findAll( @Req() req: Request & { apiToken: Token }, @Body() body: { traceId?: string; fromDate?: Date; toDate?: Date; url?: string; limit: number; offset: number; } ) { return this.loggerService.findByProjectId(req.apiToken.project.id, body); } @Post("/find") @UseGuards(QueryGuard) find( @Req() req: Request & { query: Query }, @Body() body: { traceId?: string; fromDate?: Date; toDate?: Date; url?: string; limit: number; offset: number; } ) { return this.loggerService.find(req.query.id, body); } }