@667/js-owncloud-client

0.1.11 • Public • Published

Build Status Dependencies Status devDependencies Status

The main purpose of this form was to update the deps (mainly request which is now deprecated) and axios, axios-retry, and form-data basically take the place of the request package. Further the node-lts branch is the primary branch of concern as owncloud sdk in general is designed to run in the browser not node.

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/owncloud.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>

Example Projects

Node.JS Based

Browser Based

A sample text-file saving and retreiving static web app which uses this library: link

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 :

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

Package Sidebar

Install

npm i @667/js-owncloud-client

Weekly Downloads

2

Version

0.1.11

License

MIT

Unpacked Size

3.52 MB

Total Files

96

Last publish

Collaborators

  • 667