package net.gepafin.tendermanagement.service.impl; import jakarta.servlet.http.HttpServletRequest; import net.gepafin.tendermanagement.dao.LoginAttemptDao; import net.gepafin.tendermanagement.entities.LoginAttemptEntity; import net.gepafin.tendermanagement.entities.UserEntity; import net.gepafin.tendermanagement.enums.LoginAttemptResultEnum; import net.gepafin.tendermanagement.enums.LoginAttemptTypeEnum; import net.gepafin.tendermanagement.model.request.LoginAttemptReq; import net.gepafin.tendermanagement.model.response.LoginAttemptPageableResponseBean; import net.gepafin.tendermanagement.service.LoginAttemptService; import net.gepafin.tendermanagement.util.Utils; import net.gepafin.tendermanagement.util.Validator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class LoginAttemptServiceImpl implements LoginAttemptService { @Autowired LoginAttemptDao loginAttemptDao; @Autowired private Validator validator; @Override public LoginAttemptPageableResponseBean> getLoginAttemptsList(HttpServletRequest request, Integer pageNo, Integer pageLimit) { return loginAttemptDao.getLoginAttemptsList(validator.validateUser(request), pageNo, pageLimit); } @Override public void createLoginAttempt(LoginAttemptReq loginAttemptReq, HttpServletRequest request) { String ipAddress = Utils.getClientIpAddress(request); String userAgent = request.getHeader("user-agent"); LoginAttemptEntity loginAttemptEntity = new LoginAttemptEntity(); loginAttemptEntity.setType(LoginAttemptTypeEnum.SWITCH.getValue()); loginAttemptEntity.setIpAddress(ipAddress); loginAttemptEntity.setUserAgent(userAgent); loginAttemptEntity.setUsername(loginAttemptReq.getUserName()); loginAttemptEntity.setResult(LoginAttemptResultEnum.SUCCESS.getValue()); if(loginAttemptReq.getUserId() != null) { UserEntity userEntity = validator.validateUserId(request, loginAttemptReq.getUserId()); loginAttemptEntity.setUserId(userEntity.getId()); } loginAttemptDao.createLoginAttempt(loginAttemptEntity); } }