mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-22 10:28:27 +00:00
Return results for empty trash task
This commit is contained in:
@ -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](
|
||||||
|
@ -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."
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user