@Path("summary") @GET @Produces(MediaType.APPLICATION_JSON) public RatingSummaryEntity getSummaryByApi(@PathParam("api") String api) { final ApiEntity apiEntity = apiService.findById(api); if (PUBLIC.equals(apiEntity.getVisibility()) || hasPermission(RolePermission.API_RATING, api, RolePermissionAction.READ)) { return ratingService.findSummaryByApi(api); } else { throw new UnauthorizedAccessException(); } }
@Override public Set<ApiEntity> findByVisibility(io.gravitee.management.model.Visibility visibility) { try { LOGGER.debug("Find APIs by visibility {}", visibility); return convert(apiRepository.search(new ApiCriteria.Builder().visibility(Visibility.valueOf(visibility.name())).build())); } catch (TechnicalException ex) { LOGGER.error("An error occurs while trying to find all APIs", ex); throw new TechnicalManagementException("An error occurs while trying to find all APIs", ex); } }
@Override public List<ApiEntity> getApis(String groupId) { return apiRepository.search( new ApiCriteria.Builder().groups(groupId).build(), new ApiFieldExclusionFilter.Builder().excludeDefinition().excludePicture().build()) .stream() .map( api -> { ApiEntity apiEntity = new ApiEntity(); apiEntity.setId(api.getId()); apiEntity.setName(api.getName()); apiEntity.setVersion(api.getVersion()); apiEntity.setVisibility(Visibility.valueOf(api.getVisibility().name())); return apiEntity; }) .collect(Collectors.toList()); }
api.setVisibility(Visibility.valueOf(updateApiEntity.getVisibility().toString()));
@Override public List<ApiEntity> getApis(String groupId) { return apiRepository.search( new ApiCriteria.Builder().groups(groupId).build(), new ApiFieldExclusionFilter.Builder().excludeDefinition().excludePicture().build()) .stream() .map( api -> { ApiEntity apiEntity = new ApiEntity(); apiEntity.setId(api.getId()); apiEntity.setName(api.getName()); apiEntity.setVersion(api.getVersion()); apiEntity.setVisibility(Visibility.valueOf(api.getVisibility().name())); return apiEntity; }) .collect(Collectors.toList()); }
api.setVisibility(Visibility.valueOf(updateApiEntity.getVisibility().toString()));
@Path("summary") @GET @Produces(MediaType.APPLICATION_JSON) public RatingSummaryEntity getSummaryByApi(@PathParam("api") String api) { final ApiEntity apiEntity = apiService.findById(api); if (PUBLIC.equals(apiEntity.getVisibility()) || hasPermission(RolePermission.API_RATING, api, RolePermissionAction.READ)) { return ratingService.findSummaryByApi(api); } else { throw new UnauthorizedAccessException(); } }
apiEntity.setVisibility(io.gravitee.management.model.Visibility.valueOf(api.getVisibility().toString()));
repoApi.setVisibility(Visibility.PRIVATE); } else { repoApi.setVisibility(Visibility.valueOf(api.getVisibility().toString()));
@Override public Set<ApiEntity> findByVisibility(io.gravitee.management.model.Visibility visibility) { try { LOGGER.debug("Find APIs by visibility {}", visibility); return convert(apiRepository.search(new ApiCriteria.Builder().visibility(Visibility.valueOf(visibility.name())).build())); } catch (TechnicalException ex) { LOGGER.error("An error occurs while trying to find all APIs", ex); throw new TechnicalManagementException("An error occurs while trying to find all APIs", ex); } }
@GET @Path("/{plan}") @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "Get a plan", notes = "User must have the READ permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "Plan information", response = PlanEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) public Response getPlan( @PathParam("api") String api, @PathParam("plan") String plan) { if (Visibility.PUBLIC.equals(apiService.findById(api).getVisibility()) || hasPermission(API_PLAN, api, READ)) { PlanEntity planEntity = planService.findById(plan); if (!planEntity.getApis().contains(api)) { return Response .status(Response.Status.BAD_REQUEST) .entity("'plan' parameter does not correspond to the current API") .build(); } return Response.ok(planEntity).build(); } throw new ForbiddenAccessException(); }
apiEntity.setVisibility(io.gravitee.management.model.Visibility.valueOf(api.getVisibility().toString()));
repoApi.setVisibility(Visibility.PRIVATE); } else { repoApi.setVisibility(Visibility.valueOf(api.getVisibility().toString()));
private ApiCriteria.Builder queryToCriteria(ApiQuery query) { final ApiCriteria.Builder builder = new ApiCriteria.Builder(); if (query == null) { return builder; } builder.label(query.getLabel()) .name(query.getName()) .version(query.getVersion()) .view(query.getView()); if (query.getGroups() != null && !query.getGroups().isEmpty()) { builder.groups(query.getGroups().toArray(new String[0])); } if (!isBlank(query.getState())) { builder.state(LifecycleState.valueOf(query.getState())); } if (query.getVisibility() != null) { builder.visibility(Visibility.valueOf(query.getVisibility().name())); } return builder; }
@GET @Path("/{plan}") @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "Get a plan", notes = "User must have the READ permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "Plan information", response = PlanEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) public Response getPlan( @PathParam("api") String api, @PathParam("plan") String plan) { if (Visibility.PUBLIC.equals(apiService.findById(api).getVisibility()) || hasPermission(API_PLAN, api, READ)) { PlanEntity planEntity = planService.findById(plan); if (!planEntity.getApis().contains(api)) { return Response .status(Response.Status.BAD_REQUEST) .entity("'plan' parameter does not correspond to the current API") .build(); } return Response.ok(planEntity).build(); } throw new ForbiddenAccessException(); }
apiEntity.setVisibility(io.gravitee.management.model.Visibility.valueOf(api.getVisibility().toString()));