import minimist from 'minimist' import { db } from '../../../app/src/infrastructure/mongodb.js' import UserRegistrationHandler from '../../../app/src/Features/User/UserRegistrationHandler.js' import { fileURLToPath } from 'url' const filename = fileURLToPath(import.meta.url) export default async function main() { const argv = minimist(process.argv.slice(2), { string: ['email'], boolean: ['admin'], }) const { admin, email } = argv if (!email) { console.error(`Usage: node ${filename} [--admin] --email=joe@example.com`) process.exit(1) } await new Promise((resolve, reject) => { UserRegistrationHandler.registerNewUserAndSendActivationEmail( email, (error, user, setNewPasswordUrl) => { if (error) { return reject(error) } db.users.updateOne( { _id: user._id }, { $set: { isAdmin: admin } }, error => { if (error) { return reject(error) } console.log('') console.log(`\ Successfully created ${email} as ${admin ? 'an admin' : 'a'} user. Please visit the following URL to set a password for ${email} and log in: ${setNewPasswordUrl} `) resolve() } ) } ) }) }