From 2156848e4a3b3d524dda6d215408c5bc0fd940ef Mon Sep 17 00:00:00 2001 From: Benjamin Gamard Date: Tue, 21 Nov 2017 09:49:33 +0100 Subject: [PATCH] GET /app returns document count --- .../docs/core/dao/jpa/DocumentDao.java | 30 +++++++++++-------- .../docs/rest/resource/AppResource.java | 4 +++ 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/DocumentDao.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/DocumentDao.java index 403f2ee2..24b99c35 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/DocumentDao.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/DocumentDao.java @@ -1,18 +1,5 @@ package com.sismics.docs.core.dao.jpa; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; - -import javax.persistence.EntityManager; -import javax.persistence.NoResultException; -import javax.persistence.Query; - import com.google.common.base.Joiner; import com.google.common.base.Strings; import com.sismics.docs.core.constant.AuditLogType; @@ -28,6 +15,12 @@ import com.sismics.docs.core.util.jpa.QueryParam; import com.sismics.docs.core.util.jpa.SortCriteria; import com.sismics.util.context.ThreadLocalContext; +import javax.persistence.EntityManager; +import javax.persistence.NoResultException; +import javax.persistence.Query; +import java.sql.Timestamp; +import java.util.*; + /** * Document DAO. * @@ -322,4 +315,15 @@ public class DocumentDao { return documentFromDb; } + + /** + * Returns the number of documents. + * + * @return Number of documents + */ + public long getDocumentCount() { + EntityManager em = ThreadLocalContext.get().getEntityManager(); + Query query = em.createNativeQuery("select count(d.DOC_ID_C) from T_DOCUMENT d where d.DOC_DELETEDATE_D is null"); + return ((Number) query.getSingleResult()).longValue(); + } } diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/AppResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/AppResource.java index 41d2a5ad..558761b4 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/AppResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/AppResource.java @@ -4,6 +4,7 @@ import com.google.common.base.Strings; import com.sismics.docs.core.constant.ConfigType; import com.sismics.docs.core.constant.Constants; import com.sismics.docs.core.dao.jpa.ConfigDao; +import com.sismics.docs.core.dao.jpa.DocumentDao; import com.sismics.docs.core.dao.jpa.FileDao; import com.sismics.docs.core.dao.jpa.UserDao; import com.sismics.docs.core.event.RebuildIndexAsyncEvent; @@ -63,6 +64,7 @@ public class AppResource extends BaseResource { * @apiSuccess {Boolean} guest_login True if guest login is enabled * @apiSuccess {String} total_memory Allocated JVM memory (in bytes) * @apiSuccess {String} free_memory Free JVM memory (in bytes) + * @apiSuccess {String} document_count Number of documents * @apiSuccess {String} active_user_count Number of active users * @apiSuccess {String} global_storage_current Global storage currently used (in bytes) * @apiSuccess {String} global_storage_quota Maximum global storage (in bytes) @@ -78,6 +80,7 @@ public class AppResource extends BaseResource { String minVersion = configBundle.getString("api.min_version"); Boolean guestLogin = ConfigUtil.getConfigBooleanValue(ConfigType.GUEST_LOGIN); UserDao userDao = new UserDao(); + DocumentDao documentDao = new DocumentDao(); String globalQuotaStr = System.getenv(Constants.GLOBAL_QUOTA_ENV); long globalQuota = 0; if (!Strings.isNullOrEmpty(globalQuotaStr)) { @@ -90,6 +93,7 @@ public class AppResource extends BaseResource { .add("guest_login", guestLogin) .add("total_memory", Runtime.getRuntime().totalMemory()) .add("free_memory", Runtime.getRuntime().freeMemory()) + .add("document_count", documentDao.getDocumentCount()) .add("active_user_count", userDao.getActiveUserCount()) .add("global_storage_current", userDao.getGlobalStorageCurrent()); if (globalQuota > 0) {