All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.algorithmia.handler.RequestHandler.scala Maven / Gradle / Ivy

The newest version!
package com.algorithmia.handler

import play.api.libs.json._

import scala.reflect.ClassTag
import scala.util._

case class RequestHandler[I]() {

  def processRequest(line: String)(implicit s: Reads[I], obj: ClassTag[I]): Try[I] = {
    (Json.parse(line) \ "data") match {
      case JsDefined(value) =>
        Json.fromJson[I](value) match {
          case JsSuccess(value, _) => Success(value)
          case JsError(_) => Failure(new Exception(s"Unable to convert ${line} into ${obj}"))
        }
      case JsUndefined() => Failure(new Exception(s"unable to find key 'data' in request json object:\n${line}"))
    }
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy