@grouparoo/core
Version:
The Grouparoo Core
78 lines (77 loc) • 3.06 kB
JavaScript
;
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;