def isAccepted()

in pekko-sample-distributed-workers-scala/src/main/scala/worker/WorkState.scala [33:58]


  def isAccepted(workId: String): Boolean = acceptedWorkIds.contains(workId)
  def isInProgress(workId: String): Boolean = workInProgress.contains(workId)
  def isDone(workId: String): Boolean = doneWorkIds.contains(workId)

  def updated(event: WorkDomainEvent): WorkState = event match {
    case WorkAccepted(work) =>
      copy(pendingWork = pendingWork.enqueue(work), acceptedWorkIds = acceptedWorkIds + work.workId)

    case WorkStarted(workId) =>
      val (work, rest) = pendingWork.dequeue
      require(workId == work.workId, s"WorkStarted expected workId $workId == ${work.workId}")
      copy(pendingWork = rest, workInProgress = workInProgress + (workId -> work))

    case WorkCompleted(workId) =>
      copy(workInProgress = workInProgress - workId, doneWorkIds = doneWorkIds + workId)

    case WorkerFailed(workId) =>
      copy(pendingWork = pendingWork.enqueue(workInProgress(workId)), workInProgress = workInProgress - workId)

    case WorkerTimedOut(workId) =>
      copy(pendingWork = pendingWork.enqueue(workInProgress(workId)), workInProgress = workInProgress - workId)

    case WorkInProgressReset =>
      copy(pendingWork = pendingWork.enqueueAll(workInProgress.values), workInProgress = Map.empty)

  }