mirror of
https://github.com/osukey/osukey.git
synced 2025-08-08 00:53:56 +09:00
Add API level support for error message and redirect during registration flow
This commit is contained in:
@ -329,7 +329,29 @@ namespace osu.Game.Online.API
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return JObject.Parse(req.GetResponseString().AsNonNull()).SelectToken("form_error", true).AsNonNull().ToObject<RegistrationRequest.RegistrationRequestErrors>();
|
return JObject.Parse(req.GetResponseString().AsNonNull()).SelectToken(@"form_error", true).AsNonNull().ToObject<RegistrationRequest.RegistrationRequestErrors>();
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// attempt to parse a non-form error message
|
||||||
|
var response = JObject.Parse(req.GetResponseString().AsNonNull());
|
||||||
|
|
||||||
|
string redirect = (string)response.SelectToken(@"url", true);
|
||||||
|
string message = (string)response.SelectToken(@"error", false);
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(redirect))
|
||||||
|
{
|
||||||
|
return new RegistrationRequest.RegistrationRequestErrors
|
||||||
|
{
|
||||||
|
Redirect = redirect,
|
||||||
|
Message = message,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// if we couldn't deserialize the error message let's throw the original exception outwards.
|
||||||
|
e.Rethrow();
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
@ -337,6 +359,7 @@ namespace osu.Game.Online.API
|
|||||||
e.Rethrow();
|
e.Rethrow();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,16 @@ namespace osu.Game.Online.API
|
|||||||
|
|
||||||
public class RegistrationRequestErrors
|
public class RegistrationRequestErrors
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// An optional error message.
|
||||||
|
/// </summary>
|
||||||
|
public string? Message;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// An optional URL which the user should be directed towards to complete registration.
|
||||||
|
/// </summary>
|
||||||
|
public string? Redirect;
|
||||||
|
|
||||||
public UserErrors? User;
|
public UserErrors? User;
|
||||||
|
|
||||||
public class UserErrors
|
public class UserErrors
|
||||||
|
Reference in New Issue
Block a user