Return results for empty trash task

This commit is contained in:
eikek
2022-03-20 11:41:01 +01:00
parent 0b3fe8eb5c
commit 892b3cdcfd
2 changed files with 26 additions and 2 deletions

View File

@ -39,7 +39,7 @@ object EmptyTrashTask {
def apply[F[_]: Async]( def apply[F[_]: Async](
itemOps: OItem[F], itemOps: OItem[F],
itemSearchOps: OItemSearch[F] itemSearchOps: OItemSearch[F]
): Task[F, Args, Unit] = ): Task[F, Args, Result] =
Task { ctx => Task { ctx =>
for { for {
now <- Timestamp.current[F] now <- Timestamp.current[F]
@ -49,7 +49,7 @@ object EmptyTrashTask {
) )
nDeleted <- deleteAll(ctx.args, maxDate, itemOps, itemSearchOps, ctx) nDeleted <- deleteAll(ctx.args, maxDate, itemOps, itemSearchOps, ctx)
_ <- ctx.logger.info(s"Finished deleting $nDeleted items") _ <- ctx.logger.info(s"Finished deleting $nDeleted items")
} yield () } yield Result(nDeleted)
} }
private def deleteAll[F[_]: Async]( private def deleteAll[F[_]: Async](

View File

@ -0,0 +1,24 @@
/*
* Copyright 2020 Eike K. & Contributors
*
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
package docspell.joex.emptytrash
import docspell.scheduler.JobTaskResultEncoder
import io.circe.Encoder
import io.circe.generic.semiauto.deriveEncoder
final case class Result(removed: Int)
object Result {
implicit val jsonEncoder: Encoder[Result] =
deriveEncoder
implicit val jobTaskResultEncoder: JobTaskResultEncoder[Result] =
JobTaskResultEncoder.fromJson[Result].withMessage { result =>
s"Deleted ${result.removed} items."
}
}