dood-stream-client
Version:
🚀 A feature-rich client for the DoodStream API with caching, logging, and error handling
69 lines (68 loc) • 1.93 kB
JavaScript
import { ErrorFactory } from "../errors/error-factory";
/**
* 📁 Folder-related API functionality
*/
export class FolderApi {
/**
* Create a new Folder API instance
*
* @param client - HTTP client
*/
constructor(client) {
this.client = client;
}
/**
* 📁 Create a new folder
*
* @param params - Create folder parameters
* @returns Promise with create folder response
*/
async create(params) {
if (!params.name) {
throw ErrorFactory.createValidationError("Folder name is required");
}
return this.client.get("/folder/create", params);
}
/**
* 📝 Rename a folder
*
* @param params - Rename folder parameters
* @returns Promise with boolean response
*/
async rename(params) {
if (!params.fld_id) {
throw ErrorFactory.createValidationError("Folder ID is required");
}
if (!params.name) {
throw ErrorFactory.createValidationError("New folder name is required");
}
return this.client.get("/folder/rename", params);
}
/**
* 📋 List folders and files
*
* @param params - Folder list parameters
* @returns Promise with folder list response
*/
async list(params) {
if (!params.fld_id) {
throw ErrorFactory.createValidationError("Folder ID is required");
}
return this.client.get("/folder/list", params);
}
/**
* 📂 List only folders
*
* @param folderId - Folder ID to list sub-folders of
* @returns Promise with folder list response
*/
async listFoldersOnly(folderId) {
if (!folderId) {
throw ErrorFactory.createValidationError("Folder ID is required");
}
return this.client.get("/folder/list", {
fld_id: folderId,
only_folders: 1,
});
}
}