zapier-platform-cli
Version:
The CLI for apps in the Zapier Developer Platform.
42 lines (37 loc) • 2.12 kB
JavaScript
;
var utils = require('../utils');
var deleteApp = function deleteApp(context, app) {
context.line('Preparing to delete all versions of your app "' + app.title + '".\n');
utils.printStarting('Deleting app');
return utils.callAPI('/apps/' + app.id, {
method: 'DELETE'
});
};
var deleteVersion = function deleteVersion(context, app, version) {
context.line('Preparing to delete version ' + version + ' of your app "' + app.title + '".\n');
utils.printStarting('Deleting version ' + version);
return utils.callAPI('/apps/' + app.id + '/versions/' + version, {
method: 'DELETE'
});
};
var _delete = function _delete(context, appOrVersion, version) {
var isDeletingVersion = appOrVersion === 'version';
if (isDeletingVersion && !version) {
var message = 'Error: No version - provide a version like "1.0.0"...';
return Promise.reject(new Error(message));
}
return utils.checkCredentials().then(function () {
return utils.getLinkedApp();
}).then(function (app) {
return isDeletingVersion ? deleteVersion(context, app, version) : deleteApp(context, app);
}).then(function () {
utils.printDone();
context.line(' Deletion successful!\n');
});
};
_delete.argsSpec = [{ name: 'appOrVersion', example: 'version', choices: ['app', 'version'], required: true, help: 'delete the whole app, or just a version?' }, { name: 'version', example: '1.0.0', required: false, help: 'the version to delete' }];
_delete.argOptsSpec = {};
_delete.help = 'Delete a version of your app (or the whole app) as long as it has no users/Zaps.';
_delete.example = 'zapier delete version 1.0.0';
_delete.docs = '\nA utility to allow deleting app versions that aren\'t used.\n\n> The app version needs to have no users/Zaps in order to be deleted.\n\n**Arguments**\n\n' + utils.argsFragment(_delete.argsSpec) + '\n' + utils.argOptsFragment(_delete.argOptsSpec) + '\n\n' + '```' + 'bash\n$ zapier delete version 1.0.0\n# Preparing to delete version 1.0.0 of your app "Example".\n#\n# Deleting 1.0.0 - done!\n# Deletion successful!\n' + '```' + '\n';
module.exports = _delete;