mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Add pagination
This commit is contained in:
parent
e7b0255a95
commit
77b68af5d0
@ -27,6 +27,7 @@ import io.entgra.device.mgt.core.application.mgt.common.response.Category;
|
|||||||
import io.entgra.device.mgt.core.application.mgt.common.response.Tag;
|
import io.entgra.device.mgt.core.application.mgt.common.response.Tag;
|
||||||
import io.entgra.device.mgt.core.device.mgt.common.Base64File;
|
import io.entgra.device.mgt.core.device.mgt.common.Base64File;
|
||||||
import io.entgra.device.mgt.core.application.mgt.common.dto.ApplicationDTO;
|
import io.entgra.device.mgt.core.application.mgt.common.dto.ApplicationDTO;
|
||||||
|
import io.entgra.device.mgt.core.device.mgt.common.PaginationRequest;
|
||||||
import io.entgra.device.mgt.core.device.mgt.common.exceptions.MetadataManagementException;
|
import io.entgra.device.mgt.core.device.mgt.common.exceptions.MetadataManagementException;
|
||||||
import org.apache.cxf.jaxrs.ext.multipart.Attachment;
|
import org.apache.cxf.jaxrs.ext.multipart.Attachment;
|
||||||
import io.entgra.device.mgt.core.application.mgt.common.ApplicationArtifact;
|
import io.entgra.device.mgt.core.application.mgt.common.ApplicationArtifact;
|
||||||
@ -281,7 +282,7 @@ public interface ApplicationManager {
|
|||||||
* @throws ApplicationManagementException
|
* @throws ApplicationManagementException
|
||||||
* if an error occurred while getting subscribed app details for relevant device id,
|
* if an error occurred while getting subscribed app details for relevant device id,
|
||||||
*/
|
*/
|
||||||
ApplicationList getSubscribedAppsOfDevice(int deviceId)
|
ApplicationList getSubscribedAppsOfDevice(int deviceId, PaginationRequest request)
|
||||||
throws ApplicationManagementException;
|
throws ApplicationManagementException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -22,6 +22,7 @@ import io.entgra.device.mgt.core.application.mgt.common.dto.ApplicationDTO;
|
|||||||
import io.entgra.device.mgt.core.application.mgt.common.dto.CategoryDTO;
|
import io.entgra.device.mgt.core.application.mgt.common.dto.CategoryDTO;
|
||||||
import io.entgra.device.mgt.core.application.mgt.common.dto.TagDTO;
|
import io.entgra.device.mgt.core.application.mgt.common.dto.TagDTO;
|
||||||
import io.entgra.device.mgt.core.application.mgt.core.exception.ApplicationManagementDAOException;
|
import io.entgra.device.mgt.core.application.mgt.core.exception.ApplicationManagementDAOException;
|
||||||
|
import io.entgra.device.mgt.core.device.mgt.common.PaginationRequest;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -158,7 +159,7 @@ public interface ApplicationDAO {
|
|||||||
* @return the application
|
* @return the application
|
||||||
* @throws ApplicationManagementDAOException ApplicationDTO Management DAO Exception.
|
* @throws ApplicationManagementDAOException ApplicationDTO Management DAO Exception.
|
||||||
*/
|
*/
|
||||||
List<ApplicationDTO> getSubscribedAppsOfDevice(int deviceId, int tenantId) throws ApplicationManagementDAOException;
|
List<ApplicationDTO> getSubscribedAppsOfDevice(int deviceId, int tenantId, PaginationRequest request) throws ApplicationManagementDAOException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* To get the application with the given uuid
|
* To get the application with the given uuid
|
||||||
|
|||||||
@ -22,6 +22,7 @@ import io.entgra.device.mgt.core.application.mgt.core.dao.impl.AbstractDAOImpl;
|
|||||||
import io.entgra.device.mgt.core.application.mgt.core.exception.UnexpectedServerErrorException;
|
import io.entgra.device.mgt.core.application.mgt.core.exception.UnexpectedServerErrorException;
|
||||||
import io.entgra.device.mgt.core.application.mgt.core.util.Constants;
|
import io.entgra.device.mgt.core.application.mgt.core.util.Constants;
|
||||||
import io.entgra.device.mgt.core.application.mgt.core.util.DAOUtil;
|
import io.entgra.device.mgt.core.application.mgt.core.util.DAOUtil;
|
||||||
|
import io.entgra.device.mgt.core.device.mgt.common.PaginationRequest;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
@ -657,7 +658,7 @@ public class GenericApplicationDAOImpl extends AbstractDAOImpl implements Applic
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<ApplicationDTO> getSubscribedAppsOfDevice(int deviceId, int tenantId) throws
|
public List<ApplicationDTO> getSubscribedAppsOfDevice(int deviceId, int tenantId, PaginationRequest request) throws
|
||||||
ApplicationManagementDAOException {
|
ApplicationManagementDAOException {
|
||||||
if (log.isDebugEnabled()) {
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("Getting all installed apps of device " + deviceId
|
log.debug("Getting all installed apps of device " + deviceId
|
||||||
@ -700,11 +701,19 @@ public class GenericApplicationDAOImpl extends AbstractDAOImpl implements Applic
|
|||||||
+ "WHERE AP_DEVICE_SUBSCRIPTION.DM_DEVICE_ID = ? AND AP_DEVICE_SUBSCRIPTION.TENANT_ID= ? "
|
+ "WHERE AP_DEVICE_SUBSCRIPTION.DM_DEVICE_ID = ? AND AP_DEVICE_SUBSCRIPTION.TENANT_ID= ? "
|
||||||
+"AND AP_DEVICE_SUBSCRIPTION.STATUS= 'COMPLETED'";
|
+"AND AP_DEVICE_SUBSCRIPTION.STATUS= 'COMPLETED'";
|
||||||
|
|
||||||
|
if (request != null) {
|
||||||
|
sql = sql + " LIMIT ?,?";
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Connection conn = this.getDBConnection();
|
Connection conn = this.getDBConnection();
|
||||||
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
|
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||||
stmt.setInt(1, deviceId);
|
stmt.setInt(1, deviceId);
|
||||||
stmt.setInt(2, tenantId);
|
stmt.setInt(2, tenantId);
|
||||||
|
if (request != null) {
|
||||||
|
stmt.setInt(3, request.getStartIndex());
|
||||||
|
stmt.setInt(4, request.getRowCount());
|
||||||
|
}
|
||||||
try (ResultSet rs = stmt.executeQuery()) {
|
try (ResultSet rs = stmt.executeQuery()) {
|
||||||
appList = new ArrayList<>();
|
appList = new ArrayList<>();
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
|
|||||||
@ -22,6 +22,7 @@ import io.entgra.device.mgt.core.application.mgt.core.exception.BadRequestExcept
|
|||||||
import io.entgra.device.mgt.core.device.mgt.common.Base64File;
|
import io.entgra.device.mgt.core.device.mgt.common.Base64File;
|
||||||
import io.entgra.device.mgt.core.application.mgt.core.dao.SPApplicationDAO;
|
import io.entgra.device.mgt.core.application.mgt.core.dao.SPApplicationDAO;
|
||||||
import io.entgra.device.mgt.core.application.mgt.core.util.ApplicationManagementUtil;
|
import io.entgra.device.mgt.core.application.mgt.core.util.ApplicationManagementUtil;
|
||||||
|
import io.entgra.device.mgt.core.device.mgt.common.PaginationRequest;
|
||||||
import io.entgra.device.mgt.core.device.mgt.common.exceptions.MetadataManagementException;
|
import io.entgra.device.mgt.core.device.mgt.common.exceptions.MetadataManagementException;
|
||||||
import io.entgra.device.mgt.core.device.mgt.common.metadata.mgt.Metadata;
|
import io.entgra.device.mgt.core.device.mgt.common.metadata.mgt.Metadata;
|
||||||
import org.apache.commons.codec.digest.DigestUtils;
|
import org.apache.commons.codec.digest.DigestUtils;
|
||||||
@ -1445,19 +1446,27 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ApplicationList getSubscribedAppsOfDevice(int deviceId) throws ApplicationManagementException {
|
public ApplicationList getSubscribedAppsOfDevice(int deviceId, PaginationRequest request) throws ApplicationManagementException {
|
||||||
ApplicationList applicationList = new ApplicationList();
|
ApplicationList applicationList = new ApplicationList();
|
||||||
List<Application> applications = new ArrayList<>();
|
List<Application> applications = new ArrayList<>();
|
||||||
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true);
|
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true);
|
||||||
try {
|
try {
|
||||||
ConnectionManagerUtil.openDBConnection();
|
ConnectionManagerUtil.openDBConnection();
|
||||||
List<ApplicationDTO> applicationDTOS = this.applicationDAO.getSubscribedAppsOfDevice(deviceId, tenantId);
|
List<ApplicationDTO> applicationDTOS = this.applicationDAO.getSubscribedAppsOfDevice(deviceId, tenantId, request);
|
||||||
for (ApplicationDTO applicationDTO: applicationDTOS) {
|
for (ApplicationDTO applicationDTO: applicationDTOS) {
|
||||||
applicationDTO.setTags(this.applicationDAO.getAppTags(applicationDTO.getId(), tenantId));
|
applicationDTO.setTags(this.applicationDAO.getAppTags(applicationDTO.getId(), tenantId));
|
||||||
applicationDTO.setAppCategories(this.applicationDAO.getAppCategories(applicationDTO.getId(), tenantId));
|
applicationDTO.setAppCategories(this.applicationDAO.getAppCategories(applicationDTO.getId(), tenantId));
|
||||||
applications.add(APIUtil.appDtoToAppResponse(applicationDTO));
|
applications.add(APIUtil.appDtoToAppResponse(applicationDTO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<ApplicationDTO> totalApplications = this.applicationDAO.getSubscribedAppsOfDevice(deviceId, tenantId, null);
|
||||||
|
Pagination pagination = new Pagination();
|
||||||
|
pagination.setCount(totalApplications.size());
|
||||||
|
pagination.setSize(applications.size());
|
||||||
|
pagination.setOffset(request.getStartIndex());
|
||||||
|
pagination.setLimit(request.getRowCount());
|
||||||
applicationList.setApplications(applications);
|
applicationList.setApplications(applications);
|
||||||
|
applicationList.setPagination(pagination);
|
||||||
return applicationList;
|
return applicationList;
|
||||||
} catch (ApplicationManagementDAOException e) {
|
} catch (ApplicationManagementDAOException e) {
|
||||||
String msg = "Error occurred when getting installed apps of device with device id: "
|
String msg = "Error occurred when getting installed apps of device with device id: "
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user