0.1.3 • Published 8 years ago
js-owncloud-client v0.1.3
Use this light-weight JS library with a promise based interface for seaemless communication with your ownCloud instance. Supports both Node.JS and browser JS.
Install
$ npm install js-owncloud-clientUsage
Node.JS
var owncloud = require('js-owncloud-client');
var oc = new owncloud('*owncloud instance URL*');
// Login
oc.login('username', 'password').then(status => {
// STUFF
}).catch(error => {
// HANDLE ERROR
});
// Share File With Link
oc.shares.shareFileWithLink('linkToYourFile').then(shareInfo => {
console.log("Link is : " + shareInfo.getLink());
}).catch(error => {
// HANDLE ERROR
});
// List all files
oc.files.list('/path/to/file/folder').then(files => {
console.log(files);
}).catch(error => {
console.log(error);
});Browser
<script type="text/javascript" src="./js-owncloud-client/browser/bundle.js"></script>
<script type="text/javascript">
// var oc is global
oc.setInstance('*owncloud instance URL*');
// Login
oc.login('username', 'password').then(status => {
window.alert(status);
}).catch(error => {
window.alert(error);
});
// Share File With Link
oc.shares.shareFileWithLink('linkToYourFile').then(shareInfo => {
window.alert("Link is : " + shareInfo.getLink());
}).catch(error => {
window.alert(error);
});
// List all files
oc.files.list('/path/to/file/folder').then(files => {
console.log(files);
}).catch(error => {
console.log(error);
});
</script>All Methods Available
General
var owncloud = require('js-owncloud-client');
var oc = new owncloud('*owncloud instance URL*');| Method | Code |
|---|---|
| setInstance | oc.setInstance(instance) |
| login | oc.login(username, password) |
| getConfig | oc.getConfig() |
| getVersion | oc.getVersion() |
| getCapabilities | oc.getCapabilities() |
Files Management
var owncloud = require('js-owncloud-client');
var oc = new owncloud('*owncloud instance URL*');| Method | Code |
|---|---|
| list | oc.files.list(/path/to/file/folder, depth) |
| getFileContents | oc.files.getFileContents(path/to/file/folder) |
| putFileContents | oc.files.putFileContents(path/to/file, contents) |
| mkdir | oc.files.mkdir(path/to/folder) |
| createFolder | oc.files.createFolder(path/to/folder) |
| delete | oc.files.delete(path/to/file/folder) |
| fileInfo | oc.files.fileInfo(path/to/file/folder) |
| getFile | oc.files.getFile(remotePath, localPath) |
| getDirectoryAsZip | oc.files.getDirectoryAsZip(remotePath, localPath) |
| putFile | oc.files.putFile(remotePath, localPath) |
| putDirectory | oc.files.putDirectory(remotePath, localPath) |
| move | oc.files.move(source, target) |
| copy | oc.files.copy(source, target) |
Apps Management
var owncloud = require('js-owncloud-client');
var oc = new owncloud('*owncloud instance URL*');| Method | Code |
|---|---|
| getApps | oc.apps.getApps() |
| getAttribute | oc.apps.getAttribute(app, key) |
| setAttribute | oc.apps.setAttribute(app, key, value) |
| deleteAttribute | oc.apps.deleteAttribute(app, key) |
| enableApp | oc.apps.enableApp(appName) |
| disableApp | oc.apps.disableApp(appName) |
Group Management
var owncloud = require('js-owncloud-client');
var oc = new owncloud('*owncloud instance URL*');| Method | Code |
|---|---|
| createGroup | oc.groups.createGroup(groupName) |
| deleteGroup | oc.groups.deleteGroup(groupName) |
| getGroups | oc.groups.getGroups() |
| getGroupMembers | oc.groups.getGroupMembers(groupName) |
| groupExists | oc.groups.groupExists(groupName) |
Share Management
var owncloud = require('js-owncloud-client');
var oc = new owncloud('*owncloud instance URL*');| Method | Code |
|---|---|
| shareFileWithLink | oc.shares.shareFileWithLink(path, {perms: perms, publicUpload: publicUpload, password: password}) |
| updateShare | oc.shares.updateShare(shareId, {perms: perms, publicUpload: publicUpload, password: password}) |
| shareFileWithUser | oc.shares.shareFileWithUser(path, username, {perms: perms, remoteUser: remoteUser }) |
| shareFileWithGroup | oc.shares.shareFileWithGroup(path, groupname, {perms: perms }) |
| getShares | oc.shares.getShares() |
| isShared | oc.shares.isShared(path/to/file/folder) |
| getShare | oc.shares.getShare(shareId) |
| listOpenRemoteShare | oc.shares.listOpenRemoteShare() |
| acceptRemoteShare | oc.shares.acceptRemoteShare(shareId) |
| declineRemoteShare | oc.shares.declineRemoteShare(shareId) |
| deleteShare | oc.shares.deleteShare(shareId) |
User Management
var owncloud = require('js-owncloud-client');
var oc = new owncloud('*owncloud instance URL*');| Method | Code |
|---|---|
| createUser | oc.users.createUser(username, password) |
| deleteUser | oc.users.deleteUser(username) |
| searchUsers | oc.users.searchUsers(searchKey) |
| userExists | oc.users.userExists(username) |
| getUsers | oc.users.getUsers() |
| setUserAttribute | oc.users.setUserAttribute(username, key, value) |
| addUserToGroup | oc.users.addUserToGroup(username, groupName) |
| getUserGroups | oc.users.getUserGroups(username) |
| userIsInGroup | oc.users.userIsInGroup(username, groupName) |
| getUser | oc.users.getUser(username) |
| removeUserFromGroup | oc.users.removeUserFromGroup(username, groupName) |
| addUserToSubadminGroup | oc.users.addUserToSubadminGroup(username, groupName) |
| getUserSubadminGroups | oc.users.getUserSubadminGroups(username) |
| userIsInSubadminGroup | oc.users.userIsInSubadminGroup(username, groupName) |
Building the Documentation
Swagger Documentation
Stuck? Just type this to see all the above available methods live in action in your browser!
$ cd node_modules/js-owncloud-client/
$ make swaggerIf you open the link showed by running the above command, you will see something like this :
Here, you can click on any method and type in values, to experiment with the methods in the browser itself! Now isn't that cool? :wink:
JSDocs
To build the jsdocs, type this command and follow the instructions on the terminal :
$ cd node_modules/js-owncloud-client/
$ make jsdocsUnit tests
The following command will run all unit tests. Before running the command, make sure you have edited the owncloud/test/config.json file accordingly.
$ cd node_modules/js-owncloud-client/
$ make test
