UNPKG

polyv-live-cli

Version:

CLI tool for managing PolyV live streaming services.

70 lines 2.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PlatformLabelServiceSdk = void 0; const sdk_1 = require("../sdk"); const errors_1 = require("../utils/errors"); class PlatformLabelServiceSdk { constructor(authConfig, serviceConfig) { this.authConfig = authConfig; this.config = serviceConfig || { baseUrl: 'https://api.polyv.net', timeout: 30000, debug: false, }; } async listViewerLabels() { const client = (0, sdk_1.createSdkClient)(this.authConfig, this.config.baseUrl); const result = await client.v4User.listViewerLabels(); const labels = Array.isArray(result) ? result : result.contents || []; return labels.map(label => this.normalizeViewerLabel(label)); } async createViewerLabel(params) { this.validateLabelName(params.labelName); const client = (0, sdk_1.createSdkClient)(this.authConfig, this.config.baseUrl); const result = await client.v4User.createViewerLabel({ labels: [params.labelName], }); const createdLabel = Array.isArray(result) ? result[0] : result; if (!createdLabel) { throw new errors_1.PolyVValidationError('创建标签后未返回标签信息', 'labelName', params.labelName, 'empty_response'); } return this.normalizeViewerLabel(createdLabel); } async updateViewerLabel(params) { this.validateLabelId(params.labelId); this.validateLabelName(params.labelName); const client = (0, sdk_1.createSdkClient)(this.authConfig, this.config.baseUrl); await client.v4User.updateViewerLabel({ id: params.labelId, label: params.labelName, }); } async deleteViewerLabel(params) { this.validateLabelId(params.labelId); const client = (0, sdk_1.createSdkClient)(this.authConfig, this.config.baseUrl); await client.v4User.deleteViewerLabel({ id: params.labelId, }); } validateLabelName(labelName) { if (!labelName || typeof labelName !== 'string' || labelName.trim().length === 0) { throw new errors_1.PolyVValidationError('labelName 不能为空', 'labelName', labelName, 'validation_failed'); } } validateLabelId(labelId) { if (labelId === undefined || labelId === null || labelId <= 0 || !Number.isInteger(labelId)) { throw new errors_1.PolyVValidationError('labelId 必须是正整数', 'labelId', labelId, 'validation_failed'); } } normalizeViewerLabel(label) { if ('labelId' in label && 'labelName' in label) { return label; } return { labelId: Number(label.id), labelName: label.label, }; } } exports.PlatformLabelServiceSdk = PlatformLabelServiceSdk; //# sourceMappingURL=platform-label-service.js.map