protected def extractRange()

in app/helpers/RangeHeader.scala [18:39]


  protected def extractRange(rangePart:String):Try[RangeHeader] = rangePart match {
    case fullRangeXtractor(startStr:String, endStr:String)=>
      val hdr = new RangeHeader(Some(startStr.toLong), Some(endStr.toLong))
      if(hdr.start.get>hdr.end.get){
        Failure(new BadDataError("range start must be earlier than range end"))
      } else {
        Success(hdr)
      }
    case partialStartRangeXtractor(startStr:String)=>
      val startNum = startStr.toLong
      val hdr = new RangeHeader(Some(startNum), None)
      Success(hdr)
    case partialEndRangeXtractor(endStr:String)=>
      val endNum = endStr.toLong
      if(endNum>0){
        Success(new RangeHeader(None, Some(endNum)))
      } else {
        Failure(new BadDataError("range end must be a positive integer"))
      }
    case _=>
      Failure(new BadDataError(s"incorrect range format '$rangePart'"))
  }