Skip to content

Commit

Permalink
feat: seed activity using the existing models
Browse files Browse the repository at this point in the history
  • Loading branch information
zainfathoni committed Sep 20, 2022
1 parent 6d49e11 commit bb65f26
Showing 1 changed file with 29 additions and 7 deletions.
36 changes: 29 additions & 7 deletions prisma/seed.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,42 @@
import { PrismaClient } from '@prisma/client'
import { categories } from '../app/model/categories'
import { categories as categoriesSeed } from '../app/model/categories'
import { activities as activitiesSeed } from '../app/model/activities'

const prisma = new PrismaClient()

async function main() {
// create categories
await Promise.all([
categories.map(async (category) => {
await prisma.category.create({
// create categories from models seed
const categories = await Promise.all(
categoriesSeed.map(async (category) =>
prisma.category.create({
data: {
title: category.title,
slug: category.slug,
},
})
}),
])
)
)

const categoryIdBySlug = categories.reduce((acc, category) => {
acc[category.slug] = category.id
return acc
}, {})

// create activities from models seed
await Promise.all(
activitiesSeed
.filter((activity) => categoryIdBySlug[activity.categorySlug]) // filter out activities with invalid categorySlug
.map(async (activity) =>
prisma.activity.create({
data: {
name: activity.nama,
description: activity.ringkasan,
url: activity.link,
categoryId: categoryIdBySlug[activity.categorySlug],
},
})
)
)
}

main()
Expand Down

0 comments on commit bb65f26

Please sign in to comment.