Neolithic Prancing Minotaurs

    @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

    Install

    npm i @667/js-owncloud-client

    DownloadsWeekly Downloads

    18

    Version

    0.1.11

    License

    MIT

    Unpacked Size

    3.52 MB

    Total Files

    96

    Last publish

    Collaborators

    • 667