eletrotupi / tcc/ api/scripts/seed-dev.mjs49e58e036a013f6830a02e9756dd173a285b7e5c
874 B | 32 lines Raw
1
import pg from 'pg'
2
import bcrypt from 'bcryptjs'
3

4
const { Client } = pg
5

6
const dbUrl = process.env.DATABASE_URL
7
const email = process.env.SEED_EMAIL ?? 'e2e@example.com'
8
const password = process.env.SEED_PASSWORD ?? 'e2e-password'
9

10
if (!dbUrl) {
11
  console.error('DATABASE_URL is not set')
12
  process.exit(1)
13
}
14

15
const db = new Client({ connectionString: dbUrl })
16
await db.connect()
17

18
const hash = bcrypt.hashSync(password, 10)
19
const { rows } = await db.query(
20
  `INSERT INTO users (first_name, last_name, email, encrypted_password, active, updated_at)
21
   VALUES ($1, $2, $3, $4, true, NOW())
22
   ON CONFLICT (email) DO UPDATE
23
     SET encrypted_password = EXCLUDED.encrypted_password,
24
         active = true,
25
         updated_at = NOW()
26
   RETURNING id, email`,
27
  ['E2E', 'User', email, hash],
28
)
29

30
await db.end()
31

32
console.log(`Seeded user: ${rows[0].email} (id ${rows[0].id})`)