Files
caprover/app-cli/built/helpers/MachineHelper.js
T
2019-01-02 23:44:08 -08:00

75 lines
2.6 KiB
JavaScript
Executable File

const { printMessage } = require("../utils/messageHandler");
const configstore = require("configstore");
const packagejson = require("../../package.json");
const configs = new configstore(packagejson.name, {
captainMachines: []
});
class MachineHelper {
constructor() {
this.machines = configs.get("captainMachines");
this.apps = configs.get("apps");
}
getMachinesAsOptions() {
const firstItemInOption = [
{
name: "-- CANCEL --",
value: "",
short: ""
}
];
const listOfMachines = this.machines.map(machine => {
return {
name: `${machine.name} at ${machine.baseUrl}`,
value: `${machine.name}`,
short: `${machine.name} at ${machine.baseUrl}`
};
});
return [...firstItemInOption, ...listOfMachines];
}
setMachines(newMachines) {
this.machines = newMachines;
configs.set("captainMachines", newMachines);
}
updateMachineAuthToken(machineName, authToken) {
let updatedMachine = {};
const newMachines = this.machines.map(machine => {
if (machine.name === machineName) {
updatedMachine = Object.assign({}, machine, { authToken });
return updatedMachine;
}
return machine;
});
this.setMachines(newMachines);
this.updateAppsAuthToken(updatedMachine);
}
updateAppsAuthToken(updatedMachine) {
if (!updatedMachine)
return;
const newApps = this.apps.map(app => {
if (app.machineToDeploy.name === updatedMachine.name) {
return Object.assign({}, app, { machineToDeploy: updatedMachine });
}
return app;
});
this.setApps(newApps);
}
setApps(newApps) {
this.apps = newApps;
configs.set("apps", newApps);
}
addMachine(newMachine) {
const tempMachines = this.machines;
const newMachines = [...tempMachines, newMachine];
// Add to local storage
configs.set("captainMachines", newMachines);
this.setMachines(configs.get("captainMachines"));
}
logoutMachine(machineName) {
const removedMachine = this.machines.filter(machine => machine.name === machineName)[0];
const newMachines = this.machines.filter(machine => machine.name !== machineName);
this.setMachines(newMachines);
printMessage(`You are now logged out from ${removedMachine.name} at ${removedMachine.baseUrl}...\n`);
}
}
module.exports = new MachineHelper();
//# sourceMappingURL=MachineHelper.js.map