
All checks were successful
Publish Docker Image / Publish Docker Image (push) Successful in 10s
56 lines
1.2 KiB
TypeScript
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)
|
|
}
|
|
}
|