Refactor scala base db migrations. Add marker trait for task args

This commit is contained in:
eikek
2022-08-05 14:27:34 +02:00
parent 66265d8455
commit ae4c49027f
28 changed files with 188 additions and 162 deletions

View File

@ -18,7 +18,7 @@ import io.circe.{Decoder, Encoder}
case class AllPreviewsArgs(
collective: Option[CollectiveId],
storeMode: MakePreviewArgs.StoreMode
)
) extends TaskArguments
object AllPreviewsArgs {

View File

@ -16,7 +16,7 @@ import io.circe.generic.semiauto._
* submitted by this task run in the realm of the collective (and only their files are
* considered). If it is empty, it is a system task and all files are considered.
*/
case class ConvertAllPdfArgs(collective: Option[CollectiveId])
case class ConvertAllPdfArgs(collective: Option[CollectiveId]) extends TaskArguments
object ConvertAllPdfArgs {

View File

@ -20,7 +20,7 @@ import io.circe.generic.semiauto._
case class EmptyTrashArgs(
collective: CollectiveId,
minAge: Duration
) {
) extends TaskArguments {
def makeSubject: String =
s"Empty Trash: Remove older than ${minAge.toJava}"

View File

@ -22,6 +22,7 @@ import io.circe.{Decoder, Encoder}
* selecting "all", it means all enabled stores.
*/
final case class FileCopyTaskArgs(from: Option[Ident], to: Selection)
extends TaskArguments
object FileCopyTaskArgs {
val taskName = Ident.unsafe("copy-file-repositories")

View File

@ -9,7 +9,7 @@ package docspell.common
import io.circe.generic.semiauto.{deriveDecoder, deriveEncoder}
import io.circe.{Decoder, Encoder}
final case class FileIntegrityCheckArgs(pattern: FileKeyPart) {}
final case class FileIntegrityCheckArgs(pattern: FileKeyPart) extends TaskArguments
object FileIntegrityCheckArgs {
val taskName: Ident = Ident.unsafe("all-file-integrity-check")

View File

@ -18,7 +18,7 @@ final case class ItemAddonTaskArgs(
collective: CollectiveId,
itemId: Ident,
addonRunConfigs: Set[Ident]
)
) extends TaskArguments
object ItemAddonTaskArgs {
val taskName: Ident = Ident.unsafe("addon-existing-item")

View File

@ -19,11 +19,10 @@ import io.circe.generic.semiauto._
*/
case class LearnClassifierArgs(
collectiveId: CollectiveId
) {
) extends TaskArguments {
def makeSubject: String =
"Learn tags"
}
object LearnClassifierArgs {

View File

@ -14,7 +14,7 @@ import io.circe.{Decoder, Encoder}
*/
case class MakePageCountArgs(
attachment: Ident
)
) extends TaskArguments
object MakePageCountArgs {

View File

@ -16,7 +16,7 @@ import io.circe.{Decoder, Encoder}
case class MakePreviewArgs(
attachment: Ident,
store: MakePreviewArgs.StoreMode
)
) extends TaskArguments
object MakePreviewArgs {

View File

@ -22,7 +22,7 @@ import io.circe.generic.semiauto._
*
* It is also re-used by the 'ReProcessItem' task.
*/
case class ProcessItemArgs(meta: ProcessMeta, files: List[File]) {
case class ProcessItemArgs(meta: ProcessMeta, files: List[File]) extends TaskArguments {
def makeSubject: String =
files.flatMap(_.name) match {

View File

@ -9,7 +9,7 @@ package docspell.common
import io.circe._
import io.circe.generic.semiauto._
final case class ReIndexTaskArgs(collective: Option[CollectiveId])
final case class ReIndexTaskArgs(collective: Option[CollectiveId]) extends TaskArguments
object ReIndexTaskArgs {
val taskName = Ident.unsafe("full-text-reindex")

View File

@ -16,6 +16,7 @@ import io.circe.{Decoder, Encoder}
* list is empty, then all attachments are re-processed.
*/
case class ReProcessItemArgs(itemId: Ident, attachments: List[Ident])
extends TaskArguments
object ReProcessItemArgs {

View File

@ -49,7 +49,7 @@ case class ScanMailboxArgs(
postHandleAll: Option[Boolean],
// Exclude the mail body when importing
attachmentsOnly: Option[Boolean]
)
) extends TaskArguments
object ScanMailboxArgs {

View File

@ -10,6 +10,7 @@ import io.circe.generic.semiauto.{deriveDecoder, deriveEncoder}
import io.circe.{Decoder, Encoder}
final case class ScheduledAddonTaskArgs(collective: CollectiveId, addonTaskId: Ident)
extends TaskArguments
object ScheduledAddonTaskArgs {
val taskName: Ident = Ident.unsafe("addon-scheduled-task")

View File

@ -0,0 +1,8 @@
package docspell.common
/** A marker trait for task arguments.
*
* Arguments for tasks are stored as a JSON blob in the database. Changes in structure
* requires a corresponding database migration.
*/
trait TaskArguments