polyv-live-cli
Version:
CLI tool for managing PolyV live streaming services.
44 lines • 2.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.registerCustomFieldCommands = registerCustomFieldCommands;
const custom_field_handler_1 = require("../handlers/custom-field.handler");
const errors_1 = require("../utils/errors");
const api_command_1 = require("../utils/api-command");
function withCustomFieldHandler(program, run) {
return (async () => {
try {
const { authConfig, serviceConfig } = await (0, api_command_1.loadApiCommandConfig)((0, api_command_1.commandParentOptions)(program));
await run(new custom_field_handler_1.CustomFieldHandler(authConfig, serviceConfig));
}
catch (error) {
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
process.exit(1);
}
})();
}
function registerCustomFieldCommands(program) {
const customFieldCmd = program.command('custom-field').description('Manage user custom fields');
customFieldCmd.command('list')
.description('List custom fields')
.option('-o, --output <format>', 'output format (table|json)', api_command_1.validateOutputFormat, 'table')
.action((options) => withCustomFieldHandler(program, handler => handler.list(options)));
customFieldCmd.command('add')
.description('Add a custom field')
.requiredOption('--custom-field-id <id>', 'custom field ID (required, max 64 chars)')
.requiredOption('--custom-field-name <name>', 'custom field name (required, max 64 chars)')
.requiredOption('--custom-field-type <type>', 'custom field type (required: text|image|link)')
.option('-f, --force', 'skip confirmation prompt')
.option('-o, --output <format>', 'output format (table|json)', api_command_1.validateOutputFormat, 'table')
.action((options) => withCustomFieldHandler(program, handler => handler.add(options)));
const valueCmd = customFieldCmd.command('value').description('Manage custom field viewer values');
valueCmd.command('save')
.description('Save custom field viewer values')
.option('--values <json>', 'JSON array of {viewerId,customFieldId,customFieldValue}')
.option('--viewer-id <id>', 'viewer ID for single value')
.option('--custom-field-id <id>', 'custom field ID for single value')
.option('--custom-field-value <value>', 'custom field value for single value')
.option('-f, --force', 'skip confirmation prompt')
.option('-o, --output <format>', 'output format (table|json)', api_command_1.validateOutputFormat, 'table')
.action((options) => withCustomFieldHandler(program, handler => handler.saveValues(options)));
}
//# sourceMappingURL=custom-field.commands.js.map