local-aws/src/secrets-manager/secret.service.ts

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(),
}
});
}
}