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