use of io.gravitee.rest.api.portal.rest.security.RequirePortalAuth in project gravitee-management-rest-api by gravitee-io.
the class CategoryResource method picture.
@GET
@Path("picture")
@RequirePortalAuth
public Response picture(@Context Request request, @PathParam("categoryId") String categoryId) {
categoryService.findNotHiddenById(categoryId);
InlinePictureEntity image = categoryService.getPicture(categoryId);
return createPictureResponse(request, image);
}
use of io.gravitee.rest.api.portal.rest.security.RequirePortalAuth in project gravitee-management-rest-api by gravitee-io.
the class CategoryResource method get.
@GET
@Produces(APPLICATION_JSON)
@RequirePortalAuth
public Response get(@PathParam("categoryId") String categoryId) {
CategoryEntity category = categoryService.findNotHiddenById(categoryId);
// FIXME: retrieve all the apis of the user can be heavy because it involves a lot of data fetching. Find a way to just retrieve only necessary data.
Set<ApiEntity> apis = apiService.findPublishedByUser(getAuthenticatedUserOrNull());
category.setTotalApis(categoryService.getTotalApisByCategory(apis, category));
return Response.ok(categoryMapper.convert(category, uriInfo.getBaseUriBuilder())).build();
}
use of io.gravitee.rest.api.portal.rest.security.RequirePortalAuth in project gravitee-management-rest-api by gravitee-io.
the class ApiInformationsResource method getApiInformations.
@GET
@Produces({ MediaType.APPLICATION_JSON })
@RequirePortalAuth
public Response getApiInformations(@Context Request request, @PathParam("apiId") String apiId) {
final ApiQuery apiQuery = new ApiQuery();
apiQuery.setIds(Collections.singletonList(apiId));
Collection<ApiEntity> userApis = apiService.findPublishedByUser(getAuthenticatedUserOrNull(), apiQuery);
if (userApis.stream().anyMatch(a -> a.getId().equals(apiId))) {
List<ApiHeaderEntity> all = apiService.getPortalHeaders(apiId);
List<ApiInformation> information = all.stream().map(apiHeaderEntity -> {
ApiInformation ai = new ApiInformation();
ai.setName(apiHeaderEntity.getName());
ai.setValue(apiHeaderEntity.getValue());
return ai;
}).collect(Collectors.toList());
return Response.ok(information).build();
}
throw new ApiNotFoundException(apiId);
}
use of io.gravitee.rest.api.portal.rest.security.RequirePortalAuth in project gravitee-management-rest-api by gravitee-io.
the class ApiMetricsResource method getApiMetricsByApiId.
@GET
@Produces({ MediaType.APPLICATION_JSON })
@RequirePortalAuth
public Response getApiMetricsByApiId(@Context Request request, @PathParam("apiId") String apiId) {
final ApiQuery apiQuery = new ApiQuery();
apiQuery.setIds(Collections.singletonList(apiId));
Collection<ApiEntity> userApis = apiService.findPublishedByUser(getAuthenticatedUserOrNull(), apiQuery);
if (userApis.stream().anyMatch(a -> a.getId().equals(apiId))) {
Number healthRatio = getHealthRatio(apiId);
Number nbHits = getNbHits(apiId);
Number subscribers = getApiNbSubscribers(apiId);
ApiMetrics metrics = new ApiMetrics();
metrics.setHealth(healthRatio);
metrics.setHits(nbHits);
metrics.setSubscribers(subscribers);
return Response.ok(metrics).build();
}
throw new ApiNotFoundException(apiId);
}
use of io.gravitee.rest.api.portal.rest.security.RequirePortalAuth in project gravitee-management-rest-api by gravitee-io.
the class ApiPageResource method getPageByApiIdAndPageId.
@GET
@Produces(MediaType.APPLICATION_JSON)
@RequirePortalAuth
public Response getPageByApiIdAndPageId(@HeaderParam("Accept-Language") String acceptLang, @PathParam("apiId") String apiId, @PathParam("pageId") String pageId, @QueryParam("include") List<String> include) {
final ApiQuery apiQuery = new ApiQuery();
apiQuery.setIds(Collections.singletonList(apiId));
if (accessControlService.canAccessApiFromPortal(apiId)) {
final String acceptedLocale = HttpHeadersUtil.getFirstAcceptedLocaleName(acceptLang);
PageEntity pageEntity = pageService.findById(pageId, acceptedLocale);
if (accessControlService.canAccessPageFromPortal(apiId, pageEntity)) {
pageService.transformSwagger(pageEntity, apiId);
if (!isAuthenticated() && pageEntity.getMetadata() != null) {
pageEntity.getMetadata().clear();
}
Page page = pageMapper.convert(uriInfo.getBaseUriBuilder(), apiId, pageEntity);
if (include.contains(INCLUDE_CONTENT)) {
page.setContent(pageEntity.getContent());
}
page.setLinks(pageMapper.computePageLinks(PortalApiLinkHelper.apiPagesURL(uriInfo.getBaseUriBuilder(), apiId, pageId), PortalApiLinkHelper.apiPagesURL(uriInfo.getBaseUriBuilder(), apiId, page.getParent())));
return Response.ok(page).build();
} else {
throw new UnauthorizedAccessException();
}
}
throw new ApiNotFoundException(apiId);
}
Aggregations