tsonik
Version:
A TypeScript client library for the Iconik API based on Swagger documentation
78 lines • 3.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FileSetResource = void 0;
const base_1 = require("./base");
const utils_1 = require("../utils");
/**
* FileSet resource for managing file sets in Iconik
*/
class FileSetResource extends base_1.BaseResource {
constructor(client) {
super(client, '/API/files/v1');
}
/**
* Get all file sets for a specific asset
*/
async getAssetFilesets(assetId, params) {
if (!assetId || assetId.trim() === '') {
throw new Error('Asset ID is required');
}
const config = Object.keys((0, utils_1.cleanParams)(params)).length > 0 ? { params: (0, utils_1.cleanParams)(params) } : undefined;
return this.client.get(`${this.basePath}/assets/${assetId}/file_sets/`, config);
}
/**
* Get a specific file set for an asset by ID
*/
async getAssetFileset(assetId, fileSetId) {
if (!assetId || assetId.trim() === '') {
throw new Error('Asset ID is required');
}
if (!fileSetId || fileSetId.trim() === '') {
throw new Error('FileSet ID is required');
}
return this.client.get(`${this.basePath}/assets/${assetId}/file_sets/${fileSetId}/`);
}
/**
* Create a new file set for an asset
*/
async createAssetFileset(assetId, filesetData) {
if (!assetId || assetId.trim() === '') {
throw new Error('Asset ID is required');
}
return this.client.post(`${this.basePath}/assets/${assetId}/file_sets/`, filesetData);
}
/**
* Delete a file set for an asset
*/
async deleteAssetFileset(assetId, fileSetId, options) {
if (!assetId || assetId.trim() === '') {
throw new Error('Asset ID is required');
}
if (!fileSetId || fileSetId.trim() === '') {
throw new Error('FileSet ID is required');
}
const config = Object.keys((0, utils_1.cleanParams)(options)).length > 0 ? { params: (0, utils_1.cleanParams)(options) } : undefined;
// Return type depends on options - if immediately=true, returns void (204), otherwise returns FileSet (200)
return this.client.delete(`${this.basePath}/assets/${assetId}/file_sets/${fileSetId}/`, config);
}
/**
* Get files from a file set
*
* @param assetId - The ID of the asset
* @param fileSetId - The ID of the file set
* @param options - Optional parameters for the request
* @returns Promise with the response containing file set files
*/
async getFileSetFiles(assetId, fileSetId, options) {
if (!assetId || assetId.trim() === '') {
throw new Error('Asset ID is required');
}
if (!fileSetId || fileSetId.trim() === '') {
throw new Error('FileSet ID is required');
}
const config = Object.keys((0, utils_1.cleanParams)(options)).length > 0 ? { params: (0, utils_1.cleanParams)(options) } : undefined;
return this.client.get(`${this.basePath}/assets/${assetId}/file_sets/${fileSetId}/files/`, config);
}
}
exports.FileSetResource = FileSetResource;
//# sourceMappingURL=filesets.js.map