Update seed to do bulk insert

This commit is contained in:
Aaron William Po
2023-04-26 22:33:24 -04:00
parent c19cddceb7
commit c0d705f8cb
13 changed files with 256 additions and 197 deletions

View File

@@ -1,6 +1,6 @@
// eslint-disable-next-line import/no-extraneous-dependencies
import { faker } from '@faker-js/faker';
import { BreweryComment, BreweryPost, User } from '@prisma/client';
import { BreweryPost, User } from '@prisma/client';
import DBClient from '../../DBClient';
interface CreateNewBreweryPostCommentsArgs {
@@ -11,32 +11,40 @@ interface CreateNewBreweryPostCommentsArgs {
};
}
interface BreweryPostCommentData {
content: string;
postedById: string;
breweryPostId: string;
rating: number;
createdAt: Date;
}
const createNewBreweryPostComments = async ({
numberOfComments,
joinData,
}: CreateNewBreweryPostCommentsArgs) => {
const { breweryPosts, users } = joinData;
const prisma = DBClient.instance;
const breweryCommentPromises: Promise<BreweryComment>[] = [];
const breweryPostCommentData: BreweryPostCommentData[] = [];
const createdAt = faker.date.past(1);
const rating = Math.floor(Math.random() * 5) + 1;
// eslint-disable-next-line no-plusplus
for (let i = 0; i < numberOfComments; i++) {
const content = faker.lorem.lines(5);
const user = users[Math.floor(Math.random() * users.length)];
const breweryPost = breweryPosts[Math.floor(Math.random() * breweryPosts.length)];
breweryCommentPromises.push(
prisma.breweryComment.create({
data: {
content,
postedBy: { connect: { id: user.id } },
breweryPost: { connect: { id: breweryPost.id } },
rating: Math.floor(Math.random() * 5) + 1,
createdAt,
},
}),
);
breweryPostCommentData.push({
content,
createdAt,
rating,
postedById: user.id,
breweryPostId: breweryPost.id,
});
}
return Promise.all(breweryCommentPromises);
await prisma.breweryComment.createMany({ data: breweryPostCommentData });
return prisma.breweryComment.findMany();
};
export default createNewBreweryPostComments;