Example #1
0
  @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();
  }