#include "sharee.h"
#include "ocsshareejob.h"
+#include <QJsonObject>
+#include <QJsonDocument>
+#include <QJsonArray>
+
namespace OCC {
Sharee::Sharee(const QString shareWith,
_search = search;
_shareeBlacklist = blacklist;
OcsShareeJob *job = new OcsShareeJob(_account);
- connect(job, SIGNAL(shareeJobFinished(QVariantMap)), SLOT(shareesFetched(QVariantMap)));
+ connect(job, SIGNAL(shareeJobFinished(QJsonDocument)), SLOT(shareesFetched(QJsonDocument)));
connect(job, SIGNAL(ocsError(int,QString)), SIGNAL(displayErrorMessage(int,QString)));
job->getSharees(_search, _type, 1, 50);
}
-void ShareeModel::shareesFetched(const QVariantMap &reply)
+void ShareeModel::shareesFetched(const QJsonDocument &reply)
{
- auto data = reply.value("ocs").toMap().value("data").toMap();
+ auto data = reply.object().value("ocs").toObject().value("data").toObject();
QVector<QSharedPointer<Sharee>> newSharees;
/*
* Todo properly loop all of this
*/
- auto exact = data.value("exact").toMap();
+ auto exact = data.value("exact").toObject();
{
- auto users = exact.value("users").toList();
+ auto users = exact.value("users").toArray();
foreach(auto user, users) {
- newSharees.append(parseSharee(user.toMap()));
+ newSharees.append(parseSharee(user.toObject()));
}
- auto groups = exact.value("groups").toList();
+ auto groups = exact.value("groups").toArray();
foreach(auto group, groups) {
- newSharees.append(parseSharee(group.toMap()));
+ newSharees.append(parseSharee(group.toObject()));
}
- auto remotes = exact.value("remotes").toList();
+ auto remotes = exact.value("remotes").toArray();
foreach(auto remote, remotes) {
- newSharees.append(parseSharee(remote.toMap()));
+ newSharees.append(parseSharee(remote.toObject()));
}
}
{
- auto users = data.value("users").toList();
+ auto users = data.value("users").toArray();
foreach(auto user, users) {
- newSharees.append(parseSharee(user.toMap()));
+ newSharees.append(parseSharee(user.toObject()));
}
}
{
- auto groups = data.value("groups").toList();
+ auto groups = data.value("groups").toArray();
foreach(auto group, groups) {
- newSharees.append(parseSharee(group.toMap()));
+ newSharees.append(parseSharee(group.toObject()));
}
}
{
- auto remotes = data.value("remotes").toList();
+ auto remotes = data.value("remotes").toArray();
foreach(auto remote, remotes) {
- newSharees.append(parseSharee(remote.toMap()));
+ newSharees.append(parseSharee(remote.toObject()));
}
}
shareesReady();
}
-QSharedPointer<Sharee> ShareeModel::parseSharee(const QVariantMap &data)
+QSharedPointer<Sharee> ShareeModel::parseSharee(const QJsonObject &data)
{
const QString displayName = data.value("label").toString();
- const QString shareWith = data.value("value").toMap().value("shareWith").toString();
- Sharee::Type type = (Sharee::Type)data.value("value").toMap().value("shareType").toInt();
+ const QString shareWith = data.value("value").toObject().value("shareWith").toString();
+ Sharee::Type type = (Sharee::Type)data.value("value").toObject().value("shareType").toInt();
return QSharedPointer<Sharee>(new Sharee(shareWith, displayName, type));
}
#include "account.h"
#include <QUrl>
+#include <QJsonDocument>
+#include <QJsonObject>
+#include <QJsonArray>
namespace {
struct CreateShare
void Share::setPermissions(Permissions permissions)
{
OcsShareJob *job = new OcsShareJob(_account);
- connect(job, SIGNAL(shareJobFinished(QVariantMap, QVariant)), SLOT(slotPermissionsSet(QVariantMap, QVariant)));
+ connect(job, SIGNAL(shareJobFinished(QJsonDocument, QVariant)), SLOT(slotPermissionsSet(QJsonDocument, QVariant)));
connect(job, SIGNAL(ocsError(int, QString)), SLOT(slotOcsError(int, QString)));
job->setPermissions(getId(), permissions);
}
-void Share::slotPermissionsSet(const QVariantMap &, const QVariant &value)
+void Share::slotPermissionsSet(const QJsonDocument &, const QVariant &value)
{
_permissions = (Permissions)value.toInt();
emit permissionsSet();
void Share::deleteShare()
{
OcsShareJob *job = new OcsShareJob(_account);
- connect(job, SIGNAL(shareJobFinished(QVariantMap, QVariant)), SLOT(slotDeleted()));
+ connect(job, SIGNAL(shareJobFinished(QJsonDocument, QVariant)), SLOT(slotDeleted()));
connect(job, SIGNAL(ocsError(int, const QString &)), SLOT(slotOcsError(int, const QString &)));
job->deleteShare(getId());
}
void LinkShare::setPublicUpload(bool publicUpload)
{
OcsShareJob *job = new OcsShareJob(_account);
- connect(job, SIGNAL(shareJobFinished(QVariantMap, QVariant)), SLOT(slotPublicUploadSet(QVariantMap, QVariant)));
+ connect(job, SIGNAL(shareJobFinished(QJsonDocument, QVariant)), SLOT(slotPublicUploadSet(QJsonDocument, QVariant)));
connect(job, SIGNAL(ocsError(int, QString)), SLOT(slotOcsError(int, QString)));
job->setPublicUpload(getId(), publicUpload);
}
void LinkShare::setName(const QString& name)
{
OcsShareJob *job = new OcsShareJob(_account);
- connect(job, SIGNAL(shareJobFinished(QVariantMap,QVariant)), SLOT(slotNameSet(QVariantMap,QVariant)));
+ connect(job, SIGNAL(shareJobFinished(QJsonDocument,QVariant)), SLOT(slotNameSet(QJsonDocument,QVariant)));
connect(job, SIGNAL(ocsError(int,QString)), SLOT(slotOcsError(int,QString)));
job->setName(getId(), name);
}
return _token;
}
-void LinkShare::slotPublicUploadSet(const QVariantMap&, const QVariant &value)
+void LinkShare::slotPublicUploadSet(const QJsonDocument&, const QVariant &value)
{
if (value.toBool()) {
_permissions = SharePermissionRead | SharePermissionUpdate | SharePermissionCreate;
void LinkShare::setPassword(const QString &password)
{
OcsShareJob *job = new OcsShareJob(_account);
- connect(job, SIGNAL(shareJobFinished(QVariantMap, QVariant)), SLOT(slotPasswordSet(QVariantMap, QVariant)));
+ connect(job, SIGNAL(shareJobFinished(QJsonDocument, QVariant)), SLOT(slotPasswordSet(QJsonDocument, QVariant)));
connect(job, SIGNAL(ocsError(int, QString)), SLOT(slotSetPasswordError(int,QString)));
job->setPassword(getId(), password);
}
-void LinkShare::slotPasswordSet(const QVariantMap&, const QVariant &value)
+void LinkShare::slotPasswordSet(const QJsonDocument&, const QVariant &value)
{
_passwordSet = value.toString() == "";
emit passwordSet();
void LinkShare::setExpireDate(const QDate &date)
{
OcsShareJob *job = new OcsShareJob(_account);
- connect(job, SIGNAL(shareJobFinished(QVariantMap, QVariant)), SLOT(slotExpireDateSet(QVariantMap, QVariant)));
+ connect(job, SIGNAL(shareJobFinished(QJsonDocument, QVariant)), SLOT(slotExpireDateSet(QJsonDocument, QVariant)));
connect(job, SIGNAL(ocsError(int, QString)), SLOT(slotOcsError(int, QString)));
job->setExpireDate(getId(), date);
}
-void LinkShare::slotExpireDateSet(const QVariantMap& reply, const QVariant &value)
+void LinkShare::slotExpireDateSet(const QJsonDocument& reply, const QVariant &value)
{
- auto data = reply.value("ocs").toMap().value("data").toMap();
+ auto data = reply.object().value("ocs").toObject().value("data").toObject();
/*
* If the reply provides a data back (more REST style)
* they use this date.
*/
- if (data.value("expiration").isValid()) {
+ if (data.value("expiration").isString()) {
_expireDate = QDate::fromString(data.value("expiration").toString(), "yyyy-MM-dd 00:00:00");
} else {
_expireDate = value.toDate();
emit passwordSetError(statusCode, message);
}
-void LinkShare::slotNameSet(const QVariantMap &, const QVariant &value)
+void LinkShare::slotNameSet(const QJsonDocument &, const QVariant &value)
{
_name = value.toString();
emit nameSet();
const QString &password)
{
OcsShareJob *job = new OcsShareJob(_account);
- connect(job, SIGNAL(shareJobFinished(QVariantMap, QVariant)), SLOT(slotLinkShareCreated(QVariantMap)));
+ connect(job, SIGNAL(shareJobFinished(QJsonDocument, QVariant)), SLOT(slotLinkShareCreated(QJsonDocument)));
connect(job, SIGNAL(ocsError(int, QString)), SLOT(slotOcsError(int, QString)));
job->createLinkShare(path, name, password);
}
-void ShareManager::slotLinkShareCreated(const QVariantMap &reply)
+void ShareManager::slotLinkShareCreated(const QJsonDocument &reply)
{
QString message;
int code = OcsShareJob::getJsonReturnCode(reply, message);
}
//Parse share
- auto data = reply.value("ocs").toMap().value("data").toMap();
+ auto data = reply.object().value("ocs").toObject().value("data").toObject();
QSharedPointer<LinkShare> share(parseLinkShare(data));
emit linkShareCreated(share);
continuation.permissions = permissions;
_jobContinuation[job] = QVariant::fromValue(continuation);
- connect(job, SIGNAL(shareJobFinished(QVariantMap,QVariant)), SLOT(slotCreateShare(QVariantMap)));
+ connect(job, SIGNAL(shareJobFinished(QJsonDocument,QVariant)), SLOT(slotCreateShare(QJsonDocument)));
connect(job, SIGNAL(ocsError(int,QString)), SLOT(slotOcsError(int,QString)));
job->getSharedWithMe();
}
-void ShareManager::slotCreateShare(const QVariantMap &reply)
+void ShareManager::slotCreateShare(const QJsonDocument &reply)
{
if (!_jobContinuation.contains(sender()))
return;
// Find existing share permissions (if this was shared with us)
Share::Permissions existingPermissions = SharePermissionDefault;
- foreach (const QVariant & element, reply["ocs"].toMap()["data"].toList()) {
- QVariantMap map = element.toMap();
+ foreach (const QJsonValue & element, reply.object()["ocs"].toObject()["data"].toArray()) {
+ auto map = element.toObject();
if (map["file_target"] == cont.path)
existingPermissions = Share::Permissions(map["permissions"].toInt());
}
}
OcsShareJob *job = new OcsShareJob(_account);
- connect(job, SIGNAL(shareJobFinished(QVariantMap, QVariant)), SLOT(slotShareCreated(QVariantMap)));
+ connect(job, SIGNAL(shareJobFinished(QJsonDocument, QVariant)), SLOT(slotShareCreated(QJsonDocument)));
connect(job, SIGNAL(ocsError(int, QString)), SLOT(slotOcsError(int, QString)));
job->createShare(cont.path, cont.shareType, cont.shareWith, cont.permissions);
}
-void ShareManager::slotShareCreated(const QVariantMap &reply)
+void ShareManager::slotShareCreated(const QJsonDocument &reply)
{
//Parse share
- auto data = reply.value("ocs").toMap().value("data").toMap();
+ auto data = reply.object().value("ocs").toObject().value("data").toObject();
QSharedPointer<Share> share(parseShare(data));
emit shareCreated(share);
void ShareManager::fetchShares(const QString &path)
{
OcsShareJob *job = new OcsShareJob(_account);
- connect(job, SIGNAL(shareJobFinished(QVariantMap, QVariant)), SLOT(slotSharesFetched(QVariantMap)));
+ connect(job, SIGNAL(shareJobFinished(QJsonDocument, QVariant)), SLOT(slotSharesFetched(QJsonDocument)));
connect(job, SIGNAL(ocsError(int, QString)), SLOT(slotOcsError(int, QString)));
job->getShares(path);
}
-void ShareManager::slotSharesFetched(const QVariantMap &reply)
+void ShareManager::slotSharesFetched(const QJsonDocument &reply)
{
- auto tmpShares = reply.value("ocs").toMap().value("data").toList();
+ auto tmpShares = reply.object().value("ocs").toObject().value("data").toArray();
const QString versionString = _account->serverVersion();
qDebug() << Q_FUNC_INFO << versionString << "Fetched" << tmpShares.count() << "shares";
QList<QSharedPointer<Share>> shares;
foreach(const auto &share, tmpShares) {
- auto data = share.toMap();
+ auto data = share.toObject();
auto shareType = data.value("share_type").toInt();
emit sharesFetched(shares);
}
-QSharedPointer<LinkShare> ShareManager::parseLinkShare(const QVariantMap &data)
+QSharedPointer<LinkShare> ShareManager::parseLinkShare(const QJsonObject &data)
{
QUrl url;
}
QDate expireDate;
- if (data.value("expiration").isValid()) {
+ if (data.value("expiration").isString()) {
expireDate = QDate::fromString(data.value("expiration").toString(), "yyyy-MM-dd 00:00:00");
}
data.value("name").toString(),
data.value("token").toString(),
(Share::Permissions)data.value("permissions").toInt(),
- data.value("share_with").isValid(),
+ data.value("share_with").isString(), // has password?
url,
expireDate));
}
-QSharedPointer<Share> ShareManager::parseShare(const QVariantMap &data)
+QSharedPointer<Share> ShareManager::parseShare(const QJsonObject &data)
{
QSharedPointer<Sharee> sharee(new Sharee(data.value("share_with").toString(),
data.value("share_with_displayname").toString(),