mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-22 10:28:27 +00:00
Use a minimum age of items to remove
In order to keep deleted items for a while, the periodic task can now use a duration to only remove items with a certain age. This can be used to ensure that a deleted item stays at least X days before it will be removed from the database. Refs: #347
This commit is contained in:
@ -12,7 +12,8 @@ import cats.implicits._
|
||||
import docspell.backend.BackendApp
|
||||
import docspell.backend.auth.AuthToken
|
||||
import docspell.backend.ops.OCollective
|
||||
import docspell.common.{EmptyTrashArgs, ListType}
|
||||
import docspell.common.EmptyTrashArgs
|
||||
import docspell.common.ListType
|
||||
import docspell.restapi.model._
|
||||
import docspell.restserver.conv.Conversions
|
||||
import docspell.restserver.http4s._
|
||||
@ -56,7 +57,12 @@ object CollectiveRoutes {
|
||||
settings.classifier.listType
|
||||
)
|
||||
),
|
||||
Some(settings.emptyTrashSchedule)
|
||||
Some(
|
||||
OCollective.EmptyTrash(
|
||||
settings.emptyTrash.schedule,
|
||||
settings.emptyTrash.minAge
|
||||
)
|
||||
)
|
||||
)
|
||||
res <-
|
||||
backend.collective
|
||||
@ -67,11 +73,11 @@ object CollectiveRoutes {
|
||||
case GET -> Root / "settings" =>
|
||||
for {
|
||||
settDb <- backend.collective.findSettings(user.account.collective)
|
||||
trash = settDb.flatMap(_.emptyTrash).getOrElse(OCollective.EmptyTrash.default)
|
||||
sett = settDb.map(c =>
|
||||
CollectiveSettings(
|
||||
c.language,
|
||||
c.integrationEnabled,
|
||||
c.emptyTrash.getOrElse(EmptyTrashArgs.defaultSchedule),
|
||||
ClassifierSetting(
|
||||
c.classifier.map(_.itemCount).getOrElse(0),
|
||||
c.classifier
|
||||
@ -79,6 +85,10 @@ object CollectiveRoutes {
|
||||
.getOrElse(CalEvent.unsafe("*-1/3-01 01:00:00")),
|
||||
c.classifier.map(_.categories).getOrElse(Nil),
|
||||
c.classifier.map(_.listType).getOrElse(ListType.whitelist)
|
||||
),
|
||||
EmptyTrashSetting(
|
||||
trash.schedule,
|
||||
trash.minAge
|
||||
)
|
||||
)
|
||||
)
|
||||
@ -103,9 +113,12 @@ object CollectiveRoutes {
|
||||
resp <- Ok(BasicResult(true, "Task submitted"))
|
||||
} yield resp
|
||||
|
||||
case POST -> Root / "emptytrash" / "startonce" =>
|
||||
case req @ POST -> Root / "emptytrash" / "startonce" =>
|
||||
for {
|
||||
_ <- backend.collective.startEmptyTrash(user.account.collective)
|
||||
data <- req.as[EmptyTrashSetting]
|
||||
_ <- backend.collective.startEmptyTrash(
|
||||
EmptyTrashArgs(user.account.collective, data.minAge)
|
||||
)
|
||||
resp <- Ok(BasicResult(true, "Task submitted"))
|
||||
} yield resp
|
||||
|
||||
|
@ -49,7 +49,7 @@ object NotifyDueItemsRoutes {
|
||||
newId <- Ident.randomId[F]
|
||||
task <- makeTask(newId, getBaseUrl(cfg, req), user.account, data)
|
||||
res <-
|
||||
ut.executeNow(UserTaskScope(user.account), task)
|
||||
ut.executeNow(UserTaskScope(user.account), None, task)
|
||||
.attempt
|
||||
.map(Conversions.basicResult(_, "Submitted successfully."))
|
||||
resp <- Ok(res)
|
||||
@ -69,7 +69,7 @@ object NotifyDueItemsRoutes {
|
||||
for {
|
||||
task <- makeTask(data.id, getBaseUrl(cfg, req), user.account, data)
|
||||
res <-
|
||||
ut.submitNotifyDueItems(UserTaskScope(user.account), task)
|
||||
ut.submitNotifyDueItems(UserTaskScope(user.account), None, task)
|
||||
.attempt
|
||||
.map(Conversions.basicResult(_, "Saved successfully"))
|
||||
resp <- Ok(res)
|
||||
@ -87,7 +87,7 @@ object NotifyDueItemsRoutes {
|
||||
newId <- Ident.randomId[F]
|
||||
task <- makeTask(newId, getBaseUrl(cfg, req), user.account, data)
|
||||
res <-
|
||||
ut.submitNotifyDueItems(UserTaskScope(user.account), task)
|
||||
ut.submitNotifyDueItems(UserTaskScope(user.account), None, task)
|
||||
.attempt
|
||||
.map(Conversions.basicResult(_, "Saved successfully."))
|
||||
resp <- Ok(res)
|
||||
|
@ -46,7 +46,7 @@ object ScanMailboxRoutes {
|
||||
newId <- Ident.randomId[F]
|
||||
task <- makeTask(newId, user.account, data)
|
||||
res <-
|
||||
ut.executeNow(UserTaskScope(user.account), task)
|
||||
ut.executeNow(UserTaskScope(user.account), None, task)
|
||||
.attempt
|
||||
.map(Conversions.basicResult(_, "Submitted successfully."))
|
||||
resp <- Ok(res)
|
||||
@ -66,7 +66,7 @@ object ScanMailboxRoutes {
|
||||
for {
|
||||
task <- makeTask(data.id, user.account, data)
|
||||
res <-
|
||||
ut.submitScanMailbox(UserTaskScope(user.account), task)
|
||||
ut.submitScanMailbox(UserTaskScope(user.account), None, task)
|
||||
.attempt
|
||||
.map(Conversions.basicResult(_, "Saved successfully."))
|
||||
resp <- Ok(res)
|
||||
@ -84,7 +84,7 @@ object ScanMailboxRoutes {
|
||||
newId <- Ident.randomId[F]
|
||||
task <- makeTask(newId, user.account, data)
|
||||
res <-
|
||||
ut.submitScanMailbox(UserTaskScope(user.account), task)
|
||||
ut.submitScanMailbox(UserTaskScope(user.account), None, task)
|
||||
.attempt
|
||||
.map(Conversions.basicResult(_, "Saved successfully."))
|
||||
resp <- Ok(res)
|
||||
|
Reference in New Issue
Block a user