Plato on Github
Report Home
lib/cli/view.js
Maintainability
83.34
Lines of code
79
Difficulty
18.65
Estimated Errors
0.37
Function weight
By Complexity
By SLOC
"use strict"; import _ from "lodash"; import cli from "bagofcli"; import fs from "fs"; /** * Get a handler that calls Jenkins API to create a view with specific configuration. * Success view creation message will be logged when there's no error. * * @param {Function} cb: callback for argument handling * @return Jenkins API handler function */ function create(cb) { return function (command) { const name = command.args[0]; const configFile = command.args[1]; function resultCb(result) { console.log(`View ${name} was created successfully`); } function jenkinsCb(jenkins) { const config = fs.readFileSync(configFile).toString(); jenkins.createView(name, config, cli.exitCb(null, resultCb)); } cb(command, jenkinsCb); }; } /** * Get a handler that calls Jenkins API to update a view with specific configuration. * Success view update message will be logged when there's no error. * * @param {Function} cb: callback for argument handling * @return Jenkins API handler function */ function update(cb) { return function (command) { const name = command.args[0]; const configFile = command.args[1]; function resultCb(result) { console.log(`View ${name} was updated successfully`); } function jenkinsCb(jenkins) { const config = fs.readFileSync(configFile).toString(); jenkins.updateView(name, config, cli.exitCb(null, resultCb)); } cb(command, jenkinsCb); }; } /** * Get a handler that calls Jenkins API to fetch a view configuration. * Jenkins view config.xml will be logged when there's no error. * * @param {Function} cb: callback for argument handling * @return Jenkins API handler function */ function fetchConfig(cb) { return function (command) { const name = command.args[0]; function resultCb(result) { console.log(result); } function jenkinsCb(jenkins) { jenkins.fetchViewConfig(name, cli.exitCb(null, resultCb)); } cb(command, jenkinsCb); }; } const exports = { create: create, update: update, fetchConfig: fetchConfig, }; export { exports as default };