Skip to content

Commit

Permalink
dave - reresimplified
Browse files Browse the repository at this point in the history
  • Loading branch information
daviddenton committed Jun 8, 2015
1 parent 37283d0 commit 6c7766a
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 10 deletions.
3 changes: 3 additions & 0 deletions src/main/scala/io/fintrospect/parameters/Body.scala
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ import scala.util.Try

class Body private(val description: Option[String], val paramType: ParamType, val location: Location, val example: JsonNode, parse: (String => Try[JsonNode]))
extends RequestParameter[JsonNode, JsonNode](parse) {

override val required = true

override val name = "body"
override def from(request: HttpRequest): JsonNode = parse(location.from(null, request).get).get

Expand Down
20 changes: 10 additions & 10 deletions src/main/scala/io/fintrospect/parameters/RequestParameter.scala
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,13 @@ abstract class RequestParameter[T, X](parse: (String => Try[T])) extends Paramet
def from(request: HttpRequest): T

def parseFrom(request: HttpRequest): Option[Try[X]]

override val required = true
}

class OptionalRequestParameter[T](val name: String,
val location: Location,
val description: Option[String],
val paramType: ParamType,
parse: (String => Try[T]))
val location: Location,
val description: Option[String],
val paramType: ParamType,
parse: (String => Try[T]))
extends RequestParameter[Option[T], T](s => Success(parse(s).toOption)) {

override val required = false
Expand All @@ -27,10 +25,12 @@ class OptionalRequestParameter[T](val name: String,
}

class MandatoryRequestParameter[T](val name: String,
val location: Location,
val description: Option[String],
val paramType: ParamType,
parse: (String => Try[T])) extends RequestParameter[T, T](parse) {
val location: Location,
val description: Option[String],
val paramType: ParamType,
parse: (String => Try[T])) extends RequestParameter[T, T](parse) {
override val required = true

override def from(request: HttpRequest): T = parseFrom(request).flatMap(_.toOption).get

override def parseFrom(request: HttpRequest): Option[Try[T]] = location.from(name, request).map(parse)
Expand Down

0 comments on commit 6c7766a

Please sign in to comment.