Skip to content

Commit 40534c4

Browse files
ci: regenerated with OpenAPI Doc 1.0, Speakeay CLI 1.12.0 (#19)
Co-authored-by: speakeasybot <[email protected]>
1 parent d54b8fc commit 40534c4

40 files changed

+277
-440
lines changed

assess/README.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,11 @@ const sdk = new Codat({
3131
authHeader: "YOUR_API_KEY_HERE",
3232
},
3333
});
34-
34+
3535
const req: GetAccountCategoryRequest = {
36-
pathParams: {
37-
accountId: "unde",
38-
companyId: "deserunt",
39-
connectionId: "porro",
40-
},
36+
accountId: "unde",
37+
companyId: "deserunt",
38+
connectionId: "porro",
4139
};
4240

4341
sdk.categories.getAccountCategory(req).then((res: GetAccountCategoryResponse | AxiosError) => {

assess/RELEASES.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,4 +78,12 @@ Based on:
7878
- OpenAPI Doc 1.0 https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Assess.yaml
7979
- Speakeasy CLI 1.11.0 https://github.com/speakeasy-api/speakeasy
8080
### Releases
81-
- [NPM v0.4.0] https://www.npmjs.com/package/@codat/assess/v/0.4.0 - assess
81+
- [NPM v0.4.0] https://www.npmjs.com/package/@codat/assess/v/0.4.0 - assess
82+
83+
## 2023-03-16 00:24:48
84+
### Changes
85+
Based on:
86+
- OpenAPI Doc 1.0 https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Assess.yaml
87+
- Speakeasy CLI 1.12.0 https://github.com/speakeasy-api/speakeasy
88+
### Releases
89+
- [NPM v0.5.0] https://www.npmjs.com/package/@codat/assess/v/0.5.0 - assess

assess/USAGE.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,11 @@ const sdk = new Codat({
1212
authHeader: "YOUR_API_KEY_HERE",
1313
},
1414
});
15-
15+
1616
const req: GetAccountCategoryRequest = {
17-
pathParams: {
18-
accountId: "unde",
19-
companyId: "deserunt",
20-
connectionId: "porro",
21-
},
17+
accountId: "unde",
18+
companyId: "deserunt",
19+
connectionId: "porro",
2220
};
2321

2422
sdk.categories.getAccountCategory(req).then((res: GetAccountCategoryResponse | AxiosError) => {

assess/gen.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ configVersion: 1.0.0
22
management:
33
docChecksum: c34280c967973986d4164afa0334620b
44
docVersion: "1.0"
5-
speakeasyVersion: 1.11.0
5+
speakeasyVersion: 1.12.0
66
generation:
77
telemetryEnabled: false
88
sdkClassName: codat
99
sdkFlattening: true
1010
typescript:
11-
version: 0.4.0
11+
version: 0.5.0
1212
author: Speakeasy
1313
packageName: '@codat/assess'

assess/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assess/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@codat/assess",
3-
"version": "0.4.0",
3+
"version": "0.5.0",
44
"author": "Speakeasy",
55
"scripts": {
66
"prepare": "tsc --build"

assess/src/internal/utils/headers.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
ParamDecorator,
99
convertIfDateObjectToISOString,
1010
} from "./utils";
11+
import {requestMetadataKey} from "./requestbody";
1112

1213
export const headerMetadataKey = "header";
1314

@@ -18,6 +19,14 @@ export function getHeadersFromRequest(headerParams: any): any {
1819

1920
const fieldNames: string[] = Object.getOwnPropertyNames(headerParams);
2021
fieldNames.forEach((fname) => {
22+
const requestBodyAnn: string = Reflect.getMetadata(
23+
requestMetadataKey,
24+
headerParams,
25+
fname
26+
);
27+
28+
if (requestBodyAnn) return;
29+
2130
const headerAnn: string = Reflect.getMetadata(
2231
headerMetadataKey,
2332
headerParams,

assess/src/internal/utils/queryparams.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
} from "./utils";
77

88
import { ParamDecorator } from "./utils";
9+
import {requestMetadataKey} from "./requestbody";
910

1011
export const qpMetadataKey = "queryParam";
1112
const queryStringPrefix = "?";
@@ -20,6 +21,14 @@ export function serializeQueryParams(queryParams: any, globals?: any): string {
2021
: Object.getOwnPropertyNames(queryParams);
2122

2223
fieldNames.forEach((fname) => {
24+
const requestBodyAnn: string = Reflect.getMetadata(
25+
requestMetadataKey,
26+
queryParams,
27+
fname
28+
);
29+
30+
if (requestBodyAnn) return;
31+
2332
const qpAnn: string = Reflect.getMetadata(
2433
qpMetadataKey,
2534
queryParams,
@@ -41,31 +50,31 @@ export function serializeQueryParams(queryParams: any, globals?: any): string {
4150
value = populateFromGlobals(value, fname, "queryParam", globals);
4251

4352
if (qpDecorator.Serialization === "json")
44-
queryStringParts.push(jsonSerializer({ [fname]: value }));
53+
queryStringParts.push(jsonSerializer({ [qpDecorator.ParamName]: value }));
4554
else {
4655
switch (qpDecorator.Style) {
4756
case "deepObject":
4857
queryStringParts.push(
49-
deepObjectSerializer({ [fname]: value }, qpDecorator.DateTimeFormat)
58+
deepObjectSerializer({ [qpDecorator.ParamName]: value }, qpDecorator.DateTimeFormat)
5059
);
5160
return;
5261
case "form":
5362
if (!qpDecorator.Explode)
5463
queryStringParts.push(
55-
formSerializer({ [fname]: value }, qpDecorator.DateTimeFormat)
64+
formSerializer({ [qpDecorator.ParamName]: value }, qpDecorator.DateTimeFormat)
5665
);
5766
else
5867
queryStringParts.push(
5968
formSerializerExplode(
60-
{ [fname]: value },
69+
{ [qpDecorator.ParamName]: value },
6170
qpDecorator.DateTimeFormat
6271
)
6372
);
6473
return;
6574
default:
6675
queryStringParts.push(
6776
formSerializerExplode(
68-
{ [fname]: value },
77+
{ [qpDecorator.ParamName]: value },
6978
qpDecorator.DateTimeFormat
7079
)
7180
);

assess/src/internal/utils/requestbody.ts

Lines changed: 51 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -3,78 +3,69 @@ import {
33
convertIfDateObjectToISOString,
44
isBooleanRecord,
55
isNumberRecord,
6-
isStringRecord,
6+
isStringRecord, SerializationMethodToContentType,
77
} from "./utils";
88

9-
const requestMetadataKey = "request";
9+
export const requestMetadataKey = "request";
1010
const mpFormMetadataKey = "multipart_form";
1111

12-
export function serializeRequestBody(request: any): [object, any] {
13-
if (!request.hasOwnProperty(requestMetadataKey)) {
14-
throw new Error("request body not found");
12+
export function serializeRequestBody(request: any, requestFieldName: string, serializationMethod: string): [object, any] {
13+
if (request !== Object(request) || !request.hasOwnProperty(requestFieldName)) {
14+
return serializeContentType(SerializationMethodToContentType[serializationMethod], request);
1515
}
1616

17-
let requestBodyObj = request;
18-
19-
const firstLevelRequestAnn: string = Reflect.getMetadata(
17+
const requestBodyAnn: string = Reflect.getMetadata(
2018
requestMetadataKey,
2119
request,
22-
requestMetadataKey
20+
requestFieldName
2321
);
24-
if (firstLevelRequestAnn == null)
25-
requestBodyObj = request[requestMetadataKey];
26-
27-
let [requestHeaders, requestBody]: [object, any] = [{}, {}];
28-
29-
const fieldNames: string[] = Object.getOwnPropertyNames(requestBodyObj);
30-
fieldNames.forEach((fname) => {
31-
const requestAnn: string = Reflect.getMetadata(
32-
requestMetadataKey,
33-
requestBodyObj,
34-
fname
35-
);
36-
if (requestAnn == null) return;
37-
38-
const requestDecorator: RequestDecorator =
39-
parseRequestDecorator(requestAnn);
40-
41-
switch (requestDecorator.MediaType) {
42-
case "multipart/form-data":
43-
case "multipart/mixed":
44-
requestBody = encodeMultipartFormData(requestBodyObj[fname]);
45-
requestHeaders = (requestBody as FormData).getHeaders();
46-
break;
22+
if (!requestBodyAnn) {
23+
throw new Error("invalid request type");
24+
}
4725

48-
case "application/x-www-form-urlencoded":
49-
[requestHeaders, requestBody] = [
50-
{ "Content-Type": `${requestDecorator.MediaType}` },
51-
encodeFormUrlEncodeData(requestBodyObj[fname]),
52-
];
53-
break;
26+
const requestDecorator: RequestDecorator = parseRequestDecorator(requestBodyAnn);
27+
return serializeContentType(requestDecorator.MediaType, request[requestFieldName]);
28+
}
5429

55-
case "application/json":
56-
case "text/json":
57-
[requestHeaders, requestBody] = [
58-
{ "Content-Type": `${requestDecorator.MediaType}` },
59-
requestBodyObj[fname],
60-
];
61-
break;
30+
const serializeContentType = (contentType: string, reqBody: any): [object, any] => {
31+
let [requestHeaders, requestBody]: [object, any] = [{}, {}];
6232

63-
default:
64-
requestBody = requestBodyObj[fname];
65-
const requestBodyType: string = typeof requestBody;
66-
if (
67-
requestBodyType === "string" ||
68-
requestBody instanceof String ||
69-
requestBody instanceof Uint8Array
70-
)
71-
requestHeaders = { "Content-Type": `${requestDecorator.MediaType}` };
72-
else
73-
throw new Error(
74-
`invalid request body type ${requestBodyType} for mediaType ${requestDecorator.MediaType}`
75-
);
76-
}
77-
});
33+
switch (contentType) {
34+
case "multipart/form-data":
35+
case "multipart/mixed":
36+
requestBody = encodeMultipartFormData(reqBody);
37+
requestHeaders = (requestBody as FormData).getHeaders();
38+
break;
39+
40+
case "application/x-www-form-urlencoded":
41+
[requestHeaders, requestBody] = [
42+
{ "Content-Type": `${contentType}` },
43+
encodeFormUrlEncodeData(reqBody),
44+
];
45+
break;
46+
47+
case "application/json":
48+
case "text/json":
49+
[requestHeaders, requestBody] = [
50+
{ "Content-Type": `${contentType}` },
51+
reqBody,
52+
];
53+
break;
54+
55+
default:
56+
requestBody = reqBody;
57+
const requestBodyType: string = typeof requestBody;
58+
if (
59+
requestBodyType === "string" ||
60+
requestBody instanceof String ||
61+
requestBody instanceof Uint8Array
62+
)
63+
requestHeaders = { "Content-Type": `${contentType}` };
64+
else
65+
throw new Error(
66+
`invalid request body type ${requestBodyType} for mediaType ${contentType}`
67+
);
68+
}
7869
return [requestHeaders, requestBody];
7970
}
8071

assess/src/internal/utils/utils.ts

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,15 @@ import "reflect-metadata";
33
import { getSimplePathParams, ppMetadataKey } from "./pathparams";
44

55
import { plainToInstance } from "class-transformer";
6+
import {requestMetadataKey} from "./requestbody";
7+
8+
export const SerializationMethodToContentType: Record<string, string> = {
9+
"json": "application/json",
10+
"form": "application/x-www-form-urlencoded",
11+
"multipart": "multipart/form-data",
12+
"raw": "application/octet-stream",
13+
"string": "text/plain",
14+
}
615

716
export interface PropInfo {
817
key: string | symbol;
@@ -180,8 +189,22 @@ export function generateURL(
180189
? pathParams["__props__"].map((prop: any) => prop.key)
181190
: Object.getOwnPropertyNames(pathParams);
182191
fieldNames.forEach((fname) => {
183-
const ppAnn: string = Reflect.getMetadata(ppMetadataKey, pathParams, fname);
192+
const requestBodyAnn: string = Reflect.getMetadata(
193+
requestMetadataKey,
194+
pathParams,
195+
fname
196+
);
197+
198+
if (requestBodyAnn) return;
199+
200+
const ppAnn: string = Reflect.getMetadata(
201+
ppMetadataKey,
202+
pathParams,
203+
fname
204+
);
205+
184206
if (ppAnn == null) return;
207+
185208
const ppDecorator: ParamDecorator = parseParamDecorator(
186209
ppAnn,
187210
fname,

0 commit comments

Comments
 (0)