Skip to content

Commit cd3e701

Browse files
committed
Pass JsonKeyValueStore as parameter to repositories
1 parent 1cb5d7b commit cd3e701

File tree

6 files changed

+25
-33
lines changed

6 files changed

+25
-33
lines changed

modules/core/src/main/scala/org/scalasteward/core/application/Context.scala

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import org.scalasteward.core.sbt.SbtAlg
3434
import org.scalasteward.core.scalafmt.ScalafmtAlg
3535
import org.scalasteward.core.update.json.JsonUpdateRepository
3636
import org.scalasteward.core.update.{FilterAlg, UpdateRepository, UpdateService}
37-
import org.scalasteward.core.util.{DateTimeAlg, HttpExistenceClient, HttpJsonClient}
37+
import org.scalasteward.core.util._
3838
import org.scalasteward.core.vcs.data.AuthenticatedUser
3939
import org.scalasteward.core.vcs.{VCSApiAlg, VCSExtraAlg, VCSRepoAlg, VCSSelection}
4040

@@ -58,17 +58,20 @@ object Context {
5858
implicit val gitAlg: GitAlg[F] = GitAlg.create[F]
5959
implicit val httpJsonClient: HttpJsonClient[F] = new HttpJsonClient[F]
6060
implicit val httpExistenceClient: HttpExistenceClient[F] = new HttpExistenceClient[F]
61-
implicit val repoCacheRepository: RepoCacheRepository[F] = new JsonRepoCacheRepository[F]
61+
implicit val repoCacheRepository: RepoCacheRepository[F] =
62+
new JsonRepoCacheRepository[F](new JsonKeyValueStore("repos", "6"))
6263
val vcsSelection = new VCSSelection[F]
6364
implicit val vcsApiAlg: VCSApiAlg[F] = vcsSelection.getAlg(config)
6465
implicit val vcsRepoAlg: VCSRepoAlg[F] = VCSRepoAlg.create[F](config, gitAlg)
6566
implicit val vcsExtraAlg: VCSExtraAlg[F] = VCSExtraAlg.create[F]
66-
implicit val pullRequestRepo: PullRequestRepository[F] = new JsonPullRequestRepo[F]
67+
implicit val pullRequestRepo: PullRequestRepository[F] =
68+
new JsonPullRequestRepo[F](new JsonKeyValueStore("prs", "3"))
6769
implicit val scalafmtAlg: ScalafmtAlg[F] = ScalafmtAlg.create[F]
6870
implicit val sbtAlg: SbtAlg[F] = SbtAlg.create[F]
6971
implicit val repoCacheAlg: RepoCacheAlg[F] = new RepoCacheAlg[F]
7072
implicit val editAlg: EditAlg[F] = new EditAlg[F]
71-
implicit val updateRepository: UpdateRepository[F] = new JsonUpdateRepository[F]
73+
implicit val updateRepository: UpdateRepository[F] =
74+
new JsonUpdateRepository[F](new JsonKeyValueStore("updates", "3"))
7275
implicit val coursierAlg: CoursierAlg[F] = CoursierAlg.create
7376
implicit val nurtureAlg: NurtureAlg[F] = new NurtureAlg[F]
7477
implicit val updateService: UpdateService[F] = new UpdateService[F]

modules/core/src/main/scala/org/scalasteward/core/nurture/json/JsonPullRequestRepo.scala

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,19 @@
1616

1717
package org.scalasteward.core.nurture.json
1818

19+
import cats.FlatMap
1920
import cats.implicits._
2021
import org.http4s.Uri
2122
import org.scalasteward.core.data.{Dependency, Update}
2223
import org.scalasteward.core.git.Sha1
23-
import org.scalasteward.core.io.{FileAlg, WorkspaceAlg}
2424
import org.scalasteward.core.nurture.PullRequestRepository
2525
import org.scalasteward.core.update.UpdateService
26-
import org.scalasteward.core.util.{JsonKeyValueStore, MonadThrowable}
26+
import org.scalasteward.core.util.JsonKeyValueStore
2727
import org.scalasteward.core.vcs.data.{PullRequestState, Repo}
2828

29-
final class JsonPullRequestRepo[F[_]](
30-
implicit
31-
fileAlg: FileAlg[F],
32-
workspaceAlg: WorkspaceAlg[F],
33-
F: MonadThrowable[F]
29+
final class JsonPullRequestRepo[F[_]: FlatMap](
30+
kvStore: JsonKeyValueStore[F, Repo, Map[String, PullRequestData]]
3431
) extends PullRequestRepository[F] {
35-
private val kvStore = new JsonKeyValueStore[F, Repo, Map[String, PullRequestData]]("prs", "3")
36-
3732
override def createOrUpdate(
3833
repo: Repo,
3934
url: Uri,

modules/core/src/main/scala/org/scalasteward/core/repocache/json/JsonRepoCacheRepository.scala

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,16 @@
1616

1717
package org.scalasteward.core.repocache.json
1818

19+
import cats.Functor
1920
import cats.implicits._
2021
import org.scalasteward.core.data.Dependency
21-
import org.scalasteward.core.io.{FileAlg, WorkspaceAlg}
2222
import org.scalasteward.core.repocache.{RepoCache, RepoCacheRepository}
23-
import org.scalasteward.core.util.{JsonKeyValueStore, MonadThrowable}
23+
import org.scalasteward.core.util.JsonKeyValueStore
2424
import org.scalasteward.core.vcs.data.Repo
2525

26-
final class JsonRepoCacheRepository[F[_]](
27-
implicit
28-
fileAlg: FileAlg[F],
29-
workspaceAlg: WorkspaceAlg[F],
30-
F: MonadThrowable[F]
26+
final class JsonRepoCacheRepository[F[_]: Functor](
27+
kvStore: JsonKeyValueStore[F, Repo, RepoCache]
3128
) extends RepoCacheRepository[F] {
32-
private val kvStore = new JsonKeyValueStore[F, Repo, RepoCache]("repos", "6")
33-
3429
override def findCache(repo: Repo): F[Option[RepoCache]] =
3530
kvStore.get(repo)
3631

modules/core/src/main/scala/org/scalasteward/core/update/json/JsonUpdateRepository.scala

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,15 @@
1616

1717
package org.scalasteward.core.update.json
1818

19+
import cats.FlatMap
1920
import cats.implicits._
2021
import org.scalasteward.core.data.Update
21-
import org.scalasteward.core.io.{FileAlg, WorkspaceAlg}
2222
import org.scalasteward.core.update.UpdateRepository
23-
import org.scalasteward.core.util.{JsonKeyValueStore, MonadThrowable}
23+
import org.scalasteward.core.util.JsonKeyValueStore
2424

25-
final class JsonUpdateRepository[F[_]](
26-
implicit
27-
fileAlg: FileAlg[F],
28-
workspaceAlg: WorkspaceAlg[F],
29-
F: MonadThrowable[F]
25+
final class JsonUpdateRepository[F[_]: FlatMap](
26+
kvStore: JsonKeyValueStore[F, String, List[Update.Single]]
3027
) extends UpdateRepository[F] {
31-
private val kvStore = new JsonKeyValueStore[F, String, List[Update.Single]]("updates", "3")
3228
private val key = "updates"
3329

3430
override def deleteAll: F[Unit] =

modules/core/src/main/scala/org/scalasteward/core/util/JsonKeyValueStore.scala

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,11 @@ final class JsonKeyValueStore[F[_], K, V](name: String, schemaVersion: String)(
3333
valueDecoder: Decoder[V],
3434
valueEncoder: Encoder[V]
3535
) {
36+
private val filename =
37+
s"${name}_v${schemaVersion}.json"
38+
3639
private val jsonFile: F[File] =
37-
workspaceAlg.rootDir.map(_ / s"${name}_v${schemaVersion}.json")
40+
workspaceAlg.rootDir.map(_ / filename)
3841

3942
def get(key: K): F[Option[V]] =
4043
read.map(_.get(key))

modules/core/src/test/scala/org/scalasteward/core/mock/MockContext.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import org.scalasteward.core.repoconfig.RepoConfigAlg
1515
import org.scalasteward.core.sbt.SbtAlg
1616
import org.scalasteward.core.scalafmt.ScalafmtAlg
1717
import org.scalasteward.core.update.FilterAlg
18-
import org.scalasteward.core.util.{BracketThrowable, DateTimeAlg}
18+
import org.scalasteward.core.util.{BracketThrowable, DateTimeAlg, JsonKeyValueStore}
1919
import org.scalasteward.core.vcs.VCSRepoAlg
2020
import org.scalasteward.core.vcs.data.AuthenticatedUser
2121
import scala.concurrent.duration._
@@ -58,7 +58,7 @@ object MockContext {
5858
implicit val gitHubRepoAlg: VCSRepoAlg[MockEff] = VCSRepoAlg.create(config, gitAlg)
5959
implicit val scalafmtAlg: ScalafmtAlg[MockEff] = ScalafmtAlg.create
6060
implicit val cacheRepository: RepoCacheRepository[MockEff] =
61-
new JsonRepoCacheRepository[MockEff]()
61+
new JsonRepoCacheRepository[MockEff](new JsonKeyValueStore("repos", "6"))
6262
implicit val sbtAlg: SbtAlg[MockEff] = SbtAlg.create
6363
implicit val editAlg: EditAlg[MockEff] = new EditAlg[MockEff]
6464
implicit val repoConfigAlg: RepoConfigAlg[MockEff] = new RepoConfigAlg[MockEff]

0 commit comments

Comments
 (0)