package com.mediafire.sdk.log; import com.mediafire.sdk.requests.GetRequest; import com.mediafire.sdk.requests.HttpApiResponse; import com.mediafire.sdk.requests.PostRequest; import java.util.List; import java.util.Map; /** * Created by Chris on 5/26/2015. */ public class ApiTransaction extends MFLog { private final String requestUrl; private final Map<String, Object> requestHeaders; private final String requestPayload; private final int responseStatus; private final Map<String, List<String>> responseHeaders; private final String responseString; private final Exception exception; private ApiTransaction(PostRequest postRequest, HttpApiResponse response, Exception e) { super(System.currentTimeMillis()); this.requestUrl = postRequest.getUrl(); this.requestHeaders = postRequest.getHeaders(); if (postRequest.getPayload() == null) { this.requestPayload = null; } else if (postRequest.getPayload().length > 2000) { this.requestPayload = "payload size: " + String.valueOf(postRequest.getPayload().length); } else { this.requestPayload = new String(postRequest.getPayload()); } this.responseStatus = response.getStatus(); this.responseHeaders = response.getHeaderFields(); if (response.getBytes() != null) { this.responseString = new String(response.getBytes()); } else { this.responseString = null; } this.exception = e; } public ApiTransaction(PostRequest postRequest, HttpApiResponse response) { this(postRequest, response, null); } public ApiTransaction(PostRequest postRequest, Exception e) { this(postRequest, null, e); } private ApiTransaction(GetRequest getRequest, HttpApiResponse response, Exception e) { super(System.currentTimeMillis()); this.requestUrl = getRequest.getUrl(); this.requestHeaders = getRequest.getHeaders(); this.requestPayload = null; this.responseStatus = response.getStatus(); this.responseHeaders = response.getHeaderFields(); if (response.getBytes() != null) { this.responseString = new String(response.getBytes()); } else { this.responseString = null; } this.exception = e; } public ApiTransaction(GetRequest getRequest, HttpApiResponse response) { this(getRequest, response, null); } public ApiTransaction(GetRequest getRequest, Exception e) { this(getRequest, null, e); } public String getRequestUrl() { return requestUrl; } public Map<String, Object> getRequestHeaders() { return requestHeaders; } public String getRequestPayload() { return requestPayload; } public int getResponseStatus() { return responseStatus; } public Map<String, List<String>> getResponseHeaders() { return responseHeaders; } public String getResponseString() { return responseString; } public Exception getException() { return exception; } }