All files / src/commands/ng ng.delete.external.command.js

68% Statements 17/25
100% Branches 1/1
0% Functions 0/1
68% Lines 17/25

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x                 193x 193x  
import { defineCommand } from '../../lib/define-command.js';
import { styleText } from '../../lib/style-text.js';
import { Logger } from '../../logger.js';
import * as networkGroupResources from '../../models/ng-resources.js';
import { orgaIdOrNameOption } from '../global.options.js';
import { ngExternalIdOrLabelArg, ngIdOrLabelArg } from './ng.args.js';
 
export const ngDeleteExternalCommand = defineCommand({
  description: 'Delete an external peer from a Network Group',
  since: '3.12.0',
  options: {
    org: orgaIdOrNameOption,
  },
  args: [ngExternalIdOrLabelArg, ngIdOrLabelArg],
  async handler(options, peerIdOrLabel, ngIdOrLabel) {
    const { org } = options;

    const peerText = peerIdOrLabel.ngResourceLabel ?? peerIdOrLabel.memberId;
    const ngText = ngIdOrLabel.ngResourceLabel ?? ngIdOrLabel.ngId;
    await networkGroupResources.deleteExternalPeerWithParent(ngIdOrLabel, peerText, org);
    Logger.printSuccess(
      `External peer ${styleText('green', peerText)} successfully deleted from Network Group ${styleText('green', ngText)}`,
    );
  },
});