Skip to content

fix: remove duplicated declaration of endpoints #416

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Oct 23, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 44 additions & 41 deletions clients/node/client-rds-data-node/protocol/AwsRestJson1_1.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,15 @@ import {
ServiceUnavailableError
} from "../models/rdsdataservice";
import { HttpRequest, HttpResponse } from "@aws-sdk/protocol-http";
import { SerializerUtils, DeserializerUtils } from "@aws-sdk/types";
import { ResponseMetadata, Endpoint } from "@aws-sdk/types";
import {
SerializerContext,
DeserializerContext,
ResponseMetadata
} from "@aws-sdk/types";

export function executeStatementAwsRestJson1_1Serialize(
input: ExecuteStatementRequest,
utils: SerializerUtils & { endpoint: Endpoint }
context: SerializerContext
): HttpRequest {
let body: any = {};
if (input.resourceArn !== undefined) {
Expand All @@ -42,7 +45,7 @@ export function executeStatementAwsRestJson1_1Serialize(
if (input.parameters !== undefined) {
body.parameters = sqlParameterListAwsRestJson1_1Serialize(
input.parameters,
utils
context
);
}

Expand All @@ -59,7 +62,7 @@ export function executeStatementAwsRestJson1_1Serialize(
}

return new HttpRequest({
...utils.endpoint,
...context.endpoint,
body: JSON.stringify(body),
path: "/Execute",
method: "POST",
Expand All @@ -72,54 +75,54 @@ export function executeStatementAwsRestJson1_1Serialize(

export async function executeStatementAwsRestJson1_1Deserialize(
output: HttpResponse,
utils: DeserializerUtils
context: DeserializerContext
): Promise<ExecuteStatementResponse> {
if (output.statusCode !== 200) {
return executeStatementAwsRestJson1_1DeserializeError(output, utils);
return executeStatementAwsRestJson1_1DeserializeError(output, context);
}
let data: any = await parseBody(output.body, utils);
let data: any = await parseBody(output.body, context);
return Promise.resolve({
$metadata: deserializeMetadata(output),
__type: "com.amazon.rdsdataservice#ExecuteStatementResponse",
records: recordsAwsRestJson1_1Deserialize(data.records, utils),
records: recordsAwsRestJson1_1Deserialize(data.records, context),
columnMetadata: columnMetadataListAwsRestJson1_1Deserialize(
data.columnMetadata,
utils
context
),
numberOfRecordsUpdated: data.numberOfRecordsUpdated,
generatedFields: generatedFieldsAwsRestJson1_1Deserialize(
data.generatedFields,
utils
context
)
});
}

async function executeStatementAwsRestJson1_1DeserializeError(
output: HttpResponse,
utils: DeserializerUtils
context: DeserializerContext
): Promise<ExecuteStatementResponse> {
let data = await parseBody(output.body, utils);
let data = await parseBody(output.body, context);
let response: any;
switch (output.headers["x-amzn-ErrorType"]) {
case "BadRequestException":
case "com.amazon.rdsdataservice#BadRequestException":
response = badRequestExceptionDeserialize(data, utils);
response = badRequestExceptionDeserialize(data, context);
break;
case "StatementTimeoutException":
case "com.amazon.rdsdataservice#StatementTimeoutException":
response = statementTimeoutExceptionDeserialize(data, utils);
response = statementTimeoutExceptionDeserialize(data, context);
break;
case "ForbiddenException":
case "com.amazon.rdsdataservice#ForbiddenException":
response = forbiddenExceptionDeserialize(data, utils);
response = forbiddenExceptionDeserialize(data, context);
break;
case "InternalServerErrorException":
case "com.amazon.rdsdataservice#InternalServerErrorException":
response = internalServerErrorExceptionDeserialize(data, utils);
response = internalServerErrorExceptionDeserialize(data, context);
break;
case "ServiceUnavailableError":
case "com.amazon.rdsdataservice#ServiceUnavailableError":
response = serviceUnavailableErrorDeserialize(data, utils);
response = serviceUnavailableErrorDeserialize(data, context);
break;
default:
response = {
Expand All @@ -134,26 +137,26 @@ async function executeStatementAwsRestJson1_1DeserializeError(

const sqlParameterListAwsRestJson1_1Serialize = (
input: Array<SqlParameter>,
utils: SerializerUtils
context: SerializerContext
): Array<SqlParameter> =>
input &&
input.map(sqlParameter =>
sqlParameterAwsRestJson1_1Serialize(sqlParameter, utils)
sqlParameterAwsRestJson1_1Serialize(sqlParameter, context)
);

const sqlParameterAwsRestJson1_1Serialize = (
input: SqlParameter,
utils: SerializerUtils
context: SerializerContext
): any =>
input.name &&
input.value && {
name: input.name,
value: fieldAwsRestJson1_1Serialize(input.value, utils)
value: fieldAwsRestJson1_1Serialize(input.value, context)
};

const fieldAwsRestJson1_1Serialize = (
input: Field,
utils: SerializerUtils
context: SerializerContext
): any =>
Field.visit(input, {
blobValue: value => {
Expand Down Expand Up @@ -187,7 +190,7 @@ const fieldAwsRestJson1_1Serialize = (

export function columnMetadataAwsRestJson1_1Deserialize(
input: any,
utils: DeserializerUtils
context: DeserializerContext
): ColumnMetadata {
let columnMetadata: any = {
$namespace: "com.amazon.rdsdataservice",
Expand Down Expand Up @@ -254,16 +257,16 @@ export function columnMetadataAwsRestJson1_1Deserialize(

const columnMetadataListAwsRestJson1_1Deserialize = (
input: any,
utils: DeserializerUtils
context: DeserializerContext
): Array<ColumnMetadata> =>
input &&
input.map((columnMetadata: any) =>
columnMetadataAwsRestJson1_1Deserialize(columnMetadata, utils)
columnMetadataAwsRestJson1_1Deserialize(columnMetadata, context)
);

const fieldAwsRestJson1_1Deserialize = (
input: any,
utils: DeserializerUtils
context: DeserializerContext
): any =>
Field.visit(input, {
blobValue: value => {
Expand Down Expand Up @@ -297,30 +300,30 @@ const fieldAwsRestJson1_1Deserialize = (

const generatedFieldsAwsRestJson1_1Deserialize = (
input: any,
utils: DeserializerUtils
context: DeserializerContext
): Array<Field> =>
input &&
input.map((field: any) => fieldAwsRestJson1_1Deserialize(field, utils));
input.map((field: any) => fieldAwsRestJson1_1Deserialize(field, context));

const recordsAwsRestJson1_1Deserialize = (
input: any,
utils: DeserializerUtils
context: DeserializerContext
): Array<Array<Field>> =>
input &&
input.map((recordsList: any) =>
recordsListAwsRestJson1_1Deserialize(recordsList, utils)
recordsListAwsRestJson1_1Deserialize(recordsList, context)
);

const recordsListAwsRestJson1_1Deserialize = (
input: any,
utils: DeserializerUtils
context: DeserializerContext
): Array<Field> =>
input &&
input.map((field: any) => fieldAwsRestJson1_1Deserialize(field, utils));
input.map((field: any) => fieldAwsRestJson1_1Deserialize(field, context));

const badRequestExceptionDeserialize = (
input: any,
utils: DeserializerUtils
context: DeserializerContext
): BadRequestException => ({
__type: "com.amazon.rdsdataservice#BadRequestException",
$name: "BadRequestException",
Expand All @@ -330,7 +333,7 @@ const badRequestExceptionDeserialize = (

const statementTimeoutExceptionDeserialize = (
input: any,
utils: DeserializerUtils
context: DeserializerContext
): StatementTimeoutException => ({
__type: "com.amazon.rdsdataservice#StatementTimeoutException",
$name: "StatementTimeoutException",
Expand All @@ -341,7 +344,7 @@ const statementTimeoutExceptionDeserialize = (

const forbiddenExceptionDeserialize = (
input: any,
utils: DeserializerUtils
context: DeserializerContext
): ForbiddenException => ({
__type: "com.amazon.rdsdataservice#ForbiddenException",
$name: "ForbiddenException",
Expand All @@ -351,7 +354,7 @@ const forbiddenExceptionDeserialize = (

const internalServerErrorExceptionDeserialize = (
input: any,
utils: DeserializerUtils
context: DeserializerContext
): InternalServerErrorException => ({
__type: "com.amazon.rdsdataservice#InternalServerErrorException",
$name: "InternalServerErrorException",
Expand All @@ -360,7 +363,7 @@ const internalServerErrorExceptionDeserialize = (

const serviceUnavailableErrorDeserialize = (
input: any,
utils: DeserializerUtils
context: DeserializerContext
): ServiceUnavailableError => ({
__type: "com.amazon.rdsdataservice#ServiceUnavailableError",
$name: "ServiceUnavailableError",
Expand All @@ -373,8 +376,8 @@ const deserializeMetadata = (output: HttpResponse): ResponseMetadata => ({
requestId: output.headers["x-amzn-requestid"]
});

const parseBody = (streamBody: any, utils: DeserializerUtils): any => {
return utils.streamCollector(streamBody).then(body => {
return JSON.parse(utils.utf8Encoder(body));
const parseBody = (streamBody: any, context: DeserializerContext): any => {
return context.streamCollector(streamBody).then(body => {
return JSON.parse(context.utf8Encoder(body));
});
};
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { HttpRequest, HttpResponse } from "@aws-sdk/protocol-http";
import { SerializerUtils, DeserializerUtils } from "@aws-sdk/types";
import { SerializerContext, DeserializerContext } from "@aws-sdk/types";
import {
ExecuteStatementRequest,
ExecuteStatementResponse
Expand All @@ -12,7 +12,7 @@ import {
export function executeStatementSerializer(
input: ExecuteStatementRequest,
protocol: string,
utils: SerializerUtils
utils: SerializerContext
): HttpRequest {
switch (protocol) {
case "aws.rest-json-1.1":
Expand All @@ -25,7 +25,7 @@ export function executeStatementSerializer(
export async function executeStatementDeserializer(
output: HttpResponse,
protocol: string,
utils: DeserializerUtils
utils: DeserializerContext
): Promise<ExecuteStatementResponse> {
switch (protocol) {
case "aws.rest-json-1.1":
Expand Down
12 changes: 6 additions & 6 deletions packages/protocol-rest-json/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import {
Protocol,
TransferHandler,
HttpOptions,
SerializerUtils,
DeserializerUtils
SerializerContext,
DeserializerContext
} from "@aws-sdk/types";
import { HttpRequest, HttpResponse } from "@aws-sdk/protocol-http";

Expand All @@ -20,16 +20,16 @@ export class RestJsonProtocol extends Protocol<
super(handler);
}
serialize(
serializer: RequestSerializer<HttpRequest, SerializerUtils>,
serializer: RequestSerializer<HttpRequest, SerializerContext>,
input: any,
utils: SerializerUtils
utils: SerializerContext
) {
return serializer(input, "aws.rest-json-1.1", utils);
}
deserialize(
deserializer: ResponseDeserializer<HttpResponse, any, DeserializerUtils>,
deserializer: ResponseDeserializer<HttpResponse, any, DeserializerContext>,
output: HttpResponse,
utils: DeserializerUtils
utils: DeserializerContext
) {
return deserializer(output, "aws.rest-json-1.1", utils) as any;
}
Expand Down
11 changes: 5 additions & 6 deletions packages/types/src/deserializer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ export interface StreamCollector {
}

/**
* Response deserializer utils functions for AWS services
* Function execution context contains util functions for deserializers
*/
export interface DeserializerUtils {
export interface DeserializerContext {
base64Decoder: Decoder;
utf8Encoder: Encoder;
streamCollector: StreamCollector;
Expand All @@ -21,7 +21,7 @@ export interface DeserializerUtils {
export interface ResponseDeserializer<
OutputType,
ResponseType = any,
RuntimeUtils = any
Context = any
> {
/**
* Converts the output of an operation into JavaScript types.
Expand All @@ -30,10 +30,9 @@ export interface ResponseDeserializer<
* response received
* @param input The HTTP response received from the service
*
* @param utils The runtime-specific util functions. If provided will
* overwrite the provided ones
* @param context context containing runtime-specific util functions.
*/
(output: ResponseType, protocolName: string, utils: RuntimeUtils): Promise<
(output: ResponseType, protocolName: string, context: Context): Promise<
OutputType
>;
}
9 changes: 4 additions & 5 deletions packages/types/src/serializer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ export interface EndpointBearer {
/**
* Response deserializer util functions for AWS services
*/
export interface SerializerUtils extends EndpointBearer {
export interface SerializerContext extends EndpointBearer {
utf8Decoder: Decoder;
base64Encoder: Encoder;
}

export interface RequestSerializer<
Request,
RuntimeUtils extends EndpointBearer = any
Context extends EndpointBearer = any
> {
/**
* Converts the provided `input` into a request object
Expand All @@ -27,8 +27,7 @@ export interface RequestSerializer<
* to. Like `RestJson`, `RestXML`
* @param input The user input to serialize.
*
* @param config The runtime-specific util functions. If provided will
* overwrite the provided ones
* @param context Context containing runtime-specific util functions.
*/
(input: any, transferProtocol: string, utils: RuntimeUtils): Request;
(input: any, transferProtocol: string, context: Context): Request;
}