Merged feature/api-request-updates into dev

This commit is contained in:
2025-04-03 14:24:06 -05:00
4 changed files with 85 additions and 6 deletions

View File

@ -25,6 +25,7 @@
<Logger name="com.mchange.v2" level="INFO" />
<Logger name="org.quartz" level="INFO" />
<Logger name="liquibase" level="INFO" />
<Logger name="com.amazonaws" level="INFO" />
<Root level="all">
<AppenderRef ref="SystemOutAppender"/>
<AppenderRef ref="SyslogAppender"/>

View File

@ -743,6 +743,10 @@ public class BaseAPIActionUtil
case OAUTH2 -> request.setHeader("Authorization", "Bearer " + getOAuth2Token());
case API_KEY_QUERY_PARAM -> addApiKeyQueryParamToRequest(request);
case CUSTOM -> handleCustomAuthorization(request);
case NONE ->
{
/* nothing to do here */
}
default -> throw new IllegalArgumentException("Unexpected authorization type: " + backendMetaData.getAuthorizationType());
}
}
@ -1174,6 +1178,16 @@ public class BaseAPIActionUtil
/*******************************************************************************
**
*******************************************************************************/
protected QHttpResponse getQHttpResponse(HttpResponse response) throws Exception
{
return (new QHttpResponse(response));
}
/*******************************************************************************
**
*******************************************************************************/
@ -1207,7 +1221,7 @@ public class BaseAPIActionUtil
try(CloseableHttpResponse response = executeHttpRequest(request, httpClient))
{
QHttpResponse qResponse = new QHttpResponse(response);
QHttpResponse qResponse = getQHttpResponse(response);
logOutboundApiCall(request, qResponse);

View File

@ -40,6 +40,7 @@ public class QHttpResponse
private String statusReasonPhrase;
private List<Header> headerList;
private String content;
private byte[] contentBytes;
@ -53,11 +54,47 @@ public class QHttpResponse
/*******************************************************************************
** Constructor for QHttpResponse that allows reading content as bytes
**
*******************************************************************************/
public QHttpResponse(HttpResponse httpResponse, boolean readContentAsBytes) throws Exception
{
if(!readContentAsBytes)
{
new QHttpResponse(httpResponse);
return;
}
setGeneralHttpResponseData(httpResponse);
if(this.statusCode == null || this.statusCode != 204)
{
this.contentBytes = httpResponse.getEntity().getContent().readAllBytes();
}
}
/*******************************************************************************
** Constructor for qHttpResponse
**
*******************************************************************************/
public QHttpResponse(HttpResponse httpResponse) throws Exception
{
setGeneralHttpResponseData(httpResponse);
if(this.statusCode == null || this.statusCode != 204)
{
this.content = EntityUtils.toString(httpResponse.getEntity());
}
}
/*******************************************************************************
** Sets data into this entity from an HttpResponse but doesnt read response data
**
*******************************************************************************/
private void setGeneralHttpResponseData(HttpResponse httpResponse) throws Exception
{
this.headerList = Arrays.asList(httpResponse.getAllHeaders());
if(httpResponse.getStatusLine() != null)
@ -69,11 +106,6 @@ public class QHttpResponse
this.statusProtocolVersion = httpResponse.getStatusLine().getProtocolVersion().toString();
}
}
if(this.statusCode == null || this.statusCode != 204)
{
this.content = EntityUtils.toString(httpResponse.getEntity());
}
}
@ -242,4 +274,35 @@ public class QHttpResponse
return (this);
}
/*******************************************************************************
** Getter for contentBytes
*******************************************************************************/
public byte[] getContentBytes()
{
return (this.contentBytes);
}
/*******************************************************************************
** Setter for contentBytes
*******************************************************************************/
public void setContentBytes(byte[] contentBytes)
{
this.contentBytes = contentBytes;
}
/*******************************************************************************
** Fluent setter for contentBytes
*******************************************************************************/
public QHttpResponse withContentBytes(byte[] contentBytes)
{
this.contentBytes = contentBytes;
return (this);
}
}

View File

@ -33,5 +33,6 @@ public enum AuthorizationType
BASIC_AUTH_USERNAME_PASSWORD,
CUSTOM,
OAUTH2,
NONE,
API_KEY_QUERY_PARAM,
}