You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by of...@apache.org on 2020/06/17 14:22:11 UTC
[incubator-dlab] branch audit updated: Added pagination for audit
records
This is an automated email from the ASF dual-hosted git repository.
ofuks pushed a commit to branch audit
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
The following commit(s) were added to refs/heads/audit by this push:
new abb6979 Added pagination for audit records
new 13b73bd Merge remote-tracking branch 'origin/audit' into audit
abb6979 is described below
commit abb6979c9384102b3462b09524acf9df43697cf0
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Wed Jun 17 16:51:06 2020 +0300
Added pagination for audit records
---
.../java/com/epam/dlab/backendapi/dao/AuditDAO.java | 2 +-
.../com/epam/dlab/backendapi/dao/AuditDAOImpl.java | 4 ++--
.../java/com/epam/dlab/backendapi/dao/BaseDAO.java | 18 ++++++++++++++++++
.../epam/dlab/backendapi/resources/AuditResource.java | 6 ++++--
.../com/epam/dlab/backendapi/service/AuditService.java | 2 +-
.../dlab/backendapi/service/impl/AuditServiceImpl.java | 4 ++--
6 files changed, 28 insertions(+), 8 deletions(-)
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/AuditDAO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/AuditDAO.java
index 3c9d825..23da384 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/AuditDAO.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/AuditDAO.java
@@ -26,5 +26,5 @@ import java.util.List;
public interface AuditDAO {
void save(AuditDTO audit);
- List<AuditDTO> getAudit();
+ List<AuditDTO> getAudit(int pageNumber, int pageSize);
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/AuditDAOImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/AuditDAOImpl.java
index 234011f..ee90efa 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/AuditDAOImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/AuditDAOImpl.java
@@ -32,7 +32,7 @@ public class AuditDAOImpl extends BaseDAO implements AuditDAO {
}
@Override
- public List<AuditDTO> getAudit() {
- return find(AUDIT_COLLECTION, AuditDTO.class);
+ public List<AuditDTO> getAudit(int pageNumber, int pageSize) {
+ return find(AUDIT_COLLECTION, pageNumber, pageSize, AuditDTO.class);
}
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/BaseDAO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/BaseDAO.java
index 96532a5..bdf88cc 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/BaseDAO.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/BaseDAO.java
@@ -317,6 +317,24 @@ public class BaseDAO {
}
/**
+ * Finds and returns all documents from the collection converted to resulted type with pagination.
+ *
+ * @param collection collection name.
+ * @param pageNumber page number
+ * @param pageSize size of page
+ * @param resultedClass type of class for deserialization.
+ */
+ protected <T> List<T> find(String collection, int pageNumber, int pageSize, Class<T> resultedClass) {
+ return find(collection)
+ .skip(pageSize * (pageNumber - 1))
+ .limit(pageSize)
+ .into(new ArrayList<>())
+ .stream()
+ .map(d -> convertFromDocument(d, resultedClass))
+ .collect(Collectors.toList());
+ }
+
+ /**
* Finds and returns documents from the collection by condition.
*
* @param collection collection name.
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/AuditResource.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/AuditResource.java
index 3dccb90..2e5bba3 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/AuditResource.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/AuditResource.java
@@ -31,6 +31,7 @@ import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@@ -52,7 +53,8 @@ public class AuditResource {
@GET
@Produces(MediaType.APPLICATION_JSON)
- public Response getAudit(@Auth UserInfo userInfo) {
- return Response.ok(auditService.getAudit()).build();
+ public Response getAudit(@Auth UserInfo userInfo, @QueryParam("page-number") int pageNumber,
+ @QueryParam("page-size") int pageSize) {
+ return Response.ok(auditService.getAudit(pageNumber, pageSize)).build();
}
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/AuditService.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/AuditService.java
index e3cf50c..6b9c3a9 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/AuditService.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/AuditService.java
@@ -29,5 +29,5 @@ public interface AuditService {
void save(String user, AuditCreateDTO audit);
- List<AuditDTO> getAudit();
+ List<AuditDTO> getAudit(int pageNumber, int pageSize);
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/AuditServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/AuditServiceImpl.java
index c2d17e0..060bbf3 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/AuditServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/AuditServiceImpl.java
@@ -54,7 +54,7 @@ public class AuditServiceImpl implements AuditService {
}
@Override
- public List<AuditDTO> getAudit() {
- return auditDAO.getAudit();
+ public List<AuditDTO> getAudit(int pageNumber, int pageSize) {
+ return auditDAO.getAudit(pageNumber, pageSize);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org