polyv-live-cli
Version:
CLI tool for managing PolyV live streaming services.
64 lines • 4.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.registerInviteSalesCommands = registerInviteSalesCommands;
const invite_sales_handler_1 = require("../handlers/invite-sales.handler");
const errors_1 = require("../utils/errors");
const api_command_1 = require("../utils/api-command");
function withInviteSalesHandler(program, run) {
return (async () => {
try {
const { authConfig, serviceConfig } = await (0, api_command_1.loadApiCommandConfig)((0, api_command_1.commandParentOptions)(program));
await run(new invite_sales_handler_1.InviteSalesHandler(authConfig, serviceConfig));
}
catch (error) {
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
process.exit(1);
}
})();
}
function addPaging(command) {
return command
.option('--page <page>', 'page number', api_command_1.parsePositiveInteger)
.option('--page-size <size>', 'page size', api_command_1.parsePositiveInteger)
.option('-o, --output <format>', 'output format (table|json)', api_command_1.validateOutputFormat, 'table');
}
function registerInviteSalesCommands(program) {
const inviteSalesCmd = program.command('invite-sales').description('Manage user invite sales');
addPaging(inviteSalesCmd.command('list').description('List invite sales'))
.option('--viewer-union-id <id>', 'invite sale viewer union ID')
.option('--mobile <mobile>', 'mobile phone number')
.option('-k, --keyword <keyword>', 'nickname keyword')
.option('--organization-id <id>', 'organization ID', api_command_1.parsePositiveInteger)
.action((options) => withInviteSalesHandler(program, handler => handler.list(options)));
inviteSalesCmd.command('add')
.description('Add invite sales')
.requiredOption('--viewer-union-ids <ids>', 'comma-separated viewer union IDs, max 200')
.option('--organization-id <id>', 'organization ID', api_command_1.parsePositiveInteger)
.option('-f, --force', 'skip confirmation prompt')
.option('-o, --output <format>', 'output format (table|json)', api_command_1.validateOutputFormat, 'table')
.action((options) => withInviteSalesHandler(program, handler => handler.add(options)));
inviteSalesCmd.command('update')
.description('Update invite sales organization')
.requiredOption('--viewer-union-ids <ids>', 'comma-separated viewer union IDs, max 200')
.requiredOption('--organization-id <id>', 'organization ID', api_command_1.parsePositiveInteger)
.option('-f, --force', 'skip confirmation prompt')
.option('-o, --output <format>', 'output format (table|json)', api_command_1.validateOutputFormat, 'table')
.action((options) => withInviteSalesHandler(program, handler => handler.update(options)));
inviteSalesCmd.command('remove')
.description('Remove invite sales')
.requiredOption('--viewer-union-ids <ids>', 'comma-separated viewer union IDs, max 100')
.option('--new-viewer-union-id <id>', 'new invite sale ID to receive followed viewers')
.option('-f, --force', 'skip confirmation prompt')
.option('-o, --output <format>', 'output format (table|json)', api_command_1.validateOutputFormat, 'table')
.action((options) => withInviteSalesHandler(program, handler => handler.remove(options)));
const followViewerCmd = inviteSalesCmd.command('follow-viewer').description('Manage invite sales follow viewers');
addPaging(followViewerCmd.command('list').description('List invite sales follow viewers'))
.option('--invite-customer-id <id>', 'invite sale user ID')
.option('--invite-customer-nickname <keyword>', 'invite sale nickname keyword')
.option('--viewer-id <id>', 'viewer ID')
.option('--username <keyword>', 'viewer nickname keyword')
.option('--telephone <telephone>', 'viewer telephone')
.option('--follow-status-list <statuses>', 'comma-separated follow statuses, e.g. 0,1')
.action((options) => withInviteSalesHandler(program, handler => handler.listFollowViewers(options)));
}
//# sourceMappingURL=invite-sales.commands.js.map