24#ifndef DXCPP_BINDINGS_DXPROJECT_H
25#define DXCPP_BINDINGS_DXPROJECT_H
27#include "../bindings.h"
55 DXContainer(
const std::string &dxid=config::CURRENT_PROJECT()) : dxid_(dxid) { }
62 void setID(
const std::string &dxid) { dxid_ = dxid; }
67 std::string
getID()
const {
return dxid_; }
75 operator std::string() {
return dxid_;}
87 dx::JSON
describe(
bool folders=
false)
const;
99 void move(
const dx::JSON &objects,
100 const dx::JSON &folders,
101 const std::string &dest_folder)
const;
114 void clone(
const dx::JSON &objects,
115 const dx::JSON &folders,
116 const std::string &dest_container,
117 const std::string &dest_folder=
"/")
const;
127 void newFolder(
const std::string &folder,
bool parents=
false)
const;
136 dx::JSON
listFolder(
const std::string &folder=
"/")
const;
148 const std::string &dest_folder)
const;
158 void removeFolder(
const std::string &folder,
const bool recurse=
false)
const;
171 const std::string &dest_folder)
const {
172 move(objects, dx::JSON(dx::JSON_ARRAY), dest_folder);
196 const std::string &dest_container,
197 const std::string &dest_folder)
const {
198 clone(dx::JSON(dx::JSON_ARRAY), dx::JSON::parse(
"[\"" + folder +
"\"]"), dest_container, dest_folder);
211 const std::string &dest_container,
212 const std::string &dest_folder)
const {
213 clone(objects, dx::JSON(dx::JSON_ARRAY), dest_container, dest_folder);
241 void update(
const dx::JSON &to_update)
const;
260 void invite(
const std::string &invitee,
const std::string &level)
const;
272 void decreasePerms(
const std::string &member,
const std::string &level)
const;
A generic container for data objects.
Definition dxproject.h:44
void moveObjects(const dx::JSON &objects, const std::string &dest_folder) const
Definition dxproject.h:170
void removeObjects(const dx::JSON &objects) const
Definition dxproject.cc:85
void cloneFolder(const std::string &folder, const std::string &dest_container, const std::string &dest_folder) const
Definition dxproject.h:195
dx::JSON describe(bool folders=false) const
Definition dxproject.cc:22
void cloneObjects(const dx::JSON &objects, const std::string &dest_container, const std::string &dest_folder) const
Definition dxproject.h:210
void moveFolder(const std::string &folder, const std::string &dest_folder) const
Definition dxproject.cc:65
DXContainer(const std::string &dxid=config::CURRENT_PROJECT())
Definition dxproject.h:55
void newFolder(const std::string &folder, bool parents=false) const
Definition dxproject.cc:54
void clone(const dx::JSON &objects, const dx::JSON &folders, const std::string &dest_container, const std::string &dest_folder="/") const
Definition dxproject.cc:41
void move(const dx::JSON &objects, const dx::JSON &folders, const std::string &dest_folder) const
Definition dxproject.cc:31
void removeFolder(const std::string &folder, const bool recurse=false) const
Definition dxproject.cc:70
void setID(const std::string &dxid)
Definition dxproject.h:62
dx::JSON listFolder(const std::string &folder="/") const
Definition dxproject.cc:61
std::string getID() const
Definition dxproject.h:67
A DXContainer with additional functionality for collaboration.
Definition dxproject.h:224
void invite(const std::string &invitee, const std::string &level) const
Definition dxproject.cc:99
void decreasePerms(const std::string &member, const std::string &level) const
Definition dxproject.cc:103
void destroy() const
Definition dxproject.cc:95
DXProject(const std::string &dxid=config::CURRENT_PROJECT())
Definition dxproject.h:232
void update(const dx::JSON &to_update) const
Definition dxproject.cc:91
An executable object that can be published for others to discover.
Definition api.cc:7