package costrecord;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import costrecord.jdo.CostRecordUtils;
import costrecord.jdo.HouseManager;
@SuppressWarnings("serial")
public class HouseServlet extends HttpServlet {
// private static final Logger log = Logger
// .getLogger(RoleOperationServlet.class.getName());
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/plain");
StringBuffer msg = new StringBuffer();
boolean toIndex = false;
try {
String operation = req.getParameter("operation");
String houseName = (String) req.getParameter("houseName");
String password = (String) req.getParameter("password");
if (CostRecordUtils.checkStringValue(operation)
&& CostRecordUtils.checkStringValue(houseName)
&& CostRecordUtils.checkStringValue(password)) {
if ("addHouse".equalsIgnoreCase(operation)) {
boolean added = HouseManager.addHouse(houseName, password);
if (added) {
msg.append("House \"" + houseName + "\" created. "
+ "You can login use this account.");
toIndex = true;
} else {
msg.append("House \"" + houseName + "\" NOT created. "
+ "Please try to change a house name.");
toIndex = false;
}
} else if ("login".equalsIgnoreCase(operation)) {
Long houseID = HouseManager
.verifyLogin(houseName, password);
if (houseID == -1) {
msg.append("\"" + houseName + "\" login failed.");
} else {
req.getSession().setAttribute("houseid", houseID);
req.getSession().setAttribute("house",
HouseManager.getHouse(houseID));
msg.append("\"" + houseName + "\" login success.");
}
toIndex = true;
}
} else {
msg.append("Invalid house name or password.");
}
} catch (Exception ex) {
msg.append("Exception occured:\n");
msg.append(ex.getMessage());
} finally {
req.getSession().setAttribute("message", msg.toString());
if (toIndex) {
resp.sendRedirect("/index.jsp");
} else {
resp.sendRedirect("/house.jsp");
}
}
}
}