private def marshalTags()

in src/main/scala/datastore/ElasticsearchRepo.scala [273:289]


  private def marshalTags(response:Future[Response[SearchResponse]]):Future[Seq[Tag]] = {
    response flatMap { response=>
      if(response.isError) {
        logger.error(s"Could not make query for tags: ${response.error}")
        Future.failed(response.error.asException)
      } else {
        Future(response.result.hits.hits.map(hit=>
          for {
            rawResult <- RawResult(hit)
            marshalledResult <- rawResult.content.as[Tag]
          } yield marshalledResult
        ))
          .map(_.collect({case Right(tag)=>tag}))
          .map(_.toSeq)
      }
    }
  }