|
14 | 14 |
|
15 | 15 | #include "capabilities.h" |
16 | 16 |
|
17 | | -#include <QVariantMap> |
18 | 17 | #include <QDebug> |
| 18 | +#include <QVariantMap> |
19 | 19 |
|
20 | 20 | using namespace std::chrono; |
21 | 21 |
|
22 | 22 | namespace OCC { |
23 | 23 |
|
24 | 24 |
|
25 | | -Capabilities::Capabilities(const QVariantMap &capabilities) |
| 25 | +Capabilities::Capabilities(const QUrl &url, const QVariantMap &capabilities) |
26 | 26 | : _capabilities(capabilities) |
27 | 27 | , _fileSharingCapabilities(_capabilities.value(QStringLiteral("files_sharing")).toMap()) |
28 | 28 | , _fileSharingPublicCapabilities(_fileSharingCapabilities.value(QStringLiteral("public"), {}).toMap()) |
29 | 29 | , _tusSupport(_capabilities.value(QStringLiteral("files")).toMap().value(QStringLiteral("tus_support")).toMap()) |
30 | 30 | , _spaces(_capabilities.value(QStringLiteral("spaces")).toMap()) |
31 | 31 | , _status(_capabilities.value(QStringLiteral("core")).toMap().value(QStringLiteral("status")).toMap()) |
32 | 32 | , _appProviders(AppProviders::findVersion( |
33 | | - _capabilities.value(QStringLiteral("files")).toMap().value(QStringLiteral("app_providers")).toList(), QVersionNumber({1, 1, 0}))) |
| 33 | + url, _capabilities.value(QStringLiteral("files")).toMap().value(QStringLiteral("app_providers")).toList(), QVersionNumber({1, 1, 0}))) |
34 | 34 | , _filesSharing(_fileSharingCapabilities) |
35 | 35 | , _migration(_capabilities.value(QStringLiteral("migration")).toMap()) |
36 | 36 | { |
@@ -313,28 +313,28 @@ bool SpaceSupport::isValid() const |
313 | 313 | return !version.isNull(); |
314 | 314 | } |
315 | 315 |
|
316 | | -Capabilities::AppProviders::AppProviders(const QVariantMap &appProviders) |
| 316 | +Capabilities::AppProviders::AppProviders(const QUrl &baseUrl, const QVariantMap &appProviders) |
317 | 317 | : enabled(appProviders.value(QStringLiteral("enabled")).toBool()) |
318 | 318 | , version(QVersionNumber::fromString(appProviders.value(QStringLiteral("version")).toString())) |
319 | | - , appsUrl(appProviders.value(QStringLiteral("apps_url")).toString()) |
320 | | - , openUrl(appProviders.value(QStringLiteral("open_url")).toString()) |
321 | | - , newUrl(appProviders.value(QStringLiteral("new_url")).toString()) |
322 | | - , openWebUrl(appProviders.value(QStringLiteral("open_web_url")).toString()) |
| 319 | + , appsUrl(baseUrl.resolved(appProviders.value(QStringLiteral("apps_url")).toUrl())) |
| 320 | + , openUrl(baseUrl.resolved(appProviders.value(QStringLiteral("open_url")).toUrl())) |
| 321 | + , newUrl(baseUrl.resolved(appProviders.value(QStringLiteral("new_url")).toUrl())) |
| 322 | + , openWebUrl(baseUrl.resolved(appProviders.value(QStringLiteral("open_web_url")).toUrl())) |
323 | 323 | { |
324 | 324 | } |
325 | 325 |
|
| 326 | + |
326 | 327 | const Capabilities::AppProviders &Capabilities::appProviders() const |
327 | 328 | { |
328 | 329 | return _appProviders; |
329 | 330 | } |
330 | 331 |
|
331 | | -Capabilities::AppProviders Capabilities::AppProviders::findVersion(const QVariantList &list, const QVersionNumber &v) |
| 332 | +Capabilities::AppProviders Capabilities::AppProviders::findVersion(const QUrl &baseUrl, const QVariantList &list, const QVersionNumber &v) |
332 | 333 | { |
333 | 334 | auto it = std::find_if(list.cbegin(), list.cend(), [&v](const auto &it) { |
334 | 335 | return QVersionNumber::fromString(it.toMap().value(QStringLiteral("version")).toString()) == v; |
335 | 336 | }); |
336 | | - return it != list.cend() ? Capabilities::AppProviders { it->toMap() } |
337 | | - : Capabilities::AppProviders(); |
| 337 | + return it != list.cend() ? Capabilities::AppProviders{baseUrl, it->toMap()} : Capabilities::AppProviders{}; |
338 | 338 | } |
339 | 339 |
|
340 | 340 | const FilesSharing &Capabilities::filesSharing() const |
|
0 commit comments