require('../bootstrap') const { db } = require('@/db/knex') const { logger } = require('@/logging/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'))