Skip to content

Commit 6fd8651

Browse files
author
Sankeerth
authored
Revert "fix: improve error handling for webhook v2" (#4063)
2 parents d795830 + 6d29785 commit 6fd8651

File tree

12 files changed

+24
-77
lines changed

12 files changed

+24
-77
lines changed

src/constants/index.js

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,6 @@ const HTTP_CUSTOM_STATUS_CODES = {
5555
FILTERED: 298,
5656
};
5757

58-
const ErrorMessages = {
59-
JSONParseError: 'Malformed JSON in request body',
60-
};
61-
6258
module.exports = {
6359
EventType,
6460
GENERIC_TRUE_VALUES,
@@ -68,5 +64,4 @@ module.exports = {
6864
TraitsMapping,
6965
WhiteListedTraits,
7066
HTTP_CUSTOM_STATUS_CODES,
71-
ErrorMessages,
7267
};
Lines changed: 10 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,17 @@
1-
import { TransformationError } from '@rudderstack/integrations-lib';
21
import { SourceInputConversionResult, SourceInputV2 } from '../../../types';
32
import { VersionConversionStrategy } from './abstractions';
4-
import { ErrorMessages } from '../../../constants';
53

64
export class StrategyV2ToV0 extends VersionConversionStrategy<SourceInputV2, NonNullable<unknown>> {
75
convert(sourceEvents: SourceInputV2[]): SourceInputConversionResult<NonNullable<unknown>>[] {
8-
return sourceEvents.map((sourceEvent) => this.convertSingleEvent(sourceEvent));
9-
}
10-
11-
private convertSingleEvent(
12-
sourceEvent: SourceInputV2,
13-
): SourceInputConversionResult<NonNullable<unknown>> {
14-
try {
15-
const v0Event = this.parseRequestBody(sourceEvent.request.body);
16-
return { output: v0Event };
17-
} catch (err) {
18-
const conversionError =
19-
err instanceof TransformationError ? err : new Error('error converting v2 to v0 spec');
20-
21-
return { conversionError };
22-
}
23-
}
24-
25-
private parseRequestBody(body: string): NonNullable<unknown> {
26-
try {
27-
return JSON.parse(body);
28-
} catch (err) {
29-
throw new TransformationError(ErrorMessages.JSONParseError);
30-
}
6+
return sourceEvents.map((sourceEvent) => {
7+
try {
8+
const v0Event = JSON.parse(sourceEvent.request.body);
9+
return { output: v0Event };
10+
} catch (err) {
11+
const conversionError =
12+
err instanceof Error ? err : new Error('error converting v2 to v0 spec');
13+
return { conversionError };
14+
}
15+
});
3116
}
3217
}
Lines changed: 10 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,17 @@
1-
import { TransformationError } from '@rudderstack/integrations-lib';
21
import { SourceInput, SourceInputConversionResult, SourceInputV2 } from '../../../types';
32
import { VersionConversionStrategy } from './abstractions';
43

54
export class StrategyV2ToV1 extends VersionConversionStrategy<SourceInputV2, SourceInput> {
65
convert(sourceEvents: SourceInputV2[]): SourceInputConversionResult<SourceInput>[] {
7-
return sourceEvents.map((sourceEvent) => this.convertSingleEvent(sourceEvent));
8-
}
9-
10-
private convertSingleEvent(sourceEvent: SourceInputV2): SourceInputConversionResult<SourceInput> {
11-
try {
12-
const v1Event = {
13-
event: this.parseRequestBody(sourceEvent.request.body),
14-
source: sourceEvent.source,
15-
};
16-
return { output: v1Event };
17-
} catch (err) {
18-
const conversionError =
19-
err instanceof TransformationError ? err : new Error('error converting v2 to v1 spec');
20-
return { conversionError };
21-
}
22-
}
23-
24-
private parseRequestBody(body: string): NonNullable<unknown> {
25-
try {
26-
return JSON.parse(body);
27-
} catch (err) {
28-
throw new TransformationError('Malformed JSON in request body');
29-
}
6+
return sourceEvents.map((sourceEvent) => {
7+
try {
8+
const v1Event = { event: JSON.parse(sourceEvent.request.body), source: sourceEvent.source };
9+
return { output: v1Event };
10+
} catch (err) {
11+
const conversionError =
12+
err instanceof Error ? err : new Error('error converting v2 to v1 spec');
13+
return { conversionError };
14+
}
15+
});
3016
}
3117
}

src/controllers/util/index.test.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { TransformationError } from '@rudderstack/integrations-lib';
2-
import { ErrorMessages } from '../../constants';
31
import {
42
Destination,
53
Metadata,
@@ -224,7 +222,7 @@ describe('adaptInputToVersion', () => {
224222
implementationVersion: 'v0',
225223
input: [
226224
{
227-
conversionError: new TransformationError(ErrorMessages.JSONParseError),
225+
conversionError: new SyntaxError('Unexpected end of JSON input'),
228226
},
229227
],
230228
};
@@ -323,7 +321,7 @@ describe('adaptInputToVersion', () => {
323321
implementationVersion: 'v1',
324322
input: [
325323
{
326-
conversionError: new TransformationError(ErrorMessages.JSONParseError),
324+
conversionError: new SyntaxError('Unexpected end of JSON input'),
327325
},
328326
],
329327
};

src/services/source/nativeIntegration.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { FetchHandler } from '../../helpers/fetchHandlers';
22
import { SourceService } from '../../interfaces/SourceService';
33
import {
44
ErrorDetailer,
5-
ErrorDetailerOptions,
65
MetaTransferObject,
76
RudderMessage,
87
SourceInputConversionResult,
@@ -16,14 +15,13 @@ import { SourcePostTransformationService } from './postTransformation';
1615
import logger from '../../logger';
1716

1817
export class NativeIntegrationSourceService implements SourceService {
19-
public getTags(extraErrorDetails: ErrorDetailerOptions = {}): MetaTransferObject {
18+
public getTags(): MetaTransferObject {
2019
const metaTO = {
2120
errorDetails: {
2221
module: tags.MODULES.SOURCE,
2322
implementation: tags.IMPLEMENTATIONS.NATIVE,
2423
destinationId: 'Non determinable',
2524
workspaceId: 'Non determinable',
26-
...extraErrorDetails,
2725
} as ErrorDetailer,
2826
errorContext: '[Native Integration Service] Failure During Source Transform',
2927
} as MetaTransferObject;
@@ -38,7 +36,7 @@ export class NativeIntegrationSourceService implements SourceService {
3836
_requestMetadata: NonNullable<unknown>,
3937
): Promise<SourceTransformationResponse[]> {
4038
const sourceHandler = FetchHandler.getSourceHandler(sourceType, version);
41-
const metaTO = this.getTags({ srcType: sourceType });
39+
const metaTO = this.getTags();
4240
const respList: SourceTransformationResponse[] = await Promise.all<FixMe>(
4341
sourceEvents.map(async (sourceEvent) => {
4442
try {

src/types/index.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -270,9 +270,6 @@ type ErrorDetailer = {
270270
module: string;
271271
implementation: string;
272272
feature: string;
273-
} & ErrorDetailerOptions;
274-
275-
type ErrorDetailerOptions = {
276273
errorCategory?: string;
277274
errorType?: string;
278275
meta?: string;
@@ -393,7 +390,6 @@ export {
393390
Connection,
394391
Destination,
395392
ErrorDetailer,
396-
ErrorDetailerOptions,
397393
MessageIdMetadataMap,
398394
MetaTransferObject,
399395
Metadata,

test/integrations/sources/adjust/data.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,6 @@ export const data = [
120120
errorCategory: 'transformation',
121121
implementation: 'native',
122122
module: 'source',
123-
srcType: 'adjust',
124123
workspaceId: 'Non determinable',
125124
},
126125
statusCode: 400,
@@ -177,7 +176,6 @@ export const data = [
177176
errorCategory: 'transformation',
178177
implementation: 'native',
179178
module: 'source',
180-
srcType: 'adjust',
181179
workspaceId: 'Non determinable',
182180
},
183181
statusCode: 400,

test/integrations/sources/appsflyer/data.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -687,7 +687,6 @@ export const data = [
687687
errorCategory: 'transformation',
688688
implementation: 'native',
689689
module: 'source',
690-
srcType: 'appsflyer',
691690
workspaceId: 'Non determinable',
692691
},
693692
statusCode: 400,

test/integrations/sources/canny/data.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1573,7 +1573,6 @@ export const data = [
15731573
errorCategory: 'transformation',
15741574
implementation: 'native',
15751575
module: 'source',
1576-
srcType: 'canny',
15771576
workspaceId: 'Non determinable',
15781577
},
15791578
},
@@ -1651,7 +1650,6 @@ export const data = [
16511650
errorCategory: 'transformation',
16521651
implementation: 'native',
16531652
module: 'source',
1654-
srcType: 'canny',
16551653
workspaceId: 'Non determinable',
16561654
},
16571655
},

test/integrations/sources/gainsightpx/data.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -853,7 +853,6 @@ export const data = [
853853
errorCategory: 'transformation',
854854
implementation: 'native',
855855
module: 'source',
856-
srcType: 'gainsightpx',
857856
workspaceId: 'Non determinable',
858857
},
859858
statusCode: 400,

test/integrations/sources/iterable/data.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,6 @@ export const data = [
101101
errorCategory: 'transformation',
102102
implementation: 'native',
103103
module: 'source',
104-
srcType: 'iterable',
105104
workspaceId: 'Non determinable',
106105
},
107106
statusCode: 400,
@@ -146,7 +145,6 @@ export const data = [
146145
errorCategory: 'transformation',
147146
implementation: 'native',
148147
module: 'source',
149-
srcType: 'iterable',
150148
workspaceId: 'Non determinable',
151149
},
152150
statusCode: 400,

test/integrations/sources/shopify/data.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ const serverSideEventsScenarios = [
6565
errorCategory: 'transformation',
6666
implementation: 'native',
6767
module: 'source',
68-
srcType: 'shopify',
6968
workspaceId: 'Non determinable',
7069
},
7170
statusCode: 400,
@@ -105,7 +104,6 @@ const serverSideEventsScenarios = [
105104
errorCategory: 'transformation',
106105
implementation: 'native',
107106
module: 'source',
108-
srcType: 'shopify',
109107
workspaceId: 'Non determinable',
110108
},
111109
statusCode: 400,
@@ -150,7 +148,6 @@ const serverSideEventsScenarios = [
150148
errorCategory: 'transformation',
151149
implementation: 'native',
152150
module: 'source',
153-
srcType: 'shopify',
154151
workspaceId: 'Non determinable',
155152
},
156153
statusCode: 400,

0 commit comments

Comments
 (0)