package gov.nysenate.openleg.model.auth; import javax.servlet.http.HttpServletResponse; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; public class ApiResponse { /** Reference to the originating API request */ private ApiRequest baseRequest; /** When the response was returned */ private LocalDateTime responseDateTime; /** HTTP status code of the response. */ private int statusCode; /** Content type of response */ private String contentType; /** Time it took to process the request. */ private double processTime; /** --- Constructors --- */ public ApiResponse(ApiRequest baseRequest) { this.baseRequest = baseRequest; } public ApiResponse(ApiRequest baseRequest, HttpServletResponse response, LocalDateTime responseDateTime) { this.baseRequest = baseRequest; this.responseDateTime = responseDateTime; this.processTime = ChronoUnit.MILLIS.between(baseRequest.getRequestTime(), responseDateTime); this.statusCode = response.getStatus(); this.contentType = response.getContentType(); } /** --- Basic Getters/Setters --- */ public ApiRequest getBaseRequest() { return baseRequest; } public void setBaseRequest(ApiRequest baseRequest) { this.baseRequest = baseRequest; } public LocalDateTime getResponseDateTime() { return responseDateTime; } public void setResponseDateTime(LocalDateTime responseDateTime) { this.responseDateTime = responseDateTime; } public int getStatusCode() { return statusCode; } public void setStatusCode(int statusCode) { this.statusCode = statusCode; } public String getContentType() { return contentType; } public void setContentType(String contentType) { this.contentType = contentType; } public double getProcessTime() { return processTime; } public void setProcessTime(double processTime) { this.processTime = processTime; } }