mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-06 15:15:58 +00:00
Add a route to trigger the convert-all-pdf task for a collective
This commit is contained in:
parent
69674eb485
commit
081c4da903
@ -8,6 +8,27 @@ import docspell.store.records.RJob
|
|||||||
|
|
||||||
object JobFactory {
|
object JobFactory {
|
||||||
|
|
||||||
|
def convertAllPdfs[F[_]: Sync](
|
||||||
|
collective: Option[Ident],
|
||||||
|
account: AccountId,
|
||||||
|
prio: Priority
|
||||||
|
): F[RJob] =
|
||||||
|
for {
|
||||||
|
id <- Ident.randomId[F]
|
||||||
|
now <- Timestamp.current[F]
|
||||||
|
job = RJob.newJob(
|
||||||
|
id,
|
||||||
|
ConvertAllPdfArgs.taskName,
|
||||||
|
account.collective,
|
||||||
|
ConvertAllPdfArgs(collective),
|
||||||
|
s"Convert all pdfs not yet converted",
|
||||||
|
now,
|
||||||
|
account.user,
|
||||||
|
prio,
|
||||||
|
None
|
||||||
|
)
|
||||||
|
} yield job
|
||||||
|
|
||||||
def reprocessItem[F[_]: Sync](
|
def reprocessItem[F[_]: Sync](
|
||||||
args: ReProcessItemArgs,
|
args: ReProcessItemArgs,
|
||||||
account: AccountId,
|
account: AccountId,
|
||||||
|
@ -57,6 +57,11 @@ trait OUpload[F[_]] {
|
|||||||
notifyJoex: Boolean
|
notifyJoex: Boolean
|
||||||
): F[OUpload.UploadResult]
|
): F[OUpload.UploadResult]
|
||||||
|
|
||||||
|
def convertAllPdf(
|
||||||
|
collective: Option[Ident],
|
||||||
|
account: AccountId,
|
||||||
|
notifyJoex: Boolean
|
||||||
|
): F[OUpload.UploadResult]
|
||||||
}
|
}
|
||||||
|
|
||||||
object OUpload {
|
object OUpload {
|
||||||
@ -187,6 +192,16 @@ object OUpload {
|
|||||||
res <- OptionT.liftF(submitJobs(notifyJoex)(Vector(job)))
|
res <- OptionT.liftF(submitJobs(notifyJoex)(Vector(job)))
|
||||||
} yield res).getOrElse(UploadResult.noItem)
|
} yield res).getOrElse(UploadResult.noItem)
|
||||||
|
|
||||||
|
def convertAllPdf(
|
||||||
|
collective: Option[Ident],
|
||||||
|
account: AccountId,
|
||||||
|
notifyJoex: Boolean
|
||||||
|
): F[OUpload.UploadResult] =
|
||||||
|
for {
|
||||||
|
job <- JobFactory.convertAllPdfs(collective, account, Priority.Low)
|
||||||
|
res <- submitJobs(notifyJoex)(Vector(job))
|
||||||
|
} yield res
|
||||||
|
|
||||||
private def submitJobs(
|
private def submitJobs(
|
||||||
notifyJoex: Boolean
|
notifyJoex: Boolean
|
||||||
)(jobs: Vector[RJob]): F[OUpload.UploadResult] =
|
)(jobs: Vector[RJob]): F[OUpload.UploadResult] =
|
||||||
|
@ -31,6 +31,13 @@ object ItemRoutes {
|
|||||||
import dsl._
|
import dsl._
|
||||||
|
|
||||||
HttpRoutes.of {
|
HttpRoutes.of {
|
||||||
|
case POST -> Root / "convertallpdfs" =>
|
||||||
|
for {
|
||||||
|
res <-
|
||||||
|
backend.upload.convertAllPdf(user.account.collective.some, user.account, true)
|
||||||
|
resp <- Ok(Conversions.basicResult(res))
|
||||||
|
} yield resp
|
||||||
|
|
||||||
case req @ POST -> Root / "search" =>
|
case req @ POST -> Root / "search" =>
|
||||||
for {
|
for {
|
||||||
mask <- req.as[ItemSearch]
|
mask <- req.as[ItemSearch]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user