Skip to content

Commit 5831745

Browse files
committed
fix the duplication
1 parent cc2fa97 commit 5831745

File tree

3 files changed

+50
-29
lines changed

3 files changed

+50
-29
lines changed

packages/core/src/amazonqTest/chat/controller/messenger/messenger.ts

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import { keys } from '../../../../shared/utilities/tsUtils'
3939
import { cancellingProgressField, testGenCompletedField } from '../../../models/constants'
4040
import { testGenState } from '../../../../codewhisperer/models/model'
4141
import { TelemetryHelper } from '../../../../codewhisperer/util/telemetryHelper'
42+
import { extractErrorInfo } from '../../../../shared/utilities/messageUtil'
4243

4344
export type UnrecoverableErrorType = 'no-project-found' | 'no-open-file-found' | 'invalid-file-type'
4445

@@ -249,26 +250,19 @@ export class Messenger {
249250
{ timeout: 60000, truthy: true }
250251
)
251252
.catch((error: any) => {
252-
let errorMessage = 'Error reading chat stream.'
253-
let statusCode = undefined
254-
let requestID = undefined
255-
if (error instanceof CodeWhispererStreamingServiceException) {
256-
errorMessage = error.message
257-
statusCode = getHttpStatusCode(error) ?? 0
258-
requestID = getRequestId(error)
259-
}
253+
const errorInfo = extractErrorInfo(error)
260254
let message = 'This error is reported to the team automatically. Please try sending your message again.'
261-
if (errorMessage !== undefined) {
262-
message += `\n\nDetails: ${errorMessage}`
255+
if (errorInfo.errorMessage !== undefined) {
256+
message += `\n\nDetails: ${errorInfo.errorMessage}`
263257
}
264258

265-
if (statusCode !== undefined) {
266-
message += `\n\nStatus Code: ${statusCode}`
259+
if (errorInfo.statusCode !== undefined) {
260+
message += `\n\nStatus Code: ${errorInfo.statusCode}`
267261
}
268262

269-
if (requestID !== undefined) {
270-
messageId = requestID
271-
message += `\n\nRequest ID: ${requestID}`
263+
if (errorInfo.requestId !== undefined) {
264+
messageId = errorInfo.requestId
265+
message += `\n\nRequest ID: ${errorInfo.requestId}`
272266
}
273267
this.sendMessage(message.trim(), tabID, 'answer')
274268
})

packages/core/src/codewhispererChat/controllers/chat/messenger/messenger.ts

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ import { ChatStream } from '../../../tools/chatStream'
4747
import { getWorkspaceForFile } from '../../../../shared/utilities/workspaceUtils'
4848
import path from 'path'
4949
import { CommandValidation } from '../../../tools/executeBash'
50+
import { extractErrorInfo } from '../../../../shared/utilities/messageUtil'
5051

5152
export type StaticTextResponseType = 'quick-action-help' | 'onboarding-help' | 'transform' | 'help'
5253

@@ -326,26 +327,21 @@ export class Messenger {
326327
{ timeout: 60000, truthy: true }
327328
)
328329
.catch((error: any) => {
329-
let errorMessage = 'Error reading chat stream.'
330-
let statusCode = undefined
331-
let requestID = undefined
332-
333-
if (error instanceof CodeWhispererStreamingServiceException) {
334-
errorMessage = error.message
335-
statusCode = getHttpStatusCode(error) ?? 0
336-
requestID = getRequestId(error)
337-
}
338-
330+
const errorInfo = extractErrorInfo(error)
339331
this.showChatExceptionMessage(
340-
{ errorMessage, statusCode: statusCode?.toString(), sessionID: undefined },
332+
{
333+
errorMessage: errorInfo.errorMessage,
334+
statusCode: errorInfo.statusCode?.toString(),
335+
sessionID: undefined,
336+
},
341337
tabID,
342-
requestID
338+
errorInfo.requestId
343339
)
344-
getLogger().error(`error: ${errorMessage} tabID: ${tabID} requestID: ${requestID}`)
340+
getLogger().error(`error: ${errorInfo.errorMessage} tabID: ${tabID} requestID: ${errorInfo.requestId}`)
345341

346342
followUps = []
347343
relatedSuggestions = []
348-
this.telemetryHelper.recordMessageResponseError(triggerPayload, tabID, statusCode ?? 0)
344+
this.telemetryHelper.recordMessageResponseError(triggerPayload, tabID, errorInfo.statusCode ?? 0)
349345
})
350346
.finally(async () => {
351347
if (
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*!
2+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
import { CodeWhispererStreamingServiceException } from '@amzn/codewhisperer-streaming'
7+
import { getHttpStatusCode, getRequestId } from '../errors'
8+
9+
export interface MessageErrorInfo {
10+
errorMessage: string
11+
statusCode?: number
12+
requestId?: string
13+
}
14+
15+
export function extractErrorInfo(error: any): MessageErrorInfo {
16+
let errorMessage = 'Error reading chat stream.'
17+
let statusCode = undefined
18+
let requestId = undefined
19+
20+
if (error instanceof CodeWhispererStreamingServiceException) {
21+
errorMessage = error.message
22+
statusCode = getHttpStatusCode(error) ?? 0
23+
requestId = getRequestId(error)
24+
}
25+
26+
return {
27+
errorMessage,
28+
statusCode,
29+
requestId,
30+
}
31+
}

0 commit comments

Comments
 (0)