js-owncloud-client

0.1.3 • Public • Published

Build Status Dependencies Status devDependencies Status

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-client

Usage

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 swagger

If you open the link showed by running the above command, you will see something like this :

SwaggerDemo

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? 😉

JSDocs

To build the jsdocs, type this command and follow the instructions on the terminal :

$ cd node_modules/js-owncloud-client/
$ make jsdocs

Unit 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

Team

Noveen Sachdeva         Vincent Petry
Noveen Sachdeva             Vincent Petry

GSoC'17

Dependencies (4)

Dev Dependencies (6)

Package Sidebar

Install

npm i js-owncloud-client

Weekly Downloads

536

Version

0.1.3

License

MIT

Last publish

Collaborators

  • noveens