def putForKey()

in app/controllers/DefaultsController.scala [50:73]


  def putForKey(key:String) = IsAuthenticatedAsync(parse.text) {uid=>{request=>
    Defaults.entryFor(key).flatMap({
      case Success(maybeResult)=>
        maybeResult match {
          case Some(result)=>
            result.copy(value=request.body).save map {
              case Success(newRecord)=>Ok(Json.obj("status"->"ok","result"->newRecord))
              case Failure(error)=>
                logger.error("Unable to update existing defaults record: ", error)
                InternalServerError(Json.obj("status"->"error","detail"->error.toString))
            }
          case None=>
            Defaults(None,key,request.body).save map {
              case Success(newRecord)=>Ok(Json.obj("status"->"ok","result"->newRecord))
              case Failure(error)=>
                logger.error("Unable to save new defaults record: ", error)
                InternalServerError(Json.obj("status"->"error","detail"->error.toString))
            }
        }
      case Failure(error)=>
        logger.error("Unable to look up defaults record: ", error)
        Future(InternalServerError(Json.obj("status"->"error","detail"->error.toString)))
    })
  }}