diff options
author | Merov Linden <merov@lindenlab.com> | 2014-04-25 17:12:49 -0700 |
---|---|---|
committer | Merov Linden <merov@lindenlab.com> | 2014-04-25 17:12:49 -0700 |
commit | 6d7b33f77e6d6facd585faf8c5d355f68942fcef (patch) | |
tree | 406956731f84eb55a1b41364c9c4b48e79385ac2 | |
parent | c00909603adc5981b05f4f9e31d067be64e8c6c2 (diff) |
DD-22 : WIP : Implemented SLM API GET merchant, use it in initialization but glitch in UI (needs to reopen the floater to see content)
-rwxr-xr-x | indra/newview/llfloatermarketplacelistings.cpp | 18 | ||||
-rwxr-xr-x | indra/newview/llmarketplacefunctions.cpp | 94 | ||||
-rwxr-xr-x | indra/newview/llmarketplacefunctions.h | 8 |
3 files changed, 96 insertions, 24 deletions
diff --git a/indra/newview/llfloatermarketplacelistings.cpp b/indra/newview/llfloatermarketplacelistings.cpp index 76cca065c8..27b31518a1 100755 --- a/indra/newview/llfloatermarketplacelistings.cpp +++ b/indra/newview/llfloatermarketplacelistings.cpp @@ -160,7 +160,8 @@ public: if (added_category_type == LLFolderType::FT_MARKETPLACE_LISTINGS) { - mMarketplaceListingsFloater->initializeMarketPlace(); + //mMarketplaceListingsFloater->initializeMarketPlace(); + LLMarketplaceData::instance().initializeSLM(); } } } @@ -234,9 +235,11 @@ void LLFloaterMarketplaceListings::onOpen(const LLSD& key) // // Initialize the Market Place or go update the marketplace listings // - if (LLMarketplaceInventoryImporter::getInstance()->getMarketPlaceStatus() == MarketplaceStatusCodes::MARKET_PLACE_NOT_INITIALIZED) + //if (LLMarketplaceInventoryImporter::getInstance()->getMarketPlaceStatus() == MarketplaceStatusCodes::MARKET_PLACE_NOT_INITIALIZED) + if (LLMarketplaceData::instance().getSLMStatus() == MarketplaceStatusCodes::MARKET_PLACE_NOT_INITIALIZED) { - initializeMarketPlace(); + //initializeMarketPlace(); + LLMarketplaceData::instance().initializeSLM(); } else { @@ -269,7 +272,8 @@ void LLFloaterMarketplaceListings::fetchContents() void LLFloaterMarketplaceListings::setup() { - if (LLMarketplaceInventoryImporter::getInstance()->getMarketPlaceStatus() != MarketplaceStatusCodes::MARKET_PLACE_MERCHANT) + //if (LLMarketplaceInventoryImporter::getInstance()->getMarketPlaceStatus() != MarketplaceStatusCodes::MARKET_PLACE_MERCHANT) + if (LLMarketplaceData::instance().getSLMStatus() != MarketplaceStatusCodes::MARKET_PLACE_MERCHANT) { // If we are *not* a merchant or we have no market place connection established yet, do nothing return; @@ -375,7 +379,8 @@ void LLFloaterMarketplaceListings::updateView() std::string tooltip; const LLSD& subs = getMarketplaceStringSubstitutions(); - U32 mkt_status = LLMarketplaceInventoryImporter::getInstance()->getMarketPlaceStatus(); + //U32 mkt_status = LLMarketplaceInventoryImporter::getInstance()->getMarketPlaceStatus(); + U32 mkt_status = LLMarketplaceData::instance().getSLMStatus(); // *TODO : check those messages and create better appropriate ones in strings.xml if (mRootFolderId.notNull()) @@ -485,7 +490,8 @@ void LLFloaterMarketplaceListings::initializationReportError(U32 status, const L void LLFloaterMarketplaceListings::importStatusChanged(bool inProgress) { - if (mRootFolderId.isNull() && (LLMarketplaceInventoryImporter::getInstance()->getMarketPlaceStatus() == MarketplaceStatusCodes::MARKET_PLACE_MERCHANT)) + //if (mRootFolderId.isNull() && (LLMarketplaceInventoryImporter::getInstance()->getMarketPlaceStatus() == MarketplaceStatusCodes::MARKET_PLACE_MERCHANT)) + if (mRootFolderId.isNull() && (LLMarketplaceData::instance().getSLMStatus() == MarketplaceStatusCodes::MARKET_PLACE_MERCHANT)) { setup(); } diff --git a/indra/newview/llmarketplacefunctions.cpp b/indra/newview/llmarketplacefunctions.cpp index 40417bf77b..607f907ed1 100755 --- a/indra/newview/llmarketplacefunctions.cpp +++ b/indra/newview/llmarketplacefunctions.cpp @@ -95,6 +95,46 @@ LLSD getMarketplaceStringSubstitutions() return marketplace_sub_map; } +/////////////////////////////////////////////////////////////////////////////// +// SLM Responder +class LLSLMMerchantResponder : public LLHTTPClient::Responder +{ + LOG_CLASS(LLSLMMerchantResponder); +public: + + LLSLMMerchantResponder() {} + + virtual void completed(U32 status, const std::string& reason, const LLSD& content) + { + if (isGoodStatus(status)) + { + llinfos << "Merov : completed successful, status = " << status << ", reason = " << reason << ", content = " << content << llendl; + LLMarketplaceData::instance().setSLMStatus(MarketplaceStatusCodes::MARKET_PLACE_MERCHANT); + } + else + { + llinfos << "Merov : completed with error, status = " << status << ", reason = " << reason << ", content = " << content << llendl; + LLMarketplaceData::instance().setSLMStatus(MarketplaceStatusCodes::MARKET_PLACE_NOT_MERCHANT); + } + } + + void completedHeader(U32 status, const std::string& reason, const LLSD& content) + { + if (isGoodStatus(status)) + { + llinfos << "Merov : completed header successful, status = " << status << ", reason = " << reason << ", content = " << content << llendl; + LLMarketplaceData::instance().setSLMStatus(MarketplaceStatusCodes::MARKET_PLACE_MERCHANT); + } + else + { + llinfos << "Merov : completed header with error, status = " << status << ", reason = " << reason << ", content = " << content << llendl; + LLMarketplaceData::instance().setSLMStatus(MarketplaceStatusCodes::MARKET_PLACE_NOT_MERCHANT); + } + } +}; +// SLM Responder End +/////////////////////////////////////////////////////////////////////////////// + namespace LLMarketplaceImport { // Basic interface for this namespace @@ -427,27 +467,15 @@ void LLMarketplaceInventoryImporter::initialize() return; } - // Test DirectDelivery cap - LLViewerRegion* region = gAgent.getRegion(); - if (region) + if (!LLMarketplaceImport::hasSessionCookie()) { - std::string url = region->getCapability("DirectDelivery"); - llinfos << "Merov : Test DirectDelivery cap : url = " << url << llendl; + mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_INITIALIZING; + LLMarketplaceImport::establishMarketplaceSessionCookie(); } else { - llinfos << "Merov : Test DirectDelivery cap : no region accessible" << llendl; + mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_MERCHANT; } - - if (!LLMarketplaceImport::hasSessionCookie()) - { - mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_INITIALIZING; - LLMarketplaceImport::establishMarketplaceSessionCookie(); - } - else - { - mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_MERCHANT; - } } void LLMarketplaceInventoryImporter::reinitializeAndTriggerImport() @@ -573,11 +601,43 @@ LLMarketplaceTuple::LLMarketplaceTuple(const LLUUID& folder_id, S32 listing_id, // Data map -LLMarketplaceData::LLMarketplaceData() +LLMarketplaceData::LLMarketplaceData() : + mMarketPlaceStatus(MarketplaceStatusCodes::MARKET_PLACE_NOT_INITIALIZED) { mTestCurrentMarketplaceID = 1234567; } +S32 LLMarketplaceData::getTestMarketplaceID() +{ + return mTestCurrentMarketplaceID++; +} + +void LLMarketplaceData::initializeSLM() +{ + mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_INITIALIZING; + + // Get DirectDelivery cap + std::string url = ""; + LLViewerRegion* region = gAgent.getRegion(); + if (region) + { + url = region->getCapability("DirectDelivery"); + llinfos << "Merov : Test DirectDelivery cap : url = " << url << llendl; + } + else + { + llinfos << "Merov : Test DirectDelivery cap : no region accessible" << llendl; + } + // *TODO : Take this DirectDelivery cap coping hack out + if (url == "") + { + url = "https://marketplace.secondlife-staging.com/api/1/viewer/" + gAgentID.asString() + "/merchant"; + } + llinfos << "Merov : Testing get : " << url << llendl; + + LLHTTPClient::get(url, new LLSLMMerchantResponder(), LLSD()); +} + // Creation / Deletion bool LLMarketplaceData::addListing(const LLUUID& folder_id) { diff --git a/indra/newview/llmarketplacefunctions.h b/indra/newview/llmarketplacefunctions.h index a587419323..a71ccfd53e 100755 --- a/indra/newview/llmarketplacefunctions.h +++ b/indra/newview/llmarketplacefunctions.h @@ -145,6 +145,11 @@ class LLMarketplaceData public: LLMarketplaceData(); + // SLM + U32 getSLMStatus() const { return mMarketPlaceStatus; } + void setSLMStatus(U32 status) { mMarketPlaceStatus = status; } + void initializeSLM(); + bool isEmpty() { return (mMarketplaceItems.size() == 0); } // Probe the Marketplace data set to identify folders @@ -169,10 +174,11 @@ public: bool setActivation(const LLUUID& folder_id, bool activate); // Merov : Test method while waiting for SLM API - S32 getTestMarketplaceID() { return mTestCurrentMarketplaceID++; } + S32 getTestMarketplaceID(); private: marketplace_items_list_t mMarketplaceItems; + U32 mMarketPlaceStatus; // Merov : This is for test only, waiting for SLM API S32 mTestCurrentMarketplaceID; }; |