diff options
Diffstat (limited to 'core/src/main/scala/com/softwaremill/sttp/model/RequestBody.scala')
-rw-r--r-- | core/src/main/scala/com/softwaremill/sttp/model/RequestBody.scala | 41 |
1 files changed, 31 insertions, 10 deletions
diff --git a/core/src/main/scala/com/softwaremill/sttp/model/RequestBody.scala b/core/src/main/scala/com/softwaremill/sttp/model/RequestBody.scala index 0c737f0..7499048 100644 --- a/core/src/main/scala/com/softwaremill/sttp/model/RequestBody.scala +++ b/core/src/main/scala/com/softwaremill/sttp/model/RequestBody.scala @@ -4,18 +4,39 @@ import java.io.InputStream import java.nio.ByteBuffer import java.nio.file.Path -import com.softwaremill.sttp.BodySerializer +import com.softwaremill.sttp._ sealed trait RequestBody[+S] case object NoBody extends RequestBody[Nothing] -case class SerializableBody[T](f: BodySerializer[T], t: T) - extends RequestBody[Nothing] - -sealed trait BasicRequestBody extends RequestBody[Nothing] -case class StringBody(s: String, encoding: String) extends BasicRequestBody -case class ByteArrayBody(b: Array[Byte]) extends BasicRequestBody -case class ByteBufferBody(b: ByteBuffer) extends BasicRequestBody -case class InputStreamBody(b: InputStream) extends BasicRequestBody -case class PathBody(f: Path) extends BasicRequestBody + +sealed trait BasicRequestBody extends RequestBody[Nothing] { + def defaultContentType: Option[String] +} + +case class StringBody( + s: String, + encoding: String, + defaultContentType: Option[String] = Some(TextPlainContentType) +) extends BasicRequestBody + +case class ByteArrayBody( + b: Array[Byte], + defaultContentType: Option[String] = Some(ApplicationOctetStreamContentType) +) extends BasicRequestBody + +case class ByteBufferBody( + b: ByteBuffer, + defaultContentType: Option[String] = Some(ApplicationOctetStreamContentType) +) extends BasicRequestBody + +case class InputStreamBody( + b: InputStream, + defaultContentType: Option[String] = Some(ApplicationOctetStreamContentType) +) extends BasicRequestBody + +case class PathBody( + f: Path, + defaultContentType: Option[String] = Some(ApplicationOctetStreamContentType) +) extends BasicRequestBody case class StreamBody[S](s: S) extends RequestBody[S] |