Skip to content

Commit ea6f869

Browse files
committed
Additional error handling for bad responses
1 parent 6a35518 commit ea6f869

3 files changed

Lines changed: 105 additions & 27 deletions

File tree

extension/dst/chestManagement.js

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -110,10 +110,13 @@ var IdleChampionsApi = (function () {
110110
case 1:
111111
response = _a.sent();
112112
if (!response.ok) return [3, 3];
113-
return [4, response.json()];
113+
return [4, IdleChampionsApi.tryToJson(response)];
114114
case 2:
115115
serverDefs = _a.sent();
116-
return [2, serverDefs.play_server + "post.php"];
116+
if (serverDefs) {
117+
return [2, serverDefs.play_server + "post.php"];
118+
}
119+
_a.label = 3;
117120
case 3: return [2, undefined];
118121
}
119122
});
@@ -141,11 +144,10 @@ var IdleChampionsApi = (function () {
141144
case 1:
142145
response = _a.sent();
143146
if (!response.ok) return [3, 3];
144-
return [4, response.json()];
147+
return [4, IdleChampionsApi.tryToJson(response)];
145148
case 2:
146149
redeemResponse = _a.sent();
147150
if (!redeemResponse) {
148-
console.error("No json response");
149151
return [2, new GenericResponse(ResponseStatus.Failed)];
150152
}
151153
console.debug(redeemResponse);
@@ -203,10 +205,10 @@ var IdleChampionsApi = (function () {
203205
case 1:
204206
response = _a.sent();
205207
if (!response.ok) return [3, 3];
206-
return [4, response.json()];
208+
return [4, IdleChampionsApi.tryToJson(response)];
207209
case 2:
208210
playerData = _a.sent();
209-
if (playerData.success) {
211+
if (playerData === null || playerData === void 0 ? void 0 : playerData.success) {
210212
return [2, playerData];
211213
}
212214
_a.label = 3;
@@ -240,9 +242,12 @@ var IdleChampionsApi = (function () {
240242
case 1:
241243
response = _a.sent();
242244
if (!response.ok) return [3, 3];
243-
return [4, response.json()];
245+
return [4, IdleChampionsApi.tryToJson(response)];
244246
case 2:
245247
openGenericChestResponse = _a.sent();
248+
if (!openGenericChestResponse) {
249+
return [2, new GenericResponse(ResponseStatus.Failed)];
250+
}
246251
console.debug(openGenericChestResponse);
247252
if (openGenericChestResponse.switch_play_server) {
248253
return [2, new GenericResponse(ResponseStatus.SwitchServer, openGenericChestResponse.switch_play_server)];
@@ -283,9 +288,12 @@ var IdleChampionsApi = (function () {
283288
case 1:
284289
response = _a.sent();
285290
if (!response.ok) return [3, 3];
286-
return [4, response.json()];
291+
return [4, IdleChampionsApi.tryToJson(response)];
287292
case 2:
288293
purchaseResponse = _a.sent();
294+
if (!purchaseResponse) {
295+
return [2, new GenericResponse(ResponseStatus.Failed)];
296+
}
289297
console.debug(purchaseResponse);
290298
if (purchaseResponse.switch_play_server) {
291299
return [2, new GenericResponse(ResponseStatus.SwitchServer, purchaseResponse.switch_play_server)];
@@ -326,9 +334,12 @@ var IdleChampionsApi = (function () {
326334
case 1:
327335
response = _a.sent();
328336
if (!response.ok) return [3, 3];
329-
return [4, response.json()];
337+
return [4, IdleChampionsApi.tryToJson(response)];
330338
case 2:
331339
useServerBuffResponse = _a.sent();
340+
if (!useServerBuffResponse) {
341+
return [2, new GenericResponse(ResponseStatus.Failed)];
342+
}
332343
console.debug(useServerBuffResponse);
333344
if (useServerBuffResponse.switch_play_server) {
334345
return [2, new GenericResponse(ResponseStatus.SwitchServer, useServerBuffResponse.switch_play_server)];
@@ -345,6 +356,24 @@ var IdleChampionsApi = (function () {
345356
});
346357
});
347358
};
359+
IdleChampionsApi.tryToJson = function (response) {
360+
return __awaiter(this, void 0, void 0, function () {
361+
var e_1;
362+
return __generator(this, function (_a) {
363+
switch (_a.label) {
364+
case 0:
365+
_a.trys.push([0, 2, , 3]);
366+
return [4, response.json()];
367+
case 1: return [2, _a.sent()];
368+
case 2:
369+
e_1 = _a.sent();
370+
console.error(e_1);
371+
return [2, null];
372+
case 3: return [2];
373+
}
374+
});
375+
});
376+
};
348377
IdleChampionsApi.CLIENT_VERSION = "999";
349378
IdleChampionsApi.NETWORK_ID = "21";
350379
IdleChampionsApi.LANGUAGE_ID = "1";

extension/service_worker.js

Lines changed: 38 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/shared/idle_champions_api.ts

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,10 @@ class IdleChampionsApi {
122122

123123
const response = await fetch(request.toString())
124124
if(response.ok){
125-
const serverDefs : ServerDefinitions = await response.json()
126-
return serverDefs.play_server + "post.php"
125+
const serverDefs : ServerDefinitions = await IdleChampionsApi.tryToJson(response)
126+
if(serverDefs){
127+
return serverDefs.play_server + "post.php"
128+
}
127129
}
128130
return undefined
129131
}
@@ -157,9 +159,8 @@ class IdleChampionsApi {
157159

158160
const response = await fetch(request.toString())
159161
if(response.ok){
160-
const redeemResponse : RedeemCodeResponse = await response.json()
162+
const redeemResponse : RedeemCodeResponse = await IdleChampionsApi.tryToJson(response)
161163
if(!redeemResponse){
162-
console.error("No json response")
163164
return new GenericResponse(ResponseStatus.Failed)
164165
}
165166
console.debug(redeemResponse)
@@ -224,8 +225,8 @@ class IdleChampionsApi {
224225

225226
const response = await fetch(request.toString())
226227
if(response.ok){
227-
const playerData : PlayerData = await response.json()
228-
if(playerData.success){
228+
const playerData : PlayerData = await IdleChampionsApi.tryToJson(response)
229+
if(playerData?.success){
229230
return playerData
230231
}
231232
}
@@ -263,7 +264,10 @@ class IdleChampionsApi {
263264

264265
const response = await fetch(request.toString())
265266
if(response.ok){
266-
const openGenericChestResponse : OpenGenericChestResponse = await response.json()
267+
const openGenericChestResponse : OpenGenericChestResponse = await IdleChampionsApi.tryToJson(response)
268+
if(!openGenericChestResponse){
269+
return new GenericResponse(ResponseStatus.Failed)
270+
}
267271
console.debug(openGenericChestResponse)
268272
if(openGenericChestResponse.switch_play_server){
269273
return new GenericResponse(ResponseStatus.SwitchServer, openGenericChestResponse.switch_play_server)
@@ -311,7 +315,10 @@ class IdleChampionsApi {
311315

312316
const response = await fetch(request.toString())
313317
if(response.ok){
314-
const purchaseResponse : PurchaseChestResponse = await response.json()
318+
const purchaseResponse : PurchaseChestResponse = await IdleChampionsApi.tryToJson(response)
319+
if(!purchaseResponse){
320+
return new GenericResponse(ResponseStatus.Failed)
321+
}
315322
console.debug(purchaseResponse)
316323
if(purchaseResponse.switch_play_server){
317324
return new GenericResponse(ResponseStatus.SwitchServer, purchaseResponse.switch_play_server)
@@ -345,7 +352,10 @@ class IdleChampionsApi {
345352

346353
const response = await fetch(request.toString())
347354
if(response.ok){
348-
const useServerBuffResponse : UseServerBuffResponse = await response.json()
355+
const useServerBuffResponse : UseServerBuffResponse = await IdleChampionsApi.tryToJson(response)
356+
if(!useServerBuffResponse){
357+
return new GenericResponse(ResponseStatus.Failed)
358+
}
349359
console.debug(useServerBuffResponse)
350360
if(useServerBuffResponse.switch_play_server){
351361
return new GenericResponse(ResponseStatus.SwitchServer, useServerBuffResponse.switch_play_server)
@@ -359,4 +369,14 @@ class IdleChampionsApi {
359369
}
360370
return new GenericResponse(ResponseStatus.Failed)
361371
}
372+
373+
static async tryToJson(response: Response) : Promise<any> {
374+
try{
375+
return await response.json()
376+
}
377+
catch(e){
378+
console.error(e)
379+
return null
380+
}
381+
}
362382
}

0 commit comments

Comments
 (0)