aboutsummaryrefslogtreecommitdiff
path: root/lib/csapi
diff options
context:
space:
mode:
Diffstat (limited to 'lib/csapi')
-rw-r--r--lib/csapi/content-repo.cpp47
-rw-r--r--lib/csapi/content-repo.h12
-rw-r--r--lib/csapi/logout.cpp12
-rw-r--r--lib/csapi/logout.h14
4 files changed, 66 insertions, 19 deletions
diff --git a/lib/csapi/content-repo.cpp b/lib/csapi/content-repo.cpp
index d0efdb9e..7eebeae5 100644
--- a/lib/csapi/content-repo.cpp
+++ b/lib/csapi/content-repo.cpp
@@ -63,15 +63,25 @@ class GetContentJob::Private
QIODevice* content;
};
-QUrl GetContentJob::makeRequestUrl(QUrl baseUrl, const QString& serverName, const QString& mediaId)
+BaseJob::Query queryToGetContent(bool allowRemote)
+{
+ BaseJob::Query _q;
+ _q.addQueryItem("allow_remote", QString("%1").arg(allowRemote));
+ return _q;
+}
+
+QUrl GetContentJob::makeRequestUrl(QUrl baseUrl, const QString& serverName, const QString& mediaId, bool allowRemote)
{
return BaseJob::makeRequestUrl(std::move(baseUrl),
- basePath % "/download/" % serverName % "/" % mediaId);
+ basePath % "/download/" % serverName % "/" % mediaId,
+ queryToGetContent(allowRemote));
}
-GetContentJob::GetContentJob(const QString& serverName, const QString& mediaId)
+GetContentJob::GetContentJob(const QString& serverName, const QString& mediaId, bool allowRemote)
: BaseJob(HttpVerb::Get, "GetContentJob",
- basePath % "/download/" % serverName % "/" % mediaId, false)
+ basePath % "/download/" % serverName % "/" % mediaId,
+ queryToGetContent(allowRemote),
+ {}, false)
, d(new Private)
{
setExpectedContentTypes({ "*/*" });
@@ -110,15 +120,25 @@ class GetContentOverrideNameJob::Private
QIODevice* content;
};
-QUrl GetContentOverrideNameJob::makeRequestUrl(QUrl baseUrl, const QString& serverName, const QString& mediaId, const QString& fileName)
+BaseJob::Query queryToGetContentOverrideName(bool allowRemote)
+{
+ BaseJob::Query _q;
+ _q.addQueryItem("allow_remote", QString("%1").arg(allowRemote));
+ return _q;
+}
+
+QUrl GetContentOverrideNameJob::makeRequestUrl(QUrl baseUrl, const QString& serverName, const QString& mediaId, const QString& fileName, bool allowRemote)
{
return BaseJob::makeRequestUrl(std::move(baseUrl),
- basePath % "/download/" % serverName % "/" % mediaId % "/" % fileName);
+ basePath % "/download/" % serverName % "/" % mediaId % "/" % fileName,
+ queryToGetContentOverrideName(allowRemote));
}
-GetContentOverrideNameJob::GetContentOverrideNameJob(const QString& serverName, const QString& mediaId, const QString& fileName)
+GetContentOverrideNameJob::GetContentOverrideNameJob(const QString& serverName, const QString& mediaId, const QString& fileName, bool allowRemote)
: BaseJob(HttpVerb::Get, "GetContentOverrideNameJob",
- basePath % "/download/" % serverName % "/" % mediaId % "/" % fileName, false)
+ basePath % "/download/" % serverName % "/" % mediaId % "/" % fileName,
+ queryToGetContentOverrideName(allowRemote),
+ {}, false)
, d(new Private)
{
setExpectedContentTypes({ "*/*" });
@@ -156,7 +176,7 @@ class GetContentThumbnailJob::Private
QIODevice* content;
};
-BaseJob::Query queryToGetContentThumbnail(Omittable<int> width, Omittable<int> height, const QString& method)
+BaseJob::Query queryToGetContentThumbnail(Omittable<int> width, Omittable<int> height, const QString& method, bool allowRemote)
{
BaseJob::Query _q;
if (width)
@@ -165,20 +185,21 @@ BaseJob::Query queryToGetContentThumbnail(Omittable<int> width, Omittable<int> h
_q.addQueryItem("height", QString("%1").arg(height.value()));
if (!method.isEmpty())
_q.addQueryItem("method", method);
+ _q.addQueryItem("allow_remote", QString("%1").arg(allowRemote));
return _q;
}
-QUrl GetContentThumbnailJob::makeRequestUrl(QUrl baseUrl, const QString& serverName, const QString& mediaId, Omittable<int> width, Omittable<int> height, const QString& method)
+QUrl GetContentThumbnailJob::makeRequestUrl(QUrl baseUrl, const QString& serverName, const QString& mediaId, Omittable<int> width, Omittable<int> height, const QString& method, bool allowRemote)
{
return BaseJob::makeRequestUrl(std::move(baseUrl),
basePath % "/thumbnail/" % serverName % "/" % mediaId,
- queryToGetContentThumbnail(width, height, method));
+ queryToGetContentThumbnail(width, height, method, allowRemote));
}
-GetContentThumbnailJob::GetContentThumbnailJob(const QString& serverName, const QString& mediaId, Omittable<int> width, Omittable<int> height, const QString& method)
+GetContentThumbnailJob::GetContentThumbnailJob(const QString& serverName, const QString& mediaId, Omittable<int> width, Omittable<int> height, const QString& method, bool allowRemote)
: BaseJob(HttpVerb::Get, "GetContentThumbnailJob",
basePath % "/thumbnail/" % serverName % "/" % mediaId,
- queryToGetContentThumbnail(width, height, method),
+ queryToGetContentThumbnail(width, height, method, allowRemote),
{}, false)
, d(new Private)
{
diff --git a/lib/csapi/content-repo.h b/lib/csapi/content-repo.h
index 8d73dc51..582fedab 100644
--- a/lib/csapi/content-repo.h
+++ b/lib/csapi/content-repo.h
@@ -34,14 +34,14 @@ namespace QMatrixClient
class GetContentJob : public BaseJob
{
public:
- explicit GetContentJob(const QString& serverName, const QString& mediaId);
+ explicit GetContentJob(const QString& serverName, const QString& mediaId, bool allowRemote = true);
/** Construct a URL out of baseUrl and usual parameters passed to
* GetContentJob. This function can be used when
* a URL for GetContentJob is necessary but the job
* itself isn't.
*/
- static QUrl makeRequestUrl(QUrl baseUrl, const QString& serverName, const QString& mediaId);
+ static QUrl makeRequestUrl(QUrl baseUrl, const QString& serverName, const QString& mediaId, bool allowRemote = true);
~GetContentJob() override;
@@ -62,14 +62,14 @@ namespace QMatrixClient
class GetContentOverrideNameJob : public BaseJob
{
public:
- explicit GetContentOverrideNameJob(const QString& serverName, const QString& mediaId, const QString& fileName);
+ explicit GetContentOverrideNameJob(const QString& serverName, const QString& mediaId, const QString& fileName, bool allowRemote = true);
/** Construct a URL out of baseUrl and usual parameters passed to
* GetContentOverrideNameJob. This function can be used when
* a URL for GetContentOverrideNameJob is necessary but the job
* itself isn't.
*/
- static QUrl makeRequestUrl(QUrl baseUrl, const QString& serverName, const QString& mediaId, const QString& fileName);
+ static QUrl makeRequestUrl(QUrl baseUrl, const QString& serverName, const QString& mediaId, const QString& fileName, bool allowRemote = true);
~GetContentOverrideNameJob() override;
@@ -90,14 +90,14 @@ namespace QMatrixClient
class GetContentThumbnailJob : public BaseJob
{
public:
- explicit GetContentThumbnailJob(const QString& serverName, const QString& mediaId, Omittable<int> width = none, Omittable<int> height = none, const QString& method = {});
+ explicit GetContentThumbnailJob(const QString& serverName, const QString& mediaId, Omittable<int> width = none, Omittable<int> height = none, const QString& method = {}, bool allowRemote = true);
/** Construct a URL out of baseUrl and usual parameters passed to
* GetContentThumbnailJob. This function can be used when
* a URL for GetContentThumbnailJob is necessary but the job
* itself isn't.
*/
- static QUrl makeRequestUrl(QUrl baseUrl, const QString& serverName, const QString& mediaId, Omittable<int> width = none, Omittable<int> height = none, const QString& method = {});
+ static QUrl makeRequestUrl(QUrl baseUrl, const QString& serverName, const QString& mediaId, Omittable<int> width = none, Omittable<int> height = none, const QString& method = {}, bool allowRemote = true);
~GetContentThumbnailJob() override;
diff --git a/lib/csapi/logout.cpp b/lib/csapi/logout.cpp
index b943dcd3..42f99bbc 100644
--- a/lib/csapi/logout.cpp
+++ b/lib/csapi/logout.cpp
@@ -24,3 +24,15 @@ LogoutJob::LogoutJob()
{
}
+QUrl LogoutAllJob::makeRequestUrl(QUrl baseUrl)
+{
+ return BaseJob::makeRequestUrl(std::move(baseUrl),
+ basePath % "/logout/all");
+}
+
+LogoutAllJob::LogoutAllJob()
+ : BaseJob(HttpVerb::Post, "LogoutAllJob",
+ basePath % "/logout/all")
+{
+}
+
diff --git a/lib/csapi/logout.h b/lib/csapi/logout.h
index 3d60ad48..7862c930 100644
--- a/lib/csapi/logout.h
+++ b/lib/csapi/logout.h
@@ -24,4 +24,18 @@ namespace QMatrixClient
static QUrl makeRequestUrl(QUrl baseUrl);
};
+
+ class LogoutAllJob : public BaseJob
+ {
+ public:
+ explicit LogoutAllJob();
+
+ /** Construct a URL out of baseUrl and usual parameters passed to
+ * LogoutAllJob. This function can be used when
+ * a URL for LogoutAllJob is necessary but the job
+ * itself isn't.
+ */
+ static QUrl makeRequestUrl(QUrl baseUrl);
+
+ };
} // namespace QMatrixClient