[offers][fix] integrate random name generator to profile seeding

pull/501/head^2
Stuart Long Chay Boon 3 years ago
parent 3423535d12
commit c6806bea92

@ -4,6 +4,7 @@ import crypto from 'crypto';
import { baseCurrencyString } from '../src/utils/offers/currency';
import { convert } from '../src/utils/offers/currency/currencyExchange';
import { generateAnalysis } from '../src/utils/offers/analysisGeneration';
import generateRandomName from '../src/utils/offers/randomNameGenerator';
const prisma = new PrismaClient();
@ -68,11 +69,15 @@ const seedSalaries = async () => {
.createHash('sha256')
.update(xlSerialToJsDate(data.Timestamp).toString())
.digest('hex');
// Generate random name until unique
let uniqueName: string = await generateRandomName();
if (data.Type.toUpperCase() === 'INTERNSHIP') {
// create profile
const dataAdded = await prisma.offersProfile.create({
data: {
profileName: crypto.randomUUID().substring(0, 10),
profileName: uniqueName,
createdAt: xlSerialToJsDate(data.Timestamp),
editToken: token,
background: {

@ -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
}
Loading…
Cancel
Save