예제 #1
0
  @WebMethod
  @GET
  @Produces("application/json")
  @Path("/reports")
  public Response getReports(
      @QueryParam("aggregatorId") String aggregatorId,
      @QueryParam("providerId") String providerId,
      @QueryParam("productClass") String productClass)
      throws Exception {

    // Check basic permissions
    RSUser user = this.userManager.getCurrentUser();
    String effectiveAggregator;

    if (userManager.isAdmin()) {
      effectiveAggregator = aggregatorId;
    } else if (null == aggregatorId || aggregatorId.equals(user.getEmail())) {
      effectiveAggregator = user.getEmail();
    } else {
      String[] args = {"You are not allowed to retrieve report files for the given parameters"};
      throw new RSSException(UNICAExceptionType.NON_ALLOWED_OPERATION, args);
    }

    List<RSSReport> files =
        settlementManager.getSharingReports(effectiveAggregator, providerId, productClass);
    Response.ResponseBuilder rb = Response.status(Response.Status.OK.getStatusCode());
    rb.entity(files);
    return rb.build();
  }
예제 #2
0
  @WebMethod
  @GET
  public Response launchSettlement(
      @QueryParam("aggregatorId") String aggregatorId,
      @QueryParam("providerId") String providerId,
      @QueryParam("productClass") String productClass)
      throws Exception {

    // Check basic permissions
    RSUser user = this.userManager.getCurrentUser();
    if (!this.userManager.isAdmin()
        && (aggregatorId == null || !user.getEmail().equalsIgnoreCase(aggregatorId))) {

      String[] args = {
        "You are not allowed to launch the settlement process for the given parameters"
      };
      throw new RSSException(UNICAExceptionType.NON_ALLOWED_OPERATION, args);
    }

    // Launch process
    settlementManager.runSettlement(aggregatorId, providerId, productClass);
    Response.ResponseBuilder rb = Response.status(Response.Status.ACCEPTED.getStatusCode());
    return rb.build();
  }