DD-22 : WIP : Implemented SLM API GET merchant, use it in initialization but glitch in UI (needs to reopen the floater to see content)
parent
c00909603a
commit
6d7b33f77e
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue