mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
DAO and Services for APIs to populate the installation details static UI.
This commit is contained in:
parent
918c604d72
commit
e5cd6c40ce
@ -75,9 +75,13 @@ public class DeviceSubscriptionData {
|
|||||||
this.device = device;
|
this.device = device;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCurrentInstalledVersion() { return currentInstalledVersion; }
|
public String getCurrentInstalledVersion() {
|
||||||
|
return currentInstalledVersion;
|
||||||
|
}
|
||||||
|
|
||||||
public void setCurrentInstalledVersion(String currentInstalledVersion) { this.currentInstalledVersion = currentInstalledVersion; }
|
public void setCurrentInstalledVersion(String currentInstalledVersion) {
|
||||||
|
this.currentInstalledVersion = currentInstalledVersion;
|
||||||
|
}
|
||||||
|
|
||||||
public int getSubId() {
|
public int getSubId() {
|
||||||
return subId;
|
return subId;
|
||||||
|
|||||||
@ -0,0 +1,55 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.entgra.device.mgt.core.application.mgt.common.dto;
|
||||||
|
|
||||||
|
public class CategorizedSubscriptionCountsDTO {
|
||||||
|
private String subscriptionType;
|
||||||
|
private int subscriptionCount;
|
||||||
|
private int unsubscriptionCount;
|
||||||
|
|
||||||
|
public CategorizedSubscriptionCountsDTO(String subscriptionType, int subscriptionCount, int unsubscriptionCount) {
|
||||||
|
this.subscriptionType = subscriptionType;
|
||||||
|
this.subscriptionCount = subscriptionCount;
|
||||||
|
this.unsubscriptionCount = unsubscriptionCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSubscriptionType() {
|
||||||
|
return subscriptionType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSubscriptionType(String subscriptionType) {
|
||||||
|
this.subscriptionType = subscriptionType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSubscriptionCount() {
|
||||||
|
return subscriptionCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSubscriptionCount(int subscriptionCount) {
|
||||||
|
this.subscriptionCount = subscriptionCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUnsubscriptionCount() {
|
||||||
|
return unsubscriptionCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUnsubscriptionCount(int unsubscriptionCount) {
|
||||||
|
this.unsubscriptionCount = unsubscriptionCount;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -31,44 +31,94 @@ public class DeviceSubscriptionDTO {
|
|||||||
private String actionTriggeredFrom;
|
private String actionTriggeredFrom;
|
||||||
private String status;
|
private String status;
|
||||||
private int deviceId;
|
private int deviceId;
|
||||||
|
private int appReleaseId;
|
||||||
|
private String appUuid;
|
||||||
|
|
||||||
public int getId() { return id; }
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
public void setId(int id) { this.id = id; }
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
public String getSubscribedBy() { return subscribedBy; }
|
public String getSubscribedBy() {
|
||||||
|
return subscribedBy;
|
||||||
|
}
|
||||||
|
|
||||||
public void setSubscribedBy(String subscribedBy) { this.subscribedBy = subscribedBy; }
|
public void setSubscribedBy(String subscribedBy) {
|
||||||
|
this.subscribedBy = subscribedBy;
|
||||||
|
}
|
||||||
|
|
||||||
public Timestamp getSubscribedTimestamp() { return subscribedTimestamp; }
|
public Timestamp getSubscribedTimestamp() {
|
||||||
|
return subscribedTimestamp;
|
||||||
|
}
|
||||||
|
|
||||||
public void setSubscribedTimestamp(Timestamp subscribedTimestamp) {
|
public void setSubscribedTimestamp(Timestamp subscribedTimestamp) {
|
||||||
this.subscribedTimestamp = subscribedTimestamp;
|
this.subscribedTimestamp = subscribedTimestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isUnsubscribed() { return isUnsubscribed; }
|
public boolean isUnsubscribed() {
|
||||||
|
return isUnsubscribed;
|
||||||
|
}
|
||||||
|
|
||||||
public void setUnsubscribed(boolean unsubscribed) { isUnsubscribed = unsubscribed; }
|
public void setUnsubscribed(boolean unsubscribed) {
|
||||||
|
isUnsubscribed = unsubscribed;
|
||||||
|
}
|
||||||
|
|
||||||
public String getUnsubscribedBy() { return unsubscribedBy; }
|
public String getUnsubscribedBy() {
|
||||||
|
return unsubscribedBy;
|
||||||
|
}
|
||||||
|
|
||||||
public void setUnsubscribedBy(String unsubscribedBy) { this.unsubscribedBy = unsubscribedBy; }
|
public void setUnsubscribedBy(String unsubscribedBy) {
|
||||||
|
this.unsubscribedBy = unsubscribedBy;
|
||||||
|
}
|
||||||
|
|
||||||
public Timestamp getUnsubscribedTimestamp() { return unsubscribedTimestamp; }
|
public Timestamp getUnsubscribedTimestamp() {
|
||||||
|
return unsubscribedTimestamp;
|
||||||
|
}
|
||||||
|
|
||||||
public void setUnsubscribedTimestamp(Timestamp unsubscribedTimestamp) {
|
public void setUnsubscribedTimestamp(Timestamp unsubscribedTimestamp) {
|
||||||
this.unsubscribedTimestamp = unsubscribedTimestamp;
|
this.unsubscribedTimestamp = unsubscribedTimestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getActionTriggeredFrom() { return actionTriggeredFrom; }
|
public String getActionTriggeredFrom() {
|
||||||
|
return actionTriggeredFrom;
|
||||||
|
}
|
||||||
|
|
||||||
public void setActionTriggeredFrom(String actionTriggeredFrom) { this.actionTriggeredFrom = actionTriggeredFrom; }
|
public void setActionTriggeredFrom(String actionTriggeredFrom) {
|
||||||
|
this.actionTriggeredFrom = actionTriggeredFrom;
|
||||||
|
}
|
||||||
|
|
||||||
public String getStatus() { return status; }
|
public String getStatus() {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
public void setStatus(String status) { this.status = status; }
|
public void setStatus(String status) {
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
public int getDeviceId() { return deviceId; }
|
public int getDeviceId() {
|
||||||
|
return deviceId;
|
||||||
|
}
|
||||||
|
|
||||||
public void setDeviceId(int deviceId) { this.deviceId = deviceId; }
|
public void setDeviceId(int deviceId) {
|
||||||
|
this.deviceId = deviceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAppReleaseId() {
|
||||||
|
return appReleaseId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAppReleaseId(int appReleaseId) {
|
||||||
|
this.appReleaseId = appReleaseId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAppUuid() {
|
||||||
|
return appUuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAppUuid(String appUuid) {
|
||||||
|
this.appUuid = appUuid;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import io.entgra.device.mgt.core.application.mgt.common.ApplicationInstallRespon
|
|||||||
import io.entgra.device.mgt.core.application.mgt.common.CategorizedSubscriptionResult;
|
import io.entgra.device.mgt.core.application.mgt.common.CategorizedSubscriptionResult;
|
||||||
import io.entgra.device.mgt.core.application.mgt.common.ExecutionStatus;
|
import io.entgra.device.mgt.core.application.mgt.common.ExecutionStatus;
|
||||||
import io.entgra.device.mgt.core.application.mgt.common.SubscriptionType;
|
import io.entgra.device.mgt.core.application.mgt.common.SubscriptionType;
|
||||||
|
import io.entgra.device.mgt.core.application.mgt.common.dto.CategorizedSubscriptionCountsDTO;
|
||||||
import io.entgra.device.mgt.core.application.mgt.common.dto.GroupSubscriptionDetailDTO;
|
import io.entgra.device.mgt.core.application.mgt.common.dto.GroupSubscriptionDetailDTO;
|
||||||
import io.entgra.device.mgt.core.application.mgt.common.dto.ScheduledSubscriptionDTO;
|
import io.entgra.device.mgt.core.application.mgt.common.dto.ScheduledSubscriptionDTO;
|
||||||
import io.entgra.device.mgt.core.application.mgt.common.dto.UserSubscriptionDTO;
|
import io.entgra.device.mgt.core.application.mgt.common.dto.UserSubscriptionDTO;
|
||||||
@ -35,7 +36,6 @@ import io.entgra.device.mgt.core.device.mgt.common.app.mgt.App;
|
|||||||
import io.entgra.device.mgt.core.device.mgt.common.operation.mgt.Activity;
|
import io.entgra.device.mgt.core.device.mgt.common.operation.mgt.Activity;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -264,4 +264,15 @@ public interface SubscriptionManager {
|
|||||||
List<DeviceOperationDTO> getDeviceSubscriptionsOperationsByUUID(String uuid)
|
List<DeviceOperationDTO> getDeviceSubscriptionsOperationsByUUID(String uuid)
|
||||||
throws ApplicationManagementException;
|
throws ApplicationManagementException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is responsible for retrieving device counts details related to the given UUID.
|
||||||
|
*
|
||||||
|
* @param uuid the UUID of the application release.
|
||||||
|
* @return {@link List<CategorizedSubscriptionCountsDTO>} which contains counts of subscriptions
|
||||||
|
and unsubscription for each subscription type.
|
||||||
|
* @throws SubscriptionManagementException if there is an error while fetching the details.
|
||||||
|
*/
|
||||||
|
List<CategorizedSubscriptionCountsDTO> getSubscriptionCountsByUUID(String uuid)
|
||||||
|
throws ApplicationManagementException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -374,4 +374,114 @@ public interface SubscriptionDAO {
|
|||||||
*/
|
*/
|
||||||
List<DeviceSubscriptionDTO> getDeviceSubscriptionsDetails(int appReleaseId, int tenantId)
|
List<DeviceSubscriptionDTO> getDeviceSubscriptionsDetails(int appReleaseId, int tenantId)
|
||||||
throws ApplicationManagementDAOException;
|
throws ApplicationManagementDAOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is used to get the counts of all subscription types related to a UUID.
|
||||||
|
*
|
||||||
|
* @param appReleaseId the appReleaseId of the application release.
|
||||||
|
* @param tenantId id of the current tenant.
|
||||||
|
* @return {@link int} which contains the count of the subscription type
|
||||||
|
* @throws ApplicationManagementDAOException if connection establishment or SQL execution fails.
|
||||||
|
*/
|
||||||
|
int getAllSubscriptionCount(int appReleaseId, int tenantId)
|
||||||
|
throws ApplicationManagementDAOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is used to get the counts of all unsubscription types related to a UUID.
|
||||||
|
*
|
||||||
|
* @param appReleaseId the UUID of the application release.
|
||||||
|
* @param tenantId id of the current tenant.
|
||||||
|
* @return {@link int} which contains the count of the subscription type
|
||||||
|
* @throws ApplicationManagementDAOException if connection establishment or SQL execution fails.
|
||||||
|
*/
|
||||||
|
int getAllUnsubscriptionCount(int appReleaseId, int tenantId)
|
||||||
|
throws ApplicationManagementDAOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is used to get the counts of device subscriptions related to a UUID.
|
||||||
|
*
|
||||||
|
* @param appReleaseId the UUID of the application release.
|
||||||
|
* @param tenantId id of the current tenant.
|
||||||
|
* @return {@link int} which contains the count of the subscription type
|
||||||
|
* @throws ApplicationManagementDAOException if connection establishment or SQL execution fails.
|
||||||
|
*/
|
||||||
|
int getDeviceSubscriptionCount(int appReleaseId, int tenantId)
|
||||||
|
throws ApplicationManagementDAOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is used to get the counts of device unsubscription related to a UUID.
|
||||||
|
*
|
||||||
|
* @param appReleaseId the UUID of the application release.
|
||||||
|
* @param tenantId id of the current tenant.
|
||||||
|
* @return {@link int} which contains the count of the subscription type
|
||||||
|
* @throws ApplicationManagementDAOException if connection establishment or SQL execution fails.
|
||||||
|
*/
|
||||||
|
int getDeviceUnsubscriptionCount(int appReleaseId, int tenantId)
|
||||||
|
throws ApplicationManagementDAOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is used to get the counts of group subscriptions related to a UUID.
|
||||||
|
*
|
||||||
|
* @param appReleaseId the UUID of the application release.
|
||||||
|
* @param tenantId id of the current tenant.
|
||||||
|
* @return {@link int} which contains the count of the subscription type
|
||||||
|
* @throws ApplicationManagementDAOException if connection establishment or SQL execution fails.
|
||||||
|
*/
|
||||||
|
int getGroupSubscriptionCount(int appReleaseId, int tenantId)
|
||||||
|
throws ApplicationManagementDAOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is used to get the counts of group unsubscription related to a UUID.
|
||||||
|
*
|
||||||
|
* @param appReleaseId the UUID of the application release.
|
||||||
|
* @param tenantId id of the current tenant.
|
||||||
|
* @return {@link int} which contains the count of the subscription type
|
||||||
|
* @throws ApplicationManagementDAOException if connection establishment or SQL execution fails.
|
||||||
|
*/
|
||||||
|
int getGroupUnsubscriptionCount(int appReleaseId, int tenantId)
|
||||||
|
throws ApplicationManagementDAOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is used to get the counts of role subscriptions related to a UUID.
|
||||||
|
*
|
||||||
|
* @param appReleaseId the UUID of the application release.
|
||||||
|
* @param tenantId id of the current tenant.
|
||||||
|
* @return {@link int} which contains the count of the subscription type
|
||||||
|
* @throws ApplicationManagementDAOException if connection establishment or SQL execution fails.
|
||||||
|
*/
|
||||||
|
int getRoleSubscriptionCount(int appReleaseId, int tenantId)
|
||||||
|
throws ApplicationManagementDAOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is used to get the counts of role unsubscription related to a UUID.
|
||||||
|
*
|
||||||
|
* @param appReleaseId the UUID of the application release.
|
||||||
|
* @param tenantId id of the current tenant.
|
||||||
|
* @return {@link int} which contains the count of the subscription type
|
||||||
|
* @throws ApplicationManagementDAOException if connection establishment or SQL execution fails.
|
||||||
|
*/
|
||||||
|
int getRoleUnsubscriptionCount(int appReleaseId, int tenantId)
|
||||||
|
throws ApplicationManagementDAOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is used to get the counts of user subscriptions related to a UUID.
|
||||||
|
*
|
||||||
|
* @param appReleaseId the UUID of the application release.
|
||||||
|
* @param tenantId id of the current tenant.
|
||||||
|
* @return {@link int} which contains the count of the subscription type
|
||||||
|
* @throws ApplicationManagementDAOException if connection establishment or SQL execution fails.
|
||||||
|
*/
|
||||||
|
int getUserSubscriptionCount(int appReleaseId, int tenantId)
|
||||||
|
throws ApplicationManagementDAOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is used to get the counts of user unsubscription related to a UUID.
|
||||||
|
*
|
||||||
|
* @param appReleaseId the UUID of the application release.
|
||||||
|
* @param tenantId id of the current tenant.
|
||||||
|
* @return {@link int} which contains the count of the subscription type
|
||||||
|
* @throws ApplicationManagementDAOException if connection establishment or SQL execution fails.
|
||||||
|
*/
|
||||||
|
int getUserUnsubscriptionCount(int appReleaseId, int tenantId)
|
||||||
|
throws ApplicationManagementDAOException;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1892,5 +1892,395 @@ public class GenericSubscriptionDAOImpl extends AbstractDAOImpl implements Subsc
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getAllSubscriptionCount(int appReleaseId, int tenantId)
|
||||||
|
throws ApplicationManagementDAOException {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Getting all subscriptions count for the application appReleaseId " + appReleaseId
|
||||||
|
+ " from the database");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Connection conn = this.getDBConnection();
|
||||||
|
String sql = "SELECT COUNT(*) AS count " +
|
||||||
|
"FROM AP_DEVICE_SUBSCRIPTION " +
|
||||||
|
"WHERE AP_APP_RELEASE_ID = ? " +
|
||||||
|
"AND TENANT_ID = ? " +
|
||||||
|
"AND UNSUBSCRIBED = FALSE";
|
||||||
|
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement(sql)) {
|
||||||
|
ps.setInt(1, appReleaseId);
|
||||||
|
ps.setInt(2, tenantId);
|
||||||
|
|
||||||
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
if (rs.next()) {
|
||||||
|
return rs.getInt("count");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while running SQL to get all subscriptions count for application appReleaseId: "
|
||||||
|
+ appReleaseId;
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
} catch (DBConnectionException e) {
|
||||||
|
String msg = "Error occurred while obtaining the DB connection for getting all subscriptions count for appReleaseId: "
|
||||||
|
+ appReleaseId + ".";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getAllUnsubscriptionCount(int appReleaseId, int tenantId)
|
||||||
|
throws ApplicationManagementDAOException {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Getting all unsubscription count for the application appReleaseId " + appReleaseId
|
||||||
|
+ " from the database");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Connection conn = this.getDBConnection();
|
||||||
|
String sql = "SELECT COUNT(*) AS count " +
|
||||||
|
"FROM AP_DEVICE_SUBSCRIPTION " +
|
||||||
|
"WHERE AP_APP_RELEASE_ID = ? " +
|
||||||
|
"AND TENANT_ID = ? " +
|
||||||
|
"AND UNSUBSCRIBED = TRUE";
|
||||||
|
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement(sql)) {
|
||||||
|
ps.setInt(1, appReleaseId);
|
||||||
|
ps.setInt(2, tenantId);
|
||||||
|
|
||||||
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
if (rs.next()) {
|
||||||
|
return rs.getInt("count");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while running SQL to get all unsubscription count for application appReleaseId: "
|
||||||
|
+ appReleaseId;
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
} catch (DBConnectionException e) {
|
||||||
|
String msg = "Error occurred while obtaining the DB connection for getting all unsubscription count for appReleaseId: "
|
||||||
|
+ appReleaseId + ".";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getDeviceSubscriptionCount(int appReleaseId, int tenantId)
|
||||||
|
throws ApplicationManagementDAOException {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Getting device subscriptions count for the application appReleaseId " + appReleaseId
|
||||||
|
+ " from the database");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Connection conn = this.getDBConnection();
|
||||||
|
String sql = "SELECT COUNT(*) AS count " +
|
||||||
|
"FROM AP_DEVICE_SUBSCRIPTION " +
|
||||||
|
"WHERE AP_APP_RELEASE_ID = ? " +
|
||||||
|
"AND TENANT_ID = ? " +
|
||||||
|
"AND UNSUBSCRIBED = FALSE " +
|
||||||
|
"AND ACTION_TRIGGERED_FROM = 'DEVICE'";
|
||||||
|
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement(sql)) {
|
||||||
|
ps.setInt(1, appReleaseId);
|
||||||
|
ps.setInt(2, tenantId);
|
||||||
|
|
||||||
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
if (rs.next()) {
|
||||||
|
return rs.getInt("count");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while running SQL to get device subscriptions count for application appReleaseId: "
|
||||||
|
+ appReleaseId;
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
} catch (DBConnectionException e) {
|
||||||
|
String msg = "Error occurred while obtaining the DB connection for getting device subscriptions count for appReleaseId: "
|
||||||
|
+ appReleaseId + ".";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getDeviceUnsubscriptionCount(int appReleaseId, int tenantId)
|
||||||
|
throws ApplicationManagementDAOException {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Getting device unsubscriptions count for the application appReleaseId " + appReleaseId
|
||||||
|
+ " from the database");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Connection conn = this.getDBConnection();
|
||||||
|
String sql = "SELECT COUNT(*) AS count " +
|
||||||
|
"FROM AP_DEVICE_SUBSCRIPTION " +
|
||||||
|
"WHERE AP_APP_RELEASE_ID = ? " +
|
||||||
|
"AND TENANT_ID = ? " +
|
||||||
|
"AND UNSUBSCRIBED = TRUE " +
|
||||||
|
"AND ACTION_TRIGGERED_FROM = 'DEVICE'";
|
||||||
|
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement(sql)) {
|
||||||
|
ps.setInt(1, appReleaseId);
|
||||||
|
ps.setInt(2, tenantId);
|
||||||
|
|
||||||
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
if (rs.next()) {
|
||||||
|
return rs.getInt("count");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while running SQL to get device unsubscription count for application appReleaseId: "
|
||||||
|
+ appReleaseId;
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
} catch (DBConnectionException e) {
|
||||||
|
String msg = "Error occurred while obtaining the DB connection for getting device unsubscription count for appReleaseId: "
|
||||||
|
+ appReleaseId + ".";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getGroupSubscriptionCount(int appReleaseId, int tenantId)
|
||||||
|
throws ApplicationManagementDAOException {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Getting group subscriptions count for the application appReleaseId " + appReleaseId
|
||||||
|
+ " from the database");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Connection conn = this.getDBConnection();
|
||||||
|
String sql = "SELECT COUNT(*) AS count " +
|
||||||
|
"FROM AP_GROUP_SUBSCRIPTION " +
|
||||||
|
"WHERE AP_APP_RELEASE_ID = ? " +
|
||||||
|
"AND TENANT_ID = ? " +
|
||||||
|
"AND UNSUBSCRIBED = FALSE";
|
||||||
|
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement(sql)) {
|
||||||
|
ps.setInt(1, appReleaseId);
|
||||||
|
ps.setInt(2, tenantId);
|
||||||
|
|
||||||
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
if (rs.next()) {
|
||||||
|
return rs.getInt("count");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while running SQL to get group subscriptions count for application appReleaseId: "
|
||||||
|
+ appReleaseId;
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
} catch (DBConnectionException e) {
|
||||||
|
String msg = "Error occurred while obtaining the DB connection for getting group subscriptions count for appReleaseId: "
|
||||||
|
+ appReleaseId + ".";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getGroupUnsubscriptionCount(int appReleaseId, int tenantId)
|
||||||
|
throws ApplicationManagementDAOException {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Getting group unsubscriptions count for the application appReleaseId " + appReleaseId
|
||||||
|
+ " from the database");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Connection conn = this.getDBConnection();
|
||||||
|
String sql = "SELECT COUNT(*) AS count " +
|
||||||
|
"FROM AP_GROUP_SUBSCRIPTION " +
|
||||||
|
"WHERE AP_APP_RELEASE_ID = ? " +
|
||||||
|
"AND TENANT_ID = ? " +
|
||||||
|
"AND UNSUBSCRIBED = TRUE";
|
||||||
|
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement(sql)) {
|
||||||
|
ps.setInt(1, appReleaseId);
|
||||||
|
ps.setInt(2, tenantId);
|
||||||
|
|
||||||
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
if (rs.next()) {
|
||||||
|
return rs.getInt("count");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while running SQL to get group unsubscription count for application appReleaseId: "
|
||||||
|
+ appReleaseId;
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
} catch (DBConnectionException e) {
|
||||||
|
String msg = "Error occurred while obtaining the DB connection for getting group unsubscription count for appReleaseId: "
|
||||||
|
+ appReleaseId + ".";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getRoleSubscriptionCount(int appReleaseId, int tenantId)
|
||||||
|
throws ApplicationManagementDAOException {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Getting role subscriptions count for the application appReleaseId " + appReleaseId
|
||||||
|
+ " from the database");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Connection conn = this.getDBConnection();
|
||||||
|
String sql = "SELECT COUNT(*) AS count " +
|
||||||
|
"FROM AP_ROLE_SUBSCRIPTION " +
|
||||||
|
"WHERE AP_APP_RELEASE_ID = ? " +
|
||||||
|
"AND TENANT_ID = ? " +
|
||||||
|
"AND UNSUBSCRIBED = FALSE";
|
||||||
|
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement(sql)) {
|
||||||
|
ps.setInt(1, appReleaseId);
|
||||||
|
ps.setInt(2, tenantId);
|
||||||
|
|
||||||
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
if (rs.next()) {
|
||||||
|
return rs.getInt("count");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while running SQL to get role subscriptions count for application appReleaseId: "
|
||||||
|
+ appReleaseId;
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
} catch (DBConnectionException e) {
|
||||||
|
String msg = "Error occurred while obtaining the DB connection for getting role subscriptions count for appReleaseId: "
|
||||||
|
+ appReleaseId + ".";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getRoleUnsubscriptionCount(int appReleaseId, int tenantId)
|
||||||
|
throws ApplicationManagementDAOException {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Getting role unsubscription count for the application appReleaseId " + appReleaseId
|
||||||
|
+ " from the database");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Connection conn = this.getDBConnection();
|
||||||
|
String sql = "SELECT COUNT(*) AS count " +
|
||||||
|
"FROM AP_ROLE_SUBSCRIPTION " +
|
||||||
|
"WHERE AP_APP_RELEASE_ID = ? " +
|
||||||
|
"AND TENANT_ID = ? " +
|
||||||
|
"AND UNSUBSCRIBED = TRUE";
|
||||||
|
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement(sql)) {
|
||||||
|
ps.setInt(1, appReleaseId);
|
||||||
|
ps.setInt(2, tenantId);
|
||||||
|
|
||||||
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
if (rs.next()) {
|
||||||
|
return rs.getInt("count");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while running SQL to get role unsubscription count for application appReleaseId: "
|
||||||
|
+ appReleaseId;
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
} catch (DBConnectionException e) {
|
||||||
|
String msg = "Error occurred while obtaining the DB connection for getting role unsubscription count for appReleaseId: "
|
||||||
|
+ appReleaseId + ".";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getUserSubscriptionCount(int appReleaseId, int tenantId)
|
||||||
|
throws ApplicationManagementDAOException {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Getting user subscriptions count for the application appReleaseId " + appReleaseId
|
||||||
|
+ " from the database");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Connection conn = this.getDBConnection();
|
||||||
|
String sql = "SELECT COUNT(*) AS count " +
|
||||||
|
"FROM AP_USER_SUBSCRIPTION " +
|
||||||
|
"WHERE AP_APP_RELEASE_ID = ? " +
|
||||||
|
"AND TENANT_ID = ? " +
|
||||||
|
"AND UNSUBSCRIBED = FALSE";
|
||||||
|
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement(sql)) {
|
||||||
|
ps.setInt(1, appReleaseId);
|
||||||
|
ps.setInt(2, tenantId);
|
||||||
|
|
||||||
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
if (rs.next()) {
|
||||||
|
return rs.getInt("count");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while running SQL to get user subscriptions count for application appReleaseId: "
|
||||||
|
+ appReleaseId;
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
} catch (DBConnectionException e) {
|
||||||
|
String msg = "Error occurred while obtaining the DB connection for getting user subscriptions count for appReleaseId: "
|
||||||
|
+ appReleaseId + ".";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getUserUnsubscriptionCount(int appReleaseId, int tenantId)
|
||||||
|
throws ApplicationManagementDAOException {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Getting user unsubscription count for the application appReleaseId " + appReleaseId
|
||||||
|
+ " from the database");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Connection conn = this.getDBConnection();
|
||||||
|
String sql = "SELECT COUNT(*) AS count " +
|
||||||
|
"FROM AP_USER_SUBSCRIPTION " +
|
||||||
|
"WHERE AP_APP_RELEASE_ID = ? " +
|
||||||
|
"AND TENANT_ID = ? " +
|
||||||
|
"AND UNSUBSCRIBED = TRUE";
|
||||||
|
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement(sql)) {
|
||||||
|
ps.setInt(1, appReleaseId);
|
||||||
|
ps.setInt(2, tenantId);
|
||||||
|
|
||||||
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
if (rs.next()) {
|
||||||
|
return rs.getInt("count");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while running SQL to get user unsubscription count for application appReleaseId: "
|
||||||
|
+ appReleaseId;
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
} catch (DBConnectionException e) {
|
||||||
|
String msg = "Error occurred while obtaining the DB connection for getting user unsubscription count for appReleaseId: "
|
||||||
|
+ appReleaseId + ".";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,6 +24,7 @@ import io.entgra.device.mgt.core.application.mgt.common.ApplicationSubscriptionI
|
|||||||
import io.entgra.device.mgt.core.application.mgt.common.ApplicationType;
|
import io.entgra.device.mgt.core.application.mgt.common.ApplicationType;
|
||||||
import io.entgra.device.mgt.core.application.mgt.common.CategorizedSubscriptionResult;
|
import io.entgra.device.mgt.core.application.mgt.common.CategorizedSubscriptionResult;
|
||||||
import io.entgra.device.mgt.core.application.mgt.common.DeviceSubscriptionData;
|
import io.entgra.device.mgt.core.application.mgt.common.DeviceSubscriptionData;
|
||||||
|
import io.entgra.device.mgt.core.application.mgt.common.dto.CategorizedSubscriptionCountsDTO;
|
||||||
import io.entgra.device.mgt.core.application.mgt.common.dto.DeviceSubscriptionDTO;
|
import io.entgra.device.mgt.core.application.mgt.common.dto.DeviceSubscriptionDTO;
|
||||||
import io.entgra.device.mgt.core.application.mgt.common.dto.GroupSubscriptionDetailDTO;
|
import io.entgra.device.mgt.core.application.mgt.common.dto.GroupSubscriptionDetailDTO;
|
||||||
import io.entgra.device.mgt.core.application.mgt.common.dto.UserSubscriptionDTO;
|
import io.entgra.device.mgt.core.application.mgt.common.dto.UserSubscriptionDTO;
|
||||||
@ -42,6 +43,7 @@ import io.entgra.device.mgt.core.application.mgt.common.dto.ApplicationPolicyDTO
|
|||||||
import io.entgra.device.mgt.core.application.mgt.common.dto.VppAssetDTO;
|
import io.entgra.device.mgt.core.application.mgt.common.dto.VppAssetDTO;
|
||||||
import io.entgra.device.mgt.core.application.mgt.common.dto.VppUserDTO;
|
import io.entgra.device.mgt.core.application.mgt.common.dto.VppUserDTO;
|
||||||
import io.entgra.device.mgt.core.application.mgt.common.services.VPPApplicationManager;
|
import io.entgra.device.mgt.core.application.mgt.common.services.VPPApplicationManager;
|
||||||
|
import io.entgra.device.mgt.core.application.mgt.core.dao.ApplicationReleaseDAO;
|
||||||
import io.entgra.device.mgt.core.application.mgt.core.dao.VppApplicationDAO;
|
import io.entgra.device.mgt.core.application.mgt.core.dao.VppApplicationDAO;
|
||||||
import io.entgra.device.mgt.core.application.mgt.core.exception.BadRequestException;
|
import io.entgra.device.mgt.core.application.mgt.core.exception.BadRequestException;
|
||||||
import io.entgra.device.mgt.core.device.mgt.common.PaginationRequest;
|
import io.entgra.device.mgt.core.device.mgt.common.PaginationRequest;
|
||||||
@ -143,12 +145,14 @@ public class SubscriptionManagerImpl implements SubscriptionManager {
|
|||||||
private SubscriptionDAO subscriptionDAO;
|
private SubscriptionDAO subscriptionDAO;
|
||||||
private ApplicationDAO applicationDAO;
|
private ApplicationDAO applicationDAO;
|
||||||
private VppApplicationDAO vppApplicationDAO;
|
private VppApplicationDAO vppApplicationDAO;
|
||||||
|
private ApplicationReleaseDAO applicationReleaseDAO;
|
||||||
private LifecycleStateManager lifecycleStateManager;
|
private LifecycleStateManager lifecycleStateManager;
|
||||||
|
|
||||||
public SubscriptionManagerImpl() {
|
public SubscriptionManagerImpl() {
|
||||||
this.lifecycleStateManager = DataHolder.getInstance().getLifecycleStateManager();
|
this.lifecycleStateManager = DataHolder.getInstance().getLifecycleStateManager();
|
||||||
this.subscriptionDAO = ApplicationManagementDAOFactory.getSubscriptionDAO();
|
this.subscriptionDAO = ApplicationManagementDAOFactory.getSubscriptionDAO();
|
||||||
this.applicationDAO = ApplicationManagementDAOFactory.getApplicationDAO();
|
this.applicationDAO = ApplicationManagementDAOFactory.getApplicationDAO();
|
||||||
|
this.applicationReleaseDAO = ApplicationManagementDAOFactory.getApplicationReleaseDAO();
|
||||||
this.vppApplicationDAO = ApplicationManagementDAOFactory.getVppApplicationDAO();
|
this.vppApplicationDAO = ApplicationManagementDAOFactory.getVppApplicationDAO();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2132,4 +2136,60 @@ public class SubscriptionManagerImpl implements SubscriptionManager {
|
|||||||
ConnectionManagerUtil.closeDBConnection();
|
ConnectionManagerUtil.closeDBConnection();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<CategorizedSubscriptionCountsDTO> getSubscriptionCountsByUUID(String uuid)
|
||||||
|
throws ApplicationManagementException {
|
||||||
|
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true);
|
||||||
|
if (uuid == null || uuid.isEmpty()) {
|
||||||
|
throw new IllegalArgumentException("UUID cannot be null or empty.");
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
ConnectionManagerUtil.openDBConnection();
|
||||||
|
|
||||||
|
ApplicationReleaseDTO applicationReleaseDTO = this.applicationReleaseDAO.getReleaseByUUID(uuid, tenantId);
|
||||||
|
if (applicationReleaseDTO == null) {
|
||||||
|
String msg = "Couldn't find an application release for application release UUID: " + uuid;
|
||||||
|
log.error(msg);
|
||||||
|
throw new NotFoundException(msg);
|
||||||
|
}
|
||||||
|
int appReleaseId = applicationReleaseDTO.getId();
|
||||||
|
|
||||||
|
List<CategorizedSubscriptionCountsDTO> subscriptionCounts = new ArrayList<>();
|
||||||
|
|
||||||
|
subscriptionCounts.add(new CategorizedSubscriptionCountsDTO(
|
||||||
|
"ALL",
|
||||||
|
subscriptionDAO.getAllSubscriptionCount(appReleaseId, tenantId),
|
||||||
|
subscriptionDAO.getAllUnsubscriptionCount(appReleaseId, tenantId)));
|
||||||
|
subscriptionCounts.add(new CategorizedSubscriptionCountsDTO(
|
||||||
|
"DEVICE",
|
||||||
|
subscriptionDAO.getDeviceSubscriptionCount(appReleaseId, tenantId),
|
||||||
|
subscriptionDAO.getDeviceUnsubscriptionCount(appReleaseId, tenantId)));
|
||||||
|
subscriptionCounts.add(new CategorizedSubscriptionCountsDTO(
|
||||||
|
"GROUP",
|
||||||
|
subscriptionDAO.getGroupSubscriptionCount(appReleaseId, tenantId),
|
||||||
|
subscriptionDAO.getGroupUnsubscriptionCount(appReleaseId, tenantId)));
|
||||||
|
subscriptionCounts.add(new CategorizedSubscriptionCountsDTO(
|
||||||
|
"ROLE",
|
||||||
|
subscriptionDAO.getRoleSubscriptionCount(appReleaseId, tenantId),
|
||||||
|
subscriptionDAO.getRoleUnsubscriptionCount(appReleaseId, tenantId)));
|
||||||
|
subscriptionCounts.add(new CategorizedSubscriptionCountsDTO(
|
||||||
|
"USER",
|
||||||
|
subscriptionDAO.getUserSubscriptionCount(appReleaseId, tenantId),
|
||||||
|
subscriptionDAO.getUserUnsubscriptionCount(appReleaseId, tenantId)));
|
||||||
|
|
||||||
|
return subscriptionCounts;
|
||||||
|
} catch (ApplicationManagementDAOException e) {
|
||||||
|
String msg = "Error occurred while retrieving subscriptions counts for UUID: " + uuid;
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementException(msg, e);
|
||||||
|
} catch (DBConnectionException e) {
|
||||||
|
String msg = "Error occurred while retrieving the database connection";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementException(msg, e);
|
||||||
|
} finally {
|
||||||
|
ConnectionManagerUtil.closeDBConnection();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user