[offers][refactor] refactor random name generator code

This commit is contained in:
Stuart Long Chay Boon
2022-10-24 21:27:40 +08:00
parent e77bb03639
commit 3c80296253
2 changed files with 23 additions and 18 deletions

View File

@ -268,22 +268,7 @@ export const offersProfileRouter = createRouter()
.digest('hex');
// Generate random name until unique
let uniqueName: string = generateRandomName();
let sameNameProfiles = await ctx.prisma.offersProfile.findMany({
where: {
profileName: uniqueName
}
})
while (sameNameProfiles.length !== 0) {
uniqueName = generateRandomName();
sameNameProfiles = await ctx.prisma.offersProfile.findMany({
where: {
profileName: uniqueName
}
})
}
const uniqueName: string = await generateRandomName();
const profile = await ctx.prisma.offersProfile.create({
data: {

View File

@ -1,5 +1,8 @@
import type { Config } from 'unique-names-generator';
import { adjectives, animals,colors, uniqueNamesGenerator } from 'unique-names-generator';
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient()
const customConfig: Config = {
dictionaries: [adjectives, colors, animals],
@ -8,6 +11,23 @@ const customConfig: Config = {
};
export default function generateRandomName(): string {
return uniqueNamesGenerator(customConfig)
export default async function generateRandomName(): Promise<string> {
let uniqueName: string = uniqueNamesGenerator(customConfig);
let sameNameProfiles = await prisma.offersProfile.findMany({
where: {
profileName: uniqueName
}
})
while (sameNameProfiles.length !== 0) {
uniqueName = uniqueNamesGenerator(customConfig);
sameNameProfiles = await prisma.offersProfile.findMany({
where: {
profileName: uniqueName
}
})
}
return uniqueName
}