All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.qmetric.penfold.app.readstore.postgres.subscribers.TaskRequeuedSubscriber.scala Maven / Gradle / Ivy

package com.qmetric.penfold.app.readstore.postgres.subscribers

import com.qmetric.penfold.app.readstore.postgres.TaskData
import com.qmetric.penfold.domain.event.{Event, TaskRequeued}
import com.qmetric.penfold.domain.model.Status.Ready

class TaskRequeuedSubscriber extends TaskUpdateSubscriber[TaskRequeued] {

  override def applicable(event: Event) = event.isInstanceOf[TaskRequeued]

  override def handleUpdateEvent(event: TaskRequeued, existingTask: TaskData) = {
    val score = event.score.getOrElse(existingTask.score)

    existingTask.copy(
      previousStatus = Some(updatePreviousStatus(existingTask)),
      status = Ready,
      statusLastModified = event.created.getMillis,
      score = score,
      sort = score,
      assignee = event.assignee,
      payload = patchPayloadIfExists(existingTask, event.payloadUpdate)
    )
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy