Skip to content

Commit 96022cc

Browse files
committed
feat: add abstract token methods to CodeWhispererServiceBase
1 parent 8a9d2e7 commit 96022cc

File tree

4 files changed

+342
-5
lines changed

4 files changed

+342
-5
lines changed

server/aws-lsp-codewhisperer/src/shared/codeWhispererService.test.ts

Lines changed: 129 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
Logging,
1111
SDKInitializator,
1212
} from '@aws/language-server-runtimes/server-interface'
13-
import { ConfigurationOptions } from 'aws-sdk'
13+
import { AWSError, ConfigurationOptions } from 'aws-sdk'
1414
import * as sinon from 'sinon'
1515
import * as assert from 'assert'
1616
import {
@@ -20,6 +20,38 @@ import {
2020
} from './codeWhispererService/codeWhispererServiceBase'
2121
import { CodeWhispererServiceToken } from './codeWhispererService/codeWhispererServiceToken'
2222
import { CodeWhispererServiceIAM } from './codeWhispererService/codeWhispererServiceIAM'
23+
import { PromiseResult } from 'aws-sdk/lib/request'
24+
import {
25+
CreateUploadUrlRequest,
26+
CreateUploadUrlResponse,
27+
StartTransformationRequest,
28+
StartTransformationResponse,
29+
StopTransformationRequest,
30+
StopTransformationResponse,
31+
GetTransformationRequest,
32+
GetTransformationResponse,
33+
GetTransformationPlanRequest,
34+
GetTransformationPlanResponse,
35+
StartCodeAnalysisRequest,
36+
StartCodeAnalysisResponse,
37+
GetCodeAnalysisRequest,
38+
GetCodeAnalysisResponse,
39+
ListCodeAnalysisFindingsRequest,
40+
ListCodeAnalysisFindingsResponse,
41+
ListAvailableCustomizationsRequest,
42+
ListAvailableCustomizationsResponse,
43+
ListAvailableProfilesRequest,
44+
SendTelemetryEventRequest,
45+
SendTelemetryEventResponse,
46+
CreateWorkspaceRequest,
47+
CreateWorkspaceResponse,
48+
ListWorkspaceMetadataRequest,
49+
ListWorkspaceMetadataResponse,
50+
DeleteWorkspaceRequest,
51+
DeleteWorkspaceResponse,
52+
ListFeatureEvaluationsRequest,
53+
ListFeatureEvaluationsResponse,
54+
} from '../client/token/codewhispererbearertokenclient'
2355

2456
describe('CodeWhispererService', function () {
2557
let sandbox: sinon.SinonSandbox
@@ -95,6 +127,102 @@ describe('CodeWhispererService', function () {
95127
}
96128

97129
clearCachedSuggestions(): void {}
130+
131+
override codeModernizerCreateUploadUrl(
132+
request: CreateUploadUrlRequest
133+
): Promise<CreateUploadUrlResponse> {
134+
throw new Error('Method not implemented.')
135+
}
136+
137+
override codeModernizerStartCodeTransformation(
138+
request: StartTransformationRequest
139+
): Promise<PromiseResult<StartTransformationResponse, AWSError>> {
140+
throw new Error('Method not implemented.')
141+
}
142+
143+
override codeModernizerStopCodeTransformation(
144+
request: StopTransformationRequest
145+
): Promise<PromiseResult<StopTransformationResponse, AWSError>> {
146+
throw new Error('Method not implemented.')
147+
}
148+
149+
override codeModernizerGetCodeTransformation(
150+
request: GetTransformationRequest
151+
): Promise<PromiseResult<GetTransformationResponse, AWSError>> {
152+
throw new Error('Method not implemented.')
153+
}
154+
155+
override codeModernizerGetCodeTransformationPlan(
156+
request: GetTransformationPlanRequest
157+
): Promise<PromiseResult<GetTransformationPlanResponse, AWSError>> {
158+
throw new Error('Method not implemented.')
159+
}
160+
161+
override createUploadUrl(
162+
request: CreateUploadUrlRequest
163+
): Promise<PromiseResult<CreateUploadUrlResponse, AWSError>> {
164+
throw new Error('Method not implemented.')
165+
}
166+
167+
override startCodeAnalysis(
168+
request: StartCodeAnalysisRequest
169+
): Promise<PromiseResult<StartCodeAnalysisResponse, AWSError>> {
170+
throw new Error('Method not implemented.')
171+
}
172+
173+
override getCodeAnalysis(
174+
request: GetCodeAnalysisRequest
175+
): Promise<PromiseResult<GetCodeAnalysisResponse, AWSError>> {
176+
throw new Error('Method not implemented.')
177+
}
178+
179+
override listCodeAnalysisFindings(
180+
request: ListCodeAnalysisFindingsRequest
181+
): Promise<PromiseResult<ListCodeAnalysisFindingsResponse, AWSError>> {
182+
throw new Error('Method not implemented.')
183+
}
184+
185+
override listAvailableCustomizations(
186+
request: ListAvailableCustomizationsRequest
187+
): Promise<PromiseResult<ListAvailableCustomizationsResponse, AWSError>> {
188+
throw new Error('Method not implemented.')
189+
}
190+
191+
override listAvailableProfiles(
192+
request: ListAvailableProfilesRequest
193+
): Promise<PromiseResult<ListAvailableProfilesRequest, AWSError>> {
194+
throw new Error('Method not implemented.')
195+
}
196+
197+
override sendTelemetryEvent(
198+
request: SendTelemetryEventRequest
199+
): Promise<PromiseResult<SendTelemetryEventResponse, AWSError>> {
200+
throw new Error('Method not implemented.')
201+
}
202+
203+
override createWorkspace(
204+
request: CreateWorkspaceRequest
205+
): Promise<PromiseResult<CreateWorkspaceResponse, AWSError>> {
206+
throw new Error('Method not implemented.')
207+
}
208+
209+
override listWorkspaceMetadata(
210+
request: ListWorkspaceMetadataRequest
211+
): Promise<PromiseResult<ListWorkspaceMetadataResponse, AWSError>> {
212+
throw new Error('Method not implemented.')
213+
}
214+
215+
override deleteWorkspace(
216+
request: DeleteWorkspaceRequest
217+
): Promise<PromiseResult<DeleteWorkspaceResponse, AWSError>> {
218+
throw new Error('Method not implemented.')
219+
}
220+
221+
override listFeatureEvaluations(
222+
request: ListFeatureEvaluationsRequest
223+
): Promise<PromiseResult<ListFeatureEvaluationsResponse, AWSError>> {
224+
throw new Error('Method not implemented.')
225+
}
98226
}
99227

100228
service = new TestCodeWhispererService('us-east-1', 'https://codewhisperer.us-east-1.amazonaws.com')

server/aws-lsp-codewhisperer/src/shared/codeWhispererService/codeWhispererServiceBase.test.ts

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,85 @@ describe('CodeWhispererServiceBase', function () {
8181
}
8282

8383
clearCachedSuggestions(): void {}
84+
85+
override codeModernizerCreateUploadUrl(request: CreateUploadUrlRequest): Promise<CreateUploadUrlResponse> {
86+
throw new Error('Method not implemented.')
87+
}
88+
override codeModernizerStartCodeTransformation(
89+
request: StartTransformationRequest
90+
): Promise<PromiseResult<StartTransformationResponse, AWSError>> {
91+
throw new Error('Method not implemented.')
92+
}
93+
override codeModernizerStopCodeTransformation(
94+
request: StopTransformationRequest
95+
): Promise<PromiseResult<StopTransformationResponse, AWSError>> {
96+
throw new Error('Method not implemented.')
97+
}
98+
override codeModernizerGetCodeTransformation(
99+
request: GetTransformationRequest
100+
): Promise<PromiseResult<GetTransformationResponse, AWSError>> {
101+
throw new Error('Method not implemented.')
102+
}
103+
override codeModernizerGetCodeTransformationPlan(
104+
request: GetTransformationPlanRequest
105+
): Promise<PromiseResult<GetTransformationPlanResponse, AWSError>> {
106+
throw new Error('Method not implemented.')
107+
}
108+
override createUploadUrl(
109+
request: CreateUploadUrlRequest
110+
): Promise<PromiseResult<CreateUploadUrlResponse, AWSError>> {
111+
throw new Error('Method not implemented.')
112+
}
113+
override startCodeAnalysis(
114+
request: StartCodeAnalysisRequest
115+
): Promise<PromiseResult<StartCodeAnalysisResponse, AWSError>> {
116+
throw new Error('Method not implemented.')
117+
}
118+
override getCodeAnalysis(
119+
request: GetCodeAnalysisRequest
120+
): Promise<PromiseResult<GetCodeAnalysisResponse, AWSError>> {
121+
throw new Error('Method not implemented.')
122+
}
123+
override listCodeAnalysisFindings(
124+
request: ListCodeAnalysisFindingsRequest
125+
): Promise<PromiseResult<ListCodeAnalysisFindingsResponse, AWSError>> {
126+
throw new Error('Method not implemented.')
127+
}
128+
override listAvailableCustomizations(
129+
request: ListAvailableCustomizationsRequest
130+
): Promise<PromiseResult<ListAvailableCustomizationsResponse, AWSError>> {
131+
throw new Error('Method not implemented.')
132+
}
133+
override listAvailableProfiles(
134+
request: ListAvailableProfilesRequest
135+
): Promise<PromiseResult<ListAvailableProfilesRequest, AWSError>> {
136+
throw new Error('Method not implemented.')
137+
}
138+
override sendTelemetryEvent(
139+
request: SendTelemetryEventRequest
140+
): Promise<PromiseResult<SendTelemetryEventResponse, AWSError>> {
141+
throw new Error('Method not implemented.')
142+
}
143+
override createWorkspace(
144+
request: CreateWorkspaceRequest
145+
): Promise<PromiseResult<CreateWorkspaceResponse, AWSError>> {
146+
throw new Error('Method not implemented.')
147+
}
148+
override listWorkspaceMetadata(
149+
request: ListWorkspaceMetadataRequest
150+
): Promise<PromiseResult<ListWorkspaceMetadataResponse, AWSError>> {
151+
throw new Error('Method not implemented.')
152+
}
153+
override deleteWorkspace(
154+
request: DeleteWorkspaceRequest
155+
): Promise<PromiseResult<DeleteWorkspaceResponse, AWSError>> {
156+
throw new Error('Method not implemented.')
157+
}
158+
override listFeatureEvaluations(
159+
request: ListFeatureEvaluationsRequest
160+
): Promise<PromiseResult<ListFeatureEvaluationsResponse, AWSError>> {
161+
throw new Error('Method not implemented.')
162+
}
84163
}
85164

86165
service = new TestCodeWhispererService('us-east-1', 'https://codewhisperer.us-east-1.amazonaws.com')

server/aws-lsp-codewhisperer/src/shared/codeWhispererService/codeWhispererServiceBase.ts

Lines changed: 51 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,6 @@ export abstract class CodeWhispererServiceBase {
6464
this.inflightRequests.delete(request)
6565
}
6666

67-
abstract getCredentialsType(): CredentialsType
68-
69-
abstract generateSuggestions(request: GenerateSuggestionsRequest): Promise<GenerateSuggestionsResponse>
70-
7167
constructor(codeWhispererRegion: string, codeWhispererEndpoint: string) {
7268
this.codeWhispererRegion = codeWhispererRegion
7369
this.codeWhispererEndpoint = codeWhispererEndpoint
@@ -95,4 +91,55 @@ export abstract class CodeWhispererServiceBase {
9591
// No-op: base class doesn't support subscription polling
9692
return false
9793
}
94+
95+
abstract getCredentialsType(): CredentialsType
96+
abstract generateSuggestions(request: GenerateSuggestionsRequest): Promise<GenerateSuggestionsResponse>
97+
abstract codeModernizerCreateUploadUrl(
98+
request: CodeWhispererTokenClient.CreateUploadUrlRequest
99+
): Promise<CodeWhispererTokenClient.CreateUploadUrlResponse>
100+
abstract codeModernizerStartCodeTransformation(
101+
request: CodeWhispererTokenClient.StartTransformationRequest
102+
): Promise<PromiseResult<CodeWhispererTokenClient.StartTransformationResponse, AWSError>>
103+
abstract codeModernizerStopCodeTransformation(
104+
request: CodeWhispererTokenClient.StopTransformationRequest
105+
): Promise<PromiseResult<CodeWhispererTokenClient.StopTransformationResponse, AWSError>>
106+
abstract codeModernizerGetCodeTransformation(
107+
request: CodeWhispererTokenClient.GetTransformationRequest
108+
): Promise<PromiseResult<CodeWhispererTokenClient.GetTransformationResponse, AWSError>>
109+
abstract codeModernizerGetCodeTransformationPlan(
110+
request: CodeWhispererTokenClient.GetTransformationPlanRequest
111+
): Promise<PromiseResult<CodeWhispererTokenClient.GetTransformationPlanResponse, AWSError>>
112+
abstract createUploadUrl(
113+
request: CodeWhispererTokenClient.CreateUploadUrlRequest
114+
): Promise<PromiseResult<CodeWhispererTokenClient.CreateUploadUrlResponse, AWSError>>
115+
abstract startCodeAnalysis(
116+
request: CodeWhispererTokenClient.StartCodeAnalysisRequest
117+
): Promise<PromiseResult<CodeWhispererTokenClient.StartCodeAnalysisResponse, AWSError>>
118+
abstract getCodeAnalysis(
119+
request: CodeWhispererTokenClient.GetCodeAnalysisRequest
120+
): Promise<PromiseResult<CodeWhispererTokenClient.GetCodeAnalysisResponse, AWSError>>
121+
abstract listCodeAnalysisFindings(
122+
request: CodeWhispererTokenClient.ListCodeAnalysisFindingsRequest
123+
): Promise<PromiseResult<CodeWhispererTokenClient.ListCodeAnalysisFindingsResponse, AWSError>>
124+
abstract listAvailableCustomizations(
125+
request: CodeWhispererTokenClient.ListAvailableCustomizationsRequest
126+
): Promise<PromiseResult<CodeWhispererTokenClient.ListAvailableCustomizationsResponse, AWSError>>
127+
abstract listAvailableProfiles(
128+
request: CodeWhispererTokenClient.ListAvailableProfilesRequest
129+
): Promise<PromiseResult<CodeWhispererTokenClient.ListAvailableProfilesRequest, AWSError>>
130+
abstract sendTelemetryEvent(
131+
request: CodeWhispererTokenClient.SendTelemetryEventRequest
132+
): Promise<PromiseResult<CodeWhispererTokenClient.SendTelemetryEventResponse, AWSError>>
133+
abstract createWorkspace(
134+
request: CodeWhispererTokenClient.CreateWorkspaceRequest
135+
): Promise<PromiseResult<CodeWhispererTokenClient.CreateWorkspaceResponse, AWSError>>
136+
abstract listWorkspaceMetadata(
137+
request: CodeWhispererTokenClient.ListWorkspaceMetadataRequest
138+
): Promise<PromiseResult<CodeWhispererTokenClient.ListWorkspaceMetadataResponse, AWSError>>
139+
abstract deleteWorkspace(
140+
request: CodeWhispererTokenClient.DeleteWorkspaceRequest
141+
): Promise<PromiseResult<CodeWhispererTokenClient.DeleteWorkspaceResponse, AWSError>>
142+
abstract listFeatureEvaluations(
143+
request: CodeWhispererTokenClient.ListFeatureEvaluationsRequest
144+
): Promise<PromiseResult<CodeWhispererTokenClient.ListFeatureEvaluationsResponse, AWSError>>
98145
}

0 commit comments

Comments
 (0)