feat: add logging functionality with LoggerService; implement log entity and controller; enhance query processing with logging support

This commit is contained in:
lborv
2025-10-11 16:21:03 +03:00
parent 323fc6e817
commit 57e4a8b932
19 changed files with 328 additions and 24 deletions

View File

@ -5,7 +5,6 @@ import { AdminGuard } from "src/api/guards/admin.guard";
@Controller("project")
@UseGuards(ApiTokenGuard)
@UseGuards(AdminGuard)
export class ProjectController {
constructor(
@Inject(ProjectService)
@ -16,4 +15,10 @@ export class ProjectController {
createProject(@Body() body: { name: string }) {
return this.projectService.create(body.name);
}
@Put("create-without-db")
@UseGuards(AdminGuard)
createProjectWithoutDB(@Body() body: { name: string }) {
return this.projectService.create(body.name, false);
}
}

View File

@ -5,11 +5,13 @@ import { ProjectService } from "./project.service";
import { ProjectController } from "./project.controller";
import { ApiModule } from "src/api/api.module";
import { RedisModule } from "src/redis/redis.module";
import { DatabaseManagerModule } from "src/databaseManager/database.manager.module";
@Module({
imports: [
forwardRef(() => ApiModule),
forwardRef(() => RedisModule),
forwardRef(() => DatabaseManagerModule),
TypeOrmModule.forFeature([Project]),
],
controllers: [ProjectController],

View File

@ -1,8 +1,9 @@
import { Inject, Injectable } from "@nestjs/common";
import { forwardRef, Inject, Injectable } from "@nestjs/common";
import { InjectRepository } from "@nestjs/typeorm";
import { Repository } from "typeorm";
import { Project } from "./entities/project.entity";
import { RedisClient } from "src/redis/redis.service";
import { DatabaseManagerService } from "src/databaseManager/database/database.manager.service";
@Injectable()
export class ProjectService {
@ -10,12 +11,20 @@ export class ProjectService {
@InjectRepository(Project)
private readonly projectRepository: Repository<Project>,
@Inject(RedisClient)
private readonly redisClient: RedisClient
private readonly redisClient: RedisClient,
@Inject(forwardRef(() => DatabaseManagerService))
private readonly databaseManagerService: DatabaseManagerService
) {}
create(name: string) {
async create(name: string, createDatabase: boolean = true) {
const project = this.projectRepository.create({ name });
return this.projectRepository.save(project);
const projectSaved = await this.projectRepository.save(project);
if (createDatabase) {
await this.databaseManagerService.createDatabase(projectSaved.id);
}
return projectSaved;
}
async findById(id: string) {