Skip to main content

Working With File Versions

This guide describes methods for working with file versions.

File versions operations​

This chapter describes methods for receiving, creating, deleting, and modifying file versions.

Initialization​

import CLFiles from '@cloudike/web_files';

let filesApp;

const options = {
logLevel: 'error' // 'trace' | 'debug' | 'info' | 'warn' | 'error'
};

const config = {
authToken: '', // user auth token optional
baseUrl: '', // api base url required
userAgent: '', // user agent name required
wsConfig: { //
sockjs: '', // sockjs url optional
sockjs_for_shares: "", // sockjs for shares url optional
websocket_event_groups: [
"fs",
"photos",
"family"
], // websocket event groups optional, there are three groups: fs, photos, family
jwt_token: '', // jwt token optional
share_id: '', // share id optional
auth_by_first_message: true // auth by first message optional
}
}

try {
filesApp = CLFiles.init(options, config);
} catch (error) {
console.log('error', error);
}

Create file version​

The following code example demonstrates how to create a file version by ID.

const nodeId = '<nodeId>';
const opts: CustomRequestConfig = { signal: '<AbortSignal>' };
const params: ICreateVersionSchema = {};
filesApp.fileVersionsService
.createNewVersion(nodeId, versionId, opts)
.then(({ data }) => {
console.log(data); // IVersionSchema
})
.catch((error) => {
});

Get file version​

The following code example demonstrates how to obtain a file's version by using its ID.

const nodeId = '<nodeId>';
const versionId: string = '<versionId>';
const opts: CustomRequestConfig = { signal: '<AbortSignal>' };

filesApp.fileVersionsService
.getVersionsById(nodeId, versionId, opts)
.then(({ data }) => {
console.log(data); // IVersionSchema
})
.catch((error) => {});

Get file versions​

The following code example demonstrates how to get file versions by node ID.

filesApp.folderOperationsService
.getFolderContent({})
.then(({ data }) => {
const {
_embedded: { nodes },
} = data;
const nodeId = '<nodeId>';
return filesApp.fileVersionsService.getVersions(nodeId, {});
})
.then(({ data }) => {
console.log(data); // IVersionsSchema
})
.catch((error) => {});

The following code example demonstrates how to get a paged list of file versions by node ID.

filesApp.folderOperationsService
.getFolderContent({})
.then(({ data }) => {
const {
_embedded: { nodes },
} = data;
const nodeId = '<nodeId>';
const pageSize: number = 20;
const params: IGetVersionsSchema = {};
const opts: CustomRequestConfig = { signal: '<AbortSignal>' };
const paginator =
filesApp.fileVersionsService.getVersionsPaginator(
nodeId,
pageSize,
params,
opts
);
const items = [];
// get first page
paginator.next().then(({ data }) => {
if (data !== null) {
items.push(data); // IItemSchema[]
// get second page
return paginator.next();
}
});
});

Delete file version​

The following code example demonstrates how to delete a file version by ID.

const nodeId = '<nodeId>';
const versionId: string = '<versionId>';
const opts: CustomRequestConfig = { signal: '<AbortSignal>' };

filesApp.fileVersionsService
.deleteVersion(nodeId, versionId, opts)
.then(({ data }) => {
console.log(data); // IVersionSchema
})
.catch((error) => {
});

Get file version file object​

The following code example demonstrates how to get the file version of a file object by its node ID.

const nodeId = '<nodeId>';
const versionId: string = '<versionId>';
const opts: CustomRequestConfig = { signal: '<AbortSignal>' };
filesApp.fileVersionsService
.getFileVersionFileObject(nodeId, versionId, opts)
.then(({ data }) => {
console.log(data); // IFileObjectSchema
})
.catch((error) => {});