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)
}
}
}