
com.infusers.core.sse.requests.HTTPRequestDto Maven / Gradle / Ivy
package com.infusers.core.sse.requests;
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.infusers.core.sse.requests.ActiveRequestEntryEvent.PayLoadType;
import com.infusers.core.util.InfusersUtility;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.Data;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Data
public class HTTPRequestDto implements Serializable {
private static final long serialVersionUID = 1L;
private PayLoadType payLoad;
private String userName;
private String method;
private String requestURI;
private int statusCode;
private long duration;
private String clientIp;
private String id;
private Date createdAt;
@JsonIgnore
private transient InfusersUtility infusersUtility;
public HTTPRequestDto() {
}
public HTTPRequestDto(InfusersUtility infusersUtility, PayLoadType payLoad, HttpServletRequest request, String userName) {
this.infusersUtility = infusersUtility;
this.id = (String) request.getAttribute("requestId");
this.createdAt = new Date();
this.method = request.getMethod();
this.clientIp = request.getRemoteAddr();
this.userName = userName;
this.requestURI = infusersUtility.getStandardizedEndpoint(request.getRequestURI());
}
public HTTPRequestDto(InfusersUtility infusersUtility, PayLoadType payLoad, HttpServletRequest request, HttpServletResponse response, String userName) {
this(infusersUtility, payLoad, request, userName);
this.statusCode = response.getStatus();
long startTime = (long) request.getAttribute("requestStartTime");
this.duration = System.currentTimeMillis() - startTime;
}
@Override
public String toString() {
return "HTTPRequestDto [payLoad=" + payLoad + ", userName=" + userName + ", method=" + method + ", requestURI="
+ requestURI + ", statusCode=" + statusCode + ", duration=" + duration + ", clientIp=" + clientIp
+ ", id=" + id + ", createdAt=" + createdAt + "]";
}
public PayLoadType getPayLoad() {
return payLoad;
}
public String getUserName() {
return userName;
}
public String getMethod() {
return method;
}
public String getRequestURI() {
return requestURI;
}
public int getStatusCode() {
return statusCode;
}
public long getDuration() {
return duration;
}
public String getClientIp() {
return clientIp;
}
public String getId() {
return id;
}
public Date getCreatedAt() {
return createdAt;
}
public String getKey() {
return id;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy