Skip to content

Commit

Permalink
json mucking
Browse files Browse the repository at this point in the history
  • Loading branch information
sclasen committed Feb 12, 2013
1 parent b84fc7f commit c8344e0
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 6 deletions.
7 changes: 4 additions & 3 deletions src/main/scala/com/heroku/play/api/HerokuGlobal.scala
Expand Up @@ -7,14 +7,15 @@ import play.api.http.ContentTypes._
import play.api.http.HeaderNames._
import play.api.mvc.Results._
import play.api.mvc.{ Handler, Request, Result, RequestHeader }
import play.api.libs.json.Json._

trait HerokuGlobal extends GlobalSettings {
val log = LoggerFactory.getLogger("Global")

override def onError(request: RequestHeader, ex: Throwable) = {
log.error("onError", ex)
log.error("onError {} {}", request, request.headers.toSimpleMap)
InternalServerError(Error("an unexpected error occurred").json).withHeaders(CONTENT_TYPE -> JSON)
InternalServerError(stringify(Error("an unexpected error occurred").json)).withHeaders(CONTENT_TYPE -> JSON)
}

override def onBadRequest(request: RequestHeader, error: String): Result = {
Expand All @@ -23,12 +24,12 @@ trait HerokuGlobal extends GlobalSettings {
if (request.isInstanceOf[Request[_]]) {
log.error("onBadRequest body {}", request.asInstanceOf[Request[_]].body)
}
BadRequest(Error("Invalid Request Format").json).withHeaders(CONTENT_TYPE -> JSON)
BadRequest(stringify(Error("Invalid Request Format").json)).withHeaders(CONTENT_TYPE -> JSON)
}

override def onHandlerNotFound(request: RequestHeader): Result = {
log.error("onHandlerNotFound {} {}", request, request.headers.toSimpleMap)
NotFound(Error("Not Found").json).withHeaders(CONTENT_TYPE -> JSON)
NotFound(stringify(Error("Not Found").json)).withHeaders(CONTENT_TYPE -> JSON)
}

override def onRouteRequest(request: RequestHeader): Option[Handler] = {
Expand Down
6 changes: 3 additions & 3 deletions src/main/scala/com/heroku/play/api/mvc/JsonAPI.scala
Expand Up @@ -59,15 +59,15 @@ trait JsonAPI extends Controller {

trait ToJson {

def json: String
def json: JsValue

}

case class Error(error_message: String) extends ToJson {
def json: String = Json.stringify(Json.obj("error_message" -> error_message))
def json = Json.obj("error_message" -> error_message)
}

case class Info(message: String) extends ToJson {
def json: String = Json.stringify(Json.obj("message" -> message))
def json = Json.obj("message" -> message)
}

0 comments on commit c8344e0

Please sign in to comment.