Refactor API key auth handling with switch and error check
Refactored the "API Key" authentication logic to use a switch statement on the API key location, improving code clarity. Added a default case to throw a DataIntegrityException for unsupported API key locations, enhancing error handling.
This commit is contained in:
@@ -64,17 +64,24 @@ public class InvokeRecActionCommandHandler(
|
||||
case "API Key":
|
||||
if (action.EndpointAuthApiKey is string apiKey && action.EndpointAuthApiValue is string apiValue)
|
||||
{
|
||||
if (action.EndpointAuthApiKeyAddTo == ApiKeyLocation.Header)
|
||||
switch (action.EndpointAuthApiKeyAddTo)
|
||||
{
|
||||
httpReq.Headers.Add(apiKey, apiValue);
|
||||
}
|
||||
else // Defaults to Query String
|
||||
{
|
||||
var uriBuilder = new UriBuilder(httpReq.RequestUri!);
|
||||
var query = System.Web.HttpUtility.ParseQueryString(uriBuilder.Query);
|
||||
query[apiKey] = apiValue;
|
||||
uriBuilder.Query = query.ToString();
|
||||
httpReq.RequestUri = uriBuilder.Uri;
|
||||
case ApiKeyLocation.Header:
|
||||
httpReq.Headers.Add(apiKey, apiValue);
|
||||
break;
|
||||
case ApiKeyLocation.Query:
|
||||
var uriBuilder = new UriBuilder(httpReq.RequestUri!);
|
||||
var query = System.Web.HttpUtility.ParseQueryString(uriBuilder.Query);
|
||||
query[apiKey] = apiValue;
|
||||
uriBuilder.Query = query.ToString();
|
||||
httpReq.RequestUri = uriBuilder.Uri;
|
||||
break;
|
||||
default:
|
||||
throw new DataIntegrityException(
|
||||
$"The API key location '{action.EndpointAuthApiKeyAddTo}' is not supported. " +
|
||||
$"ProfileId: {action.ProfileId}, " +
|
||||
$"Id: {action.Id}"
|
||||
);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user