UNPKG

polyv-live-cli

Version:

CLI tool for managing PolyV live streaming services.

89 lines 6.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.registerFinanceCommands = registerFinanceCommands; const finance_handler_1 = require("../handlers/finance.handler"); const errors_1 = require("../utils/errors"); const api_command_1 = require("../utils/api-command"); function withFinanceHandler(program, run) { return (async () => { try { const { authConfig, serviceConfig } = await (0, api_command_1.loadApiCommandConfig)((0, api_command_1.commandParentOptions)(program)); await run(new finance_handler_1.FinanceHandler(authConfig, serviceConfig)); } catch (error) { (0, errors_1.logError)(error instanceof Error ? error : new Error(String(error))); process.exit(1); } })(); } function addModerationListOptions(command) { return command .requiredOption('-c, --channel-id <id>', 'channel ID') .option('--page <page>', 'page number', api_command_1.parsePositiveInteger) .option('--page-number <page>', 'page number', api_command_1.parsePositiveInteger) .option('--page-size <size>', 'page size', api_command_1.parsePositiveInteger) .option('--session-id <id>', 'session ID') .option('--start-time <timestamp>', 'start timestamp', api_command_1.parseTimestamp) .option('--end-time <timestamp>', 'end timestamp', api_command_1.parseTimestamp) .option('-o, --output <format>', 'output format (table|json)', api_command_1.validateOutputFormat, 'table'); } function registerFinanceCommands(program) { const financeCmd = program.command('finance').description('Manage finance, billing, and moderation APIs'); const audioCmd = financeCmd.command('audio-moderation').description('Audio moderation APIs'); audioCmd.command('get') .description('Get audio moderation settings') .requiredOption('-c, --channel-id <id>', 'channel ID') .option('-o, --output <format>', 'output format (table|json)', api_command_1.validateOutputFormat, 'table') .action((options) => withFinanceHandler(program, handler => handler.getAudioSettings(options))); addModerationListOptions(audioCmd.command('list').description('List audio moderation records')) .option('--moderation-strategy <strategy>', 'moderation strategy filter') .option('--result-type <type>', 'result type', api_command_1.parsePositiveInteger) .action((options) => withFinanceHandler(program, handler => handler.listAudioRecords(options))); audioCmd.command('update') .description('Update audio moderation settings') .requiredOption('-c, --channel-id <id>', 'channel ID') .option('--moderation-enabled <value>', 'moderation enabled (Y|N)', api_command_1.validateYn) .option('--moderation-strategy <strategy>', 'strategy (easy|normal|strict)') .option('--badword-enabled <value>', 'badword enabled (Y|N)', api_command_1.validateYn) .option('--illegal-notify <json>', 'illegal notification JSON object', api_command_1.parseJsonObject) .option('-f, --force', 'skip confirmation prompt') .option('-o, --output <format>', 'output format (table|json)', api_command_1.validateOutputFormat, 'table') .action((options) => withFinanceHandler(program, handler => handler.updateAudioSettings({ ...options, illegalNotify: options.illegalNotify, }))); const videoCmd = financeCmd.command('video-moderation').description('Video moderation APIs'); videoCmd.command('get') .description('Get video moderation settings') .requiredOption('-c, --channel-id <id>', 'channel ID') .option('-o, --output <format>', 'output format (table|json)', api_command_1.validateOutputFormat, 'table') .action((options) => withFinanceHandler(program, handler => handler.getVideoSettings(options))); addModerationListOptions(videoCmd.command('result-list').description('List video moderation results')) .option('--label <label>', 'label filter') .option('--result-type <type>', 'result type filter, comma-separated') .action((options) => withFinanceHandler(program, handler => handler.listVideoResults(options))); videoCmd.command('update') .description('Update video moderation settings') .requiredOption('-c, --channel-id <id>', 'channel ID') .requiredOption('--moderation-enabled <value>', 'moderation enabled (Y|N)', api_command_1.validateYn) .requiredOption('--moderation-strategy <strategy>', 'strategy (finance_easy|finance_normal|finance_serious)') .requiredOption('--image-frequency <seconds>', 'image frequency (5|20|60)', api_command_1.parsePositiveInteger) .requiredOption('--illegal-notify <json>', 'illegal notification JSON object', api_command_1.parseJsonObject) .option('-f, --force', 'skip confirmation prompt') .option('-o, --output <format>', 'output format (table|json)', api_command_1.validateOutputFormat, 'table') .action((options) => withFinanceHandler(program, handler => handler.updateVideoSettings({ ...options, illegalNotify: options.illegalNotify, }))); financeCmd.command('bill-detail-list') .description('List finance bill details') .requiredOption('--item-category <category>', 'item category') .requiredOption('--start-date <date>', 'start date, yyyy-MM-dd') .requiredOption('--end-date <date>', 'end date, yyyy-MM-dd') .option('--page <page>', 'page number', api_command_1.parsePositiveInteger) .option('--page-number <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') .action((options) => withFinanceHandler(program, handler => handler.listBillDetails(options))); } //# sourceMappingURL=finance.commands.js.map