UNPKG

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
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, }); } }