Skip to content
This repository has been archived by the owner on Dec 3, 2022. It is now read-only.

Commit

Permalink
Progress UI should be updated when upload fails (#218)
Browse files Browse the repository at this point in the history
* [uishell] Rename UIRequestCycle as ProgressUI

* [uishell] Rename ProgressUI.handle as requestCycle

* [uishell] Remove upload from ProgressUI upon error

* [uishell] Remove upload from ProgressUI upon completion
  • Loading branch information
kemitix authored Sep 28, 2019
1 parent 7b567ab commit 22d2cf4
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import zio.{UIO, ZIO}

import scala.io.AnsiColor.{GREEN, RESET}

object UIRequestCycle {
object ProgressUI {

private case class UploadState(transferred: Long, fileLength: Long)

Expand All @@ -20,10 +20,11 @@ object UIRequestCycle {

private val statusHeight = 3

def handle(localFile: LocalFile,
bytesTransferred: Long,
index: Int,
totalBytesSoFar: Long): ZIO[Console with Config, Nothing, Unit] =
def requestCycle(
localFile: LocalFile,
bytesTransferred: Long,
index: Int,
totalBytesSoFar: Long): ZIO[Console with Config, Nothing, Unit] =
for {
_ <- ZIO.when(bytesTransferred < localFile.file.length())(
stillUploading(localFile.remoteKey,
Expand Down Expand Up @@ -62,7 +63,7 @@ object UIRequestCycle {
} *> Console.putStr(resetCursor)
}

private def finishedUploading(
def finishedUploading(
remoteKey: RemoteKey
): ZIO[Any, Nothing, Unit] = {
UIO(uploads.updateAndGet((m: Map[RemoteKey, UploadState]) =>
Expand Down
14 changes: 8 additions & 6 deletions uishell/src/main/scala/net/kemitix/thorp/uishell/UIShell.scala
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@ object UIShell {
bytesTransferred,
index,
totalBytesSoFar) =>
UIRequestCycle.handle(localFile,
bytesTransferred,
index,
totalBytesSoFar)
ProgressUI.requestCycle(localFile,
bytesTransferred,
index,
totalBytesSoFar)
}
}

Expand All @@ -51,11 +51,13 @@ object UIShell {
case StorageEvent.CopyEvent(sourceKey, targetKey) =>
Console.putMessageLnB(CopyComplete(sourceKey, targetKey), batchMode)
case StorageEvent.UploadEvent(remoteKey, md5Hash) =>
Console.putMessageLnB(UploadComplete(remoteKey), batchMode)
ProgressUI.finishedUploading(remoteKey) *>
Console.putMessageLnB(UploadComplete(remoteKey), batchMode)
case StorageEvent.DeleteEvent(remoteKey) =>
Console.putMessageLnB(DeleteComplete(remoteKey), batchMode)
case StorageEvent.ErrorEvent(action, remoteKey, e) =>
Console.putMessageLnB(ErrorQueueEventOccurred(action, e), batchMode)
ProgressUI.finishedUploading(remoteKey) *>
Console.putMessageLnB(ErrorQueueEventOccurred(action, e), batchMode)
case StorageEvent.ShutdownEvent() => UIO.unit
}
} yield ()
Expand Down

0 comments on commit 22d2cf4

Please sign in to comment.