Skip to content

Commit

Permalink
Remove benasher44/uuid
Browse files Browse the repository at this point in the history
  • Loading branch information
Erikvv committed Jan 20, 2025
1 parent 3745473 commit 2b9d7d3
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@ class SurveyRepository(
val userId = row[CompanySurveyTable.createdById] ?: return null

return com.zenmo.zummon.User(
row[UserTable.id],
row[UserTable.id].toKotlinUuid(),
row[UserTable.note],
)
}
Expand Down
6 changes: 4 additions & 2 deletions zorm/src/main/kotlin/com/zenmo/orm/user/UserRepository.kt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq
import org.jetbrains.exposed.sql.transactions.transaction
import java.util.UUID
import kotlin.uuid.ExperimentalUuidApi
import kotlin.uuid.toJavaUuid
import kotlin.uuid.toKotlinUuid

class UserRepository(
private val db: Database,
Expand Down Expand Up @@ -66,7 +68,7 @@ class UserRepository(
) {
transaction(db) {
UserTable.upsertReturning() {
it[id] = user.id
it[id] = user.id.toJavaUuid()
it[UserTable.note] = user.note
it[UserTable.isAdmin] = user.isAdmin
}.map {
Expand Down Expand Up @@ -111,7 +113,7 @@ class UserRepository(

protected fun hydrateUser(row: ResultRow): User {
return User(
id = row[UserTable.id],
id = row[UserTable.id].toKotlinUuid(),
note = row[UserTable.note],
isAdmin = row[UserTable.isAdmin],
projects = emptyList(), // data from different table
Expand Down
19 changes: 10 additions & 9 deletions zorm/src/test/kotlin/com/zenmo/orm/user/UserRepositoryTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq
import org.jetbrains.exposed.sql.transactions.transaction
import java.util.UUID
import kotlin.test.*
import kotlin.uuid.ExperimentalUuidApi
import kotlin.uuid.toKotlinUuid

class UserRepositoryTest {
val db: Database = connectToPostgres()
Expand All @@ -29,7 +29,7 @@ class UserRepositoryTest {
userRepository.saveUser(userId, note = note)
val result = userRepository.getUserById(userId)
assertNotNull(result)
assertEquals(userId, result.id)
assertEquals(userId.toKotlinUuid(), result.id)
assertEquals(note, result.note)
}

Expand All @@ -40,7 +40,7 @@ class UserRepositoryTest {

val result = userRepository.getUserById(userId)
assertNotNull(result)
assertEquals(userId, result.id)
assertEquals(userId.toKotlinUuid(), result.id)
assertEquals("", result.note)
}

Expand Down Expand Up @@ -90,7 +90,7 @@ class UserRepositoryTest {
}
val users = userRepository.getUsers((UserTable.note eq "Specific user note"))
assertEquals(1, users.size)
assertEquals(userId, users.first().id)
assertEquals(userId.toKotlinUuid(), users.first().id)
}

@Test
Expand All @@ -108,7 +108,7 @@ class UserRepositoryTest {

// Assertions
assertNotNull(user)
assertEquals(userId, user.id)
assertEquals(userId.toKotlinUuid(), user.id)
assertEquals("Test Note", user.note)
assertEquals(2, user.projects.size)

Expand All @@ -129,11 +129,11 @@ class UserRepositoryTest {

// Retrieve users
val users = userRepository.getUsersAndProjects()
val user = users.find { it.id == userId }
val user = users.find { it.id == userId.toKotlinUuid() }

// Assertions
assertNotNull(user)
assertEquals(userId, user?.id)
assertEquals(userId.toKotlinUuid(), user?.id)
assertEquals("User without projects", user?.note)
assertTrue(user?.projects?.isEmpty() == true)
}
Expand All @@ -148,8 +148,9 @@ class UserRepositoryTest {
assertNotNull(userBeforeDelete)

userRepository.deleteUserById(userId)
val userAfterDelete = userRepository.getUserById(userId)
assertTrue(userAfterDelete == null)
assertFailsWith(NoSuchElementException::class) {
userRepository.getUserById(userId)
}
}

@Test
Expand Down
10 changes: 3 additions & 7 deletions zummon/src/commonMain/kotlin/User.kt
Original file line number Diff line number Diff line change
@@ -1,22 +1,18 @@
package com.zenmo.zummon

import com.benasher44.uuid.Uuid
import com.benasher44.uuid.uuid4
import com.zenmo.zummon.BenasherUuidSerializer
import com.zenmo.zummon.companysurvey.Project
import kotlinx.serialization.Serializable
import kotlin.js.JsExport
import kotlin.uuid.Uuid

/**
* This object is intended to be enriched with Keycloak data.
* It is not purely an ORM object.
*/
@Serializable
@JsExport
data class User
constructor(
@Serializable(with = BenasherUuidSerializer::class)
val id: Uuid = uuid4(),
data class User(
val id: Uuid = Uuid.random(),
val note: String,
val projects: List<Project> = emptyList(),
val isAdmin: Boolean = false
Expand Down

0 comments on commit 2b9d7d3

Please sign in to comment.