import { Injectable } from "@nestjs/common"; import { InjectRepository } from "@nestjs/typeorm"; import { Token } from "./entities/token.entity"; import { Repository } from "typeorm"; import { Project } from "src/project/entities/project.entity"; @Injectable() export class ApiService { constructor( @InjectRepository(Token) private readonly tokenRepository: Repository, @InjectRepository(Project) private readonly projectRepository: Repository ) {} async generateToken(projectToken: string) { const project = await this.projectRepository.findOne({ where: { token: projectToken }, }); if (!project) { throw new Error("Project not found"); } const token = this.tokenRepository.create({ project }); return this.tokenRepository.save(token); } async revokeToken(tokenString: string) { const token = await this.tokenRepository.findOne({ where: { token: tokenString }, }); if (!token) { throw new Error("Token not found"); } token.isActive = false; return this.tokenRepository.save(token); } }