bool LLFloaterBuyLandUI::checkTransaction() { if (!mTransaction) { return false; } if (!mTransaction->process()) { return false; } if (mTransaction->status(NULL) != LLXMLRPCTransaction::StatusComplete) { tellUserError(mTransaction->statusMessage(), mTransaction->statusURI()); } else { switch (mTransactionType) { case TransactionPreflight: finishWebSiteInfo(); break; case TransactionBuy: finishWebSitePrep(); break; default: ; } } delete mTransaction; mTransaction = NULL; return true; }
bool LLFloaterBuyLandUI::checkTransaction() { if (!mResponder) { return false; } if (!mResponder->is_finished()) { return false; } if (mResponder->result_code() != CURLE_OK || mResponder->http_status() < 200 || mResponder->http_status() >= 400) { tellUserError(mResponder->reason(), mResponder->getURL()); } else { switch (mTransactionType) { case TransactionPreflight: finishWebSiteInfo(); break; case TransactionBuy: finishWebSitePrep(); break; default: ; } } // We're done with this data. mResponder = NULL; return true; }
void LLFloaterBuyLandUI::finishWebSitePrep() { LLXMLRPCValue result = mTransaction->responseValue(); bool success = result["success"].asBool(); if (!success) { tellUserError( result["errorMessage"].asString(), result["errorURI"].asString() ); return; } sendBuyLand(); }
void LLFloaterBuyLandUI::finishWebSiteInfo() { LLXMLRPCValue result = mTransaction->responseValue(); mSiteValid = result["success"].asBool(); if (!mSiteValid) { tellUserError( result["errorMessage"].asString(), result["errorURI"].asString() ); return; } LLXMLRPCValue membership = result["membership"]; mSiteMembershipUpgrade = membership["upgrade"].asBool(); mSiteMembershipAction = membership["action"].asString(); mSiteMembershipPlanIDs.clear(); mSiteMembershipPlanNames.clear(); LLXMLRPCValue levels = membership["levels"]; for (LLXMLRPCValue level = levels.rewind(); level.isValid(); level = levels.next()) { mSiteMembershipPlanIDs.push_back(level["id"].asString()); mSiteMembershipPlanNames.push_back(level["description"].asString()); } mUserPlanChoice = 0; LLXMLRPCValue landUse = result["landUse"]; mSiteLandUseUpgrade = landUse["upgrade"].asBool(); mSiteLandUseAction = landUse["action"].asString(); LLXMLRPCValue currency = result["currency"]; if (currency["estimatedCost"].isValid()) { mCurrency.setUSDEstimate(currency["estimatedCost"].asInt()); } if (currency["estimatedLocalCost"].isValid()) { mCurrency.setLocalEstimate(currency["estimatedLocalCost"].asString()); } mSiteConfirm = result["confirm"].asString(); }
void LLFloaterBuyLandUI::draw() { LLFloater::draw(); bool needsUpdate = false; needsUpdate |= checkTransaction(); needsUpdate |= mCurrency.process(); if (mBought) { closeFloater(); } else if (needsUpdate) { if (mCanBuy && mCurrency.hasError()) { tellUserError(mCurrency.errorMessage(), mCurrency.errorURI()); } refreshUI(); } }