✨ List regions
This commit is contained in:
parent
2125239d42
commit
2cfc9cd7fa
@ -82,6 +82,30 @@ export class InfoCommand extends Command {
|
||||
}
|
||||
}
|
||||
|
||||
async fetchRegions(server: RsConfigServerData) {
|
||||
const res = await fetch(`${server.url}/cgi/regions`, {
|
||||
headers: {
|
||||
Authorization: createAuthHeader(server.credential)
|
||||
}
|
||||
})
|
||||
if (res.status !== 200) {
|
||||
throw new Error(await res.text())
|
||||
}
|
||||
|
||||
const data = await res.json()
|
||||
this.context.stdout.write("\n\n")
|
||||
for (const region of data) {
|
||||
this.context.stdout.write(` • ${chalk.bgGrey('region#')}${chalk.bold(region.id)} ${chalk.gray(`(${region.locations.length} locations)`)}\n`)
|
||||
for (const location of region.locations) {
|
||||
this.context.stdout.write(` • ${chalk.bgGrey('location#')} ${chalk.bold(location.id)} ${chalk.gray(`(${location.destinations.length} destinations)`)}\n`)
|
||||
for (const destination of location.destinations) {
|
||||
this.context.stdout.write(` • ${chalk.bgGrey('destination#')}${chalk.bold(destination.id)}\n`)
|
||||
}
|
||||
}
|
||||
this.context.stdout.write("\n")
|
||||
}
|
||||
}
|
||||
|
||||
async execute() {
|
||||
const config = await RsConfig.getInstance()
|
||||
|
||||
@ -130,6 +154,16 @@ export class InfoCommand extends Command {
|
||||
}
|
||||
}
|
||||
break
|
||||
case "regions":
|
||||
try {
|
||||
await this.fetchRegions(server)
|
||||
const prefTook = performance.now() - prefStart
|
||||
spinner.succeed(`Fetching completed in ${(prefTook / 1000).toFixed(2)}s 🎉`)
|
||||
} catch (e) {
|
||||
spinner.fail(`Server with label ${chalk.bold(this.label)} is not running! 😢`)
|
||||
return
|
||||
}
|
||||
break
|
||||
default:
|
||||
spinner.fail(chalk.red(`Info area was not exists ${chalk.bold(this.area)}...`))
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user