app/helpers/ESClientManager.scala (15 lines of code) (raw):
package helpers
import com.sksamuel.elastic4s.ElasticsearchClientUri
import javax.inject.{Inject, Singleton}
import play.api.Configuration
import com.sksamuel.elastic4s.http.{HttpClient, RequestFailure}
trait ESClientManager {
def getClient():HttpClient
}
@Singleton
class ESClientManagerImpl @Inject()(config:Configuration) extends ESClientManager {
val esHost:String = config.get[String]("elasticsearch.hostname")
val esPort:Int = config.get[Int]("elasticsearch.port")
val sslFlag:Boolean = config.getOptional[Boolean]("elasticsearch.ssl").getOrElse(false)
def getClient() = HttpClient(s"elasticsearch://$esHost:$esPort?ssl=$sslFlag")
}