Skip to content

Commit

Permalink
further simplications...
Browse files Browse the repository at this point in the history
  • Loading branch information
jnicoulaud-ledger committed Nov 4, 2023
1 parent 0dc9687 commit bd144b0
Showing 1 changed file with 0 additions and 5 deletions.
5 changes: 0 additions & 5 deletions modules/api/src/main/scala/types.scala
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
import cats.Show
import cats.syntax.all.*
import io.circe.{Decoder, Encoder, Codec as CirceCodec}
import io.github.iltotore.iron.*
import io.github.iltotore.iron.constraint.all.*
import sttp.tapir
import sttp.tapir.Codec.PlainCodec as TapirPlainCodec
import sttp.tapir.codec.iron.TapirCodecIron
import sttp.tapir.{CodecFormat, DecodeResult, Codec as TapirCodec, Schema as TapirSchema}

given CirceCodec[Int] = CirceCodec.from(Decoder.decodeInt, Encoder.encodeInt)

extension[L, H: Show, CF <: CodecFormat] (codec: TapirCodec[L, H, CF])
def iemap[HH](f: H => Either[String, HH])(g: HH => H): TapirCodec[L, HH, CF] =
codec.mapDecode(s => DecodeResult.fromEitherString(s.show, f(s)))(g)
Expand All @@ -18,8 +15,6 @@ private type VersionConstraints = DescribedAs[GreaterEqual[0], "Version must be
opaque type Version = Int :| VersionConstraints

object Version extends RefinedTypeOps[Int, VersionConstraints, Version], TapirCodecIron:
given CirceCodec[Version] = summon[CirceCodec[Int]].iemap(either(_))(_.value)

given TapirPlainCodec[Version] = summon[TapirPlainCodec[Int]].iemap(either(_))(_.value)

given TapirSchema[Version] = ironTypeSchema[Int, VersionConstraints]

0 comments on commit bd144b0

Please sign in to comment.