diff --git a/src/project/project.controller.ts b/src/project/project.controller.ts index 1cea75a..870cbfd 100644 --- a/src/project/project.controller.ts +++ b/src/project/project.controller.ts @@ -65,4 +65,9 @@ export class ProjectController { getAllApiTokens(@Req() req: Request & { apiToken: { id: string } }) { return this.projectService.getAllApiTokens(req.apiToken.id); } + + @Get("info") + getProjectInfo(@Req() req: Request & { apiToken: { id: string } }) { + return this.projectService.getProjectInfo(req.apiToken.id); + } } diff --git a/src/project/project.service.ts b/src/project/project.service.ts index 35e7cee..5fe1f55 100644 --- a/src/project/project.service.ts +++ b/src/project/project.service.ts @@ -84,4 +84,13 @@ export class ProjectService { }); return project?.apiTokens || []; } + + async getProjectInfo(projectId: string) { + const project = await this.projectRepository.findOne({ + where: { id: projectId }, + relations: ["queries", "apiTokens", "functions", "settings"], + }); + + return project; + } } diff --git a/src/query/function/function.controller.ts b/src/query/function/function.controller.ts index fce239d..6c16647 100644 --- a/src/query/function/function.controller.ts +++ b/src/query/function/function.controller.ts @@ -1,4 +1,12 @@ -import { Controller, Inject, Post, Req, UseGuards } from "@nestjs/common"; +import { + Controller, + Delete, + Inject, + Param, + Post, + Req, + UseGuards, +} from "@nestjs/common"; import { ApiTokenGuard } from "src/api/guards/api-token.guard"; import { FunctionService } from "./function.service"; import { Token } from "src/api/entities/token.entity"; @@ -20,10 +28,10 @@ export class FunctionController { return this.functionService.create(req.apiToken.project.id, name, source); } - @Post("delete") + @Delete("delete/:name") async deleteFunction( @Req() req: Request & { apiToken: Token }, - name: string + @Param("name") name: string ) { return this.functionService.deleteFunction(req.apiToken.project.id, name); } diff --git a/src/query/logger/logger.controller.ts b/src/query/logger/logger.controller.ts index 37885ea..a3a1ae9 100644 --- a/src/query/logger/logger.controller.ts +++ b/src/query/logger/logger.controller.ts @@ -5,11 +5,14 @@ import { 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) @@ -19,14 +22,17 @@ export class LoggerController { private readonly loggerService: LoggerService ) {} - @Get("/:id/:traceId") - getByTraceId(@Param("traceId") traceId: string) { - return this.loggerService.findByTraceId(traceId); + @Get("/:traceId") + getByTraceId( + @Req() req: Request & { apiToken: Token }, + @Param("traceId") traceId: string + ) { + return this.loggerService.findByTraceId(req.apiToken.project.id, traceId); } - @Post("/:id/findAll") + @Post("/findAll") findAll( - @Param("id") projectId: string, + @Req() req: Request & { apiToken: Token }, @Body() body: { traceId?: string; @@ -37,13 +43,13 @@ export class LoggerController { offset: number; } ) { - return this.loggerService.findByProjectId(projectId, body); + return this.loggerService.findByProjectId(req.apiToken.project.id, body); } - @Post("/:id/find") + @Post("/find") @UseGuards(QueryGuard) find( - @Param("id") _id: string, + @Req() req: Request & { query: Query }, @Body() body: { traceId?: string; @@ -54,6 +60,6 @@ export class LoggerController { offset: number; } ) { - return this.loggerService.find(_id, body); + return this.loggerService.find(req.query.id, body); } } diff --git a/src/query/logger/logger.service.ts b/src/query/logger/logger.service.ts index 32dc96c..81d70fc 100644 --- a/src/query/logger/logger.service.ts +++ b/src/query/logger/logger.service.ts @@ -22,8 +22,15 @@ export class LoggerService { return await this.logRepository.save(log); } - async findByTraceId(traceId: string): Promise { - return await this.logRepository.find({ where: { traceId } }); + async findByTraceId(projectId: string, traceId: string): Promise { + return await this.logRepository.find({ + where: { + traceId, + project: { + id: projectId, + }, + }, + }); } private prepareQuery(data: {