5#include "XsollaInventoryDataModel.h"
7#include "XsollaUtilsHttpRequestHelper.h"
9#include "Subsystems/GameInstanceSubsystem.h"
10#include "Subsystems/SubsystemCollection.h"
11#include "XsollaUtilsDataModel.h"
13#include "XsollaInventorySubsystem.generated.h"
15enum class EXsollaPublishingPlatform : uint8;
19DECLARE_DYNAMIC_DELEGATE(FOnInventoryRequestSuccess);
20DECLARE_DYNAMIC_DELEGATE_OneParam(FOnInventoryUpdate, const FInventoryItemsData&, InventoryData);
21DECLARE_DYNAMIC_DELEGATE_OneParam(FOnCurrencyBalanceUpdate, const FVirtualCurrencyBalanceData&, CurrencyBalanceData);
22DECLARE_DYNAMIC_DELEGATE_OneParam(FOnTimeLimitedItemsUpdate, const FTimeLimitedItemsData&, TimeLimitedItemsData);
23DECLARE_DYNAMIC_DELEGATE_OneParam(FOnCouponRewardsUpdate, FInventoryCouponRewardData, RewardsData);
24DECLARE_DYNAMIC_DELEGATE_OneParam(FOnCouponRedeemUpdate, FInventoryRedeemedCouponData, RewardData);
35 virtual void Initialize(FSubsystemCollectionBase& Collection)
override;
36 virtual void Deinitialize()
override;
44 UFUNCTION(BlueprintCallable, Category =
"Xsolla|Inventory")
45 void Initialize(const FString& InProjectId);
59 UFUNCTION(BlueprintCallable, Category = "Xsolla|Inventory", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
60 void GetInventory(const FString& AuthToken, const EXsollaPublishingPlatform Platform,
61 const FOnInventoryUpdate& SuccessCallback, const FOnError& ErrorCallback, const
int Limit = 50, const
int Offset = 0);
72 UFUNCTION(BlueprintCallable, Category = "Xsolla|Inventory|VirtualCurrency", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
73 void GetVirtualCurrencyBalance(const FString& AuthToken, const EXsollaPublishingPlatform Platform,
74 const FOnCurrencyBalanceUpdate& SuccessCallback, const FOnError& ErrorCallback);
85 UFUNCTION(BlueprintCallable, Category = "Xsolla|Inventory|TimeLimitedItems", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
86 void GetTimeLimitedItems(const FString& AuthToken, const EXsollaPublishingPlatform Platform,
87 const FOnTimeLimitedItemsUpdate& SuccessCallback, const FOnError& ErrorCallback);
101 UFUNCTION(BlueprintCallable, Category = "Xsolla|Inventory", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
102 void ConsumeInventoryItem(const FString& AuthToken, const FString& ItemSKU, const int32 Quantity,
103 const FString& InstanceID, const EXsollaPublishingPlatform Platform,
104 const FOnInventoryRequestSuccess& SuccessCallback, const FOnError& ErrorCallback);
115 UFUNCTION(BlueprintCallable, Category = "Xsolla|Inventory|Coupons", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
116 void GetCouponRewards(const FString& AuthToken, const FString& CouponCode,
117 const FOnCouponRewardsUpdate& SuccessCallback, const FOnError& ErrorCallback);
130 UFUNCTION(BlueprintCallable, Category = "Xsolla|Inventory|Coupons", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
131 void RedeemCoupon(const FString& AuthToken, const FString& CouponCode,
132 const FOnCouponRedeemUpdate& SuccessCallback, const FOnError& ErrorCallback);
135 UFUNCTION(BlueprintCallable, Category = "Xsolla|Inventory")
139 void GetInventory_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse,
140 const
bool bSucceeded, FOnInventoryUpdate SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
141 void GetVirtualCurrencyBalance_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse,
142 const
bool bSucceeded, FOnCurrencyBalanceUpdate SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
143 void GetTimeLimitedItems_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse,
144 const
bool bSucceeded, FOnTimeLimitedItemsUpdate SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
146 void ConsumeInventoryItem_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse,
147 const
bool bSucceeded, FOnInventoryRequestSuccess SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
149 void UpdateCouponRewards_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse,
150 const
bool bSucceeded, FOnCouponRewardsUpdate SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
151 void RedeemCoupon_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse,
152 const
bool bSucceeded, FOnCouponRedeemUpdate SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
156 TSharedRef<IHttpRequest, ESPMode::ThreadSafe> CreateHttpRequest(const FString& Url, const EXsollaHttpRequestVerb Verb = EXsollaHttpRequestVerb::VERB_GET,
157 const FString& AuthToken = FString(), const FString& Content = FString());
160 FString SerializeJson(const TSharedPtr<FJsonObject> DataJson) const;
Definition: XsollaInventorySubsystem.h:28
Definition: XsollaLoginSubsystem.h:51
Definition: XsollaInventoryDataModel.h:11
Definition: XsollaInventoryDataModel.h:51