package com.torrenttunes.server.webservice;
import static spark.Spark.get;
import static spark.Spark.port;
import java.io.File;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import spark.Spark;
import com.torrenttunes.client.webservice.Platform;
import com.torrenttunes.server.DataSources;
import com.torrenttunes.server.tools.Tools;
public class WebService {
static final Logger log = LoggerFactory.getLogger(WebService.class);
public static void start() {
com.torrenttunes.client.tools.DataSources.MUSIC_STORAGE_PATH =
DataSources.HOME_DIR() + "/music";
if (DataSources.SSL) {
Spark.secure(DataSources.KEYSTORE(), "changeit",null,null);
}
port(DataSources.INTERNAL_SPARK_WEB_PORT);
com.torrenttunes.client.tools.DataSources.APP_NAME = DataSources.APP_NAME;
Platform.setup();
API.setup();
get("/hello", (req, res) -> {
Tools.allowOnlyLocalHeaders(req, res);
return "hi from the torrenttunes-tracker web service";
});
get("/", (req, res) -> {
Tools.allowAllHeaders(req, res);
Tools.set15MinuteCache(req, res);
return Tools.writeFileToResponse(new File(DataSources.BASE_ENDPOINT), req, res);
});
get("/es", (req, res) -> {
Tools.allowAllHeaders(req, res);
Tools.set15MinuteCache(req, res);
return Tools.writeFileToResponse(new File(DataSources.MAIN_PAGE_URL_ES()), req, res);
});
get("/fr", (req, res) -> {
Tools.allowAllHeaders(req, res);
Tools.set15MinuteCache(req, res);
return Tools.writeFileToResponse(new File(DataSources.MAIN_PAGE_URL_FR()), req, res);
});
get("/*", (req, res) -> {
Tools.allowAllHeaders(req, res);
Tools.set15MinuteCache(req, res);
String pageName = req.splat()[0];
String webHomePath = DataSources.WEB_HOME() + "/" + pageName;
Tools.setContentTypeFromFileName(pageName, res);
return Tools.writeFileToResponse(webHomePath, req, res);
});
}
}