mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-22 10:28:27 +00:00
Refactor user tasks to support collective and user scopes
Before, there were periodic tasks run per collective and not user by making sure that submitter + group are the same value. This is now encoded in `UserTaskScope` so it is now obvious and errors can be reduced when using this.
This commit is contained in:
@ -8,6 +8,7 @@ package docspell.restserver.routes
|
||||
|
||||
import cats.effect._
|
||||
import cats.implicits._
|
||||
|
||||
import docspell.backend.BackendApp
|
||||
import docspell.backend.auth.AuthToken
|
||||
import docspell.backend.ops.OCollective
|
||||
@ -15,6 +16,7 @@ import docspell.common.{EmptyTrashArgs, ListType}
|
||||
import docspell.restapi.model._
|
||||
import docspell.restserver.conv.Conversions
|
||||
import docspell.restserver.http4s._
|
||||
|
||||
import com.github.eikek.calev.CalEvent
|
||||
import org.http4s.HttpRoutes
|
||||
import org.http4s.circe.CirceEntityDecoder._
|
||||
|
@ -38,7 +38,7 @@ object NotifyDueItemsRoutes {
|
||||
HttpRoutes.of {
|
||||
case GET -> Root / Ident(id) =>
|
||||
(for {
|
||||
task <- ut.findNotifyDueItems(id, user.account)
|
||||
task <- ut.findNotifyDueItems(id, UserTaskScope(user.account))
|
||||
res <- OptionT.liftF(taskToSettings(user.account, backend, task))
|
||||
resp <- OptionT.liftF(Ok(res))
|
||||
} yield resp).getOrElseF(NotFound())
|
||||
@ -49,7 +49,7 @@ object NotifyDueItemsRoutes {
|
||||
newId <- Ident.randomId[F]
|
||||
task <- makeTask(newId, getBaseUrl(cfg, req), user.account, data)
|
||||
res <-
|
||||
ut.executeNow(user.account, task)
|
||||
ut.executeNow(UserTaskScope(user.account), task)
|
||||
.attempt
|
||||
.map(Conversions.basicResult(_, "Submitted successfully."))
|
||||
resp <- Ok(res)
|
||||
@ -58,7 +58,7 @@ object NotifyDueItemsRoutes {
|
||||
case DELETE -> Root / Ident(id) =>
|
||||
for {
|
||||
res <-
|
||||
ut.deleteTask(user.account, id)
|
||||
ut.deleteTask(UserTaskScope(user.account), id)
|
||||
.attempt
|
||||
.map(Conversions.basicResult(_, "Deleted successfully"))
|
||||
resp <- Ok(res)
|
||||
@ -69,7 +69,7 @@ object NotifyDueItemsRoutes {
|
||||
for {
|
||||
task <- makeTask(data.id, getBaseUrl(cfg, req), user.account, data)
|
||||
res <-
|
||||
ut.submitNotifyDueItems(user.account, task)
|
||||
ut.submitNotifyDueItems(UserTaskScope(user.account), task)
|
||||
.attempt
|
||||
.map(Conversions.basicResult(_, "Saved successfully"))
|
||||
resp <- Ok(res)
|
||||
@ -87,14 +87,14 @@ object NotifyDueItemsRoutes {
|
||||
newId <- Ident.randomId[F]
|
||||
task <- makeTask(newId, getBaseUrl(cfg, req), user.account, data)
|
||||
res <-
|
||||
ut.submitNotifyDueItems(user.account, task)
|
||||
ut.submitNotifyDueItems(UserTaskScope(user.account), task)
|
||||
.attempt
|
||||
.map(Conversions.basicResult(_, "Saved successfully."))
|
||||
resp <- Ok(res)
|
||||
} yield resp
|
||||
|
||||
case GET -> Root =>
|
||||
ut.getNotifyDueItems(user.account)
|
||||
ut.getNotifyDueItems(UserTaskScope(user.account))
|
||||
.evalMap(task => taskToSettings(user.account, backend, task))
|
||||
.compile
|
||||
.toVector
|
||||
|
@ -35,7 +35,7 @@ object ScanMailboxRoutes {
|
||||
HttpRoutes.of {
|
||||
case GET -> Root / Ident(id) =>
|
||||
(for {
|
||||
task <- ut.findScanMailbox(id, user.account)
|
||||
task <- ut.findScanMailbox(id, UserTaskScope(user.account))
|
||||
res <- OptionT.liftF(taskToSettings(user.account, backend, task))
|
||||
resp <- OptionT.liftF(Ok(res))
|
||||
} yield resp).getOrElseF(NotFound())
|
||||
@ -46,7 +46,7 @@ object ScanMailboxRoutes {
|
||||
newId <- Ident.randomId[F]
|
||||
task <- makeTask(newId, user.account, data)
|
||||
res <-
|
||||
ut.executeNow(user.account, task)
|
||||
ut.executeNow(UserTaskScope(user.account), task)
|
||||
.attempt
|
||||
.map(Conversions.basicResult(_, "Submitted successfully."))
|
||||
resp <- Ok(res)
|
||||
@ -55,7 +55,7 @@ object ScanMailboxRoutes {
|
||||
case DELETE -> Root / Ident(id) =>
|
||||
for {
|
||||
res <-
|
||||
ut.deleteTask(user.account, id)
|
||||
ut.deleteTask(UserTaskScope(user.account), id)
|
||||
.attempt
|
||||
.map(Conversions.basicResult(_, "Deleted successfully."))
|
||||
resp <- Ok(res)
|
||||
@ -66,7 +66,7 @@ object ScanMailboxRoutes {
|
||||
for {
|
||||
task <- makeTask(data.id, user.account, data)
|
||||
res <-
|
||||
ut.submitScanMailbox(user.account, task)
|
||||
ut.submitScanMailbox(UserTaskScope(user.account), task)
|
||||
.attempt
|
||||
.map(Conversions.basicResult(_, "Saved successfully."))
|
||||
resp <- Ok(res)
|
||||
@ -84,14 +84,14 @@ object ScanMailboxRoutes {
|
||||
newId <- Ident.randomId[F]
|
||||
task <- makeTask(newId, user.account, data)
|
||||
res <-
|
||||
ut.submitScanMailbox(user.account, task)
|
||||
ut.submitScanMailbox(UserTaskScope(user.account), task)
|
||||
.attempt
|
||||
.map(Conversions.basicResult(_, "Saved successfully."))
|
||||
resp <- Ok(res)
|
||||
} yield resp
|
||||
|
||||
case GET -> Root =>
|
||||
ut.getScanMailbox(user.account)
|
||||
ut.getScanMailbox(UserTaskScope(user.account))
|
||||
.evalMap(task => taskToSettings(user.account, backend, task))
|
||||
.compile
|
||||
.toVector
|
||||
|
Reference in New Issue
Block a user