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 <olegfuk...@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-unsubscr...@dlab.apache.org
For additional commands, e-mail: commits-h...@dlab.apache.org

Reply via email to