Skip to content

Commit 1762c72

Browse files
committed
Added new sorting to assets
1 parent 0c64a96 commit 1762c72

File tree

3 files changed

+121
-94
lines changed

3 files changed

+121
-94
lines changed

Runtime/Client/LootLockerEndPoints.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,6 @@ public class LootLockerEndPoints
6161
[Header("Assets")]
6262
public static EndPointClass gettingContexts = new EndPointClass("v1/contexts", LootLockerHTTPMethod.GET);
6363
public static EndPointClass gettingAssetListWithCount = new EndPointClass("v1/assets/list?count={0}", LootLockerHTTPMethod.GET);
64-
public static EndPointClass gettingAssetListOriginal = new EndPointClass("v1/assets/list?after={0}&count={1}&filter={2}", LootLockerHTTPMethod.GET);
65-
public static EndPointClass gettingAssetListWithAfterAndCount = new EndPointClass("v1/assets/list?after={0}&count={1}", LootLockerHTTPMethod.GET);
6664
public static EndPointClass getAssetsById = new EndPointClass("v1/assets/by/id?asset_ids={0}", LootLockerHTTPMethod.GET);
6765
public static EndPointClass gettingAllAssets = new EndPointClass("v1/assets", LootLockerHTTPMethod.GET);
6866
public static EndPointClass gettingAssetInformationForOneorMoreAssets = new EndPointClass("v1/asset/{0}", LootLockerHTTPMethod.GET);

Runtime/Game/LootLockerSDKManager.cs

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using Newtonsoft.Json;
1010
using LootLocker.LootLockerEnums;
1111
using static LootLocker.LootLockerConfig;
12+
using System.Linq;
1213

1314
namespace LootLocker.Requests
1415
{
@@ -411,34 +412,34 @@ public static void GetContext(Action<LootLockerContextResponse> onComplete)
411412
LootLockerAPIManager.GetContext(onComplete);
412413
}
413414

414-
public static void GetAssetsOriginal(int assetCount, Action<LootLockerAssetResponse> onComplete, int? idOfLastAsset = null, LootLocker.LootLockerEnums.AssetFilter filter = LootLocker.LootLockerEnums.AssetFilter.none)
415+
public static void GetAssetsOriginal(int assetCount, Action<LootLockerAssetResponse> onComplete, int? idOfLastAsset = null, List<LootLocker.LootLockerEnums.AssetFilter> filter = null, bool includeUGC = false, Dictionary<string, string> assetFilters = null)
415416
{
416417
if (!CheckInitialized()) return;
417-
LootLockerAPIManager.GetAssetsOriginal(onComplete, assetCount, idOfLastAsset, filter);
418+
LootLockerAPIManager.GetAssetsOriginal(onComplete, assetCount, idOfLastAsset, filter, includeUGC, assetFilters);
418419
}
419420

420-
public static void GetAssetListWithCount(int assetCount, Action<LootLockerAssetResponse> onComplete)
421+
public static void GetAssetListWithCount(int assetCount, Action<LootLockerAssetResponse> onComplete, List<LootLocker.LootLockerEnums.AssetFilter> filter = null, bool includeUGC = false, Dictionary<string, string> assetFilters = null)
421422
{
422423
if (!CheckInitialized()) return;
423-
LootLockerGetRequest data = new LootLockerGetRequest();
424-
data.getRequests.Add(assetCount.ToString());
425-
LootLockerAPIManager.GetAssetListWithCount(data, onComplete);
424+
LootLockerAPIManager.GetAssetsOriginal((response) =>
425+
{
426+
if (response != null && response.assets.Length > 0)
427+
LootLockerAssetRequest.lastId = response.assets.Last()?.id != null ? response.assets.Last().id : 0;
428+
429+
onComplete?.Invoke(response);
430+
}, assetCount, null, filter, includeUGC, assetFilters);
426431
}
427432

