Skip to content

Instantly share code, notes, and snippets.

@le0nidas
Created June 19, 2021 10:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save le0nidas/b89f0460ea076c98457b8758f7e84c21 to your computer and use it in GitHub Desktop.
Save le0nidas/b89f0460ea076c98457b8758f7e84c21 to your computer and use it in GitHub Desktop.
class TaskChecker(
seamToAssigner: ((Task) -> Unit)? = null
) {
private val safeSendTaskToAssigner: (Task) -> Unit = seamToAssigner ?: ::sendTaskToAssigner
fun check(task: Task): CheckResult {
if (isNotCreatedInCurrentWeek(task)) return Invalid
if (isResolved(task)) return Invalid
if (isNotAssigned(task)) return Invalid
return Valid
}
private fun isNotAssigned(task: Task): Boolean {
if (task.assignedTo != Nobody) return false
safeSendTaskToAssigner(task)
return true
}
private fun sendTaskToAssigner(task: Task) {
val connection = Connection()
val assigner = TaskAssigner(connection)
assigner.add(task)
}
//...
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment