@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(); }
@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(); }