Skip to content

Commit

Permalink
Tx support for index creation
Browse files Browse the repository at this point in the history
  • Loading branch information
cosmin-marginean committed May 12, 2024
1 parent 3f36e0d commit 110cde8
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 14 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -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
Expand Down
22 changes: 9 additions & 13 deletions invirt-mongodb/src/main/kotlin/invirt/mongodb/index.kt
Original file line number Diff line number Diff line change
Expand Up @@ -28,18 +28,10 @@ fun indexDesc(vararg fields: String, caseInsensitive: Boolean = false): List<Ind
return fields.map { it.indexDesc(caseInsensitive) }
}

fun Collection<String>.textIndex(): IndexModel = textIndex(*this.toTypedArray())
fun <E : StoredEntity> Collection<KProperty1<E, *>>.text() = this.map { it.name }.textIndex()

fun <E : StoredEntity> MongoCollection<E>.createIndexes(vararg indexes: IndexModel) {
createIndexes(indexes.toList())
}

fun <E : StoredEntity> MongoCollection<E>.createIndexes(clientSession: ClientSession, vararg indexes: IndexModel) {
createIndexes(clientSession, indexes.toList())
}

fun <E : StoredEntity> MongoCollection<E>.createIndexes(build: IndexesBuilder.() -> Unit) {
fun <E : StoredEntity> MongoCollection<E>.createIndexes(
clientSession: ClientSession? = null,
build: IndexesBuilder.() -> Unit
) {
val indexesBuilder = IndexesBuilder()
indexesBuilder.asc(StoredEntity::version)
indexesBuilder.desc(StoredEntity::createdAt)
Expand All @@ -53,7 +45,11 @@ fun <E : StoredEntity> MongoCollection<E>.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 {
Expand Down

0 comments on commit 110cde8

Please sign in to comment.