Search in sources :

Example 1 with ServiceResponse

use of org.ambraproject.rhino.rest.response.ServiceResponse in project rhino by PLOS.

the class CommentCrudServiceImpl method serveComments.

@Override
public ServiceResponse<List<CommentOutputView>> serveComments(ArticleIdentifier articleId) throws IOException {
    Article article = articleCrudService.readArticle(articleId);
    Collection<Comment> comments = fetchAllComments(article);
    CommentOutputView.Factory factory = new CommentOutputView.Factory(new CompetingInterestPolicy(runtimeConfiguration), comments, article);
    List<CommentOutputView> views = comments.stream().filter(comment -> comment.getParent() == null).sorted(CommentOutputView.BY_DATE).map(factory::buildView).collect(Collectors.toList());
    return ServiceResponse.serveView(views);
}
Also used : CompetingInterestPolicy(org.ambraproject.rhino.view.comment.CompetingInterestPolicy) Flag(org.ambraproject.rhino.model.Flag) ServiceResponse(org.ambraproject.rhino.rest.response.ServiceResponse) CommentCrudService(org.ambraproject.rhino.service.CommentCrudService) Article(org.ambraproject.rhino.model.Article) Journal(org.ambraproject.rhino.model.Journal) CacheableResponse(org.ambraproject.rhino.rest.response.CacheableResponse) CommentFlagInputView(org.ambraproject.rhino.view.comment.CommentFlagInputView) JournalCrudService(org.ambraproject.rhino.service.JournalCrudService) RestClientException(org.ambraproject.rhino.rest.RestClientException) Session(org.hibernate.Session) Autowired(org.springframework.beans.factory.annotation.Autowired) Strings(com.google.common.base.Strings) Matcher(java.util.regex.Matcher) ImmutableList(com.google.common.collect.ImmutableList) CommentNodeView(org.ambraproject.rhino.view.comment.CommentNodeView) CommentIdentifier(org.ambraproject.rhino.identity.CommentIdentifier) CommentFlagOutputView(org.ambraproject.rhino.view.comment.CommentFlagOutputView) CommentOutputView(org.ambraproject.rhino.view.comment.CommentOutputView) Query(org.hibernate.Query) Doi(org.ambraproject.rhino.identity.Doi) HibernateCallback(org.springframework.orm.hibernate3.HibernateCallback) CommentCountView(org.ambraproject.rhino.view.comment.CommentCountView) Collection(java.util.Collection) IOException(java.io.IOException) UUID(java.util.UUID) Collectors(java.util.stream.Collectors) ArticleIdentifier(org.ambraproject.rhino.identity.ArticleIdentifier) HttpStatus(org.springframework.http.HttpStatus) ArticleCrudService(org.ambraproject.rhino.service.ArticleCrudService) List(java.util.List) CommentInputView(org.ambraproject.rhino.view.comment.CommentInputView) LocalDate(java.time.LocalDate) Optional(java.util.Optional) Preconditions(com.google.common.base.Preconditions) FlagReasonCode(org.ambraproject.rhino.model.FlagReasonCode) Pattern(java.util.regex.Pattern) Comment(org.ambraproject.rhino.model.Comment) Comment(org.ambraproject.rhino.model.Comment) Article(org.ambraproject.rhino.model.Article) CommentOutputView(org.ambraproject.rhino.view.comment.CommentOutputView) CompetingInterestPolicy(org.ambraproject.rhino.view.comment.CompetingInterestPolicy)

Aggregations

Preconditions (com.google.common.base.Preconditions)1 Strings (com.google.common.base.Strings)1 ImmutableList (com.google.common.collect.ImmutableList)1 IOException (java.io.IOException)1 LocalDate (java.time.LocalDate)1 Collection (java.util.Collection)1 List (java.util.List)1 Optional (java.util.Optional)1 UUID (java.util.UUID)1 Matcher (java.util.regex.Matcher)1 Pattern (java.util.regex.Pattern)1 Collectors (java.util.stream.Collectors)1 ArticleIdentifier (org.ambraproject.rhino.identity.ArticleIdentifier)1 CommentIdentifier (org.ambraproject.rhino.identity.CommentIdentifier)1 Doi (org.ambraproject.rhino.identity.Doi)1 Article (org.ambraproject.rhino.model.Article)1 Comment (org.ambraproject.rhino.model.Comment)1 Flag (org.ambraproject.rhino.model.Flag)1 FlagReasonCode (org.ambraproject.rhino.model.FlagReasonCode)1 Journal (org.ambraproject.rhino.model.Journal)1