package net.gepafin.tendermanagement.dao; import net.gepafin.tendermanagement.config.Translator; import net.gepafin.tendermanagement.constants.GepafinConstant; import net.gepafin.tendermanagement.entities.LoginAttemptEntity; import net.gepafin.tendermanagement.model.response.LoginAttemptPageableResponseBean; import net.gepafin.tendermanagement.repositories.LoginAttemptRepository; import net.gepafin.tendermanagement.util.DateTimeUtil; import net.gepafin.tendermanagement.web.rest.api.errors.Status; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort; import org.springframework.stereotype.Component; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; @Component public class LoginAttemptDao { @Autowired LoginAttemptRepository loginAttemptRepository; public void createLoginAttempt(LoginAttemptEntity loginAttemptEntity) { loginAttemptEntity.setAttemptDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now())); loginAttemptRepository.save(loginAttemptEntity); } public LoginAttemptPageableResponseBean> getLoginAttemptsList(Integer pageNo, Integer pageLimit) { if (pageLimit == null || pageLimit <= 0) { pageLimit = GepafinConstant.DEFAULT_PAGE_LIMIT; } if (pageNo == null || pageNo <= 0) { pageNo = GepafinConstant.DEFAULT_PAGE; } Page page = loginAttemptRepository.findAll(PageRequest.of(pageNo - 1, pageLimit, Sort.by(GepafinConstant.ATTEMPT_DATE).descending())); List list = new ArrayList<>(); for (LoginAttemptEntity loginAttemptEntity : page.getContent()) { list.add(loginAttemptEntity); } LoginAttemptPageableResponseBean> pageableResponseBean = new LoginAttemptPageableResponseBean<>(); pageableResponseBean.setBody(list); pageableResponseBean.setCurrentPage(page.getNumber() + 1); pageableResponseBean.setTotalPages(page.getTotalPages()); pageableResponseBean.setTotalRecords(page.getTotalElements()); pageableResponseBean.setPageSize(page.getSize()); pageableResponseBean.setStatus(Status.SUCCESS); pageableResponseBean.setMessage(Translator.toLocale(GepafinConstant.GET_LOGIN_ATTEMPT_MSG)); return pageableResponseBean; } }