mirror of
https://github.com/ppy/osu.git
synced 2024-11-11 12:57:36 +08:00
Reimplement cursor as part of WebRequest extensions
> Added WebRequestExtensions > Moved Cursor request logic from SearchBeatmapSetsRequest
This commit is contained in:
parent
cabf3a89b1
commit
5962dedd35
25
osu.Game/Extensions/WebRequestExtensions.cs
Normal file
25
osu.Game/Extensions/WebRequestExtensions.cs
Normal file
@ -0,0 +1,25 @@
|
||||
using osu.Framework.IO.Network;
|
||||
using osu.Framework.Extensions.IEnumerableExtensions;
|
||||
using System.Collections.Generic;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
namespace osu.Game.Extensions
|
||||
{
|
||||
public class Cursor
|
||||
{
|
||||
[JsonExtensionData]
|
||||
public IDictionary<string, JToken> Properties;
|
||||
}
|
||||
|
||||
public static class WebRequestExtensions
|
||||
{
|
||||
public static void AddCursor(this WebRequest webRequest, Cursor cursor)
|
||||
{
|
||||
cursor?.Properties.ForEach(x =>
|
||||
{
|
||||
webRequest.AddParameter("cursor[" + x.Key + "]", x.Value.ToString());
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
@ -2,24 +2,15 @@
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using osu.Framework.IO.Network;
|
||||
using osu.Framework.Extensions.IEnumerableExtensions;
|
||||
using osu.Game.Extensions;
|
||||
using osu.Game.Overlays;
|
||||
using osu.Game.Overlays.BeatmapListing;
|
||||
using osu.Game.Rulesets;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace osu.Game.Online.API.Requests
|
||||
{
|
||||
public class SearchBeatmapSetsRequest : APIRequest<SearchBeatmapSetsResponse>
|
||||
{
|
||||
public class Cursor
|
||||
{
|
||||
[JsonExtensionData]
|
||||
public IDictionary<string, JToken> Properties;
|
||||
}
|
||||
|
||||
public SearchCategory SearchCategory { get; set; }
|
||||
|
||||
public SortCriteria SortCriteria { get; set; }
|
||||
@ -68,10 +59,7 @@ namespace osu.Game.Online.API.Requests
|
||||
|
||||
req.AddParameter("sort", $"{SortCriteria.ToString().ToLowerInvariant()}_{directionString}");
|
||||
|
||||
cursor?.Properties.ForEach(x =>
|
||||
{
|
||||
req.AddParameter("cursor[" + x.Key + "]", x.Value?.ToString());
|
||||
});
|
||||
req.AddCursor(cursor);
|
||||
|
||||
return req;
|
||||
}
|
||||
|
@ -3,11 +3,12 @@
|
||||
|
||||
using System.Collections.Generic;
|
||||
using Newtonsoft.Json;
|
||||
using osu.Game.Extensions;
|
||||
using osu.Game.Online.API.Requests.Responses;
|
||||
|
||||
namespace osu.Game.Online.API.Requests
|
||||
{
|
||||
public class SearchBeatmapSetsResponse : ResponseWithCursor<SearchBeatmapSetsRequest.Cursor>
|
||||
public class SearchBeatmapSetsResponse : ResponseWithCursor<Cursor>
|
||||
{
|
||||
[JsonProperty("beatmapsets")]
|
||||
public IEnumerable<APIBeatmapSet> BeatmapSets;
|
||||
|
Loading…
Reference in New Issue
Block a user