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

use DI ElasticClient on controllers

parent 6633841d
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -3,20 +3,22 @@ package controllers
import javax.inject.Inject

import controllers.auth.AuthenticationModule
import elastic.ElasticClient
import models.{Aliases, ElasticServer}
import play.api.libs.json.JsArray

import scala.concurrent.ExecutionContext.Implicits.global

class AliasesController @Inject()(val authentication: AuthenticationModule) extends BaseController {
class AliasesController @Inject()(val authentication: AuthenticationModule,
                                  client: ElasticClient) extends BaseController {

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

  def updateAliases = process { (request, client) =>
  def updateAliases = process { request =>
    val changes = request.getOptArray("changes").getOrElse(JsArray()).value
    client.updateAliases(changes, ElasticServer(request.host, request.authentication)).map { aliases =>
      Status(aliases.status)(aliases.body)
+9 −7
Original line number Diff line number Diff line
@@ -3,34 +3,36 @@ package controllers
import javax.inject.Inject

import controllers.auth.AuthenticationModule
import models.analysis.{IndexAnalyzers, IndexFields, OpenIndices, Tokens}
import elastic.ElasticClient
import models.ElasticServer
import models.analysis.{IndexAnalyzers, IndexFields, OpenIndices, Tokens}

import scala.concurrent.ExecutionContext.Implicits.global

class AnalysisController @Inject()(val authentication: AuthenticationModule) extends BaseController {
class AnalysisController @Inject()(val authentication: AuthenticationModule,
                                   client: ElasticClient) extends BaseController {

  def getIndices = process { (request, client) =>
  def getIndices = process { request =>
    client.getIndices(ElasticServer(request.host, request.authentication)).map { response =>
      Status(response.status)(OpenIndices(response.body))
    }
  }

  def getIndexAnalyzers = process { (request, client) =>
  def getIndexAnalyzers = process { request =>
    val index = request.get("index")
    client.getIndexSettings(index, ElasticServer(request.host, request.authentication)).map { response =>
       Status(response.status)(IndexAnalyzers(index, response.body))
    }
  }

  def getIndexFields = process { (request, client) =>
  def getIndexFields = process { request =>
    val index = request.get("index")
    client.getIndexMapping(index, ElasticServer(request.host, request.authentication)).map { response =>
      Status(response.status)(IndexFields(index, response.body))
    }
  }

  def analyzeByField = process { (request, client) =>
  def analyzeByField = process { request =>
    val index = request.get("index")
    val field = request.get("field")
    val text = request.get("text")
@@ -39,7 +41,7 @@ class AnalysisController @Inject()(val authentication: AuthenticationModule) ext
    }
  }

  def analyzeByAnalyzer = process { (request, client) =>
  def analyzeByAnalyzer = process { request =>
    val index = request.get("index")
    val analyzer = request.get("analyzer")
    val text = request.get("text")
+2 −5
Original line number Diff line number Diff line
package controllers

import controllers.auth.AuthenticationModule
import elastic.ElasticClient
import exceptions.MissingRequiredParamException
import models.CerebroRequest
import play.api.Logger
@@ -15,15 +14,13 @@ trait BaseController extends Controller with AuthSupport {

  val authentication: AuthenticationModule

  val client: ElasticClient = ElasticClient

  protected val logger = Logger("elastic")

  type RequestProcessor = (CerebroRequest, ElasticClient) => Future[Result]
  type RequestProcessor = (CerebroRequest) => Future[Result]

  final def process(processor: RequestProcessor) = AuthAction(authentication).async(parse.json) { request =>
    try {
      processor(CerebroRequest(request.body), client)
      processor(CerebroRequest(request.body))
    } catch {
      case e: MissingRequiredParamException =>
        Future.successful(Status(400)(Json.obj("error" -> e.getMessage))) // FIXME: proper error handling
+4 −2
Original line number Diff line number Diff line
@@ -3,13 +3,15 @@ package controllers
import javax.inject.Inject

import controllers.auth.AuthenticationModule
import elastic.ElasticClient
import models.ElasticServer

import scala.concurrent.ExecutionContext.Implicits.global

class CatController @Inject()(val authentication: AuthenticationModule) extends BaseController {
class CatController @Inject()(val authentication: AuthenticationModule,
                              client: ElasticClient) extends BaseController {

  def get = process { (request, client) =>
  def get = process { request =>
    val api = request.get("api")
    client.catRequest(api, ElasticServer(request.host, request.authentication)).map { response =>
      Status(response.status)(response.body)
+5 −3
Original line number Diff line number Diff line
@@ -3,16 +3,18 @@ package controllers
import javax.inject.Inject

import controllers.auth.AuthenticationModule
import elastic.ElasticClient
import models.ElasticServer
import models.commons.{Indices, Nodes}
import play.api.libs.json.Json

import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.Future

class ClusterChangesController @Inject()(val authentication: AuthenticationModule) extends BaseController {
class ClusterChangesController @Inject()(val authentication: AuthenticationModule,
                                         client: ElasticClient) extends BaseController {

  def get = process { (request, client) =>
  def get = process { request =>
    Future.sequence(Seq(
      client.getIndices(ElasticServer(request.host, request.authentication)),
      client.getNodes(ElasticServer(request.host, request.authentication)),
Loading