@667/js-owncloud-client
v0.1.11
Published
ownCloud client library for JavaScript
Downloads
73
Maintainers
Readme
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? :wink:
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