mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Create an API to get subscribed Category details
This commit is contained in:
parent
4c51c0af45
commit
5cbe25c0d7
@ -0,0 +1,88 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. 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 org.wso2.carbon.device.application.mgt.common;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
@ApiModel(value = "BasicUserInfo", description = "Basic user information and the roles of the user.")
|
||||||
|
public class BasicUserInfo {
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "username", value = "The login name of the user.", required = true )
|
||||||
|
private String username;
|
||||||
|
@ApiModelProperty(name = "firstname", value = "The first name of the user.", required = true )
|
||||||
|
private String firstname;
|
||||||
|
@ApiModelProperty(name = "lastname", value = "The last name of the user.", required = true )
|
||||||
|
private String lastname;
|
||||||
|
@ApiModelProperty(name = "emailAddress", value = "The email address of the user.", required = true )
|
||||||
|
private String emailAddress;
|
||||||
|
@ApiModelProperty(name = "createdDate", value = "User creation date." )
|
||||||
|
private String createdDate;
|
||||||
|
@ApiModelProperty(name = "modifiedDate", value = "User modifiedDate date." )
|
||||||
|
private String modifiedDate;
|
||||||
|
|
||||||
|
public String getUsername() {
|
||||||
|
return username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUsername(String username) {
|
||||||
|
this.username = username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFirstname() {
|
||||||
|
return firstname;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFirstname(String firstname) {
|
||||||
|
this.firstname = firstname;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastname() {
|
||||||
|
return lastname;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastname(String lastname) {
|
||||||
|
this.lastname = lastname;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEmailAddress() {
|
||||||
|
return emailAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEmailAddress(String emailAddress) {
|
||||||
|
this.emailAddress = emailAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCreatedDate() {
|
||||||
|
return createdDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCreatedDate(String createdDate) {
|
||||||
|
this.createdDate = createdDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getModifiedDate() {
|
||||||
|
return modifiedDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setModifiedDate(String modifiedDate) {
|
||||||
|
this.modifiedDate = modifiedDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,55 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. 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 org.wso2.carbon.device.application.mgt.common;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@ApiModel(value = "BasicUserInfoList", description = "This contains basic details of a set of users that matches " +
|
||||||
|
"a given criteria as a collection")
|
||||||
|
public class BasicUserInfoList extends BasePaginatedResult {
|
||||||
|
|
||||||
|
private List<BasicUserInfo> users = new ArrayList<>();
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "List of devices returned")
|
||||||
|
@JsonProperty("users")
|
||||||
|
public List<BasicUserInfo> getList() {
|
||||||
|
return users;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setList(List<BasicUserInfo> users) {
|
||||||
|
this.users = users;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append("{\n");
|
||||||
|
|
||||||
|
sb.append(" count: ").append(getCount()).append(",\n");
|
||||||
|
sb.append(" users: [").append(users).append("\n");
|
||||||
|
sb.append("]}\n");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,51 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. 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 org.wso2.carbon.device.application.mgt.common;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class DeviceGroupList extends BasePaginatedResult {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "List of device groups returned")
|
||||||
|
@JsonProperty("groups")
|
||||||
|
private List<?> deviceGroups = new ArrayList<>();
|
||||||
|
|
||||||
|
public List<?> getList() {
|
||||||
|
return deviceGroups;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setList(List<?> deviceGroups) {
|
||||||
|
this.deviceGroups = deviceGroups;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append("{\n");
|
||||||
|
sb.append(" count: ").append(getCount()).append(",\n");
|
||||||
|
sb.append(" groups: [").append(deviceGroups).append("\n");
|
||||||
|
sb.append("]}\n");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,55 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. 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 org.wso2.carbon.device.application.mgt.common;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@ApiModel(value = "Role List")
|
||||||
|
public class RoleList extends BasePaginatedResult {
|
||||||
|
|
||||||
|
private List<?> roles;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "Returns the list of roles that match the offset and limit parameter values "
|
||||||
|
+ "that were specified.")
|
||||||
|
@JsonProperty("roles")
|
||||||
|
|
||||||
|
public List<?> getList() {
|
||||||
|
return roles;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setList(List<?> roles) {
|
||||||
|
this.roles = roles;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append("{\n");
|
||||||
|
sb.append(" count: ").append(getCount()).append(",\n");
|
||||||
|
sb.append(" roles: [").append(roles).append("\n");
|
||||||
|
sb.append("]}\n");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -19,10 +19,7 @@
|
|||||||
package org.wso2.carbon.device.application.mgt.common.services;
|
package org.wso2.carbon.device.application.mgt.common.services;
|
||||||
|
|
||||||
import org.wso2.carbon.device.application.mgt.common.ApplicationInstallResponse;
|
import org.wso2.carbon.device.application.mgt.common.ApplicationInstallResponse;
|
||||||
//import org.wso2.carbon.device.application.mgt.common.PaginationResult;
|
|
||||||
import org.wso2.carbon.device.application.mgt.common.exception.ApplicationManagementException;
|
import org.wso2.carbon.device.application.mgt.common.exception.ApplicationManagementException;
|
||||||
import org.wso2.carbon.device.mgt.common.Device;
|
|
||||||
import org.wso2.carbon.device.mgt.common.PaginationRequest;
|
|
||||||
import org.wso2.carbon.device.mgt.common.PaginationResult;
|
import org.wso2.carbon.device.mgt.common.PaginationResult;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -46,4 +43,17 @@ public interface SubscriptionManager {
|
|||||||
PaginationResult getAppInstalledDevices(int offsetValue, int limitValue, String appUUID,
|
PaginationResult getAppInstalledDevices(int offsetValue, int limitValue, String appUUID,
|
||||||
String status)
|
String status)
|
||||||
throws ApplicationManagementException;
|
throws ApplicationManagementException;
|
||||||
|
|
||||||
|
/***
|
||||||
|
* This method for get category details
|
||||||
|
* @param appUUID uuid
|
||||||
|
* @param subType subType
|
||||||
|
* @param offsetValue offsetValue
|
||||||
|
* @param limitValue limitValue
|
||||||
|
* @return paginationResult
|
||||||
|
* @throws ApplicationManagementException Exception of the application management
|
||||||
|
*/
|
||||||
|
PaginationResult getAppInstalledCategories(int offsetValue, int limitValue, String appUUID,
|
||||||
|
String subType)
|
||||||
|
throws ApplicationManagementException;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -85,4 +85,45 @@ public interface SubscriptionDAO {
|
|||||||
boolean updateDeviceSubStatus(int deviceId, List<Integer> deviceSubIds, String status, int tenantcId)
|
boolean updateDeviceSubStatus(int deviceId, List<Integer> deviceSubIds, String status, int tenantcId)
|
||||||
throws ApplicationManagementDAOException;
|
throws ApplicationManagementDAOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* this method is used to get the details of users
|
||||||
|
* @param tenantId tenant id
|
||||||
|
* @param offsetValue offsetValue
|
||||||
|
* @param limitValue limitValue
|
||||||
|
* @param appReleaseId appReleaseId
|
||||||
|
* @return subscribedUsers
|
||||||
|
* @throws ApplicationManagementDAOException throws {@link ApplicationManagementDAOException} if
|
||||||
|
* connections establishment fails.
|
||||||
|
*/
|
||||||
|
List<String> getAppSubscribedUsers(int offsetValue, int limitValue, int appReleaseId,
|
||||||
|
int tenantId)
|
||||||
|
throws ApplicationManagementDAOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* this method is used to get the details of roles
|
||||||
|
* @param tenantId tenant id
|
||||||
|
* @param offsetValue offsetValue
|
||||||
|
* @param limitValue limitValue
|
||||||
|
* @param appReleaseId appReleaseId
|
||||||
|
* @return subscribedRoles
|
||||||
|
* @throws ApplicationManagementDAOException throws {@link ApplicationManagementDAOException} if
|
||||||
|
* connections establishment fails.
|
||||||
|
*/
|
||||||
|
List<String> getAppSubscribedRoles(int offsetValue, int limitValue, int appReleaseId,
|
||||||
|
int tenantId)
|
||||||
|
throws ApplicationManagementDAOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* this method is used to get the details of groups
|
||||||
|
* @param tenantId tenant id
|
||||||
|
* @param offsetValue offsetValue
|
||||||
|
* @param limitValue limitValue
|
||||||
|
* @param appReleaseId appReleaseId
|
||||||
|
* @return subscribedUsers
|
||||||
|
* @throws ApplicationManagementDAOException throws {@link ApplicationManagementDAOException} if
|
||||||
|
* connections establishment fails.
|
||||||
|
*/
|
||||||
|
List<String> getAppSubscribedGroups(int offsetValue, int limitValue, int appReleaseId,
|
||||||
|
int tenantId)
|
||||||
|
throws ApplicationManagementDAOException;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -698,4 +698,127 @@ public class GenericSubscriptionDAOImpl extends AbstractDAOImpl implements Subsc
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> getAppSubscribedUsers(int offsetValue, int limitValue, int appReleaseId,
|
||||||
|
int tenantId)
|
||||||
|
throws ApplicationManagementDAOException {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Request received in DAO Layer to get already subscribed users for " +
|
||||||
|
"given app release id.");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Connection conn = this.getDBConnection();
|
||||||
|
int index = 1;
|
||||||
|
List<String> subscribedUsers = new ArrayList<>();
|
||||||
|
String sql = "SELECT "
|
||||||
|
+ "US.USER_NAME AS USER "
|
||||||
|
+ "FROM AP_USER_SUBSCRIPTION US "
|
||||||
|
+ "WHERE "
|
||||||
|
+ "AP_APP_RELEASE_ID = ? AND TENANT_ID = ? LIMIT ?,?";
|
||||||
|
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||||
|
stmt.setInt(index++, appReleaseId);
|
||||||
|
stmt.setInt(index++, tenantId);
|
||||||
|
stmt.setInt(index++, offsetValue);
|
||||||
|
stmt.setInt(index, limitValue);
|
||||||
|
try (ResultSet rs = stmt.executeQuery()) {
|
||||||
|
while (rs.next()) {
|
||||||
|
subscribedUsers.add(rs.getString("USER"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return subscribedUsers;
|
||||||
|
}
|
||||||
|
} catch (DBConnectionException e) {
|
||||||
|
String msg = "Error occurred while obtaining the DB connection to get already " +
|
||||||
|
"subscribed users for given app release id.";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "SQL Error occurred while getting subscribed users for given app release id.";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> getAppSubscribedRoles(int offsetValue, int limitValue, int appReleaseId,
|
||||||
|
int tenantId)
|
||||||
|
throws ApplicationManagementDAOException {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Request received in DAO Layer to get already subscribed roles for " +
|
||||||
|
"given app release id.");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Connection conn = this.getDBConnection();
|
||||||
|
int index = 1;
|
||||||
|
List<String> subscribedRoles = new ArrayList<>();
|
||||||
|
String sql = "SELECT "
|
||||||
|
+ "US.ROLE_NAME AS ROLE "
|
||||||
|
+ "FROM AP_ROLE_SUBSCRIPTION US "
|
||||||
|
+ "WHERE "
|
||||||
|
+ "AP_APP_RELEASE_ID = ? AND TENANT_ID = ? LIMIT ?,?";
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement(sql)) {
|
||||||
|
ps.setInt(index++, appReleaseId);
|
||||||
|
ps.setInt(index++, tenantId);
|
||||||
|
ps.setInt(index++, offsetValue);
|
||||||
|
ps.setInt(index, limitValue);
|
||||||
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
while (rs.next()) {
|
||||||
|
subscribedRoles.add(rs.getString("ROLE"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return subscribedRoles;
|
||||||
|
}
|
||||||
|
} catch (DBConnectionException e) {
|
||||||
|
String msg = "Error occurred while obtaining the DB connection to get already " +
|
||||||
|
"subscribed roles for given app release id.";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "SQL Error occurred while getting subscribed roles for given app release id.";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> getAppSubscribedGroups(int offsetValue, int limitValue, int appReleaseId,
|
||||||
|
int tenantId)
|
||||||
|
throws ApplicationManagementDAOException {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Request received in DAO Layer to get already subscribed groups for " +
|
||||||
|
"given app release id.");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Connection conn = this.getDBConnection();
|
||||||
|
int index = 1;
|
||||||
|
List<String> subscribedGroups = new ArrayList<>();
|
||||||
|
String sql = "SELECT "
|
||||||
|
+ "GS.GROUP_NAME AS GROUPS "
|
||||||
|
+ "FROM AP_GROUP_SUBSCRIPTION GS "
|
||||||
|
+ "WHERE "
|
||||||
|
+ "AP_APP_RELEASE_ID = ? AND TENANT_ID = ? LIMIT ?,?";
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement(sql)) {
|
||||||
|
ps.setInt(index++, appReleaseId);
|
||||||
|
ps.setInt(index++, tenantId);
|
||||||
|
ps.setInt(index++, offsetValue);
|
||||||
|
ps.setInt(index, limitValue);
|
||||||
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
while (rs.next()) {
|
||||||
|
subscribedGroups.add(rs.getString("GROUPS"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return subscribedGroups;
|
||||||
|
}
|
||||||
|
} catch (DBConnectionException e) {
|
||||||
|
String msg = "Error occurred while obtaining the DB connection to get already " +
|
||||||
|
"subscribed groups for given app release id.";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "SQL Error occurred while getting subscribed groups for given " +
|
||||||
|
"app release id.";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -63,7 +63,6 @@ import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
|
|||||||
import org.wso2.carbon.device.mgt.core.service.GroupManagementProviderService;
|
import org.wso2.carbon.device.mgt.core.service.GroupManagementProviderService;
|
||||||
import org.wso2.carbon.device.mgt.core.util.MDMAndroidOperationUtil;
|
import org.wso2.carbon.device.mgt.core.util.MDMAndroidOperationUtil;
|
||||||
import org.wso2.carbon.device.mgt.core.util.MDMIOSOperationUtil;
|
import org.wso2.carbon.device.mgt.core.util.MDMIOSOperationUtil;
|
||||||
import org.wso2.carbon.device.mgt.common.PaginationRequest;
|
|
||||||
import org.wso2.carbon.device.mgt.common.PaginationResult;
|
import org.wso2.carbon.device.mgt.common.PaginationResult;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -610,4 +609,53 @@ public class SubscriptionManagerImpl implements SubscriptionManager {
|
|||||||
ConnectionManagerUtil.closeDBConnection();
|
ConnectionManagerUtil.closeDBConnection();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PaginationResult getAppInstalledCategories(int offsetValue, int limitValue,
|
||||||
|
String appUUID, String subType)
|
||||||
|
throws ApplicationManagementException {
|
||||||
|
|
||||||
|
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true);
|
||||||
|
PaginationResult paginationResult = new PaginationResult();
|
||||||
|
try {
|
||||||
|
ConnectionManagerUtil.openDBConnection();
|
||||||
|
|
||||||
|
ApplicationDTO applicationDTO = this.applicationDAO
|
||||||
|
.getAppWithRelatedRelease(appUUID, tenantId);
|
||||||
|
int applicationReleaseId = applicationDTO.getApplicationReleaseDTOs().get(0).getId();
|
||||||
|
|
||||||
|
int count=0;
|
||||||
|
List<String> SubscriptionList = new ArrayList<>();
|
||||||
|
|
||||||
|
if(SubsciptionType.USER.toString().equalsIgnoreCase(subType)){
|
||||||
|
SubscriptionList = subscriptionDAO
|
||||||
|
.getAppSubscribedUsers(offsetValue, limitValue, applicationReleaseId, tenantId);
|
||||||
|
}else if(SubsciptionType.ROLE.toString().equalsIgnoreCase(subType)){
|
||||||
|
SubscriptionList = subscriptionDAO
|
||||||
|
.getAppSubscribedRoles(offsetValue, limitValue, applicationReleaseId, tenantId);
|
||||||
|
}else if(SubsciptionType.GROUP.toString().equalsIgnoreCase(subType)) {
|
||||||
|
SubscriptionList = subscriptionDAO
|
||||||
|
.getAppSubscribedGroups(offsetValue, limitValue, applicationReleaseId, tenantId);
|
||||||
|
}
|
||||||
|
count = SubscriptionList.size();
|
||||||
|
paginationResult.setData(SubscriptionList);
|
||||||
|
paginationResult.setRecordsFiltered(count);
|
||||||
|
paginationResult.setRecordsTotal(count);
|
||||||
|
|
||||||
|
return paginationResult;
|
||||||
|
|
||||||
|
} catch (ApplicationManagementDAOException e) {
|
||||||
|
ConnectionManagerUtil.rollbackDBTransaction();
|
||||||
|
String msg = "Error occurred when get application release data for application" +
|
||||||
|
" release UUID: " + appUUID;
|
||||||
|
throw new ApplicationManagementException(msg, e);
|
||||||
|
} catch (DBConnectionException e) {
|
||||||
|
String msg = "DB Connection error occurred while getting category details that " +
|
||||||
|
"given application id";
|
||||||
|
log.error(msg);
|
||||||
|
throw new ApplicationManagementException(msg, e);
|
||||||
|
} finally {
|
||||||
|
ConnectionManagerUtil.closeDBConnection();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -228,4 +228,70 @@ public interface SubscriptionManagementAPI {
|
|||||||
value = "Provide the device status details, such as active or inactive.")
|
value = "Provide the device status details, such as active or inactive.")
|
||||||
@QueryParam("status") String status
|
@QueryParam("status") String status
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@GET
|
||||||
|
@Path("/{uuid}/{subType}")
|
||||||
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
|
@ApiOperation(
|
||||||
|
consumes = MediaType.APPLICATION_JSON,
|
||||||
|
produces = MediaType.APPLICATION_JSON,
|
||||||
|
httpMethod = "GET",
|
||||||
|
value = "Get device details that have a given application install",
|
||||||
|
notes = "This will get the device details that have a given application install, if exists",
|
||||||
|
tags = "Subscription Management",
|
||||||
|
extensions = {
|
||||||
|
@Extension(properties = {
|
||||||
|
@ExtensionProperty(name = SCOPE, value = "perm:app:subscription:uninstall")
|
||||||
|
})
|
||||||
|
}
|
||||||
|
)
|
||||||
|
@ApiResponses(
|
||||||
|
value = {
|
||||||
|
@ApiResponse(
|
||||||
|
code = 200,
|
||||||
|
message = "OK. \n Successfully retrieved device details.",
|
||||||
|
response = List.class,
|
||||||
|
responseContainer = "List"),
|
||||||
|
@ApiResponse(
|
||||||
|
code = 404,
|
||||||
|
message = "Not Found. \n No Application found which has application " +
|
||||||
|
"release of UUID.",
|
||||||
|
response = ErrorResponse.class),
|
||||||
|
@ApiResponse(
|
||||||
|
code = 400,
|
||||||
|
message = "Bad Request. \n Found invalid payload with the request.",
|
||||||
|
response = List.class),
|
||||||
|
@ApiResponse(
|
||||||
|
code = 403,
|
||||||
|
message = "Forbidden. \n Don't have permission to get the details.",
|
||||||
|
response = List.class),
|
||||||
|
@ApiResponse(
|
||||||
|
code = 500,
|
||||||
|
message = "Internal Server Error. \n Error occurred while getting data",
|
||||||
|
response = ErrorResponse.class)
|
||||||
|
})
|
||||||
|
Response getAppInstalledCategories(
|
||||||
|
@ApiParam(
|
||||||
|
name="uuid",
|
||||||
|
value="uuid of the application release.",
|
||||||
|
required = true)
|
||||||
|
@PathParam("uuid") String uuid,
|
||||||
|
@ApiParam(
|
||||||
|
name="subType",
|
||||||
|
value="Subscription type of the application release.",
|
||||||
|
required = true)
|
||||||
|
@PathParam("subType") String subType,
|
||||||
|
@ApiParam(
|
||||||
|
name = "offset",
|
||||||
|
value = "The starting pagination index for the complete list of qualified items.",
|
||||||
|
defaultValue = "0")
|
||||||
|
@QueryParam("offset") int offset,
|
||||||
|
@ApiParam(
|
||||||
|
name = "limit",
|
||||||
|
value = "Provide how many device details you require from the starting " +
|
||||||
|
"pagination index/offset.",
|
||||||
|
defaultValue = "5")
|
||||||
|
@QueryParam("limit") int limit
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,15 +17,16 @@
|
|||||||
*/
|
*/
|
||||||
package org.wso2.carbon.device.application.mgt.store.api.services.impl;
|
package org.wso2.carbon.device.application.mgt.store.api.services.impl;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.wso2.carbon.device.application.mgt.common.ApplicationInstallResponse;
|
import org.wso2.carbon.device.application.mgt.common.ApplicationInstallResponse;
|
||||||
import org.wso2.carbon.device.application.mgt.common.DeviceList;
|
import org.wso2.carbon.device.application.mgt.common.DeviceList;
|
||||||
|
import org.wso2.carbon.device.application.mgt.common.BasicUserInfo;
|
||||||
|
import org.wso2.carbon.device.application.mgt.common.BasicUserInfoList;
|
||||||
|
import org.wso2.carbon.device.application.mgt.common.RoleList;
|
||||||
|
import org.wso2.carbon.device.application.mgt.common.DeviceGroupList;
|
||||||
import org.wso2.carbon.device.mgt.common.PaginationResult;
|
import org.wso2.carbon.device.mgt.common.PaginationResult;
|
||||||
import org.wso2.carbon.device.application.mgt.common.SubsciptionType;
|
import org.wso2.carbon.device.application.mgt.common.SubsciptionType;
|
||||||
import org.wso2.carbon.device.application.mgt.common.response.Application;
|
|
||||||
import org.wso2.carbon.device.application.mgt.common.services.ApplicationManager;
|
|
||||||
import org.wso2.carbon.device.application.mgt.core.exception.BadRequestException;
|
import org.wso2.carbon.device.application.mgt.core.exception.BadRequestException;
|
||||||
import org.wso2.carbon.device.application.mgt.core.exception.ForbiddenException;
|
import org.wso2.carbon.device.application.mgt.core.exception.ForbiddenException;
|
||||||
import org.wso2.carbon.device.application.mgt.core.exception.NotFoundException;
|
import org.wso2.carbon.device.application.mgt.core.exception.NotFoundException;
|
||||||
@ -165,4 +166,70 @@ public class SubscriptionManagementAPIImpl implements SubscriptionManagementAPI{
|
|||||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
|
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GET
|
||||||
|
@Consumes("application/json")
|
||||||
|
@Produces("application/json")
|
||||||
|
@Path("/{uuid}/{subType}")
|
||||||
|
public Response getAppInstalledCategories(@PathParam("uuid") String uuid,
|
||||||
|
@PathParam("subType") String subType,
|
||||||
|
@DefaultValue("0")
|
||||||
|
@QueryParam("offset") int offset,
|
||||||
|
@DefaultValue("5")
|
||||||
|
@QueryParam("limit") int limit) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
SubscriptionManager subscriptionManager = APIUtil.getSubscriptionManager();
|
||||||
|
|
||||||
|
PaginationResult subscribedCategoryDetails = subscriptionManager
|
||||||
|
.getAppInstalledCategories(offset, limit, uuid, subType);
|
||||||
|
|
||||||
|
if(SubsciptionType.USER.toString().equalsIgnoreCase(subType)){
|
||||||
|
BasicUserInfoList users = new BasicUserInfoList();
|
||||||
|
|
||||||
|
users.setList((List<BasicUserInfo>) subscribedCategoryDetails.getData());
|
||||||
|
users.setCount(subscribedCategoryDetails.getRecordsTotal());
|
||||||
|
|
||||||
|
return Response.status(Response.Status.OK).entity(users).build();
|
||||||
|
}else if(SubsciptionType.ROLE.toString().equalsIgnoreCase(subType)){
|
||||||
|
RoleList roles = new RoleList();
|
||||||
|
|
||||||
|
roles.setList(subscribedCategoryDetails.getData());
|
||||||
|
roles.setCount(subscribedCategoryDetails.getRecordsTotal());
|
||||||
|
|
||||||
|
return Response.status(Response.Status.OK).entity(roles).build();
|
||||||
|
}else if(SubsciptionType.GROUP.toString().equalsIgnoreCase(subType)){
|
||||||
|
DeviceGroupList groups = new DeviceGroupList();
|
||||||
|
|
||||||
|
groups.setList(subscribedCategoryDetails.getData());
|
||||||
|
groups.setCount(subscribedCategoryDetails.getRecordsTotal());
|
||||||
|
|
||||||
|
return Response.status(Response.Status.OK).entity(groups).build();
|
||||||
|
}else{
|
||||||
|
String msg = "Found invalid sub type ";
|
||||||
|
log.error(msg);
|
||||||
|
return Response.status(Response.Status.NOT_FOUND).entity(msg).build();
|
||||||
|
}
|
||||||
|
} catch (NotFoundException e) {
|
||||||
|
String msg = "Application with application release UUID: " + uuid + " is not found";
|
||||||
|
log.error(msg, e);
|
||||||
|
return Response.status(Response.Status.NOT_FOUND).entity(msg).build();
|
||||||
|
} catch (BadRequestException e) {
|
||||||
|
String msg = "Found invalid payload for getting application which has UUID: " + uuid
|
||||||
|
+ ". Hence verify the payload";
|
||||||
|
log.error(msg, e);
|
||||||
|
return Response.status(Response.Status.BAD_REQUEST).entity(msg).build();
|
||||||
|
} catch (ForbiddenException e) {
|
||||||
|
String msg = "Application release is not in the installable state."
|
||||||
|
+ "Hence you are not permitted to get the devices details.";
|
||||||
|
log.error(msg, e);
|
||||||
|
return Response.status(Response.Status.FORBIDDEN).entity(msg).build();
|
||||||
|
} catch (ApplicationManagementException e) {
|
||||||
|
String msg = "Error occurred while getting application with the application " +
|
||||||
|
"release uuid: " + uuid;
|
||||||
|
log.error(msg, e);
|
||||||
|
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user