428-
public static void GetAssetNextList(int assetCount, Action<LootLockerAssetResponse> onComplete)
433+
public static void GetAssetNextList(int assetCount, Action<LootLockerAssetResponse> onComplete, List<LootLocker.LootLockerEnums.AssetFilter> filter = null, bool includeUGC = false, Dictionary<string, string> assetFilters = null)
429434
{
430435
if (!CheckInitialized()) return;
431436

432-
if (LootLockerAssetRequest.lastId != 0)
437+
LootLockerAPIManager.GetAssetsOriginal((response) =>
433438
{
434-
LootLockerAssetRequest data = new LootLockerAssetRequest();
435-
data.count = assetCount;
436-
LootLockerAPIManager.GetAssetListWithAfterCount(data, onComplete);
437-
}
438-
else
439-
{
440-
GetAssetListWithCount(assetCount, onComplete);
441-
}
439+
if (response != null && response.assets.Length > 0)
440+
LootLockerAssetRequest.lastId = response.assets.Last()?.id != null ? response.assets.Last().id : 0;
441+
onComplete?.Invoke(response);
442+
}, assetCount, LootLockerAssetRequest.lastId, filter, includeUGC, assetFilters);
442443
}
443444

444445
public void ResetAssetCalls()

Runtime/Game/Requests/AssetRequest.cs

Lines changed: 104 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -187,55 +187,55 @@ public static void GetContext(Action<LootLockerContextResponse> onComplete)
187187
}, true);
188188
}
189189

