mirror of
https://github.com/yangshun/tech-interview-handbook.git
synced 2025-07-28 12:43:12 +08:00
[offers][refactor] refactor random name generator code
This commit is contained in:
@ -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: {
|
||||
|
@ -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
|
||||
}
|
Reference in New Issue
Block a user