Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 23 additions & 12 deletions src/main/java/wasapi/Caller.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public abstract class Caller {
/**
* A static boolean variable that determines whether logs should be kept for API calls.
*/
public static boolean keepLogs;
public static boolean logResponseBody;

/**
* A Printer object for logging.
Expand All @@ -46,7 +46,7 @@ public abstract class Caller {
* Constructs a wasapi.Caller object and initializes the ObjectMapper object and the keepLogs variable.
*/
public Caller(){
keepLogs = Boolean.parseBoolean(PropertyUtilities.getProperty("keep-api-logs", "true"));
logResponseBody = Boolean.parseBoolean(PropertyUtilities.getProperty("keep-api-logs", "true"));
}

/**
Expand Down Expand Up @@ -91,10 +91,21 @@ protected static <SuccessModel, ReturnType> ReturnType perform(
protected static <SuccessModel, ReturnType> ReturnType perform(
Call<SuccessModel> call,
Class<?>... errorModels){
Response<?> response = call(call, false, false, getPreviousMethodName());
Response<?> response = call(call, false, logResponseBody, getPreviousMethodName());
return response.isSuccessful() ? (ReturnType) response.body() : getErrorBody(response, errorModels);
}

/**
* Gets the response from an API call and logs the results.
*
* @param call the Call object representing the API call
* @return the Response object representing the API response
* @throws FailedCallException if the call is strict and the response is not successful
*/
protected static <Model> Response<Model> getResponse(Call<Model> call){
return call(call, false, logResponseBody, getPreviousMethodName());
}

/**
* Gets the response from an API call and logs the results.
*
Expand All @@ -104,7 +115,7 @@ protected static <SuccessModel, ReturnType> ReturnType perform(
* @return the Response object representing the API response
* @throws FailedCallException if the call is strict and the response is not successful
*/
protected static <Model> Response<Model> getResponse(Call<Model> call, Boolean strict, Boolean printBody){
protected static <Model> Response<Model> getResponse(Call<Model> call, boolean strict, boolean printBody){
return call(call, strict, printBody, getPreviousMethodName());
}

Expand All @@ -117,7 +128,7 @@ protected static <Model> Response<Model> getResponse(Call<Model> call, Boolean s
* @return the Response object representing the API response
* @throws FailedCallException if the call is strict and the response is not successful
*/
protected static <Model> Response<Model> getResponse(String serviceName, Call<Model> call, Boolean strict, Boolean printBody){
protected static <Model> Response<Model> getResponse(String serviceName, Call<Model> call, boolean strict, boolean printBody){
return call(call, strict, printBody, serviceName);
}

Expand All @@ -140,8 +151,8 @@ protected static <Model> Response<Model> getResponse(String serviceName, Call<Mo
*/
protected static <SuccessModel, ErrorModel> ResponsePair<Response<SuccessModel>, ErrorModel> getResponse(
Call<SuccessModel> call,
Boolean strict,
Boolean printBody,
boolean strict,
boolean printBody,
Class<?>... errorModels
){
Response<SuccessModel> response = call(call, strict, printBody, getPreviousMethodName());
Expand All @@ -164,8 +175,8 @@ private static <T> Response<T> getResponse(Call<T> call, boolean printBody) thro
String contentType = response.headers().get("content-type");
boolean printableResponse = contentType != null && contentType.contains("application/json");
T body = response.body();
if (keepLogs) log.success("The response code is: " + response.code());
if (keepLogs && !response.message().isEmpty()) log.info(response.message());
if (logResponseBody) log.success("The response code is: " + response.code());
if (logResponseBody && !response.message().isEmpty()) log.info(response.message());
if (printBody && printableResponse) log.info("The response body is: \n" + getJsonString(body));
return Response.success(body, response.raw());
}
Expand Down Expand Up @@ -224,7 +235,7 @@ private static <ErrorModel> ErrorModel getErrorObject(Response<?> response, Clas
* @param serviceName The name of the service being called.
*/
private static <T> void printCallSpecifications(Call<T> call, String serviceName){
if (keepLogs)
if (logResponseBody)
log.info("Performing " +
StringUtilities.markup(PALE, call.request().method()) +
" call for '" +
Expand Down Expand Up @@ -299,7 +310,7 @@ private static <ErrorModel> ErrorModel getErrorBody(Response<?> response, Class<
* @return a boolean indicating whether logs are being kept for API calls
*/
public static boolean keepsLogs() {
return keepLogs;
return logResponseBody;
}

/**
Expand All @@ -308,6 +319,6 @@ public static boolean keepsLogs() {
* @param keepLogs a boolean indicating whether logs should be kept for API calls
*/
public static void keepLogs(boolean keepLogs) {
Caller.keepLogs = keepLogs;
Caller.logResponseBody = keepLogs;
}
}
26 changes: 13 additions & 13 deletions src/main/java/wasapi/WasapiClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ public class WasapiClient {
/**
* A boolean indicating whether to log the headers in the requests.
*/
boolean printHeaders = Boolean.parseBoolean(ContextStore.get("log-headers", "true"));
boolean logHeaders = Boolean.parseBoolean(ContextStore.get("log-headers", "true"));

/**
* A boolean indicating whether to log detailed information in the requests.
Expand All @@ -87,9 +87,9 @@ public class WasapiClient {
boolean hostnameVerification = Boolean.parseBoolean(ContextStore.get("verify-hostname", "true"));

/**
* A boolean indicating whether to print request body in the outgoing requests.
* A boolean indicating whether to log request body in the outgoing requests.
*/
boolean printRequestBody = Boolean.parseBoolean(ContextStore.get("print-request-body", "false"));
boolean logRequestBody = Boolean.parseBoolean(ContextStore.get("log-request-body", "false"));

/**
* Connection timeout in seconds.
Expand Down Expand Up @@ -174,7 +174,7 @@ private <S> S generate(Class<S> serviceClass) {
* <li>A network interceptor for modifying requests before execution.</li>
* </ul>
* The interceptor ensures headers are set, logs the request body if enabled,
* and prints headers when required.
* and logs headers when required.
*
* @return a configured OkHttpClient instance
*/
Expand Down Expand Up @@ -211,7 +211,7 @@ private OkHttpClient getDefaultHttpClient(){
String.valueOf(Objects.requireNonNull(request.body()).contentType()))
.build();

if (printRequestBody) {
if (logRequestBody) {
Request cloneRequest = request.newBuilder().build();
if (cloneRequest.body()!= null){
Buffer buffer = new Buffer();
Expand All @@ -229,7 +229,7 @@ private OkHttpClient getDefaultHttpClient(){
else log.warning("Request body is null!");
}
}
if (printHeaders)
if (logHeaders)
log.info(("Headers(" + request.headers().size() + "): \n" + request.headers()).trim());
return chain.proceed(request);
}).build();
Expand Down Expand Up @@ -276,10 +276,10 @@ public static class Builder {
*/
public Builder() {
generator = new WasapiClient();
generator.printHeaders = Boolean.parseBoolean(ContextStore.get("log-headers", "true"));
generator.logHeaders = Boolean.parseBoolean(ContextStore.get("log-headers", "true"));
generator.detailedLogging = Boolean.parseBoolean(ContextStore.get("detailed-logging", "false"));
generator.hostnameVerification = Boolean.parseBoolean(ContextStore.get("verify-hostname", "true"));
generator.printRequestBody = Boolean.parseBoolean(ContextStore.get("print-request-body", "false"));
generator.logRequestBody = Boolean.parseBoolean(ContextStore.get("log-request-body", "false"));
generator.connectionTimeout = Integer.parseInt(ContextStore.get("connection-timeout", "60"));
generator.readTimeout = Integer.parseInt(ContextStore.get("connection-read-timeout", "30"));
generator.writeTimeout = Integer.parseInt(ContextStore.get("connection-write-timeout", "30"));
Expand All @@ -306,18 +306,18 @@ public Builder headers(Headers headers) {
}

/**
* Enables or disables printing of request/response headers.
* Enables or disables logging of request/response headers.
*/
public Builder printHeaders(boolean enabled) {
generator.printHeaders = enabled;
public Builder logHeaders(boolean enabled) {
generator.logHeaders = enabled;
return this;
}

/**
* Enables or disables printing of request body.
* Enables or disables logging of request body.
*/
public Builder logRequestBody(boolean enabled) {
generator.printRequestBody = enabled;
generator.logRequestBody = enabled;
return this;
}

Expand Down
4 changes: 2 additions & 2 deletions src/test/java/FoodPlanner.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ public class FoodPlanner extends WasapiUtilities {

FoodPlannerServices petStoreServices = new WasapiClient.Builder()
.logRequestBody(true)
.printHeaders(true)
.logHeaders(true)
.build(FoodPlannerServices.class);

public SimpleMessageResponseModel signUp(UserSignUpModel userSignUpModel){
Expand All @@ -35,7 +35,7 @@ public Auth(String authorisationToken){
.build()
)
.logRequestBody(true)
.printHeaders(true)
.logHeaders(true)
.build(FoodPlannerServices.Authorized.class);
}

Expand Down