Commit Graph

65 Commits

Author SHA1 Message Date
974987550f Move API request response size log to correct logging target 2021-12-07 04:01:56 +03:00
23e297d414 Log output response sizes
Visibility is the first step towards action. Or something.
2021-11-30 19:09:13 +09:00
0ecf5f201c Rename User to APIUser and move to correct namespace 2021-11-07 11:26:01 +09:00
51e92e1b2d Check for null/empty instead 2021-11-03 04:09:31 +09:00
8d0b32981f Fix unauthenticated API requests no longer working 2021-11-03 03:30:15 +09:00
b41fa41c85 Rename APIRequest.Result to Response 2021-10-05 14:28:56 +09:00
a6b7ca1a4c Ensure all request failures are correctly handled during login 2021-08-19 19:55:14 +09:00
3a5324c947 Fix aborting an APIRequest potentially resulting in incorrect success 2021-07-29 13:01:52 +09:00
1ed4fdd5f5 Avoid deserialisation JSON request content when error is not present (or not relevant) 2021-07-28 20:13:40 +09:00
57e5f5575a Fix derived API request types firing success when they shouldn't
The usual case of `virtual`/`override` being dangerous when logic is
added to the base implementation. As such, I've removed this completely.
2021-07-22 14:23:27 +09:00
80c2b1449b Fix API request potentially firing failed events after completion
Specifically, `Cancel()` calls were not thread safe. Due to a series of
events, `ListPollingComponent` could call `Cancel` from a non-update
thread, leading to a race condition where both a `Success` and `Fail`
event can be fired.

This is intended to be the simplest fix possible, locking and guarding
specifically on the callbacks. Further work could be done in the future
to improve the flow surrounding `pendingFailure`, potentially reducing
redundant work and cleaning up the code, but that's not happening here.

Closes https://github.com/ppy/osu/issues/13632.
2021-07-19 20:27:01 +09:00
ce452565f4 Avoid firing any kind of failures after success 2021-03-23 17:50:31 +09:00
f5ba746ae5 Fail all API requests sent to DummyAPIAccess
Until now, API requests sent to dummy API were just lost in the void. In most cases this somehow worked as expected, but any logic which is waiting on a request to finish will potentially never get a response.

Going forward, I'm not 100% sure that every `Wait` on a web response will have local timeout logic (I think there is a certain amount of assumption that this is being managed for us by `APIAccess`), so I've made this change to better handle such cases going forward. Now, rather than nothing happening, requests will trigger a failure via the existing exception logic rather than silently pretending the request never arrived.
2021-03-23 17:37:45 +09:00
323da82477 Add website root URL and update most links to use it
For what it's worth, I intentionally didn't include news / changelog /
supporter, because these should never change.
2020-12-24 18:11:42 +09:00
8e8a11bb72 Add APIRequest.TriggerFailure() for testing 2020-07-31 20:55:26 +09:00
7fe69bb199 Fix some web requests retrieving the user too early 2020-07-14 13:07:17 +09:00
0e2ccac33b Add spaces to comments 2020-05-04 18:36:24 -07:00
801f02a3d7 Fix inline executions of APIRequest.Perform not getting result populated early enough 2020-04-20 17:48:02 +09:00
1c8a71b284 Exception instead of assert 2020-04-13 21:24:47 +09:00
c96df97586 Add support for non-generic requests 2020-04-11 18:02:49 +09:00
415adecdf6 Add support for Result fetching 2020-04-11 18:02:43 +09:00
832822858c Add basic request / response support 2020-04-11 17:48:23 +09:00
7ecce713bb Keep provided IDs where possible if not online 2020-03-30 15:07:39 +09:00
2187523bf3 Fix json web requests having incorrect user agents 2020-01-17 19:21:27 +09:00
0d8b4e7c3e Fix user agent missing in registration 2020-01-16 12:51:43 +09:00
e8bcb52612 Set UserAgent for API requests 2019-12-28 18:07:55 +03:00
d7b3578cc6 CA2201: throw correct exception type. 2019-12-17 13:00:02 +08:00
45514ff660 Apply fixes 2019-11-25 11:30:55 +09:00
19dfbb0a45 Update obsolete usages 2019-11-21 10:55:31 +09:00
58df6930b2 Get error message from server 2019-11-12 19:34:20 +09:00
c83db94eb7 Use isolated storage/api 2019-09-25 15:00:08 +09:00
90acc9b6ca Avoid calling api request callback after user cancel 2019-06-25 13:52:43 +09:00
f0114d776d Use interface to access API
Allows for better testability.
2019-03-13 12:58:18 +09:00
26d53d06a9 Fix remaining issues 2019-02-28 13:31:40 +09:00
8617aaa2a7 Update licence header (and remove year) 2019-01-24 17:43:03 +09:00
bfbd7e5106 Merge remote-tracking branch 'upstream/master' into timeshift-wip 2018-12-26 22:42:24 +09:00
bee4e8ad28 Fix cancelled webrequests triggering exceptions 2018-12-26 21:17:10 +09:00
5d59a1ffca Merge remote-tracking branch 'origin/master' into timeshift-wip
# Conflicts:
#	osu.Game.Tests/Visual/TestCasePollingComponent.cs
#	osu.Game/Online/API/APIRequest.cs
#	osu.Game/osu.Game.csproj
2018-12-21 12:51:31 +09:00
6088612a26 Remove all retry logic and simplify overall handling of API requests 2018-12-18 20:20:17 +09:00
87ebb00f1c Make Target abstract (should absolutely always be set) 2018-12-12 19:03:27 +09:00
21c8ef576c Expose result for synchronous consumption 2018-06-08 14:37:48 +09:00
b265f02d56 Add comment about scheduled invocation 2018-06-08 14:37:27 +09:00
645f6efce7 Fix web request failures not being correctly handled at an APIRequest level 2018-06-03 13:01:52 +09:00
32a74f95a5 Normalize all the line endings 2018-04-13 18:26:38 +09:00
ce2997419a Expose API scheduling internally 2018-03-14 11:37:50 +09:00
e0d28564d0 Move import logic to shared implementation 2018-02-15 14:22:39 +09:00
37d393bca0 Update licence headers 2018-01-05 20:21:19 +09:00
cd5324f1d1 Update API code to use the new Add* methods on requests 2017-10-30 21:33:44 +09:00
f94505243d Use AllowRetryOnTimeout where to maintain previous functionality 2017-10-30 17:28:53 +09:00
b59401357e Remove singular RetryCount usage, update framework 2017-10-27 12:53:08 +09:00