From a6eb96ea34231e3e3573d3416879fb56e3c78b59 Mon Sep 17 00:00:00 2001 From: stropho <3704482+stropho@users.noreply.github.com> Date: Tue, 3 Jan 2023 08:22:38 +0100 Subject: [PATCH] typescript-axios single request param in factory (#14358) --- .../typescript-axios/apiInner.mustache | 14 +++ .../with-single-request-parameters/api.ts | 119 +++++++++--------- 2 files changed, 70 insertions(+), 63 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/typescript-axios/apiInner.mustache b/modules/openapi-generator/src/main/resources/typescript-axios/apiInner.mustache index 24b7dabc943..4cb65b7f1bd 100755 --- a/modules/openapi-generator/src/main/resources/typescript-axios/apiInner.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-axios/apiInner.mustache @@ -257,16 +257,30 @@ export const {{classname}}Factory = function (configuration?: Configuration, bas {{#summary}} * @summary {{&summary}} {{/summary}} + {{#useSingleRequestParameter}} + {{#allParams.0}} + * @param {{=<% %>=}}{<%& classname %><%& operationIdCamelCase %>Request}<%={{ }}=%> requestParameters Request parameters. + {{/allParams.0}} + {{/useSingleRequestParameter}} + {{^useSingleRequestParameter}} {{#allParams}} * @param {{=<% %>=}}{<%&dataType%>}<%={{ }}=%> {{^required}}[{{/required}}{{paramName}}{{^required}}]{{/required}} {{description}} {{/allParams}} + {{/useSingleRequestParameter}} * @param {*} [options] Override http request option.{{#isDeprecated}} * @deprecated{{/isDeprecated}} * @throws {RequiredError} */ + {{#useSingleRequestParameter}} + {{nickname}}({{#allParams.0}}requestParameters: {{classname}}{{operationIdCamelCase}}Request{{^hasRequiredParams}} = {}{{/hasRequiredParams}}, {{/allParams.0}}options?: AxiosRequestConfig): AxiosPromise<{{{returnType}}}{{^returnType}}void{{/returnType}}> { + return localVarFp.{{nickname}}({{#allParams.0}}{{#allParams}}requestParameters.{{paramName}}, {{/allParams}}{{/allParams.0}}options).then((request) => request(axios, basePath)); + }, + {{/useSingleRequestParameter}} + {{^useSingleRequestParameter}} {{nickname}}({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}options?: any): AxiosPromise<{{{returnType}}}{{^returnType}}void{{/returnType}}> { return localVarFp.{{nickname}}({{#allParams}}{{paramName}}, {{/allParams}}options).then((request) => request(axios, basePath)); }, + {{/useSingleRequestParameter}} {{/operation}} }; }; diff --git a/samples/client/petstore/typescript-axios/builds/with-single-request-parameters/api.ts b/samples/client/petstore/typescript-axios/builds/with-single-request-parameters/api.ts index e14057829be..11ee29e0019 100644 --- a/samples/client/petstore/typescript-axios/builds/with-single-request-parameters/api.ts +++ b/samples/client/petstore/typescript-axios/builds/with-single-request-parameters/api.ts @@ -716,88 +716,83 @@ export const PetApiFactory = function (configuration?: Configuration, basePath?: /** * * @summary Add a new pet to the store - * @param {Pet} body Pet object that needs to be added to the store + * @param {PetApiAddPetRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - addPet(body: Pet, options?: any): AxiosPromise { - return localVarFp.addPet(body, options).then((request) => request(axios, basePath)); + addPet(requestParameters: PetApiAddPetRequest, options?: AxiosRequestConfig): AxiosPromise { + return localVarFp.addPet(requestParameters.body, options).then((request) => request(axios, basePath)); }, /** * * @summary Deletes a pet - * @param {number} petId Pet id to delete - * @param {string} [apiKey] + * @param {PetApiDeletePetRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - deletePet(petId: number, apiKey?: string, options?: any): AxiosPromise { - return localVarFp.deletePet(petId, apiKey, options).then((request) => request(axios, basePath)); + deletePet(requestParameters: PetApiDeletePetRequest, options?: AxiosRequestConfig): AxiosPromise { + return localVarFp.deletePet(requestParameters.petId, requestParameters.apiKey, options).then((request) => request(axios, basePath)); }, /** * Multiple status values can be provided with comma separated strings * @summary Finds Pets by status - * @param {Array<'available' | 'pending' | 'sold'>} status Status values that need to be considered for filter + * @param {PetApiFindPetsByStatusRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - findPetsByStatus(status: Array<'available' | 'pending' | 'sold'>, options?: any): AxiosPromise> { - return localVarFp.findPetsByStatus(status, options).then((request) => request(axios, basePath)); + findPetsByStatus(requestParameters: PetApiFindPetsByStatusRequest, options?: AxiosRequestConfig): AxiosPromise> { + return localVarFp.findPetsByStatus(requestParameters.status, options).then((request) => request(axios, basePath)); }, /** * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. * @summary Finds Pets by tags - * @param {Array} tags Tags to filter by + * @param {PetApiFindPetsByTagsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @deprecated * @throws {RequiredError} */ - findPetsByTags(tags: Array, options?: any): AxiosPromise> { - return localVarFp.findPetsByTags(tags, options).then((request) => request(axios, basePath)); + findPetsByTags(requestParameters: PetApiFindPetsByTagsRequest, options?: AxiosRequestConfig): AxiosPromise> { + return localVarFp.findPetsByTags(requestParameters.tags, options).then((request) => request(axios, basePath)); }, /** * Returns a single pet * @summary Find pet by ID - * @param {number} petId ID of pet to return + * @param {PetApiGetPetByIdRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getPetById(petId: number, options?: any): AxiosPromise { - return localVarFp.getPetById(petId, options).then((request) => request(axios, basePath)); + getPetById(requestParameters: PetApiGetPetByIdRequest, options?: AxiosRequestConfig): AxiosPromise { + return localVarFp.getPetById(requestParameters.petId, options).then((request) => request(axios, basePath)); }, /** * * @summary Update an existing pet - * @param {Pet} body Pet object that needs to be added to the store + * @param {PetApiUpdatePetRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - updatePet(body: Pet, options?: any): AxiosPromise { - return localVarFp.updatePet(body, options).then((request) => request(axios, basePath)); + updatePet(requestParameters: PetApiUpdatePetRequest, options?: AxiosRequestConfig): AxiosPromise { + return localVarFp.updatePet(requestParameters.body, options).then((request) => request(axios, basePath)); }, /** * * @summary Updates a pet in the store with form data - * @param {number} petId ID of pet that needs to be updated - * @param {string} [name] Updated name of the pet - * @param {string} [status] Updated status of the pet + * @param {PetApiUpdatePetWithFormRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - updatePetWithForm(petId: number, name?: string, status?: string, options?: any): AxiosPromise { - return localVarFp.updatePetWithForm(petId, name, status, options).then((request) => request(axios, basePath)); + updatePetWithForm(requestParameters: PetApiUpdatePetWithFormRequest, options?: AxiosRequestConfig): AxiosPromise { + return localVarFp.updatePetWithForm(requestParameters.petId, requestParameters.name, requestParameters.status, options).then((request) => request(axios, basePath)); }, /** * * @summary uploads an image - * @param {number} petId ID of pet to update - * @param {string} [additionalMetadata] Additional data to pass to server - * @param {File} [file] file to upload + * @param {PetApiUploadFileRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - uploadFile(petId: number, additionalMetadata?: string, file?: File, options?: any): AxiosPromise { - return localVarFp.uploadFile(petId, additionalMetadata, file, options).then((request) => request(axios, basePath)); + uploadFile(requestParameters: PetApiUploadFileRequest, options?: AxiosRequestConfig): AxiosPromise { + return localVarFp.uploadFile(requestParameters.petId, requestParameters.additionalMetadata, requestParameters.file, options).then((request) => request(axios, basePath)); }, }; }; @@ -1262,12 +1257,12 @@ export const StoreApiFactory = function (configuration?: Configuration, basePath /** * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors * @summary Delete purchase order by ID - * @param {string} orderId ID of the order that needs to be deleted + * @param {StoreApiDeleteOrderRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - deleteOrder(orderId: string, options?: any): AxiosPromise { - return localVarFp.deleteOrder(orderId, options).then((request) => request(axios, basePath)); + deleteOrder(requestParameters: StoreApiDeleteOrderRequest, options?: AxiosRequestConfig): AxiosPromise { + return localVarFp.deleteOrder(requestParameters.orderId, options).then((request) => request(axios, basePath)); }, /** * Returns a map of status codes to quantities @@ -1275,28 +1270,28 @@ export const StoreApiFactory = function (configuration?: Configuration, basePath * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getInventory(options?: any): AxiosPromise<{ [key: string]: number; }> { + getInventory(options?: AxiosRequestConfig): AxiosPromise<{ [key: string]: number; }> { return localVarFp.getInventory(options).then((request) => request(axios, basePath)); }, /** * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions * @summary Find purchase order by ID - * @param {number} orderId ID of pet that needs to be fetched + * @param {StoreApiGetOrderByIdRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getOrderById(orderId: number, options?: any): AxiosPromise { - return localVarFp.getOrderById(orderId, options).then((request) => request(axios, basePath)); + getOrderById(requestParameters: StoreApiGetOrderByIdRequest, options?: AxiosRequestConfig): AxiosPromise { + return localVarFp.getOrderById(requestParameters.orderId, options).then((request) => request(axios, basePath)); }, /** * * @summary Place an order for a pet - * @param {Order} [body] order placed for purchasing the pet + * @param {StoreApiPlaceOrderRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - placeOrder(body?: Order, options?: any): AxiosPromise { - return localVarFp.placeOrder(body, options).then((request) => request(axios, basePath)); + placeOrder(requestParameters: StoreApiPlaceOrderRequest = {}, options?: AxiosRequestConfig): AxiosPromise { + return localVarFp.placeOrder(requestParameters.body, options).then((request) => request(axios, basePath)); }, }; }; @@ -1807,63 +1802,62 @@ export const UserApiFactory = function (configuration?: Configuration, basePath? /** * This can only be done by the logged in user. * @summary Create user - * @param {User} body Created user object + * @param {UserApiCreateUserRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - createUser(body: User, options?: any): AxiosPromise { - return localVarFp.createUser(body, options).then((request) => request(axios, basePath)); + createUser(requestParameters: UserApiCreateUserRequest, options?: AxiosRequestConfig): AxiosPromise { + return localVarFp.createUser(requestParameters.body, options).then((request) => request(axios, basePath)); }, /** * * @summary Creates list of users with given input array - * @param {Array} body List of user object + * @param {UserApiCreateUsersWithArrayInputRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - createUsersWithArrayInput(body: Array, options?: any): AxiosPromise { - return localVarFp.createUsersWithArrayInput(body, options).then((request) => request(axios, basePath)); + createUsersWithArrayInput(requestParameters: UserApiCreateUsersWithArrayInputRequest, options?: AxiosRequestConfig): AxiosPromise { + return localVarFp.createUsersWithArrayInput(requestParameters.body, options).then((request) => request(axios, basePath)); }, /** * * @summary Creates list of users with given input array - * @param {Array} body List of user object + * @param {UserApiCreateUsersWithListInputRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - createUsersWithListInput(body: Array, options?: any): AxiosPromise { - return localVarFp.createUsersWithListInput(body, options).then((request) => request(axios, basePath)); + createUsersWithListInput(requestParameters: UserApiCreateUsersWithListInputRequest, options?: AxiosRequestConfig): AxiosPromise { + return localVarFp.createUsersWithListInput(requestParameters.body, options).then((request) => request(axios, basePath)); }, /** * This can only be done by the logged in user. * @summary Delete user - * @param {string} username The name that needs to be deleted + * @param {UserApiDeleteUserRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - deleteUser(username: string, options?: any): AxiosPromise { - return localVarFp.deleteUser(username, options).then((request) => request(axios, basePath)); + deleteUser(requestParameters: UserApiDeleteUserRequest, options?: AxiosRequestConfig): AxiosPromise { + return localVarFp.deleteUser(requestParameters.username, options).then((request) => request(axios, basePath)); }, /** * * @summary Get user by user name - * @param {string} username The name that needs to be fetched. Use user1 for testing. + * @param {UserApiGetUserByNameRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getUserByName(username: string, options?: any): AxiosPromise { - return localVarFp.getUserByName(username, options).then((request) => request(axios, basePath)); + getUserByName(requestParameters: UserApiGetUserByNameRequest, options?: AxiosRequestConfig): AxiosPromise { + return localVarFp.getUserByName(requestParameters.username, options).then((request) => request(axios, basePath)); }, /** * * @summary Logs user into the system - * @param {string} username The user name for login - * @param {string} password The password for login in clear text + * @param {UserApiLoginUserRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - loginUser(username: string, password: string, options?: any): AxiosPromise { - return localVarFp.loginUser(username, password, options).then((request) => request(axios, basePath)); + loginUser(requestParameters: UserApiLoginUserRequest, options?: AxiosRequestConfig): AxiosPromise { + return localVarFp.loginUser(requestParameters.username, requestParameters.password, options).then((request) => request(axios, basePath)); }, /** * @@ -1871,19 +1865,18 @@ export const UserApiFactory = function (configuration?: Configuration, basePath? * @param {*} [options] Override http request option. * @throws {RequiredError} */ - logoutUser(options?: any): AxiosPromise { + logoutUser(options?: AxiosRequestConfig): AxiosPromise { return localVarFp.logoutUser(options).then((request) => request(axios, basePath)); }, /** * This can only be done by the logged in user. * @summary Updated user - * @param {string} username name that need to be deleted - * @param {User} body Updated user object + * @param {UserApiUpdateUserRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - updateUser(username: string, body: User, options?: any): AxiosPromise { - return localVarFp.updateUser(username, body, options).then((request) => request(axios, basePath)); + updateUser(requestParameters: UserApiUpdateUserRequest, options?: AxiosRequestConfig): AxiosPromise { + return localVarFp.updateUser(requestParameters.username, requestParameters.body, options).then((request) => request(axios, basePath)); }, }; };