// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using osu.Game.Users; using osu.Game.Rulesets; namespace osu.Game.Online.API.Requests { public class GetUserRequest : APIRequest { private readonly string lookup; public readonly RulesetInfo Ruleset; private readonly LookupType lookupType; /// /// Gets the currently logged-in user. /// public GetUserRequest() { } /// /// Gets a user from their ID. /// /// The user to get. /// The ruleset to get the user's info for. public GetUserRequest(long? userId = null, RulesetInfo ruleset = null) { lookup = userId.ToString(); lookupType = LookupType.Id; Ruleset = ruleset; } /// /// Gets a user from their username. /// /// The user to get. /// The ruleset to get the user's info for. public GetUserRequest(string username = null, RulesetInfo ruleset = null) { lookup = username; lookupType = LookupType.Username; Ruleset = ruleset; } protected override string Target => lookup != null ? $@"users/{lookup}/{Ruleset?.ShortName}?k={lookupType.ToString().ToLower()}" : $@"me/{Ruleset?.ShortName}"; private enum LookupType { Id, Username } } }