Skip to content

Commit

Permalink
[typescript] Default auth method support and optional param object wh…
Browse files Browse the repository at this point in the history
…en all params optional (#11321)

* add default auth

* private

* default when optional params and fix types

* build samples

* remove extra space

* re-add space before default empty

* switch to default authentication method support in config

* generated samples

* null check chaining

* generate samples

* remove extra spaces

* regen samples

* formatting fixes

* more samples

* remove from abstract methods

* samples

* add default to inversify as well

* samples again

* exclude inversify

* samples once more

* samples
  • Loading branch information
davidgamero committed Jan 22, 2022
1 parent 938cc36 commit 28cc286
Show file tree
Hide file tree
Showing 30 changed files with 762 additions and 276 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// TODO: better import syntax?
import { BaseAPIRequestFactory, RequiredError } from './baseapi{{extensionForDeno}}';
import {BaseAPIRequestFactory, RequiredError} from './baseapi{{extensionForDeno}}';
import {Configuration} from '../configuration{{extensionForDeno}}';
import { RequestContext, HttpMethod, ResponseContext, HttpFile} from '../http/http{{extensionForDeno}}';
import {RequestContext, HttpMethod, ResponseContext, HttpFile} from '../http/http{{extensionForDeno}}';
{{#platforms}}
{{#node}}
import * as FormData from "form-data";
Expand All @@ -11,6 +11,7 @@ import { URLSearchParams } from 'url';
import {ObjectSerializer} from '../models/ObjectSerializer{{extensionForDeno}}';
import {ApiException} from './exception{{extensionForDeno}}';
import {canConsumeForm, isCodeInRange} from '../util{{extensionForDeno}}';
import {SecurityAuthentication} from '../auth/auth';

{{#useInversify}}
import { injectable } from "inversify";
Expand Down Expand Up @@ -151,15 +152,22 @@ export class {{classname}}RequestFactory extends BaseAPIRequestFactory {
{{/bodyParam}}

{{#hasAuthMethods}}
let authMethod = null;
let authMethod: SecurityAuthentication | undefined;
{{/hasAuthMethods}}
{{#authMethods}}
// Apply auth methods
authMethod = _config.authMethods["{{name}}"]
if (authMethod) {
await authMethod.applySecurityAuthentication(requestContext);
if (authMethod?.applySecurityAuthentication) {
await authMethod?.applySecurityAuthentication(requestContext);
}
{{/authMethods}}

{{^useInversify}}
const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default
if (defaultAuth?.applySecurityAuthentication) {
await defaultAuth?.applySecurityAuthentication(requestContext);
}
{{/useInversify}}

return requestContext;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,13 +107,19 @@ export class {{#lambda.pascalcase}}{{name}}{{/lambda.pascalcase}}Authentication
{{/authMethods}}

export type AuthMethods = {
{{^useInversify}}
"default"?: SecurityAuthentication,
{{/useInversify}}
{{#authMethods}}
"{{name}}"?: SecurityAuthentication{{^-last}},{{/-last}}
{{/authMethods}}
}
{{#useInversify}}

export const authMethodServices = {
{{^useInversify}}
"default"?: SecurityAuthentication,
{{/useInversify}}
{{#authMethods}}
"{{name}}": {{#lambda.pascalcase}}{{name}}{{/lambda.pascalcase}}Authentication{{^-last}},{{/-last}}
{{/authMethods}}
Expand All @@ -126,6 +132,9 @@ export type HttpBearerConfiguration = { tokenProvider: TokenProvider };
export type OAuth2Configuration = { accessToken: string };

export type AuthMethodsConfiguration = {
{{^useInversify}}
"default"?: SecurityAuthentication,
{{/useInversify}}
{{#authMethods}}
"{{name}}"?: {{#isApiKey}}ApiKeyConfiguration{{/isApiKey}}{{#isBasicBasic}}HttpBasicConfiguration{{/isBasicBasic}}{{#isBasicBearer}}HttpBearerConfiguration{{/isBasicBearer}}{{#isOAuth}}OAuth2Configuration{{/isOAuth}}{{^-last}},{{/-last}}
{{/authMethods}}
Expand All @@ -141,6 +150,9 @@ export function configureAuthMethods(config: AuthMethodsConfiguration | undefine
if (!config) {
return authMethods;
}
{{^useInversify}}
authMethods["default"] = config["default"]
{{/useInversify}}

{{#authMethods}}
if (config["{{name}}"]) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ export class Object{{classname}} {
{{/summary}}
* @param param the request object
*/
public {{nickname}}(param: {{classname}}{{operationIdCamelCase}}Request, options?: Configuration): {{#useRxJS}}Observable{{/useRxJS}}{{^useRxJS}}Promise{{/useRxJS}}<{{{returnType}}}{{^returnType}}void{{/returnType}}> {
public {{nickname}}(param: {{classname}}{{operationIdCamelCase}}Request{{^hasRequiredParams}} = {}{{/hasRequiredParams}}, options?: Configuration): {{#useRxJS}}Observable{{/useRxJS}}{{^useRxJS}}Promise{{/useRxJS}}<{{{returnType}}}{{^returnType}}void{{/returnType}}> {
return this.api.{{nickname}}({{#allParams}}param.{{paramName}}, {{/allParams}} options){{^useRxJS}}.toPromise(){{/useRxJS}};
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
// TODO: better import syntax?
import { BaseAPIRequestFactory, RequiredError } from './baseapi';
import {BaseAPIRequestFactory, RequiredError} from './baseapi';
import {Configuration} from '../configuration';
import { RequestContext, HttpMethod, ResponseContext, HttpFile} from '../http/http';
import {RequestContext, HttpMethod, ResponseContext, HttpFile} from '../http/http';
import {ObjectSerializer} from '../models/ObjectSerializer';
import {ApiException} from './exception';
import {canConsumeForm, isCodeInRange} from '../util';
import {SecurityAuthentication} from '../auth/auth';


import { Cat } from '../models/Cat';
Expand Down Expand Up @@ -44,6 +45,11 @@ export class DefaultApiRequestFactory extends BaseAPIRequestFactory {
);
requestContext.setBody(serializedBody);


const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default
if (defaultAuth?.applySecurityAuthentication) {
await defaultAuth?.applySecurityAuthentication(requestContext);
}

return requestContext;
}
Expand Down Expand Up @@ -74,6 +80,11 @@ export class DefaultApiRequestFactory extends BaseAPIRequestFactory {
);
requestContext.setBody(serializedBody);


const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default
if (defaultAuth?.applySecurityAuthentication) {
await defaultAuth?.applySecurityAuthentication(requestContext);
}

return requestContext;
}
Expand Down Expand Up @@ -104,6 +115,11 @@ export class DefaultApiRequestFactory extends BaseAPIRequestFactory {
);
requestContext.setBody(serializedBody);


const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default
if (defaultAuth?.applySecurityAuthentication) {
await defaultAuth?.applySecurityAuthentication(requestContext);
}

return requestContext;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ export interface TokenProvider {


export type AuthMethods = {
"default"?: SecurityAuthentication,
}

export type ApiKeyConfiguration = string;
Expand All @@ -32,6 +33,7 @@ export type HttpBearerConfiguration = { tokenProvider: TokenProvider };
export type OAuth2Configuration = { accessToken: string };

export type AuthMethodsConfiguration = {
"default"?: SecurityAuthentication,
}

/**
Expand All @@ -44,6 +46,7 @@ export function configureAuthMethods(config: AuthMethodsConfiguration | undefine
if (!config) {
return authMethods;
}
authMethods["default"] = config["default"]

return authMethods;
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,21 +50,21 @@ export class ObjectDefaultApi {
/**
* @param param the request object
*/
public filePost(param: DefaultApiFilePostRequest, options?: Configuration): Promise<void> {
public filePost(param: DefaultApiFilePostRequest = {}, options?: Configuration): Promise<void> {
return this.api.filePost(param.inlineObject, options).toPromise();
}

/**
* @param param the request object
*/
public petsFilteredPatch(param: DefaultApiPetsFilteredPatchRequest, options?: Configuration): Promise<void> {
public petsFilteredPatch(param: DefaultApiPetsFilteredPatchRequest = {}, options?: Configuration): Promise<void> {
return this.api.petsFilteredPatch(param.petByAgePetByType, options).toPromise();
}

/**
* @param param the request object
*/
public petsPatch(param: DefaultApiPetsPatchRequest, options?: Configuration): Promise<void> {
public petsPatch(param: DefaultApiPetsPatchRequest = {}, options?: Configuration): Promise<void> {
return this.api.petsPatch(param.catDog, options).toPromise();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
// TODO: better import syntax?
import { BaseAPIRequestFactory, RequiredError } from './baseapi';
import {BaseAPIRequestFactory, RequiredError} from './baseapi';
import {Configuration} from '../configuration';
import { RequestContext, HttpMethod, ResponseContext, HttpFile} from '../http/http';
import {RequestContext, HttpMethod, ResponseContext, HttpFile} from '../http/http';
import * as FormData from "form-data";
import { URLSearchParams } from 'url';
import {ObjectSerializer} from '../models/ObjectSerializer';
import {ApiException} from './exception';
import {canConsumeForm, isCodeInRange} from '../util';
import {SecurityAuthentication} from '../auth/auth';


import { ApiResponse } from '../models/ApiResponse';
Expand Down Expand Up @@ -51,11 +52,16 @@ export class PetApiRequestFactory extends BaseAPIRequestFactory {
);
requestContext.setBody(serializedBody);

let authMethod = null;
let authMethod: SecurityAuthentication | undefined;
// Apply auth methods
authMethod = _config.authMethods["petstore_auth"]
if (authMethod) {
await authMethod.applySecurityAuthentication(requestContext);
if (authMethod?.applySecurityAuthentication) {
await authMethod?.applySecurityAuthentication(requestContext);
}

const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default
if (defaultAuth?.applySecurityAuthentication) {
await defaultAuth?.applySecurityAuthentication(requestContext);
}

return requestContext;
Expand Down Expand Up @@ -88,11 +94,16 @@ export class PetApiRequestFactory extends BaseAPIRequestFactory {
requestContext.setHeaderParam("api_key", ObjectSerializer.serialize(apiKey, "string", ""));


let authMethod = null;
let authMethod: SecurityAuthentication | undefined;
// Apply auth methods
authMethod = _config.authMethods["petstore_auth"]
if (authMethod) {
await authMethod.applySecurityAuthentication(requestContext);
if (authMethod?.applySecurityAuthentication) {
await authMethod?.applySecurityAuthentication(requestContext);
}

const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default
if (defaultAuth?.applySecurityAuthentication) {
await defaultAuth?.applySecurityAuthentication(requestContext);
}

return requestContext;
Expand Down Expand Up @@ -125,11 +136,16 @@ export class PetApiRequestFactory extends BaseAPIRequestFactory {
}


let authMethod = null;
let authMethod: SecurityAuthentication | undefined;
// Apply auth methods
authMethod = _config.authMethods["petstore_auth"]
if (authMethod) {
await authMethod.applySecurityAuthentication(requestContext);
if (authMethod?.applySecurityAuthentication) {
await authMethod?.applySecurityAuthentication(requestContext);
}

const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default
if (defaultAuth?.applySecurityAuthentication) {
await defaultAuth?.applySecurityAuthentication(requestContext);
}

return requestContext;
Expand Down Expand Up @@ -162,11 +178,16 @@ export class PetApiRequestFactory extends BaseAPIRequestFactory {
}


let authMethod = null;
let authMethod: SecurityAuthentication | undefined;
// Apply auth methods
authMethod = _config.authMethods["petstore_auth"]
if (authMethod) {
await authMethod.applySecurityAuthentication(requestContext);
if (authMethod?.applySecurityAuthentication) {
await authMethod?.applySecurityAuthentication(requestContext);
}

const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default
if (defaultAuth?.applySecurityAuthentication) {
await defaultAuth?.applySecurityAuthentication(requestContext);
}

return requestContext;
Expand Down Expand Up @@ -195,11 +216,16 @@ export class PetApiRequestFactory extends BaseAPIRequestFactory {
requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8")


let authMethod = null;
let authMethod: SecurityAuthentication | undefined;
// Apply auth methods
authMethod = _config.authMethods["api_key"]
if (authMethod) {
await authMethod.applySecurityAuthentication(requestContext);
if (authMethod?.applySecurityAuthentication) {
await authMethod?.applySecurityAuthentication(requestContext);
}

const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default
if (defaultAuth?.applySecurityAuthentication) {
await defaultAuth?.applySecurityAuthentication(requestContext);
}

return requestContext;
Expand Down Expand Up @@ -239,11 +265,16 @@ export class PetApiRequestFactory extends BaseAPIRequestFactory {
);
requestContext.setBody(serializedBody);

let authMethod = null;
let authMethod: SecurityAuthentication | undefined;
// Apply auth methods
authMethod = _config.authMethods["petstore_auth"]
if (authMethod) {
await authMethod.applySecurityAuthentication(requestContext);
if (authMethod?.applySecurityAuthentication) {
await authMethod?.applySecurityAuthentication(requestContext);
}

const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default
if (defaultAuth?.applySecurityAuthentication) {
await defaultAuth?.applySecurityAuthentication(requestContext);
}

return requestContext;
Expand Down Expand Up @@ -304,11 +335,16 @@ export class PetApiRequestFactory extends BaseAPIRequestFactory {
requestContext.setHeaderParam("Content-Type", contentType);
}

let authMethod = null;
let authMethod: SecurityAuthentication | undefined;
// Apply auth methods
authMethod = _config.authMethods["petstore_auth"]
if (authMethod) {
await authMethod.applySecurityAuthentication(requestContext);
if (authMethod?.applySecurityAuthentication) {
await authMethod?.applySecurityAuthentication(requestContext);
}

const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default
if (defaultAuth?.applySecurityAuthentication) {
await defaultAuth?.applySecurityAuthentication(requestContext);
}

return requestContext;
Expand Down Expand Up @@ -371,11 +407,16 @@ export class PetApiRequestFactory extends BaseAPIRequestFactory {
requestContext.setHeaderParam("Content-Type", contentType);
}

let authMethod = null;
let authMethod: SecurityAuthentication | undefined;
// Apply auth methods
authMethod = _config.authMethods["petstore_auth"]
if (authMethod) {
await authMethod.applySecurityAuthentication(requestContext);
if (authMethod?.applySecurityAuthentication) {
await authMethod?.applySecurityAuthentication(requestContext);
}

const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default
if (defaultAuth?.applySecurityAuthentication) {
await defaultAuth?.applySecurityAuthentication(requestContext);
}

return requestContext;
Expand Down
Loading

0 comments on commit 28cc286

Please sign in to comment.