From 110cde82228cf4f346b5a9aeac76ed1e9d0824fa Mon Sep 17 00:00:00 2001 From: cosmin-marginean Date: Sun, 12 May 2024 16:14:21 +0100 Subject: [PATCH] Tx support for index creation --- gradle.properties | 2 +- .../src/main/kotlin/invirt/mongodb/index.kt | 22 ++++++++----------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/gradle.properties b/gradle.properties index b2eaac18..0b2f4747 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -invirtVersion = 0.9.4 +invirtVersion = 0.9.5 kotlinVersion = 1.9.23 http4kVersion = 5.17.0.0 mockkVersion = 1.13.9 diff --git a/invirt-mongodb/src/main/kotlin/invirt/mongodb/index.kt b/invirt-mongodb/src/main/kotlin/invirt/mongodb/index.kt index 1fb7122b..1d0f1c47 100644 --- a/invirt-mongodb/src/main/kotlin/invirt/mongodb/index.kt +++ b/invirt-mongodb/src/main/kotlin/invirt/mongodb/index.kt @@ -28,18 +28,10 @@ fun indexDesc(vararg fields: String, caseInsensitive: Boolean = false): List.textIndex(): IndexModel = textIndex(*this.toTypedArray()) -fun Collection>.text() = this.map { it.name }.textIndex() - -fun MongoCollection.createIndexes(vararg indexes: IndexModel) { - createIndexes(indexes.toList()) -} - -fun MongoCollection.createIndexes(clientSession: ClientSession, vararg indexes: IndexModel) { - createIndexes(clientSession, indexes.toList()) -} - -fun MongoCollection.createIndexes(build: IndexesBuilder.() -> Unit) { +fun MongoCollection.createIndexes( + clientSession: ClientSession? = null, + build: IndexesBuilder.() -> Unit +) { val indexesBuilder = IndexesBuilder() indexesBuilder.asc(StoredEntity::version) indexesBuilder.desc(StoredEntity::createdAt) @@ -53,7 +45,11 @@ fun MongoCollection.createIndexes(build: IndexesBuilder.() "indexes" to indexesBuilder.indexes ) } - createIndexes(indexesBuilder.indexes) + if (clientSession != null) { + createIndexes(clientSession, indexesBuilder.indexes) + } else { + createIndexes(indexesBuilder.indexes) + } } private fun indexOptions(caseInsensitive: Boolean): IndexOptions {