Skip to content

Commit

Permalink
Support versionType parameter in reindex request
Browse files Browse the repository at this point in the history
  • Loading branch information
Philippus committed Jun 14, 2024
1 parent 7f59283 commit 6d36d1b
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.sksamuel.elastic4s.requests.reindex

import com.sksamuel.elastic4s.handlers.reindex.ReindexBuilderFn
import com.sksamuel.elastic4s.requests.common.VersionType.ExternalGte
import org.scalatest.funsuite.AnyFunSuite
import org.scalatest.matchers.should.Matchers

class ReindexBuilderFnTest extends AnyFunSuite with Matchers {
import com.sksamuel.elastic4s.ElasticApi._

test("reindex content builder should support version type") {
val req = reindex("source", "target").versionType(ExternalGte)

ReindexBuilderFn(req).string shouldBe
"""{"source":{"index":["source"]},"dest":{"index":"target","version_type":"external_gte"}}""".stripMargin
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
package com.sksamuel.elastic4s.requests.reindex

import com.sksamuel.elastic4s.ext.OptionImplicits._
import com.sksamuel.elastic4s.requests.common.{RefreshPolicy, Slice}
import com.sksamuel.elastic4s.requests.common.{RefreshPolicy, Slice, VersionType}
import com.sksamuel.elastic4s.requests.script.Script
import com.sksamuel.elastic4s.requests.searches.queries.Query
import com.sksamuel.elastic4s.{Index, Indexes}

import scala.concurrent.duration.FiniteDuration

case class ReindexRequest(sourceIndexes: Indexes,
Expand All @@ -30,7 +29,8 @@ case class ReindexRequest(sourceIndexes: Indexes,
size: Option[Int] = None,
createOnly: Option[Boolean] = None,
slices: Option[Int] = None,
slice: Option[Slice] = None) {
slice: Option[Slice] = None,
versionType: Option[VersionType] = None) {

def remote(uri: String): ReindexRequest = copy(remoteHost = Option(uri))
def remote(uri: String, user: String, pass: String): ReindexRequest =
Expand Down Expand Up @@ -73,4 +73,7 @@ case class ReindexRequest(sourceIndexes: Indexes,
def createOnly(createOnly: Boolean): ReindexRequest = copy(createOnly = createOnly.some)
def slice(slice: Slice): ReindexRequest = copy(slice = slice.some)
def slices(slices: Int): ReindexRequest = copy(slices = slices.some)

def versionType(versionType: String): ReindexRequest = this.versionType(VersionType.valueOf(versionType))
def versionType(versionType: VersionType): ReindexRequest = copy(versionType = versionType.some)
}
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ object ReindexBuilderFn {
builder.startObject("dest")
builder.field("index", request.targetIndex.name)

request.versionType.foreach(versionType => builder.field("version_type", handlers.VersionTypeHttpString(versionType)))

request.createOnly.foreach {
case true => builder.field("op_type", "create")
case false => builder.field("op_type", "index")
Expand Down

0 comments on commit 6d36d1b

Please sign in to comment.