All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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