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.device.mgt.common.Base64File;
|
||||
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 org.apache.cxf.jaxrs.ext.multipart.Attachment;
|
||||
import io.entgra.device.mgt.core.application.mgt.common.ApplicationArtifact;
|
||||
@ -281,7 +282,7 @@ public interface ApplicationManager {
|
||||
* @throws ApplicationManagementException
|
||||
* 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;
|
||||
|
||||
/**
|
||||
|
||||
@ -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.TagDTO;
|
||||
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;
|
||||
|
||||
@ -158,7 +159,7 @@ public interface ApplicationDAO {
|
||||
* @return the application
|
||||
* @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
|
||||
|
||||
@ -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.util.Constants;
|
||||
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.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
@ -657,7 +658,7 @@ public class GenericApplicationDAOImpl extends AbstractDAOImpl implements Applic
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ApplicationDTO> getSubscribedAppsOfDevice(int deviceId, int tenantId) throws
|
||||
public List<ApplicationDTO> getSubscribedAppsOfDevice(int deviceId, int tenantId, PaginationRequest request) throws
|
||||
ApplicationManagementDAOException {
|
||||
if (log.isDebugEnabled()) {
|
||||
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= ? "
|
||||
+"AND AP_DEVICE_SUBSCRIPTION.STATUS= 'COMPLETED'";
|
||||
|
||||
if (request != null) {
|
||||
sql = sql + " LIMIT ?,?";
|
||||
}
|
||||
|
||||
try {
|
||||
Connection conn = this.getDBConnection();
|
||||
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
stmt.setInt(1, deviceId);
|
||||
stmt.setInt(2, tenantId);
|
||||
if (request != null) {
|
||||
stmt.setInt(3, request.getStartIndex());
|
||||
stmt.setInt(4, request.getRowCount());
|
||||
}
|
||||
try (ResultSet rs = stmt.executeQuery()) {
|
||||
appList = new ArrayList<>();
|
||||
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.application.mgt.core.dao.SPApplicationDAO;
|
||||
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.metadata.mgt.Metadata;
|
||||
import org.apache.commons.codec.digest.DigestUtils;
|
||||
@ -1445,19 +1446,27 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApplicationList getSubscribedAppsOfDevice(int deviceId) throws ApplicationManagementException {
|
||||
public ApplicationList getSubscribedAppsOfDevice(int deviceId, PaginationRequest request) throws ApplicationManagementException {
|
||||
ApplicationList applicationList = new ApplicationList();
|
||||
List<Application> applications = new ArrayList<>();
|
||||
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true);
|
||||
try {
|
||||
ConnectionManagerUtil.openDBConnection();
|
||||
List<ApplicationDTO> applicationDTOS = this.applicationDAO.getSubscribedAppsOfDevice(deviceId, tenantId);
|
||||
List<ApplicationDTO> applicationDTOS = this.applicationDAO.getSubscribedAppsOfDevice(deviceId, tenantId, request);
|
||||
for (ApplicationDTO applicationDTO: applicationDTOS) {
|
||||
applicationDTO.setTags(this.applicationDAO.getAppTags(applicationDTO.getId(), tenantId));
|
||||
applicationDTO.setAppCategories(this.applicationDAO.getAppCategories(applicationDTO.getId(), tenantId));
|
||||
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.setPagination(pagination);
|
||||
return applicationList;
|
||||
} catch (ApplicationManagementDAOException e) {
|
||||
String msg = "Error occurred when getting installed apps of device with device id: "
|
||||
|
||||
Loading…
Reference in New Issue
Block a user