190-
public static void GetAssetsOriginal(Action<LootLockerAssetResponse> onComplete, int assetCount, int? idOfLastAsset = null, LootLocker.LootLockerEnums.AssetFilter filter = LootLocker.LootLockerEnums.AssetFilter.none)
190+
public static void GetAssetsOriginal(Action<LootLockerAssetResponse> onComplete, int assetCount, int? idOfLastAsset = null, List<LootLocker.LootLockerEnums.AssetFilter> filter = null, bool includeUGC = false, Dictionary<string, string> assetFilters = null)
191191
{
192192
EndPointClass endPoint = LootLockerEndPoints.gettingAssetListWithCount;
193193
string getVariable = string.Format(endPoint.endPoint, assetCount);
194-
195-
if (idOfLastAsset != null && assetCount > 0)
194+
string tempEndpoint = string.Empty;
195+
string filterString = string.Empty;
196+
if (idOfLastAsset != null)
196197
{
197-
endPoint = LootLockerEndPoints.gettingAssetListWithAfterAndCount;
198-
getVariable = string.Format(endPoint.endPoint, assetCount, idOfLastAsset.ToString());
198+
tempEndpoint = $"&after={idOfLastAsset}";
199+
getVariable += tempEndpoint;
199200
}
200-
else if (idOfLastAsset != null && assetCount > 0 && filter != LootLocker.LootLockerEnums.AssetFilter.none)
201+
202+
if (filter != null)
201203
{
202-
endPoint = LootLockerEndPoints.gettingAssetListOriginal;
203-
string filterString = "";
204-
switch (filter)
204+
filterString = GetStringOfEnum(filter.First());
205+
for (int i = 1; i < filter.Count; i++)
205206
{
206-
case LootLocker.LootLockerEnums.AssetFilter.purchasable:
207-
filterString = LootLocker.LootLockerEnums.AssetFilter.purchasable.ToString();
208-
break;
209-
case LootLocker.LootLockerEnums.AssetFilter.nonpurchasable:
210-
filterString = "!purchasable";
211-
break;
212-
case LootLocker.LootLockerEnums.AssetFilter.rentable:
213-
filterString = LootLocker.LootLockerEnums.AssetFilter.rentable.ToString();
214-
break;
215-
case LootLocker.LootLockerEnums.AssetFilter.nonrentable:
216-
filterString = "!rentable";
217-
break;
218-
case LootLocker.LootLockerEnums.AssetFilter.popular:
219-
filterString = LootLocker.LootLockerEnums.AssetFilter.popular.ToString();
220-
break;
221-
case LootLocker.LootLockerEnums.AssetFilter.nonpopular:
222-
filterString = "!popular";
223-
break;
207+
filterString += "," + GetStringOfEnum(filter[i]);
224208
}
225-
getVariable = string.Format(endPoint.endPoint, assetCount, idOfLastAsset.ToString(), filterString);
209+
tempEndpoint = $"&filter={filterString}";
210+
getVariable += tempEndpoint;
211+
}
212+
213+
if (includeUGC)
214+
{
215+
tempEndpoint = $"&include_ugc={includeUGC.ToString().ToLower()}";
216+
getVariable += tempEndpoint;
226217
}
227218

219+
if (assetFilters != null)
220+
{
221+
KeyValuePair<string, string> keys = assetFilters.First();
222+
filterString = $"{keys.Key}={keys.Key}";
223+
int count = 0;
224+
foreach (var kvp in assetFilters)
225+
{
226+
if (count > 0)
227+
filterString += $";{kvp.Key}={kvp.Key}";
228+
count++;
229+
}
230+
tempEndpoint = $"&asset_filters={filterString}";
231+
getVariable += tempEndpoint;
232+
}
228233
LootLockerServerRequest.CallAPI(getVariable, endPoint.httpMethod, null, onComplete: (serverResponse) =>
229234
{
230235
LootLockerAssetResponse response = new LootLockerAssetResponse();
231236
if (string.IsNullOrEmpty(serverResponse.Error))
232-
{
233237
response = JsonConvert.DeserializeObject<LootLockerAssetResponse>(serverResponse.text);
234-
if (response != null)
235-
LootLockerAssetRequest.lastId = response.assets.Last()?.id != null ? response.assets.Last().id : 0;
236-
}
237238

238-
// LootLockerSDKManager.DebugMessage(serverResponse.text, !string.IsNullOrEmpty(serverResponse.Error));
239239
response.text = serverResponse.text;
240240
response.status = serverResponse.status;
241241
response.Error = serverResponse.Error; response.statusCode = serverResponse.statusCode;
@@ -244,53 +244,81 @@ public static void GetAssetsOriginal(Action<LootLockerAssetResponse> onComplete,
244244
}, true);
245245
}
246246

247-
public static void GetAssetListWithCount(LootLockerGetRequest data, Action<LootLockerAssetResponse> onComplete)
247+
public static string GetStringOfEnum(LootLocker.LootLockerEnums.AssetFilter filter)
248248
{
249-
EndPointClass endPoint = LootLockerEndPoints.gettingAssetListWithCount;
250-
251-
string getVariable = string.Format(endPoint.endPoint, data.getRequests[0]);
252-
253-
LootLockerServerRequest.CallAPI(getVariable, endPoint.httpMethod, null, onComplete: (serverResponse) =>
254-
{
255-
LootLockerAssetResponse response = new LootLockerAssetResponse();
256-
if (string.IsNullOrEmpty(serverResponse.Error))
257-
{
258-
response = JsonConvert.DeserializeObject<LootLockerAssetResponse>(serverResponse.text);
259-
if (response != null && response.assets.Length > 0)
260-
LootLockerAssetRequest.lastId = response.assets.Last()?.id != null ? response.assets.Last().id : 0;
261-
}
262-
263-
// LootLockerSDKManager.DebugMessage(serverResponse.text, !string.IsNullOrEmpty(serverResponse.Error));
264-
response.text = serverResponse.text;
265-
response.status = serverResponse.status;
266-
response.Error = serverResponse.Error; response.statusCode = serverResponse.statusCode;
267-
onComplete?.Invoke(response);
268-
}, true);
249+
string filterString = "";
250+
switch (filter)
251+
{
252+
case LootLocker.LootLockerEnums.AssetFilter.purchasable:
253+
filterString = LootLocker.LootLockerEnums.AssetFilter.purchasable.ToString();
254+
break;
255+
case LootLocker.LootLockerEnums.AssetFilter.nonpurchasable:
256+
filterString = "!purchasable";
257+
break;
258+
case LootLocker.LootLockerEnums.AssetFilter.rentable:
259+
filterString = LootLocker.LootLockerEnums.AssetFilter.rentable.ToString();
260+
break;
261+
case LootLocker.LootLockerEnums.AssetFilter.nonrentable:
262+
filterString = "!rentable";
263+
break;
264+
case LootLocker.LootLockerEnums.AssetFilter.popular:
265+
filterString = LootLocker.LootLockerEnums.AssetFilter.popular.ToString();
266+
break;
267+
case LootLocker.LootLockerEnums.AssetFilter.nonpopular:
268+
filterString = "!popular";
269+
break;
270+
}
271+
return filterString;
269272
}
270273

271-
public static void GetAssetListWithAfterCount(LootLockerAssetRequest data, Action<LootLockerAssetResponse> onComplete)
272-
{
273-
EndPointClass endPoint = LootLockerEndPoints.gettingAssetListWithAfterAndCount;
274-
275-
string getVariable = string.Format(endPoint.endPoint, LootLockerAssetRequest.lastId, data.count);
276-
277-
LootLockerServerRequest.CallAPI(getVariable, endPoint.httpMethod, null, onComplete: (serverResponse) =>
278-
{
279-
LootLockerAssetResponse response = new LootLockerAssetResponse();
280-
if (string.IsNullOrEmpty(serverResponse.Error))
281-
{
282-
response = JsonConvert.DeserializeObject<LootLockerAssetResponse>(serverResponse.text);
283274

284-
if (response != null && response.assets.Length > 0)
285-
LootLockerAssetRequest.lastId = response.assets.Last()?.id != null ? response.assets.Last().id : 0;
286-
}
287-
// LootLockerSDKManager.DebugMessage(serverResponse.text, !string.IsNullOrEmpty(serverResponse.Error));
288-
response.text = serverResponse.text;
289-
response.status = serverResponse.status;
290-
response.Error = serverResponse.Error; response.statusCode = serverResponse.statusCode;
291-
onComplete?.Invoke(response);
292-
}, true);
293-
}
275+
//public static void GetAssetListWithCount(LootLockerGetRequest data, Action<LootLockerAssetResponse> onComplete)
276+
//{
277+
// EndPointClass endPoint = LootLockerEndPoints.gettingAssetListWithCount;
278+
279+
// string getVariable = string.Format(endPoint.endPoint, data.getRequests[0]);
280+
281+
// LootLockerServerRequest.CallAPI(getVariable, endPoint.httpMethod, null, onComplete: (serverResponse) =>
282+
// {
283+
// LootLockerAssetResponse response = new LootLockerAssetResponse();
284+
// if (string.IsNullOrEmpty(serverResponse.Error))
285+
// {
286+
// response = JsonConvert.DeserializeObject<LootLockerAssetResponse>(serverResponse.text);
287+
// if (response != null && response.assets.Length > 0)
288+
// LootLockerAssetRequest.lastId = response.assets.Last()?.id != null ? response.assets.Last().id : 0;
289+
// }
290+
291+
// // LootLockerSDKManager.DebugMessage(serverResponse.text, !string.IsNullOrEmpty(serverResponse.Error));
292+
// response.text = serverResponse.text;
293+
// response.status = serverResponse.status;
294+
// response.Error = serverResponse.Error; response.statusCode = serverResponse.statusCode;
295+
// onComplete?.Invoke(response);
296+
// }, true);
297+
//}
298+
299+
//public static void GetAssetListWithAfterCount(LootLockerAssetRequest data, Action<LootLockerAssetResponse> onComplete)
300+
//{
301+
// EndPointClass endPoint = LootLockerEndPoints.gettingAssetListWithAfterAndCount;
302+
303+
// string getVariable = string.Format(endPoint.endPoint, LootLockerAssetRequest.lastId, data.count);
304+
305+
// LootLockerServerRequest.CallAPI(getVariable, endPoint.httpMethod, null, onComplete: (serverResponse) =>
306+
// {
307+
// LootLockerAssetResponse response = new LootLockerAssetResponse();
308+
// if (string.IsNullOrEmpty(serverResponse.Error))
309+
// {
310+
// response = JsonConvert.DeserializeObject<LootLockerAssetResponse>(serverResponse.text);
311+
312+
// if (response != null && response.assets.Length > 0)
313+
// LootLockerAssetRequest.lastId = response.assets.Last()?.id != null ? response.assets.Last().id : 0;
314+
// }
315+
// // LootLockerSDKManager.DebugMessage(serverResponse.text, !string.IsNullOrEmpty(serverResponse.Error));
316+
// response.text = serverResponse.text;
317+
// response.status = serverResponse.status;
318+
// response.Error = serverResponse.Error; response.statusCode = serverResponse.statusCode;
319+
// onComplete?.Invoke(response);
320+
// }, true);
321+
//}
294322

295323
public static void GetAssetsById(LootLockerGetRequest data, Action<LootLockerAssetResponse> onComplete)
296324
{

0 commit comments

Comments
 (0)