aboutsummaryrefslogtreecommitdiff
path: root/json/circe/src/main/scala/com/softwaremill/sttp/circe/package.scala
blob: d5b6a087e7927d2b6a8a0f865057b4a4b9be35e9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.softwaremill.sttp

import io.circe.parser._
import io.circe.{Decoder, Encoder}

package object circe {

  implicit def circeBodySerializer[B](implicit encoder: Encoder[B]): BodySerializer[B] =
    b => StringBody(encoder(b).noSpaces, Utf8, Some(ApplicationJsonContentType))

  def asJson[B: Decoder]: ResponseAs[Either[io.circe.Error, B], Nothing] =
    asString(Utf8).map(decode[B])

}