diff --git a/samples/client/others/typescript-angular/builds/composed-schemas-tagged-unions/api.base.service.ts b/samples/client/others/typescript-angular/builds/composed-schemas-tagged-unions/api.base.service.ts index f93aee53b880..5800e940ea64 100644 --- a/samples/client/others/typescript-angular/builds/composed-schemas-tagged-unions/api.base.service.ts +++ b/samples/client/others/typescript-angular/builds/composed-schemas-tagged-unions/api.base.service.ts @@ -53,8 +53,8 @@ export class BaseService { // If JSON format is preferred, key must be provided. if (key != null) { return isDeep - ? Object.entries(value as Record).reduce( - (hp, [k, v]) => hp.append(`${key}[${k}]`, v), + ? Object.keys(value as Record).reduce( + (hp, k) => hp.append(`${key}[${k}]`, value[k]), httpParams, ) : httpParams.append(key, JSON.stringify(value)); diff --git a/samples/client/others/typescript-angular/builds/composed-schemas/api.base.service.ts b/samples/client/others/typescript-angular/builds/composed-schemas/api.base.service.ts index f93aee53b880..5800e940ea64 100644 --- a/samples/client/others/typescript-angular/builds/composed-schemas/api.base.service.ts +++ b/samples/client/others/typescript-angular/builds/composed-schemas/api.base.service.ts @@ -53,8 +53,8 @@ export class BaseService { // If JSON format is preferred, key must be provided. if (key != null) { return isDeep - ? Object.entries(value as Record).reduce( - (hp, [k, v]) => hp.append(`${key}[${k}]`, v), + ? Object.keys(value as Record).reduce( + (hp, k) => hp.append(`${key}[${k}]`, value[k]), httpParams, ) : httpParams.append(key, JSON.stringify(value)); diff --git a/samples/client/petstore/typescript-angular-v12-oneOf/builds/default/api.base.service.ts b/samples/client/petstore/typescript-angular-v12-oneOf/builds/default/api.base.service.ts index 47200d0aebd7..9ed72856f876 100644 --- a/samples/client/petstore/typescript-angular-v12-oneOf/builds/default/api.base.service.ts +++ b/samples/client/petstore/typescript-angular-v12-oneOf/builds/default/api.base.service.ts @@ -53,8 +53,8 @@ export class BaseService { // If JSON format is preferred, key must be provided. if (key != null) { return isDeep - ? Object.entries(value as Record).reduce( - (hp, [k, v]) => hp.append(`${key}[${k}]`, v), + ? Object.keys(value as Record).reduce( + (hp, k) => hp.append(`${key}[${k}]`, value[k]), httpParams, ) : httpParams.append(key, JSON.stringify(value)); diff --git a/samples/client/petstore/typescript-angular-v12-provided-in-any/builds/default/api.base.service.ts b/samples/client/petstore/typescript-angular-v12-provided-in-any/builds/default/api.base.service.ts index f8664864f0ba..e2e57d08322d 100644 --- a/samples/client/petstore/typescript-angular-v12-provided-in-any/builds/default/api.base.service.ts +++ b/samples/client/petstore/typescript-angular-v12-provided-in-any/builds/default/api.base.service.ts @@ -53,8 +53,8 @@ export class BaseService { // If JSON format is preferred, key must be provided. if (key != null) { return isDeep - ? Object.entries(value as Record).reduce( - (hp, [k, v]) => hp.append(`${key}[${k}]`, v), + ? Object.keys(value as Record).reduce( + (hp, k) => hp.append(`${key}[${k}]`, value[k]), httpParams, ) : httpParams.append(key, JSON.stringify(value)); diff --git a/samples/client/petstore/typescript-angular-v12-provided-in-root/builds/default/api.base.service.ts b/samples/client/petstore/typescript-angular-v12-provided-in-root/builds/default/api.base.service.ts index f8664864f0ba..e2e57d08322d 100644 --- a/samples/client/petstore/typescript-angular-v12-provided-in-root/builds/default/api.base.service.ts +++ b/samples/client/petstore/typescript-angular-v12-provided-in-root/builds/default/api.base.service.ts @@ -53,8 +53,8 @@ export class BaseService { // If JSON format is preferred, key must be provided. if (key != null) { return isDeep - ? Object.entries(value as Record).reduce( - (hp, [k, v]) => hp.append(`${key}[${k}]`, v), + ? Object.keys(value as Record).reduce( + (hp, k) => hp.append(`${key}[${k}]`, value[k]), httpParams, ) : httpParams.append(key, JSON.stringify(value)); diff --git a/samples/client/petstore/typescript-angular-v12-provided-in-root/builds/with-npm/api.base.service.ts b/samples/client/petstore/typescript-angular-v12-provided-in-root/builds/with-npm/api.base.service.ts index f8664864f0ba..e2e57d08322d 100644 --- a/samples/client/petstore/typescript-angular-v12-provided-in-root/builds/with-npm/api.base.service.ts +++ b/samples/client/petstore/typescript-angular-v12-provided-in-root/builds/with-npm/api.base.service.ts @@ -53,8 +53,8 @@ export class BaseService { // If JSON format is preferred, key must be provided. if (key != null) { return isDeep - ? Object.entries(value as Record).reduce( - (hp, [k, v]) => hp.append(`${key}[${k}]`, v), + ? Object.keys(value as Record).reduce( + (hp, k) => hp.append(`${key}[${k}]`, value[k]), httpParams, ) : httpParams.append(key, JSON.stringify(value)); diff --git a/samples/client/petstore/typescript-angular-v13-oneOf/builds/default/api.base.service.ts b/samples/client/petstore/typescript-angular-v13-oneOf/builds/default/api.base.service.ts index 47200d0aebd7..9ed72856f876 100644 --- a/samples/client/petstore/typescript-angular-v13-oneOf/builds/default/api.base.service.ts +++ b/samples/client/petstore/typescript-angular-v13-oneOf/builds/default/api.base.service.ts @@ -53,8 +53,8 @@ export class BaseService { // If JSON format is preferred, key must be provided. if (key != null) { return isDeep - ? Object.entries(value as Record).reduce( - (hp, [k, v]) => hp.append(`${key}[${k}]`, v), + ? Object.keys(value as Record).reduce( + (hp, k) => hp.append(`${key}[${k}]`, value[k]), httpParams, ) : httpParams.append(key, JSON.stringify(value)); diff --git a/samples/client/petstore/typescript-angular-v13-provided-in-any/builds/default/api.base.service.ts b/samples/client/petstore/typescript-angular-v13-provided-in-any/builds/default/api.base.service.ts index f8664864f0ba..e2e57d08322d 100644 --- a/samples/client/petstore/typescript-angular-v13-provided-in-any/builds/default/api.base.service.ts +++ b/samples/client/petstore/typescript-angular-v13-provided-in-any/builds/default/api.base.service.ts @@ -53,8 +53,8 @@ export class BaseService { // If JSON format is preferred, key must be provided. if (key != null) { return isDeep - ? Object.entries(value as Record).reduce( - (hp, [k, v]) => hp.append(`${key}[${k}]`, v), + ? Object.keys(value as Record).reduce( + (hp, k) => hp.append(`${key}[${k}]`, value[k]), httpParams, ) : httpParams.append(key, JSON.stringify(value)); diff --git a/samples/client/petstore/typescript-angular-v13-provided-in-root/builds/default/api.base.service.ts b/samples/client/petstore/typescript-angular-v13-provided-in-root/builds/default/api.base.service.ts index f8664864f0ba..e2e57d08322d 100644 --- a/samples/client/petstore/typescript-angular-v13-provided-in-root/builds/default/api.base.service.ts +++ b/samples/client/petstore/typescript-angular-v13-provided-in-root/builds/default/api.base.service.ts @@ -53,8 +53,8 @@ export class BaseService { // If JSON format is preferred, key must be provided. if (key != null) { return isDeep - ? Object.entries(value as Record).reduce( - (hp, [k, v]) => hp.append(`${key}[${k}]`, v), + ? Object.keys(value as Record).reduce( + (hp, k) => hp.append(`${key}[${k}]`, value[k]), httpParams, ) : httpParams.append(key, JSON.stringify(value)); diff --git a/samples/client/petstore/typescript-angular-v13-provided-in-root/builds/with-npm/api.base.service.ts b/samples/client/petstore/typescript-angular-v13-provided-in-root/builds/with-npm/api.base.service.ts index f8664864f0ba..e2e57d08322d 100644 --- a/samples/client/petstore/typescript-angular-v13-provided-in-root/builds/with-npm/api.base.service.ts +++ b/samples/client/petstore/typescript-angular-v13-provided-in-root/builds/with-npm/api.base.service.ts @@ -53,8 +53,8 @@ export class BaseService { // If JSON format is preferred, key must be provided. if (key != null) { return isDeep - ? Object.entries(value as Record).reduce( - (hp, [k, v]) => hp.append(`${key}[${k}]`, v), + ? Object.keys(value as Record).reduce( + (hp, k) => hp.append(`${key}[${k}]`, value[k]), httpParams, ) : httpParams.append(key, JSON.stringify(value)); diff --git a/samples/client/petstore/typescript-angular-v14-provided-in-root/builds/default/api.base.service.ts b/samples/client/petstore/typescript-angular-v14-provided-in-root/builds/default/api.base.service.ts index f8664864f0ba..e2e57d08322d 100644 --- a/samples/client/petstore/typescript-angular-v14-provided-in-root/builds/default/api.base.service.ts +++ b/samples/client/petstore/typescript-angular-v14-provided-in-root/builds/default/api.base.service.ts @@ -53,8 +53,8 @@ export class BaseService { // If JSON format is preferred, key must be provided. if (key != null) { return isDeep - ? Object.entries(value as Record).reduce( - (hp, [k, v]) => hp.append(`${key}[${k}]`, v), + ? Object.keys(value as Record).reduce( + (hp, k) => hp.append(`${key}[${k}]`, value[k]), httpParams, ) : httpParams.append(key, JSON.stringify(value)); diff --git a/samples/client/petstore/typescript-angular-v14-query-param-object-format/api.base.service.ts b/samples/client/petstore/typescript-angular-v14-query-param-object-format/api.base.service.ts index f8664864f0ba..e2e57d08322d 100644 --- a/samples/client/petstore/typescript-angular-v14-query-param-object-format/api.base.service.ts +++ b/samples/client/petstore/typescript-angular-v14-query-param-object-format/api.base.service.ts @@ -53,8 +53,8 @@ export class BaseService { // If JSON format is preferred, key must be provided. if (key != null) { return isDeep - ? Object.entries(value as Record).reduce( - (hp, [k, v]) => hp.append(`${key}[${k}]`, v), + ? Object.keys(value as Record).reduce( + (hp, k) => hp.append(`${key}[${k}]`, value[k]), httpParams, ) : httpParams.append(key, JSON.stringify(value)); diff --git a/samples/client/petstore/typescript-angular-v15-provided-in-root/builds/default/api.base.service.ts b/samples/client/petstore/typescript-angular-v15-provided-in-root/builds/default/api.base.service.ts index f8664864f0ba..e2e57d08322d 100644 --- a/samples/client/petstore/typescript-angular-v15-provided-in-root/builds/default/api.base.service.ts +++ b/samples/client/petstore/typescript-angular-v15-provided-in-root/builds/default/api.base.service.ts @@ -53,8 +53,8 @@ export class BaseService { // If JSON format is preferred, key must be provided. if (key != null) { return isDeep - ? Object.entries(value as Record).reduce( - (hp, [k, v]) => hp.append(`${key}[${k}]`, v), + ? Object.keys(value as Record).reduce( + (hp, k) => hp.append(`${key}[${k}]`, value[k]), httpParams, ) : httpParams.append(key, JSON.stringify(value)); diff --git a/samples/client/petstore/typescript-angular-v16-provided-in-root/builds/deep-object/api.base.service.ts b/samples/client/petstore/typescript-angular-v16-provided-in-root/builds/deep-object/api.base.service.ts new file mode 100644 index 000000000000..c78251fdde1d --- /dev/null +++ b/samples/client/petstore/typescript-angular-v16-provided-in-root/builds/deep-object/api.base.service.ts @@ -0,0 +1,83 @@ +/** + * deepobject-query + * + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { CustomHttpParameterCodec } from './encoder'; +import { Configuration } from './configuration'; + +export class BaseService { + protected basePath = 'http://localhost'; + public defaultHeaders = new HttpHeaders(); + public configuration: Configuration; + public encoder: HttpParameterCodec; + + constructor(basePath?: string|string[], configuration?: Configuration) { + this.configuration = configuration || new Configuration(); + if (typeof this.configuration.basePath !== 'string') { + const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined; + if (firstBasePath != undefined) { + basePath = firstBasePath; + } + + if (typeof basePath !== 'string') { + basePath = this.basePath; + } + this.configuration.basePath = basePath; + } + this.encoder = this.configuration.encoder || new CustomHttpParameterCodec(); + } + + protected canConsumeForm(consumes: string[]): boolean { + return consumes.indexOf('multipart/form-data') !== -1; + } + + protected addToHttpParams(httpParams: HttpParams, value: any, key?: string, isDeep: boolean = false): HttpParams { + // If the value is an object (but not a Date), recursively add its keys. + if (typeof value === 'object' && !(value instanceof Date)) { + return this.addToHttpParamsRecursive(httpParams, value, isDeep ? key : undefined, isDeep); + } + return this.addToHttpParamsRecursive(httpParams, value, key); + } + + protected addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string, isDeep: boolean = false): HttpParams { + if (value === null || value === undefined) { + return httpParams; + } + if (typeof value === 'object') { + // If JSON format is preferred, key must be provided. + if (key != null) { + return isDeep + ? Object.keys(value as Record).reduce( + (hp, k) => hp.append(`${key}[${k}]`, value[k]), + httpParams, + ) + : httpParams.append(key, JSON.stringify(value)); + } + // Otherwise, if it's an array, add each element. + if (Array.isArray(value)) { + value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key)); + } else if (value instanceof Date) { + if (key != null) { + httpParams = httpParams.append(key, value.toISOString()); + } else { + throw Error("key may not be null if value is Date"); + } + } else { + Object.keys(value).forEach(k => { + const paramKey = key ? `${key}.${k}` : k; + httpParams = this.addToHttpParamsRecursive(httpParams, value[k], paramKey); + }); + } + return httpParams; + } else if (key != null) { + return httpParams.append(key, value); + } + throw Error("key may not be null if value is not object or array"); + } +} diff --git a/samples/client/petstore/typescript-angular-v16-provided-in-root/builds/default/api.base.service.ts b/samples/client/petstore/typescript-angular-v16-provided-in-root/builds/default/api.base.service.ts index f8664864f0ba..e2e57d08322d 100644 --- a/samples/client/petstore/typescript-angular-v16-provided-in-root/builds/default/api.base.service.ts +++ b/samples/client/petstore/typescript-angular-v16-provided-in-root/builds/default/api.base.service.ts @@ -53,8 +53,8 @@ export class BaseService { // If JSON format is preferred, key must be provided. if (key != null) { return isDeep - ? Object.entries(value as Record).reduce( - (hp, [k, v]) => hp.append(`${key}[${k}]`, v), + ? Object.keys(value as Record).reduce( + (hp, k) => hp.append(`${key}[${k}]`, value[k]), httpParams, ) : httpParams.append(key, JSON.stringify(value)); diff --git a/samples/client/petstore/typescript-angular-v17-provided-in-root/builds/default/api.base.service.ts b/samples/client/petstore/typescript-angular-v17-provided-in-root/builds/default/api.base.service.ts index f8664864f0ba..e2e57d08322d 100644 --- a/samples/client/petstore/typescript-angular-v17-provided-in-root/builds/default/api.base.service.ts +++ b/samples/client/petstore/typescript-angular-v17-provided-in-root/builds/default/api.base.service.ts @@ -53,8 +53,8 @@ export class BaseService { // If JSON format is preferred, key must be provided. if (key != null) { return isDeep - ? Object.entries(value as Record).reduce( - (hp, [k, v]) => hp.append(`${key}[${k}]`, v), + ? Object.keys(value as Record).reduce( + (hp, k) => hp.append(`${key}[${k}]`, value[k]), httpParams, ) : httpParams.append(key, JSON.stringify(value)); diff --git a/samples/client/petstore/typescript-angular-v18-provided-in-root/builds/default/api.base.service.ts b/samples/client/petstore/typescript-angular-v18-provided-in-root/builds/default/api.base.service.ts index f8664864f0ba..e2e57d08322d 100644 --- a/samples/client/petstore/typescript-angular-v18-provided-in-root/builds/default/api.base.service.ts +++ b/samples/client/petstore/typescript-angular-v18-provided-in-root/builds/default/api.base.service.ts @@ -53,8 +53,8 @@ export class BaseService { // If JSON format is preferred, key must be provided. if (key != null) { return isDeep - ? Object.entries(value as Record).reduce( - (hp, [k, v]) => hp.append(`${key}[${k}]`, v), + ? Object.keys(value as Record).reduce( + (hp, k) => hp.append(`${key}[${k}]`, value[k]), httpParams, ) : httpParams.append(key, JSON.stringify(value)); diff --git a/samples/client/petstore/typescript-angular-v19-with-angular-dependency-params/builds/default/api.base.service.ts b/samples/client/petstore/typescript-angular-v19-with-angular-dependency-params/builds/default/api.base.service.ts index f8664864f0ba..e2e57d08322d 100644 --- a/samples/client/petstore/typescript-angular-v19-with-angular-dependency-params/builds/default/api.base.service.ts +++ b/samples/client/petstore/typescript-angular-v19-with-angular-dependency-params/builds/default/api.base.service.ts @@ -53,8 +53,8 @@ export class BaseService { // If JSON format is preferred, key must be provided. if (key != null) { return isDeep - ? Object.entries(value as Record).reduce( - (hp, [k, v]) => hp.append(`${key}[${k}]`, v), + ? Object.keys(value as Record).reduce( + (hp, k) => hp.append(`${key}[${k}]`, value[k]), httpParams, ) : httpParams.append(key, JSON.stringify(value)); diff --git a/samples/client/petstore/typescript-angular-v19/builds/default/api.base.service.ts b/samples/client/petstore/typescript-angular-v19/builds/default/api.base.service.ts index f8664864f0ba..e2e57d08322d 100644 --- a/samples/client/petstore/typescript-angular-v19/builds/default/api.base.service.ts +++ b/samples/client/petstore/typescript-angular-v19/builds/default/api.base.service.ts @@ -53,8 +53,8 @@ export class BaseService { // If JSON format is preferred, key must be provided. if (key != null) { return isDeep - ? Object.entries(value as Record).reduce( - (hp, [k, v]) => hp.append(`${key}[${k}]`, v), + ? Object.keys(value as Record).reduce( + (hp, k) => hp.append(`${key}[${k}]`, value[k]), httpParams, ) : httpParams.append(key, JSON.stringify(value));