From 51233a04a93a47c094df4d725880a6f124f797ae Mon Sep 17 00:00:00 2001 From: Mohamed Elsadany Date: Sun, 11 May 2025 12:13:29 +0300 Subject: [PATCH 1/2] implement audit logs MongoDB data source --- .../mongoDataSource/MongoDBDataSourceImpl.kt | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/data/remote/mongoDataSource/MongoDBDataSourceImpl.kt b/src/main/kotlin/data/remote/mongoDataSource/MongoDBDataSourceImpl.kt index e9ee006..72ecdd3 100644 --- a/src/main/kotlin/data/remote/mongoDataSource/MongoDBDataSourceImpl.kt +++ b/src/main/kotlin/data/remote/mongoDataSource/MongoDBDataSourceImpl.kt @@ -2,6 +2,7 @@ package data.remote.mongoDataSource import com.mongodb.MongoTimeoutException import com.mongodb.client.model.Filters +import com.mongodb.client.model.Filters.and import com.mongodb.client.model.Filters.eq import com.mongodb.client.model.Updates import com.mongodb.client.model.Updates.combine @@ -17,6 +18,7 @@ import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.firstOrNull import kotlinx.coroutines.flow.toList import kotlinx.coroutines.withContext +import logic.entities.EntityType import logic.entities.Task import logic.exceptions.InvalidLoginException import logic.exceptions.StateNotFoundException @@ -65,19 +67,29 @@ class MongoDBDataSourceImpl( //region audit operations override suspend fun getAllAuditLogs(): List { - TODO("Not yet implemented") + return auditsCollection.find().toList() } override suspend fun addAuditLog(audit: AuditDTO) { - TODO("Not yet implemented") + auditsCollection.insertOne(audit) } override suspend fun getAuditLogsByProjectId(projectId: String): List { - TODO("Not yet implemented") + return auditsCollection.find( + and( + eq("entityId", projectId), + eq("entityType", EntityType.PROJECT.name) + ) + ).toList() } override suspend fun getAuditLogsByTaskId(taskId: String): List { - TODO("Not yet implemented") + return auditsCollection.find( + and( + eq("entityId", taskId), + eq("entityType", EntityType.TASK.name) + ) + ).toList() } //endregion From e07fed8d3a35417631286e3a121b8681bd7ca801 Mon Sep 17 00:00:00 2001 From: Mohamed Elsadany Date: Sun, 11 May 2025 16:38:48 +0300 Subject: [PATCH 2/2] implement audit logs MongoDB data source --- .../mongoDataSource/MongoDBDataSourceImpl.kt | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/data/remote/mongoDataSource/MongoDBDataSourceImpl.kt b/src/main/kotlin/data/remote/mongoDataSource/MongoDBDataSourceImpl.kt index 66f87fa..2b86e6b 100644 --- a/src/main/kotlin/data/remote/mongoDataSource/MongoDBDataSourceImpl.kt +++ b/src/main/kotlin/data/remote/mongoDataSource/MongoDBDataSourceImpl.kt @@ -1,6 +1,7 @@ package data.remote.mongoDataSource import com.mongodb.client.model.Filters +import com.mongodb.client.model.Filters.and import com.mongodb.client.model.Filters.eq import com.mongodb.client.model.Updates import com.mongodb.client.model.Updates.combine @@ -16,6 +17,7 @@ import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.firstOrNull import kotlinx.coroutines.flow.toList import kotlinx.coroutines.withContext +import logic.entities.Audit import logic.entities.Task import logic.exceptions.* import org.bson.conversions.Bson @@ -62,19 +64,29 @@ class MongoDBDataSourceImpl( //region audit operations override suspend fun getAllAuditLogs(): List { - TODO("Not yet implemented") + return auditsCollection.find().toList() } override suspend fun addAuditLog(audit: AuditDto) { - TODO("Not yet implemented") + auditsCollection.insertOne(audit) } override suspend fun getAuditLogsByProjectId(projectId: String): List { - TODO("Not yet implemented") + return auditsCollection.find( + and( + eq("entityId", projectId), + eq("entityType", Audit.EntityType.PROJECT.name) + ) + ).toList() } override suspend fun getAuditLogsByTaskId(taskId: String): List { - TODO("Not yet implemented") + return auditsCollection.find( + and( + eq("entityId", taskId), + eq("entityType", Audit.EntityType.TASK.name) + ) + ).toList() } //endregion