added a check for the presence of the “services” field in the response body of the getServicesList() function

This commit is contained in:
vladimir.kuznetsov 2024-11-25 14:57:03 +07:00
parent e4e433bff8
commit 793abd61ea
4 changed files with 12 additions and 3 deletions

View file

@ -377,6 +377,13 @@ ErrorCode ApiController::getServicesList(QByteArray &responseBody)
auto errorCode = checkErrors(sslErrors, reply);
reply->deleteLater();
if (errorCode == ErrorCode::NoError) {
if (!responseBody.contains("services")) {
return ErrorCode::ApiServicesMissingError;
}
}
return errorCode;
}

View file

@ -109,6 +109,7 @@ namespace amnezia
ApiConfigSslError = 1104,
ApiMissingAgwPublicKey = 1105,
ApiConfigDecryptionError = 1106,
ApiServicesMissingError = 1107,
// QFile errors
OpenError = 1200,

View file

@ -63,6 +63,7 @@ QString errorString(ErrorCode code) {
case (ErrorCode::ApiConfigTimeoutError): errorMessage = QObject::tr("Server response timeout on api request"); break;
case (ErrorCode::ApiMissingAgwPublicKey): errorMessage = QObject::tr("Missing AGW public key"); break;
case (ErrorCode::ApiConfigDecryptionError): errorMessage = QObject::tr("Failed to decrypt response payload"); break;
case (ErrorCode::ApiServicesMissingError): errorMessage = QObject::tr("Missing list of available services"); break;
// QFile errors
case(ErrorCode::OpenError): errorMessage = QObject::tr("QFile error: The file could not be opened"); break;

View file

@ -29,7 +29,7 @@ namespace
constexpr char isAvailable[] = "is_available";
constexpr char subscription[] = "subscription";
constexpr char endData[] = "end_date";
constexpr char endDate[] = "end_date";
}
namespace serviceType
@ -256,7 +256,7 @@ ApiServicesModel::ApiServicesData ApiServicesModel::getApiServicesData(const QJs
serviceData.serviceInfo.object = serviceInfo;
serviceData.availableCountries = availableCountries;
serviceData.subscription.endDate = subscriptionObject.value(configKey::endData).toString();
serviceData.subscription.endDate = subscriptionObject.value(configKey::endDate).toString();
return serviceData;
}