Files
portfolio/scripts/seed.ts
Ahmed Al-Taiar 7973663b2a
All checks were successful
Publish Docker Image / Publish Docker Image (push) Successful in 10s
Allow separate from and to emails
2024-10-16 21:45:55 -04:00

56 lines
1.2 KiB
TypeScript

// eslint-disable-next-line @typescript-eslint/no-unused-vars
import { db } from 'api/src/lib/db'
import { hashPassword } from '@redwoodjs/auth-dbauth-api'
const MAX_TITLES = 5
export default async () => {
try {
const admin = {
username: 'admin',
email: process.env.EMAIL_TO,
password: process.env.SMTP_PASSWORD,
}
const [hashedPassword, salt] = hashPassword(admin.password)
const existingAdmin = await db.user.findFirst({
where: {
username: admin.username,
},
})
if (!existingAdmin)
await db.user.create({
data: {
username: admin.username,
email: admin.email,
hashedPassword,
salt,
},
})
else
await db.user.update({
where: { id: existingAdmin.id },
data: {
username: admin.username,
email: admin.email,
},
})
const titles = await db.titles.findFirst()
if (!titles)
await db.titles.create({
data: {
titles: Array.from({ length: MAX_TITLES }).map(
(_, i) => `a title ${i + 1}`
),
},
})
} catch (error) {
console.error(error)
}
}