package uk.org.floop.msc.rest import net.liftweb.http._ import net.liftweb.util._ import uk.org.floop.msc.rrd._ import net.liftweb.common.Box import net.liftweb.common.Full import net.liftweb.common.Empty object Graph { def apply(args: List[String]): Box[LiftResponse] = { args match { case arg1 :: arg2 :: Nil => { val timePeriod = arg1 match { case "hour" => Some(TimePeriod.HOUR) case "day" => Some(TimePeriod.DAY) case "week" => Some(TimePeriod.WEEK) case "month" => Some(TimePeriod.MONTH) case "year" => Some(TimePeriod.YEAR) case _ => None } timePeriod match { case Some(p) => DataStore !? GenerateGraph("/" + arg2 + ".xml", p) match { case Some(ImageGenerated(bytes)) => Full(InMemoryResponse(bytes, List(("Content-Type", "image/png")), Nil, 200)) case None => println("Unable to generate graph.") Empty } case _ => println("Unrecognised time period.") Empty } } case _ => println("Undefined graph type or period.") Empty } } }