app/domain/image/search/ImageSearchService.scala (19 lines of code) (raw):
package domain.image.search
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.Future
import domain.externals.google.CustomSearchService
object ImageSearchService extends ImageSearchServiceTrait {
}
trait ImageSearchServiceTrait {
val client = CustomSearchService
def images(keyword: String): Future[Option[Seq[Image]]] = {
client.items(keyword).map {
case None => None
case Some(items) => Some{
items.map { item =>
Image(item.link, item.mime)
}
}
}
}
}