From 5235226f1269043dadbfc140ad33b9ea4b646680 Mon Sep 17 00:00:00 2001 From: Petr Broz Date: Mon, 3 Jun 2019 18:38:55 +0200 Subject: [PATCH] Query details of DA engines, bundles, activities. --- src/forge-da.js | 83 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/src/forge-da.js b/src/forge-da.js index 587ff63..767bceb 100755 --- a/src/forge-da.js +++ b/src/forge-da.js @@ -18,6 +18,24 @@ if (!FORGE_CLIENT_ID || !FORGE_CLIENT_SECRET) { const designAutomation = new DesignAutomationClient({ client_id: FORGE_CLIENT_ID, client_secret: FORGE_CLIENT_SECRET }); +function isQualifiedID(qualifiedId) { + return qualifiedId.indexOf('.') !== -1 && qualifiedId.indexOf('+') !== -1; +} + +function composeQualifiedID(owner, id, alias) { + return `${owner}.${id}+${alias}`; +} + +function decomposeQualifiedID(qualifiedId) { + const dot = qualifiedId.indexOf('.'); + const plus = qualifiedId.indexOf('+'); + return { + owner: qualifiedId.substr(0, dot), + id: qualifiedId.substr(dot + 1, plus - dot - 1), + alias: qualifiedId.substr(plus + 1) + }; +} + async function promptEngine() { const engines = await designAutomation.listEngines(); const answer = await prompt({ type: 'list', name: 'engine', choices: engines }); @@ -117,6 +135,23 @@ program } }); +program + .command('get-engine [engine]') + .alias('ge') + .description('Get engine details.') + .action(async function(engineid, command) { + try { + if (!engineid) { + engineid = await promptEngine(); + } + + const engine = await designAutomation.getEngine(engineid); + log(engine); + } catch(err) { + error(err); + } + }); + program .command('list-appbundles') .alias('lb') @@ -136,6 +171,30 @@ program } }); +program + .command('get-appbundle [bundle] [bundlealias]') + .alias('gb') + .description('Get appbundle details.') + .action(async function(bundle, bundlealias, command) { + try { + if (!bundle) { + bundle = await promptAppBundle(); + if (isQualifiedID(bundle)) { + bundle = decomposeQualifiedID(bundle).id; + } + } + if (!bundlealias) { + bundlealias = await promptAppBundleAlias(bundle); + } + + const bundleId = designAutomation.auth.client_id + '.' + bundle + '+' + bundlealias; + const appbundle = await designAutomation.getAppBundle(bundleId); + log(appbundle); + } catch(err) { + error(err); + } + }); + program .command('create-appbundle [engine] [description]') .alias('cb') @@ -296,6 +355,30 @@ program } }); +program + .command('get-activity [activity] [activityalias]') + .alias('ga') + .description('Get activity details.') + .action(async function(activity, activityalias, command) { + try { + if (!activity) { + activity = await promptActivity(false); + if (isQualifiedID(activity)) { + activity = decomposeQualifiedID(activity).id; + } + } + if (!activityalias) { + activityalias = await promptActivityAlias(activity); + } + + const activityId = designAutomation.auth.client_id + '.' + activity + '+' + activityalias; + const workitem = await designAutomation.getActivity(activityId); + log(workitem); + } catch(err) { + error(err); + } + }); + let _activityInputs = []; let _activityOutputs = [];