Commit e850e2b0 authored by Leonardo Menezes's avatar Leonardo Menezes
Browse files

change base controller execute method from template method to method accepting function

parent 27857196
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -11,16 +11,18 @@ import scala.util.control.NonFatal

trait BaseController extends Controller {

  val client: ElasticClient = ElasticClient

  protected val logger = Logger("elastic")

  final def execute = Action.async(parse.json) { request =>
  type RequestProcessor = (CerebroRequest, ElasticClient) => Future[Result]

  final def process(processor: RequestProcessor) = Action.async(parse.json) { request =>
    try {
      processRequest(CerebroRequest(request.body), ElasticClient)
      processor(CerebroRequest(request.body), client)
    } catch {
      case NonFatal(e) => Future.successful(Status(500)(Json.obj("error" -> "Error"))) // FIXME: proper error handling
    }
  }

  def processRequest: (CerebroRequest, ElasticClient) => Future[Result]

}
+15 −18
Original line number Diff line number Diff line
@@ -8,8 +8,7 @@ import scala.concurrent.Future

class ClusterOverviewController extends BaseController {

  def processRequest = {
    (request, client) => {
  def execute = process { (request, client) =>
    Future.sequence(
      Seq(
        client.clusterState(ElasticServer(request.host, request.authentication)),
@@ -27,5 +26,3 @@ class ClusterOverviewController extends BaseController {
  }

}

}
+1 −1
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ import scala.concurrent.ExecutionContext.Implicits.global

class CreateIndexController extends BaseController {

  def processRequest = (request, client) => {
  def execute = process { (request, client) =>
    client.createIndex(request.get("index"), request.getOpt("metadata").getOrElse(Json.obj()), ElasticServer(request.host, request.authentication)).map { response =>
      Status(response.status)(response.body)
    }
+4 −2
Original line number Diff line number Diff line
@@ -8,9 +8,11 @@ import scala.concurrent.Future

trait ElasticActionController extends BaseController {

  final def processRequest = (request, client) => processElasticRequest(request, client).map {
  final def execute = process { (request, client) =>
    processElasticRequest(request, client).map {
      response => Status(response.status)(response.body)
    }
  }

  def processElasticRequest: (CerebroRequest, ElasticClient) => Future[ElasticResponse]

+1 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ import scala.concurrent.ExecutionContext.Implicits.global

class GetAliasesController extends BaseController {

  def processRequest = (request, client) => {
  def execute = process { (request, client) =>
    client.getAliases(ElasticServer(request.host, request.authentication)).map { aliases =>
      Status(aliases.status)(Aliases(aliases.body))
    }
Loading