Skip to content

Commit

Permalink
Merge pull request #24 from guillaumeserale/main
Browse files Browse the repository at this point in the history
Add injecting header parameters
  • Loading branch information
christianhelle authored May 1, 2023
2 parents 3e084b8 + 4c3c18b commit 669eb7c
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
15 changes: 13 additions & 2 deletions src/Refitter.Core/ParameterExtractor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,16 @@ public static IEnumerable<string> GetParameters(
.Select(p => $"{JoinAttributes("Body", GetAliasAsAttribute(p))}{GetBodyParameterType(p)} {p.VariableName}")
.ToList();

var headerParameters = new List<string>();

if(settings.GenerateOperationHeaders)
{
headerParameters = operationModel.Parameters
.Where(p => p.Kind == OpenApiParameterKind.Header && p.IsHeader)
.Select(p => $"{JoinAttributes($"Header(\"{p.VariableName}\")", GetAliasAsAttribute(p))}{GetBodyParameterType(p)} {p.VariableName}")
.ToList();
}

var multipartFormParameters = operationModel.Parameters
.Where(p => p.Kind == OpenApiParameterKind.Body && p.IsBinaryBodyParameter)
.Select(p => $"{JoinAttributes("Body(BodySerializationMethod.UrlEncoded)", GetAliasAsAttribute(p))}Dictionary<string, object> {p.VariableName}")
Expand All @@ -39,11 +49,12 @@ public static IEnumerable<string> GetParameters(
parameters.AddRange(routeParameters);
parameters.AddRange(queryParameters);
parameters.AddRange(bodyParameters);
parameters.AddRange(headerParameters);
parameters.AddRange(multipartFormParameters);

if (settings.UseCancellationTokens)
parameters.Add("CancellationToken cancellationToken = default");

return parameters;
}

Expand Down
2 changes: 2 additions & 0 deletions src/Refitter.Core/RefitGeneratorSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ public class RefitGeneratorSettings
public bool AddAutoGeneratedHeader { get; set; } = true;

public bool ReturnIApiResponse { get; set; }

public bool GenerateOperationHeaders { get; set; } = true;

public TypeAccessibility TypeAccessibility { get; set; } = TypeAccessibility.Public;

Expand Down

0 comments on commit 669eb7c

Please sign in to comment.