/* * Copyright 2014, The OpenNMS Group * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.opennms.newts.gsod; import static spark.Spark.get; import static spark.Spark.staticFileLocation; import java.util.Map; import spark.Request; import spark.Response; import spark.template.velocity.VelocityRoute; import com.google.common.collect.Maps; public class Web { private Web() {} private static final Map<String, String> STATION_IDS = Maps.newHashMap(); private static final Map<String, String> STATION_NAMES = Maps.newTreeMap(); static { STATION_IDS.put("ksat", "722530"); // San Antonio STATION_IDS.put("kdal", "722585"); // Dallas STATION_IDS.put("kelp", "722700"); // El Paso STATION_IDS.put("kiah", "722430"); // Houston STATION_IDS.put("kaus", "722545"); // Austin STATION_IDS.put("klbb", "722670"); // Lubbock STATION_NAMES.put("ksat", "San Antonio"); STATION_NAMES.put("kdal", "Dallas"); STATION_NAMES.put("kelp", "El Paso"); STATION_NAMES.put("kiah", "Houston"); STATION_NAMES.put("kaus", "Austin"); STATION_NAMES.put("klbb", "Lubbock"); } public static void main(String... args) { staticFileLocation("/static"); get(new VelocityRoute("/stations") { @Override public Object handle(Request request, Response response) { Map<String, Object> model = Maps.newHashMap(); model.put("stationsMap", STATION_NAMES); return modelAndView(model, "index.wm"); } }); get(new VelocityRoute("/summer88") { @Override public Object handle(Request arg0, Response arg1) { Map<String, Object> model = Maps.newHashMap(); model.put("stationIds", STATION_IDS); return modelAndView(model, "summer.wm"); } }); get(new VelocityRoute("/stations/:stationName") { @Override public Object handle(Request request, Response response) { String stationName = request.params(":stationName"); String id = STATION_IDS.get(stationName); if (id == null) { halt(404, "No such station"); } Map<String, String> model = Maps.newHashMap(); model.put("location", STATION_NAMES.get(stationName)); model.put("id", id); model.put("start", request.queryParams("start")); model.put("end", request.queryParams("end")); model.put("resolution", request.queryParams("resolution")); return modelAndView(model, "station.wm"); } }); } }