UNPKG

@grouparoo/core

Version:
78 lines (77 loc) 3.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConfigUserCreate = exports.ConfigApply = exports.ConfigValidate = void 0; const authenticatedAction_1 = require("../classes/actions/authenticatedAction"); const optionallyAuthenticatedAction_1 = require("../classes/actions/optionallyAuthenticatedAction"); const spawnPromise_1 = require("../modules/spawnPromise"); const configUser_1 = require("../modules/configUser"); const configWriter_1 = require("../modules/configWriter"); const apiData_1 = require("../modules/apiData"); const runMode_1 = require("../modules/runMode"); class ConfigValidate extends authenticatedAction_1.AuthenticatedAction { constructor() { super(...arguments); this.name = "config:validate"; this.description = "I validate the local config"; this.permission = { topic: "app", mode: "write" }; this.inputs = { local: { required: true, default: false, formatter: apiData_1.APIData.ensureBoolean, }, }; } async runWithinTransaction({ params, }) { return (0, spawnPromise_1.spawnPromise)("./node_modules/.bin/grouparoo", [ "validate", params.local === true ? `--validate` : null, ]); } } exports.ConfigValidate = ConfigValidate; class ConfigApply extends authenticatedAction_1.AuthenticatedAction { constructor() { super(...arguments); this.name = "config:apply"; this.description = "I apply the local config"; this.permission = { topic: "system", mode: "write" }; this.inputs = { local: { required: true, default: false, formatter: apiData_1.APIData.ensureBoolean, }, }; } async runWithinTransaction({ params }) { return (0, spawnPromise_1.spawnPromise)("./node_modules/.bin/grouparoo", [ "apply", params.local === true ? `--validate` : null, ]); } } exports.ConfigApply = ConfigApply; class ConfigUserCreate extends optionallyAuthenticatedAction_1.OptionallyAuthenticatedAction { constructor() { super(...arguments); this.name = "config:user:create"; this.description = "I write user details to a .local file."; this.permission = { topic: "system", mode: "write" }; this.inputs = { email: { required: true }, company: { required: true }, subscribed: { required: false, formatter: apiData_1.APIData.ensureBoolean }, }; } async runWithinTransaction({ params, }) { if ((0, runMode_1.getGrouparooRunMode)() !== "cli:config") { throw new Error("Action only available in config mode."); } await configUser_1.ConfigUser.create(params); const user = await configUser_1.ConfigUser.get(); await configWriter_1.ConfigWriter.run(); return { user }; } } exports.ConfigUserCreate = ConfigUserCreate;