Skip to content

Commit e0623a4

Browse files
authored
[HOTFIX] newsfeed (#144)
* improve stacktrace for API errors * remove offending parameter * allow manually running sync * fix formatting
1 parent c97fcfb commit e0623a4

File tree

2 files changed

+30
-2
lines changed

2 files changed

+30
-2
lines changed

.github/workflows/sync.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ on:
1111
branches: ["master"]
1212
schedule:
1313
- cron: '0 0 * * *'
14+
workflow_dispatch:
1415

1516
jobs:
1617
validate-sync:

src/Helldivers-2-Sync/Services/ArrowHeadApiService.cs

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ HttpClient http
2222
{
2323
var request = BuildRequest("/api/WarSeason/current/WarID");
2424
using var response = await http.SendAsync(request, cancellationToken);
25+
26+
// Throw on error responses so we don't have to look down the entire serialisation tree.
27+
response.EnsureSuccessStatusCode();
28+
2529
await using var stream = await response.Content.ReadAsStreamAsync(cancellationToken);
2630
var memory = await CollectStream(stream, cancellationToken);
2731
var warId = JsonSerializer.Deserialize(
@@ -39,6 +43,10 @@ public async Task<Memory<byte>> GetWarInfo(string season, CancellationToken canc
3943
{
4044
var request = BuildRequest($"/api/WarSeason/{season}/WarInfo");
4145
using var response = await http.SendAsync(request, cancellationToken);
46+
47+
// Throw on error responses so we don't have to look down the entire serialisation tree.
48+
response.EnsureSuccessStatusCode();
49+
4250
await using var stream = await response.Content.ReadAsStreamAsync(cancellationToken);
4351

4452
return await CollectStream(stream, cancellationToken);
@@ -51,6 +59,10 @@ public async Task<Memory<byte>> GetWarStatus(string season, string language, Can
5159
{
5260
var request = BuildRequest($"/api/WarSeason/{season}/Status", language);
5361
using var response = await http.SendAsync(request, cancellationToken);
62+
63+
// Throw on error responses so we don't have to look down the entire serialisation tree.
64+
response.EnsureSuccessStatusCode();
65+
5466
await using var stream = await response.Content.ReadAsStreamAsync(cancellationToken);
5567

5668
return await CollectStream(stream, cancellationToken);
@@ -61,10 +73,13 @@ public async Task<Memory<byte>> GetWarStatus(string season, string language, Can
6173
/// </summary>
6274
public async Task<Memory<byte>> LoadFeed(string season, string language, CancellationToken cancellationToken)
6375
{
64-
var request = BuildRequest($"/api/NewsFeed/{season}?maxEntries=1024", language);
76+
var request = BuildRequest($"/api/NewsFeed/{season}", language);
6577
using var response = await http.SendAsync(request, cancellationToken);
66-
await using var stream = await response.Content.ReadAsStreamAsync(cancellationToken);
6778

79+
// Throw on error responses so we don't have to look down the entire serialisation tree.
80+
response.EnsureSuccessStatusCode();
81+
82+
await using var stream = await response.Content.ReadAsStreamAsync(cancellationToken);
6883
return await CollectStream(stream, cancellationToken);
6984
}
7085

@@ -75,6 +90,10 @@ public async Task<Memory<byte>> LoadAssignments(string season, string language,
7590
{
7691
var request = BuildRequest($"/api/v2/Assignment/War/{season}", language);
7792
using var response = await http.SendAsync(request, cancellationToken);
93+
94+
// Throw on error responses so we don't have to look down the entire serialisation tree.
95+
response.EnsureSuccessStatusCode();
96+
7897
await using var stream = await response.Content.ReadAsStreamAsync(cancellationToken);
7998

8099
return await CollectStream(stream, cancellationToken);
@@ -87,6 +106,10 @@ public async Task<Memory<byte>> LoadSpaceStations(string season, long id, string
87106
{
88107
var request = BuildRequest($"/api/SpaceStation/{season}/{id}", language);
89108
using var response = await http.SendAsync(request, cancellationToken);
109+
110+
// Throw on error responses so we don't have to look down the entire serialisation tree.
111+
response.EnsureSuccessStatusCode();
112+
90113
await using var stream = await response.Content.ReadAsStreamAsync(cancellationToken);
91114

92115
return await CollectStream(stream, cancellationToken);
@@ -99,6 +122,10 @@ public async Task<Memory<byte>> GetSummary(string season, CancellationToken canc
99122
{
100123
var request = BuildRequest($"/api/Stats/war/{season}/summary");
101124
using var response = await http.SendAsync(request, cancellationToken);
125+
126+
// Throw on error responses so we don't have to look down the entire serialisation tree.
127+
response.EnsureSuccessStatusCode();
128+
102129
await using var stream = await response.Content.ReadAsStreamAsync(cancellationToken);
103130

104131
return await CollectStream(stream, cancellationToken);

0 commit comments

Comments
 (0)