-
-
Notifications
You must be signed in to change notification settings - Fork 4
/
01-user.ts
106 lines (96 loc) · 2.48 KB
/
01-user.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
import slugify from 'slugify'
import { prisma } from '~/index'
import { namespaces } from '~/seed/data'
import { ListrTask } from '~/seed/starterData'
import { seedUser, userEmail, userRoleList } from '../data'
import { logFile } from '../logger'
export const seedSystemUser = async (task: ListrTask) => {
try {
// create user if it does not exist.
await prisma.user.upsert({
where: {
email: userEmail,
},
update: seedUser,
create: seedUser,
select: {
id: true,
},
})
const logMessage = `System user created`
logFile.info(logMessage)
task.output = logMessage
task.title = `System user (1 record)`
} catch (err) {
logFile.error(err)
throw err
}
}
export const seedUserTypes = async (task: ListrTask) => {
let logMessage = ``
let countA = 1
const bulkTransactions = userRoleList.map((role) => {
logMessage = `(${countA}/${userRoleList.length}) Upserting User Type: ${role.name}`
logFile.info(logMessage)
task.output = logMessage
countA++
return prisma.userType.upsert({
where: {
type: role.type,
},
create: {
type: role.type,
key: {
create: {
key: role.type,
text: role.name,
namespace: {
connect: {
name: namespaces.user,
},
},
},
},
},
update: {},
})
})
await prisma.$transaction(bulkTransactions)
// userTypes.map((transaction) => {
// logMessage = `(${countA}/${userTypes.length}) Upserting User Type: ${transaction.create.key?.create?.text}`
// logFile.info(logMessage)
// task.output = logMessage
// countA++
// return prisma.userType.upsert(transaction)
// })
task.title = `User Types (${userRoleList.length} records)`
}
export const seedUserRoles = async (task: ListrTask) => {
let logMessage = ``
let countA = 1
const bulkTransactions = userRoleList.map((role) => {
logMessage = `(${countA}/${userRoleList.length}) Upserting User Role: ${role.name}`
logFile.info(logMessage)
task.output = logMessage
countA++
return prisma.userRole.upsert({
where: {
name: role.name,
},
create: {
name: role.name,
tag: slugify(role.name),
},
update: {},
})
})
// userRoles.map((transaction) => {
// logMessage = `(${countA}/${userRoles.length}) Upserting User Role: ${transaction.create.name}`
// logFile.info(logMessage)
// task.output = logMessage
// countA++
// return prisma.userRole.upsert(transaction)
// })
await prisma.$transaction(bulkTransactions)
task.title = `User Roles (${userRoleList.length} records)`
}