Refactor code structure for improved readability and maintainability

This commit is contained in:
lborv
2025-09-17 17:02:03 +03:00
parent afb1f343e0
commit db58d6ecb1
28 changed files with 674 additions and 132 deletions

View File

@ -0,0 +1,18 @@
import { Token } from "src/api/entities/token.entity";
import { Query } from "src/query/entities/query.enitity";
import { Column, Entity, OneToMany, PrimaryGeneratedColumn } from "typeorm";
@Entity("project")
export class Project {
@PrimaryGeneratedColumn("uuid")
token: string;
@Column({ type: "varchar", length: 255 })
name: string;
@OneToMany(() => Token, (token) => token.project)
apiTokens: Token[];
@OneToMany(() => Query, (query) => query.project)
queries: Query[];
}

View File

@ -0,0 +1,15 @@
import { Body, Controller, Inject, Put } from "@nestjs/common";
import { ProjectService } from "./project.service";
@Controller("")
export class ProjectController {
constructor(
@Inject(ProjectService)
private readonly projectService: ProjectService
) {}
@Put("project/create")
createProject(@Body() body: { name: string }) {
return this.projectService.create(body.name);
}
}

View File

@ -0,0 +1,11 @@
import { Module } from "@nestjs/common";
import { TypeOrmModule } from "@nestjs/typeorm";
import { Project } from "./entities/project.entity";
import { ProjectService } from "./project.service";
@Module({
imports: [TypeOrmModule.forFeature([Project])],
controllers: [],
providers: [ProjectService],
})
export class ProjectModule {}

View File

@ -0,0 +1,17 @@
import { Injectable } from "@nestjs/common";
import { InjectRepository } from "@nestjs/typeorm";
import { Repository } from "typeorm";
import { Project } from "./entities/project.entity";
@Injectable()
export class ProjectService {
constructor(
@InjectRepository(Project)
private readonly projectRepository: Repository<Project>
) {}
create(name: string) {
const project = this.projectRepository.create({ name });
return this.projectRepository.save(project);
}
}