Skip to content

Commit 026e6a7

Browse files
committed
Used util function isAPIClientError when filtering error
1 parent bea0f88 commit 026e6a7

File tree

3 files changed

+20
-21
lines changed

3 files changed

+20
-21
lines changed

packages/core/src/amazonqFeatureDev/controllers/chat/controller.ts

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
createUserFacingErrorMessage,
1616
denyListedErrors,
1717
FeatureDevServiceError,
18+
isAPIClientError,
1819
MonthlyConversationLimitError,
1920
NoChangeRequiredException,
2021
PrepareRepoFailedError,
@@ -29,14 +30,7 @@ import {
2930
} from '../../errors'
3031
import { codeGenRetryLimit, defaultRetryLimit } from '../../limits'
3132
import { Session } from '../../session/session'
32-
import {
33-
clientErrorMessages,
34-
featureDevScheme,
35-
featureName,
36-
generateDevFilePrompt,
37-
startCodeGenClientErrorMessages,
38-
startTaskAssistLimitReachedMessage,
39-
} from '../../constants'
33+
import { featureDevScheme, featureName, generateDevFilePrompt } from '../../constants'
4034
import { DeletedFileInfo, DevPhase, MetricDataOperationName, MetricDataResult, type NewFileInfo } from '../../types'
4135
import { AuthUtil } from '../../../codewhisperer/util/authUtil'
4236
import { AuthController } from '../../../amazonq/auth/controller'
@@ -569,12 +563,7 @@ export class FeatureDevController {
569563
result = MetricDataResult.Error
570564
break
571565
default:
572-
if (
573-
(err.code === 'StartCodeGenerationFailed' &&
574-
startCodeGenClientErrorMessages.some((msg) => err.message.includes(msg))) ||
575-
clientErrorMessages.some((msg) => err.message.includes(msg)) ||
576-
err.message.includes(startTaskAssistLimitReachedMessage)
577-
) {
566+
if (isAPIClientError(err)) {
578567
result = MetricDataResult.Error
579568
} else {
580569
result = MetricDataResult.Fault

packages/core/src/amazonqFeatureDev/errors.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@
44
*/
55

66
import { ToolkitError } from '../shared/errors'
7-
import { featureName } from './constants'
7+
import {
8+
featureName,
9+
clientErrorMessages,
10+
startCodeGenClientErrorMessages,
11+
startTaskAssistLimitReachedMessage,
12+
} from './constants'
813
import { uploadCodeError } from './userFacingText'
914
import { i18n } from '../shared/i18n-helper'
1015

@@ -140,3 +145,12 @@ export function createUserFacingErrorMessage(message: string) {
140145
}
141146
return message
142147
}
148+
149+
export function isAPIClientError(error: { code?: string; message: string }): boolean {
150+
return (
151+
(error.code === 'StartCodeGenerationFailed' &&
152+
startCodeGenClientErrorMessages.some((msg: string) => error.message.includes(msg))) ||
153+
clientErrorMessages.some((msg: string) => error.message.includes(msg)) ||
154+
error.message.includes(startTaskAssistLimitReachedMessage)
155+
)
156+
}

packages/core/src/test/amazonqFeatureDev/controllers/chat/controller.test.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import {
2424
ContentLengthError,
2525
createUserFacingErrorMessage,
2626
FeatureDevServiceError,
27+
isAPIClientError,
2728
MonthlyConversationLimitError,
2829
NoChangeRequiredException,
2930
PrepareRepoFailedError,
@@ -486,12 +487,7 @@ describe('Controller', () => {
486487
if (error instanceof FeatureDevServiceError && error.code) {
487488
return errorResultMapping.get(error.code) ?? MetricDataResult.Error
488489
}
489-
if (
490-
(error.code === 'StartCodeGenerationFailed' &&
491-
startCodeGenClientErrorMessages.some((msg: string) => error.message.includes(msg))) ||
492-
clientErrorMessages.some((msg: string) => error.message.includes(msg)) ||
493-
error.message.includes(startTaskAssistLimitReachedMessage)
494-
) {
490+
if (isAPIClientError(error)) {
495491
return MetricDataResult.Error
496492
}
497493
return errorResultMapping.get(error.constructor.name) ?? MetricDataResult.Fault

0 commit comments

Comments
 (0)