package server.handler;
import com.m3.curly.Method;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public abstract class MethodHandler extends AbstractHandler {
public abstract Method getMethod();
@Override
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) {
try {
_handle(request.getMethod().equals(getMethod().toString()), getMethod(), baseRequest, request, response);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public void _handle(Boolean isAllowed, Method method, Request baseRequest, HttpServletRequest request,
HttpServletResponse response) throws Exception {
if (isAllowed) {
if (request.getRequestURI().equals("/not_found")) {
response.setStatus(404);
} else {
response.setStatus(HttpServletResponse.SC_OK);
response.setCharacterEncoding("UTF-8");
response.setContentType("text/plain");
String toReturn = request.getParameter("toReturn");
if (toReturn != null) {
response.getWriter().print(toReturn);
} else {
response.getWriter().print("おk");
}
}
} else {
response.setStatus(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
response.setCharacterEncoding("UTF-8");
response.setContentType("text/plain");
response.getWriter().print("だm");
}
baseRequest.setHandled(true);
}
}