diff options
Diffstat (limited to 'examples/src/main/scala/webpage/Weather3.scala')
-rw-r--r-- | examples/src/main/scala/webpage/Weather3.scala | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/examples/src/main/scala/webpage/Weather3.scala b/examples/src/main/scala/webpage/Weather3.scala new file mode 100644 index 0000000..4dadf94 --- /dev/null +++ b/examples/src/main/scala/webpage/Weather3.scala @@ -0,0 +1,55 @@ +package webpage + +import org.scalajs.dom +import org.scalajs.dom.{Node, Element} +import scala.scalajs.js +import scala.scalajs.js.annotation.JSExport +import scalatags.JsDom.all._ + +@JSExport +object Weather3 extends{ + @JSExport + def main(target: dom.HTMLDivElement) = { + import dom.extensions._ + import scala.scalajs + .concurrent + .JSExecutionContext + .Implicits + .runNow + + val url = + "http://api.openweathermap.org/" + + "data/2.5/weather?q=Singapore" + + Ajax.get(url).onSuccess{ case xhr => + if (xhr.status == 200) { + val json = js.JSON.parse( + xhr.responseText + ) + val name = json.name.toString + val weather = json.weather + .pop() + .main + .toString + + def celsius(kelvins: js.Dynamic) = { + kelvins.asInstanceOf[Double] - 273.15 + }.toInt + val min = celsius(json.main.temp_min) + val max = celsius(json.main.temp_max) + val humid = json.main.humidity.toString + target.appendChild( + div( + b("Weather in Singapore:"), + ul( + li(b("Country "), name), + li(b("Weather "), weather), + li(b("Temp "), min, " - ", max), + li(b("Humidity "), humid, "%") + ) + ).render + ) + } + } + } +}
\ No newline at end of file |