Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
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
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ export interface {{classname}}Interface {
* @throws {RequiredError}
* @memberof {{classname}}Interface
*/
{{nickname}}RequestOpts({{#allParams.0}}requestParameters: {{#prefixParameterInterfaces}}{{classname}}{{/prefixParameterInterfaces}}{{operationIdCamelCase}}Request{{/allParams.0}}): Promise<runtime.RequestOpts>;
{{nickname}}RequestOpts({{#allParams.0}}requestParameters: {{#prefixParameterInterfaces}}{{classname}}{{/prefixParameterInterfaces}}{{operationIdCamelCase}}Request{{/allParams.0}}): {{#hasAuthMethods}}Promise<{{/hasAuthMethods}}runtime.RequestOpts{{#hasAuthMethods}}>{{/hasAuthMethods}};

/**
* {{&notes}}
Expand Down Expand Up @@ -113,7 +113,7 @@ export class {{classname}} extends runtime.BaseAPI {
* @deprecated
{{/isDeprecated}}
*/
async {{nickname}}RequestOpts({{#allParams.0}}requestParameters: {{#prefixParameterInterfaces}}{{classname}}{{/prefixParameterInterfaces}}{{operationIdCamelCase}}Request{{/allParams.0}}): Promise<runtime.RequestOpts> {
{{#hasAuthMethods}}async {{/hasAuthMethods}}{{nickname}}RequestOpts({{#allParams.0}}requestParameters: {{#prefixParameterInterfaces}}{{classname}}{{/prefixParameterInterfaces}}{{operationIdCamelCase}}Request{{/allParams.0}}): {{#hasAuthMethods}}Promise<{{/hasAuthMethods}}runtime.RequestOpts{{#hasAuthMethods}}>{{/hasAuthMethods}} {
{{#allParams}}
{{#required}}
if (requestParameters['{{paramName}}'] == null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -458,6 +458,28 @@ public void testValidationAttributesWithWithoutRuntimeChecks() throws IOExceptio
TestUtils.assertFileContains(modelsIndex, "[property: string]:");
}

/**
* Endpoints without auth methods should generate synchronous RequestOpts functions,
* while endpoints with auth methods should generate async RequestOpts functions.
*/
@Test(description = "Verify RequestOpts is only async when auth methods are present")
public void testRequestOptsIsAsyncOnlyWithAuthMethods() throws IOException {
File output = generate(
Collections.emptyMap(),
"src/test/resources/3_0/typescript-fetch/api-with-and-without-auth.yaml"
);

Path apiFile = Paths.get(output + "/apis/DefaultApi.ts");
TestUtils.assertFileExists(apiFile);

// Endpoint without auth: synchronous signature
TestUtils.assertFileContains(apiFile, "listPublicItemsRequestOpts(): runtime.RequestOpts {");
TestUtils.assertFileNotContains(apiFile, "listPublicItemsRequestOpts(): Promise<runtime.RequestOpts>");

// Endpoint with auth: async signature
TestUtils.assertFileContains(apiFile, "async listPrivateItemsRequestOpts(): Promise<runtime.RequestOpts> {");
}

private static File generate(
Map<String, Object> properties
) throws IOException {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
openapi: 3.0.3
info:
title: API with mixed auth
version: 1.0.0
paths:
/public/items:
get:
operationId: listPublicItems
summary: List public items (no auth)
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Item'
/private/items:
get:
operationId: listPrivateItems
summary: List private items (requires API key)
security:
- ApiKeyAuth: []
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Item'
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-KEY
schemas:
Item:
type: object
required:
- id
- name
properties:
id:
type: string
name:
type: string
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export class DefaultApi extends runtime.BaseAPI {
/**
* Creates request options for list without sending the request
*/
async listRequestOpts(requestParameters: ListRequest): Promise<runtime.RequestOpts> {
listRequestOpts(requestParameters: ListRequest): runtime.RequestOpts {
if (requestParameters['personId'] == null) {
throw new runtime.RequiredError(
'personId',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export class DefaultApi extends runtime.BaseAPI {
/**
* Creates request options for list without sending the request
*/
async listRequestOpts(requestParameters: ListRequest): Promise<runtime.RequestOpts> {
listRequestOpts(requestParameters: ListRequest): runtime.RequestOpts {
if (requestParameters['personId'] == null) {
throw new runtime.RequiredError(
'personId',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export class AnotherFakeApi extends runtime.BaseAPI {
/**
* Creates request options for _123testSpecialTags without sending the request
*/
async _123testSpecialTagsRequestOpts(requestParameters: 123testSpecialTagsRequest): Promise<runtime.RequestOpts> {
_123testSpecialTagsRequestOpts(requestParameters: 123testSpecialTagsRequest): runtime.RequestOpts {
if (requestParameters['client'] == null) {
throw new runtime.RequiredError(
'client',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ export class DefaultApi extends runtime.BaseAPI {
/**
* Creates request options for fooGet without sending the request
*/
async fooGetRequestOpts(): Promise<runtime.RequestOpts> {
fooGetRequestOpts(): runtime.RequestOpts {
const queryParameters: any = {};

const headerParameters: runtime.HTTPHeaders = {};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ export class FakeApi extends runtime.BaseAPI {
/**
* Creates request options for fakeBigDecimalMap without sending the request
*/
async fakeBigDecimalMapRequestOpts(): Promise<runtime.RequestOpts> {
fakeBigDecimalMapRequestOpts(): runtime.RequestOpts {
const queryParameters: any = {};

const headerParameters: runtime.HTTPHeaders = {};
Expand Down Expand Up @@ -213,7 +213,7 @@ export class FakeApi extends runtime.BaseAPI {
/**
* Creates request options for fakeHealthGet without sending the request
*/
async fakeHealthGetRequestOpts(): Promise<runtime.RequestOpts> {
fakeHealthGetRequestOpts(): runtime.RequestOpts {
const queryParameters: any = {};

const headerParameters: runtime.HTTPHeaders = {};
Expand Down Expand Up @@ -304,7 +304,7 @@ export class FakeApi extends runtime.BaseAPI {
/**
* Creates request options for fakeOuterBooleanSerialize without sending the request
*/
async fakeOuterBooleanSerializeRequestOpts(requestParameters: FakeOuterBooleanSerializeRequest): Promise<runtime.RequestOpts> {
fakeOuterBooleanSerializeRequestOpts(requestParameters: FakeOuterBooleanSerializeRequest): runtime.RequestOpts {
const queryParameters: any = {};

const headerParameters: runtime.HTTPHeaders = {};
Expand Down Expand Up @@ -348,7 +348,7 @@ export class FakeApi extends runtime.BaseAPI {
/**
* Creates request options for fakeOuterCompositeSerialize without sending the request
*/
async fakeOuterCompositeSerializeRequestOpts(requestParameters: FakeOuterCompositeSerializeRequest): Promise<runtime.RequestOpts> {
fakeOuterCompositeSerializeRequestOpts(requestParameters: FakeOuterCompositeSerializeRequest): runtime.RequestOpts {
const queryParameters: any = {};

const headerParameters: runtime.HTTPHeaders = {};
Expand Down Expand Up @@ -388,7 +388,7 @@ export class FakeApi extends runtime.BaseAPI {
/**
* Creates request options for fakeOuterNumberSerialize without sending the request
*/
async fakeOuterNumberSerializeRequestOpts(requestParameters: FakeOuterNumberSerializeRequest): Promise<runtime.RequestOpts> {
fakeOuterNumberSerializeRequestOpts(requestParameters: FakeOuterNumberSerializeRequest): runtime.RequestOpts {
const queryParameters: any = {};

const headerParameters: runtime.HTTPHeaders = {};
Expand Down Expand Up @@ -432,7 +432,7 @@ export class FakeApi extends runtime.BaseAPI {
/**
* Creates request options for fakeOuterStringSerialize without sending the request
*/
async fakeOuterStringSerializeRequestOpts(requestParameters: FakeOuterStringSerializeRequest): Promise<runtime.RequestOpts> {
fakeOuterStringSerializeRequestOpts(requestParameters: FakeOuterStringSerializeRequest): runtime.RequestOpts {
const queryParameters: any = {};

const headerParameters: runtime.HTTPHeaders = {};
Expand Down Expand Up @@ -476,7 +476,7 @@ export class FakeApi extends runtime.BaseAPI {
/**
* Creates request options for fakePropertyEnumIntegerSerialize without sending the request
*/
async fakePropertyEnumIntegerSerializeRequestOpts(requestParameters: FakePropertyEnumIntegerSerializeRequest): Promise<runtime.RequestOpts> {
fakePropertyEnumIntegerSerializeRequestOpts(requestParameters: FakePropertyEnumIntegerSerializeRequest): runtime.RequestOpts {
if (requestParameters['outerObjectWithEnumProperty'] == null) {
throw new runtime.RequiredError(
'outerObjectWithEnumProperty',
Expand Down Expand Up @@ -523,7 +523,7 @@ export class FakeApi extends runtime.BaseAPI {
/**
* Creates request options for testAdditionalPropertiesReference without sending the request
*/
async testAdditionalPropertiesReferenceRequestOpts(requestParameters: TestAdditionalPropertiesReferenceRequest): Promise<runtime.RequestOpts> {
testAdditionalPropertiesReferenceRequestOpts(requestParameters: TestAdditionalPropertiesReferenceRequest): runtime.RequestOpts {
if (requestParameters['requestBody'] == null) {
throw new runtime.RequiredError(
'requestBody',
Expand Down Expand Up @@ -571,7 +571,7 @@ export class FakeApi extends runtime.BaseAPI {
/**
* Creates request options for testBodyWithBinary without sending the request
*/
async testBodyWithBinaryRequestOpts(requestParameters: TestBodyWithBinaryRequest): Promise<runtime.RequestOpts> {
testBodyWithBinaryRequestOpts(requestParameters: TestBodyWithBinaryRequest): runtime.RequestOpts {
if (requestParameters['body'] == null) {
throw new runtime.RequiredError(
'body',
Expand Down Expand Up @@ -617,7 +617,7 @@ export class FakeApi extends runtime.BaseAPI {
/**
* Creates request options for testBodyWithFileSchema without sending the request
*/
async testBodyWithFileSchemaRequestOpts(requestParameters: TestBodyWithFileSchemaRequest): Promise<runtime.RequestOpts> {
testBodyWithFileSchemaRequestOpts(requestParameters: TestBodyWithFileSchemaRequest): runtime.RequestOpts {
if (requestParameters['fileSchemaTestClass'] == null) {
throw new runtime.RequiredError(
'fileSchemaTestClass',
Expand Down Expand Up @@ -663,7 +663,7 @@ export class FakeApi extends runtime.BaseAPI {
/**
* Creates request options for testBodyWithQueryParams without sending the request
*/
async testBodyWithQueryParamsRequestOpts(requestParameters: TestBodyWithQueryParamsRequest): Promise<runtime.RequestOpts> {
testBodyWithQueryParamsRequestOpts(requestParameters: TestBodyWithQueryParamsRequest): runtime.RequestOpts {
if (requestParameters['query'] == null) {
throw new runtime.RequiredError(
'query',
Expand Down Expand Up @@ -718,7 +718,7 @@ export class FakeApi extends runtime.BaseAPI {
/**
* Creates request options for testClientModel without sending the request
*/
async testClientModelRequestOpts(requestParameters: TestClientModelRequest): Promise<runtime.RequestOpts> {
testClientModelRequestOpts(requestParameters: TestClientModelRequest): runtime.RequestOpts {
if (requestParameters['client'] == null) {
throw new runtime.RequiredError(
'client',
Expand Down Expand Up @@ -909,7 +909,7 @@ export class FakeApi extends runtime.BaseAPI {
/**
* Creates request options for testEnumParameters without sending the request
*/
async testEnumParametersRequestOpts(requestParameters: TestEnumParametersRequest): Promise<runtime.RequestOpts> {
testEnumParametersRequestOpts(requestParameters: TestEnumParametersRequest): runtime.RequestOpts {
const queryParameters: any = {};

if (requestParameters['enumQueryStringArray'] != null) {
Expand Down Expand Up @@ -1089,7 +1089,7 @@ export class FakeApi extends runtime.BaseAPI {
/**
* Creates request options for testInlineAdditionalProperties without sending the request
*/
async testInlineAdditionalPropertiesRequestOpts(requestParameters: TestInlineAdditionalPropertiesRequest): Promise<runtime.RequestOpts> {
testInlineAdditionalPropertiesRequestOpts(requestParameters: TestInlineAdditionalPropertiesRequest): runtime.RequestOpts {
if (requestParameters['requestBody'] == null) {
throw new runtime.RequiredError(
'requestBody',
Expand Down Expand Up @@ -1137,7 +1137,7 @@ export class FakeApi extends runtime.BaseAPI {
/**
* Creates request options for testInlineFreeformAdditionalProperties without sending the request
*/
async testInlineFreeformAdditionalPropertiesRequestOpts(requestParameters: TestInlineFreeformAdditionalPropertiesOperationRequest): Promise<runtime.RequestOpts> {
testInlineFreeformAdditionalPropertiesRequestOpts(requestParameters: TestInlineFreeformAdditionalPropertiesOperationRequest): runtime.RequestOpts {
if (requestParameters['testInlineFreeformAdditionalPropertiesRequest'] == null) {
throw new runtime.RequiredError(
'testInlineFreeformAdditionalPropertiesRequest',
Expand Down Expand Up @@ -1185,7 +1185,7 @@ export class FakeApi extends runtime.BaseAPI {
/**
* Creates request options for testJsonFormData without sending the request
*/
async testJsonFormDataRequestOpts(requestParameters: TestJsonFormDataRequest): Promise<runtime.RequestOpts> {
testJsonFormDataRequestOpts(requestParameters: TestJsonFormDataRequest): runtime.RequestOpts {
if (requestParameters['param'] == null) {
throw new runtime.RequiredError(
'param',
Expand Down Expand Up @@ -1260,7 +1260,7 @@ export class FakeApi extends runtime.BaseAPI {
/**
* Creates request options for testNullable without sending the request
*/
async testNullableRequestOpts(requestParameters: TestNullableRequest): Promise<runtime.RequestOpts> {
testNullableRequestOpts(requestParameters: TestNullableRequest): runtime.RequestOpts {
if (requestParameters['childWithNullable'] == null) {
throw new runtime.RequiredError(
'childWithNullable',
Expand Down Expand Up @@ -1308,7 +1308,7 @@ export class FakeApi extends runtime.BaseAPI {
/**
* Creates request options for testQueryParameterCollectionFormat without sending the request
*/
async testQueryParameterCollectionFormatRequestOpts(requestParameters: TestQueryParameterCollectionFormatRequest): Promise<runtime.RequestOpts> {
testQueryParameterCollectionFormatRequestOpts(requestParameters: TestQueryParameterCollectionFormatRequest): runtime.RequestOpts {
if (requestParameters['pipe'] == null) {
throw new runtime.RequiredError(
'pipe',
Expand Down Expand Up @@ -1416,7 +1416,7 @@ export class FakeApi extends runtime.BaseAPI {
/**
* Creates request options for testStringMapReference without sending the request
*/
async testStringMapReferenceRequestOpts(requestParameters: TestStringMapReferenceRequest): Promise<runtime.RequestOpts> {
testStringMapReferenceRequestOpts(requestParameters: TestStringMapReferenceRequest): runtime.RequestOpts {
if (requestParameters['requestBody'] == null) {
throw new runtime.RequiredError(
'requestBody',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ export class StoreApi extends runtime.BaseAPI {
/**
* Creates request options for deleteOrder without sending the request
*/
async deleteOrderRequestOpts(requestParameters: DeleteOrderRequest): Promise<runtime.RequestOpts> {
deleteOrderRequestOpts(requestParameters: DeleteOrderRequest): runtime.RequestOpts {
if (requestParameters['orderId'] == null) {
throw new runtime.RequiredError(
'orderId',
Expand Down Expand Up @@ -131,7 +131,7 @@ export class StoreApi extends runtime.BaseAPI {
/**
* Creates request options for getOrderById without sending the request
*/
async getOrderByIdRequestOpts(requestParameters: GetOrderByIdRequest): Promise<runtime.RequestOpts> {
getOrderByIdRequestOpts(requestParameters: GetOrderByIdRequest): runtime.RequestOpts {
if (requestParameters['orderId'] == null) {
throw new runtime.RequiredError(
'orderId',
Expand Down Expand Up @@ -178,7 +178,7 @@ export class StoreApi extends runtime.BaseAPI {
/**
* Creates request options for placeOrder without sending the request
*/
async placeOrderRequestOpts(requestParameters: PlaceOrderRequest): Promise<runtime.RequestOpts> {
placeOrderRequestOpts(requestParameters: PlaceOrderRequest): runtime.RequestOpts {
if (requestParameters['order'] == null) {
throw new runtime.RequiredError(
'order',
Expand Down
Loading
Loading