UNPKG

koneksi-ts-sdk

Version:

A JS/TS SDK for interacting with Koneksi API services

111 lines (110 loc) 4.53 kB
export class DirectoryOperations { constructor(httpClient) { this.httpClient = httpClient; } /** * Create a new directory * @param params - Directory creation parameters * @param params.name - The name of the directory * @param params.directory_id - The ID of the parent directory (optional, default is root) * @returns Promise<Directory> - The created directory * @example * await sdk.directory.create({ name: "New Folder", directory_id: "parent_dir_123" }); */ async create(params) { const response = await this.httpClient.post("/clients/v1/directories", params); if (response.status !== "success" || !response.data) { throw new Error(response.message || "Failed to create directory"); } return response.data; } /** * Read a directory by ID * @param directory_id - The ID of the directory to retrieve * @returns Promise<DirectoryReadResponse> - The directory details with files and subdirectories * @example * await sdk.directory.read("dir_1234567890"); */ async read(directory_id) { console.log(directory_id); const response = await this.httpClient.get(`/clients/v1/directories/${directory_id}`); console.log(response); if (response.status !== "success" || !response.data) { throw new Error(response.message || "Failed to read directory"); } return response.data; } /** * Update a directory * @param directory_id - The ID of the directory to update * @param params - Directory update parameters * @returns Promise<string> - Success message * @example * await sdk.directory.update("dir_1234567890", { name: "Updated Name", directory_id: "parent_dir_123" }); */ async update(directory_id, params) { const response = await this.httpClient.put(`/clients/v1/directories/${directory_id}`, params); if (response.status !== "success") { throw new Error(response.message || "Failed to update directory"); } return response.message; } /** * Delete a directory * @param directory_id - The ID of the directory to delete * @returns Promise<string> - Success message * @example * await sdk.directory.delete("dir_1234567890"); */ async delete(directory_id) { const response = await this.httpClient.delete(`/clients/v1/directories/${directory_id}`); if (response.status !== "success") { throw new Error(response.message || "Failed to delete directory"); } return response.message; } /** * Rename a directory * @param params - Rename parameters * @param params.directoryId - The ID of the directory to rename * @param params.name - The new name for the directory * @returns Promise<string> - Success message * @example * await sdk.directory.rename({ directoryId: "dir_1234567890", name: "New Directory Name" }); */ async rename(params) { if (!params.directoryId) { throw new Error("directoryId is required"); } if (!params.name) { throw new Error("name is required"); } const response = await this.httpClient.put(`/clients/v1/directories/${params.directoryId}`, { name: params.name }); if (response.status !== "success") { throw new Error(response.message || "Failed to rename directory"); } return response.message; } /** * Move a directory to a new parent directory * @param params - Move parameters * @param params.directoryId - The ID of the directory to move * @param params.parentDirectoryId - The ID of the new parent directory * @returns Promise<string> - Success message * @example * await sdk.directory.move({ directoryId: "dir_1234567890", parentDirectoryId: "parent_dir_9876543210" }); */ async move(params) { if (!params.directoryId) { throw new Error("directoryId is required"); } if (!params.parentDirectoryId) { throw new Error("parentDirectoryId is required"); } const response = await this.httpClient.put(`/clients/v1/directories/${params.directoryId}`, { directory_id: params.parentDirectoryId }); if (response.status !== "success") { throw new Error(response.message || "Failed to move directory"); } return response.message; } }