app/prism/Urls.scala (35 lines of code) (raw):

package prism import java.net.URLEncoder import models.SSAA object Urls { def amiUrl(arn: String, prismUrl: String): String = { val encodedArn = URLEncoder.encode(arn, "UTF-8") s"$prismUrl/images/$encodedArn" } def amisUrl(prismUrl: String): String = { s"$prismUrl/images" } def ownersUrl(prismUrl: String): String = { s"$prismUrl/owners" } private[prism] def emptyToNone(strOpt: Option[String]) = strOpt.filter(_.nonEmpty) def instancesUrl(ssaa: SSAA, prismUrl: String) = { val getVars = for { (name, strOpt) <- List( "stack" -> ssaa.stack, "stage" -> ssaa.stage, "app" -> ssaa.app, "meta.origin.accountName" -> ssaa.accountName ) getVar <- strOpt.map(str => s"$name=${URLEncoder.encode(str, "UTF-8")}") } yield getVar s"$prismUrl/instances?${getVars.mkString("&")}" } def imageInstancesUrl(imageId: String, prismUrl: String) = { s"$prismUrl/instances?specification.imageId=$imageId" } def imageLaunchConfigUrl(imageId: String, prismUrl: String) = { s"$prismUrl/launch-configurations?imageId=$imageId" } }