mite-cli
Version:
command line tool for time tracking service mite.de
47 lines (38 loc) • 1.26 kB
JavaScript
;
const program = require('commander');
const miteApi = require('mite-api');
const pkg = require('./../package.json');
const config = require('./config');
const { handleError, MissingRequiredArgumentError } = require('./lib/errors');
program
.version(pkg.version)
.arguments('[timeEntryId]')
.description('delete a time entry', {
timeEntryId: 'The id of the time entry which should be deleted'
})
.addHelpText('after', `
Examples:
Delete a single entry identified by it’s id:
mite delete 1283761
Delete multiple entries from a project selected by using mite list:
mite list this_month --project-id 123128 --columns id --plain | xargs -n1 mite delete
`);
function main(timeEntryId) {
if (!timeEntryId) {
throw new MissingRequiredArgumentError('Missing required argument <timeEntryId>');
}
const mite = miteApi(config.get());
mite.deleteTimeEntry(timeEntryId, (err) => {
if (err) {
const message = (err && err.message) ? err.message : err;
handleError(new Error(`Error while deleted time entry (id: ${timeEntryId}) ${message}`));
}
process.stdout.write(`${timeEntryId}\n`);
});
}
try {
program.action(main).parse();
} catch (err) {
handleError(err);
}