package gov.nysenate.openleg.service.log.event;
import gov.nysenate.openleg.model.auth.ApiRequest;
import gov.nysenate.openleg.model.auth.ApiResponse;
import gov.nysenate.openleg.model.auth.ApiUser;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;
import java.util.Optional;
public class ApiLogEvent
{
private LocalDateTime logDateTime;
private ApiResponse apiResponse;
/** --- Constructors --- */
public ApiLogEvent(ServletRequest servletRequest, ServletResponse servletResponse, LocalDateTime requestStart,
LocalDateTime requestEnd) {
ApiRequest apiRequest = new ApiRequest((HttpServletRequest) servletRequest, requestStart);
this.apiResponse = new ApiResponse(apiRequest, (HttpServletResponse) servletResponse, requestEnd);
this.logDateTime = LocalDateTime.now();
}
/** --- Functional Getters --- */
public LocalDateTime getRequestTime() {
if (apiResponse != null && apiResponse.getBaseRequest() != null) {
return apiResponse.getBaseRequest().getRequestTime();
}
return null;
}
/** --- Basic Getters --- */
public LocalDateTime getLogDateTime() {
return logDateTime;
}
public ApiResponse getApiResponse() {
return apiResponse;
}
}