polyv-live-cli
Version:
CLI tool for managing PolyV live streaming services.
70 lines • 2.93 kB
JavaScript
;
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