From cd8d3aafbad9fbb6ce639fd36b40bdf9467db226 Mon Sep 17 00:00:00 2001 From: ahmad Date: Sun, 27 Apr 2025 21:57:20 +0300 Subject: [PATCH 1/8] change the branch name from develop to development in ci yml file --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b70bf0b..54f40d2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,7 +2,7 @@ name: CI with Kover on: pull_request: - branches: [ main, develop ] + branches: [ main, development ] workflow_dispatch: permissions: From b9a3df1ff617d3eed672a2f7d840a6a4ecd561fb Mon Sep 17 00:00:00 2001 From: Marwan Qashwa Date: Mon, 28 Apr 2025 01:37:26 +0300 Subject: [PATCH 2/8] add core entities and structures of repo --- src/main/kotlin/data/CsvAuditRepository.kt | 6 ++++++ src/main/kotlin/data/CsvAuthenticationRepository.kt | 6 ++++++ src/main/kotlin/data/CsvProjectRepository.kt | 6 ++++++ src/main/kotlin/data/CsvStateRepository.kt | 6 ++++++ src/main/kotlin/data/CsvTaskRepository.kt | 6 ++++++ .../kotlin/logic/repositories/AuditRepository.kt | 4 ++++ .../logic/repositories/AuthenticationRepository.kt | 4 ++++ .../kotlin/logic/repositories/ProjectRepository.kt | 4 ++++ .../kotlin/logic/repositories/StateRepository.kt | 4 ++++ .../kotlin/logic/repositories/TaskRepository.kt | 4 ++++ src/main/kotlin/model/AuditAction.kt | 5 +++++ src/main/kotlin/model/AuditLog.kt | 13 +++++++++++++ src/main/kotlin/model/AuditSearchType.kt | 5 +++++ src/main/kotlin/model/Project.kt | 9 +++++++++ src/main/kotlin/model/State.kt | 7 +++++++ src/main/kotlin/model/Task.kt | 12 ++++++++++++ src/main/kotlin/model/User.kt | 9 +++++++++ src/main/kotlin/model/UserRole.kt | 5 +++++ 18 files changed, 115 insertions(+) create mode 100644 src/main/kotlin/data/CsvAuditRepository.kt create mode 100644 src/main/kotlin/data/CsvAuthenticationRepository.kt create mode 100644 src/main/kotlin/data/CsvProjectRepository.kt create mode 100644 src/main/kotlin/data/CsvStateRepository.kt create mode 100644 src/main/kotlin/data/CsvTaskRepository.kt create mode 100644 src/main/kotlin/logic/repositories/AuditRepository.kt create mode 100644 src/main/kotlin/logic/repositories/AuthenticationRepository.kt create mode 100644 src/main/kotlin/logic/repositories/ProjectRepository.kt create mode 100644 src/main/kotlin/logic/repositories/StateRepository.kt create mode 100644 src/main/kotlin/logic/repositories/TaskRepository.kt create mode 100644 src/main/kotlin/model/AuditAction.kt create mode 100644 src/main/kotlin/model/AuditLog.kt create mode 100644 src/main/kotlin/model/AuditSearchType.kt create mode 100644 src/main/kotlin/model/Project.kt create mode 100644 src/main/kotlin/model/State.kt create mode 100644 src/main/kotlin/model/Task.kt create mode 100644 src/main/kotlin/model/User.kt create mode 100644 src/main/kotlin/model/UserRole.kt diff --git a/src/main/kotlin/data/CsvAuditRepository.kt b/src/main/kotlin/data/CsvAuditRepository.kt new file mode 100644 index 0000000..e9f6211 --- /dev/null +++ b/src/main/kotlin/data/CsvAuditRepository.kt @@ -0,0 +1,6 @@ +package com.berlin.data + +import com.berlin.logic.repositories.AuditRepository + +class CsvAuditRepository:AuditRepository { +} \ No newline at end of file diff --git a/src/main/kotlin/data/CsvAuthenticationRepository.kt b/src/main/kotlin/data/CsvAuthenticationRepository.kt new file mode 100644 index 0000000..abaaa5d --- /dev/null +++ b/src/main/kotlin/data/CsvAuthenticationRepository.kt @@ -0,0 +1,6 @@ +package com.berlin.data + +import com.berlin.logic.repositories.AuthenticationRepository + +class CsvAuthenticationRepository:AuthenticationRepository { +} \ No newline at end of file diff --git a/src/main/kotlin/data/CsvProjectRepository.kt b/src/main/kotlin/data/CsvProjectRepository.kt new file mode 100644 index 0000000..4548d00 --- /dev/null +++ b/src/main/kotlin/data/CsvProjectRepository.kt @@ -0,0 +1,6 @@ +package com.berlin.data + +import com.berlin.logic.repositories.ProjectRepository + +class CsvProjectRepository:ProjectRepository { +} \ No newline at end of file diff --git a/src/main/kotlin/data/CsvStateRepository.kt b/src/main/kotlin/data/CsvStateRepository.kt new file mode 100644 index 0000000..c1688ee --- /dev/null +++ b/src/main/kotlin/data/CsvStateRepository.kt @@ -0,0 +1,6 @@ +package com.berlin.data + +import com.berlin.logic.repositories.StateRepository + +class CsvStateRepository:StateRepository { +} \ No newline at end of file diff --git a/src/main/kotlin/data/CsvTaskRepository.kt b/src/main/kotlin/data/CsvTaskRepository.kt new file mode 100644 index 0000000..f17f0d5 --- /dev/null +++ b/src/main/kotlin/data/CsvTaskRepository.kt @@ -0,0 +1,6 @@ +package com.berlin.data + +import com.berlin.logic.repositories.TaskRepository + +class CsvTaskRepository:TaskRepository { +} \ No newline at end of file diff --git a/src/main/kotlin/logic/repositories/AuditRepository.kt b/src/main/kotlin/logic/repositories/AuditRepository.kt new file mode 100644 index 0000000..07e4f6d --- /dev/null +++ b/src/main/kotlin/logic/repositories/AuditRepository.kt @@ -0,0 +1,4 @@ +package com.berlin.logic.repositories + +interface AuditRepository { +} \ No newline at end of file diff --git a/src/main/kotlin/logic/repositories/AuthenticationRepository.kt b/src/main/kotlin/logic/repositories/AuthenticationRepository.kt new file mode 100644 index 0000000..03acc7f --- /dev/null +++ b/src/main/kotlin/logic/repositories/AuthenticationRepository.kt @@ -0,0 +1,4 @@ +package com.berlin.logic.repositories + +interface AuthenticationRepository { +} \ No newline at end of file diff --git a/src/main/kotlin/logic/repositories/ProjectRepository.kt b/src/main/kotlin/logic/repositories/ProjectRepository.kt new file mode 100644 index 0000000..6aa66c7 --- /dev/null +++ b/src/main/kotlin/logic/repositories/ProjectRepository.kt @@ -0,0 +1,4 @@ +package com.berlin.logic.repositories + +interface ProjectRepository { +} \ No newline at end of file diff --git a/src/main/kotlin/logic/repositories/StateRepository.kt b/src/main/kotlin/logic/repositories/StateRepository.kt new file mode 100644 index 0000000..14e19b4 --- /dev/null +++ b/src/main/kotlin/logic/repositories/StateRepository.kt @@ -0,0 +1,4 @@ +package com.berlin.logic.repositories + +interface StateRepository { +} \ No newline at end of file diff --git a/src/main/kotlin/logic/repositories/TaskRepository.kt b/src/main/kotlin/logic/repositories/TaskRepository.kt new file mode 100644 index 0000000..1dd528d --- /dev/null +++ b/src/main/kotlin/logic/repositories/TaskRepository.kt @@ -0,0 +1,4 @@ +package com.berlin.logic.repositories + +interface TaskRepository { +} \ No newline at end of file diff --git a/src/main/kotlin/model/AuditAction.kt b/src/main/kotlin/model/AuditAction.kt new file mode 100644 index 0000000..8e09f80 --- /dev/null +++ b/src/main/kotlin/model/AuditAction.kt @@ -0,0 +1,5 @@ +package com.berlin.model + +enum class AuditAction { + CREATE, UPDATE, DELETE +} \ No newline at end of file diff --git a/src/main/kotlin/model/AuditLog.kt b/src/main/kotlin/model/AuditLog.kt new file mode 100644 index 0000000..72ecdc4 --- /dev/null +++ b/src/main/kotlin/model/AuditLog.kt @@ -0,0 +1,13 @@ +package com.berlin.model + +import java.sql.Timestamp + +data class AuditLog( + val id:Int, + val timestamp: Timestamp, + val createdBy:User, + val auditAction:AuditAction, + val changesDescription:String, + val auditForType:AuditSearchType, + val idForAuditType:Int +) diff --git a/src/main/kotlin/model/AuditSearchType.kt b/src/main/kotlin/model/AuditSearchType.kt new file mode 100644 index 0000000..a1b8d60 --- /dev/null +++ b/src/main/kotlin/model/AuditSearchType.kt @@ -0,0 +1,5 @@ +package com.berlin.model + +enum class AuditSearchType { + PROJECT,TASK +} \ No newline at end of file diff --git a/src/main/kotlin/model/Project.kt b/src/main/kotlin/model/Project.kt new file mode 100644 index 0000000..3694490 --- /dev/null +++ b/src/main/kotlin/model/Project.kt @@ -0,0 +1,9 @@ +package com.berlin.model + +data class Project( + val id:Int, + val name:String, + val description:String?, + val statesId:List, + val tasksId:List +) diff --git a/src/main/kotlin/model/State.kt b/src/main/kotlin/model/State.kt new file mode 100644 index 0000000..c32bb62 --- /dev/null +++ b/src/main/kotlin/model/State.kt @@ -0,0 +1,7 @@ +package com.berlin.model + +data class State( + val stateId:Int, + val name:String, + val projectId:Int, +) diff --git a/src/main/kotlin/model/Task.kt b/src/main/kotlin/model/Task.kt new file mode 100644 index 0000000..e5927c0 --- /dev/null +++ b/src/main/kotlin/model/Task.kt @@ -0,0 +1,12 @@ +package com.berlin.model + + +data class Task( + val id:Int, + val title:String, + val description:String?, + val stateId:Int, + val assignedTo:User, + val createBy:User, + val auditLogs:List + ) diff --git a/src/main/kotlin/model/User.kt b/src/main/kotlin/model/User.kt new file mode 100644 index 0000000..32952e2 --- /dev/null +++ b/src/main/kotlin/model/User.kt @@ -0,0 +1,9 @@ +package com.berlin.model + + +data class User( + val id:Int, + val userName:String, + val password:String, + val role:UserRole +) diff --git a/src/main/kotlin/model/UserRole.kt b/src/main/kotlin/model/UserRole.kt new file mode 100644 index 0000000..e5ce06e --- /dev/null +++ b/src/main/kotlin/model/UserRole.kt @@ -0,0 +1,5 @@ +package com.berlin.model + +enum class UserRole { + ADMIN,MATE +} \ No newline at end of file From 24094e55cd9f8dc53ed6199340712a13566eeb28 Mon Sep 17 00:00:00 2001 From: Marwan Qashwa Date: Mon, 28 Apr 2025 06:53:02 +0300 Subject: [PATCH 3/8] add methods for repos interfaces --- src/main/kotlin/data/CsvAuditRepository.kt | 12 +++++++++++ .../data/CsvAuthenticationRepository.kt | 12 +++++++++++ src/main/kotlin/data/CsvProjectRepository.kt | 20 +++++++++++++++++++ src/main/kotlin/data/CsvStateRepository.kt | 12 +++++++++++ src/main/kotlin/data/CsvTaskRepository.kt | 20 +++++++++++++++++++ .../logic/repositories/AuditRepository.kt | 6 ++++++ .../repositories/AuthenticationRepository.kt | 5 +++++ .../logic/repositories/ProjectRepository.kt | 7 +++++++ .../logic/repositories/StateRepository.kt | 5 +++++ .../logic/repositories/TaskRepository.kt | 7 +++++++ src/main/kotlin/model/Task.kt | 1 + 11 files changed, 107 insertions(+) diff --git a/src/main/kotlin/data/CsvAuditRepository.kt b/src/main/kotlin/data/CsvAuditRepository.kt index e9f6211..817d699 100644 --- a/src/main/kotlin/data/CsvAuditRepository.kt +++ b/src/main/kotlin/data/CsvAuditRepository.kt @@ -1,6 +1,18 @@ package com.berlin.data import com.berlin.logic.repositories.AuditRepository +import com.berlin.model.AuditLog class CsvAuditRepository:AuditRepository { + override fun addAuditLog(auditLog: AuditLog): Boolean { + return false + } + + override fun getAuditLogsByProjectId(projectId: Int): List { + return emptyList() + } + + override fun getAuditLogsByTaskId(taskId: Int): List { + return emptyList() + } } \ No newline at end of file diff --git a/src/main/kotlin/data/CsvAuthenticationRepository.kt b/src/main/kotlin/data/CsvAuthenticationRepository.kt index abaaa5d..0bfa279 100644 --- a/src/main/kotlin/data/CsvAuthenticationRepository.kt +++ b/src/main/kotlin/data/CsvAuthenticationRepository.kt @@ -1,6 +1,18 @@ package com.berlin.data import com.berlin.logic.repositories.AuthenticationRepository +import com.berlin.model.User class CsvAuthenticationRepository:AuthenticationRepository { + override fun createUser(user: User): Boolean { + return false + } + + override fun getUserById(userId: Int): User? { + return null + } + + override fun getAllUsers(): List { + return emptyList() + } } \ No newline at end of file diff --git a/src/main/kotlin/data/CsvProjectRepository.kt b/src/main/kotlin/data/CsvProjectRepository.kt index 4548d00..7c85490 100644 --- a/src/main/kotlin/data/CsvProjectRepository.kt +++ b/src/main/kotlin/data/CsvProjectRepository.kt @@ -1,6 +1,26 @@ package com.berlin.data import com.berlin.logic.repositories.ProjectRepository +import com.berlin.model.Project class CsvProjectRepository:ProjectRepository { + override fun createProject(project: Project): Boolean { + return false + } + + override fun getProjectById(projectId: Int): Project? { + return null + } + + override fun getAllProjects(): List { + return emptyList() + } + + override fun updateProject(project: Project):Boolean { + return false + } + + override fun deleteProject(projectId: Int): Boolean { + return false + } } \ No newline at end of file diff --git a/src/main/kotlin/data/CsvStateRepository.kt b/src/main/kotlin/data/CsvStateRepository.kt index c1688ee..e7cf8e9 100644 --- a/src/main/kotlin/data/CsvStateRepository.kt +++ b/src/main/kotlin/data/CsvStateRepository.kt @@ -1,6 +1,18 @@ package com.berlin.data import com.berlin.logic.repositories.StateRepository +import com.berlin.model.State class CsvStateRepository:StateRepository { + override fun createState(state: State): Boolean { + return false + } + + override fun getStatesByProjectId(projectId: Int): List { + return emptyList() + } + + override fun deleteState(stateId: Int):Boolean { + return false + } } \ No newline at end of file diff --git a/src/main/kotlin/data/CsvTaskRepository.kt b/src/main/kotlin/data/CsvTaskRepository.kt index f17f0d5..f4325a6 100644 --- a/src/main/kotlin/data/CsvTaskRepository.kt +++ b/src/main/kotlin/data/CsvTaskRepository.kt @@ -1,6 +1,26 @@ package com.berlin.data import com.berlin.logic.repositories.TaskRepository +import com.berlin.model.Task class CsvTaskRepository:TaskRepository { + override fun createTask(projectId: Int, task: Task): Boolean { + return false + } + + override fun getTaskById(taskId: Int): Task? { + return null + } + + override fun getTasksByProjectId(projectId: Int): List { + return emptyList() + } + + override fun updateTask(task: Task): Boolean { + return false + } + + override fun deleteTask(task: Task): Boolean { + return false + } } \ No newline at end of file diff --git a/src/main/kotlin/logic/repositories/AuditRepository.kt b/src/main/kotlin/logic/repositories/AuditRepository.kt index 07e4f6d..a73f279 100644 --- a/src/main/kotlin/logic/repositories/AuditRepository.kt +++ b/src/main/kotlin/logic/repositories/AuditRepository.kt @@ -1,4 +1,10 @@ package com.berlin.logic.repositories +import com.berlin.model.AuditLog + interface AuditRepository { + fun addAuditLog(auditLog: AuditLog):Boolean + fun getAuditLogsByProjectId(projectId:Int):List + fun getAuditLogsByTaskId(taskId:Int):List + } \ No newline at end of file diff --git a/src/main/kotlin/logic/repositories/AuthenticationRepository.kt b/src/main/kotlin/logic/repositories/AuthenticationRepository.kt index 03acc7f..7dcd392 100644 --- a/src/main/kotlin/logic/repositories/AuthenticationRepository.kt +++ b/src/main/kotlin/logic/repositories/AuthenticationRepository.kt @@ -1,4 +1,9 @@ package com.berlin.logic.repositories +import com.berlin.model.User + interface AuthenticationRepository { + fun createUser(user:User):Boolean + fun getUserById(userId:Int):User? + fun getAllUsers():List } \ No newline at end of file diff --git a/src/main/kotlin/logic/repositories/ProjectRepository.kt b/src/main/kotlin/logic/repositories/ProjectRepository.kt index 6aa66c7..7509e13 100644 --- a/src/main/kotlin/logic/repositories/ProjectRepository.kt +++ b/src/main/kotlin/logic/repositories/ProjectRepository.kt @@ -1,4 +1,11 @@ package com.berlin.logic.repositories +import com.berlin.model.Project + interface ProjectRepository { + fun createProject(project:Project):Boolean + fun getProjectById(projectId:Int):Project? + fun getAllProjects():List + fun updateProject(project: Project):Boolean + fun deleteProject(projectId: Int):Boolean } \ No newline at end of file diff --git a/src/main/kotlin/logic/repositories/StateRepository.kt b/src/main/kotlin/logic/repositories/StateRepository.kt index 14e19b4..348d108 100644 --- a/src/main/kotlin/logic/repositories/StateRepository.kt +++ b/src/main/kotlin/logic/repositories/StateRepository.kt @@ -1,4 +1,9 @@ package com.berlin.logic.repositories +import com.berlin.model.State + interface StateRepository { + fun createState(state: State):Boolean + fun getStatesByProjectId(projectId:Int):List + fun deleteState(stateId:Int):Boolean } \ No newline at end of file diff --git a/src/main/kotlin/logic/repositories/TaskRepository.kt b/src/main/kotlin/logic/repositories/TaskRepository.kt index 1dd528d..f0f6fe9 100644 --- a/src/main/kotlin/logic/repositories/TaskRepository.kt +++ b/src/main/kotlin/logic/repositories/TaskRepository.kt @@ -1,4 +1,11 @@ package com.berlin.logic.repositories +import com.berlin.model.Task + interface TaskRepository { + fun createTask(projectId:Int,task: Task):Boolean + fun getTaskById(taskId:Int):Task? + fun getTasksByProjectId(projectId:Int):List + fun updateTask(task: Task):Boolean + fun deleteTask(task: Task):Boolean } \ No newline at end of file diff --git a/src/main/kotlin/model/Task.kt b/src/main/kotlin/model/Task.kt index e5927c0..0b946ff 100644 --- a/src/main/kotlin/model/Task.kt +++ b/src/main/kotlin/model/Task.kt @@ -3,6 +3,7 @@ package com.berlin.model data class Task( val id:Int, + val projectId:Int, val title:String, val description:String?, val stateId:Int, From 1dccade79d85f5d827c1f082422aa9df5265efac Mon Sep 17 00:00:00 2001 From: Marwan Qashwa Date: Mon, 28 Apr 2025 08:22:21 +0300 Subject: [PATCH 4/8] refactor id to string,time to long,and delete project id from task creation --- src/main/kotlin/data/CsvAuditRepository.kt | 4 ++-- src/main/kotlin/data/CsvAuthenticationRepository.kt | 2 +- src/main/kotlin/data/CsvProjectRepository.kt | 4 ++-- src/main/kotlin/data/CsvStateRepository.kt | 4 ++-- src/main/kotlin/data/CsvTaskRepository.kt | 8 ++++---- src/main/kotlin/logic/repositories/AuditRepository.kt | 4 ++-- .../kotlin/logic/repositories/AuthenticationRepository.kt | 2 +- src/main/kotlin/logic/repositories/ProjectRepository.kt | 4 ++-- src/main/kotlin/logic/repositories/StateRepository.kt | 4 ++-- src/main/kotlin/logic/repositories/TaskRepository.kt | 8 ++++---- src/main/kotlin/model/AuditLog.kt | 7 +++---- src/main/kotlin/model/Project.kt | 6 +++--- src/main/kotlin/model/State.kt | 4 ++-- src/main/kotlin/model/Task.kt | 6 +++--- src/main/kotlin/model/User.kt | 2 +- 15 files changed, 34 insertions(+), 35 deletions(-) diff --git a/src/main/kotlin/data/CsvAuditRepository.kt b/src/main/kotlin/data/CsvAuditRepository.kt index 817d699..d3a1b6b 100644 --- a/src/main/kotlin/data/CsvAuditRepository.kt +++ b/src/main/kotlin/data/CsvAuditRepository.kt @@ -8,11 +8,11 @@ class CsvAuditRepository:AuditRepository { return false } - override fun getAuditLogsByProjectId(projectId: Int): List { + override fun getAuditLogsByProjectId(projectId: String): List { return emptyList() } - override fun getAuditLogsByTaskId(taskId: Int): List { + override fun getAuditLogsByTaskId(taskId: String): List { return emptyList() } } \ No newline at end of file diff --git a/src/main/kotlin/data/CsvAuthenticationRepository.kt b/src/main/kotlin/data/CsvAuthenticationRepository.kt index 0bfa279..7db01a7 100644 --- a/src/main/kotlin/data/CsvAuthenticationRepository.kt +++ b/src/main/kotlin/data/CsvAuthenticationRepository.kt @@ -8,7 +8,7 @@ class CsvAuthenticationRepository:AuthenticationRepository { return false } - override fun getUserById(userId: Int): User? { + override fun getUserById(userId: String): User? { return null } diff --git a/src/main/kotlin/data/CsvProjectRepository.kt b/src/main/kotlin/data/CsvProjectRepository.kt index 7c85490..179f243 100644 --- a/src/main/kotlin/data/CsvProjectRepository.kt +++ b/src/main/kotlin/data/CsvProjectRepository.kt @@ -8,7 +8,7 @@ class CsvProjectRepository:ProjectRepository { return false } - override fun getProjectById(projectId: Int): Project? { + override fun getProjectById(projectId: String): Project? { return null } @@ -20,7 +20,7 @@ class CsvProjectRepository:ProjectRepository { return false } - override fun deleteProject(projectId: Int): Boolean { + override fun deleteProject(projectId: String): Boolean { return false } } \ No newline at end of file diff --git a/src/main/kotlin/data/CsvStateRepository.kt b/src/main/kotlin/data/CsvStateRepository.kt index e7cf8e9..ed6d159 100644 --- a/src/main/kotlin/data/CsvStateRepository.kt +++ b/src/main/kotlin/data/CsvStateRepository.kt @@ -8,11 +8,11 @@ class CsvStateRepository:StateRepository { return false } - override fun getStatesByProjectId(projectId: Int): List { + override fun getStatesByProjectId(projectId: String): List { return emptyList() } - override fun deleteState(stateId: Int):Boolean { + override fun deleteState(stateId: String):Boolean { return false } } \ No newline at end of file diff --git a/src/main/kotlin/data/CsvTaskRepository.kt b/src/main/kotlin/data/CsvTaskRepository.kt index f4325a6..8829c46 100644 --- a/src/main/kotlin/data/CsvTaskRepository.kt +++ b/src/main/kotlin/data/CsvTaskRepository.kt @@ -4,15 +4,15 @@ import com.berlin.logic.repositories.TaskRepository import com.berlin.model.Task class CsvTaskRepository:TaskRepository { - override fun createTask(projectId: Int, task: Task): Boolean { + override fun createTask(task: Task): Boolean { return false } - override fun getTaskById(taskId: Int): Task? { + override fun getTaskById(taskId: String): Task? { return null } - override fun getTasksByProjectId(projectId: Int): List { + override fun getTasksByProjectId(projectId: String): List { return emptyList() } @@ -20,7 +20,7 @@ class CsvTaskRepository:TaskRepository { return false } - override fun deleteTask(task: Task): Boolean { + override fun deleteTaskById(taskId: String): Boolean { return false } } \ No newline at end of file diff --git a/src/main/kotlin/logic/repositories/AuditRepository.kt b/src/main/kotlin/logic/repositories/AuditRepository.kt index a73f279..78a3f82 100644 --- a/src/main/kotlin/logic/repositories/AuditRepository.kt +++ b/src/main/kotlin/logic/repositories/AuditRepository.kt @@ -4,7 +4,7 @@ import com.berlin.model.AuditLog interface AuditRepository { fun addAuditLog(auditLog: AuditLog):Boolean - fun getAuditLogsByProjectId(projectId:Int):List - fun getAuditLogsByTaskId(taskId:Int):List + fun getAuditLogsByProjectId(projectId:String):List + fun getAuditLogsByTaskId(taskId:String):List } \ No newline at end of file diff --git a/src/main/kotlin/logic/repositories/AuthenticationRepository.kt b/src/main/kotlin/logic/repositories/AuthenticationRepository.kt index 7dcd392..5f56b95 100644 --- a/src/main/kotlin/logic/repositories/AuthenticationRepository.kt +++ b/src/main/kotlin/logic/repositories/AuthenticationRepository.kt @@ -4,6 +4,6 @@ import com.berlin.model.User interface AuthenticationRepository { fun createUser(user:User):Boolean - fun getUserById(userId:Int):User? + fun getUserById(userId:String):User? fun getAllUsers():List } \ No newline at end of file diff --git a/src/main/kotlin/logic/repositories/ProjectRepository.kt b/src/main/kotlin/logic/repositories/ProjectRepository.kt index 7509e13..17fbc66 100644 --- a/src/main/kotlin/logic/repositories/ProjectRepository.kt +++ b/src/main/kotlin/logic/repositories/ProjectRepository.kt @@ -4,8 +4,8 @@ import com.berlin.model.Project interface ProjectRepository { fun createProject(project:Project):Boolean - fun getProjectById(projectId:Int):Project? + fun getProjectById(projectId:String):Project? fun getAllProjects():List fun updateProject(project: Project):Boolean - fun deleteProject(projectId: Int):Boolean + fun deleteProject(projectId: String):Boolean } \ No newline at end of file diff --git a/src/main/kotlin/logic/repositories/StateRepository.kt b/src/main/kotlin/logic/repositories/StateRepository.kt index 348d108..3c3ed98 100644 --- a/src/main/kotlin/logic/repositories/StateRepository.kt +++ b/src/main/kotlin/logic/repositories/StateRepository.kt @@ -4,6 +4,6 @@ import com.berlin.model.State interface StateRepository { fun createState(state: State):Boolean - fun getStatesByProjectId(projectId:Int):List - fun deleteState(stateId:Int):Boolean + fun getStatesByProjectId(projectId:String):List + fun deleteState(stateId:String):Boolean } \ No newline at end of file diff --git a/src/main/kotlin/logic/repositories/TaskRepository.kt b/src/main/kotlin/logic/repositories/TaskRepository.kt index f0f6fe9..0cb9728 100644 --- a/src/main/kotlin/logic/repositories/TaskRepository.kt +++ b/src/main/kotlin/logic/repositories/TaskRepository.kt @@ -3,9 +3,9 @@ package com.berlin.logic.repositories import com.berlin.model.Task interface TaskRepository { - fun createTask(projectId:Int,task: Task):Boolean - fun getTaskById(taskId:Int):Task? - fun getTasksByProjectId(projectId:Int):List + fun createTask(task:Task):Boolean + fun getTaskById(taskId:String):Task? + fun getTasksByProjectId(projectId:String):List fun updateTask(task: Task):Boolean - fun deleteTask(task: Task):Boolean + fun deleteTaskById(taskId: String):Boolean } \ No newline at end of file diff --git a/src/main/kotlin/model/AuditLog.kt b/src/main/kotlin/model/AuditLog.kt index 72ecdc4..7bbf9b5 100644 --- a/src/main/kotlin/model/AuditLog.kt +++ b/src/main/kotlin/model/AuditLog.kt @@ -1,13 +1,12 @@ package com.berlin.model -import java.sql.Timestamp data class AuditLog( - val id:Int, - val timestamp: Timestamp, + val id:String, + val timestamp: Long, val createdBy:User, val auditAction:AuditAction, val changesDescription:String, val auditForType:AuditSearchType, - val idForAuditType:Int + val idForAuditType:String ) diff --git a/src/main/kotlin/model/Project.kt b/src/main/kotlin/model/Project.kt index 3694490..8b77e24 100644 --- a/src/main/kotlin/model/Project.kt +++ b/src/main/kotlin/model/Project.kt @@ -1,9 +1,9 @@ package com.berlin.model data class Project( - val id:Int, + val id:String, val name:String, val description:String?, - val statesId:List, - val tasksId:List + val statesId:List, + val tasksId:List ) diff --git a/src/main/kotlin/model/State.kt b/src/main/kotlin/model/State.kt index c32bb62..84c5970 100644 --- a/src/main/kotlin/model/State.kt +++ b/src/main/kotlin/model/State.kt @@ -1,7 +1,7 @@ package com.berlin.model data class State( - val stateId:Int, + val stateId:String, val name:String, - val projectId:Int, + val projectId:String, ) diff --git a/src/main/kotlin/model/Task.kt b/src/main/kotlin/model/Task.kt index 0b946ff..1c576a3 100644 --- a/src/main/kotlin/model/Task.kt +++ b/src/main/kotlin/model/Task.kt @@ -2,11 +2,11 @@ package com.berlin.model data class Task( - val id:Int, - val projectId:Int, + val id:String, + val projectId:String, val title:String, val description:String?, - val stateId:Int, + val stateId:String, val assignedTo:User, val createBy:User, val auditLogs:List diff --git a/src/main/kotlin/model/User.kt b/src/main/kotlin/model/User.kt index 32952e2..df2e76f 100644 --- a/src/main/kotlin/model/User.kt +++ b/src/main/kotlin/model/User.kt @@ -2,7 +2,7 @@ package com.berlin.model data class User( - val id:Int, + val id:String, val userName:String, val password:String, val role:UserRole From cfc2deb772f525f90462369adc4c25d079f811f0 Mon Sep 17 00:00:00 2001 From: Marwan Qashwa Date: Mon, 28 Apr 2025 17:27:35 +0300 Subject: [PATCH 5/8] refactor add some methods to repos --- src/main/kotlin/data/CsvAuditRepository.kt | 4 ++++ src/main/kotlin/data/CsvStateRepository.kt | 8 ++++++++ src/main/kotlin/data/CsvTaskRepository.kt | 5 +++++ src/main/kotlin/logic/repositories/AuditRepository.kt | 2 +- src/main/kotlin/logic/repositories/StateRepository.kt | 2 ++ src/main/kotlin/logic/repositories/TaskRepository.kt | 2 ++ src/main/kotlin/model/AuditLog.kt | 4 ++-- .../kotlin/model/{AuditSearchType.kt => EntityType.kt} | 2 +- src/main/kotlin/model/State.kt | 2 +- 9 files changed, 26 insertions(+), 5 deletions(-) rename src/main/kotlin/model/{AuditSearchType.kt => EntityType.kt} (60%) diff --git a/src/main/kotlin/data/CsvAuditRepository.kt b/src/main/kotlin/data/CsvAuditRepository.kt index d3a1b6b..7f73b00 100644 --- a/src/main/kotlin/data/CsvAuditRepository.kt +++ b/src/main/kotlin/data/CsvAuditRepository.kt @@ -15,4 +15,8 @@ class CsvAuditRepository:AuditRepository { override fun getAuditLogsByTaskId(taskId: String): List { return emptyList() } + + override fun getAuditLogsByUserId(userId: String): List { + return emptyList() + } } \ No newline at end of file diff --git a/src/main/kotlin/data/CsvStateRepository.kt b/src/main/kotlin/data/CsvStateRepository.kt index ed6d159..043a883 100644 --- a/src/main/kotlin/data/CsvStateRepository.kt +++ b/src/main/kotlin/data/CsvStateRepository.kt @@ -15,4 +15,12 @@ class CsvStateRepository:StateRepository { override fun deleteState(stateId: String):Boolean { return false } + + override fun updateState(state: State): Boolean { + return false + } + + override fun getStateByTaskId(taskId: String): State? { + return null + } } \ No newline at end of file diff --git a/src/main/kotlin/data/CsvTaskRepository.kt b/src/main/kotlin/data/CsvTaskRepository.kt index 8829c46..1f4645b 100644 --- a/src/main/kotlin/data/CsvTaskRepository.kt +++ b/src/main/kotlin/data/CsvTaskRepository.kt @@ -2,6 +2,7 @@ package com.berlin.data import com.berlin.logic.repositories.TaskRepository import com.berlin.model.Task +import com.berlin.model.User class CsvTaskRepository:TaskRepository { override fun createTask(task: Task): Boolean { @@ -23,4 +24,8 @@ class CsvTaskRepository:TaskRepository { override fun deleteTaskById(taskId: String): Boolean { return false } + + override fun getAssignedUserByTaskId(taskId: String): User? { + return null + } } \ No newline at end of file diff --git a/src/main/kotlin/logic/repositories/AuditRepository.kt b/src/main/kotlin/logic/repositories/AuditRepository.kt index 78a3f82..db0bcde 100644 --- a/src/main/kotlin/logic/repositories/AuditRepository.kt +++ b/src/main/kotlin/logic/repositories/AuditRepository.kt @@ -6,5 +6,5 @@ interface AuditRepository { fun addAuditLog(auditLog: AuditLog):Boolean fun getAuditLogsByProjectId(projectId:String):List fun getAuditLogsByTaskId(taskId:String):List - + fun getAuditLogsByUserId(userId:String):List } \ No newline at end of file diff --git a/src/main/kotlin/logic/repositories/StateRepository.kt b/src/main/kotlin/logic/repositories/StateRepository.kt index 3c3ed98..e0589d3 100644 --- a/src/main/kotlin/logic/repositories/StateRepository.kt +++ b/src/main/kotlin/logic/repositories/StateRepository.kt @@ -6,4 +6,6 @@ interface StateRepository { fun createState(state: State):Boolean fun getStatesByProjectId(projectId:String):List fun deleteState(stateId:String):Boolean + fun updateState(state: State):Boolean + fun getStateByTaskId(taskId:String):State? } \ No newline at end of file diff --git a/src/main/kotlin/logic/repositories/TaskRepository.kt b/src/main/kotlin/logic/repositories/TaskRepository.kt index 0cb9728..5dbbae8 100644 --- a/src/main/kotlin/logic/repositories/TaskRepository.kt +++ b/src/main/kotlin/logic/repositories/TaskRepository.kt @@ -1,6 +1,7 @@ package com.berlin.logic.repositories import com.berlin.model.Task +import com.berlin.model.User interface TaskRepository { fun createTask(task:Task):Boolean @@ -8,4 +9,5 @@ interface TaskRepository { fun getTasksByProjectId(projectId:String):List fun updateTask(task: Task):Boolean fun deleteTaskById(taskId: String):Boolean + fun getAssignedUserByTaskId(taskId: String):User? } \ No newline at end of file diff --git a/src/main/kotlin/model/AuditLog.kt b/src/main/kotlin/model/AuditLog.kt index 7bbf9b5..874e0bb 100644 --- a/src/main/kotlin/model/AuditLog.kt +++ b/src/main/kotlin/model/AuditLog.kt @@ -7,6 +7,6 @@ data class AuditLog( val createdBy:User, val auditAction:AuditAction, val changesDescription:String, - val auditForType:AuditSearchType, - val idForAuditType:String + val entityType:EntityType, + val entityId:String ) diff --git a/src/main/kotlin/model/AuditSearchType.kt b/src/main/kotlin/model/EntityType.kt similarity index 60% rename from src/main/kotlin/model/AuditSearchType.kt rename to src/main/kotlin/model/EntityType.kt index a1b8d60..f3b4354 100644 --- a/src/main/kotlin/model/AuditSearchType.kt +++ b/src/main/kotlin/model/EntityType.kt @@ -1,5 +1,5 @@ package com.berlin.model -enum class AuditSearchType { +enum class EntityType { PROJECT,TASK } \ No newline at end of file diff --git a/src/main/kotlin/model/State.kt b/src/main/kotlin/model/State.kt index 84c5970..a0a3580 100644 --- a/src/main/kotlin/model/State.kt +++ b/src/main/kotlin/model/State.kt @@ -1,7 +1,7 @@ package com.berlin.model data class State( - val stateId:String, + val id:String, val name:String, val projectId:String, ) From 9e2804c13db61bfd5a138a73bff8c8afaae52df0 Mon Sep 17 00:00:00 2001 From: Marwan Qashwa Date: Mon, 28 Apr 2025 17:31:13 +0300 Subject: [PATCH 6/8] make changes description nullable --- src/main/kotlin/model/AuditLog.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/model/AuditLog.kt b/src/main/kotlin/model/AuditLog.kt index 874e0bb..1cc246d 100644 --- a/src/main/kotlin/model/AuditLog.kt +++ b/src/main/kotlin/model/AuditLog.kt @@ -6,7 +6,7 @@ data class AuditLog( val timestamp: Long, val createdBy:User, val auditAction:AuditAction, - val changesDescription:String, + val changesDescription:String?, val entityType:EntityType, val entityId:String ) From c0f8ae65833d717a578180093d4b68d89a887e17 Mon Sep 17 00:00:00 2001 From: Marwan Qashwa Date: Mon, 28 Apr 2025 18:28:37 +0300 Subject: [PATCH 7/8] delete implementation of csv to pass test --- src/main/kotlin/data/CsvAuditRepository.kt | 22 ------------- .../data/CsvAuthenticationRepository.kt | 18 ----------- src/main/kotlin/data/CsvProjectRepository.kt | 26 ---------------- src/main/kotlin/data/CsvStateRepository.kt | 26 ---------------- src/main/kotlin/data/CsvTaskRepository.kt | 31 ------------------- src/test/kotlin/MainKtTest.kt | 21 ------------- 6 files changed, 144 deletions(-) delete mode 100644 src/main/kotlin/data/CsvAuditRepository.kt delete mode 100644 src/main/kotlin/data/CsvAuthenticationRepository.kt delete mode 100644 src/main/kotlin/data/CsvProjectRepository.kt delete mode 100644 src/main/kotlin/data/CsvStateRepository.kt delete mode 100644 src/main/kotlin/data/CsvTaskRepository.kt delete mode 100644 src/test/kotlin/MainKtTest.kt diff --git a/src/main/kotlin/data/CsvAuditRepository.kt b/src/main/kotlin/data/CsvAuditRepository.kt deleted file mode 100644 index 7f73b00..0000000 --- a/src/main/kotlin/data/CsvAuditRepository.kt +++ /dev/null @@ -1,22 +0,0 @@ -package com.berlin.data - -import com.berlin.logic.repositories.AuditRepository -import com.berlin.model.AuditLog - -class CsvAuditRepository:AuditRepository { - override fun addAuditLog(auditLog: AuditLog): Boolean { - return false - } - - override fun getAuditLogsByProjectId(projectId: String): List { - return emptyList() - } - - override fun getAuditLogsByTaskId(taskId: String): List { - return emptyList() - } - - override fun getAuditLogsByUserId(userId: String): List { - return emptyList() - } -} \ No newline at end of file diff --git a/src/main/kotlin/data/CsvAuthenticationRepository.kt b/src/main/kotlin/data/CsvAuthenticationRepository.kt deleted file mode 100644 index 7db01a7..0000000 --- a/src/main/kotlin/data/CsvAuthenticationRepository.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.berlin.data - -import com.berlin.logic.repositories.AuthenticationRepository -import com.berlin.model.User - -class CsvAuthenticationRepository:AuthenticationRepository { - override fun createUser(user: User): Boolean { - return false - } - - override fun getUserById(userId: String): User? { - return null - } - - override fun getAllUsers(): List { - return emptyList() - } -} \ No newline at end of file diff --git a/src/main/kotlin/data/CsvProjectRepository.kt b/src/main/kotlin/data/CsvProjectRepository.kt deleted file mode 100644 index 179f243..0000000 --- a/src/main/kotlin/data/CsvProjectRepository.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.berlin.data - -import com.berlin.logic.repositories.ProjectRepository -import com.berlin.model.Project - -class CsvProjectRepository:ProjectRepository { - override fun createProject(project: Project): Boolean { - return false - } - - override fun getProjectById(projectId: String): Project? { - return null - } - - override fun getAllProjects(): List { - return emptyList() - } - - override fun updateProject(project: Project):Boolean { - return false - } - - override fun deleteProject(projectId: String): Boolean { - return false - } -} \ No newline at end of file diff --git a/src/main/kotlin/data/CsvStateRepository.kt b/src/main/kotlin/data/CsvStateRepository.kt deleted file mode 100644 index 043a883..0000000 --- a/src/main/kotlin/data/CsvStateRepository.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.berlin.data - -import com.berlin.logic.repositories.StateRepository -import com.berlin.model.State - -class CsvStateRepository:StateRepository { - override fun createState(state: State): Boolean { - return false - } - - override fun getStatesByProjectId(projectId: String): List { - return emptyList() - } - - override fun deleteState(stateId: String):Boolean { - return false - } - - override fun updateState(state: State): Boolean { - return false - } - - override fun getStateByTaskId(taskId: String): State? { - return null - } -} \ No newline at end of file diff --git a/src/main/kotlin/data/CsvTaskRepository.kt b/src/main/kotlin/data/CsvTaskRepository.kt deleted file mode 100644 index 1f4645b..0000000 --- a/src/main/kotlin/data/CsvTaskRepository.kt +++ /dev/null @@ -1,31 +0,0 @@ -package com.berlin.data - -import com.berlin.logic.repositories.TaskRepository -import com.berlin.model.Task -import com.berlin.model.User - -class CsvTaskRepository:TaskRepository { - override fun createTask(task: Task): Boolean { - return false - } - - override fun getTaskById(taskId: String): Task? { - return null - } - - override fun getTasksByProjectId(projectId: String): List { - return emptyList() - } - - override fun updateTask(task: Task): Boolean { - return false - } - - override fun deleteTaskById(taskId: String): Boolean { - return false - } - - override fun getAssignedUserByTaskId(taskId: String): User? { - return null - } -} \ No newline at end of file diff --git a/src/test/kotlin/MainKtTest.kt b/src/test/kotlin/MainKtTest.kt deleted file mode 100644 index 6634e24..0000000 --- a/src/test/kotlin/MainKtTest.kt +++ /dev/null @@ -1,21 +0,0 @@ -package com.berlin - -import com.google.common.truth.Truth.assertThat -import org.junit.jupiter.api.Test -import java.io.ByteArrayOutputStream -import java.io.PrintStream - -class MainTest { - - @Test - fun `main prints Hello World`() { - val buffer = ByteArrayOutputStream() - System.setOut(PrintStream(buffer)) - - main() - - val output = buffer.toString().trim() - assertThat(output) - .isEqualTo("Hello World!") - } -} From 5b46418b1ddb75e7a8713ef3df396a894dab59da Mon Sep 17 00:00:00 2001 From: Marwan Qashwa Date: Mon, 28 Apr 2025 19:11:03 +0300 Subject: [PATCH 8/8] add main.kt test --- src/test/kotlin/MainKtTest.kt | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/test/kotlin/MainKtTest.kt diff --git a/src/test/kotlin/MainKtTest.kt b/src/test/kotlin/MainKtTest.kt new file mode 100644 index 0000000..6634e24 --- /dev/null +++ b/src/test/kotlin/MainKtTest.kt @@ -0,0 +1,21 @@ +package com.berlin + +import com.google.common.truth.Truth.assertThat +import org.junit.jupiter.api.Test +import java.io.ByteArrayOutputStream +import java.io.PrintStream + +class MainTest { + + @Test + fun `main prints Hello World`() { + val buffer = ByteArrayOutputStream() + System.setOut(PrintStream(buffer)) + + main() + + val output = buffer.toString().trim() + assertThat(output) + .isEqualTo("Hello World!") + } +}