Add MachineHelper

This commit is contained in:
Daniel Treviño
2018-11-01 21:30:57 +01:00
parent 0b8c020245
commit 212cfc1af5
5 changed files with 90 additions and 89 deletions
+64
View File
@@ -0,0 +1,64 @@
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")
}
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(machines) {
this.machines = machines
}
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 = MachineHelper.machines.filter(
machine => machine.name === machineName
)[0]
const newMachines = MachineHelper.machines.filter(
machine => machine.name !== machineName
)
MachineHelper.setMachines(newMachines)
printMessage(
`You are now logged out from ${removedMachine.name} at ${
removedMachine.baseUrl
}...\n`
)
}
}
module.exports = new MachineHelper()
+2 -8
View File
@@ -1,9 +1,5 @@
const chalk = require("chalk")
const configstore = require("configstore")
const packagejson = require("../package.json")
const configs = new configstore(packagejson.name, {
captainMachines: []
})
const MachineHelper = require("../helpers/MachineHelper")
function _displayMachine(machine) {
console.log(
@@ -17,9 +13,7 @@ function _displayMachine(machine) {
function list() {
console.log("\nLogged in Captain Machines:\n")
const machines = configs.get("captainMachines")
machines.map(machine => {
MachineHelper.machines.map(machine => {
_displayMachine(machine)
})
+8 -21
View File
@@ -1,24 +1,11 @@
const MachineHelper = require("../helpers/MachineHelper")
const { printGreenMessage, printError } = require("../utils/messageHandler")
const inquirer = require("inquirer")
const configstore = require("configstore")
const packagejson = require("../package.json")
const configs = new configstore(packagejson.name, {
captainMachines: []
})
const machines = configs.get("captainMachines")
const { cleanUpUrl, findDefaultCaptainName } = require("../utils/loginHelpers")
const { printMessage } = require("../utils/messageHandler")
const { SAMPLE_DOMAIN } = require("../utils/constants")
const LoginApi = require("../api/LoginApi")
function setCaptainMachine(newMachine) {
const machines = configs.get("captainMachines")
machines.push(newMachine)
configs.set("captainMachines", machines)
}
function login() {
printMessage("Login to a Captain Machine")
@@ -36,7 +23,7 @@ function login() {
if (!cleanUpUrl(value)) return "This is an invalid URL: " + value
machines.map(machine => {
MachineHelper.machines.map(machine => {
if (cleanUpUrl(machine.baseUrl) === cleanUpUrl(value)) {
return `${value} already exist as ${
machine.name
@@ -75,7 +62,7 @@ function login() {
message: "Enter a name for this Captain machine:",
default: findDefaultCaptainName(),
validate: value => {
machines.map(machine => {
MachineHelper.machines.map(machine => {
if (machine.name === value) {
return `${value} already exist. If you want to replace the existing entry, you have to first use <logout> command, and then re-login.`
}
@@ -112,17 +99,17 @@ function login() {
throw new Error(JSON.stringify(response, null, 2))
}
printGreenMessage(`Logged in successfully to ${baseUrl}`)
printGreenMessage(`Authorization token is now saved as ${captainName} \n`)
const newMachine = {
authToken: response.token,
baseUrl,
name: captainName
}
setCaptainMachine(newMachine)
MachineHelper.addMachine(newMachine)
printGreenMessage(`Logged in successfully to ${baseUrl}`)
printGreenMessage(`Authorization token is now saved as ${captainName} \n`)
} catch (error) {
const errorMessage = error.message ? error.message : error
+3 -42
View File
@@ -1,33 +1,9 @@
const MachineHelper = require("../helpers/MachineHelper")
const { printMessage } = require("../utils/messageHandler")
const inquirer = require("inquirer")
const configstore = require("configstore")
const packagejson = require("../package.json")
const configs = new configstore(packagejson.name, {
captainMachines: []
})
const machines = configs.get("captainMachines")
function getMachineList() {
const firstItemInOption = [
{
name: "-- CANCEL --",
value: "",
short: ""
}
]
const listOfMachines = machines.map(machine => {
return {
name: `${machine.name} at ${machine.baseUrl}`,
value: `${machine.name}`,
short: `${machine.name} at ${machine.baseUrl}`
}
})
return [...firstItemInOption, ...listOfMachines]
}
function generateQuestions() {
const listOfMachines = getMachineList()
const listOfMachines = MachineHelper.getMachinesAsOptions()
return [
{
@@ -46,21 +22,6 @@ function generateQuestions() {
]
}
function removeMachineFromLocalStorage(machineName) {
const removedMachine = machines.filter(
machine => machine.name === machineName
)[0]
const newMachines = machines.filter(machine => machine.name !== machineName)
configs.set("captainMachines", newMachines)
printMessage(
`You are now logged out from ${removedMachine.name} at ${
removedMachine.baseUrl
}...\n`
)
}
function logout() {
const questions = generateQuestions()
@@ -75,7 +36,7 @@ function logout() {
return
}
removeMachineFromLocalStorage(captainNameToLogout)
MachineHelper.logoutMachine(captainNameToLogout)
})
}
+13 -18
View File
@@ -1,9 +1,4 @@
const configstore = require("configstore")
const packagejson = require("../package.json")
const configs = new configstore(packagejson.name, {
captainMachines: []
})
const machines = configs.get("captainMachines")
const MachineHelper = require("../helpers/MachineHelper")
function cleanUpUrl(url) {
if (!url || !url.length) return null
@@ -22,19 +17,8 @@ function cleanUpUrl(url) {
.trim()
}
function _getCaptainFullName(suffix) {
const formatSuffix = suffix < 10 ? `0${suffix}` : suffix
return `captain-${formatSuffix}`
}
const _isSuffixValid = suffixNumber =>
machines.map(machine => {
machine.name !== _getCaptainFullName(suffixNumber)
})
function findDefaultCaptainName() {
let currentSuffix = machines.length + 1
let currentSuffix = MachineHelper.machines.length + 1
while (!_isSuffixValid(currentSuffix)) {
currentSuffix++
@@ -43,6 +27,17 @@ function findDefaultCaptainName() {
return _getCaptainFullName(currentSuffix)
}
function _getCaptainFullName(suffix) {
const formatSuffix = suffix < 10 ? `0${suffix}` : suffix
return `captain-${formatSuffix}`
}
const _isSuffixValid = suffixNumber =>
MachineHelper.machines.map(machine => {
machine.name !== _getCaptainFullName(suffixNumber)
})
module.exports = {
cleanUpUrl,
findDefaultCaptainName