Compare commits

..

16 Commits

Author SHA1 Message Date
William Cheng
448c460517 Merge branch 'client-multipart-support' of https://github.com/condorcorde/openapi-generator into condorcorde-client-multipart-support 2024-04-07 20:58:18 +08:00
condorcorde
50e083b79c Merge branch 'client-multipart-support' of https://github.com/condorcorde/openapi-generator into client-multipart-support 2024-04-07 11:38:54 +02:00
condorcorde
5d7a70a972 Tabs removed 2024-04-07 11:37:34 +02:00
condorcorde
a43128d300 Merge branch 'OpenAPITools:master' into client-multipart-support 2024-04-07 10:03:03 +02:00
condorcorde
b14ff289b6 Update api_client.mustache 2024-04-06 21:00:28 +02:00
condorcorde
a636968b22 Update api_client.nustache 2024-04-06 15:56:25 +02:00
condorcorde
7860c654d2 Merge branch 'OpenAPITools:master' into client-multipart-support 2024-04-06 11:21:30 +02:00
condorcorde
a9227a94dc Update api_client.mustache 2024-04-06 11:20:38 +02:00
condorcorde
0bc3d55664 Merge branch 'client-multipart-support' of https://github.com/condorcorde/openapi-generator into client-multipart-support 2024-04-05 20:09:40 +02:00
condorcorde
4edda2e4ad Merge branch 'OpenAPITools:master' into client-multipart-support 2024-04-05 20:06:49 +02:00
condorcorde
6e7d9677ba Corrections after petstore tests 2024-04-05 20:04:35 +02:00
condorcorde
74994ed30a Merge branch 'OpenAPITools:master' into client-multipart-support 2024-04-05 10:18:07 +02:00
condorcorde
8dc1c81c68 Set $Multipart 2024-04-04 22:05:40 +02:00
condorcorde
3af8d66f84 Update ApiClient.ps1 2024-04-04 19:22:27 +02:00
condorcorde
b5868cedc7 Further code optimization 2024-04-04 18:02:12 +02:00
condorcorde
5f122f806b Support multipart requests 2024-04-04 17:53:29 +02:00
14 changed files with 257 additions and 320 deletions

View File

