mirror of
https://github.com/osukey/osukey.git
synced 2025-07-03 01:09:57 +09:00
Merge pull request #19137 from frenzibyte/country-enum
Replace `Country` class with enumeration
This commit is contained in:
@ -5,6 +5,7 @@
|
||||
|
||||
using osu.Framework.IO.Network;
|
||||
using osu.Game.Rulesets;
|
||||
using osu.Game.Users;
|
||||
|
||||
namespace osu.Game.Online.API.Requests
|
||||
{
|
||||
@ -12,21 +13,21 @@ namespace osu.Game.Online.API.Requests
|
||||
{
|
||||
public readonly UserRankingsType Type;
|
||||
|
||||
private readonly string country;
|
||||
private readonly CountryCode countryCode;
|
||||
|
||||
public GetUserRankingsRequest(RulesetInfo ruleset, UserRankingsType type = UserRankingsType.Performance, int page = 1, string country = null)
|
||||
public GetUserRankingsRequest(RulesetInfo ruleset, UserRankingsType type = UserRankingsType.Performance, int page = 1, CountryCode countryCode = CountryCode.Unknown)
|
||||
: base(ruleset, page)
|
||||
{
|
||||
Type = type;
|
||||
this.country = country;
|
||||
this.countryCode = countryCode;
|
||||
}
|
||||
|
||||
protected override WebRequest CreateWebRequest()
|
||||
{
|
||||
var req = base.CreateWebRequest();
|
||||
|
||||
if (country != null)
|
||||
req.AddParameter("country", country);
|
||||
if (countryCode != CountryCode.Unknown)
|
||||
req.AddParameter("country", countryCode.ToString());
|
||||
|
||||
return req;
|
||||
}
|
||||
|
@ -34,8 +34,19 @@ namespace osu.Game.Online.API.Requests.Responses
|
||||
[JsonProperty(@"previous_usernames")]
|
||||
public string[] PreviousUsernames;
|
||||
|
||||
private CountryCode? countryCode;
|
||||
|
||||
public CountryCode CountryCode
|
||||
{
|
||||
get => countryCode ??= (Enum.TryParse(country?.Code, out CountryCode result) ? result : default);
|
||||
set => countryCode = value;
|
||||
}
|
||||
|
||||
#pragma warning disable 649
|
||||
[CanBeNull]
|
||||
[JsonProperty(@"country")]
|
||||
public Country Country;
|
||||
private Country country;
|
||||
#pragma warning restore 649
|
||||
|
||||
public readonly Bindable<UserStatus> Status = new Bindable<UserStatus>();
|
||||
|
||||
@ -256,5 +267,13 @@ namespace osu.Game.Online.API.Requests.Responses
|
||||
public int OnlineID => Id;
|
||||
|
||||
public bool Equals(APIUser other) => this.MatchesOnlineID(other);
|
||||
|
||||
#pragma warning disable 649
|
||||
private class Country
|
||||
{
|
||||
[JsonProperty(@"code")]
|
||||
public string Code;
|
||||
}
|
||||
#pragma warning restore 649
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user