@GET @Path("feature-non-compliant-devices-over-total") public Response getFeatureNonCompliantDeviceCountOverTotal( @QueryParam("non-compliant-feature") String nonCompliantFeature, @QueryParam("platform") String platform, @QueryParam("ownership") String ownership) { if (nonCompliantFeature == null) { Message message = new Message(); message.setErrorMessage("Missing required query parameters."); message.setDescription("non-compliant-feature query parameter value is required."); return Response.status(HttpStatus.SC_BAD_REQUEST).entity(message).build(); } Map<String, Object> filters = new LinkedHashMap<>(); Message message = new Message(); if (platform != null) { if ("android".equals(platform) || "ios".equals(platform) || "windows".equals(platform)) { filters.put("PLATFORM", platform); } else { message.setErrorMessage("Invalid value for platform query parameter."); message.setDescription( "platform query parameter value could only be either android, ios or windows."); return Response.status(HttpStatus.SC_BAD_REQUEST).entity(message).build(); } } if (ownership != null) { if ("BYOD".equals(ownership) || "COPE".equals(ownership)) { filters.put("OWNERSHIP", ownership); } else { message.setErrorMessage("Invalid value for ownership query parameter."); message.setDescription( "ownership query parameter value could only be either BYOD or COPE."); return Response.status(HttpStatus.SC_BAD_REQUEST).entity(message).build(); } } GadgetDataService gadgetDataService = MDMAPIUtils.getGadgetDataService(); DashboardGadgetDataWrapper dashboardGadgetDataWrapper = new DashboardGadgetDataWrapper(); // creating featureNonCompliantDeviceCount Data Wrapper int featureNonCompliantDeviceCount = gadgetDataService.getFeatureNonCompliantDeviceCount(nonCompliantFeature, filters); if (featureNonCompliantDeviceCount == -1) { return Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR).build(); } Map<String, Object> featureNonCompliantDeviceCountDataWrapper = new LinkedHashMap<>(); featureNonCompliantDeviceCountDataWrapper.put("group", "filtered"); featureNonCompliantDeviceCountDataWrapper.put("label", "filtered"); featureNonCompliantDeviceCountDataWrapper.put("count", featureNonCompliantDeviceCount); // creating TotalDeviceCount Data Wrapper int totalDeviceCount = gadgetDataService.getTotalDeviceCount(); if (totalDeviceCount == -1) { return Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR).build(); } Map<String, Object> totalDeviceCountDataWrapper = new LinkedHashMap<>(); totalDeviceCountDataWrapper.put("group", "total"); totalDeviceCountDataWrapper.put("label", "Total"); totalDeviceCountDataWrapper.put("count", totalDeviceCount); List<Map<String, Object>> featureNonCompliantDeviceCountOverTotalDataWrapper = new ArrayList<>(); featureNonCompliantDeviceCountOverTotalDataWrapper.add( featureNonCompliantDeviceCountDataWrapper); featureNonCompliantDeviceCountOverTotalDataWrapper.add(totalDeviceCountDataWrapper); dashboardGadgetDataWrapper.setContext("feature-non-compliant-device-count-over-total"); dashboardGadgetDataWrapper.setData(featureNonCompliantDeviceCountOverTotalDataWrapper); List<DashboardGadgetDataWrapper> responsePayload = new ArrayList<>(); responsePayload.add(dashboardGadgetDataWrapper); return Response.status(HttpStatus.SC_OK).entity(responsePayload).build(); }