Skip to content

Commit

Permalink
[TRELLO-2155] Refacto
Browse files Browse the repository at this point in the history
  • Loading branch information
charlescd committed Jan 13, 2024
1 parent ee1a2bc commit 68dba92
Show file tree
Hide file tree
Showing 11 changed files with 36 additions and 36 deletions.
2 changes: 1 addition & 1 deletion app/repositories/tasklock/TaskDetails.scala
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ case class TaskDetails(
startTime: LocalTime,
interval: FiniteDuration,
lastRunDate: OffsetDateTime,
lastRunStatus: String
lastRunError: Option[String]
)

object TaskDetails {
Expand Down
22 changes: 11 additions & 11 deletions app/repositories/tasklock/TaskDetailsTable.scala
Original file line number Diff line number Diff line change
Expand Up @@ -11,26 +11,26 @@ import scala.jdk.DurationConverters._

class TaskDetailsTable(tag: Tag) extends TypedDatabaseTable[TaskDetails, Int](tag, "task_details") {

def name = column[String]("name")
def startTime = column[LocalTime]("start_time")
def interval = column[Duration]("interval")
def lastRunDate = column[OffsetDateTime]("last_run_date")
def lastRunStatus = column[String]("last_run_status")
def name = column[String]("name")
def startTime = column[LocalTime]("start_time")
def interval = column[Duration]("interval")
def lastRunDate = column[OffsetDateTime]("last_run_date")
def lastRunError = column[Option[String]]("last_run_error")

type TaskData = (Int, String, LocalTime, Duration, OffsetDateTime, String)
type TaskData = (Int, String, LocalTime, Duration, OffsetDateTime, Option[String])

def constructTaskDetails: TaskData => TaskDetails = {
case (id, name, startTime, interval, lastRunDate, lastRunStatus) =>
TaskDetails(id, name, startTime, interval.toScala, lastRunDate, lastRunStatus)
case (id, name, startTime, interval, lastRunDate, lastRunError) =>
TaskDetails(id, name, startTime, interval.toScala, lastRunDate, lastRunError)
}

def extractTaskDetails: PartialFunction[TaskDetails, TaskData] = {
case TaskDetails(id, name, startTime, interval, lastRunDate, lastRunStatus) =>
(id, name, startTime, interval.toJava, lastRunDate, lastRunStatus)
case TaskDetails(id, name, startTime, interval, lastRunDate, lastRunError) =>
(id, name, startTime, interval.toJava, lastRunDate, lastRunError)
}

override def * : ProvenShape[TaskDetails] =
(id, name, startTime, interval, lastRunDate, lastRunStatus) <> (constructTaskDetails, extractTaskDetails.lift)
(id, name, startTime, interval, lastRunDate, lastRunError) <> (constructTaskDetails, extractTaskDetails.lift)

}

Expand Down
12 changes: 6 additions & 6 deletions app/tasks/ScheduledTask.scala
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ abstract class ScheduledTask(
val startTime: LocalTime
val interval: FiniteDuration

private def createTaskModel(status: String) =
TaskDetails(taskId, taskName, startTime, interval, lastRunDate = OffsetDateTime.now(), status)
private def createTaskDetails(error: Option[String]) =
TaskDetails(taskId, taskName, startTime, interval, lastRunDate = OffsetDateTime.now(), error)

private def createOrUpdateTaskDetails(taskModel: TaskDetails) =
private def createOrUpdateTaskDetails(taskDetails: TaskDetails) =
taskRepository
.createOrUpdate(taskModel)
.createOrUpdate(taskDetails)
.map(_ => logger.debug(s"$taskName updated in DB"))
.recover(err => logger.errorWithTitle("task_failed", s"$taskName failed", err))

Expand All @@ -48,11 +48,11 @@ abstract class ScheduledTask(
runTask()
.flatMap { _ =>
logger.info(s"$taskName finished")
createOrUpdateTaskDetails(createTaskModel("success"))
createOrUpdateTaskDetails(createTaskDetails(None))
}
.recoverWith { err =>
logger.errorWithTitle("task_failed", s"$taskName failed", err)
createOrUpdateTaskDetails(createTaskModel("failure"))
createOrUpdateTaskDetails(createTaskDetails(Some(err.getMessage)))
}
} else {
logger.info(s"Lock for $taskName is already taken by another instance. Nothing to do here.")
Expand Down
4 changes: 2 additions & 2 deletions app/tasks/account/InactiveAccountTask.scala
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ class InactiveAccountTask(
inactiveDgccrfAccountRemoveTask: InactiveDgccrfAccountRemoveTask,
inactiveDgccrfAccountSendReminderTask: InactiveDgccrfAccountReminderTask,
taskConfiguration: TaskConfiguration,
taskLockRepository: TaskRepositoryInterface
taskRepository: TaskRepositoryInterface
)(implicit executionContext: ExecutionContext)
extends ScheduledTask(1, "inactive_account_task", taskLockRepository, actorSystem, taskConfiguration) {
extends ScheduledTask(1, "inactive_account_task", taskRepository, actorSystem, taskConfiguration) {

override val logger: Logger = Logger(this.getClass)
override val startTime: LocalTime = taskConfiguration.inactiveAccounts.startTime
Expand Down
4 changes: 2 additions & 2 deletions app/tasks/company/CompanyUpdateTask.scala
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ class CompanyUpdateTask(
companySyncService: CompanySyncServiceInterface,
companySyncRepository: CompanySyncRepositoryInterface,
taskConfiguration: TaskConfiguration,
taskLockRepository: TaskRepositoryInterface
taskRepository: TaskRepositoryInterface
)(implicit
executionContext: ExecutionContext,
materializer: Materializer
) extends ScheduledTask(5, "company_update_task", taskLockRepository, actorSystem, taskConfiguration) {
) extends ScheduledTask(5, "company_update_task", taskRepository, actorSystem, taskConfiguration) {

implicit val session: SlickSession = SlickSession.forConfig("slick.dbs.default")

Expand Down
4 changes: 2 additions & 2 deletions app/tasks/report/ReportClosureTask.scala
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,10 @@ class ReportClosureTask(
companyRepository: CompanyRepositoryInterface,
mailService: MailService,
taskConfiguration: TaskConfiguration,
taskLockRepository: TaskRepositoryInterface,
taskRepository: TaskRepositoryInterface,
messagesApi: MessagesApi
)(implicit val executionContext: ExecutionContext)
extends ScheduledTask(2, "report_closure_task", taskLockRepository, actorSystem, taskConfiguration) {
extends ScheduledTask(2, "report_closure_task", taskRepository, actorSystem, taskConfiguration) {

override val logger: Logger = Logger(this.getClass)
override val startTime: LocalTime = taskConfiguration.reportClosure.startTime
Expand Down
4 changes: 2 additions & 2 deletions app/tasks/report/ReportNotificationTask.scala
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ class ReportNotificationTask(
userRepository: UserRepositoryInterface,
mailService: MailService,
taskConfiguration: TaskConfiguration,
taskLockRepository: TaskRepositoryInterface
taskRepository: TaskRepositoryInterface
)(implicit executionContext: ExecutionContext)
extends ScheduledTask(3, "report_notification_task", taskLockRepository, actorSystem, taskConfiguration) {
extends ScheduledTask(3, "report_notification_task", taskRepository, actorSystem, taskConfiguration) {

override val logger: Logger = Logger(this.getClass)
override val startTime: LocalTime = taskConfiguration.subscription.startTime
Expand Down
4 changes: 2 additions & 2 deletions app/tasks/report/ReportRemindersTask.scala
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ class ReportRemindersTask(
mailService: MailServiceInterface,
companiesVisibilityOrchestrator: CompaniesVisibilityOrchestrator,
taskConfiguration: TaskConfiguration,
taskLockRepository: TaskRepositoryInterface
taskRepository: TaskRepositoryInterface
)(implicit val executionContext: ExecutionContext)
extends ScheduledTask(4, "report_reminders_task", taskLockRepository, actorSystem, taskConfiguration) {
extends ScheduledTask(4, "report_reminders_task", taskRepository, actorSystem, taskConfiguration) {

override val logger: Logger = Logger(this.getClass)
override val startTime: LocalTime = taskConfiguration.reportReminders.startTime
Expand Down
2 changes: 1 addition & 1 deletion conf/db/migration/default/V17__task_details_table.sql
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ CREATE TABLE IF NOT EXISTS task_details (
start_time TIME WITHOUT TIME ZONE NOT NULL,
interval INTERVAL NOT NULL,
last_run_date TIMESTAMP WITH TIME ZONE NOT NULL,
last_run_status VARCHAR NOT NULL
last_run_error VARCHAR
);
10 changes: 5 additions & 5 deletions test/tasks/company/CompanyUpdateTaskSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class CompanyUpdateTaskSpec(implicit ee: ExecutionEnv)
val (app, components) = TestApp.buildApp()
implicit val mat: Materializer = app.materializer

val taskLockRepositoryMock = new TaskRepositoryMock()
val taskRepositoryMock = new TaskRepositoryMock()

"CompanyUpdateTask" should {
sequential
Expand All @@ -38,7 +38,7 @@ class CompanyUpdateTaskSpec(implicit ee: ExecutionEnv)
serviceMock,
components.companySyncRepository,
components.applicationConfiguration.task,
taskLockRepositoryMock
taskRepositoryMock
)
val company = Fixtures.genCompany.sample.get
val newName = Gen.alphaNumStr.sample.get
Expand Down Expand Up @@ -89,7 +89,7 @@ class CompanyUpdateTaskSpec(implicit ee: ExecutionEnv)
serviceMock,
components.companySyncRepository,
components.applicationConfiguration.task,
taskLockRepositoryMock
taskRepositoryMock
)
val company = Fixtures.genCompany.sample.get
val newName = Gen.alphaNumStr.sample.get
Expand Down Expand Up @@ -135,7 +135,7 @@ class CompanyUpdateTaskSpec(implicit ee: ExecutionEnv)
serviceMock,
components.companySyncRepository,
components.applicationConfiguration.task,
taskLockRepositoryMock
taskRepositoryMock
)
val company = Fixtures.genCompany.sample.get
// Truncated to MILLIS because PG does not handle nanos
Expand Down Expand Up @@ -185,7 +185,7 @@ class CompanyUpdateTaskSpec(implicit ee: ExecutionEnv)
serviceMock,
components.companySyncRepository,
components.applicationConfiguration.task,
taskLockRepositoryMock
taskRepositoryMock
)
val company = Fixtures.genCompany.sample.get
// Truncated to MILLIS because PG does not handle nanos
Expand Down
4 changes: 2 additions & 2 deletions test/tasks/report/ReportRemindersTaskUnitSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ import scala.concurrent.duration.DurationInt

class ReportRemindersTaskUnitSpec extends Specification with FutureMatchers {

val taskLockRepositoryMock = new TaskRepositoryMock()
val taskRepositoryMock = new TaskRepositoryMock()

val taskConf = TaskConfiguration(
active = true,
Expand Down Expand Up @@ -74,7 +74,7 @@ class ReportRemindersTaskUnitSpec extends Specification with FutureMatchers {
mailService,
companiesVisibilityOrchestrator,
taskConf,
taskLockRepositoryMock
taskRepositoryMock
)

val company1 = Fixtures.genCompany.sample.get
Expand Down

0 comments on commit 68dba92

Please sign in to comment.