Files
few-line-engine/src/api/api.service.ts

43 lines
1.1 KiB
TypeScript

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<Token>,
@InjectRepository(Project)
private readonly projectRepository: Repository<Project>
) {}
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);
}
}