Merge pull request #14360 from zfox23/MS19743_updateCheckoutBug

Fix MS19743: Fix case where user couldn't update certain items
This commit is contained in:
Zach Fox 2018-11-07 14:57:35 -08:00 committed by GitHub
commit 3cbaec818d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 18 additions and 8 deletions

View file

@ -55,6 +55,7 @@ Rectangle {
property bool isInstalled;
property bool isUpdating;
property string baseAppURL;
property int currentUpdatesPage: 1;
// Style
color: hifi.colors.white;
Connections {
@ -156,8 +157,14 @@ Rectangle {
break;
}
}
root.availableUpdatesReceived = true;
refreshBuyUI();
if (result.data.updates.length === 0 || root.isUpdating) {
root.availableUpdatesReceived = true;
refreshBuyUI();
} else {
root.currentUpdatesPage++;
Commerce.getAvailableUpdates(root.itemId, currentUpdatesPage)
}
}
}
@ -176,6 +183,7 @@ Rectangle {
root.ownershipStatusReceived = false;
Commerce.alreadyOwned(root.itemId);
root.availableUpdatesReceived = false;
root.currentUpdatesPage = 1;
Commerce.getAvailableUpdates(root.itemId);
itemPreviewImage.source = "https://hifi-metaverse.s3-us-west-1.amazonaws.com/marketplace/previews/" + itemId + "/thumbnail/hifi-mp-" + itemId + ".jpg";
}
@ -1181,6 +1189,7 @@ Rectangle {
root.ownershipStatusReceived = false;
Commerce.alreadyOwned(root.itemId);
root.availableUpdatesReceived = false;
root.currentUpdatesPage = 1;
Commerce.getAvailableUpdates(root.itemId);
root.balanceReceived = false;
Commerce.balance();

View file

@ -29,7 +29,6 @@ Item {
if (visible) {
Commerce.balance();
transactionHistoryModel.getFirstPage();
Commerce.getAvailableUpdates();
} else {
refreshTimer.stop();
}

View file

@ -454,7 +454,7 @@ void Ledger::alreadyOwned(const QString& marketplaceId) {
}
}
void Ledger::getAvailableUpdates(const QString& itemId) {
void Ledger::getAvailableUpdates(const QString& itemId, const int& pageNumber, const int& itemsPerPage) {
auto wallet = DependencyManager::get<Wallet>();
QString endpoint = "available_updates";
QJsonObject request;
@ -462,6 +462,8 @@ void Ledger::getAvailableUpdates(const QString& itemId) {
if (!itemId.isEmpty()) {
request["marketplace_item_id"] = itemId;
}
request["per_page"] = itemsPerPage;
request["page"] = pageNumber;
send(endpoint, "availableUpdatesSuccess", "availableUpdatesFailure", QNetworkAccessManager::PutOperation, AccountManagerAuth::Required, request);
}

View file

@ -37,7 +37,7 @@ public:
void transferAssetToNode(const QString& hfc_key, const QString& nodeID, const QString& certificateID, const int& amount, const QString& optionalMessage);
void transferAssetToUsername(const QString& hfc_key, const QString& username, const QString& certificateID, const int& amount, const QString& optionalMessage);
void alreadyOwned(const QString& marketplaceId);
void getAvailableUpdates(const QString& itemId = "");
void getAvailableUpdates(const QString& itemId = "", const int& pageNumber = 1, const int& itemsPerPage = 10);
void updateItem(const QString& hfc_key, const QString& certificate_id);
enum CertificateStatus {

View file

@ -441,9 +441,9 @@ bool QmlCommerce::openApp(const QString& itemHref) {
return true;
}
void QmlCommerce::getAvailableUpdates(const QString& itemId) {
void QmlCommerce::getAvailableUpdates(const QString& itemId, const int& pageNumber, const int& itemsPerPage) {
auto ledger = DependencyManager::get<Ledger>();
ledger->getAvailableUpdates(itemId);
ledger->getAvailableUpdates(itemId, pageNumber, itemsPerPage);
}
void QmlCommerce::updateItem(const QString& certificateId) {

View file

@ -92,7 +92,7 @@ protected:
Q_INVOKABLE bool uninstallApp(const QString& appHref);
Q_INVOKABLE bool openApp(const QString& appHref);
Q_INVOKABLE void getAvailableUpdates(const QString& itemId = "");
Q_INVOKABLE void getAvailableUpdates(const QString& itemId = "", const int& pageNumber = 1, const int& itemsPerPage = 10);
Q_INVOKABLE void updateItem(const QString& certificateId);
private: