app/controllers/ImageSearchController.scala (21 lines of code) (raw):

package controllers import play.api.mvc._ import play.api.libs.json._ import play.api.libs.functional.syntax._ import scala.concurrent.ExecutionContext.Implicits.global import domain.image.search.ImageSearchService import domain.image.search._ /** 画像検索コントローラー */ class ImageSearchController extends BaseControllerTrait { implicit val imageWrites = ( (__ \ "url").write[String] and (__ \ "mime").write[String] )(unlift(Image.unapply)) /** キーワードを受け取り検索結果を返す */ def search(keyword: String) = Action.async { request => ImageSearchService.images(keyword).map { case None => CUSTOM_SEARCH_ERROR_RESPONSE case Some(images) => { Ok(Json.obj("images" -> Json.toJson(images))) } } } }