Loading app/controllers/AliasesController.scala +5 −3 Original line number Diff line number Diff line Loading @@ -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) Loading app/controllers/AnalysisController.scala +9 −7 Original line number Diff line number Diff line Loading @@ -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") Loading @@ -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") Loading app/controllers/BaseController.scala +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 Loading @@ -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 Loading app/controllers/CatController.scala +4 −2 Original line number Diff line number Diff line Loading @@ -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) Loading app/controllers/ClusterChangesController.scala +5 −3 Original line number Diff line number Diff line Loading @@ -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 Loading
app/controllers/AliasesController.scala +5 −3 Original line number Diff line number Diff line Loading @@ -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) Loading
app/controllers/AnalysisController.scala +9 −7 Original line number Diff line number Diff line Loading @@ -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") Loading @@ -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") Loading
app/controllers/BaseController.scala +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 Loading @@ -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 Loading
app/controllers/CatController.scala +4 −2 Original line number Diff line number Diff line Loading @@ -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) Loading
app/controllers/ClusterChangesController.scala +5 −3 Original line number Diff line number Diff line Loading @@ -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