All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sksamuel.elastic4s.SettingsDsl.scala Maven / Gradle / Ivy

There is a newer version: 6.0.0-rc1
Show newest version
package com.sksamuel.elastic4s

import org.elasticsearch.action.admin.indices.settings.get.{GetSettingsRequest, GetSettingsResponse}
import org.elasticsearch.action.admin.indices.settings.put.{UpdateSettingsResponse, UpdateSettingsRequest}
import org.elasticsearch.client.Client

import scala.concurrent.Future

trait SettingsDsl {

  implicit object GetSettingsDefinitionExecutable
    extends Executable[GetSettingsDefinition, GetSettingsResponse, GetSettingsResponse] {
    override def apply(c: Client, t: GetSettingsDefinition): Future[GetSettingsResponse] = {
      injectFuture(c.admin.indices.getSettings(t.build, _))
    }
  }

  implicit object UpdateSettingsDefinitionExecutable
    extends Executable[UpdateSettingsDefinition, UpdateSettingsResponse, UpdateSettingsResponse] {
    override def apply(c: Client, t: UpdateSettingsDefinition): Future[UpdateSettingsResponse] = {
      injectFuture(c.admin.indices.updateSettings(t.builder, _))
    }
  }
}

case class GetSettingsDefinition(indexes: Indexes) {
  def build: GetSettingsRequest = new GetSettingsRequest().indices(indexes.values: _*)
}

class UpdateSettingsDefinition(index: String) {

  val builder = new UpdateSettingsRequest(index)

  def set(map: Map[String, String]): this.type = {
    import scala.collection.JavaConverters._
    builder.settings(map.asJava)
    this
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy