Skip to content

Commit 3883d9a

Browse files
Fix Update encoders
1 parent 6e283b8 commit 3883d9a

File tree

1 file changed

+24
-6
lines changed
  • modules/core/src/main/scala/org/scalasteward/core/data

1 file changed

+24
-6
lines changed

modules/core/src/main/scala/org/scalasteward/core/data/Update.scala

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,15 @@ package org.scalasteward.core.data
1818

1919
import cats.Order
2020
import cats.implicits._
21+
import io.circe.Decoder
22+
import io.circe.Encoder
23+
import io.circe.Json
2124
import io.circe.generic.semiauto._
25+
import io.circe.syntax._
2226
import org.scalasteward.core.repoconfig.PullRequestGroup
2327
import org.scalasteward.core.util
2428
import org.scalasteward.core.util.Nel
2529
import org.scalasteward.core.util.string.MinLengthString
26-
import io.circe.Decoder
27-
import io.circe.Encoder
2830

2931
sealed trait Update {
3032

@@ -193,7 +195,11 @@ object Update {
193195
// Partially manually implemented so we don't fail reading old caches (those
194196
// still using `Single`/`Group`)
195197

196-
implicit val ForArtifactIdEncoder: Encoder[ForArtifactId] = deriveEncoder
198+
implicit val ForArtifactIdEncoder: Encoder[ForArtifactId] = {
199+
val derived = deriveEncoder[ForArtifactId]
200+
201+
derived.mapJson(json => Json.obj("ForArtifactId" -> json))
202+
}
197203

198204
implicit val ForArtifactIdDecoder: Decoder[ForArtifactId] = {
199205
val derived = deriveDecoder[ForArtifactId]
@@ -202,7 +208,11 @@ object Update {
202208
.or(derived.prepare(_.downField("Single")))
203209
}
204210

205-
implicit val ForGroupIdEncoder: Encoder[ForGroupId] = deriveEncoder
211+
implicit val ForGroupIdEncoder: Encoder[ForGroupId] = {
212+
val derived = deriveEncoder[ForGroupId]
213+
214+
derived.mapJson(json => Json.obj("ForGroupId" -> json))
215+
}
206216

207217
implicit val ForGroupIdDecoder: Decoder[ForGroupId] = {
208218
val derived = deriveDecoder[ForGroupId]
@@ -211,15 +221,23 @@ object Update {
211221
.or(derived.prepare(_.downField("Group")))
212222
}
213223

214-
implicit val GroupedEncoder: Encoder[Grouped] = deriveEncoder
224+
implicit val GroupedEncoder: Encoder[Grouped] = {
225+
val derived = deriveEncoder[Grouped]
226+
227+
derived.mapJson(json => Json.obj("Grouped" -> json))
228+
}
215229

216230
implicit val GroupedDecoder: Decoder[Grouped] =
217231
deriveDecoder[Grouped].prepare(_.downField("Grouped"))
218232

219233
implicit val SingleOrder: Order[Single] =
220234
Order.by((u: Single) => (u.crossDependencies, u.newerVersions))
221235

222-
implicit val UpdateEncoder: Encoder[Update] = deriveEncoder
236+
implicit val UpdateEncoder: Encoder[Update] = {
237+
case update: Grouped => update.asJson
238+
case update: ForArtifactId => update.asJson
239+
case update: ForGroupId => update.asJson
240+
}
223241

224242
implicit val UpdateDecoder: Decoder[Update] =
225243
ForArtifactIdDecoder

0 commit comments

Comments
 (0)