31 lines
921 B
TypeScript
31 lines
921 B
TypeScript
import { Injectable } from '@nestjs/common';
|
|
import { Prisma, Secret } from '@prisma/client';
|
|
import { randomUUID } from 'crypto';
|
|
|
|
import { PrismaService } from '../_prisma/prisma.service';
|
|
|
|
@Injectable()
|
|
export class SecretService {
|
|
|
|
constructor(
|
|
private readonly prismaService: PrismaService,
|
|
) {}
|
|
|
|
async findLatestByNameAndRegion(name: string, region: string): Promise<Secret | null> {
|
|
return await this.prismaService.secret.findFirst({ where: { name, region }, orderBy: { createdAt: 'desc' } });
|
|
}
|
|
|
|
async findByNameAndVersion(name: string, versionId: string): Promise<Secret | null> {
|
|
return await this.prismaService.secret.findFirst({ where: { name, versionId } });
|
|
}
|
|
|
|
async create(data: Prisma.SecretCreateInput): Promise<Secret> {
|
|
return await this.prismaService.secret.create({
|
|
data: {
|
|
...data,
|
|
versionId: data.versionId ?? randomUUID(),
|
|
}
|
|
});
|
|
}
|
|
}
|