Example usage for org.json.simple JSONValue JSONValue

List of usage examples for org.json.simple JSONValue JSONValue

Introduction

In this page you can find the example usage for org.json.simple JSONValue JSONValue.

Prototype

JSONValue

Source Link

Usage

From source file:org.wso2.carbon.appmgt.services.api.v1.apps.mobile.MobileAppService.java

@POST
@Consumes("application/json")
@Path("unsubscribe/tenant/{tenantDomain}/{type}/{typeId}")
public List<MobileApp> unsubscribeResource(@Context final HttpServletResponse servletResponse,
        @PathParam("type") String type, @PathParam("typeId") String typeId,
        @PathParam("tenantDomain") String tenantDomain, @Context HttpHeaders headers, String appsJSONString) {

    String currentApp = null;/* w ww .  j a  v a2 s .co  m*/
    JSONArray appsIds = (JSONArray) new JSONValue().parse(appsJSONString);
    List<MobileApp> mobileApps = new ArrayList<MobileApp>();
    MobileApp mobileApp = null;

    try {

        Registry registry = doAuthorizeAndGetRegistry(tenantDomain, headers);
        int tenantId = ((UserRegistry) registry).getTenantId();

        GovernanceUtils.loadGovernanceArtifacts((UserRegistry) registry);
        GenericArtifactManager artifactManager = new GenericArtifactManager((UserRegistry) registry,
                "mobileapp");

        Iterator<String> iterator = appsIds.iterator();
        while (iterator.hasNext()) {

            String appId = iterator.next();
            currentApp = appId;

            GenericArtifact artifact = artifactManager.getGenericArtifact(appId);
            mobileApp = MobileAppDataLoader.load(new MobileApp(), artifact, tenantId, false);
            mobileApps.add(mobileApp);

            if (mobileApp != null) {
                if ("role".equals(type)) {
                    UserStoreManager userStoreManager = ((UserRegistry) registry).getUserRealm()
                            .getUserStoreManager();
                    String[] users = userStoreManager.getUserListOfRole(typeId);
                    for (String userId : users) {
                        unsubscribeApp(registry, userId, appId);
                        showAppVisibilityToUser(artifact.getPath(), userId, "DENY");
                    }
                } else if ("user".equals(type)) {
                    unsubscribeApp(registry, typeId, appId);
                    showAppVisibilityToUser(artifact.getPath(), typeId, "DENY");
                }
            }

        }

    } catch (GovernanceException e) {
        String errorMessage = "GovernanceException occurred";
        if (log.isDebugEnabled()) {
            log.error(errorMessage, e);
        } else {
            log.error(errorMessage);
        }
    } catch (UnauthorizedUserException e) {
        String errorMessage = "User is not authorized to access the API";
        if (log.isDebugEnabled()) {
            log.error(errorMessage, e);
        } else {
            log.error(errorMessage);
        }
        try {
            servletResponse.sendError(Response.Status.UNAUTHORIZED.getStatusCode());
        } catch (IOException e1) {
            errorMessage = "RegistryException occurred";
            if (log.isDebugEnabled()) {
                log.error(errorMessage, e1);
            } else {
                log.error(errorMessage);
            }
        }
    } catch (UserStoreException e) {
        String errorMessage = "UserStoreException occurred";
        if (log.isDebugEnabled()) {
            log.error(errorMessage, e);
        } else {
            log.error(errorMessage);
        }
    } catch (RegistryException e) {
        String errorMessage = "RegistryException occurred";
        if (log.isDebugEnabled()) {
            log.error(errorMessage, e);
        } else {
            log.error(errorMessage);
        }
    } catch (Exception e) {
        String errorMessage = String.format("Exception occurred while unsubscribe %s %s to app %", type, typeId,
                currentApp);
        if (log.isDebugEnabled()) {
            log.error(errorMessage, e);
        } else {
            log.error(errorMessage);
        }
        try {
            servletResponse.sendError(Response.Status.UNAUTHORIZED.getStatusCode());
        } catch (IOException e1) {
            errorMessage = "RegistryException occurred";
            if (log.isDebugEnabled()) {
                log.error(errorMessage, e1);
            } else {
                log.error(errorMessage);
            }
        }
    } finally {
        PrivilegedCarbonContext.endTenantFlow();
    }

    return mobileApps;

}