Files
the-biergarten-app/src/prisma/seed/create/createNewBreweryPostComments.ts
Aaron William Po b3b1d5b6d1 Feat: Implement infinite scrolling brewery comment section
Refactor beer comment schemas to work on brewery comments as well. Add robots.txt to block crawling for now.
2023-04-30 14:00:38 -04:00

51 lines
1.4 KiB
TypeScript

// eslint-disable-next-line import/no-extraneous-dependencies
import { faker } from '@faker-js/faker';
import { BreweryPost, User } from '@prisma/client';
import DBClient from '../../DBClient';
interface CreateNewBreweryPostCommentsArgs {
numberOfComments: number;
joinData: {
breweryPosts: BreweryPost[];
users: User[];
};
}
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 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(3).replace(/\n/g, ' ');
const user = users[Math.floor(Math.random() * users.length)];
const breweryPost = breweryPosts[Math.floor(Math.random() * breweryPosts.length)];
breweryPostCommentData.push({
content,
createdAt,
rating,
postedById: user.id,
breweryPostId: breweryPost.id,
});
}
await prisma.breweryComment.createMany({ data: breweryPostCommentData });
return prisma.breweryComment.findMany();
};
export default createNewBreweryPostComments;