Updated following dependencies as they need changes to the code to work properly:

- Scala
- fs2
- http4s
This commit is contained in:
Rehan Mahmood
2023-10-31 14:24:00 -04:00
parent c9ebd15b23
commit 2a39b2f6a6
64 changed files with 224 additions and 150 deletions

View File

@ -10,6 +10,7 @@ import java.security.SecureRandom
import cats.Monoid
import cats.effect.Async
import fs2.io.file.Files
import docspell.backend.auth.Login
import docspell.backend.signup.{Config => SignupConfig}
@ -30,7 +31,7 @@ object ConfigFile {
// IntelliJ is wrong, this is required
import Implicits._
def loadConfig[F[_]: Async](args: List[String]): F[Config] = {
def loadConfig[F[_]: Async: Files](args: List[String]): F[Config] = {
val logger = docspell.logging.getLogger[F]
val validate =
Validation.of(

View File

@ -9,6 +9,7 @@ package docspell.restserver
import cats.effect._
import fs2.Stream
import fs2.concurrent.Topic
import fs2.io.file.Files
import docspell.backend.BackendApp
import docspell.backend.auth.{AuthToken, ShareToken}
@ -36,7 +37,7 @@ import org.http4s.client.Client
import org.http4s.server.Router
import org.http4s.server.websocket.WebSocketBuilder2
final class RestAppImpl[F[_]: Async](
final class RestAppImpl[F[_]: Async: Files](
val config: Config,
val backend: BackendApp[F],
httpClient: Client[F],
@ -162,7 +163,7 @@ final class RestAppImpl[F[_]: Async](
object RestAppImpl {
def create[F[_]: Async](
def create[F[_]: Async: Files](
cfg: Config,
pools: Pools,
store: Store[F],

View File

@ -12,6 +12,8 @@ import cats.effect._
import cats.implicits._
import fs2.Stream
import fs2.concurrent.Topic
import fs2.io.file.Files
import fs2.io.net.Network
import docspell.backend.msg.Topics
import docspell.backend.ops.ONode
@ -35,7 +37,7 @@ import org.http4s.server.websocket.WebSocketBuilder2
object RestServer {
def serve[F[_]: Async](
def serve[F[_]: Async: Files: Network](
cfg: Config,
pools: Pools
): F[ExitCode] =
@ -55,7 +57,7 @@ object RestServer {
.flatMap { case (restApp, pubSub, setting) =>
Stream(
restApp.subscriptions,
restApp.eventConsume(2),
restApp.eventConsume(maxConcurrent = 2),
Stream.resource {
if (cfg.serverOptions.enableHttp2)
EmberServerBuilder
@ -81,7 +83,7 @@ object RestServer {
(server ++ Stream(keepAlive)).parJoinUnbounded.compile.drain.as(ExitCode.Success)
} yield exit
def createApp[F[_]: Async](
def createApp[F[_]: Async: Files: Network](
cfg: Config,
pools: Pools,
wsTopic: Topic[F, OutputEvent]

View File

@ -9,6 +9,7 @@ package docspell.restserver.routes
import cats.data.OptionT
import cats.effect._
import cats.implicits._
import fs2.io.file.Files
import docspell.backend.BackendApp
import docspell.backend.auth.AuthToken
@ -25,7 +26,7 @@ import org.log4s._
object UploadRoutes {
private[this] val logger = getLogger
def secured[F[_]: Async](
def secured[F[_]: Async: Files](
backend: BackendApp[F],
cfg: Config,
user: AuthToken
@ -50,7 +51,7 @@ object UploadRoutes {
}
}
def open[F[_]: Async](backend: BackendApp[F], cfg: Config): HttpRoutes[F] = {
def open[F[_]: Async: Files](backend: BackendApp[F], cfg: Config): HttpRoutes[F] = {
val dsl = new Http4sDsl[F] with ResponseGenerator[F] {}
import dsl._
@ -78,7 +79,7 @@ object UploadRoutes {
}
}
private def submitFiles[F[_]: Async](
private def submitFiles[F[_]: Async: Files](
backend: BackendApp[F],
cfg: Config,
accOrSrc: Either[Ident, CollectiveId],