From 1217d96a88763dbcb2975db812fdff6cfd0babe6 Mon Sep 17 00:00:00 2001 From: Scala Steward Date: Fri, 12 Aug 2022 20:08:39 +0000 Subject: [PATCH 1/3] Update scalafmt-core to 3.5.9 --- .scalafmt.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.scalafmt.conf b/.scalafmt.conf index 3267390..f9501f1 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -1,4 +1,4 @@ -version = 3.5.2 +version = 3.5.9 runner.dialect = scala213 align.preset = more maxColumn = 120 \ No newline at end of file From fe05258d37df5c81047c86083354a1d5ae225ae3 Mon Sep 17 00:00:00 2001 From: Scala Steward Date: Fri, 12 Aug 2022 20:08:49 +0000 Subject: [PATCH 2/3] Reformat with scalafmt 3.5.9 Executed command: scalafmt --non-interactive --- build.sbt | 24 +-- .../authentication/UserRepository.scala | 32 ++-- .../taskforce/BasicRepositorySuite.scala | 17 +- .../main/scala/taskforce/common/package.scala | 7 +- .../taskforce/filter/FilterRepository.scala | 2 - .../taskforce/filter/instances/Doobie.scala | 7 +- .../scala/taskforce/filter/generators.scala | 10 +- .../project/ProjectRoutesSuite.scala | 6 +- .../scala/taskforce/project/generators.scala | 3 +- .../scala/taskforce/stats/StatsService.scala | 1 - .../taskforce/task/TaskRepositorySuite.scala | 4 +- .../src/main/scala/taskforce/task/Task.scala | 1 - .../scala/taskforce/task/TaskRepository.scala | 163 +++++++++--------- .../scala/taskforce/task/generators.scala | 3 +- project/Dependencies.scala | 62 +++---- project/metals.sbt | 1 - project/plugins.sbt | 13 +- project/project/metals.sbt | 1 - src/main/scala/taskforce/Main.scala | 14 +- .../infrastructure/BasicRoutes.scala | 7 +- .../taskforce/infrastructure/Server.scala | 5 +- 21 files changed, 186 insertions(+), 197 deletions(-) diff --git a/build.sbt b/build.sbt index 262d1d9..54aad36 100644 --- a/build.sbt +++ b/build.sbt @@ -107,7 +107,7 @@ lazy val authentication = (project in file("modules/auth")) lazy val projects = (project in file("modules/projects")) .disablePlugins(RevolverPlugin) .configs((IntegrationTest extend Test)) - .settings(Defaults.itSettings,sharedSettings) + .settings(Defaults.itSettings, sharedSettings) .dependsOn( authentication % "compile->compile;test->test", common % "test->test;it->it;test->it" @@ -116,7 +116,7 @@ lazy val projects = (project in file("modules/projects")) lazy val tasks = (project in file("modules/tasks")) .disablePlugins(RevolverPlugin) .configs((IntegrationTest extend Test)) - .settings(Defaults.itSettings,sharedSettings) + .settings(Defaults.itSettings, sharedSettings) .dependsOn( authentication % "compile->compile;test->test", common % "test->test;it->it;compile->compile;test->it" @@ -137,7 +137,7 @@ lazy val filters = (project in file("modules/filters")) lazy val stats = (project in file("modules/stats")) .disablePlugins(RevolverPlugin) - .settings(Defaults.itSettings,sharedSettings) + .settings(Defaults.itSettings, sharedSettings) .dependsOn( authentication % "compile->compile;test->test", common % "test->test" @@ -159,13 +159,13 @@ lazy val sharedSettings = Seq( ).map(_.exclude("org.slf4j", "*")), addCompilerPlugin(kindProjector), scalacOptions ++= Seq( - "-deprecation", - "-encoding", - "UTF-8", - "-language:higherKinds", - "-language:postfixOps", - "-feature", - "-Xlint:unused", - "-Ymacro-annotations" - ) + "-deprecation", + "-encoding", + "UTF-8", + "-language:higherKinds", + "-language:postfixOps", + "-feature", + "-Xlint:unused", + "-Ymacro-annotations" + ) ) diff --git a/modules/auth/src/main/scala/taskforce/authentication/UserRepository.scala b/modules/auth/src/main/scala/taskforce/authentication/UserRepository.scala index 4b98e32..a63086c 100644 --- a/modules/auth/src/main/scala/taskforce/authentication/UserRepository.scala +++ b/modules/auth/src/main/scala/taskforce/authentication/UserRepository.scala @@ -1,37 +1,35 @@ package taskforce.authentication - import doobie.implicits._ import doobie.postgres.implicits._ import doobie.util.transactor.Transactor import taskforce.common.NewTypeDoobieMeta import cats.effect.kernel.MonadCancelThrow - trait UserRepository[F[_]] { def find(userId: UserId): F[Option[User]] def create(user: User): F[Int] } object UserRepository { - def make[F[_] : MonadCancelThrow](xa: Transactor[F]) = + def make[F[_]: MonadCancelThrow](xa: Transactor[F]) = new UserRepository[F] with NewTypeDoobieMeta { - override def create(user: User): F[Int] = - sql.insert(user).update.run.transact(xa) + override def create(user: User): F[Int] = + sql.insert(user).update.run.transact(xa) - override def find(userId: UserId): F[Option[User]] = - sql - .find(userId) - .query[User] - .option - .transact(xa) + override def find(userId: UserId): F[Option[User]] = + sql + .find(userId) + .query[User] + .option + .transact(xa) - private object sql { - def insert(user: User) = sql"insert into users(id) values(${user.id})" - def find(userId: UserId) = - sql"select id from users where id =${userId.value}" - } + private object sql { + def insert(user: User) = sql"insert into users(id) values(${user.id})" + def find(userId: UserId) = + sql"select id from users where id =${userId.value}" + } -} + } } diff --git a/modules/common/src/it/scala/taskforce/BasicRepositorySuite.scala b/modules/common/src/it/scala/taskforce/BasicRepositorySuite.scala index fb93e99..3dd0716 100644 --- a/modules/common/src/it/scala/taskforce/BasicRepositorySuite.scala +++ b/modules/common/src/it/scala/taskforce/BasicRepositorySuite.scala @@ -13,7 +13,7 @@ import org.typelevel.log4cats.slf4j.Slf4jLogger trait BasicRepositorySuite extends CatsEffectSuite with ScalaCheckEffectSuite { - implicit def unsafeLogger[F[_]: Sync] = Slf4jLogger.getLogger[F] + implicit def unsafeLogger[F[_]: Sync] = Slf4jLogger.getLogger[F] var db: DatabaseConfig = null var flyway: Flyway = null var xa: transactor.Transactor.Aux[IO, Unit] = null @@ -26,14 +26,13 @@ trait BasicRepositorySuite extends CatsEffectSuite with ScalaCheckEffectSuite { db = ConfigSource.default .at("database") - .load[DatabaseConfig] - match { - case Left(errors) => - throw new RuntimeException(s"Configuration loading Err: ${errors.toList.mkString("\n")}") - case Right(value) => - value - } - + .load[DatabaseConfig] match { + case Left(errors) => + throw new RuntimeException(s"Configuration loading Err: ${errors.toList.mkString("\n")}") + case Right(value) => + value + } + flyway = Flyway.configure().dataSource(db.url.value, db.user.value, db.pass.value).load() flyway.clean() flyway.migrate() diff --git a/modules/common/src/main/scala/taskforce/common/package.scala b/modules/common/src/main/scala/taskforce/common/package.scala index f6f5660..4c82d2e 100644 --- a/modules/common/src/main/scala/taskforce/common/package.scala +++ b/modules/common/src/main/scala/taskforce/common/package.scala @@ -6,11 +6,8 @@ import java.time.Instant package object common { type CreationDate = CreationDate.Type - object CreationDate - extends NewtypeWrapped[Instant] - + object CreationDate extends NewtypeWrapped[Instant] type DeletionDate = DeletionDate.Type - object DeletionDate - extends NewtypeWrapped[Instant] + object DeletionDate extends NewtypeWrapped[Instant] } diff --git a/modules/filters/src/main/scala/taskforce/filter/FilterRepository.scala b/modules/filters/src/main/scala/taskforce/filter/FilterRepository.scala index 0ab37ba..1b4b16b 100644 --- a/modules/filters/src/main/scala/taskforce/filter/FilterRepository.scala +++ b/modules/filters/src/main/scala/taskforce/filter/FilterRepository.scala @@ -1,6 +1,5 @@ package taskforce.filter - import cats.implicits._ import doobie._ import doobie.implicits._ @@ -20,7 +19,6 @@ import org.typelevel.log4cats.Logger import cats.Show import java.time.Instant - trait FilterRepository[F[_]] { def create(filter: Filter): F[Filter] def delete(id: FilterId): F[Int] diff --git a/modules/filters/src/main/scala/taskforce/filter/instances/Doobie.scala b/modules/filters/src/main/scala/taskforce/filter/instances/Doobie.scala index f497fbe..b41f93c 100644 --- a/modules/filters/src/main/scala/taskforce/filter/instances/Doobie.scala +++ b/modules/filters/src/main/scala/taskforce/filter/instances/Doobie.scala @@ -18,9 +18,10 @@ import taskforce.common.Sqlizer.ops._ import taskforce.filter._ import taskforce.common.NewTypeDoobieMeta - - -trait Doobie extends taskforce.task.instances.Doobie with NewTypeDoobieMeta with doobie.util.meta.LegacyInstantMetaInstance { +trait Doobie + extends taskforce.task.instances.Doobie + with NewTypeDoobieMeta + with doobie.util.meta.LegacyInstantMetaInstance { implicit val putNonEmptyList: Put[List[NonEmptyString]] = Put[List[String]].contramap(_.map(_.value)) diff --git a/modules/filters/src/test/scala/taskforce/filter/generators.scala b/modules/filters/src/test/scala/taskforce/filter/generators.scala index f7f360c..19a9dce 100644 --- a/modules/filters/src/test/scala/taskforce/filter/generators.scala +++ b/modules/filters/src/test/scala/taskforce/filter/generators.scala @@ -1,6 +1,5 @@ package taskforce.filter - import eu.timepit.refined.api.Refined import eu.timepit.refined.numeric.Positive import eu.timepit.refined.types.string.NonEmptyString @@ -28,7 +27,8 @@ object generators { } yield LocalDate .parse("2000.01.01", DateTimeFormatter.ofPattern("yyyy.MM.dd")) .atStartOfDay() - .plusMinutes(minutes.toLong).toInstant(ZoneOffset.UTC) + .plusMinutes(minutes.toLong) + .toInstant(ZoneOffset.UTC) val operatorGen: Gen[Operator] = Gen.oneOf(List(Eq, Gt, Gteq, Lteq, Lt)) val statusGen: Gen[Status] = Gen.oneOf(List(Active, Deactive, All)) @@ -39,7 +39,7 @@ object generators { .map(In.apply) val taskCreatedGen: Gen[TaskCreatedDate] = for { - op <- operatorGen + op <- operatorGen date <- instantGen } yield TaskCreatedDate(op, date) @@ -57,7 +57,7 @@ object generators { val newFilterGen = conditionsGen.map(NewFilter.apply) val filterGen = for { - c <- conditionsGen + c <- conditionsGen id <- filterIdGen } yield Filter(id, c) @@ -71,7 +71,7 @@ object generators { val pageGen = for { size <- pageSizeGen - no <- pageNoGen + no <- pageNoGen } yield Page(no, size) val sortByGen = for { diff --git a/modules/projects/src/test/scala/taskforce/project/ProjectRoutesSuite.scala b/modules/projects/src/test/scala/taskforce/project/ProjectRoutesSuite.scala index 6d131ff..7eaba3c 100644 --- a/modules/projects/src/test/scala/taskforce/project/ProjectRoutesSuite.scala +++ b/modules/projects/src/test/scala/taskforce/project/ProjectRoutesSuite.scala @@ -45,7 +45,7 @@ class ProjectRoutesSuite extends HttpTestSuite with Circe { DuplicateProjectNameError(newProject).asLeft[Project].pure[IO] } val routes = - ProjectRoutes.make[IO](authMiddleware(p1.author), ProjectService.make[IO](projectRepo)).routes(errHandler) + ProjectRoutes.make[IO](authMiddleware(p1.author), ProjectService.make[IO](projectRepo)).routes(errHandler) PUT(p2.name, Uri.unsafeFromString(s"api/v1/projects/${p1.id.value}")).pure[IO].flatMap { req => assertHttp(routes, req)( Status.Conflict, @@ -89,7 +89,7 @@ class ProjectRoutesSuite extends HttpTestSuite with Circe { test("cannot delete others project") { PropF.forAllF { (p: Project, u: UserId) => val projectRepo = new TestProjectRepository(List(p), currentTime) - val routes = ProjectRoutes.make[IO](authMiddleware(u), ProjectService.make[IO](projectRepo)).routes(errHandler) + val routes = ProjectRoutes.make[IO](authMiddleware(u), ProjectService.make[IO](projectRepo)).routes(errHandler) DELETE(Uri.unsafeFromString(s"api/v1/projects/${p.id.value}")).pure[IO].flatMap { req => assertHttp(routes, req)(Status.Forbidden, ErrorMessage("BASIC-003", "User is not an owner of the resource")) @@ -99,7 +99,7 @@ class ProjectRoutesSuite extends HttpTestSuite with Circe { test("provide valid response where project is not found") { PropF.forAllF { (p: ProjectId, u: UserId) => val projectRepo = new TestProjectRepository(List(), currentTime) - val routes = ProjectRoutes.make[IO](authMiddleware(u), ProjectService.make[IO](projectRepo)).routes(errHandler) + val routes = ProjectRoutes.make[IO](authMiddleware(u), ProjectService.make[IO](projectRepo)).routes(errHandler) DELETE(Uri.unsafeFromString(s"api/v1/projects/${p.value}")).pure[IO].flatMap { req => assertHttp(routes, req)( diff --git a/modules/projects/src/test/scala/taskforce/project/generators.scala b/modules/projects/src/test/scala/taskforce/project/generators.scala index 70daab1..c4c73f4 100644 --- a/modules/projects/src/test/scala/taskforce/project/generators.scala +++ b/modules/projects/src/test/scala/taskforce/project/generators.scala @@ -42,7 +42,8 @@ object generators { } yield LocalDate .parse("2000.01.01", DateTimeFormatter.ofPattern("yyyy.MM.dd")) .atStartOfDay() - .plusMinutes(minutes.toLong).toInstant(ZoneOffset.UTC) + .plusMinutes(minutes.toLong) + .toInstant(ZoneOffset.UTC) val projectGen: Gen[Project] = for { diff --git a/modules/stats/src/main/scala/taskforce/stats/StatsService.scala b/modules/stats/src/main/scala/taskforce/stats/StatsService.scala index 70098f1..80e8fcf 100644 --- a/modules/stats/src/main/scala/taskforce/stats/StatsService.scala +++ b/modules/stats/src/main/scala/taskforce/stats/StatsService.scala @@ -1,6 +1,5 @@ package taskforce.stats - final class StatsService[F[_]] private (statsRepo: StatsRepository[F]) { def getStats(query: StatsQuery) = statsRepo.get(query) } diff --git a/modules/tasks/src/it/scala/taskforce/task/TaskRepositorySuite.scala b/modules/tasks/src/it/scala/taskforce/task/TaskRepositorySuite.scala index e6d1b87..ea34dd3 100644 --- a/modules/tasks/src/it/scala/taskforce/task/TaskRepositorySuite.scala +++ b/modules/tasks/src/it/scala/taskforce/task/TaskRepositorySuite.scala @@ -25,10 +25,10 @@ class TaskRepositorySuite extends BasicRepositorySuite { PropF.forAllF { (t: Task) => for { repo <- taskRepo - _ <- Logger[IO].info("Before All PFL") + _ <- Logger[IO].info("Before All PFL") allBefore <- repo.list(ProjectId(1)).compile.toList task = t.copy(projectId = ProjectId(1), author = userID) - _ <- Logger[IO].info("Task created") + _ <- Logger[IO].info("Task created") taskResult <- repo.create(task) allAfter <- repo.list(ProjectId(1)).compile.toList } yield assertEquals( diff --git a/modules/tasks/src/main/scala/taskforce/task/Task.scala b/modules/tasks/src/main/scala/taskforce/task/Task.scala index d8cafab..e19e12e 100644 --- a/modules/tasks/src/main/scala/taskforce/task/Task.scala +++ b/modules/tasks/src/main/scala/taskforce/task/Task.scala @@ -1,6 +1,5 @@ package taskforce.task - import java.util.UUID import taskforce.authentication.UserId import taskforce.common._ diff --git a/modules/tasks/src/main/scala/taskforce/task/TaskRepository.scala b/modules/tasks/src/main/scala/taskforce/task/TaskRepository.scala index 1e8baba..c9de35d 100644 --- a/modules/tasks/src/main/scala/taskforce/task/TaskRepository.scala +++ b/modules/tasks/src/main/scala/taskforce/task/TaskRepository.scala @@ -26,89 +26,86 @@ trait TaskRepository[F[_]] { def update(id: TaskId, task: Task): F[Either[DuplicateTaskNameError, Task]] } - - object TaskRepository { def make[F[_]: MonadCancelThrow](xa: Transactor[F]) = - new TaskRepository[F] - with instances.Doobie { - - val ctx = - new DoobieContext.Postgres(NamingStrategy(PluralizedTableNames, SnakeCase)) - import ctx._ - - val taskQuery = quote { - querySchema[Task]("tasks", _.created -> "started") - } - - implicit val decodePositiveInt = - MappedEncoding[Int, Int Refined numeric.Positive](Refined.unsafeApply(_)) - implicit val encodePositiveInt = - MappedEncoding[Int Refined numeric.Positive, Int](_.value) - - implicit val decodeNonEmptyString = - MappedEncoding[String, string.NonEmptyString](Refined.unsafeApply(_)) - implicit val encodeNonEmptyString = - MappedEncoding[string.NonEmptyString, String](_.value) - - private def mapDatabaseErr( - task: Task - ): PartialFunction[Throwable, Either[DuplicateTaskNameError, Task]] = { - case x: PSQLException - if x.getMessage.contains( - "unique constraint" - ) => - DuplicateTaskNameError(task).asLeft[Task] - } - - override def update( - id: TaskId, - task: Task - ): F[Either[DuplicateTaskNameError, Task]] = { - val update = for { - _ <- run( - taskQuery - .filter(p => p.id == lift(id) && p.deleted.isEmpty) - .update(_.deleted -> lift(DeletionDate(Instant.now()).some)) - ) - _ <- run(taskQuery.insert(lift(task))) - } yield () - update - .transact(xa) - .as(task.asRight[DuplicateTaskNameError]) - .recover(mapDatabaseErr(task)) - - } - - override def listByUser(author: UserId): Stream[F, Task] = - stream(taskQuery.filter(_.author == lift(author))) - .transact(xa) - - override def find(projectId: ProjectId, taskId: TaskId): F[Option[Task]] = - run( - taskQuery.filter(t => t.projectId == lift(projectId) && t.id == lift(taskId)) - ) - .transact(xa) - .map(_.headOption) - - override def create(task: Task): F[Either[DuplicateTaskNameError, Task]] = - run(taskQuery.insert(lift(task))) - .transact(xa) - .as(task.asRight[DuplicateTaskNameError]) - .recover(mapDatabaseErr(task)) - - override def delete(id: TaskId): F[Int] = - run( - taskQuery - .filter(p => p.id == lift(id) && p.deleted.isEmpty) - .update(_.deleted -> lift(DeletionDate(Instant.now()).some)) - ) - .transact(xa) - .map(_.toInt) - - override def list(projectId: ProjectId): Stream[F, Task] = - stream(taskQuery.filter(_.projectId == lift(projectId))) - .transact(xa) - -} + new TaskRepository[F] with instances.Doobie { + + val ctx = + new DoobieContext.Postgres(NamingStrategy(PluralizedTableNames, SnakeCase)) + import ctx._ + + val taskQuery = quote { + querySchema[Task]("tasks", _.created -> "started") + } + + implicit val decodePositiveInt = + MappedEncoding[Int, Int Refined numeric.Positive](Refined.unsafeApply(_)) + implicit val encodePositiveInt = + MappedEncoding[Int Refined numeric.Positive, Int](_.value) + + implicit val decodeNonEmptyString = + MappedEncoding[String, string.NonEmptyString](Refined.unsafeApply(_)) + implicit val encodeNonEmptyString = + MappedEncoding[string.NonEmptyString, String](_.value) + + private def mapDatabaseErr( + task: Task + ): PartialFunction[Throwable, Either[DuplicateTaskNameError, Task]] = { + case x: PSQLException + if x.getMessage.contains( + "unique constraint" + ) => + DuplicateTaskNameError(task).asLeft[Task] + } + + override def update( + id: TaskId, + task: Task + ): F[Either[DuplicateTaskNameError, Task]] = { + val update = for { + _ <- run( + taskQuery + .filter(p => p.id == lift(id) && p.deleted.isEmpty) + .update(_.deleted -> lift(DeletionDate(Instant.now()).some)) + ) + _ <- run(taskQuery.insert(lift(task))) + } yield () + update + .transact(xa) + .as(task.asRight[DuplicateTaskNameError]) + .recover(mapDatabaseErr(task)) + + } + + override def listByUser(author: UserId): Stream[F, Task] = + stream(taskQuery.filter(_.author == lift(author))) + .transact(xa) + + override def find(projectId: ProjectId, taskId: TaskId): F[Option[Task]] = + run( + taskQuery.filter(t => t.projectId == lift(projectId) && t.id == lift(taskId)) + ) + .transact(xa) + .map(_.headOption) + + override def create(task: Task): F[Either[DuplicateTaskNameError, Task]] = + run(taskQuery.insert(lift(task))) + .transact(xa) + .as(task.asRight[DuplicateTaskNameError]) + .recover(mapDatabaseErr(task)) + + override def delete(id: TaskId): F[Int] = + run( + taskQuery + .filter(p => p.id == lift(id) && p.deleted.isEmpty) + .update(_.deleted -> lift(DeletionDate(Instant.now()).some)) + ) + .transact(xa) + .map(_.toInt) + + override def list(projectId: ProjectId): Stream[F, Task] = + stream(taskQuery.filter(_.projectId == lift(projectId))) + .transact(xa) + + } } diff --git a/modules/tasks/src/test/scala/taskforce/task/generators.scala b/modules/tasks/src/test/scala/taskforce/task/generators.scala index 842d680..8581d9e 100644 --- a/modules/tasks/src/test/scala/taskforce/task/generators.scala +++ b/modules/tasks/src/test/scala/taskforce/task/generators.scala @@ -47,7 +47,8 @@ object generators { } yield LocalDate .parse("2000.01.01", DateTimeFormatter.ofPattern("yyyy.MM.dd")) .atStartOfDay() - .plusMinutes(minutes.toLong).toInstant(ZoneOffset.UTC) + .plusMinutes(minutes.toLong) + .toInstant(ZoneOffset.UTC) val taskVolumeGen: Gen[TaskVolume] = Gen diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 7e7538e..160db96 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -20,52 +20,52 @@ object Dependencies { val refined = "0.9.28" val scalacheckEffect = "1.0.3" val simulacrum = "1.0.1" - val log4cats = "2.2.0" - val slf4j = "1.7.36" + val log4cats = "2.2.0" + val slf4j = "1.7.36" } object Libraries { def circeLib(artifact: String): ModuleID = "io.circe" %% artifact % V.circe def doobieLib(artifact: String): ModuleID = "org.tpolecat" %% artifact % V.doobie def http4sLib(artifact: String): ModuleID = "org.http4s" %% artifact % V.http4s - def mUnitLib(artifact: String): ModuleID = "org.scalameta" %% artifact % V.munit + def mUnitLib(artifact: String): ModuleID = "org.scalameta" %% artifact % V.munit def refinedLib(artifact: String): ModuleID = "eu.timepit" %% artifact % V.refined - def typeLevelLibTest(artifact: String, v: String): ModuleID = "org.typelevel" %% artifact % v + def typeLevelLibTest(artifact: String, v: String): ModuleID = "org.typelevel" %% artifact % v - val cats = "org.typelevel" %% "cats-core" % V.cats - val catsEffect = "org.typelevel" %% "cats-effect" % V.catsEff - val circe = circeLib("circe-generic") - val circeDerivation = "io.circe" %% "circe-derivation" % V.circeDerivation - val circeExtras = circeLib("circe-generic-extras") - val circeFs2 = circeLib("circe-fs2") - val circeParser = circeLib("circe-parser") - val circeRefined = circeLib("circe-refined") - val doobie = doobieLib("doobie-core") - val doobieHikari = doobieLib("doobie-hikari") - val doobiePostgres = doobieLib("doobie-postgres") - val doobieRefined = doobieLib("doobie-refined") - val doobieQuill = "org.polyvariant" %% "doobie-quill" % V.doobieQuill - val flyway = "org.flywaydb" % "flyway-core" % V.flyway - val http4sCirce = http4sLib("http4s-circe") - val http4sClient = http4sLib("http4s-blaze-client") - val http4sDsl = http4sLib("http4s-dsl") - val http4sServer = http4sLib("http4s-blaze-server") - val jwtCirce = "com.github.jwt-scala" %% "jwt-circe" % V.jwtCirce - val logback = "ch.qos.logback" % "logback-classic" % V.Logback - val mUnit = mUnitLib("munit") - val mUnitCE = typeLevelLibTest("munit-cats-effect-3", "1.0.7") - val mUnitScalacheck = mUnitLib("munit-scalacheck") - val monixNewType = "io.monix" %% "newtypes-core" % V.monixNewType - val monixNewTypeCirce = "io.monix" %% "newtypes-circe-v0-14" % V.monixNewType + val cats = "org.typelevel" %% "cats-core" % V.cats + val catsEffect = "org.typelevel" %% "cats-effect" % V.catsEff + val circe = circeLib("circe-generic") + val circeDerivation = "io.circe" %% "circe-derivation" % V.circeDerivation + val circeExtras = circeLib("circe-generic-extras") + val circeFs2 = circeLib("circe-fs2") + val circeParser = circeLib("circe-parser") + val circeRefined = circeLib("circe-refined") + val doobie = doobieLib("doobie-core") + val doobieHikari = doobieLib("doobie-hikari") + val doobiePostgres = doobieLib("doobie-postgres") + val doobieRefined = doobieLib("doobie-refined") + val doobieQuill = "org.polyvariant" %% "doobie-quill" % V.doobieQuill + val flyway = "org.flywaydb" % "flyway-core" % V.flyway + val http4sCirce = http4sLib("http4s-circe") + val http4sClient = http4sLib("http4s-blaze-client") + val http4sDsl = http4sLib("http4s-dsl") + val http4sServer = http4sLib("http4s-blaze-server") + val jwtCirce = "com.github.jwt-scala" %% "jwt-circe" % V.jwtCirce + val logback = "ch.qos.logback" % "logback-classic" % V.Logback + val mUnit = mUnitLib("munit") + val mUnitCE = typeLevelLibTest("munit-cats-effect-3", "1.0.7") + val mUnitScalacheck = mUnitLib("munit-scalacheck") + val monixNewType = "io.monix" %% "newtypes-core" % V.monixNewType + val monixNewTypeCirce = "io.monix" %% "newtypes-circe-v0-14" % V.monixNewType val pureConfig = "com.github.pureconfig" %% "pureconfig" % V.pureConfig val pureConfigCE = "com.github.pureconfig" %% "pureconfig-cats-effect" % V.pureConfig val pureConfigRefined = refinedLib("refined-pureconfig") val refined = refinedLib("refined") - val refinedCats = refinedLib("refined-cats") + val refinedCats = refinedLib("refined-cats") val scalaCheckEffect = typeLevelLibTest("scalacheck-effect", V.scalacheckEffect) val scalaCheckEffectMunit = typeLevelLibTest("scalacheck-effect-munit", V.scalacheckEffect) val log4cats = "org.typelevel" %% "log4cats-slf4j" % V.log4cats - val slf4j = "org.slf4j" % "slf4j-api" % V.slf4j + val slf4j = "org.slf4j" % "slf4j-api" % V.slf4j val simulacrum = "org.typelevel" %% "simulacrum" % V.simulacrum // Compiler plugins diff --git a/project/metals.sbt b/project/metals.sbt index ef0d4c5..62dd278 100644 --- a/project/metals.sbt +++ b/project/metals.sbt @@ -3,4 +3,3 @@ // This file enables sbt-bloop to create bloop config files. addSbtPlugin("ch.epfl.scala" % "sbt-bloop" % "1.5.2") - diff --git a/project/plugins.sbt b/project/plugins.sbt index e069838..332f2e2 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,8 +1,7 @@ -addSbtPlugin("io.spray" % "sbt-revolver" % "0.9.1") -addSbtPlugin("io.github.davidmweber" % "flyway-sbt" % "7.4.0") -addSbtPlugin("com.github.sbt" % "sbt-native-packager" % "1.9.9") -addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.9.34") -addSbtPlugin("com.codecommit" % "sbt-github-actions" % "0.14.2") -addSbtPlugin("io.github.davidgregory084" % "sbt-tpolecat" % "0.2.2") +addSbtPlugin("io.spray" % "sbt-revolver" % "0.9.1") +addSbtPlugin("io.github.davidmweber" % "flyway-sbt" % "7.4.0") +addSbtPlugin("com.github.sbt" % "sbt-native-packager" % "1.9.9") +addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.9.34") +addSbtPlugin("com.codecommit" % "sbt-github-actions" % "0.14.2") +addSbtPlugin("io.github.davidgregory084" % "sbt-tpolecat" % "0.2.2") addDependencyTreePlugin - diff --git a/project/project/metals.sbt b/project/project/metals.sbt index ef0d4c5..62dd278 100644 --- a/project/project/metals.sbt +++ b/project/project/metals.sbt @@ -3,4 +3,3 @@ // This file enables sbt-bloop to create bloop config files. addSbtPlugin("ch.epfl.scala" % "sbt-bloop" % "1.5.2") - diff --git a/src/main/scala/taskforce/Main.scala b/src/main/scala/taskforce/Main.scala index d057208..ce28d13 100644 --- a/src/main/scala/taskforce/Main.scala +++ b/src/main/scala/taskforce/Main.scala @@ -20,7 +20,7 @@ object Main extends IOApp { val resources: Resource[IO, (HikariTransactor[IO], HostConfig)] = for { - //be <- Resource.unit[IO] + // be <- Resource.unit[IO] dbConfig <- Resource.eval( ConfigSource.default.at("database").loadF[IO, DatabaseConfig]() ) @@ -43,11 +43,13 @@ object Main extends IOApp { for { db <- Db.make[IO](xa) authMiddleware <- TaskForceAuthMiddleware(db.userRepo, hostConfig.secret.value).pure[IO] - server <- Server.make[IO]( - hostConfig.port.value, - authMiddleware, - db - ).pure[IO] + server <- Server + .make[IO]( + hostConfig.port.value, + authMiddleware, + db + ) + .pure[IO] exitCode <- server.run } yield exitCode } diff --git a/src/main/scala/taskforce/infrastructure/BasicRoutes.scala b/src/main/scala/taskforce/infrastructure/BasicRoutes.scala index 0122981..531802c 100644 --- a/src/main/scala/taskforce/infrastructure/BasicRoutes.scala +++ b/src/main/scala/taskforce/infrastructure/BasicRoutes.scala @@ -28,9 +28,8 @@ final class BasicRoutes[F[_]: MonadCancelThrow] private ( val basicRoutes = { val dsl = new Http4sDsl[F] {} import dsl._ - HttpRoutes.of[F] { - case GET -> Root / "test" => - Ok("its alive") + HttpRoutes.of[F] { case GET -> Root / "test" => + Ok("its alive") } } @@ -44,5 +43,5 @@ object BasicRoutes { def make[F[_]: MonadCancelThrow]( authMiddleware: AuthMiddleware[F, UserId] ) = - new BasicRoutes(authMiddleware) + new BasicRoutes(authMiddleware) } diff --git a/src/main/scala/taskforce/infrastructure/Server.scala b/src/main/scala/taskforce/infrastructure/Server.scala index 3efe8c6..5230af1 100644 --- a/src/main/scala/taskforce/infrastructure/Server.scala +++ b/src/main/scala/taskforce/infrastructure/Server.scala @@ -22,7 +22,7 @@ final class Server[F[_]: Logger: Async] private ( db: Db[F] ) { - def run = + def run = for { basicRoutes <- BasicRoutes.make(authMiddleware).pure[F] projectService <- ProjectService.make(db.projectRepo).pure[F] @@ -42,7 +42,8 @@ final class Server[F[_]: Logger: Async] private ( LoggerMiddleware .httpRoutes[F](logHeaders = true, logBody = true) _ andThen AutoSlash.httpRoutes[F] _ <- - BlazeServerBuilder[F].withExecutionContext(global) + BlazeServerBuilder[F] + .withExecutionContext(global) .bindHttp(port, "0.0.0.0") .withHttpApp(middlewares(routes).orNotFound) .serve From 1485efea45ec589a39118d17b18d7e9086695131 Mon Sep 17 00:00:00 2001 From: Scala Steward Date: Fri, 12 Aug 2022 20:08:49 +0000 Subject: [PATCH 3/3] Add 'Reformat with scalafmt 3.5.9' to .git-blame-ignore-revs --- .git-blame-ignore-revs | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .git-blame-ignore-revs diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 0000000..85237c3 --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,2 @@ +# Scala Steward: Reformat with scalafmt 3.5.9 +fe05258d37df5c81047c86083354a1d5ae225ae3