package plugins.CENO.Client;
import plugins.CENO.CENOErrCode;
import plugins.CENO.CENOException;
import freenet.pluginmanager.PluginHTTPException;
import freenet.support.api.HTTPRequest;
public class ClientHandler extends AbstractCENOClientHandler {
private static final String pluginPath = "/plugins/" + CENOClient.class.getName();
private static final LookupHandler lookupHandler = new LookupHandler();
private static final RequestCreateHandler createHandler = new RequestCreateHandler();
private static final StatusHandler statusHandler = new StatusHandler();
public String handleHTTPGet(HTTPRequest request) throws PluginHTTPException {
String path = request.getPath().replaceFirst(pluginPath, "");
if (path.isEmpty() || path.equals("/") || path.equals("/index.html")) {
return printStaticHTML("resources/index.html");
} else if (path.startsWith("/lookup")) {
return lookupHandler.handleHTTPGet(request);
} else if (path.startsWith("/status")) {
return statusHandler.handleHTTPGet(request);
}
if (isClientHtml(request)) {
return "404: Requested path is invalid or does not accept GET requests.";
} else {
return returnError(new CENOException(CENOErrCode.LCS_HANDLER_URL_INVALID), isClientHtml(request));
}
}
public String handleHTTPPost(HTTPRequest request) throws PluginHTTPException {
String path = request.getPath().replaceFirst(pluginPath, "");
if (path.startsWith("/create")) {
createHandler.handleHTTPPost(request);
}
return "404: Requested path is invalid or does not accept POST requests.";
}
}