use of io.gravitee.rest.api.service.exceptions.RatingAnswerNotFoundException in project gravitee-management-rest-api by gravitee-io.
the class ApiRatingAnswerResource method deleteApiRatingAnswer.
@DELETE
@Produces(MediaType.APPLICATION_JSON)
@Permissions({ @Permission(value = RolePermission.API_RATING_ANSWER, acls = RolePermissionAction.DELETE) })
public Response deleteApiRatingAnswer(@PathParam("apiId") String apiId, @PathParam("ratingId") String ratingId, @PathParam("answerId") String answerId) {
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))) {
RatingEntity ratingEntity = ratingService.findById(ratingId);
if (ratingEntity != null && ratingEntity.getApi().equals(apiId)) {
if (ratingEntity.getAnswers().stream().anyMatch(answer -> answer.getId().equals(answerId))) {
ratingService.deleteAnswer(ratingId, answerId);
return Response.status(Status.NO_CONTENT).build();
}
throw new RatingAnswerNotFoundException(answerId, ratingId, apiId);
}
throw new RatingNotFoundException(ratingId, apiId);
}
throw new ApiNotFoundException(apiId);
}
Aggregations