Files
speckle-server/packages/server/scripts/seedUsers.js
T

81 lines
2.8 KiB
JavaScript

require('../bootstrap')
const { db } = require('@/db/knex')
const { logger } = require('@/observability/logging')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const {
findEmailFactory,
createUserEmailFactory,
ensureNoPrimaryEmailForUserFactory
} = require('@/modules/core/repositories/userEmails')
const {
getUserFactory,
storeUserFactory,
countAdminUsersFactory,
storeUserAclFactory
} = require('@/modules/core/repositories/users')
const {
validateAndCreateUserEmailFactory
} = require('@/modules/core/services/userEmails')
const { createUserFactory } = require('@/modules/core/services/users/management')
const {
deleteOldAndInsertNewVerificationFactory
} = require('@/modules/emails/repositories')
const { renderEmail } = require('@/modules/emails/services/emailRendering')
const { sendEmail } = require('@/modules/emails/services/sending')
const {
requestNewEmailVerificationFactory
} = require('@/modules/emails/services/verification/request')
const {
deleteServerOnlyInvitesFactory,
updateAllInviteTargetsFactory
} = require('@/modules/serverinvites/repositories/serverInvites')
const {
finalizeInvitedServerRegistrationFactory
} = require('@/modules/serverinvites/services/processing')
const { getEventBus } = require('@/modules/shared/services/eventBus')
const axios = require('axios').default
const getServerInfo = getServerInfoFactory({ db })
const findEmail = findEmailFactory({ db })
const requestNewEmailVerification = requestNewEmailVerificationFactory({
findEmail,
getUser: getUserFactory({ db }),
getServerInfo,
deleteOldAndInsertNewVerification: deleteOldAndInsertNewVerificationFactory({ db }),
renderEmail,
sendEmail
})
const createUser = createUserFactory({
getServerInfo,
findEmail,
storeUser: storeUserFactory({ db }),
countAdminUsers: countAdminUsersFactory({ db }),
storeUserAcl: storeUserAclFactory({ db }),
validateAndCreateUserEmail: validateAndCreateUserEmailFactory({
createUserEmail: createUserEmailFactory({ db }),
ensureNoPrimaryEmailForUser: ensureNoPrimaryEmailForUserFactory({ db }),
findEmail,
updateEmailInvites: finalizeInvitedServerRegistrationFactory({
deleteServerOnlyInvites: deleteServerOnlyInvitesFactory({ db }),
updateAllInviteTargets: updateAllInviteTargetsFactory({ db })
}),
requestNewEmailVerification
}),
emitEvent: getEventBus().emit
})
const main = async () => {
const userInputs = (
await axios.get('https://randomuser.me/api/?results=250')
).data.results.map((user) => {
return {
name: `${user.name.first} ${user.name.last}`,
email: user.email,
password: `${user.login.password}${user.login.password}`
}
})
await Promise.all(userInputs.map((userInput) => createUser(userInput)))
}
main().then(logger.info('created')).catch(logger.error('failed'))