|
2 | 2 |
|
3 | 3 | #include "core/controllers/gatewayController.h" |
4 | 4 | #include "core/repositories/secureServersRepository.h" |
| 5 | +#include "core/utils/api/apiUtils.h" |
| 6 | +#include "core/utils/api/gatewayPayloadBuilder.h" |
5 | 7 | #include "core/utils/constants/apiKeys.h" |
6 | 8 | #include "core/utils/constants/apiConstants.h" |
7 | 9 | #include <QtConcurrent/QtConcurrent> |
@@ -81,15 +83,12 @@ QFuture<QPair<ErrorCode, QJsonArray>> NewsController::fetchNews() |
81 | 83 | m_appSettingsRepository->isStrictKillSwitchEnabled(), |
82 | 84 | m_appSettingsRepository); |
83 | 85 |
|
84 | | - QJsonObject payload; |
85 | | - payload.insert("locale", m_appSettingsRepository->getAppLanguage().name().split("_").first()); |
86 | | - |
87 | | - if (services.contains(apiDefs::key::userCountryCode)) { |
88 | | - payload.insert(apiDefs::key::userCountryCode, services.value(apiDefs::key::userCountryCode)); |
89 | | - } |
90 | | - if (services.contains(apiDefs::key::serviceType)) { |
91 | | - payload.insert(apiDefs::key::serviceType, services.value(apiDefs::key::serviceType)); |
92 | | - } |
| 86 | + // both country codes and service types are arrays here, one entry per gateway stack the user has |
| 87 | + const QJsonObject payload = GatewayPayloadBuilder(m_appSettingsRepository) |
| 88 | + .addField(apiDefs::key::locale, apiUtils::getAppLanguageCode(m_appSettingsRepository)) |
| 89 | + .addField(apiDefs::key::userCountryCode, services.value(apiDefs::key::userCountryCode)) |
| 90 | + .addField(apiDefs::key::serviceType, services.value(apiDefs::key::serviceType)) |
| 91 | + .build(); |
93 | 92 |
|
94 | 93 | auto future = gatewayController->postAsync(QString("%1v1/news"), payload); |
95 | 94 | return future.then([gatewayController](QPair<ErrorCode, QByteArray> result) -> QPair<ErrorCode, QJsonArray> { |
|
0 commit comments