application.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import WorkingGroupsCommandBase from '../../base/WorkingGroupsCommandBase';
  2. import { displayCollapsedRow, displayHeader } from '../../helpers/display';
  3. import _ from 'lodash';
  4. import chalk from 'chalk';
  5. export default class WorkingGroupsApplication extends WorkingGroupsCommandBase {
  6. static description = 'Shows an overview of given application by Working Group Application ID';
  7. static args = [
  8. {
  9. name: 'wgApplicationId',
  10. required: true,
  11. description: 'Working Group Application ID'
  12. },
  13. ]
  14. static flags = {
  15. ...WorkingGroupsCommandBase.flags,
  16. };
  17. async run() {
  18. const { args } = this.parse(WorkingGroupsApplication);
  19. const application = await this.getApi().groupApplication(this.group, parseInt(args.wgApplicationId));
  20. displayHeader('Human readable text');
  21. this.jsonPrettyPrint(application.humanReadableText);
  22. displayHeader(`Details`);
  23. const applicationRow = {
  24. 'WG application ID': application.wgApplicationId,
  25. 'Application ID': application.applicationId,
  26. 'Member handle': application.member?.handle.toString() || chalk.red('NONE'),
  27. 'Role account': application.roleAccout.toString(),
  28. 'Stage': application.stage,
  29. 'Application stake': application.stakes.application,
  30. 'Role stake': application.stakes.role,
  31. 'Total stake': Object.values(application.stakes).reduce((a, b) => a + b)
  32. };
  33. displayCollapsedRow(applicationRow);
  34. }
  35. }