mirror of
https://github.com/amnezia-vpn/amnezia-client.git
synced 2026-06-23 02:00:20 +07:00
refactor: use end_date from primary config for renew ui
This commit is contained in:
@@ -56,6 +56,8 @@ namespace apiDefs
|
|||||||
constexpr QLatin1String activeDeviceCount("active_device_count");
|
constexpr QLatin1String activeDeviceCount("active_device_count");
|
||||||
constexpr QLatin1String maxDeviceCount("max_device_count");
|
constexpr QLatin1String maxDeviceCount("max_device_count");
|
||||||
constexpr QLatin1String subscriptionEndDate("subscription_end_date");
|
constexpr QLatin1String subscriptionEndDate("subscription_end_date");
|
||||||
|
constexpr QLatin1String subscription("subscription");
|
||||||
|
constexpr QLatin1String endDate("end_date");
|
||||||
constexpr QLatin1String issuedConfigs("issued_configs");
|
constexpr QLatin1String issuedConfigs("issued_configs");
|
||||||
constexpr QLatin1String subscriptionDescription("subscription_description");
|
constexpr QLatin1String subscriptionDescription("subscription_description");
|
||||||
|
|
||||||
|
|||||||
@@ -24,9 +24,30 @@ namespace
|
|||||||
|
|
||||||
bool apiUtils::isSubscriptionExpired(const QString &subscriptionEndDate)
|
bool apiUtils::isSubscriptionExpired(const QString &subscriptionEndDate)
|
||||||
{
|
{
|
||||||
QDateTime now = QDateTime::currentDateTimeUtc();
|
if (subscriptionEndDate.isEmpty()) {
|
||||||
QDateTime endDate = QDateTime::fromString(subscriptionEndDate, Qt::ISODateWithMs);
|
return false;
|
||||||
return endDate < now;
|
}
|
||||||
|
const QDateTime endDate = QDateTime::fromString(subscriptionEndDate, Qt::ISODate).toUTC();
|
||||||
|
if (!endDate.isValid()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return endDate < QDateTime::currentDateTimeUtc();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool apiUtils::isSubscriptionExpiringSoon(const QString &subscriptionEndDate, int withinDays)
|
||||||
|
{
|
||||||
|
if (subscriptionEndDate.isEmpty()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const QDateTime endDate = QDateTime::fromString(subscriptionEndDate, Qt::ISODate).toUTC();
|
||||||
|
if (!endDate.isValid()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const QDateTime nowUtc = QDateTime::currentDateTimeUtc();
|
||||||
|
if (endDate < nowUtc) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return endDate <= nowUtc.addDays(withinDays);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool apiUtils::isServerFromApi(const QJsonObject &serverConfigObject)
|
bool apiUtils::isServerFromApi(const QJsonObject &serverConfigObject)
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ namespace apiUtils
|
|||||||
|
|
||||||
bool isSubscriptionExpired(const QString &subscriptionEndDate);
|
bool isSubscriptionExpired(const QString &subscriptionEndDate);
|
||||||
|
|
||||||
|
bool isSubscriptionExpiringSoon(const QString &subscriptionEndDate, int withinDays = 10);
|
||||||
|
|
||||||
bool isPremiumServer(const QJsonObject &serverConfigObject);
|
bool isPremiumServer(const QJsonObject &serverConfigObject);
|
||||||
|
|
||||||
apiDefs::ConfigType getConfigType(const QJsonObject &serverConfigObject);
|
apiDefs::ConfigType getConfigType(const QJsonObject &serverConfigObject);
|
||||||
|
|||||||
@@ -47,9 +47,6 @@ namespace
|
|||||||
|
|
||||||
constexpr char config[] = "config";
|
constexpr char config[] = "config";
|
||||||
|
|
||||||
constexpr char subscription[] = "subscription";
|
|
||||||
constexpr char endDate[] = "end_date";
|
|
||||||
|
|
||||||
constexpr char isConnectEvent[] = "is_connect_event";
|
constexpr char isConnectEvent[] = "is_connect_event";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,13 +78,6 @@ bool ApiSettingsController::getAccountInfo(bool reload)
|
|||||||
QJsonObject accountInfo = QJsonDocument::fromJson(responseBody).object();
|
QJsonObject accountInfo = QJsonDocument::fromJson(responseBody).object();
|
||||||
m_apiAccountInfoModel->updateModel(accountInfo, serverConfig);
|
m_apiAccountInfoModel->updateModel(accountInfo, serverConfig);
|
||||||
|
|
||||||
QString subscriptionEndDate = accountInfo.value(apiDefs::key::subscriptionEndDate).toString();
|
|
||||||
if (!subscriptionEndDate.isEmpty()) {
|
|
||||||
apiConfig.insert(apiDefs::key::subscriptionEndDate, subscriptionEndDate);
|
|
||||||
serverConfig.insert(configKey::apiConfig, apiConfig);
|
|
||||||
m_serversModel->editServer(serverConfig, processedIndex);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (reload) {
|
if (reload) {
|
||||||
updateApiCountryModel();
|
updateApiCountryModel();
|
||||||
updateApiDevicesModel();
|
updateApiDevicesModel();
|
||||||
|
|||||||
@@ -77,16 +77,22 @@ QVariant ApiAccountInfoModel::data(const QModelIndex &index, int role) const
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
case IsSubscriptionExpiredRole: {
|
case IsSubscriptionExpiredRole: {
|
||||||
if (m_accountInfoData.configType == apiDefs::ConfigType::AmneziaFreeV3) return false;
|
if (m_accountInfoData.configType == apiDefs::ConfigType::AmneziaFreeV3) {
|
||||||
if (m_accountInfoData.subscriptionEndDate.isEmpty()) return false;
|
return false;
|
||||||
|
}
|
||||||
|
if (m_accountInfoData.subscriptionEndDate.isEmpty()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return apiUtils::isSubscriptionExpired(m_accountInfoData.subscriptionEndDate);
|
return apiUtils::isSubscriptionExpired(m_accountInfoData.subscriptionEndDate);
|
||||||
}
|
}
|
||||||
case IsSubscriptionExpiringSoonRole: {
|
case IsSubscriptionExpiringSoonRole: {
|
||||||
if (m_accountInfoData.configType == apiDefs::ConfigType::AmneziaFreeV3) return false;
|
if (m_accountInfoData.configType == apiDefs::ConfigType::AmneziaFreeV3) {
|
||||||
if (m_accountInfoData.subscriptionEndDate.isEmpty()) return false;
|
return false;
|
||||||
if (apiUtils::isSubscriptionExpired(m_accountInfoData.subscriptionEndDate)) return false;
|
}
|
||||||
QDateTime endDate = QDateTime::fromString(m_accountInfoData.subscriptionEndDate, Qt::ISODateWithMs);
|
if (m_accountInfoData.subscriptionEndDate.isEmpty()) {
|
||||||
return endDate <= QDateTime::currentDateTimeUtc().addDays(10);
|
return false;
|
||||||
|
}
|
||||||
|
return apiUtils::isSubscriptionExpiringSoon(m_accountInfoData.subscriptionEndDate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
#include "apiServicesModel.h"
|
#include "apiServicesModel.h"
|
||||||
|
|
||||||
|
#include <QDateTime>
|
||||||
#include <QJsonObject>
|
#include <QJsonObject>
|
||||||
|
|
||||||
|
#include "core/api/apiDefs.h"
|
||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
@@ -32,9 +34,6 @@ namespace
|
|||||||
constexpr char storeEndpoint[] = "store_endpoint";
|
constexpr char storeEndpoint[] = "store_endpoint";
|
||||||
|
|
||||||
constexpr char isAvailable[] = "is_available";
|
constexpr char isAvailable[] = "is_available";
|
||||||
|
|
||||||
constexpr char subscription[] = "subscription";
|
|
||||||
constexpr char endDate[] = "end_date";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace serviceType
|
namespace serviceType
|
||||||
@@ -243,7 +242,7 @@ ApiServicesModel::ApiServicesData ApiServicesModel::getApiServicesData(const QJs
|
|||||||
auto availableCountries = data.value(configKey::availableCountries).toArray();
|
auto availableCountries = data.value(configKey::availableCountries).toArray();
|
||||||
auto serviceDescription = data.value(configKey::serviceDescription).toObject();
|
auto serviceDescription = data.value(configKey::serviceDescription).toObject();
|
||||||
|
|
||||||
auto subscriptionObject = data.value(configKey::subscription).toObject();
|
auto subscriptionObject = data.value(apiDefs::key::subscription).toObject();
|
||||||
|
|
||||||
ApiServicesData serviceData;
|
ApiServicesData serviceData;
|
||||||
serviceData.serviceInfo.name = serviceInfo.value(configKey::name).toString();
|
serviceData.serviceInfo.name = serviceInfo.value(configKey::name).toString();
|
||||||
@@ -270,7 +269,7 @@ ApiServicesModel::ApiServicesData ApiServicesModel::getApiServicesData(const QJs
|
|||||||
serviceData.serviceInfo.object = serviceInfo;
|
serviceData.serviceInfo.object = serviceInfo;
|
||||||
serviceData.availableCountries = availableCountries;
|
serviceData.availableCountries = availableCountries;
|
||||||
|
|
||||||
serviceData.subscription.endDate = subscriptionObject.value(configKey::endDate).toString();
|
serviceData.subscription.endDate = subscriptionObject.value(apiDefs::key::endDate).toString();
|
||||||
|
|
||||||
return serviceData;
|
return serviceData;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -180,18 +180,26 @@ QVariant ServersModel::data(const QModelIndex &index, int role) const
|
|||||||
return apiConfig.value(apiDefs::key::serviceInfo).toObject().value(apiDefs::key::adEndpoint).toString();
|
return apiConfig.value(apiDefs::key::serviceInfo).toObject().value(apiDefs::key::adEndpoint).toString();
|
||||||
}
|
}
|
||||||
case IsSubscriptionExpiredRole: {
|
case IsSubscriptionExpiredRole: {
|
||||||
if (configVersion != apiDefs::ConfigSource::AmneziaGateway) return false;
|
if (configVersion != apiDefs::ConfigSource::AmneziaGateway) {
|
||||||
QString endDate = apiConfig.value(apiDefs::key::subscriptionEndDate).toString();
|
return false;
|
||||||
if (endDate.isEmpty()) return false;
|
}
|
||||||
|
const QString endDate =
|
||||||
|
apiConfig.value(apiDefs::key::subscription).toObject().value(apiDefs::key::endDate).toString();
|
||||||
|
if (endDate.isEmpty()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return apiUtils::isSubscriptionExpired(endDate);
|
return apiUtils::isSubscriptionExpired(endDate);
|
||||||
}
|
}
|
||||||
case IsSubscriptionExpiringSoonRole: {
|
case IsSubscriptionExpiringSoonRole: {
|
||||||
if (configVersion != apiDefs::ConfigSource::AmneziaGateway) return false;
|
if (configVersion != apiDefs::ConfigSource::AmneziaGateway) {
|
||||||
QString endDate = apiConfig.value(apiDefs::key::subscriptionEndDate).toString();
|
return false;
|
||||||
if (endDate.isEmpty()) return false;
|
}
|
||||||
if (apiUtils::isSubscriptionExpired(endDate)) return false;
|
const QString endDate =
|
||||||
QDateTime endDateTime = QDateTime::fromString(endDate, Qt::ISODateWithMs);
|
apiConfig.value(apiDefs::key::subscription).toObject().value(apiDefs::key::endDate).toString();
|
||||||
return endDateTime <= QDateTime::currentDateTimeUtc().addDays(10);
|
if (endDate.isEmpty()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return apiUtils::isSubscriptionExpiringSoon(endDate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user