The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/app/webdav/server/lib/webdavClientAdapter.js

68 lines
1.7 KiB

import { createClient } from 'webdav';
export class WebdavClientAdapter {
constructor(serverConfig, cred) {
if (cred.token) {
this._client = createClient(
serverConfig,
{ token: cred.token },
);
} else {
this._client = createClient(
serverConfig,
{
username: cred.username,
password: cred.password,
},
);
}
}
async stat(path) {
try {
return await this._client.stat(path);
} catch (error) {
throw new Error(error.response && error.response.statusText ? error.response.statusText : 'Error checking if directory exists on webdav');
}
}
async createDirectory(path) {
try {
return await this._client.createDirectory(path);
} catch (error) {
throw new Error(error.response && error.response.statusText ? error.response.statusText : 'Error creating directory on webdav');
}
}
async deleteFile(path) {
try {
return await this._client.deleteFile(path);
} catch (error) {
throw new Error(error.response && error.response.statusText ? error.response.statusText : 'Error deleting file on webdav');
}
}
async getFileContents(filename) {
try {
return await this._client.getFileContents(filename);
} catch (error) {
throw new Error(error.response && error.response.statusText ? error.response.statusText : 'Error getting file contents webdav');
}
}
async getDirectoryContents(path) {
try {
return await this._client.getDirectoryContents(path);
} catch (error) {
throw new Error(error.response && error.response.statusText ? error.response.statusText : 'Error getting directory contents webdav');
}
}
createReadStream(path, options) {
return this._client.createReadStream(path, options);
}
createWriteStream(path) {
return this._client.createWriteStream(path);
}
}