package org.caudexorigo.jpt.sample;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.http.FullHttpRequest;
import java.net.URI;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.caudexorigo.http.netty4.HttpAction;
import org.caudexorigo.http.netty4.RequestRouter;
import org.caudexorigo.http.netty4.StaticFileAction;
import org.caudexorigo.jpt.web.netty.NettyWebJptAction;
public class AppMapper implements RequestRouter
{
private final Map<String, HttpAction> routes;
private final HttpAction default_action;
public AppMapper(URI root_dir)
{
default_action = new StaticFileAction(root_dir);
routes = new HashMap<>();
routes.put("/CustomerList", new NettyWebJptAction(root_dir.resolve("CustomerList.jpt")));
}
@Override
public HttpAction map(ChannelHandlerContext ctx, FullHttpRequest req)
{
String uri = req.getUri();
String path = StringUtils.substringBefore(uri, "?");
HttpAction action = routes.get(path);
if (action != null)
{
return action;
}
else
{
return default_action;
}
}
}