app/logic/Customisation.scala (27 lines of code) (raw):

package logic import models.{DisplayMode, Festive, Normal, Spooky} import play.api.mvc.RequestHeader import java.time.{Duration, ZoneId, ZoneOffset} import scala.util.Try object Customisation { /** Extracts requested duration and user's TZ offset from request */ def durationParams( request: RequestHeader ): (Option[Duration], Option[ZoneId]) = { val duration = Try { request.getQueryString("duration").map(ms => Duration.ofMillis(ms.toLong)) }.toOption.flatten val tzOffset = Try { request .getQueryString("tzOffset") .map(hrs => ZoneOffset.ofHours(hrs.toInt)) }.toOption.flatten (duration, tzOffset) } def displayColour(displayMode: DisplayMode): String = { displayMode match { case Normal => "cyan" case Spooky => "purple" case Festive => "red" } } }