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

render http status/body all in the response body

parent f1939717
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ import javax.inject.Inject

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

import scala.concurrent.ExecutionContext.Implicits.global
@@ -14,14 +14,14 @@ class AliasesController @Inject()(val authentication: AuthenticationModule,

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

  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)
      CerebroResponse(aliases.status, aliases.body)
    }
  }

+6 −6
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ import javax.inject.Inject

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

import scala.concurrent.ExecutionContext.Implicits.global
@@ -14,21 +14,21 @@ class AnalysisController @Inject()(val authentication: AuthenticationModule,

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

  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))
      CerebroResponse(response.status, IndexAnalyzers(index, response.body))
    }
  }

  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))
      CerebroResponse(response.status, IndexFields(index, response.body))
    }
  }

@@ -37,7 +37,7 @@ class AnalysisController @Inject()(val authentication: AuthenticationModule,
    val field = request.get("field")
    val text = request.get("text")
    client.analyzeTextByField(index, field, text, ElasticServer(request.host, request.authentication)).map { response =>
      Status(response.status)(Tokens(response.body))
      CerebroResponse(response.status, Tokens(response.body))
    }
  }

@@ -46,7 +46,7 @@ class AnalysisController @Inject()(val authentication: AuthenticationModule,
    val analyzer = request.get("analyzer")
    val text = request.get("text")
    client.analyzeTextByAnalyzer(index, analyzer, text, ElasticServer(request.host, request.authentication)).map { response =>
      Status(response.status)(Tokens(response.body))
      CerebroResponse(response.status, Tokens(response.body))
    }
  }

+1 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ import play.api.mvc.Controller

class Application @Inject()(val authentication: AuthenticationModule) extends Controller with AuthSupport {

  def index = AuthAction(authentication) { request =>
  def index = AuthAction(authentication, true) { request =>
    Ok(views.html.Index())
  }
  
+2 −2
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@ import play.api.mvc.Controller

trait AuthSupport { self: Controller =>

  def AuthAction(authentication: AuthenticationModule): AuthAction =
    new AuthAction(authentication)
  def AuthAction(authentication: AuthenticationModule, redirect: Boolean = false): AuthAction =
    new AuthAction(authentication, redirect)

}
 No newline at end of file
+3 −3
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@ package controllers

import controllers.auth.AuthenticationModule
import exceptions.MissingRequiredParamException
import models.CerebroRequest
import models.{CerebroRequest, CerebroResponse}
import play.api.Logger
import play.api.libs.json.Json
import play.api.mvc.{Controller, Result}
@@ -23,9 +23,9 @@ trait BaseController extends Controller with AuthSupport {
      processor(CerebroRequest(request.body))
    } catch {
      case e: MissingRequiredParamException =>
        Future.successful(Status(400)(Json.obj("error" -> e.getMessage))) // FIXME: proper error handling
        Future.successful(CerebroResponse(400, Json.obj("error" -> e.getMessage))) // FIXME: proper error handling
      case NonFatal(e) =>
        Future.successful(Status(500)(Json.obj("error" -> "Error"))) // FIXME: proper error handling
        Future.successful(CerebroResponse(500, Json.obj("error" -> "Error"))) // FIXME: proper error handling
    }
  }

Loading