hana-cli
Version:
HANA Developer Command Line Interface
66 lines (57 loc) • 2.11 kB
JavaScript
// @ts-check
import * as baseLite from '../utils/base-lite.js'
import * as btp from '../utils/btp.js'
import { buildDocEpilogue } from '../utils/doc-linker.js'
const colors = baseLite.colors
export const command = 'sub'
export const aliases = ['subs', 'Sub', 'Subs', 'btpsub', 'btpsubs', 'btpSub', 'btpSubs', 'btpsubscriptions', 'btpSubscriptions']
export const describe = baseLite.bundle.getText("btpSub")
export const builder = (yargs) => yargs.options(baseLite.getBuilder({}, false)).wrap(160).example('hana-cli sub', baseLite.bundle.getText("subExample")).wrap(160).epilog(buildDocEpilogue('btpSubs', 'btp-integration', ['btp', 'btpInfo', 'hanaCloudInstances']))
const SUBSCRIBED_STATE = 'SUBSCRIBED'
function getSubscribedApps(subs) {
if (!subs || !subs.applications) {
return []
}
return subs.applications
.filter(item => item.state === SUBSCRIBED_STATE)
.map(item => ({
DisplayName: item.displayName,
SubscriptionUrl: item.subscriptionUrl
}))
}
export async function handler(argv) {
const base = await import('../utils/base.js')
base.promptHandler(argv, getSubs, {})
}
export async function getSubs(prompts) {
const base = await import('../utils/base.js')
base.debug('getSubs')
base.startSpinnerInt()
base.debug(prompts)
try {
base.setPrompts(prompts)
let subs = await btp.getBTPSubscriptions()
base.stopSpinnerInt()
const subscribedApps = getSubscribedApps(subs)
for (let item of subscribedApps) {
console.log(item.DisplayName)
if (item.SubscriptionUrl) {
console.log(colors.blue(item.SubscriptionUrl))
}
}
return base.end()
} catch (error) {
base.error(error)
}
}
export async function getSubsUI(prompts) {
const base = await import('../utils/base.js')
base.debug('getSubsUI')
try {
base.setPrompts(prompts)
const subs = await btp.getBTPSubscriptions()
return getSubscribedApps(subs)
} catch (error) {
base.error(error)
}
}