@tosin2013/kanbn
Version:
A CLI Kanban board with AI-powered task management features
64 lines (55 loc) • 1.61 kB
JavaScript
const Kanbn = require('../main');
const utility = require('../utility');
/**
* Restore a task from the archive
* @param {string} taskId
* @param {string|null} columnName
* @param {object} kanbnInstance The Kanbn instance to use
*/
function restoreTask(taskId, columnName, kanbnInstance) {
kanbnInstance
.restoreTask(taskId, columnName)
.then(taskId => {
console.log(`Restored task "${taskId}" from the archive`);
})
.catch(error => {
utility.error(error);
});
}
module.exports = async args => {
const kanbn = Kanbn();
// Make sure kanbn has been initialised
if (!await kanbn.initialised()) {
utility.error('Kanbn has not been initialised in this folder\nTry running: {b}kanbn init{b}');
return;
}
// Get the task that we're archiving
const taskId = args._[1];
if (!taskId) {
utility.error('No task id specified\nTry running {b}kanbn restore "task id"{b}');
return;
}
// Get the index and make sure it has some columns
let index;
try {
index = await kanbn.getIndex();
} catch (error) {
utility.error(error);
return;
}
const columnNames = Object.keys(index.columns);
if (!columnNames.length) {
utility.error('No columns defined in the index\nTry running {b}kanbn init -c "column name"{b}');
return;
}
// Get column name if specified
let columnName = null;
if (args.column) {
columnName = utility.strArg(args.column);
if (columnNames.indexOf(columnName) === -1) {
utility.error(`Column "${columnName}" doesn't exist`);
return;
}
}
restoreTask(taskId, columnName, kanbn);
};