[csharp][generichost] Added event on http response to facilitate server health tracking (#16046)

* added event on http response to facility server health tracking

* renamed a file

* handled the renamed file
This commit is contained in:
devhl-labs 2023-07-10 04:10:04 -04:00 committed by GitHub
parent aa1e9097ea
commit fe78be405e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
41 changed files with 2130 additions and 339 deletions

View File

@ -1025,7 +1025,7 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen {
supportingFiles.add(new SupportingFile("ApiFactory.mustache", clientPackageDir, "ApiFactory.cs"));
supportingFiles.add(new SupportingFile("DateTimeJsonConverter.mustache", clientPackageDir, "DateTimeJsonConverter.cs"));
supportingFiles.add(new SupportingFile("DateTimeNullableJsonConverter.mustache", clientPackageDir, "DateTimeNullableJsonConverter.cs"));
supportingFiles.add(new SupportingFile("ApiResponseEventArgs.mustache", clientPackageDir, "ApiResponseEventArgs.cs"));
supportingFiles.add(new SupportingFile("ApiResponseEventArgs`1.mustache", clientPackageDir, "ApiResponseEventArgs.cs"));
supportingFiles.add(new SupportingFile("JsonSerializerOptionsProvider.mustache", clientPackageDir, "JsonSerializerOptionsProvider.cs"));
supportingFiles.add(new SupportingFile("CookieContainer.mustache", clientPackageDir, "CookieContainer.cs"));
supportingFiles.add(new SupportingFile("Option.mustache", clientPackageDir, "Option.cs"));

View File

@ -1,58 +0,0 @@
using System;
using System.Net;
namespace {{packageName}}.{{clientPackage}}
{
/// <summary>
/// Useful for tracking server health.
/// </summary>
{{>visibility}} class ApiResponseEventArgs : EventArgs
{
/// <summary>
/// The time the request was sent.
/// </summary>
public DateTime RequestedAt { get; }
/// <summary>
/// The time the response was received.
/// </summary>
public DateTime ReceivedAt { get; }
/// <summary>
/// The HttpStatusCode received.
/// </summary>
public HttpStatusCode HttpStatus { get; }
/// <summary>
/// The path requested.
/// </summary>
public string PathFormat { get; }
/// <summary>
/// The elapsed time from request to response.
/// </summary>
public TimeSpan ToTimeSpan => this.ReceivedAt - this.RequestedAt;
/// <summary>
/// The path
/// </summary>
public string Path { get; }
/// <summary>
/// The event args used to track server health.
/// </summary>
/// <param name="requestedAt"></param>
/// <param name="receivedAt"></param>
/// <param name="httpStatus"></param>
/// <param name="pathFormat"></param>
/// <param name="path"></param>
public ApiResponseEventArgs(DateTime requestedAt, DateTime receivedAt, HttpStatusCode httpStatus, string pathFormat, string path)
{
RequestedAt = requestedAt;
ReceivedAt = receivedAt;
HttpStatus = httpStatus;
PathFormat = pathFormat;
Path = path;
}
}
}

View File

@ -0,0 +1,24 @@
using System;
namespace {{packageName}}.{{clientPackage}}
{
/// <summary>
/// Useful for tracking server health
/// </summary>
{{>visibility}} class ApiResponseEventArgs<T> : EventArgs
{
/// <summary>
/// The ApiResponse
/// </summary>
public ApiResponse<T> ApiResponse { get; }
/// <summary>
/// The ApiResponseEventArgs
/// </summary>
/// <param name="apiResponse"></param>
public ApiResponseEventArgs(ApiResponse<T> apiResponse)
{
ApiResponse = apiResponse;
}
}
}

View File

@ -49,6 +49,7 @@ namespace {{packageName}}.{{clientPackage}}
{{/models}}
_services.AddSingleton(new JsonSerializerOptionsProvider(_jsonOptions));
_services.AddSingleton<IApiFactory, ApiFactory>();{{#apiInfo}}{{#apis}}
_services.AddSingleton<{{classname}}Events>();
_services.AddTransient<{{interfacePrefix}}{{classname}}, {{classname}}>();{{/apis}}{{/apiInfo}}
}

View File

@ -13,6 +13,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using {{packageName}}.{{clientPackage}};
using {{packageName}}.{{apiPackage}};
{{#hasImport}}
using {{packageName}}.{{modelPackage}};
{{/hasImport}}
@ -26,6 +27,11 @@ namespace {{packageName}}.{{interfacePrefix}}{{apiPackage}}
/// </summary>
{{>visibility}} interface {{interfacePrefix}}{{classname}} : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
{{classname}}Events Events { get; }
{{#operation}}
/// <summary>
/// {{summary}}
@ -62,6 +68,28 @@ namespace {{packageName}}.{{interfacePrefix}}{{apiPackage}}
namespace {{packageName}}.{{apiPackage}}
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
{{>visibility}} class {{classname}}Events
{
{{#lambda.trimTrailingWhiteSpace}}
{{#operation}}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<{{{returnType}}}{{^returnType}}object{{/returnType}}>>{{nrt?}} On{{operationId}};
internal void ExecuteOn{{operationId}}(ApiResponse<{{{returnType}}}{{^returnType}}object{{/returnType}}> apiResponse)
{
On{{operationId}}?.Invoke(this, new ApiResponseEventArgs<{{{returnType}}}{{^returnType}}object{{/returnType}}>(apiResponse));
}
{{/operation}}
{{/lambda.trimTrailingWhiteSpace}}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -77,7 +105,12 @@ namespace {{packageName}}.{{apiPackage}}
/// <summary>
/// The HttpClient
/// </summary>
public HttpClient HttpClient { get; }{{#hasApiKeyMethods}}
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public {{classname}}Events Events { get; }{{#hasApiKeyMethods}}
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
@ -108,7 +141,7 @@ namespace {{packageName}}.{{apiPackage}}
/// Initializes a new instance of the <see cref="{{classname}}"/> class.
/// </summary>
/// <returns></returns>
public {{classname}}(ILogger<{{classname}}> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider{{#hasApiKeyMethods}},
public {{classname}}(ILogger<{{classname}}> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, {{classname}}Events {{#lambda.camelcase_param}}{{classname}}Events{{/lambda.camelcase_param}}{{#hasApiKeyMethods}},
TokenProvider<ApiKeyToken> apiKeyProvider{{/hasApiKeyMethods}}{{#hasHttpBearerMethods}},
TokenProvider<BearerToken> bearerTokenProvider{{/hasHttpBearerMethods}}{{#hasHttpBasicMethods}},
TokenProvider<BasicToken> basicTokenProvider{{/hasHttpBasicMethods}}{{#hasHttpSignatureMethods}},
@ -117,7 +150,8 @@ namespace {{packageName}}.{{apiPackage}}
{
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;{{#hasApiKeyMethods}}
HttpClient = httpClient;
Events = {{#lambda.camelcase_param}}{{classname}}Events{{/lambda.camelcase_param}};{{#hasApiKeyMethods}}
ApiKeyProvider = apiKeyProvider;{{/hasApiKeyMethods}}{{#hasHttpBearerMethods}}
BearerTokenProvider = bearerTokenProvider;{{/hasHttpBearerMethods}}{{#hasHttpBasicMethods}}
BasicTokenProvider = basicTokenProvider;{{/hasHttpBasicMethods}}{{#hasHttpSignatureMethods}}
@ -496,10 +530,12 @@ namespace {{packageName}}.{{apiPackage}}
{
string responseContentLocalVar = await httpResponseMessageLocalVar.Content.ReadAsStringAsync({{#net60OrLater}}cancellationToken{{/net60OrLater}}).ConfigureAwait(false);
ApiResponse<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}object{{/returnType}}> apiResponseLocalVar = new ApiResponse<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}object{{/returnType}}>(httpRequestMessageLocalVar, httpResponseMessageLocalVar, responseContentLocalVar, "{{path}}", requestedAtLocalVar, _jsonSerializerOptions);
ApiResponse<{{{returnType}}}{{^returnType}}object{{/returnType}}> apiResponseLocalVar = new ApiResponse<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}object{{/returnType}}>(httpRequestMessageLocalVar, httpResponseMessageLocalVar, responseContentLocalVar, "{{path}}", requestedAtLocalVar, _jsonSerializerOptions);
After{{operationId}}DefaultImplementation({{#lambda.joinWithComma}}apiResponseLocalVar {{#allParams}}{{paramName}} {{/allParams}}{{/lambda.joinWithComma}});
Events.ExecuteOn{{operationId}}(apiResponseLocalVar);
{{#authMethods}}
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)

View File

@ -19,6 +19,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -29,6 +30,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IAnotherFakeApi : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
AnotherFakeApiEvents Events { get; }
/// <summary>
/// To test special tags
/// </summary>
@ -56,6 +62,23 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class AnotherFakeApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<ModelClient>>? OnCall123TestSpecialTags;
internal void ExecuteOnCall123TestSpecialTags(ApiResponse<ModelClient> apiResponse)
{
OnCall123TestSpecialTags?.Invoke(this, new ApiResponseEventArgs<ModelClient>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -73,6 +96,11 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public AnotherFakeApiEvents Events { get; }
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
/// </summary>
@ -102,7 +130,7 @@ namespace Org.OpenAPITools.Api
/// Initializes a new instance of the <see cref="AnotherFakeApi"/> class.
/// </summary>
/// <returns></returns>
public AnotherFakeApi(ILogger<AnotherFakeApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider,
public AnotherFakeApi(ILogger<AnotherFakeApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, AnotherFakeApiEvents anotherFakeApiEvents,
TokenProvider<ApiKeyToken> apiKeyProvider,
TokenProvider<BearerToken> bearerTokenProvider,
TokenProvider<BasicToken> basicTokenProvider,
@ -112,6 +140,7 @@ namespace Org.OpenAPITools.Api
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = anotherFakeApiEvents;
ApiKeyProvider = apiKeyProvider;
BearerTokenProvider = bearerTokenProvider;
BasicTokenProvider = basicTokenProvider;
@ -253,6 +282,8 @@ namespace Org.OpenAPITools.Api
AfterCall123TestSpecialTagsDefaultImplementation(apiResponseLocalVar, modelClient);
Events.ExecuteOnCall123TestSpecialTags(apiResponseLocalVar);
return apiResponseLocalVar;
}
}

View File

@ -19,6 +19,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -29,6 +30,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IDefaultApi : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
DefaultApiEvents Events { get; }
/// <summary>
///
/// </summary>
@ -98,6 +104,43 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class DefaultApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<FooGetDefaultResponse>>? OnFooGet;
internal void ExecuteOnFooGet(ApiResponse<FooGetDefaultResponse> apiResponse)
{
OnFooGet?.Invoke(this, new ApiResponseEventArgs<FooGetDefaultResponse>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>>? OnGetCountry;
internal void ExecuteOnGetCountry(ApiResponse<object> apiResponse)
{
OnGetCountry?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<List<Guid>>>? OnHello;
internal void ExecuteOnHello(ApiResponse<List<Guid>> apiResponse)
{
OnHello?.Invoke(this, new ApiResponseEventArgs<List<Guid>>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -115,6 +158,11 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public DefaultApiEvents Events { get; }
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
/// </summary>
@ -144,7 +192,7 @@ namespace Org.OpenAPITools.Api
/// Initializes a new instance of the <see cref="DefaultApi"/> class.
/// </summary>
/// <returns></returns>
public DefaultApi(ILogger<DefaultApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider,
public DefaultApi(ILogger<DefaultApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, DefaultApiEvents defaultApiEvents,
TokenProvider<ApiKeyToken> apiKeyProvider,
TokenProvider<BearerToken> bearerTokenProvider,
TokenProvider<BasicToken> basicTokenProvider,
@ -154,6 +202,7 @@ namespace Org.OpenAPITools.Api
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = defaultApiEvents;
ApiKeyProvider = apiKeyProvider;
BearerTokenProvider = bearerTokenProvider;
BasicTokenProvider = basicTokenProvider;
@ -259,6 +308,8 @@ namespace Org.OpenAPITools.Api
AfterFooGetDefaultImplementation(apiResponseLocalVar);
Events.ExecuteOnFooGet(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -401,6 +452,8 @@ namespace Org.OpenAPITools.Api
AfterGetCountryDefaultImplementation(apiResponseLocalVar, country);
Events.ExecuteOnGetCountry(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -510,6 +563,8 @@ namespace Org.OpenAPITools.Api
AfterHelloDefaultImplementation(apiResponseLocalVar);
Events.ExecuteOnHello(apiResponseLocalVar);
return apiResponseLocalVar;
}
}

View File

@ -19,6 +19,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -29,6 +30,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IFakeApi : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
FakeApiEvents Events { get; }
/// <summary>
/// Health check endpoint
/// </summary>
@ -446,6 +452,163 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class FakeApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<HealthCheckResult>>? OnFakeHealthGet;
internal void ExecuteOnFakeHealthGet(ApiResponse<HealthCheckResult> apiResponse)
{
OnFakeHealthGet?.Invoke(this, new ApiResponseEventArgs<HealthCheckResult>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<bool>>? OnFakeOuterBooleanSerialize;
internal void ExecuteOnFakeOuterBooleanSerialize(ApiResponse<bool> apiResponse)
{
OnFakeOuterBooleanSerialize?.Invoke(this, new ApiResponseEventArgs<bool>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<OuterComposite>>? OnFakeOuterCompositeSerialize;
internal void ExecuteOnFakeOuterCompositeSerialize(ApiResponse<OuterComposite> apiResponse)
{
OnFakeOuterCompositeSerialize?.Invoke(this, new ApiResponseEventArgs<OuterComposite>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<decimal>>? OnFakeOuterNumberSerialize;
internal void ExecuteOnFakeOuterNumberSerialize(ApiResponse<decimal> apiResponse)
{
OnFakeOuterNumberSerialize?.Invoke(this, new ApiResponseEventArgs<decimal>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<string>>? OnFakeOuterStringSerialize;
internal void ExecuteOnFakeOuterStringSerialize(ApiResponse<string> apiResponse)
{
OnFakeOuterStringSerialize?.Invoke(this, new ApiResponseEventArgs<string>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<List<OuterEnum>>>? OnGetArrayOfEnums;
internal void ExecuteOnGetArrayOfEnums(ApiResponse<List<OuterEnum>> apiResponse)
{
OnGetArrayOfEnums?.Invoke(this, new ApiResponseEventArgs<List<OuterEnum>>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>>? OnTestBodyWithFileSchema;
internal void ExecuteOnTestBodyWithFileSchema(ApiResponse<object> apiResponse)
{
OnTestBodyWithFileSchema?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>>? OnTestBodyWithQueryParams;
internal void ExecuteOnTestBodyWithQueryParams(ApiResponse<object> apiResponse)
{
OnTestBodyWithQueryParams?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<ModelClient>>? OnTestClientModel;
internal void ExecuteOnTestClientModel(ApiResponse<ModelClient> apiResponse)
{
OnTestClientModel?.Invoke(this, new ApiResponseEventArgs<ModelClient>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>>? OnTestEndpointParameters;
internal void ExecuteOnTestEndpointParameters(ApiResponse<object> apiResponse)
{
OnTestEndpointParameters?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>>? OnTestEnumParameters;
internal void ExecuteOnTestEnumParameters(ApiResponse<object> apiResponse)
{
OnTestEnumParameters?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>>? OnTestGroupParameters;
internal void ExecuteOnTestGroupParameters(ApiResponse<object> apiResponse)
{
OnTestGroupParameters?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>>? OnTestInlineAdditionalProperties;
internal void ExecuteOnTestInlineAdditionalProperties(ApiResponse<object> apiResponse)
{
OnTestInlineAdditionalProperties?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>>? OnTestJsonFormData;
internal void ExecuteOnTestJsonFormData(ApiResponse<object> apiResponse)
{
OnTestJsonFormData?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>>? OnTestQueryParameterCollectionFormat;
internal void ExecuteOnTestQueryParameterCollectionFormat(ApiResponse<object> apiResponse)
{
OnTestQueryParameterCollectionFormat?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -463,6 +626,11 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public FakeApiEvents Events { get; }
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
/// </summary>
@ -492,7 +660,7 @@ namespace Org.OpenAPITools.Api
/// Initializes a new instance of the <see cref="FakeApi"/> class.
/// </summary>
/// <returns></returns>
public FakeApi(ILogger<FakeApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider,
public FakeApi(ILogger<FakeApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, FakeApiEvents fakeApiEvents,
TokenProvider<ApiKeyToken> apiKeyProvider,
TokenProvider<BearerToken> bearerTokenProvider,
TokenProvider<BasicToken> basicTokenProvider,
@ -502,6 +670,7 @@ namespace Org.OpenAPITools.Api
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = fakeApiEvents;
ApiKeyProvider = apiKeyProvider;
BearerTokenProvider = bearerTokenProvider;
BasicTokenProvider = basicTokenProvider;
@ -607,6 +776,8 @@ namespace Org.OpenAPITools.Api
AfterFakeHealthGetDefaultImplementation(apiResponseLocalVar);
Events.ExecuteOnFakeHealthGet(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -740,6 +911,8 @@ namespace Org.OpenAPITools.Api
AfterFakeOuterBooleanSerializeDefaultImplementation(apiResponseLocalVar, body);
Events.ExecuteOnFakeOuterBooleanSerialize(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -886,6 +1059,8 @@ namespace Org.OpenAPITools.Api
AfterFakeOuterCompositeSerializeDefaultImplementation(apiResponseLocalVar, outerComposite);
Events.ExecuteOnFakeOuterCompositeSerialize(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1019,6 +1194,8 @@ namespace Org.OpenAPITools.Api
AfterFakeOuterNumberSerializeDefaultImplementation(apiResponseLocalVar, body);
Events.ExecuteOnFakeOuterNumberSerialize(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1177,6 +1354,8 @@ namespace Org.OpenAPITools.Api
AfterFakeOuterStringSerializeDefaultImplementation(apiResponseLocalVar, requiredStringUuid, body);
Events.ExecuteOnFakeOuterStringSerialize(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1286,6 +1465,8 @@ namespace Org.OpenAPITools.Api
AfterGetArrayOfEnumsDefaultImplementation(apiResponseLocalVar);
Events.ExecuteOnGetArrayOfEnums(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1422,6 +1603,8 @@ namespace Org.OpenAPITools.Api
AfterTestBodyWithFileSchemaDefaultImplementation(apiResponseLocalVar, fileSchemaTestClass);
Events.ExecuteOnTestBodyWithFileSchema(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1574,6 +1757,8 @@ namespace Org.OpenAPITools.Api
AfterTestBodyWithQueryParamsDefaultImplementation(apiResponseLocalVar, user, query);
Events.ExecuteOnTestBodyWithQueryParams(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1719,6 +1904,8 @@ namespace Org.OpenAPITools.Api
AfterTestClientModelDefaultImplementation(apiResponseLocalVar, modelClient);
Events.ExecuteOnTestClientModel(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -2003,6 +2190,8 @@ namespace Org.OpenAPITools.Api
AfterTestEndpointParametersDefaultImplementation(apiResponseLocalVar, varByte, number, varDouble, patternWithoutDelimiter, date, binary, varFloat, integer, int32, int64, varString, password, callback, dateTime);
Events.ExecuteOnTestEndpointParameters(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -2235,6 +2424,8 @@ namespace Org.OpenAPITools.Api
AfterTestEnumParametersDefaultImplementation(apiResponseLocalVar, enumHeaderStringArray, enumQueryStringArray, enumQueryDouble, enumQueryInteger, enumFormStringArray, enumHeaderString, enumQueryString, enumFormString);
Events.ExecuteOnTestEnumParameters(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -2401,6 +2592,8 @@ namespace Org.OpenAPITools.Api
AfterTestGroupParametersDefaultImplementation(apiResponseLocalVar, requiredBooleanGroup, requiredStringGroup, requiredInt64Group, booleanGroup, stringGroup, int64Group);
Events.ExecuteOnTestGroupParameters(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -2541,6 +2734,8 @@ namespace Org.OpenAPITools.Api
AfterTestInlineAdditionalPropertiesDefaultImplementation(apiResponseLocalVar, requestBody);
Events.ExecuteOnTestInlineAdditionalProperties(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -2695,6 +2890,8 @@ namespace Org.OpenAPITools.Api
AfterTestJsonFormDataDefaultImplementation(apiResponseLocalVar, param, param2);
Events.ExecuteOnTestJsonFormData(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -2908,6 +3105,8 @@ namespace Org.OpenAPITools.Api
AfterTestQueryParameterCollectionFormatDefaultImplementation(apiResponseLocalVar, pipe, ioutil, http, url, context, requiredNotNullable, requiredNullable, notRequiredNotNullable, notRequiredNullable);
Events.ExecuteOnTestQueryParameterCollectionFormat(apiResponseLocalVar);
return apiResponseLocalVar;
}
}

View File

@ -19,6 +19,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -29,6 +30,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IFakeClassnameTags123Api : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
FakeClassnameTags123ApiEvents Events { get; }
/// <summary>
/// To test class name in snake case
/// </summary>
@ -56,6 +62,23 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class FakeClassnameTags123ApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<ModelClient>>? OnTestClassname;
internal void ExecuteOnTestClassname(ApiResponse<ModelClient> apiResponse)
{
OnTestClassname?.Invoke(this, new ApiResponseEventArgs<ModelClient>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -73,6 +96,11 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public FakeClassnameTags123ApiEvents Events { get; }
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
/// </summary>
@ -102,7 +130,7 @@ namespace Org.OpenAPITools.Api
/// Initializes a new instance of the <see cref="FakeClassnameTags123Api"/> class.
/// </summary>
/// <returns></returns>
public FakeClassnameTags123Api(ILogger<FakeClassnameTags123Api> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider,
public FakeClassnameTags123Api(ILogger<FakeClassnameTags123Api> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, FakeClassnameTags123ApiEvents fakeClassnameTags123ApiEvents,
TokenProvider<ApiKeyToken> apiKeyProvider,
TokenProvider<BearerToken> bearerTokenProvider,
TokenProvider<BasicToken> basicTokenProvider,
@ -112,6 +140,7 @@ namespace Org.OpenAPITools.Api
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = fakeClassnameTags123ApiEvents;
ApiKeyProvider = apiKeyProvider;
BearerTokenProvider = bearerTokenProvider;
BasicTokenProvider = basicTokenProvider;
@ -264,6 +293,8 @@ namespace Org.OpenAPITools.Api
AfterTestClassnameDefaultImplementation(apiResponseLocalVar, modelClient);
Events.ExecuteOnTestClassname(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();

View File

@ -19,6 +19,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -29,6 +30,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IPetApi : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
PetApiEvents Events { get; }
/// <summary>
/// Add a new pet to the store
/// </summary>
@ -254,6 +260,103 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class PetApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>>? OnAddPet;
internal void ExecuteOnAddPet(ApiResponse<object> apiResponse)
{
OnAddPet?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>>? OnDeletePet;
internal void ExecuteOnDeletePet(ApiResponse<object> apiResponse)
{
OnDeletePet?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<List<Pet>>>? OnFindPetsByStatus;
internal void ExecuteOnFindPetsByStatus(ApiResponse<List<Pet>> apiResponse)
{
OnFindPetsByStatus?.Invoke(this, new ApiResponseEventArgs<List<Pet>>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<List<Pet>>>? OnFindPetsByTags;
internal void ExecuteOnFindPetsByTags(ApiResponse<List<Pet>> apiResponse)
{
OnFindPetsByTags?.Invoke(this, new ApiResponseEventArgs<List<Pet>>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<Pet>>? OnGetPetById;
internal void ExecuteOnGetPetById(ApiResponse<Pet> apiResponse)
{
OnGetPetById?.Invoke(this, new ApiResponseEventArgs<Pet>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>>? OnUpdatePet;
internal void ExecuteOnUpdatePet(ApiResponse<object> apiResponse)
{
OnUpdatePet?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>>? OnUpdatePetWithForm;
internal void ExecuteOnUpdatePetWithForm(ApiResponse<object> apiResponse)
{
OnUpdatePetWithForm?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<ApiResponse>>? OnUploadFile;
internal void ExecuteOnUploadFile(ApiResponse<ApiResponse> apiResponse)
{
OnUploadFile?.Invoke(this, new ApiResponseEventArgs<ApiResponse>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<ApiResponse>>? OnUploadFileWithRequiredFile;
internal void ExecuteOnUploadFileWithRequiredFile(ApiResponse<ApiResponse> apiResponse)
{
OnUploadFileWithRequiredFile?.Invoke(this, new ApiResponseEventArgs<ApiResponse>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -271,6 +374,11 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public PetApiEvents Events { get; }
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
/// </summary>
@ -300,7 +408,7 @@ namespace Org.OpenAPITools.Api
/// Initializes a new instance of the <see cref="PetApi"/> class.
/// </summary>
/// <returns></returns>
public PetApi(ILogger<PetApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider,
public PetApi(ILogger<PetApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, PetApiEvents petApiEvents,
TokenProvider<ApiKeyToken> apiKeyProvider,
TokenProvider<BearerToken> bearerTokenProvider,
TokenProvider<BasicToken> basicTokenProvider,
@ -310,6 +418,7 @@ namespace Org.OpenAPITools.Api
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = petApiEvents;
ApiKeyProvider = apiKeyProvider;
BearerTokenProvider = bearerTokenProvider;
BasicTokenProvider = basicTokenProvider;
@ -461,6 +570,8 @@ namespace Org.OpenAPITools.Api
AfterAddPetDefaultImplementation(apiResponseLocalVar, pet);
Events.ExecuteOnAddPet(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -610,6 +721,8 @@ namespace Org.OpenAPITools.Api
AfterDeletePetDefaultImplementation(apiResponseLocalVar, petId, apiKey);
Events.ExecuteOnDeletePet(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -771,6 +884,8 @@ namespace Org.OpenAPITools.Api
AfterFindPetsByStatusDefaultImplementation(apiResponseLocalVar, status);
Events.ExecuteOnFindPetsByStatus(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -936,6 +1051,8 @@ namespace Org.OpenAPITools.Api
AfterFindPetsByTagsDefaultImplementation(apiResponseLocalVar, tags);
Events.ExecuteOnFindPetsByTags(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -1073,6 +1190,8 @@ namespace Org.OpenAPITools.Api
AfterGetPetByIdDefaultImplementation(apiResponseLocalVar, petId);
Events.ExecuteOnGetPetById(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -1232,6 +1351,8 @@ namespace Org.OpenAPITools.Api
AfterUpdatePetDefaultImplementation(apiResponseLocalVar, pet);
Events.ExecuteOnUpdatePet(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -1409,6 +1530,8 @@ namespace Org.OpenAPITools.Api
AfterUpdatePetWithFormDefaultImplementation(apiResponseLocalVar, petId, name, status);
Events.ExecuteOnUpdatePetWithForm(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -1591,6 +1714,8 @@ namespace Org.OpenAPITools.Api
AfterUploadFileDefaultImplementation(apiResponseLocalVar, petId, file, additionalMetadata);
Events.ExecuteOnUploadFile(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -1773,6 +1898,8 @@ namespace Org.OpenAPITools.Api
AfterUploadFileWithRequiredFileDefaultImplementation(apiResponseLocalVar, requiredFile, petId, additionalMetadata);
Events.ExecuteOnUploadFileWithRequiredFile(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();

View File

@ -19,6 +19,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -29,6 +30,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IStoreApi : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
StoreApiEvents Events { get; }
/// <summary>
/// Delete purchase order by ID
/// </summary>
@ -123,6 +129,53 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class StoreApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>>? OnDeleteOrder;
internal void ExecuteOnDeleteOrder(ApiResponse<object> apiResponse)
{
OnDeleteOrder?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<Dictionary<string, int>>>? OnGetInventory;
internal void ExecuteOnGetInventory(ApiResponse<Dictionary<string, int>> apiResponse)
{
OnGetInventory?.Invoke(this, new ApiResponseEventArgs<Dictionary<string, int>>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<Order>>? OnGetOrderById;
internal void ExecuteOnGetOrderById(ApiResponse<Order> apiResponse)
{
OnGetOrderById?.Invoke(this, new ApiResponseEventArgs<Order>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<Order>>? OnPlaceOrder;
internal void ExecuteOnPlaceOrder(ApiResponse<Order> apiResponse)
{
OnPlaceOrder?.Invoke(this, new ApiResponseEventArgs<Order>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -140,6 +193,11 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public StoreApiEvents Events { get; }
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
/// </summary>
@ -169,7 +227,7 @@ namespace Org.OpenAPITools.Api
/// Initializes a new instance of the <see cref="StoreApi"/> class.
/// </summary>
/// <returns></returns>
public StoreApi(ILogger<StoreApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider,
public StoreApi(ILogger<StoreApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, StoreApiEvents storeApiEvents,
TokenProvider<ApiKeyToken> apiKeyProvider,
TokenProvider<BearerToken> bearerTokenProvider,
TokenProvider<BasicToken> basicTokenProvider,
@ -179,6 +237,7 @@ namespace Org.OpenAPITools.Api
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = storeApiEvents;
ApiKeyProvider = apiKeyProvider;
BearerTokenProvider = bearerTokenProvider;
BasicTokenProvider = basicTokenProvider;
@ -299,6 +358,8 @@ namespace Org.OpenAPITools.Api
AfterDeleteOrderDefaultImplementation(apiResponseLocalVar, orderId);
Events.ExecuteOnDeleteOrder(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -416,6 +477,8 @@ namespace Org.OpenAPITools.Api
AfterGetInventoryDefaultImplementation(apiResponseLocalVar);
Events.ExecuteOnGetInventory(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -541,6 +604,8 @@ namespace Org.OpenAPITools.Api
AfterGetOrderByIdDefaultImplementation(apiResponseLocalVar, orderId);
Events.ExecuteOnGetOrderById(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -687,6 +752,8 @@ namespace Org.OpenAPITools.Api
AfterPlaceOrderDefaultImplementation(apiResponseLocalVar, order);
Events.ExecuteOnPlaceOrder(apiResponseLocalVar);
return apiResponseLocalVar;
}
}

View File

@ -19,6 +19,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -29,6 +30,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IUserApi : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
UserApiEvents Events { get; }
/// <summary>
/// Create user
/// </summary>
@ -219,6 +225,93 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class UserApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>>? OnCreateUser;
internal void ExecuteOnCreateUser(ApiResponse<object> apiResponse)
{
OnCreateUser?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>>? OnCreateUsersWithArrayInput;
internal void ExecuteOnCreateUsersWithArrayInput(ApiResponse<object> apiResponse)
{
OnCreateUsersWithArrayInput?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>>? OnCreateUsersWithListInput;
internal void ExecuteOnCreateUsersWithListInput(ApiResponse<object> apiResponse)
{
OnCreateUsersWithListInput?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>>? OnDeleteUser;
internal void ExecuteOnDeleteUser(ApiResponse<object> apiResponse)
{
OnDeleteUser?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<User>>? OnGetUserByName;
internal void ExecuteOnGetUserByName(ApiResponse<User> apiResponse)
{
OnGetUserByName?.Invoke(this, new ApiResponseEventArgs<User>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<string>>? OnLoginUser;
internal void ExecuteOnLoginUser(ApiResponse<string> apiResponse)
{
OnLoginUser?.Invoke(this, new ApiResponseEventArgs<string>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>>? OnLogoutUser;
internal void ExecuteOnLogoutUser(ApiResponse<object> apiResponse)
{
OnLogoutUser?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>>? OnUpdateUser;
internal void ExecuteOnUpdateUser(ApiResponse<object> apiResponse)
{
OnUpdateUser?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -236,6 +329,11 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public UserApiEvents Events { get; }
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
/// </summary>
@ -265,7 +363,7 @@ namespace Org.OpenAPITools.Api
/// Initializes a new instance of the <see cref="UserApi"/> class.
/// </summary>
/// <returns></returns>
public UserApi(ILogger<UserApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider,
public UserApi(ILogger<UserApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, UserApiEvents userApiEvents,
TokenProvider<ApiKeyToken> apiKeyProvider,
TokenProvider<BearerToken> bearerTokenProvider,
TokenProvider<BasicToken> basicTokenProvider,
@ -275,6 +373,7 @@ namespace Org.OpenAPITools.Api
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = userApiEvents;
ApiKeyProvider = apiKeyProvider;
BearerTokenProvider = bearerTokenProvider;
BasicTokenProvider = basicTokenProvider;
@ -407,6 +506,8 @@ namespace Org.OpenAPITools.Api
AfterCreateUserDefaultImplementation(apiResponseLocalVar, user);
Events.ExecuteOnCreateUser(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -543,6 +644,8 @@ namespace Org.OpenAPITools.Api
AfterCreateUsersWithArrayInputDefaultImplementation(apiResponseLocalVar, user);
Events.ExecuteOnCreateUsersWithArrayInput(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -679,6 +782,8 @@ namespace Org.OpenAPITools.Api
AfterCreateUsersWithListInputDefaultImplementation(apiResponseLocalVar, user);
Events.ExecuteOnCreateUsersWithListInput(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -803,6 +908,8 @@ namespace Org.OpenAPITools.Api
AfterDeleteUserDefaultImplementation(apiResponseLocalVar, username);
Events.ExecuteOnDeleteUser(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -937,6 +1044,8 @@ namespace Org.OpenAPITools.Api
AfterGetUserByNameDefaultImplementation(apiResponseLocalVar, username);
Events.ExecuteOnGetUserByName(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1087,6 +1196,8 @@ namespace Org.OpenAPITools.Api
AfterLoginUserDefaultImplementation(apiResponseLocalVar, username, password);
Events.ExecuteOnLoginUser(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1187,6 +1298,8 @@ namespace Org.OpenAPITools.Api
AfterLogoutUserDefaultImplementation(apiResponseLocalVar);
Events.ExecuteOnLogoutUser(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1334,6 +1447,8 @@ namespace Org.OpenAPITools.Api
AfterUpdateUserDefaultImplementation(apiResponseLocalVar, user, username);
Events.ExecuteOnUpdateUser(apiResponseLocalVar);
return apiResponseLocalVar;
}
}

View File

@ -1,58 +1,24 @@
using System;
using System.Net;
namespace Org.OpenAPITools.Client
{
/// <summary>
/// Useful for tracking server health.
/// Useful for tracking server health
/// </summary>
public class ApiResponseEventArgs : EventArgs
public class ApiResponseEventArgs<T> : EventArgs
{
/// <summary>
/// The time the request was sent.
/// The ApiResponse
/// </summary>
public DateTime RequestedAt { get; }
public ApiResponse<T> ApiResponse { get; }
/// <summary>
/// The time the response was received.
/// The ApiResponseEventArgs
/// </summary>
public DateTime ReceivedAt { get; }
/// <summary>
/// The HttpStatusCode received.
/// </summary>
public HttpStatusCode HttpStatus { get; }
/// <summary>
/// The path requested.
/// </summary>
public string PathFormat { get; }
/// <summary>
/// The elapsed time from request to response.
/// </summary>
public TimeSpan ToTimeSpan => this.ReceivedAt - this.RequestedAt;
/// <summary>
/// The path
/// </summary>
public string Path { get; }
/// <summary>
/// The event args used to track server health.
/// </summary>
/// <param name="requestedAt"></param>
/// <param name="receivedAt"></param>
/// <param name="httpStatus"></param>
/// <param name="pathFormat"></param>
/// <param name="path"></param>
public ApiResponseEventArgs(DateTime requestedAt, DateTime receivedAt, HttpStatusCode httpStatus, string pathFormat, string path)
/// <param name="apiResponse"></param>
public ApiResponseEventArgs(ApiResponse<T> apiResponse)
{
RequestedAt = requestedAt;
ReceivedAt = receivedAt;
HttpStatus = httpStatus;
PathFormat = pathFormat;
Path = path;
ApiResponse = apiResponse;
}
}
}

View File

@ -134,12 +134,19 @@ namespace Org.OpenAPITools.Client
_jsonOptions.Converters.Add(new ZeroBasedEnumClassJsonConverter());
_services.AddSingleton(new JsonSerializerOptionsProvider(_jsonOptions));
_services.AddSingleton<IApiFactory, ApiFactory>();
_services.AddSingleton<AnotherFakeApiEvents>();
_services.AddTransient<IAnotherFakeApi, AnotherFakeApi>();
_services.AddSingleton<DefaultApiEvents>();
_services.AddTransient<IDefaultApi, DefaultApi>();
_services.AddSingleton<FakeApiEvents>();
_services.AddTransient<IFakeApi, FakeApi>();
_services.AddSingleton<FakeClassnameTags123ApiEvents>();
_services.AddTransient<IFakeClassnameTags123Api, FakeClassnameTags123Api>();
_services.AddSingleton<PetApiEvents>();
_services.AddTransient<IPetApi, PetApi>();
_services.AddSingleton<StoreApiEvents>();
_services.AddTransient<IStoreApi, StoreApi>();
_services.AddSingleton<UserApiEvents>();
_services.AddTransient<IUserApi, UserApi>();
}

View File

@ -17,6 +17,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IAnotherFakeApi : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
AnotherFakeApiEvents Events { get; }
/// <summary>
/// To test special tags
/// </summary>
@ -54,6 +60,23 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class AnotherFakeApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<ModelClient>> OnCall123TestSpecialTags;
internal void ExecuteOnCall123TestSpecialTags(ApiResponse<ModelClient> apiResponse)
{
OnCall123TestSpecialTags?.Invoke(this, new ApiResponseEventArgs<ModelClient>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -71,6 +94,11 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public AnotherFakeApiEvents Events { get; }
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
/// </summary>
@ -100,7 +128,7 @@ namespace Org.OpenAPITools.Api
/// Initializes a new instance of the <see cref="AnotherFakeApi"/> class.
/// </summary>
/// <returns></returns>
public AnotherFakeApi(ILogger<AnotherFakeApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider,
public AnotherFakeApi(ILogger<AnotherFakeApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, AnotherFakeApiEvents anotherFakeApiEvents,
TokenProvider<ApiKeyToken> apiKeyProvider,
TokenProvider<BearerToken> bearerTokenProvider,
TokenProvider<BasicToken> basicTokenProvider,
@ -110,6 +138,7 @@ namespace Org.OpenAPITools.Api
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = anotherFakeApiEvents;
ApiKeyProvider = apiKeyProvider;
BearerTokenProvider = bearerTokenProvider;
BasicTokenProvider = basicTokenProvider;
@ -251,6 +280,8 @@ namespace Org.OpenAPITools.Api
AfterCall123TestSpecialTagsDefaultImplementation(apiResponseLocalVar, modelClient);
Events.ExecuteOnCall123TestSpecialTags(apiResponseLocalVar);
return apiResponseLocalVar;
}
}

View File

@ -17,6 +17,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IDefaultApi : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
DefaultApiEvents Events { get; }
/// <summary>
///
/// </summary>
@ -96,6 +102,43 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class DefaultApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<FooGetDefaultResponse>> OnFooGet;
internal void ExecuteOnFooGet(ApiResponse<FooGetDefaultResponse> apiResponse)
{
OnFooGet?.Invoke(this, new ApiResponseEventArgs<FooGetDefaultResponse>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnGetCountry;
internal void ExecuteOnGetCountry(ApiResponse<object> apiResponse)
{
OnGetCountry?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<List<Guid>>> OnHello;
internal void ExecuteOnHello(ApiResponse<List<Guid>> apiResponse)
{
OnHello?.Invoke(this, new ApiResponseEventArgs<List<Guid>>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -113,6 +156,11 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public DefaultApiEvents Events { get; }
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
/// </summary>
@ -142,7 +190,7 @@ namespace Org.OpenAPITools.Api
/// Initializes a new instance of the <see cref="DefaultApi"/> class.
/// </summary>
/// <returns></returns>
public DefaultApi(ILogger<DefaultApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider,
public DefaultApi(ILogger<DefaultApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, DefaultApiEvents defaultApiEvents,
TokenProvider<ApiKeyToken> apiKeyProvider,
TokenProvider<BearerToken> bearerTokenProvider,
TokenProvider<BasicToken> basicTokenProvider,
@ -152,6 +200,7 @@ namespace Org.OpenAPITools.Api
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = defaultApiEvents;
ApiKeyProvider = apiKeyProvider;
BearerTokenProvider = bearerTokenProvider;
BasicTokenProvider = basicTokenProvider;
@ -257,6 +306,8 @@ namespace Org.OpenAPITools.Api
AfterFooGetDefaultImplementation(apiResponseLocalVar);
Events.ExecuteOnFooGet(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -399,6 +450,8 @@ namespace Org.OpenAPITools.Api
AfterGetCountryDefaultImplementation(apiResponseLocalVar, country);
Events.ExecuteOnGetCountry(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -508,6 +561,8 @@ namespace Org.OpenAPITools.Api
AfterHelloDefaultImplementation(apiResponseLocalVar);
Events.ExecuteOnHello(apiResponseLocalVar);
return apiResponseLocalVar;
}
}

View File

@ -17,6 +17,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IFakeApi : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
FakeApiEvents Events { get; }
/// <summary>
/// Health check endpoint
/// </summary>
@ -444,6 +450,163 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class FakeApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<HealthCheckResult>> OnFakeHealthGet;
internal void ExecuteOnFakeHealthGet(ApiResponse<HealthCheckResult> apiResponse)
{
OnFakeHealthGet?.Invoke(this, new ApiResponseEventArgs<HealthCheckResult>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<bool>> OnFakeOuterBooleanSerialize;
internal void ExecuteOnFakeOuterBooleanSerialize(ApiResponse<bool> apiResponse)
{
OnFakeOuterBooleanSerialize?.Invoke(this, new ApiResponseEventArgs<bool>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<OuterComposite>> OnFakeOuterCompositeSerialize;
internal void ExecuteOnFakeOuterCompositeSerialize(ApiResponse<OuterComposite> apiResponse)
{
OnFakeOuterCompositeSerialize?.Invoke(this, new ApiResponseEventArgs<OuterComposite>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<decimal>> OnFakeOuterNumberSerialize;
internal void ExecuteOnFakeOuterNumberSerialize(ApiResponse<decimal> apiResponse)
{
OnFakeOuterNumberSerialize?.Invoke(this, new ApiResponseEventArgs<decimal>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<string>> OnFakeOuterStringSerialize;
internal void ExecuteOnFakeOuterStringSerialize(ApiResponse<string> apiResponse)
{
OnFakeOuterStringSerialize?.Invoke(this, new ApiResponseEventArgs<string>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<List<OuterEnum>>> OnGetArrayOfEnums;
internal void ExecuteOnGetArrayOfEnums(ApiResponse<List<OuterEnum>> apiResponse)
{
OnGetArrayOfEnums?.Invoke(this, new ApiResponseEventArgs<List<OuterEnum>>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnTestBodyWithFileSchema;
internal void ExecuteOnTestBodyWithFileSchema(ApiResponse<object> apiResponse)
{
OnTestBodyWithFileSchema?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnTestBodyWithQueryParams;
internal void ExecuteOnTestBodyWithQueryParams(ApiResponse<object> apiResponse)
{
OnTestBodyWithQueryParams?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<ModelClient>> OnTestClientModel;
internal void ExecuteOnTestClientModel(ApiResponse<ModelClient> apiResponse)
{
OnTestClientModel?.Invoke(this, new ApiResponseEventArgs<ModelClient>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnTestEndpointParameters;
internal void ExecuteOnTestEndpointParameters(ApiResponse<object> apiResponse)
{
OnTestEndpointParameters?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnTestEnumParameters;
internal void ExecuteOnTestEnumParameters(ApiResponse<object> apiResponse)
{
OnTestEnumParameters?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnTestGroupParameters;
internal void ExecuteOnTestGroupParameters(ApiResponse<object> apiResponse)
{
OnTestGroupParameters?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnTestInlineAdditionalProperties;
internal void ExecuteOnTestInlineAdditionalProperties(ApiResponse<object> apiResponse)
{
OnTestInlineAdditionalProperties?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnTestJsonFormData;
internal void ExecuteOnTestJsonFormData(ApiResponse<object> apiResponse)
{
OnTestJsonFormData?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnTestQueryParameterCollectionFormat;
internal void ExecuteOnTestQueryParameterCollectionFormat(ApiResponse<object> apiResponse)
{
OnTestQueryParameterCollectionFormat?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -461,6 +624,11 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public FakeApiEvents Events { get; }
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
/// </summary>
@ -490,7 +658,7 @@ namespace Org.OpenAPITools.Api
/// Initializes a new instance of the <see cref="FakeApi"/> class.
/// </summary>
/// <returns></returns>
public FakeApi(ILogger<FakeApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider,
public FakeApi(ILogger<FakeApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, FakeApiEvents fakeApiEvents,
TokenProvider<ApiKeyToken> apiKeyProvider,
TokenProvider<BearerToken> bearerTokenProvider,
TokenProvider<BasicToken> basicTokenProvider,
@ -500,6 +668,7 @@ namespace Org.OpenAPITools.Api
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = fakeApiEvents;
ApiKeyProvider = apiKeyProvider;
BearerTokenProvider = bearerTokenProvider;
BasicTokenProvider = basicTokenProvider;
@ -605,6 +774,8 @@ namespace Org.OpenAPITools.Api
AfterFakeHealthGetDefaultImplementation(apiResponseLocalVar);
Events.ExecuteOnFakeHealthGet(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -738,6 +909,8 @@ namespace Org.OpenAPITools.Api
AfterFakeOuterBooleanSerializeDefaultImplementation(apiResponseLocalVar, body);
Events.ExecuteOnFakeOuterBooleanSerialize(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -884,6 +1057,8 @@ namespace Org.OpenAPITools.Api
AfterFakeOuterCompositeSerializeDefaultImplementation(apiResponseLocalVar, outerComposite);
Events.ExecuteOnFakeOuterCompositeSerialize(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1017,6 +1192,8 @@ namespace Org.OpenAPITools.Api
AfterFakeOuterNumberSerializeDefaultImplementation(apiResponseLocalVar, body);
Events.ExecuteOnFakeOuterNumberSerialize(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1175,6 +1352,8 @@ namespace Org.OpenAPITools.Api
AfterFakeOuterStringSerializeDefaultImplementation(apiResponseLocalVar, requiredStringUuid, body);
Events.ExecuteOnFakeOuterStringSerialize(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1284,6 +1463,8 @@ namespace Org.OpenAPITools.Api
AfterGetArrayOfEnumsDefaultImplementation(apiResponseLocalVar);
Events.ExecuteOnGetArrayOfEnums(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1420,6 +1601,8 @@ namespace Org.OpenAPITools.Api
AfterTestBodyWithFileSchemaDefaultImplementation(apiResponseLocalVar, fileSchemaTestClass);
Events.ExecuteOnTestBodyWithFileSchema(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1572,6 +1755,8 @@ namespace Org.OpenAPITools.Api
AfterTestBodyWithQueryParamsDefaultImplementation(apiResponseLocalVar, user, query);
Events.ExecuteOnTestBodyWithQueryParams(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1717,6 +1902,8 @@ namespace Org.OpenAPITools.Api
AfterTestClientModelDefaultImplementation(apiResponseLocalVar, modelClient);
Events.ExecuteOnTestClientModel(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -2001,6 +2188,8 @@ namespace Org.OpenAPITools.Api
AfterTestEndpointParametersDefaultImplementation(apiResponseLocalVar, varByte, number, varDouble, patternWithoutDelimiter, date, binary, varFloat, integer, int32, int64, varString, password, callback, dateTime);
Events.ExecuteOnTestEndpointParameters(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -2233,6 +2422,8 @@ namespace Org.OpenAPITools.Api
AfterTestEnumParametersDefaultImplementation(apiResponseLocalVar, enumHeaderStringArray, enumQueryStringArray, enumQueryDouble, enumQueryInteger, enumFormStringArray, enumHeaderString, enumQueryString, enumFormString);
Events.ExecuteOnTestEnumParameters(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -2399,6 +2590,8 @@ namespace Org.OpenAPITools.Api
AfterTestGroupParametersDefaultImplementation(apiResponseLocalVar, requiredBooleanGroup, requiredStringGroup, requiredInt64Group, booleanGroup, stringGroup, int64Group);
Events.ExecuteOnTestGroupParameters(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -2539,6 +2732,8 @@ namespace Org.OpenAPITools.Api
AfterTestInlineAdditionalPropertiesDefaultImplementation(apiResponseLocalVar, requestBody);
Events.ExecuteOnTestInlineAdditionalProperties(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -2693,6 +2888,8 @@ namespace Org.OpenAPITools.Api
AfterTestJsonFormDataDefaultImplementation(apiResponseLocalVar, param, param2);
Events.ExecuteOnTestJsonFormData(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -2906,6 +3103,8 @@ namespace Org.OpenAPITools.Api
AfterTestQueryParameterCollectionFormatDefaultImplementation(apiResponseLocalVar, pipe, ioutil, http, url, context, requiredNotNullable, requiredNullable, notRequiredNotNullable, notRequiredNullable);
Events.ExecuteOnTestQueryParameterCollectionFormat(apiResponseLocalVar);
return apiResponseLocalVar;
}
}

View File

@ -17,6 +17,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IFakeClassnameTags123Api : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
FakeClassnameTags123ApiEvents Events { get; }
/// <summary>
/// To test class name in snake case
/// </summary>
@ -54,6 +60,23 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class FakeClassnameTags123ApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<ModelClient>> OnTestClassname;
internal void ExecuteOnTestClassname(ApiResponse<ModelClient> apiResponse)
{
OnTestClassname?.Invoke(this, new ApiResponseEventArgs<ModelClient>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -71,6 +94,11 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public FakeClassnameTags123ApiEvents Events { get; }
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
/// </summary>
@ -100,7 +128,7 @@ namespace Org.OpenAPITools.Api
/// Initializes a new instance of the <see cref="FakeClassnameTags123Api"/> class.
/// </summary>
/// <returns></returns>
public FakeClassnameTags123Api(ILogger<FakeClassnameTags123Api> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider,
public FakeClassnameTags123Api(ILogger<FakeClassnameTags123Api> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, FakeClassnameTags123ApiEvents fakeClassnameTags123ApiEvents,
TokenProvider<ApiKeyToken> apiKeyProvider,
TokenProvider<BearerToken> bearerTokenProvider,
TokenProvider<BasicToken> basicTokenProvider,
@ -110,6 +138,7 @@ namespace Org.OpenAPITools.Api
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = fakeClassnameTags123ApiEvents;
ApiKeyProvider = apiKeyProvider;
BearerTokenProvider = bearerTokenProvider;
BasicTokenProvider = basicTokenProvider;
@ -262,6 +291,8 @@ namespace Org.OpenAPITools.Api
AfterTestClassnameDefaultImplementation(apiResponseLocalVar, modelClient);
Events.ExecuteOnTestClassname(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();

View File

@ -17,6 +17,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IPetApi : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
PetApiEvents Events { get; }
/// <summary>
/// Add a new pet to the store
/// </summary>
@ -252,6 +258,103 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class PetApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnAddPet;
internal void ExecuteOnAddPet(ApiResponse<object> apiResponse)
{
OnAddPet?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnDeletePet;
internal void ExecuteOnDeletePet(ApiResponse<object> apiResponse)
{
OnDeletePet?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<List<Pet>>> OnFindPetsByStatus;
internal void ExecuteOnFindPetsByStatus(ApiResponse<List<Pet>> apiResponse)
{
OnFindPetsByStatus?.Invoke(this, new ApiResponseEventArgs<List<Pet>>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<List<Pet>>> OnFindPetsByTags;
internal void ExecuteOnFindPetsByTags(ApiResponse<List<Pet>> apiResponse)
{
OnFindPetsByTags?.Invoke(this, new ApiResponseEventArgs<List<Pet>>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<Pet>> OnGetPetById;
internal void ExecuteOnGetPetById(ApiResponse<Pet> apiResponse)
{
OnGetPetById?.Invoke(this, new ApiResponseEventArgs<Pet>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnUpdatePet;
internal void ExecuteOnUpdatePet(ApiResponse<object> apiResponse)
{
OnUpdatePet?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnUpdatePetWithForm;
internal void ExecuteOnUpdatePetWithForm(ApiResponse<object> apiResponse)
{
OnUpdatePetWithForm?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<ApiResponse>> OnUploadFile;
internal void ExecuteOnUploadFile(ApiResponse<ApiResponse> apiResponse)
{
OnUploadFile?.Invoke(this, new ApiResponseEventArgs<ApiResponse>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<ApiResponse>> OnUploadFileWithRequiredFile;
internal void ExecuteOnUploadFileWithRequiredFile(ApiResponse<ApiResponse> apiResponse)
{
OnUploadFileWithRequiredFile?.Invoke(this, new ApiResponseEventArgs<ApiResponse>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -269,6 +372,11 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public PetApiEvents Events { get; }
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
/// </summary>
@ -298,7 +406,7 @@ namespace Org.OpenAPITools.Api
/// Initializes a new instance of the <see cref="PetApi"/> class.
/// </summary>
/// <returns></returns>
public PetApi(ILogger<PetApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider,
public PetApi(ILogger<PetApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, PetApiEvents petApiEvents,
TokenProvider<ApiKeyToken> apiKeyProvider,
TokenProvider<BearerToken> bearerTokenProvider,
TokenProvider<BasicToken> basicTokenProvider,
@ -308,6 +416,7 @@ namespace Org.OpenAPITools.Api
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = petApiEvents;
ApiKeyProvider = apiKeyProvider;
BearerTokenProvider = bearerTokenProvider;
BasicTokenProvider = basicTokenProvider;
@ -459,6 +568,8 @@ namespace Org.OpenAPITools.Api
AfterAddPetDefaultImplementation(apiResponseLocalVar, pet);
Events.ExecuteOnAddPet(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -608,6 +719,8 @@ namespace Org.OpenAPITools.Api
AfterDeletePetDefaultImplementation(apiResponseLocalVar, petId, apiKey);
Events.ExecuteOnDeletePet(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -769,6 +882,8 @@ namespace Org.OpenAPITools.Api
AfterFindPetsByStatusDefaultImplementation(apiResponseLocalVar, status);
Events.ExecuteOnFindPetsByStatus(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -934,6 +1049,8 @@ namespace Org.OpenAPITools.Api
AfterFindPetsByTagsDefaultImplementation(apiResponseLocalVar, tags);
Events.ExecuteOnFindPetsByTags(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -1071,6 +1188,8 @@ namespace Org.OpenAPITools.Api
AfterGetPetByIdDefaultImplementation(apiResponseLocalVar, petId);
Events.ExecuteOnGetPetById(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -1230,6 +1349,8 @@ namespace Org.OpenAPITools.Api
AfterUpdatePetDefaultImplementation(apiResponseLocalVar, pet);
Events.ExecuteOnUpdatePet(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -1407,6 +1528,8 @@ namespace Org.OpenAPITools.Api
AfterUpdatePetWithFormDefaultImplementation(apiResponseLocalVar, petId, name, status);
Events.ExecuteOnUpdatePetWithForm(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -1589,6 +1712,8 @@ namespace Org.OpenAPITools.Api
AfterUploadFileDefaultImplementation(apiResponseLocalVar, petId, file, additionalMetadata);
Events.ExecuteOnUploadFile(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -1771,6 +1896,8 @@ namespace Org.OpenAPITools.Api
AfterUploadFileWithRequiredFileDefaultImplementation(apiResponseLocalVar, requiredFile, petId, additionalMetadata);
Events.ExecuteOnUploadFileWithRequiredFile(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();

View File

@ -17,6 +17,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IStoreApi : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
StoreApiEvents Events { get; }
/// <summary>
/// Delete purchase order by ID
/// </summary>
@ -121,6 +127,53 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class StoreApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnDeleteOrder;
internal void ExecuteOnDeleteOrder(ApiResponse<object> apiResponse)
{
OnDeleteOrder?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<Dictionary<string, int>>> OnGetInventory;
internal void ExecuteOnGetInventory(ApiResponse<Dictionary<string, int>> apiResponse)
{
OnGetInventory?.Invoke(this, new ApiResponseEventArgs<Dictionary<string, int>>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<Order>> OnGetOrderById;
internal void ExecuteOnGetOrderById(ApiResponse<Order> apiResponse)
{
OnGetOrderById?.Invoke(this, new ApiResponseEventArgs<Order>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<Order>> OnPlaceOrder;
internal void ExecuteOnPlaceOrder(ApiResponse<Order> apiResponse)
{
OnPlaceOrder?.Invoke(this, new ApiResponseEventArgs<Order>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -138,6 +191,11 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public StoreApiEvents Events { get; }
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
/// </summary>
@ -167,7 +225,7 @@ namespace Org.OpenAPITools.Api
/// Initializes a new instance of the <see cref="StoreApi"/> class.
/// </summary>
/// <returns></returns>
public StoreApi(ILogger<StoreApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider,
public StoreApi(ILogger<StoreApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, StoreApiEvents storeApiEvents,
TokenProvider<ApiKeyToken> apiKeyProvider,
TokenProvider<BearerToken> bearerTokenProvider,
TokenProvider<BasicToken> basicTokenProvider,
@ -177,6 +235,7 @@ namespace Org.OpenAPITools.Api
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = storeApiEvents;
ApiKeyProvider = apiKeyProvider;
BearerTokenProvider = bearerTokenProvider;
BasicTokenProvider = basicTokenProvider;
@ -297,6 +356,8 @@ namespace Org.OpenAPITools.Api
AfterDeleteOrderDefaultImplementation(apiResponseLocalVar, orderId);
Events.ExecuteOnDeleteOrder(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -414,6 +475,8 @@ namespace Org.OpenAPITools.Api
AfterGetInventoryDefaultImplementation(apiResponseLocalVar);
Events.ExecuteOnGetInventory(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -539,6 +602,8 @@ namespace Org.OpenAPITools.Api
AfterGetOrderByIdDefaultImplementation(apiResponseLocalVar, orderId);
Events.ExecuteOnGetOrderById(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -685,6 +750,8 @@ namespace Org.OpenAPITools.Api
AfterPlaceOrderDefaultImplementation(apiResponseLocalVar, order);
Events.ExecuteOnPlaceOrder(apiResponseLocalVar);
return apiResponseLocalVar;
}
}

View File

@ -17,6 +17,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IUserApi : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
UserApiEvents Events { get; }
/// <summary>
/// Create user
/// </summary>
@ -217,6 +223,93 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class UserApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnCreateUser;
internal void ExecuteOnCreateUser(ApiResponse<object> apiResponse)
{
OnCreateUser?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnCreateUsersWithArrayInput;
internal void ExecuteOnCreateUsersWithArrayInput(ApiResponse<object> apiResponse)
{
OnCreateUsersWithArrayInput?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnCreateUsersWithListInput;
internal void ExecuteOnCreateUsersWithListInput(ApiResponse<object> apiResponse)
{
OnCreateUsersWithListInput?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnDeleteUser;
internal void ExecuteOnDeleteUser(ApiResponse<object> apiResponse)
{
OnDeleteUser?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<User>> OnGetUserByName;
internal void ExecuteOnGetUserByName(ApiResponse<User> apiResponse)
{
OnGetUserByName?.Invoke(this, new ApiResponseEventArgs<User>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<string>> OnLoginUser;
internal void ExecuteOnLoginUser(ApiResponse<string> apiResponse)
{
OnLoginUser?.Invoke(this, new ApiResponseEventArgs<string>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnLogoutUser;
internal void ExecuteOnLogoutUser(ApiResponse<object> apiResponse)
{
OnLogoutUser?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnUpdateUser;
internal void ExecuteOnUpdateUser(ApiResponse<object> apiResponse)
{
OnUpdateUser?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -234,6 +327,11 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public UserApiEvents Events { get; }
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
/// </summary>
@ -263,7 +361,7 @@ namespace Org.OpenAPITools.Api
/// Initializes a new instance of the <see cref="UserApi"/> class.
/// </summary>
/// <returns></returns>
public UserApi(ILogger<UserApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider,
public UserApi(ILogger<UserApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, UserApiEvents userApiEvents,
TokenProvider<ApiKeyToken> apiKeyProvider,
TokenProvider<BearerToken> bearerTokenProvider,
TokenProvider<BasicToken> basicTokenProvider,
@ -273,6 +371,7 @@ namespace Org.OpenAPITools.Api
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = userApiEvents;
ApiKeyProvider = apiKeyProvider;
BearerTokenProvider = bearerTokenProvider;
BasicTokenProvider = basicTokenProvider;
@ -405,6 +504,8 @@ namespace Org.OpenAPITools.Api
AfterCreateUserDefaultImplementation(apiResponseLocalVar, user);
Events.ExecuteOnCreateUser(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -541,6 +642,8 @@ namespace Org.OpenAPITools.Api
AfterCreateUsersWithArrayInputDefaultImplementation(apiResponseLocalVar, user);
Events.ExecuteOnCreateUsersWithArrayInput(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -677,6 +780,8 @@ namespace Org.OpenAPITools.Api
AfterCreateUsersWithListInputDefaultImplementation(apiResponseLocalVar, user);
Events.ExecuteOnCreateUsersWithListInput(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -801,6 +906,8 @@ namespace Org.OpenAPITools.Api
AfterDeleteUserDefaultImplementation(apiResponseLocalVar, username);
Events.ExecuteOnDeleteUser(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -935,6 +1042,8 @@ namespace Org.OpenAPITools.Api
AfterGetUserByNameDefaultImplementation(apiResponseLocalVar, username);
Events.ExecuteOnGetUserByName(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1085,6 +1194,8 @@ namespace Org.OpenAPITools.Api
AfterLoginUserDefaultImplementation(apiResponseLocalVar, username, password);
Events.ExecuteOnLoginUser(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1185,6 +1296,8 @@ namespace Org.OpenAPITools.Api
AfterLogoutUserDefaultImplementation(apiResponseLocalVar);
Events.ExecuteOnLogoutUser(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1332,6 +1445,8 @@ namespace Org.OpenAPITools.Api
AfterUpdateUserDefaultImplementation(apiResponseLocalVar, user, username);
Events.ExecuteOnUpdateUser(apiResponseLocalVar);
return apiResponseLocalVar;
}
}

View File

@ -1,58 +1,24 @@
using System;
using System.Net;
namespace Org.OpenAPITools.Client
{
/// <summary>
/// Useful for tracking server health.
/// Useful for tracking server health
/// </summary>
public class ApiResponseEventArgs : EventArgs
public class ApiResponseEventArgs<T> : EventArgs
{
/// <summary>
/// The time the request was sent.
/// The ApiResponse
/// </summary>
public DateTime RequestedAt { get; }
public ApiResponse<T> ApiResponse { get; }
/// <summary>
/// The time the response was received.
/// The ApiResponseEventArgs
/// </summary>
public DateTime ReceivedAt { get; }
/// <summary>
/// The HttpStatusCode received.
/// </summary>
public HttpStatusCode HttpStatus { get; }
/// <summary>
/// The path requested.
/// </summary>
public string PathFormat { get; }
/// <summary>
/// The elapsed time from request to response.
/// </summary>
public TimeSpan ToTimeSpan => this.ReceivedAt - this.RequestedAt;
/// <summary>
/// The path
/// </summary>
public string Path { get; }
/// <summary>
/// The event args used to track server health.
/// </summary>
/// <param name="requestedAt"></param>
/// <param name="receivedAt"></param>
/// <param name="httpStatus"></param>
/// <param name="pathFormat"></param>
/// <param name="path"></param>
public ApiResponseEventArgs(DateTime requestedAt, DateTime receivedAt, HttpStatusCode httpStatus, string pathFormat, string path)
/// <param name="apiResponse"></param>
public ApiResponseEventArgs(ApiResponse<T> apiResponse)
{
RequestedAt = requestedAt;
ReceivedAt = receivedAt;
HttpStatus = httpStatus;
PathFormat = pathFormat;
Path = path;
ApiResponse = apiResponse;
}
}
}

View File

@ -132,12 +132,19 @@ namespace Org.OpenAPITools.Client
_jsonOptions.Converters.Add(new ZeroBasedEnumClassJsonConverter());
_services.AddSingleton(new JsonSerializerOptionsProvider(_jsonOptions));
_services.AddSingleton<IApiFactory, ApiFactory>();
_services.AddSingleton<AnotherFakeApiEvents>();
_services.AddTransient<IAnotherFakeApi, AnotherFakeApi>();
_services.AddSingleton<DefaultApiEvents>();
_services.AddTransient<IDefaultApi, DefaultApi>();
_services.AddSingleton<FakeApiEvents>();
_services.AddTransient<IFakeApi, FakeApi>();
_services.AddSingleton<FakeClassnameTags123ApiEvents>();
_services.AddTransient<IFakeClassnameTags123Api, FakeClassnameTags123Api>();
_services.AddSingleton<PetApiEvents>();
_services.AddTransient<IPetApi, PetApi>();
_services.AddSingleton<StoreApiEvents>();
_services.AddTransient<IStoreApi, StoreApi>();
_services.AddSingleton<UserApiEvents>();
_services.AddTransient<IUserApi, UserApi>();
}

View File

@ -19,6 +19,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -29,6 +30,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IDefaultApi : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
DefaultApiEvents Events { get; }
/// <summary>
///
/// </summary>
@ -56,6 +62,23 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class DefaultApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<Person>>? OnList;
internal void ExecuteOnList(ApiResponse<Person> apiResponse)
{
OnList?.Invoke(this, new ApiResponseEventArgs<Person>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -73,15 +96,21 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public DefaultApiEvents Events { get; }
/// <summary>
/// Initializes a new instance of the <see cref="DefaultApi"/> class.
/// </summary>
/// <returns></returns>
public DefaultApi(ILogger<DefaultApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider)
public DefaultApi(ILogger<DefaultApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, DefaultApiEvents defaultApiEvents)
{
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = defaultApiEvents;
}
partial void FormatList(ref string personId);
@ -206,6 +235,8 @@ namespace Org.OpenAPITools.Api
AfterListDefaultImplementation(apiResponseLocalVar, personId);
Events.ExecuteOnList(apiResponseLocalVar);
return apiResponseLocalVar;
}
}

View File

@ -1,58 +1,24 @@
using System;
using System.Net;
namespace Org.OpenAPITools.Client
{
/// <summary>
/// Useful for tracking server health.
/// Useful for tracking server health
/// </summary>
public class ApiResponseEventArgs : EventArgs
public class ApiResponseEventArgs<T> : EventArgs
{
/// <summary>
/// The time the request was sent.
/// The ApiResponse
/// </summary>
public DateTime RequestedAt { get; }
public ApiResponse<T> ApiResponse { get; }
/// <summary>
/// The time the response was received.
/// The ApiResponseEventArgs
/// </summary>
public DateTime ReceivedAt { get; }
/// <summary>
/// The HttpStatusCode received.
/// </summary>
public HttpStatusCode HttpStatus { get; }
/// <summary>
/// The path requested.
/// </summary>
public string PathFormat { get; }
/// <summary>
/// The elapsed time from request to response.
/// </summary>
public TimeSpan ToTimeSpan => this.ReceivedAt - this.RequestedAt;
/// <summary>
/// The path
/// </summary>
public string Path { get; }
/// <summary>
/// The event args used to track server health.
/// </summary>
/// <param name="requestedAt"></param>
/// <param name="receivedAt"></param>
/// <param name="httpStatus"></param>
/// <param name="pathFormat"></param>
/// <param name="path"></param>
public ApiResponseEventArgs(DateTime requestedAt, DateTime receivedAt, HttpStatusCode httpStatus, string pathFormat, string path)
/// <param name="apiResponse"></param>
public ApiResponseEventArgs(ApiResponse<T> apiResponse)
{
RequestedAt = requestedAt;
ReceivedAt = receivedAt;
HttpStatus = httpStatus;
PathFormat = pathFormat;
Path = path;
ApiResponse = apiResponse;
}
}
}

View File

@ -47,6 +47,7 @@ namespace Org.OpenAPITools.Client
_jsonOptions.Converters.Add(new PersonJsonConverter());
_services.AddSingleton(new JsonSerializerOptionsProvider(_jsonOptions));
_services.AddSingleton<IApiFactory, ApiFactory>();
_services.AddSingleton<DefaultApiEvents>();
_services.AddTransient<IDefaultApi, DefaultApi>();
}

View File

@ -19,6 +19,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -29,6 +30,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IDefaultApi : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
DefaultApiEvents Events { get; }
/// <summary>
///
/// </summary>
@ -54,6 +60,23 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class DefaultApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<Fruit>>? OnRootGet;
internal void ExecuteOnRootGet(ApiResponse<Fruit> apiResponse)
{
OnRootGet?.Invoke(this, new ApiResponseEventArgs<Fruit>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -71,15 +94,21 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public DefaultApiEvents Events { get; }
/// <summary>
/// Initializes a new instance of the <see cref="DefaultApi"/> class.
/// </summary>
/// <returns></returns>
public DefaultApi(ILogger<DefaultApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider)
public DefaultApi(ILogger<DefaultApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, DefaultApiEvents defaultApiEvents)
{
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = defaultApiEvents;
}
/// <summary>
@ -180,6 +209,8 @@ namespace Org.OpenAPITools.Api
AfterRootGetDefaultImplementation(apiResponseLocalVar);
Events.ExecuteOnRootGet(apiResponseLocalVar);
return apiResponseLocalVar;
}
}

View File

@ -1,58 +1,24 @@
using System;
using System.Net;
namespace Org.OpenAPITools.Client
{
/// <summary>
/// Useful for tracking server health.
/// Useful for tracking server health
/// </summary>
public class ApiResponseEventArgs : EventArgs
public class ApiResponseEventArgs<T> : EventArgs
{
/// <summary>
/// The time the request was sent.
/// The ApiResponse
/// </summary>
public DateTime RequestedAt { get; }
public ApiResponse<T> ApiResponse { get; }
/// <summary>
/// The time the response was received.
/// The ApiResponseEventArgs
/// </summary>
public DateTime ReceivedAt { get; }
/// <summary>
/// The HttpStatusCode received.
/// </summary>
public HttpStatusCode HttpStatus { get; }
/// <summary>
/// The path requested.
/// </summary>
public string PathFormat { get; }
/// <summary>
/// The elapsed time from request to response.
/// </summary>
public TimeSpan ToTimeSpan => this.ReceivedAt - this.RequestedAt;
/// <summary>
/// The path
/// </summary>
public string Path { get; }
/// <summary>
/// The event args used to track server health.
/// </summary>
/// <param name="requestedAt"></param>
/// <param name="receivedAt"></param>
/// <param name="httpStatus"></param>
/// <param name="pathFormat"></param>
/// <param name="path"></param>
public ApiResponseEventArgs(DateTime requestedAt, DateTime receivedAt, HttpStatusCode httpStatus, string pathFormat, string path)
/// <param name="apiResponse"></param>
public ApiResponseEventArgs(ApiResponse<T> apiResponse)
{
RequestedAt = requestedAt;
ReceivedAt = receivedAt;
HttpStatus = httpStatus;
PathFormat = pathFormat;
Path = path;
ApiResponse = apiResponse;
}
}
}

View File

@ -47,6 +47,7 @@ namespace Org.OpenAPITools.Client
_jsonOptions.Converters.Add(new FruitJsonConverter());
_services.AddSingleton(new JsonSerializerOptionsProvider(_jsonOptions));
_services.AddSingleton<IApiFactory, ApiFactory>();
_services.AddSingleton<DefaultApiEvents>();
_services.AddTransient<IDefaultApi, DefaultApi>();
}

View File

@ -19,6 +19,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -29,6 +30,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IDefaultApi : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
DefaultApiEvents Events { get; }
/// <summary>
///
/// </summary>
@ -54,6 +60,23 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class DefaultApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<Fruit>>? OnRootGet;
internal void ExecuteOnRootGet(ApiResponse<Fruit> apiResponse)
{
OnRootGet?.Invoke(this, new ApiResponseEventArgs<Fruit>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -71,15 +94,21 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public DefaultApiEvents Events { get; }
/// <summary>
/// Initializes a new instance of the <see cref="DefaultApi"/> class.
/// </summary>
/// <returns></returns>
public DefaultApi(ILogger<DefaultApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider)
public DefaultApi(ILogger<DefaultApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, DefaultApiEvents defaultApiEvents)
{
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = defaultApiEvents;
}
/// <summary>
@ -180,6 +209,8 @@ namespace Org.OpenAPITools.Api
AfterRootGetDefaultImplementation(apiResponseLocalVar);
Events.ExecuteOnRootGet(apiResponseLocalVar);
return apiResponseLocalVar;
}
}

View File

@ -1,58 +1,24 @@
using System;
using System.Net;
namespace Org.OpenAPITools.Client
{
/// <summary>
/// Useful for tracking server health.
/// Useful for tracking server health
/// </summary>
public class ApiResponseEventArgs : EventArgs
public class ApiResponseEventArgs<T> : EventArgs
{
/// <summary>
/// The time the request was sent.
/// The ApiResponse
/// </summary>
public DateTime RequestedAt { get; }
public ApiResponse<T> ApiResponse { get; }
/// <summary>
/// The time the response was received.
/// The ApiResponseEventArgs
/// </summary>
public DateTime ReceivedAt { get; }
/// <summary>
/// The HttpStatusCode received.
/// </summary>
public HttpStatusCode HttpStatus { get; }
/// <summary>
/// The path requested.
/// </summary>
public string PathFormat { get; }
/// <summary>
/// The elapsed time from request to response.
/// </summary>
public TimeSpan ToTimeSpan => this.ReceivedAt - this.RequestedAt;
/// <summary>
/// The path
/// </summary>
public string Path { get; }
/// <summary>
/// The event args used to track server health.
/// </summary>
/// <param name="requestedAt"></param>
/// <param name="receivedAt"></param>
/// <param name="httpStatus"></param>
/// <param name="pathFormat"></param>
/// <param name="path"></param>
public ApiResponseEventArgs(DateTime requestedAt, DateTime receivedAt, HttpStatusCode httpStatus, string pathFormat, string path)
/// <param name="apiResponse"></param>
public ApiResponseEventArgs(ApiResponse<T> apiResponse)
{
RequestedAt = requestedAt;
ReceivedAt = receivedAt;
HttpStatus = httpStatus;
PathFormat = pathFormat;
Path = path;
ApiResponse = apiResponse;
}
}
}

View File

@ -47,6 +47,7 @@ namespace Org.OpenAPITools.Client
_jsonOptions.Converters.Add(new FruitJsonConverter());
_services.AddSingleton(new JsonSerializerOptionsProvider(_jsonOptions));
_services.AddSingleton<IApiFactory, ApiFactory>();
_services.AddSingleton<DefaultApiEvents>();
_services.AddTransient<IDefaultApi, DefaultApi>();
}

View File

@ -17,6 +17,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IAnotherFakeApi : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
AnotherFakeApiEvents Events { get; }
/// <summary>
/// To test special tags
/// </summary>
@ -54,6 +60,23 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class AnotherFakeApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<ModelClient>> OnCall123TestSpecialTags;
internal void ExecuteOnCall123TestSpecialTags(ApiResponse<ModelClient> apiResponse)
{
OnCall123TestSpecialTags?.Invoke(this, new ApiResponseEventArgs<ModelClient>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -71,6 +94,11 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public AnotherFakeApiEvents Events { get; }
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
/// </summary>
@ -100,7 +128,7 @@ namespace Org.OpenAPITools.Api
/// Initializes a new instance of the <see cref="AnotherFakeApi"/> class.
/// </summary>
/// <returns></returns>
public AnotherFakeApi(ILogger<AnotherFakeApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider,
public AnotherFakeApi(ILogger<AnotherFakeApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, AnotherFakeApiEvents anotherFakeApiEvents,
TokenProvider<ApiKeyToken> apiKeyProvider,
TokenProvider<BearerToken> bearerTokenProvider,
TokenProvider<BasicToken> basicTokenProvider,
@ -110,6 +138,7 @@ namespace Org.OpenAPITools.Api
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = anotherFakeApiEvents;
ApiKeyProvider = apiKeyProvider;
BearerTokenProvider = bearerTokenProvider;
BasicTokenProvider = basicTokenProvider;
@ -250,6 +279,8 @@ namespace Org.OpenAPITools.Api
AfterCall123TestSpecialTagsDefaultImplementation(apiResponseLocalVar, modelClient);
Events.ExecuteOnCall123TestSpecialTags(apiResponseLocalVar);
return apiResponseLocalVar;
}
}

View File

@ -17,6 +17,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IDefaultApi : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
DefaultApiEvents Events { get; }
/// <summary>
///
/// </summary>
@ -96,6 +102,43 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class DefaultApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<FooGetDefaultResponse>> OnFooGet;
internal void ExecuteOnFooGet(ApiResponse<FooGetDefaultResponse> apiResponse)
{
OnFooGet?.Invoke(this, new ApiResponseEventArgs<FooGetDefaultResponse>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnGetCountry;
internal void ExecuteOnGetCountry(ApiResponse<object> apiResponse)
{
OnGetCountry?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<List<Guid>>> OnHello;
internal void ExecuteOnHello(ApiResponse<List<Guid>> apiResponse)
{
OnHello?.Invoke(this, new ApiResponseEventArgs<List<Guid>>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -113,6 +156,11 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public DefaultApiEvents Events { get; }
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
/// </summary>
@ -142,7 +190,7 @@ namespace Org.OpenAPITools.Api
/// Initializes a new instance of the <see cref="DefaultApi"/> class.
/// </summary>
/// <returns></returns>
public DefaultApi(ILogger<DefaultApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider,
public DefaultApi(ILogger<DefaultApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, DefaultApiEvents defaultApiEvents,
TokenProvider<ApiKeyToken> apiKeyProvider,
TokenProvider<BearerToken> bearerTokenProvider,
TokenProvider<BasicToken> basicTokenProvider,
@ -152,6 +200,7 @@ namespace Org.OpenAPITools.Api
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = defaultApiEvents;
ApiKeyProvider = apiKeyProvider;
BearerTokenProvider = bearerTokenProvider;
BasicTokenProvider = basicTokenProvider;
@ -256,6 +305,8 @@ namespace Org.OpenAPITools.Api
AfterFooGetDefaultImplementation(apiResponseLocalVar);
Events.ExecuteOnFooGet(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -398,6 +449,8 @@ namespace Org.OpenAPITools.Api
AfterGetCountryDefaultImplementation(apiResponseLocalVar, country);
Events.ExecuteOnGetCountry(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -506,6 +559,8 @@ namespace Org.OpenAPITools.Api
AfterHelloDefaultImplementation(apiResponseLocalVar);
Events.ExecuteOnHello(apiResponseLocalVar);
return apiResponseLocalVar;
}
}

View File

@ -17,6 +17,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IFakeApi : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
FakeApiEvents Events { get; }
/// <summary>
/// Health check endpoint
/// </summary>
@ -444,6 +450,163 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class FakeApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<HealthCheckResult>> OnFakeHealthGet;
internal void ExecuteOnFakeHealthGet(ApiResponse<HealthCheckResult> apiResponse)
{
OnFakeHealthGet?.Invoke(this, new ApiResponseEventArgs<HealthCheckResult>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<bool>> OnFakeOuterBooleanSerialize;
internal void ExecuteOnFakeOuterBooleanSerialize(ApiResponse<bool> apiResponse)
{
OnFakeOuterBooleanSerialize?.Invoke(this, new ApiResponseEventArgs<bool>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<OuterComposite>> OnFakeOuterCompositeSerialize;
internal void ExecuteOnFakeOuterCompositeSerialize(ApiResponse<OuterComposite> apiResponse)
{
OnFakeOuterCompositeSerialize?.Invoke(this, new ApiResponseEventArgs<OuterComposite>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<decimal>> OnFakeOuterNumberSerialize;
internal void ExecuteOnFakeOuterNumberSerialize(ApiResponse<decimal> apiResponse)
{
OnFakeOuterNumberSerialize?.Invoke(this, new ApiResponseEventArgs<decimal>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<string>> OnFakeOuterStringSerialize;
internal void ExecuteOnFakeOuterStringSerialize(ApiResponse<string> apiResponse)
{
OnFakeOuterStringSerialize?.Invoke(this, new ApiResponseEventArgs<string>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<List<OuterEnum>>> OnGetArrayOfEnums;
internal void ExecuteOnGetArrayOfEnums(ApiResponse<List<OuterEnum>> apiResponse)
{
OnGetArrayOfEnums?.Invoke(this, new ApiResponseEventArgs<List<OuterEnum>>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnTestBodyWithFileSchema;
internal void ExecuteOnTestBodyWithFileSchema(ApiResponse<object> apiResponse)
{
OnTestBodyWithFileSchema?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnTestBodyWithQueryParams;
internal void ExecuteOnTestBodyWithQueryParams(ApiResponse<object> apiResponse)
{
OnTestBodyWithQueryParams?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<ModelClient>> OnTestClientModel;
internal void ExecuteOnTestClientModel(ApiResponse<ModelClient> apiResponse)
{
OnTestClientModel?.Invoke(this, new ApiResponseEventArgs<ModelClient>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnTestEndpointParameters;
internal void ExecuteOnTestEndpointParameters(ApiResponse<object> apiResponse)
{
OnTestEndpointParameters?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnTestEnumParameters;
internal void ExecuteOnTestEnumParameters(ApiResponse<object> apiResponse)
{
OnTestEnumParameters?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnTestGroupParameters;
internal void ExecuteOnTestGroupParameters(ApiResponse<object> apiResponse)
{
OnTestGroupParameters?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnTestInlineAdditionalProperties;
internal void ExecuteOnTestInlineAdditionalProperties(ApiResponse<object> apiResponse)
{
OnTestInlineAdditionalProperties?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnTestJsonFormData;
internal void ExecuteOnTestJsonFormData(ApiResponse<object> apiResponse)
{
OnTestJsonFormData?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnTestQueryParameterCollectionFormat;
internal void ExecuteOnTestQueryParameterCollectionFormat(ApiResponse<object> apiResponse)
{
OnTestQueryParameterCollectionFormat?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -461,6 +624,11 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public FakeApiEvents Events { get; }
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
/// </summary>
@ -490,7 +658,7 @@ namespace Org.OpenAPITools.Api
/// Initializes a new instance of the <see cref="FakeApi"/> class.
/// </summary>
/// <returns></returns>
public FakeApi(ILogger<FakeApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider,
public FakeApi(ILogger<FakeApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, FakeApiEvents fakeApiEvents,
TokenProvider<ApiKeyToken> apiKeyProvider,
TokenProvider<BearerToken> bearerTokenProvider,
TokenProvider<BasicToken> basicTokenProvider,
@ -500,6 +668,7 @@ namespace Org.OpenAPITools.Api
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = fakeApiEvents;
ApiKeyProvider = apiKeyProvider;
BearerTokenProvider = bearerTokenProvider;
BasicTokenProvider = basicTokenProvider;
@ -604,6 +773,8 @@ namespace Org.OpenAPITools.Api
AfterFakeHealthGetDefaultImplementation(apiResponseLocalVar);
Events.ExecuteOnFakeHealthGet(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -736,6 +907,8 @@ namespace Org.OpenAPITools.Api
AfterFakeOuterBooleanSerializeDefaultImplementation(apiResponseLocalVar, body);
Events.ExecuteOnFakeOuterBooleanSerialize(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -881,6 +1054,8 @@ namespace Org.OpenAPITools.Api
AfterFakeOuterCompositeSerializeDefaultImplementation(apiResponseLocalVar, outerComposite);
Events.ExecuteOnFakeOuterCompositeSerialize(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1013,6 +1188,8 @@ namespace Org.OpenAPITools.Api
AfterFakeOuterNumberSerializeDefaultImplementation(apiResponseLocalVar, body);
Events.ExecuteOnFakeOuterNumberSerialize(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1170,6 +1347,8 @@ namespace Org.OpenAPITools.Api
AfterFakeOuterStringSerializeDefaultImplementation(apiResponseLocalVar, requiredStringUuid, body);
Events.ExecuteOnFakeOuterStringSerialize(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1278,6 +1457,8 @@ namespace Org.OpenAPITools.Api
AfterGetArrayOfEnumsDefaultImplementation(apiResponseLocalVar);
Events.ExecuteOnGetArrayOfEnums(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1414,6 +1595,8 @@ namespace Org.OpenAPITools.Api
AfterTestBodyWithFileSchemaDefaultImplementation(apiResponseLocalVar, fileSchemaTestClass);
Events.ExecuteOnTestBodyWithFileSchema(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1566,6 +1749,8 @@ namespace Org.OpenAPITools.Api
AfterTestBodyWithQueryParamsDefaultImplementation(apiResponseLocalVar, user, query);
Events.ExecuteOnTestBodyWithQueryParams(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1710,6 +1895,8 @@ namespace Org.OpenAPITools.Api
AfterTestClientModelDefaultImplementation(apiResponseLocalVar, modelClient);
Events.ExecuteOnTestClientModel(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1994,6 +2181,8 @@ namespace Org.OpenAPITools.Api
AfterTestEndpointParametersDefaultImplementation(apiResponseLocalVar, varByte, number, varDouble, patternWithoutDelimiter, date, binary, varFloat, integer, int32, int64, varString, password, callback, dateTime);
Events.ExecuteOnTestEndpointParameters(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -2226,6 +2415,8 @@ namespace Org.OpenAPITools.Api
AfterTestEnumParametersDefaultImplementation(apiResponseLocalVar, enumHeaderStringArray, enumQueryStringArray, enumQueryDouble, enumQueryInteger, enumFormStringArray, enumHeaderString, enumQueryString, enumFormString);
Events.ExecuteOnTestEnumParameters(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -2391,6 +2582,8 @@ namespace Org.OpenAPITools.Api
AfterTestGroupParametersDefaultImplementation(apiResponseLocalVar, requiredBooleanGroup, requiredStringGroup, requiredInt64Group, booleanGroup, stringGroup, int64Group);
Events.ExecuteOnTestGroupParameters(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -2531,6 +2724,8 @@ namespace Org.OpenAPITools.Api
AfterTestInlineAdditionalPropertiesDefaultImplementation(apiResponseLocalVar, requestBody);
Events.ExecuteOnTestInlineAdditionalProperties(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -2685,6 +2880,8 @@ namespace Org.OpenAPITools.Api
AfterTestJsonFormDataDefaultImplementation(apiResponseLocalVar, param, param2);
Events.ExecuteOnTestJsonFormData(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -2897,6 +3094,8 @@ namespace Org.OpenAPITools.Api
AfterTestQueryParameterCollectionFormatDefaultImplementation(apiResponseLocalVar, pipe, ioutil, http, url, context, requiredNotNullable, requiredNullable, notRequiredNotNullable, notRequiredNullable);
Events.ExecuteOnTestQueryParameterCollectionFormat(apiResponseLocalVar);
return apiResponseLocalVar;
}
}

View File

@ -17,6 +17,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IFakeClassnameTags123Api : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
FakeClassnameTags123ApiEvents Events { get; }
/// <summary>
/// To test class name in snake case
/// </summary>
@ -54,6 +60,23 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class FakeClassnameTags123ApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<ModelClient>> OnTestClassname;
internal void ExecuteOnTestClassname(ApiResponse<ModelClient> apiResponse)
{
OnTestClassname?.Invoke(this, new ApiResponseEventArgs<ModelClient>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -71,6 +94,11 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public FakeClassnameTags123ApiEvents Events { get; }
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
/// </summary>
@ -100,7 +128,7 @@ namespace Org.OpenAPITools.Api
/// Initializes a new instance of the <see cref="FakeClassnameTags123Api"/> class.
/// </summary>
/// <returns></returns>
public FakeClassnameTags123Api(ILogger<FakeClassnameTags123Api> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider,
public FakeClassnameTags123Api(ILogger<FakeClassnameTags123Api> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, FakeClassnameTags123ApiEvents fakeClassnameTags123ApiEvents,
TokenProvider<ApiKeyToken> apiKeyProvider,
TokenProvider<BearerToken> bearerTokenProvider,
TokenProvider<BasicToken> basicTokenProvider,
@ -110,6 +138,7 @@ namespace Org.OpenAPITools.Api
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = fakeClassnameTags123ApiEvents;
ApiKeyProvider = apiKeyProvider;
BearerTokenProvider = bearerTokenProvider;
BasicTokenProvider = basicTokenProvider;
@ -261,6 +290,8 @@ namespace Org.OpenAPITools.Api
AfterTestClassnameDefaultImplementation(apiResponseLocalVar, modelClient);
Events.ExecuteOnTestClassname(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();

View File

@ -17,6 +17,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IPetApi : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
PetApiEvents Events { get; }
/// <summary>
/// Add a new pet to the store
/// </summary>
@ -252,6 +258,103 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class PetApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnAddPet;
internal void ExecuteOnAddPet(ApiResponse<object> apiResponse)
{
OnAddPet?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnDeletePet;
internal void ExecuteOnDeletePet(ApiResponse<object> apiResponse)
{
OnDeletePet?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<List<Pet>>> OnFindPetsByStatus;
internal void ExecuteOnFindPetsByStatus(ApiResponse<List<Pet>> apiResponse)
{
OnFindPetsByStatus?.Invoke(this, new ApiResponseEventArgs<List<Pet>>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<List<Pet>>> OnFindPetsByTags;
internal void ExecuteOnFindPetsByTags(ApiResponse<List<Pet>> apiResponse)
{
OnFindPetsByTags?.Invoke(this, new ApiResponseEventArgs<List<Pet>>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<Pet>> OnGetPetById;
internal void ExecuteOnGetPetById(ApiResponse<Pet> apiResponse)
{
OnGetPetById?.Invoke(this, new ApiResponseEventArgs<Pet>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnUpdatePet;
internal void ExecuteOnUpdatePet(ApiResponse<object> apiResponse)
{
OnUpdatePet?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnUpdatePetWithForm;
internal void ExecuteOnUpdatePetWithForm(ApiResponse<object> apiResponse)
{
OnUpdatePetWithForm?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<ApiResponse>> OnUploadFile;
internal void ExecuteOnUploadFile(ApiResponse<ApiResponse> apiResponse)
{
OnUploadFile?.Invoke(this, new ApiResponseEventArgs<ApiResponse>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<ApiResponse>> OnUploadFileWithRequiredFile;
internal void ExecuteOnUploadFileWithRequiredFile(ApiResponse<ApiResponse> apiResponse)
{
OnUploadFileWithRequiredFile?.Invoke(this, new ApiResponseEventArgs<ApiResponse>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -269,6 +372,11 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public PetApiEvents Events { get; }
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
/// </summary>
@ -298,7 +406,7 @@ namespace Org.OpenAPITools.Api
/// Initializes a new instance of the <see cref="PetApi"/> class.
/// </summary>
/// <returns></returns>
public PetApi(ILogger<PetApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider,
public PetApi(ILogger<PetApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, PetApiEvents petApiEvents,
TokenProvider<ApiKeyToken> apiKeyProvider,
TokenProvider<BearerToken> bearerTokenProvider,
TokenProvider<BasicToken> basicTokenProvider,
@ -308,6 +416,7 @@ namespace Org.OpenAPITools.Api
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = petApiEvents;
ApiKeyProvider = apiKeyProvider;
BearerTokenProvider = bearerTokenProvider;
BasicTokenProvider = basicTokenProvider;
@ -459,6 +568,8 @@ namespace Org.OpenAPITools.Api
AfterAddPetDefaultImplementation(apiResponseLocalVar, pet);
Events.ExecuteOnAddPet(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -607,6 +718,8 @@ namespace Org.OpenAPITools.Api
AfterDeletePetDefaultImplementation(apiResponseLocalVar, petId, apiKey);
Events.ExecuteOnDeletePet(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -767,6 +880,8 @@ namespace Org.OpenAPITools.Api
AfterFindPetsByStatusDefaultImplementation(apiResponseLocalVar, status);
Events.ExecuteOnFindPetsByStatus(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -931,6 +1046,8 @@ namespace Org.OpenAPITools.Api
AfterFindPetsByTagsDefaultImplementation(apiResponseLocalVar, tags);
Events.ExecuteOnFindPetsByTags(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -1067,6 +1184,8 @@ namespace Org.OpenAPITools.Api
AfterGetPetByIdDefaultImplementation(apiResponseLocalVar, petId);
Events.ExecuteOnGetPetById(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -1226,6 +1345,8 @@ namespace Org.OpenAPITools.Api
AfterUpdatePetDefaultImplementation(apiResponseLocalVar, pet);
Events.ExecuteOnUpdatePet(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -1403,6 +1524,8 @@ namespace Org.OpenAPITools.Api
AfterUpdatePetWithFormDefaultImplementation(apiResponseLocalVar, petId, name, status);
Events.ExecuteOnUpdatePetWithForm(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -1584,6 +1707,8 @@ namespace Org.OpenAPITools.Api
AfterUploadFileDefaultImplementation(apiResponseLocalVar, petId, file, additionalMetadata);
Events.ExecuteOnUploadFile(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -1765,6 +1890,8 @@ namespace Org.OpenAPITools.Api
AfterUploadFileWithRequiredFileDefaultImplementation(apiResponseLocalVar, requiredFile, petId, additionalMetadata);
Events.ExecuteOnUploadFileWithRequiredFile(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();

View File

@ -17,6 +17,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IStoreApi : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
StoreApiEvents Events { get; }
/// <summary>
/// Delete purchase order by ID
/// </summary>
@ -121,6 +127,53 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class StoreApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnDeleteOrder;
internal void ExecuteOnDeleteOrder(ApiResponse<object> apiResponse)
{
OnDeleteOrder?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<Dictionary<string, int>>> OnGetInventory;
internal void ExecuteOnGetInventory(ApiResponse<Dictionary<string, int>> apiResponse)
{
OnGetInventory?.Invoke(this, new ApiResponseEventArgs<Dictionary<string, int>>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<Order>> OnGetOrderById;
internal void ExecuteOnGetOrderById(ApiResponse<Order> apiResponse)
{
OnGetOrderById?.Invoke(this, new ApiResponseEventArgs<Order>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<Order>> OnPlaceOrder;
internal void ExecuteOnPlaceOrder(ApiResponse<Order> apiResponse)
{
OnPlaceOrder?.Invoke(this, new ApiResponseEventArgs<Order>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -138,6 +191,11 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public StoreApiEvents Events { get; }
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
/// </summary>
@ -167,7 +225,7 @@ namespace Org.OpenAPITools.Api
/// Initializes a new instance of the <see cref="StoreApi"/> class.
/// </summary>
/// <returns></returns>
public StoreApi(ILogger<StoreApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider,
public StoreApi(ILogger<StoreApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, StoreApiEvents storeApiEvents,
TokenProvider<ApiKeyToken> apiKeyProvider,
TokenProvider<BearerToken> bearerTokenProvider,
TokenProvider<BasicToken> basicTokenProvider,
@ -177,6 +235,7 @@ namespace Org.OpenAPITools.Api
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = storeApiEvents;
ApiKeyProvider = apiKeyProvider;
BearerTokenProvider = bearerTokenProvider;
BasicTokenProvider = basicTokenProvider;
@ -296,6 +355,8 @@ namespace Org.OpenAPITools.Api
AfterDeleteOrderDefaultImplementation(apiResponseLocalVar, orderId);
Events.ExecuteOnDeleteOrder(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -412,6 +473,8 @@ namespace Org.OpenAPITools.Api
AfterGetInventoryDefaultImplementation(apiResponseLocalVar);
Events.ExecuteOnGetInventory(apiResponseLocalVar);
if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429)
foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars)
tokenBaseLocalVar.BeginRateLimit();
@ -536,6 +599,8 @@ namespace Org.OpenAPITools.Api
AfterGetOrderByIdDefaultImplementation(apiResponseLocalVar, orderId);
Events.ExecuteOnGetOrderById(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -681,6 +746,8 @@ namespace Org.OpenAPITools.Api
AfterPlaceOrderDefaultImplementation(apiResponseLocalVar, order);
Events.ExecuteOnPlaceOrder(apiResponseLocalVar);
return apiResponseLocalVar;
}
}

View File

@ -17,6 +17,7 @@ using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
namespace Org.OpenAPITools.IApi
@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi
/// </summary>
public interface IUserApi : IApi
{
/// <summary>
/// The class containing the events
/// </summary>
UserApiEvents Events { get; }
/// <summary>
/// Create user
/// </summary>
@ -217,6 +223,93 @@ namespace Org.OpenAPITools.IApi
namespace Org.OpenAPITools.Api
{
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// This class is registered as transient.
/// </summary>
public class UserApiEvents
{
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnCreateUser;
internal void ExecuteOnCreateUser(ApiResponse<object> apiResponse)
{
OnCreateUser?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnCreateUsersWithArrayInput;
internal void ExecuteOnCreateUsersWithArrayInput(ApiResponse<object> apiResponse)
{
OnCreateUsersWithArrayInput?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnCreateUsersWithListInput;
internal void ExecuteOnCreateUsersWithListInput(ApiResponse<object> apiResponse)
{
OnCreateUsersWithListInput?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnDeleteUser;
internal void ExecuteOnDeleteUser(ApiResponse<object> apiResponse)
{
OnDeleteUser?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<User>> OnGetUserByName;
internal void ExecuteOnGetUserByName(ApiResponse<User> apiResponse)
{
OnGetUserByName?.Invoke(this, new ApiResponseEventArgs<User>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<string>> OnLoginUser;
internal void ExecuteOnLoginUser(ApiResponse<string> apiResponse)
{
OnLoginUser?.Invoke(this, new ApiResponseEventArgs<string>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnLogoutUser;
internal void ExecuteOnLogoutUser(ApiResponse<object> apiResponse)
{
OnLogoutUser?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
/// <summary>
/// The event raised after the server response
/// </summary>
public event EventHandler<ApiResponseEventArgs<object>> OnUpdateUser;
internal void ExecuteOnUpdateUser(ApiResponse<object> apiResponse)
{
OnUpdateUser?.Invoke(this, new ApiResponseEventArgs<object>(apiResponse));
}
}
/// <summary>
/// Represents a collection of functions to interact with the API endpoints
/// </summary>
@ -234,6 +327,11 @@ namespace Org.OpenAPITools.Api
/// </summary>
public HttpClient HttpClient { get; }
/// <summary>
/// The class containing the events
/// </summary>
public UserApiEvents Events { get; }
/// <summary>
/// A token provider of type <see cref="ApiKeyProvider"/>
/// </summary>
@ -263,7 +361,7 @@ namespace Org.OpenAPITools.Api
/// Initializes a new instance of the <see cref="UserApi"/> class.
/// </summary>
/// <returns></returns>
public UserApi(ILogger<UserApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider,
public UserApi(ILogger<UserApi> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, UserApiEvents userApiEvents,
TokenProvider<ApiKeyToken> apiKeyProvider,
TokenProvider<BearerToken> bearerTokenProvider,
TokenProvider<BasicToken> basicTokenProvider,
@ -273,6 +371,7 @@ namespace Org.OpenAPITools.Api
_jsonSerializerOptions = jsonSerializerOptionsProvider.Options;
Logger = logger;
HttpClient = httpClient;
Events = userApiEvents;
ApiKeyProvider = apiKeyProvider;
BearerTokenProvider = bearerTokenProvider;
BasicTokenProvider = basicTokenProvider;
@ -405,6 +504,8 @@ namespace Org.OpenAPITools.Api
AfterCreateUserDefaultImplementation(apiResponseLocalVar, user);
Events.ExecuteOnCreateUser(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -541,6 +642,8 @@ namespace Org.OpenAPITools.Api
AfterCreateUsersWithArrayInputDefaultImplementation(apiResponseLocalVar, user);
Events.ExecuteOnCreateUsersWithArrayInput(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -677,6 +780,8 @@ namespace Org.OpenAPITools.Api
AfterCreateUsersWithListInputDefaultImplementation(apiResponseLocalVar, user);
Events.ExecuteOnCreateUsersWithListInput(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -800,6 +905,8 @@ namespace Org.OpenAPITools.Api
AfterDeleteUserDefaultImplementation(apiResponseLocalVar, username);
Events.ExecuteOnDeleteUser(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -933,6 +1040,8 @@ namespace Org.OpenAPITools.Api
AfterGetUserByNameDefaultImplementation(apiResponseLocalVar, username);
Events.ExecuteOnGetUserByName(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1082,6 +1191,8 @@ namespace Org.OpenAPITools.Api
AfterLoginUserDefaultImplementation(apiResponseLocalVar, username, password);
Events.ExecuteOnLoginUser(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1181,6 +1292,8 @@ namespace Org.OpenAPITools.Api
AfterLogoutUserDefaultImplementation(apiResponseLocalVar);
Events.ExecuteOnLogoutUser(apiResponseLocalVar);
return apiResponseLocalVar;
}
}
@ -1328,6 +1441,8 @@ namespace Org.OpenAPITools.Api
AfterUpdateUserDefaultImplementation(apiResponseLocalVar, user, username);
Events.ExecuteOnUpdateUser(apiResponseLocalVar);
return apiResponseLocalVar;
}
}

View File

@ -1,58 +1,24 @@
using System;
using System.Net;
namespace Org.OpenAPITools.Client
{
/// <summary>
/// Useful for tracking server health.
/// Useful for tracking server health
/// </summary>
public class ApiResponseEventArgs : EventArgs
public class ApiResponseEventArgs<T> : EventArgs
{
/// <summary>
/// The time the request was sent.
/// The ApiResponse
/// </summary>
public DateTime RequestedAt { get; }
public ApiResponse<T> ApiResponse { get; }
/// <summary>
/// The time the response was received.
/// The ApiResponseEventArgs
/// </summary>
public DateTime ReceivedAt { get; }
/// <summary>
/// The HttpStatusCode received.
/// </summary>
public HttpStatusCode HttpStatus { get; }
/// <summary>
/// The path requested.
/// </summary>
public string PathFormat { get; }
/// <summary>
/// The elapsed time from request to response.
/// </summary>
public TimeSpan ToTimeSpan => this.ReceivedAt - this.RequestedAt;
/// <summary>
/// The path
/// </summary>
public string Path { get; }
/// <summary>
/// The event args used to track server health.
/// </summary>
/// <param name="requestedAt"></param>
/// <param name="receivedAt"></param>
/// <param name="httpStatus"></param>
/// <param name="pathFormat"></param>
/// <param name="path"></param>
public ApiResponseEventArgs(DateTime requestedAt, DateTime receivedAt, HttpStatusCode httpStatus, string pathFormat, string path)
/// <param name="apiResponse"></param>
public ApiResponseEventArgs(ApiResponse<T> apiResponse)
{
RequestedAt = requestedAt;
ReceivedAt = receivedAt;
HttpStatus = httpStatus;
PathFormat = pathFormat;
Path = path;
ApiResponse = apiResponse;
}
}
}

View File

@ -132,12 +132,19 @@ namespace Org.OpenAPITools.Client
_jsonOptions.Converters.Add(new ZeroBasedEnumClassJsonConverter());
_services.AddSingleton(new JsonSerializerOptionsProvider(_jsonOptions));
_services.AddSingleton<IApiFactory, ApiFactory>();
_services.AddSingleton<AnotherFakeApiEvents>();
_services.AddTransient<IAnotherFakeApi, AnotherFakeApi>();
_services.AddSingleton<DefaultApiEvents>();
_services.AddTransient<IDefaultApi, DefaultApi>();
_services.AddSingleton<FakeApiEvents>();
_services.AddTransient<IFakeApi, FakeApi>();
_services.AddSingleton<FakeClassnameTags123ApiEvents>();
_services.AddTransient<IFakeClassnameTags123Api, FakeClassnameTags123Api>();
_services.AddSingleton<PetApiEvents>();
_services.AddTransient<IPetApi, PetApi>();
_services.AddSingleton<StoreApiEvents>();
_services.AddTransient<IStoreApi, StoreApi>();
_services.AddSingleton<UserApiEvents>();
_services.AddTransient<IUserApi, UserApi>();
}