controllers/setupaid.js

/**
 * @module controllers/setupaid
 * @author jesse reichler <mouser@donationcoder.com>
 * @copyright 5/15/20
 * @description
 * This module defines the SetupAid class, which provides support for server setup stuff
 */

"use strict";


// requirement service locator
const jrequire = require("../helpers/jrequire");

// our helper modules
const jrhMisc = require("../helpers/jrh_misc");
const JrContext = require("../helpers/jrcontext");
const JrResult = require("../helpers/jrresult");
const jrdebug = require("../helpers/jrdebug");
const jrhCrypto = require("../helpers/jrh_crypto");

// models
const UserModel = jrequire("models/user");

// controllers
const arserver = jrequire("arserver");

// constants
const appdef = jrequire("appdef");





/**
 * Provides support for backend setup activities
 *
 * @class SetupAid
 */
class SetupAid {

	//---------------------------------------------------------------------------
	// constructor
	constructor() {
	}
	//---------------------------------------------------------------------------


	//---------------------------------------------------------------------------
	async createDefaultUsers() {
		jrdebug.cdebug("misc", "Inside setup aid createDefaultUsers()");

		// dummy jrContext since we don't know any other way to get req/res
		const jrContext = JrContext.makeNew();

		let bretv = true;
		const userArray = arserver.getConfigValDefault(appdef.DefConfigKeySetupUserArray, null);
		if (userArray) {
			for (const userObj of userArray) {
				bretv = bretv && await UserModel.setupCreateUser(jrContext, userObj);
			}
		}
		return bretv;
	}
	//---------------------------------------------------------------------------


}



// export the class as the sole export
module.exports = new SetupAid();