mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-22 10:28:27 +00:00
scalafmtAll
This commit is contained in:
@ -75,6 +75,7 @@ object AuthToken {
|
||||
Either.catchNonFatal(s.toLong).toOption
|
||||
|
||||
private def constTimeEq(s1: String, s2: String): Boolean =
|
||||
s1.zip(s2).foldLeft(true)({ case (r, (c1, c2)) => r & c1 == c2 }) & s1.length == s2.length
|
||||
s1.zip(s2)
|
||||
.foldLeft(true)({ case (r, (c1, c2)) => r & c1 == c2 }) & s1.length == s2.length
|
||||
|
||||
}
|
||||
|
@ -58,7 +58,12 @@ object OCollective {
|
||||
def updateFailed: PassChangeResult = UpdateFailed
|
||||
}
|
||||
|
||||
case class RegisterData(collName: Ident, login: Ident, password: Password, invite: Option[Ident])
|
||||
case class RegisterData(
|
||||
collName: Ident,
|
||||
login: Ident,
|
||||
password: Password,
|
||||
invite: Option[Ident]
|
||||
)
|
||||
|
||||
sealed trait RegisterResult {
|
||||
def toEither: Either[Throwable, Unit]
|
||||
@ -117,7 +122,8 @@ object OCollective {
|
||||
.traverse(_ => RUser.updatePassword(accountId, PasswordCrypt.crypt(newPass)))
|
||||
res = check match {
|
||||
case Some(true) =>
|
||||
if (n.getOrElse(0) > 0) PassChangeResult.success else PassChangeResult.updateFailed
|
||||
if (n.getOrElse(0) > 0) PassChangeResult.success
|
||||
else PassChangeResult.updateFailed
|
||||
case Some(false) =>
|
||||
PassChangeResult.passwordMismatch
|
||||
case None =>
|
||||
|
@ -8,7 +8,14 @@ import doobie._
|
||||
import doobie.implicits._
|
||||
import docspell.store.{AddResult, Store}
|
||||
import docspell.store.queries.{QAttachment, QItem}
|
||||
import OItem.{AttachmentArchiveData, AttachmentData, AttachmentSourceData, ItemData, ListItem, Query}
|
||||
import OItem.{
|
||||
AttachmentArchiveData,
|
||||
AttachmentData,
|
||||
AttachmentSourceData,
|
||||
ItemData,
|
||||
ListItem,
|
||||
Query
|
||||
}
|
||||
import bitpeace.{FileMeta, RangeDef}
|
||||
import docspell.common.{Direction, Ident, ItemState, MetaProposalList, Timestamp}
|
||||
import docspell.store.records._
|
||||
@ -21,9 +28,15 @@ trait OItem[F[_]] {
|
||||
|
||||
def findAttachment(id: Ident, collective: Ident): F[Option[AttachmentData[F]]]
|
||||
|
||||
def findAttachmentSource(id: Ident, collective: Ident): F[Option[AttachmentSourceData[F]]]
|
||||
def findAttachmentSource(
|
||||
id: Ident,
|
||||
collective: Ident
|
||||
): F[Option[AttachmentSourceData[F]]]
|
||||
|
||||
def findAttachmentArchive(id: Ident, collective: Ident): F[Option[AttachmentArchiveData[F]]]
|
||||
def findAttachmentArchive(
|
||||
id: Ident,
|
||||
collective: Ident
|
||||
): F[Option[AttachmentArchiveData[F]]]
|
||||
|
||||
def setTags(item: Ident, tagIds: List[Ident], collective: Ident): F[AddResult]
|
||||
|
||||
@ -45,7 +58,11 @@ trait OItem[F[_]] {
|
||||
|
||||
def setItemDate(item: Ident, date: Option[Timestamp], collective: Ident): F[AddResult]
|
||||
|
||||
def setItemDueDate(item: Ident, date: Option[Timestamp], collective: Ident): F[AddResult]
|
||||
def setItemDueDate(
|
||||
item: Ident,
|
||||
date: Option[Timestamp],
|
||||
collective: Ident
|
||||
): F[AddResult]
|
||||
|
||||
def getProposals(item: Ident, collective: Ident): F[MetaProposalList]
|
||||
|
||||
@ -104,7 +121,9 @@ object OItem {
|
||||
Resource.pure[F, OItem[F]](new OItem[F] {
|
||||
|
||||
def findItem(id: Ident, collective: Ident): F[Option[ItemData]] =
|
||||
store.transact(QItem.findItem(id)).map(opt => opt.flatMap(_.filterCollective(collective)))
|
||||
store
|
||||
.transact(QItem.findItem(id))
|
||||
.map(opt => opt.flatMap(_.filterCollective(collective)))
|
||||
|
||||
def findItems(q: Query, maxResults: Int): F[Vector[ListItem]] =
|
||||
store.transact(QItem.findItems(q).take(maxResults.toLong)).compile.toVector
|
||||
@ -126,7 +145,10 @@ object OItem {
|
||||
(None: Option[AttachmentData[F]]).pure[F]
|
||||
})
|
||||
|
||||
def findAttachmentSource(id: Ident, collective: Ident): F[Option[AttachmentSourceData[F]]] =
|
||||
def findAttachmentSource(
|
||||
id: Ident,
|
||||
collective: Ident
|
||||
): F[Option[AttachmentSourceData[F]]] =
|
||||
store
|
||||
.transact(RAttachmentSource.findByIdAndCollective(id, collective))
|
||||
.flatMap({
|
||||
@ -143,7 +165,10 @@ object OItem {
|
||||
(None: Option[AttachmentSourceData[F]]).pure[F]
|
||||
})
|
||||
|
||||
def findAttachmentArchive(id: Ident, collective: Ident): F[Option[AttachmentArchiveData[F]]] =
|
||||
def findAttachmentArchive(
|
||||
id: Ident,
|
||||
collective: Ident
|
||||
): F[Option[AttachmentArchiveData[F]]] =
|
||||
store
|
||||
.transact(RAttachmentArchive.findByIdAndCollective(id, collective))
|
||||
.flatMap({
|
||||
@ -183,38 +208,63 @@ object OItem {
|
||||
store.transact(db).attempt.map(AddResult.fromUpdate)
|
||||
}
|
||||
|
||||
def setDirection(item: Ident, direction: Direction, collective: Ident): F[AddResult] =
|
||||
def setDirection(
|
||||
item: Ident,
|
||||
direction: Direction,
|
||||
collective: Ident
|
||||
): F[AddResult] =
|
||||
store
|
||||
.transact(RItem.updateDirection(item, collective, direction))
|
||||
.attempt
|
||||
.map(AddResult.fromUpdate)
|
||||
|
||||
def setCorrOrg(item: Ident, org: Option[Ident], collective: Ident): F[AddResult] =
|
||||
store.transact(RItem.updateCorrOrg(item, collective, org)).attempt.map(AddResult.fromUpdate)
|
||||
store
|
||||
.transact(RItem.updateCorrOrg(item, collective, org))
|
||||
.attempt
|
||||
.map(AddResult.fromUpdate)
|
||||
|
||||
def setCorrPerson(item: Ident, person: Option[Ident], collective: Ident): F[AddResult] =
|
||||
def setCorrPerson(
|
||||
item: Ident,
|
||||
person: Option[Ident],
|
||||
collective: Ident
|
||||
): F[AddResult] =
|
||||
store
|
||||
.transact(RItem.updateCorrPerson(item, collective, person))
|
||||
.attempt
|
||||
.map(AddResult.fromUpdate)
|
||||
|
||||
def setConcPerson(item: Ident, person: Option[Ident], collective: Ident): F[AddResult] =
|
||||
def setConcPerson(
|
||||
item: Ident,
|
||||
person: Option[Ident],
|
||||
collective: Ident
|
||||
): F[AddResult] =
|
||||
store
|
||||
.transact(RItem.updateConcPerson(item, collective, person))
|
||||
.attempt
|
||||
.map(AddResult.fromUpdate)
|
||||
|
||||
def setConcEquip(item: Ident, equip: Option[Ident], collective: Ident): F[AddResult] =
|
||||
def setConcEquip(
|
||||
item: Ident,
|
||||
equip: Option[Ident],
|
||||
collective: Ident
|
||||
): F[AddResult] =
|
||||
store
|
||||
.transact(RItem.updateConcEquip(item, collective, equip))
|
||||
.attempt
|
||||
.map(AddResult.fromUpdate)
|
||||
|
||||
def setNotes(item: Ident, notes: Option[String], collective: Ident): F[AddResult] =
|
||||
store.transact(RItem.updateNotes(item, collective, notes)).attempt.map(AddResult.fromUpdate)
|
||||
store
|
||||
.transact(RItem.updateNotes(item, collective, notes))
|
||||
.attempt
|
||||
.map(AddResult.fromUpdate)
|
||||
|
||||
def setName(item: Ident, name: String, collective: Ident): F[AddResult] =
|
||||
store.transact(RItem.updateName(item, collective, name)).attempt.map(AddResult.fromUpdate)
|
||||
store
|
||||
.transact(RItem.updateName(item, collective, name))
|
||||
.attempt
|
||||
.map(AddResult.fromUpdate)
|
||||
|
||||
def setState(item: Ident, state: ItemState, collective: Ident): F[AddResult] =
|
||||
store
|
||||
@ -222,10 +272,21 @@ object OItem {
|
||||
.attempt
|
||||
.map(AddResult.fromUpdate)
|
||||
|
||||
def setItemDate(item: Ident, date: Option[Timestamp], collective: Ident): F[AddResult] =
|
||||
store.transact(RItem.updateDate(item, collective, date)).attempt.map(AddResult.fromUpdate)
|
||||
def setItemDate(
|
||||
item: Ident,
|
||||
date: Option[Timestamp],
|
||||
collective: Ident
|
||||
): F[AddResult] =
|
||||
store
|
||||
.transact(RItem.updateDate(item, collective, date))
|
||||
.attempt
|
||||
.map(AddResult.fromUpdate)
|
||||
|
||||
def setItemDueDate(item: Ident, date: Option[Timestamp], collective: Ident): F[AddResult] =
|
||||
def setItemDueDate(
|
||||
item: Ident,
|
||||
date: Option[Timestamp],
|
||||
collective: Ident
|
||||
): F[AddResult] =
|
||||
store
|
||||
.transact(RItem.updateDueDate(item, collective, date))
|
||||
.attempt
|
||||
|
@ -52,7 +52,9 @@ object OJob {
|
||||
def mustCancel(job: Option[RJob]): Option[(RJob, Ident)] =
|
||||
for {
|
||||
worker <- job.flatMap(_.worker)
|
||||
job <- job.filter(j => j.state == JobState.Scheduled || j.state == JobState.Running)
|
||||
job <- job.filter(j =>
|
||||
j.state == JobState.Scheduled || j.state == JobState.Running
|
||||
)
|
||||
} yield (job, worker)
|
||||
|
||||
def canDelete(j: RJob): Boolean =
|
||||
@ -68,8 +70,11 @@ object OJob {
|
||||
}
|
||||
|
||||
def tryCancel(job: RJob, worker: Ident): F[JobCancelResult] =
|
||||
joex.cancelJob(job.id, worker)
|
||||
.map(flag => if (flag) JobCancelResult.CancelRequested else JobCancelResult.JobNotFound)
|
||||
joex
|
||||
.cancelJob(job.id, worker)
|
||||
.map(flag =>
|
||||
if (flag) JobCancelResult.CancelRequested else JobCancelResult.JobNotFound
|
||||
)
|
||||
|
||||
for {
|
||||
tryDel <- store.transact(tryDelete)
|
||||
|
@ -34,7 +34,10 @@ object OJoex {
|
||||
} yield cancel.isDefined
|
||||
})
|
||||
|
||||
def create[F[_]: ConcurrentEffect](ec: ExecutionContext, store: Store[F]): Resource[F, OJoex[F]] =
|
||||
def create[F[_]: ConcurrentEffect](
|
||||
ec: ExecutionContext,
|
||||
store: Store[F]
|
||||
): Resource[F, OJoex[F]] =
|
||||
JoexClient.resource(ec).flatMap(client => apply(client, store))
|
||||
|
||||
}
|
||||
|
@ -149,8 +149,9 @@ object OMail {
|
||||
)
|
||||
} yield {
|
||||
val addAttach = m.attach.filter(ras).map { a =>
|
||||
Attach[F](Stream.emit(a._2).through(store.bitpeace.fetchData2(RangeDef.all)))
|
||||
.withFilename(a._1.name)
|
||||
Attach[F](
|
||||
Stream.emit(a._2).through(store.bitpeace.fetchData2(RangeDef.all))
|
||||
).withFilename(a._1.name)
|
||||
.withLength(a._2.length)
|
||||
.withMimeType(_root_.emil.MimeType.parse(a._2.mimetype.asString).toOption)
|
||||
}
|
||||
@ -187,7 +188,10 @@ object OMail {
|
||||
store.transact(save.value).attempt.map {
|
||||
case Right(Some(id)) => Right(id)
|
||||
case Right(None) =>
|
||||
Left(SendResult.StoreFailure(new Exception(s"Could not find user to save mail.")))
|
||||
Left(
|
||||
SendResult
|
||||
.StoreFailure(new Exception(s"Could not find user to save mail."))
|
||||
)
|
||||
case Left(ex) => Left(SendResult.StoreFailure(ex))
|
||||
}
|
||||
}
|
||||
|
@ -17,7 +17,10 @@ trait OOrganization[F[_]] {
|
||||
|
||||
def updateOrg(s: OrgAndContacts): F[AddResult]
|
||||
|
||||
def findAllPerson(account: AccountId, query: Option[String]): F[Vector[PersonAndContacts]]
|
||||
def findAllPerson(
|
||||
account: AccountId,
|
||||
query: Option[String]
|
||||
): F[Vector[PersonAndContacts]]
|
||||
|
||||
def findAllPersonRefs(account: AccountId, nameQuery: Option[String]): F[Vector[IdRef]]
|
||||
|
||||
@ -39,14 +42,20 @@ object OOrganization {
|
||||
def apply[F[_]: Effect](store: Store[F]): Resource[F, OOrganization[F]] =
|
||||
Resource.pure[F, OOrganization[F]](new OOrganization[F] {
|
||||
|
||||
def findAllOrg(account: AccountId, query: Option[String]): F[Vector[OrgAndContacts]] =
|
||||
def findAllOrg(
|
||||
account: AccountId,
|
||||
query: Option[String]
|
||||
): F[Vector[OrgAndContacts]] =
|
||||
store
|
||||
.transact(QOrganization.findOrgAndContact(account.collective, query, _.name))
|
||||
.map({ case (org, cont) => OrgAndContacts(org, cont) })
|
||||
.compile
|
||||
.toVector
|
||||
|
||||
def findAllOrgRefs(account: AccountId, nameQuery: Option[String]): F[Vector[IdRef]] =
|
||||
def findAllOrgRefs(
|
||||
account: AccountId,
|
||||
nameQuery: Option[String]
|
||||
): F[Vector[IdRef]] =
|
||||
store.transact(ROrganization.findAllRef(account.collective, nameQuery, _.name))
|
||||
|
||||
def addOrg(s: OrgAndContacts): F[AddResult] =
|
||||
@ -55,14 +64,20 @@ object OOrganization {
|
||||
def updateOrg(s: OrgAndContacts): F[AddResult] =
|
||||
QOrganization.updateOrg(s.org, s.contacts, s.org.cid)(store)
|
||||
|
||||
def findAllPerson(account: AccountId, query: Option[String]): F[Vector[PersonAndContacts]] =
|
||||
def findAllPerson(
|
||||
account: AccountId,
|
||||
query: Option[String]
|
||||
): F[Vector[PersonAndContacts]] =
|
||||
store
|
||||
.transact(QOrganization.findPersonAndContact(account.collective, query, _.name))
|
||||
.map({ case (person, cont) => PersonAndContacts(person, cont) })
|
||||
.compile
|
||||
.toVector
|
||||
|
||||
def findAllPersonRefs(account: AccountId, nameQuery: Option[String]): F[Vector[IdRef]] =
|
||||
def findAllPersonRefs(
|
||||
account: AccountId,
|
||||
nameQuery: Option[String]
|
||||
): F[Vector[IdRef]] =
|
||||
store.transact(RPerson.findAllRef(account.collective, nameQuery, _.name))
|
||||
|
||||
def addPerson(s: PersonAndContacts): F[AddResult] =
|
||||
@ -72,7 +87,10 @@ object OOrganization {
|
||||
QOrganization.updatePerson(s.person, s.contacts, s.person.cid)(store)
|
||||
|
||||
def deleteOrg(orgId: Ident, collective: Ident): F[AddResult] =
|
||||
store.transact(QOrganization.deleteOrg(orgId, collective)).attempt.map(AddResult.fromUpdate)
|
||||
store
|
||||
.transact(QOrganization.deleteOrg(orgId, collective))
|
||||
.attempt
|
||||
.map(AddResult.fromUpdate)
|
||||
|
||||
def deletePerson(personId: Ident, collective: Ident): F[AddResult] =
|
||||
store
|
||||
|
@ -57,7 +57,10 @@ object OUpload {
|
||||
): Resource[F, OUpload[F]] =
|
||||
Resource.pure[F, OUpload[F]](new OUpload[F] {
|
||||
|
||||
def submit(data: OUpload.UploadData[F], account: AccountId): F[OUpload.UploadResult] =
|
||||
def submit(
|
||||
data: OUpload.UploadData[F],
|
||||
account: AccountId
|
||||
): F[OUpload.UploadResult] =
|
||||
for {
|
||||
files <- data.files.traverse(saveFile).map(_.flatten)
|
||||
pred <- checkFileList(files)
|
||||
@ -74,12 +77,16 @@ object OUpload {
|
||||
job <- pred.traverse(_ => makeJobs(args, account, data.priority, data.tracker))
|
||||
_ <- logger.fdebug(s"Storing jobs: $job")
|
||||
res <- job.traverse(submitJobs)
|
||||
_ <- store.transact(RSource.incrementCounter(data.meta.sourceAbbrev, account.collective))
|
||||
_ <- store.transact(
|
||||
RSource.incrementCounter(data.meta.sourceAbbrev, account.collective)
|
||||
)
|
||||
} yield res.fold(identity, identity)
|
||||
|
||||
def submit(data: OUpload.UploadData[F], sourceId: Ident): F[OUpload.UploadResult] =
|
||||
for {
|
||||
sOpt <- store.transact(RSource.find(sourceId)).map(_.toRight(UploadResult.NoSource))
|
||||
sOpt <- store
|
||||
.transact(RSource.find(sourceId))
|
||||
.map(_.toRight(UploadResult.NoSource))
|
||||
abbrev = sOpt.map(_.abbrev).toOption.getOrElse(data.meta.sourceAbbrev)
|
||||
updata = data.copy(meta = data.meta.copy(sourceAbbrev = abbrev))
|
||||
accId = sOpt.map(source => AccountId(source.cid, source.sid))
|
||||
@ -106,7 +113,9 @@ object OUpload {
|
||||
None
|
||||
}, id => Some(ProcessItemArgs.File(file.name, id))))
|
||||
|
||||
private def checkFileList(files: Seq[ProcessItemArgs.File]): F[Either[UploadResult, Unit]] =
|
||||
private def checkFileList(
|
||||
files: Seq[ProcessItemArgs.File]
|
||||
): F[Either[UploadResult, Unit]] =
|
||||
Sync[F].pure(if (files.isEmpty) Left(UploadResult.NoFiles) else Right(()))
|
||||
|
||||
private def makeJobs(
|
||||
|
@ -28,7 +28,10 @@ object OSignup {
|
||||
if (cfg.mode == Config.Mode.Invite) {
|
||||
if (cfg.newInvitePassword.isEmpty || cfg.newInvitePassword != password)
|
||||
NewInviteResult.passwordMismatch.pure[F]
|
||||
else store.transact(RInvitation.insertNew).map(ri => NewInviteResult.success(ri.id))
|
||||
else
|
||||
store
|
||||
.transact(RInvitation.insertNew)
|
||||
.map(ri => NewInviteResult.success(ri.id))
|
||||
} else {
|
||||
Effect[F].pure(NewInviteResult.invitationClosed)
|
||||
}
|
||||
|
Reference in New Issue
Block a user