@@ -585,7 +585,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co
List<CodegenProperty> allOf = composedSchemas.getAllOf();
if (allOf != null) {
for (CodegenProperty property : allOf) {
property.name = patchPropertyName(model, camelize(property.baseType));
property.name = patchPropertyName(model, property.baseType);
patchPropertyVendorExtensions(property);
}
}
@@ -594,7 +594,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co
if (anyOf != null) {
removePropertiesDeclaredInComposedTypes(objs, model, anyOf);
for (CodegenProperty property : anyOf) {
property.name = patchPropertyName(model, camelize(property.baseType));
property.name = patchPropertyName(model, property.baseType);
property.isNullable = true;
patchPropertyVendorExtensions(property);
}
@@ -604,7 +604,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co
if (oneOf != null) {
removePropertiesDeclaredInComposedTypes(objs, model, oneOf);
for (CodegenProperty property : oneOf) {
property.name = patchPropertyName(model, camelize(property.baseType));
property.name = patchPropertyName(model, property.baseType);
property.isNullable = true;
patchPropertyVendorExtensions(property);
}

View File

@@ -36,7 +36,10 @@ function Invoke-{{{apiNamePrefix}}}ApiClient {
$Configuration = Get-{{{apiNamePrefix}}}Configuration
$RequestUri = $Configuration["BaseUrl"] + $Uri
$DefaultHeaders = $Configuration["DefaultHeaders"]
# should make sure that SkipCertificateCheck is not set for PowerShell 5
$SkipCertificateCheck = $Configuration["SkipCertificateCheck"]
$Proxy = $Configuration["Proxy"]
# cookie parameters
foreach ($Parameter in $CookieParameters.GetEnumerator()) {
@@ -56,19 +59,17 @@ function Invoke-{{{apiNamePrefix}}}ApiClient {
$HeaderParameters['Accept'] = $Accept
}
[string]$MultiPartBoundary = $null
$ContentType= SelectHeaders -Headers $ContentTypes
# Content-Type and multipart handling
$ContentType = SelectHeaders -Headers $ContentTypes
if ($ContentType) {
$HeaderParameters['Content-Type'] = $ContentType
if ($ContentType -eq 'multipart/form-data') {
[string]$MultiPartBoundary = [System.Guid]::NewGuid()
$MultiPartBoundary = "---------------------------$MultiPartBoundary"
$HeaderParameters['Content-Type'] = "$ContentType; boundary=$MultiPartBoundary"
$MultiPart = $true
}
}
# add default headers if any
foreach ($header in $Configuration["DefaultHeaders"].GetEnumerator()) {
foreach ($header in $DefaultHeaders.GetEnumerator()) {
$HeaderParameters[$header.Name] = $header.Value
}
@@ -89,30 +90,7 @@ function Invoke-{{{apiNamePrefix}}}ApiClient {
# include form parameters in the request body
if ($FormParameters -and $FormParameters.Count -gt 0) {
if (![string]::IsNullOrEmpty($MultiPartBoundary)) {
$RequestBody = ""
$LF = "`r`n"
$FormParameters.Keys | ForEach-Object {
$value = $FormParameters[$_]
$isFile = $value.GetType().FullName -eq "System.IO.FileInfo"
$RequestBody += "--$MultiPartBoundary$LF"
$RequestBody += "Content-Disposition: form-data; name=`"$_`""
if ($isFile) {
$fileName = $value.Name
$RequestBody += "; filename=`"$fileName`"$LF"
$RequestBody += "Content-Type: application/octet-stream$LF$LF"
$RequestBody += Get-Content -Path $value.FullName
} else {
$RequestBody += "$LF$LF"
$RequestBody += ([string]$value)
}
$RequestBody += "$LF--$MultiPartBoundary"
}
$RequestBody += "--"
} else {
$RequestBody = $FormParameters
}
$RequestBody = $FormParameters
}
if ($Body -or $IsBodyNullable) {
@@ -141,54 +119,55 @@ function Invoke-{{{apiNamePrefix}}}ApiClient {
}
{{/hasHttpSignatureMethods}}
# use splatting to pass parameters
$Params = @{}
$Params.Uri = $UriBuilder.Uri
$Params.Method = $Method
$Params.Headers = $HeaderParameters
$Params.ErrorAction = 'Stop'
if ($SkipCertificateCheck -eq $true) {
if ($null -eq $Configuration["Proxy"]) {
# skip certification check, no proxy
$Response = Invoke-WebRequest -Uri $UriBuilder.Uri `
-Method $Method `
-Headers $HeaderParameters `
-Body $RequestBody `
-ErrorAction Stop `
-UseBasicParsing `
-SkipCertificateCheck
} else {
# skip certification check, use proxy
$Response = Invoke-WebRequest -Uri $UriBuilder.Uri `
-Method $Method `
-Headers $HeaderParameters `
-Body $RequestBody `
-ErrorAction Stop `
-UseBasicParsing `
-SkipCertificateCheck `
-Proxy $Configuration["Proxy"].GetProxy($UriBuilder.Uri) `
-ProxyUseDefaultCredentials
}
} else {
if ($null -eq $Configuration["Proxy"]) {
# perform certification check, no proxy
$Response = Invoke-WebRequest -Uri $UriBuilder.Uri `
-Method $Method `
-Headers $HeaderParameters `
-Body $RequestBody `
-ErrorAction Stop `
-UseBasicParsing
} else {
# perform certification check, use proxy
$Response = Invoke-WebRequest -Uri $UriBuilder.Uri `
-Method $Method `
-Headers $HeaderParameters `
-Body $RequestBody `
-ErrorAction Stop `
-UseBasicParsing `
-Proxy $Configuration["Proxy"].GetProxy($UriBuilder.Uri) `
-ProxyUseDefaultCredentials
$Params.SkipCertificateCheck = $true
}
if ($null -ne $Proxy) {
$effectiveProxy = $Proxy.GetProxy($UriBuilder.Uri)
# do not set proxy if it is null or same as target Uri
if ($null -ne $effectiveProxy -and $effectiveProxy.AbsoluteUri -ne $UriBuilder.Uri) {
$Params.Proxy = $effectiveProxy.AbsoluteUri
$Params.ProxyUseDefaultCredentials = $true
}
}
return @{
Response = DeserializeResponse -Response $Response.Content -ReturnType $ReturnType -ContentTypes $Response.Headers["Content-Type"]
StatusCode = $Response.StatusCode
Headers = $Response.Headers
# use Invoke-RestApi if Content-Type is 'multipart/form-data', Invoke-WebRequest otherwise
if ($MultiPart) {
if ($PSVersionTable.PSVersion.Major -eq 5) {
# preset null return values as not supported by Invoke-RestMethod on PS5
$ResponseHeaders = $null
$ResponseStatusCode = $null
} else {
# preset return variables
$Params.ResponseHeadersVariable = "ResponseHeaders"
$Params.StatusCodeVariable = "ResponseStatusCode"
}
$Params.Form = $FormParameters
$Response = Invoke-RestMethod @Params
return @{
Response = $Response
StatusCode = $ResponseStatusCode
Headers = $ResponseHeaders
}
} else {
$Params.Body = $RequestBody
$Params.UseBasicParsing = $true
$Response = Invoke-WebRequest @Params
return @{
Response = DeserializeResponse -Response $Response.Content -ReturnType $ReturnType -ContentTypes $Response.Headers["Content-Type"]
StatusCode = $Response.StatusCode
Headers = $Response.Headers
}
}
}

View File

@@ -43,7 +43,10 @@ function Invoke-ApiClient {
$Configuration = Get-Configuration
$RequestUri = $Configuration["BaseUrl"] + $Uri
$DefaultHeaders = $Configuration["DefaultHeaders"]
# should make sure that SkipCertificateCheck is not set for PowerShell 5
$SkipCertificateCheck = $Configuration["SkipCertificateCheck"]
$Proxy = $Configuration["Proxy"]
# cookie parameters
foreach ($Parameter in $CookieParameters.GetEnumerator()) {
@@ -63,19 +66,17 @@ function Invoke-ApiClient {
$HeaderParameters['Accept'] = $Accept
}
[string]$MultiPartBoundary = $null
$ContentType= SelectHeaders -Headers $ContentTypes
# Content-Type and multipart handling
$ContentType = SelectHeaders -Headers $ContentTypes
if ($ContentType) {
$HeaderParameters['Content-Type'] = $ContentType
if ($ContentType -eq 'multipart/form-data') {
[string]$MultiPartBoundary = [System.Guid]::NewGuid()
$MultiPartBoundary = "---------------------------$MultiPartBoundary"
$HeaderParameters['Content-Type'] = "$ContentType; boundary=$MultiPartBoundary"
$MultiPart = $true
}
}
# add default headers if any
foreach ($header in $Configuration["DefaultHeaders"].GetEnumerator()) {
foreach ($header in $DefaultHeaders.GetEnumerator()) {
$HeaderParameters[$header.Name] = $header.Value
}
@@ -96,30 +97,7 @@ function Invoke-ApiClient {
# include form parameters in the request body
if ($FormParameters -and $FormParameters.Count -gt 0) {
if (![string]::IsNullOrEmpty($MultiPartBoundary)) {
$RequestBody = ""
$LF = "`r`n"
$FormParameters.Keys | ForEach-Object {
$value = $FormParameters[$_]
$isFile = $value.GetType().FullName -eq "System.IO.FileInfo"
$RequestBody += "--$MultiPartBoundary$LF"
$RequestBody += "Content-Disposition: form-data; name=`"$_`""
if ($isFile) {
$fileName = $value.Name
$RequestBody += "; filename=`"$fileName`"$LF"
$RequestBody += "Content-Type: application/octet-stream$LF$LF"
$RequestBody += Get-Content -Path $value.FullName
} else {
$RequestBody += "$LF$LF"
$RequestBody += ([string]$value)
}
$RequestBody += "$LF--$MultiPartBoundary"
}
$RequestBody += "--"
} else {
$RequestBody = $FormParameters
}
$RequestBody = $FormParameters
}
if ($Body -or $IsBodyNullable) {
@@ -129,54 +107,55 @@ function Invoke-ApiClient {
}
}
# use splatting to pass parameters
$Params = @{}
$Params.Uri = $UriBuilder.Uri
$Params.Method = $Method
$Params.Headers = $HeaderParameters
$Params.ErrorAction = 'Stop'
if ($SkipCertificateCheck -eq $true) {
if ($null -eq $Configuration["Proxy"]) {
# skip certification check, no proxy
$Response = Invoke-WebRequest -Uri $UriBuilder.Uri `
-Method $Method `
-Headers $HeaderParameters `
-Body $RequestBody `
-ErrorAction Stop `
-UseBasicParsing `
-SkipCertificateCheck
} else {
# skip certification check, use proxy
$Response = Invoke-WebRequest -Uri $UriBuilder.Uri `
-Method $Method `
-Headers $HeaderParameters `
-Body $RequestBody `
-ErrorAction Stop `
-UseBasicParsing `
-SkipCertificateCheck `
-Proxy $Configuration["Proxy"].GetProxy($UriBuilder.Uri) `
-ProxyUseDefaultCredentials
}
} else {
if ($null -eq $Configuration["Proxy"]) {
# perform certification check, no proxy
$Response = Invoke-WebRequest -Uri $UriBuilder.Uri `
-Method $Method `
-Headers $HeaderParameters `
-Body $RequestBody `
-ErrorAction Stop `
-UseBasicParsing
} else {
# perform certification check, use proxy
$Response = Invoke-WebRequest -Uri $UriBuilder.Uri `
-Method $Method `
-Headers $HeaderParameters `
-Body $RequestBody `
-ErrorAction Stop `
-UseBasicParsing `
-Proxy $Configuration["Proxy"].GetProxy($UriBuilder.Uri) `
-ProxyUseDefaultCredentials
$Params.SkipCertificateCheck = $true
}
if ($null -ne $Proxy) {
$effectiveProxy = $Proxy.GetProxy($UriBuilder.Uri)
# do not set proxy if it is null or same as target Uri
if ($null -ne $effectiveProxy -and $effectiveProxy.AbsoluteUri -ne $UriBuilder.Uri) {
$Params.Proxy = $effectiveProxy.AbsoluteUri
$Params.ProxyUseDefaultCredentials = $true
}
}
return @{
Response = DeserializeResponse -Response $Response.Content -ReturnType $ReturnType -ContentTypes $Response.Headers["Content-Type"]
StatusCode = $Response.StatusCode
Headers = $Response.Headers
# use Invoke-RestApi if Content-Type is 'multipart/form-data', Invoke-WebRequest otherwise
if ($MultiPart) {
if ($PSVersionTable.PSVersion.Major -eq 5) {
# preset null return values as not supported by Invoke-RestMethod on PS5
$ResponseHeaders = $null
$ResponseStatusCode = $null
} else {
# preset return variables
$Params.ResponseHeadersVariable = "ResponseHeaders"
$Params.StatusCodeVariable = "ResponseStatusCode"
}
$Params.Form = $FormParameters
$Response = Invoke-RestMethod @Params
return @{
Response = $Response
StatusCode = $ResponseStatusCode
Headers = $ResponseHeaders
}
} else {
$Params.Body = $RequestBody
$Params.UseBasicParsing = $true
$Response = Invoke-WebRequest @Params
return @{
Response = DeserializeResponse -Response $Response.Content -ReturnType $ReturnType -ContentTypes $Response.Headers["Content-Type"]
StatusCode = $Response.StatusCode
Headers = $Response.Headers
}
}
}

View File

@@ -32,19 +32,19 @@ namespace Org.OpenAPITools.Model
/// <summary>
/// Initializes a new instance of the <see cref="OneOfString" /> class.
/// </summary>
/// <param name="string"></param>
internal OneOfString(string @string)
/// <param name="varString"></param>
internal OneOfString(string varString)
{
String = @string;
VarString = varString;
OnCreated();
}
partial void OnCreated();
/// <summary>
/// Gets or Sets String
/// Gets or Sets VarString
/// </summary>
public string String { get; set; }
public string VarString { get; set; }
/// <summary>
/// Gets or Sets additional properties

View File

@@ -32,20 +32,20 @@ namespace Org.OpenAPITools.Model
/// <summary>
/// Initializes a new instance of the <see cref="PolymorphicProperty" /> class.
/// </summary>
/// <param name="bool"></param>
internal PolymorphicProperty(bool @bool)
/// <param name="varBool"></param>
internal PolymorphicProperty(bool varBool)
{
Bool = @bool;
VarBool = varBool;
OnCreated();
}
/// <summary>
/// Initializes a new instance of the <see cref="PolymorphicProperty" /> class.
/// </summary>
/// <param name="string"></param>
internal PolymorphicProperty(string @string)
/// <param name="varString"></param>
internal PolymorphicProperty(string varString)
{
String = @string;
VarString = varString;
OnCreated();
}
@@ -72,14 +72,14 @@ namespace Org.OpenAPITools.Model
partial void OnCreated();
/// <summary>
/// Gets or Sets Bool
/// Gets or Sets VarBool
/// </summary>
public bool? Bool { get; set; }
public bool? VarBool { get; set; }
/// <summary>
/// Gets or Sets String
/// Gets or Sets VarString
/// </summary>
public string String { get; set; }
public string VarString { get; set; }
/// <summary>
/// Gets or Sets Object
@@ -159,11 +159,11 @@ namespace Org.OpenAPITools.Model
if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1)
{
Utf8JsonReader utf8JsonReaderBool = utf8JsonReader;
ClientUtils.TryDeserialize<bool?>(ref utf8JsonReaderBool, jsonSerializerOptions, out varBool);
Utf8JsonReader utf8JsonReaderVarBool = utf8JsonReader;
ClientUtils.TryDeserialize<bool?>(ref utf8JsonReaderVarBool, jsonSerializerOptions, out varBool);
Utf8JsonReader utf8JsonReaderString = utf8JsonReader;
ClientUtils.TryDeserialize<string>(ref utf8JsonReaderString, jsonSerializerOptions, out varString);
Utf8JsonReader utf8JsonReaderVarString = utf8JsonReader;
ClientUtils.TryDeserialize<string>(ref utf8JsonReaderVarString, jsonSerializerOptions, out varString);
Utf8JsonReader utf8JsonReaderObject = utf8JsonReader;
ClientUtils.TryDeserialize<Object>(ref utf8JsonReaderObject, jsonSerializerOptions, out varObject);

View File

@@ -34,19 +34,19 @@ namespace Org.OpenAPITools.Model
/// <summary>
/// Initializes a new instance of the <see cref="OneOfString" /> class.
/// </summary>
/// <param name="string"></param>
internal OneOfString(string @string)
/// <param name="varString"></param>
internal OneOfString(string varString)
{
String = @string;
VarString = varString;
OnCreated();
}
partial void OnCreated();
/// <summary>
/// Gets or Sets String
/// Gets or Sets VarString
/// </summary>
public string? String { get; set; }
public string? VarString { get; set; }
/// <summary>
/// Gets or Sets additional properties

View File

@@ -34,20 +34,20 @@ namespace Org.OpenAPITools.Model
/// <summary>
/// Initializes a new instance of the <see cref="PolymorphicProperty" /> class.
/// </summary>
/// <param name="bool"></param>
internal PolymorphicProperty(bool @bool)
/// <param name="varBool"></param>
internal PolymorphicProperty(bool varBool)
{
Bool = @bool;
VarBool = varBool;
OnCreated();
}
/// <summary>
/// Initializes a new instance of the <see cref="PolymorphicProperty" /> class.
/// </summary>
/// <param name="string"></param>
internal PolymorphicProperty(string @string)
/// <param name="varString"></param>
internal PolymorphicProperty(string varString)
{
String = @string;
VarString = varString;
OnCreated();
}
@@ -74,14 +74,14 @@ namespace Org.OpenAPITools.Model
partial void OnCreated();
/// <summary>
/// Gets or Sets Bool
/// Gets or Sets VarBool
/// </summary>
public bool? Bool { get; set; }
public bool? VarBool { get; set; }
/// <summary>
/// Gets or Sets String
/// Gets or Sets VarString
/// </summary>
public string? String { get; set; }
public string? VarString { get; set; }
/// <summary>
/// Gets or Sets Object
@@ -161,11 +161,11 @@ namespace Org.OpenAPITools.Model
if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1)
{
Utf8JsonReader utf8JsonReaderBool = utf8JsonReader;
ClientUtils.TryDeserialize<bool?>(ref utf8JsonReaderBool, jsonSerializerOptions, out varBool);
Utf8JsonReader utf8JsonReaderVarBool = utf8JsonReader;
ClientUtils.TryDeserialize<bool?>(ref utf8JsonReaderVarBool, jsonSerializerOptions, out varBool);
Utf8JsonReader utf8JsonReaderString = utf8JsonReader;
ClientUtils.TryDeserialize<string?>(ref utf8JsonReaderString, jsonSerializerOptions, out varString);
Utf8JsonReader utf8JsonReaderVarString = utf8JsonReader;
ClientUtils.TryDeserialize<string?>(ref utf8JsonReaderVarString, jsonSerializerOptions, out varString);
Utf8JsonReader utf8JsonReaderObject = utf8JsonReader;
ClientUtils.TryDeserialize<Object?>(ref utf8JsonReaderObject, jsonSerializerOptions, out varObject);

View File

@@ -32,19 +32,19 @@ namespace Org.OpenAPITools.Model
/// <summary>
/// Initializes a new instance of the <see cref="OneOfString" /> class.
/// </summary>
/// <param name="string"></param>
internal OneOfString(string @string)
/// <param name="varString"></param>
internal OneOfString(string varString)
{
String = @string;
VarString = varString;
OnCreated();
}
partial void OnCreated();
/// <summary>
/// Gets or Sets String
/// Gets or Sets VarString
/// </summary>
public string String { get; set; }
public string VarString { get; set; }
/// <summary>
/// Gets or Sets additional properties

View File

@@ -32,20 +32,20 @@ namespace Org.OpenAPITools.Model
/// <summary>
/// Initializes a new instance of the <see cref="PolymorphicProperty" /> class.
/// </summary>
/// <param name="bool"></param>
internal PolymorphicProperty(bool @bool)
/// <param name="varBool"></param>
internal PolymorphicProperty(bool varBool)
{
Bool = @bool;
VarBool = varBool;
OnCreated();
}
/// <summary>
/// Initializes a new instance of the <see cref="PolymorphicProperty" /> class.
/// </summary>
/// <param name="string"></param>
internal PolymorphicProperty(string @string)
/// <param name="varString"></param>
internal PolymorphicProperty(string varString)
{
String = @string;
VarString = varString;
OnCreated();
}
@@ -72,14 +72,14 @@ namespace Org.OpenAPITools.Model
partial void OnCreated();
/// <summary>
/// Gets or Sets Bool
/// Gets or Sets VarBool
/// </summary>
public bool? Bool { get; set; }
public bool? VarBool { get; set; }
/// <summary>
/// Gets or Sets String
/// Gets or Sets VarString
/// </summary>
public string String { get; set; }
public string VarString { get; set; }
/// <summary>
/// Gets or Sets Object
@@ -159,11 +159,11 @@ namespace Org.OpenAPITools.Model
if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1)
{
Utf8JsonReader utf8JsonReaderBool = utf8JsonReader;
ClientUtils.TryDeserialize<bool?>(ref utf8JsonReaderBool, jsonSerializerOptions, out varBool);
Utf8JsonReader utf8JsonReaderVarBool = utf8JsonReader;
ClientUtils.TryDeserialize<bool?>(ref utf8JsonReaderVarBool, jsonSerializerOptions, out varBool);
Utf8JsonReader utf8JsonReaderString = utf8JsonReader;
ClientUtils.TryDeserialize<string>(ref utf8JsonReaderString, jsonSerializerOptions, out varString);
Utf8JsonReader utf8JsonReaderVarString = utf8JsonReader;
ClientUtils.TryDeserialize<string>(ref utf8JsonReaderVarString, jsonSerializerOptions, out varString);
Utf8JsonReader utf8JsonReaderObject = utf8JsonReader;
ClientUtils.TryDeserialize<Object>(ref utf8JsonReaderObject, jsonSerializerOptions, out varObject);

View File

@@ -35,19 +35,19 @@ namespace Org.OpenAPITools.Model
/// <summary>
/// Initializes a new instance of the <see cref="OneOfString" /> class.
/// </summary>
/// <param name="string"></param>
internal OneOfString(string @string)
/// <param name="varString"></param>
internal OneOfString(string varString)
{
String = @string;
VarString = varString;
OnCreated();
}
partial void OnCreated();
/// <summary>
/// Gets or Sets String
/// Gets or Sets VarString
/// </summary>
public string? String { get; set; }
public string? VarString { get; set; }
/// <summary>
/// Gets or Sets additional properties

View File

@@ -35,20 +35,20 @@ namespace Org.OpenAPITools.Model
/// <summary>
/// Initializes a new instance of the <see cref="PolymorphicProperty" /> class.
/// </summary>
/// <param name="bool"></param>
internal PolymorphicProperty(bool @bool)
/// <param name="varBool"></param>
internal PolymorphicProperty(bool varBool)
{
Bool = @bool;
VarBool = varBool;
OnCreated();
}
/// <summary>
/// Initializes a new instance of the <see cref="PolymorphicProperty" /> class.
/// </summary>
/// <param name="string"></param>
internal PolymorphicProperty(string @string)
/// <param name="varString"></param>
internal PolymorphicProperty(string varString)
{
String = @string;
VarString = varString;
OnCreated();
}
@@ -75,14 +75,14 @@ namespace Org.OpenAPITools.Model
partial void OnCreated();
/// <summary>
/// Gets or Sets Bool
/// Gets or Sets VarBool
/// </summary>
public bool? Bool { get; set; }
public bool? VarBool { get; set; }
/// <summary>
/// Gets or Sets String
/// Gets or Sets VarString
/// </summary>
public string? String { get; set; }
public string? VarString { get; set; }
/// <summary>
/// Gets or Sets Object
@@ -162,11 +162,11 @@ namespace Org.OpenAPITools.Model
if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1)
{
Utf8JsonReader utf8JsonReaderBool = utf8JsonReader;
ClientUtils.TryDeserialize<bool?>(ref utf8JsonReaderBool, jsonSerializerOptions, out varBool);
Utf8JsonReader utf8JsonReaderVarBool = utf8JsonReader;
ClientUtils.TryDeserialize<bool?>(ref utf8JsonReaderVarBool, jsonSerializerOptions, out varBool);
Utf8JsonReader utf8JsonReaderString = utf8JsonReader;
ClientUtils.TryDeserialize<string?>(ref utf8JsonReaderString, jsonSerializerOptions, out varString);
Utf8JsonReader utf8JsonReaderVarString = utf8JsonReader;
ClientUtils.TryDeserialize<string?>(ref utf8JsonReaderVarString, jsonSerializerOptions, out varString);
Utf8JsonReader utf8JsonReaderObject = utf8JsonReader;
ClientUtils.TryDeserialize<Object?>(ref utf8JsonReaderObject, jsonSerializerOptions, out varObject);

View File

@@ -32,19 +32,19 @@ namespace Org.OpenAPITools.Model
/// <summary>
/// Initializes a new instance of the <see cref="OneOfString" /> class.
/// </summary>
/// <param name="string"></param>
internal OneOfString(string @string)
/// <param name="varString"></param>
internal OneOfString(string varString)
{
String = @string;
VarString = varString;
OnCreated();
}
partial void OnCreated();
/// <summary>
/// Gets or Sets String
/// Gets or Sets VarString
/// </summary>
public string String { get; set; }
public string VarString { get; set; }
/// <summary>
/// Gets or Sets additional properties

View File

@@ -32,20 +32,20 @@ namespace Org.OpenAPITools.Model
/// <summary>
/// Initializes a new instance of the <see cref="PolymorphicProperty" /> class.
/// </summary>
/// <param name="bool"></param>
internal PolymorphicProperty(bool @bool)
/// <param name="varBool"></param>
internal PolymorphicProperty(bool varBool)
{
Bool = @bool;
VarBool = varBool;
OnCreated();
}
/// <summary>
/// Initializes a new instance of the <see cref="PolymorphicProperty" /> class.
/// </summary>
/// <param name="string"></param>
internal PolymorphicProperty(string @string)
/// <param name="varString"></param>
internal PolymorphicProperty(string varString)
{
String = @string;
VarString = varString;
OnCreated();
}
@@ -72,14 +72,14 @@ namespace Org.OpenAPITools.Model
partial void OnCreated();
/// <summary>
/// Gets or Sets Bool
/// Gets or Sets VarBool
/// </summary>
public bool? Bool { get; set; }
public bool? VarBool { get; set; }
/// <summary>
/// Gets or Sets String
/// Gets or Sets VarString
/// </summary>
public string String { get; set; }
public string VarString { get; set; }
/// <summary>
/// Gets or Sets Object
@@ -159,11 +159,11 @@ namespace Org.OpenAPITools.Model
if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1)
{
Utf8JsonReader utf8JsonReaderBool = utf8JsonReader;
ClientUtils.TryDeserialize<bool?>(ref utf8JsonReaderBool, jsonSerializerOptions, out varBool);
Utf8JsonReader utf8JsonReaderVarBool = utf8JsonReader;
ClientUtils.TryDeserialize<bool?>(ref utf8JsonReaderVarBool, jsonSerializerOptions, out varBool);
Utf8JsonReader utf8JsonReaderString = utf8JsonReader;
ClientUtils.TryDeserialize<string>(ref utf8JsonReaderString, jsonSerializerOptions, out varString);
Utf8JsonReader utf8JsonReaderVarString = utf8JsonReader;
ClientUtils.TryDeserialize<string>(ref utf8JsonReaderVarString, jsonSerializerOptions, out varString);
Utf8JsonReader utf8JsonReaderObject = utf8JsonReader;
ClientUtils.TryDeserialize<Object>(ref utf8JsonReaderObject, jsonSerializerOptions, out varObject);

View File

@@ -42,7 +42,10 @@ function Invoke-PSApiClient {
$Configuration = Get-PSConfiguration
$RequestUri = $Configuration["BaseUrl"] + $Uri
$DefaultHeaders = $Configuration["DefaultHeaders"]
# should make sure that SkipCertificateCheck is not set for PowerShell 5
$SkipCertificateCheck = $Configuration["SkipCertificateCheck"]
$Proxy = $Configuration["Proxy"]
# cookie parameters
foreach ($Parameter in $CookieParameters.GetEnumerator()) {
@@ -62,19 +65,17 @@ function Invoke-PSApiClient {
$HeaderParameters['Accept'] = $Accept
}
[string]$MultiPartBoundary = $null
$ContentType= SelectHeaders -Headers $ContentTypes
# Content-Type and multipart handling
$ContentType = SelectHeaders -Headers $ContentTypes
if ($ContentType) {
$HeaderParameters['Content-Type'] = $ContentType
if ($ContentType -eq 'multipart/form-data') {
[string]$MultiPartBoundary = [System.Guid]::NewGuid()
$MultiPartBoundary = "---------------------------$MultiPartBoundary"
$HeaderParameters['Content-Type'] = "$ContentType; boundary=$MultiPartBoundary"
$MultiPart = $true
}
}
# add default headers if any
foreach ($header in $Configuration["DefaultHeaders"].GetEnumerator()) {
foreach ($header in $DefaultHeaders.GetEnumerator()) {
$HeaderParameters[$header.Name] = $header.Value
}
@@ -95,30 +96,7 @@ function Invoke-PSApiClient {
# include form parameters in the request body
if ($FormParameters -and $FormParameters.Count -gt 0) {
if (![string]::IsNullOrEmpty($MultiPartBoundary)) {
$RequestBody = ""
$LF = "`r`n"
$FormParameters.Keys | ForEach-Object {
$value = $FormParameters[$_]
$isFile = $value.GetType().FullName -eq "System.IO.FileInfo"
$RequestBody += "--$MultiPartBoundary$LF"
$RequestBody += "Content-Disposition: form-data; name=`"$_`""
if ($isFile) {
$fileName = $value.Name
$RequestBody += "; filename=`"$fileName`"$LF"
$RequestBody += "Content-Type: application/octet-stream$LF$LF"
$RequestBody += Get-Content -Path $value.FullName
} else {
$RequestBody += "$LF$LF"
$RequestBody += ([string]$value)
}
$RequestBody += "$LF--$MultiPartBoundary"
}
$RequestBody += "--"
} else {
$RequestBody = $FormParameters
}
$RequestBody = $FormParameters
}
if ($Body -or $IsBodyNullable) {
@@ -145,54 +123,55 @@ function Invoke-PSApiClient {
}
}
# use splatting to pass parameters
$Params = @{}
$Params.Uri = $UriBuilder.Uri
$Params.Method = $Method
$Params.Headers = $HeaderParameters
$Params.ErrorAction = 'Stop'
if ($SkipCertificateCheck -eq $true) {
if ($null -eq $Configuration["Proxy"]) {
# skip certification check, no proxy
$Response = Invoke-WebRequest -Uri $UriBuilder.Uri `
-Method $Method `
-Headers $HeaderParameters `
-Body $RequestBody `
-ErrorAction Stop `
-UseBasicParsing `
-SkipCertificateCheck
} else {
# skip certification check, use proxy
$Response = Invoke-WebRequest -Uri $UriBuilder.Uri `
-Method $Method `
-Headers $HeaderParameters `
-Body $RequestBody `
-ErrorAction Stop `
-UseBasicParsing `
-SkipCertificateCheck `
-Proxy $Configuration["Proxy"].GetProxy($UriBuilder.Uri) `
-ProxyUseDefaultCredentials
}
} else {
if ($null -eq $Configuration["Proxy"]) {
# perform certification check, no proxy
$Response = Invoke-WebRequest -Uri $UriBuilder.Uri `
-Method $Method `
-Headers $HeaderParameters `
-Body $RequestBody `
-ErrorAction Stop `
-UseBasicParsing
} else {
# perform certification check, use proxy
$Response = Invoke-WebRequest -Uri $UriBuilder.Uri `
-Method $Method `
-Headers $HeaderParameters `
-Body $RequestBody `
-ErrorAction Stop `
-UseBasicParsing `
-Proxy $Configuration["Proxy"].GetProxy($UriBuilder.Uri) `
-ProxyUseDefaultCredentials
$Params.SkipCertificateCheck = $true
}
if ($null -ne $Proxy) {
$effectiveProxy = $Proxy.GetProxy($UriBuilder.Uri)
# do not set proxy if it is null or same as target Uri
if ($null -ne $effectiveProxy -and $effectiveProxy.AbsoluteUri -ne $UriBuilder.Uri) {
$Params.Proxy = $effectiveProxy.AbsoluteUri
$Params.ProxyUseDefaultCredentials = $true
}
}
return @{
Response = DeserializeResponse -Response $Response.Content -ReturnType $ReturnType -ContentTypes $Response.Headers["Content-Type"]
StatusCode = $Response.StatusCode
Headers = $Response.Headers
# use Invoke-RestApi if Content-Type is 'multipart/form-data', Invoke-WebRequest otherwise
if ($MultiPart) {
if ($PSVersionTable.PSVersion.Major -eq 5) {
# preset null return values as not supported by Invoke-RestMethod on PS5
$ResponseHeaders = $null
$ResponseStatusCode = $null
} else {
# preset return variables
$Params.ResponseHeadersVariable = "ResponseHeaders"
$Params.StatusCodeVariable = "ResponseStatusCode"
}
$Params.Form = $FormParameters
$Response = Invoke-RestMethod @Params
return @{
Response = $Response
StatusCode = $ResponseStatusCode
Headers = $ResponseHeaders
}
} else {
$Params.Body = $RequestBody
$Params.UseBasicParsing = $true
$Response = Invoke-WebRequest @Params
return @{
Response = DeserializeResponse -Response $Response.Content -ReturnType $ReturnType -ContentTypes $Response.Headers["Content-Type"]
StatusCode = $Response.StatusCode
Headers = $Response.Headers
}
}
}