Working With Files Trash Bin
This guide describes methods for working with files in the trash bin.
#
Trash bin operationsThis chapter describes methods for receiving, deleting and restoring files from the trash bin.
#
Initializationimport 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);}
#
Get trash bin contentThe following code example demonstrates how to get items from trash.
const params: IGetFsNodesSchema = { parent_id: '<parent_id>'};const opts: CustomRequestConfig = { signal: '<AbortSignal>' };filesApp .trashBin .getItems(params, opts) .then(({ data: IFsNodesSchema }) => { const { _embedded: { nodes }, } = data; return items; }) .catch((error) => { });
The following code example demonstrates how to get a paged list of trash bin’s files.
const pageSize: number = 20;const params: IGetFsNodesSchema = {};const opts: CustomRequestConfig = { signal: '<AbortSignal>' };const paginator = filesApp.trashBin.getTrashItemsPaginator( pageSize, params, opts);const items = [];// get first pagepaginator .next() .then(({ data }) => { if (data !== null) { items.push(data); // IItemSchema[] // get second page return paginator.next(); } }) .catch((error) => { });
The following code example demonstrates how to get a list of all trashed nodes.
const params: IGetFsNodesSchema = {}; // const defaultPageSize: number = 100;const delay: number = 300;const opts: CustomRequestConfig = { signal: '<AbortSignal>' };filesApp .trashBin .getAllNodes(params, defaultPageSize, delay, opts) .then((nodes: IFsNodeSchema[]) => { console.log('nodes', nodes); // IFsNodeSchema[] }) .catch((error) => { });
The following code example demonstrates how to get a list of all explicitly trashed nodes.
const params: IGetFsNodesSchema = {};const defaultPageSize: number = 100;const delay: number = 300;const opts: CustomRequestConfig = { signal: '<AbortSignal>' };filesApp .trashBin .getAllExplicitlyTrashedNodes(params, defaultPageSize, delay, opts) .then((nodes: IFsNodeSchema[]) => { console.log('nodes', nodes); }) .catch((error) => { });
#
Delete trash bin contentThe following code example demonstrates removing selected items from the trash bin.
const nodeIds = ['<item_id>', '<item_id>'];const opts: CustomRequestConfig = { signal: '<AbortSignal>' };filesApp .trashBin .deleteItems(nodeIds, opts) .then(() => { }) .catch((error) => { });
The following code example demonstrates removing selected items from the trash bin with batching api.
const nodeIds = ['<item_id>', '<item_id>'];const pageSize: number = '<number>';const delay: number = '<delay>';const opts: CustomRequestConfig = { signal: '<AbortSignal>' };filesApp.trashBin .batchDeletingItems(nodeIds, pageSize, delay, opts) .then(() => { }) .catch((error) => { });
#
Restore trash bin contentThe following code example demonstrates restoring selected items from the trash bin.
const nodeIds = ['<item_id>', '<item_id>'];const opts: CustomRequestConfig = { signal: '<AbortSignal>' };filesApp .trashBin .restoreItems(nodeIds, opts) .then(() => {}) .catch((error) => {});
The following code example demonstrates restoring all items from the trash bin.
const checkStatusDelay: number = 300;const opts: CustomRequestConfig = { signal: '<AbortSignal>' };filesApp .trashBin .fullRestore(checkStatusDelay, opts) .then(() => { }) .catch((error) => { });
#
Empty trash binThe following code example demonstrates removing all items from the trash bin.
const opts: CustomRequestConfig = { signal: '<AbortSignal>' };filesApp .trashBin .emptyTrash(opts) .then(() => {}) .catch((error) => {});