mirror of
https://github.com/osukey/osukey.git
synced 2025-07-01 00:09:55 +09:00
Use interface to access API
Allows for better testability.
This commit is contained in:
@ -61,9 +61,12 @@ namespace osu.Game.Online.API
|
||||
|
||||
private Action pendingFailure;
|
||||
|
||||
public void Perform(APIAccess api)
|
||||
public void Perform(IAPIProvider api)
|
||||
{
|
||||
API = api;
|
||||
if (!(api is APIAccess apiAccess))
|
||||
throw new NotSupportedException($"A {nameof(APIAccess)} is required to perform requests.");
|
||||
|
||||
API = apiAccess;
|
||||
|
||||
if (checkAndScheduleFailure())
|
||||
return;
|
||||
@ -71,7 +74,7 @@ namespace osu.Game.Online.API
|
||||
WebRequest = CreateWebRequest();
|
||||
WebRequest.Failed += Fail;
|
||||
WebRequest.AllowRetryOnTimeout = false;
|
||||
WebRequest.AddHeader("Authorization", $"Bearer {api.AccessToken}");
|
||||
WebRequest.AddHeader("Authorization", $"Bearer {API.AccessToken}");
|
||||
|
||||
if (checkAndScheduleFailure())
|
||||
return;
|
||||
@ -85,7 +88,7 @@ namespace osu.Game.Online.API
|
||||
if (checkAndScheduleFailure())
|
||||
return;
|
||||
|
||||
api.Schedule(delegate { Success?.Invoke(); });
|
||||
API.Schedule(delegate { Success?.Invoke(); });
|
||||
}
|
||||
|
||||
public void Cancel() => Fail(new OperationCanceledException(@"Request cancelled"));
|
||||
|
Reference in New Issue
Block a user