From c024fc5a2ea0ca54c90d4dcb52bd15e80d4019dd Mon Sep 17 00:00:00 2001 From: Bobby Galli Date: Fri, 9 Jun 2023 14:55:55 -0400 Subject: [PATCH] feat: add batch reprocess support --- src/crash/crash-api-client/crash-api-client.spec.ts | 2 +- src/crash/crash-api-client/crash-api-client.ts | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/crash/crash-api-client/crash-api-client.spec.ts b/src/crash/crash-api-client/crash-api-client.spec.ts index c22b134..dd42b64 100644 --- a/src/crash/crash-api-client/crash-api-client.spec.ts +++ b/src/crash/crash-api-client/crash-api-client.spec.ts @@ -166,7 +166,7 @@ describe('CrashApiClient', () => { await client.reprocessCrash(database, 0); fail('reprocessCrash was supposed to throw!'); } catch (error: any) { - expect(error.message).toMatch(/to be a positive non-zero number/); + expect(error.message).toMatch(/to be positive non-zero numbers/); } }); }); diff --git a/src/crash/crash-api-client/crash-api-client.ts b/src/crash/crash-api-client/crash-api-client.ts index 839825f..d62bbb8 100644 --- a/src/crash/crash-api-client/crash-api-client.ts +++ b/src/crash/crash-api-client/crash-api-client.ts @@ -37,15 +37,22 @@ export class CrashApiClient { } async reprocessCrash(database: string, crashId: number, force = false, processor = ''): Promise { + return this.reprocessCrashes(database, [crashId], force, processor); + } + + async reprocessCrashes(database: string, crashIds: Array, force = false, processor = ''): Promise { ac.assertNonWhiteSpaceString(database, 'database'); ac.assertBoolean(force, 'force'); - if (crashId <= 0) { - throw new Error(`Expected id to be a positive non-zero number. Value received: "${crashId}"`); + + for (const crashId of crashIds) { + if (crashId <= 0) { + throw new Error(`Expected ids to be positive non-zero numbers. Value received: "${crashId}"`); + } } const formData = this._client.createFormData(); formData.append('database', database); - formData.append('id', crashId.toString()); + formData.append('id', crashIds.join(',')); formData.append('force', force.toString()); if (processor) { formData.append('processor', processor);