Progress UI should be updated when upload fails (#218)
* [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
This commit is contained in:
parent
7b567ab28c
commit
22d2cf4a57
2 changed files with 15 additions and 12 deletions
|
@ -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)
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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]) =>
|
|
@ -35,10 +35,10 @@ object UIShell {
|
|||
bytesTransferred,
|
||||
index,
|
||||
totalBytesSoFar) =>
|
||||
UIRequestCycle.handle(localFile,
|
||||
bytesTransferred,
|
||||
index,
|
||||
totalBytesSoFar)
|
||||
ProgressUI.requestCycle(localFile,
|
||||
bytesTransferred,
|
||||
index,
|
||||
totalBytesSoFar)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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 ()
|
||||
|
|
Loading…
Reference in a new issue