@@ -14,7 +14,6 @@ import org.jetbrains.exposed.v1.jdbc.deleteWhere
1414import org.jetbrains.exposed.v1.jdbc.insert
1515import org.jetbrains.exposed.v1.jdbc.selectAll
1616import org.jetbrains.exposed.v1.jdbc.update
17- import org.jetbrains.exposed.v1.jdbc.transactions.experimental.newSuspendedTransaction
1817import java.time.Instant
1918import java.util.UUID
2019
@@ -23,22 +22,19 @@ import java.util.UUID
2322 */
2423class SQLiteNoteRepository (private val databaseManager : DatabaseManager ) : NoteRepository {
2524
26- override suspend fun getById (id : UUID ): Result <Note > = try {
27- newSuspendedTransaction(db = databaseManager.getDatabase() ) {
25+ override suspend fun getById (id : UUID ): Result <Note > =
26+ databaseManager.suspendedTransaction( " Failed to get Note by id " ) {
2827 val row = NotesTable .selectAll().where { NotesTable .id eq id }.singleOrNull()
2928 if (row != null ) {
3029 Result .Success (mapRowToNote(row))
3130 } else {
3231 Result .Error (RepositoryError .NotFound (id, " Note not found with id: $id " ))
3332 }
3433 }
35- } catch (e: Exception ) {
36- Result .Error (RepositoryError .DatabaseError (" Failed to get Note by id: ${e.message} " , e))
37- }
3834
39- override suspend fun upsert (note : Note ): Result <Note > = try {
40- note.validate()
41- newSuspendedTransaction(db = databaseManager.getDatabase()) {
35+ override suspend fun upsert (note : Note ): Result <Note > =
36+ databaseManager.suspendedTransaction( " Failed to upsert Note " ) {
37+ note.validate()
4238 // Check if a note with the same (itemId, key) already exists
4339 val existing = NotesTable .selectAll()
4440 .where { (NotesTable .itemId eq note.itemId) and (NotesTable .key eq note.key) }
@@ -69,30 +65,21 @@ class SQLiteNoteRepository(private val databaseManager: DatabaseManager) : NoteR
6965 Result .Success (note)
7066 }
7167 }
72- } catch (e: Exception ) {
73- Result .Error (RepositoryError .DatabaseError (" Failed to upsert Note: ${e.message} " , e))
74- }
7568
76- override suspend fun delete (id : UUID ): Result <Boolean > = try {
77- newSuspendedTransaction(db = databaseManager.getDatabase() ) {
69+ override suspend fun delete (id : UUID ): Result <Boolean > =
70+ databaseManager.suspendedTransaction( " Failed to delete Note " ) {
7871 val deletedCount = NotesTable .deleteWhere { NotesTable .id eq id }
7972 Result .Success (deletedCount > 0 )
8073 }
81- } catch (e: Exception ) {
82- Result .Error (RepositoryError .DatabaseError (" Failed to delete Note: ${e.message} " , e))
83- }
8474
85- override suspend fun deleteByItemId (itemId : UUID ): Result <Int > = try {
86- newSuspendedTransaction(db = databaseManager.getDatabase() ) {
75+ override suspend fun deleteByItemId (itemId : UUID ): Result <Int > =
76+ databaseManager.suspendedTransaction( " Failed to delete Notes by itemId " ) {
8777 val deletedCount = NotesTable .deleteWhere { NotesTable .itemId eq itemId }
8878 Result .Success (deletedCount)
8979 }
90- } catch (e: Exception ) {
91- Result .Error (RepositoryError .DatabaseError (" Failed to delete Notes by itemId: ${e.message} " , e))
92- }
9380
94- override suspend fun findByItemId (itemId : UUID , role : String? ): Result <List <Note >> = try {
95- newSuspendedTransaction(db = databaseManager.getDatabase() ) {
81+ override suspend fun findByItemId (itemId : UUID , role : String? ): Result <List <Note >> =
82+ databaseManager.suspendedTransaction( " Failed to find Notes by itemId " ) {
9683 val notes = if (role != null ) {
9784 NotesTable .selectAll()
9885 .where { (NotesTable .itemId eq itemId) and (NotesTable .role eq role) }
@@ -102,34 +89,24 @@ class SQLiteNoteRepository(private val databaseManager: DatabaseManager) : NoteR
10289 }.map { mapRowToNote(it) }
10390 Result .Success (notes)
10491 }
105- } catch (e: Exception ) {
106- Result .Error (RepositoryError .DatabaseError (" Failed to find Notes by itemId: ${e.message} " , e))
107- }
10892
10993 override suspend fun findByItemIds (itemIds : Set <UUID >): Result <Map <UUID , List <Note >>> {
11094 if (itemIds.isEmpty()) return Result .Success (emptyMap())
111- return try {
112- newSuspendedTransaction(db = databaseManager.getDatabase()) {
113- val notes = NotesTable .selectAll()
114- .where { NotesTable .itemId inList itemIds }
115- .map { mapRowToNote(it) }
116- Result .Success (notes.groupBy { it.itemId })
117- }
118- } catch (e: Exception ) {
119- Result .Error (RepositoryError .DatabaseError (" Failed to find Notes by itemIds: ${e.message} " , e))
95+ return databaseManager.suspendedTransaction(" Failed to find Notes by itemIds" ) {
96+ val notes = NotesTable .selectAll()
97+ .where { NotesTable .itemId inList itemIds }
98+ .map { mapRowToNote(it) }
99+ Result .Success (notes.groupBy { it.itemId })
120100 }
121101 }
122102
123- override suspend fun findByItemIdAndKey (itemId : UUID , key : String ): Result <Note ?> = try {
124- newSuspendedTransaction(db = databaseManager.getDatabase() ) {
103+ override suspend fun findByItemIdAndKey (itemId : UUID , key : String ): Result <Note ?> =
104+ databaseManager.suspendedTransaction( " Failed to find Note by itemId and key " ) {
125105 val row = NotesTable .selectAll()
126106 .where { (NotesTable .itemId eq itemId) and (NotesTable .key eq key) }
127107 .singleOrNull()
128108 Result .Success (row?.let { mapRowToNote(it) })
129109 }
130- } catch (e: Exception ) {
131- Result .Error (RepositoryError .DatabaseError (" Failed to find Note by itemId and key: ${e.message} " , e))
132- }
133110
134111 private fun mapRowToNote (row : ResultRow ): Note {
135112 return Note (
0 commit comments