package feedthistothat;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Calendar;
import java.util.logging.Logger;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.appengine.api.users.User;
import com.google.appengine.api.users.UserService;
import com.google.appengine.api.users.UserServiceFactory;
import feedthistothat.DataTypes.DataAccessObject;
import feedthistothat.DataTypes.FeedParameters;
import feedthistothat.Writers.ResponseWriter;
import feedthistothat.Writers.WriterFactory;
@SuppressWarnings("serial")
public class FeedToLJServlet extends HttpServlet {
private static final Logger log = Logger.getLogger(FeedToLJServlet.class
.getName());
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
}
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
FeedParameters parameters = null;
WriterFactory.setTestWriter(new ResponseWriter(resp.getWriter()));
try {
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
parameters = new FeedParameters(req);
if (user != null) {
parameters.setEmailAddress(user.getEmail());
}
if (parameters.getPostingTime().before(Calendar.getInstance()) && !parameters.getForcePostInPast()) {
resp.setContentType("text/HTML");
String output = Feeder.Feed(parameters);
resp.getWriter().println(output);
} else {
if (user != null) {
resp.getWriter().println("Saved for future posting");
} else {
resp.getWriter().println(
"Only logged in users can set up future postings.");
}
}
} catch (Exception e1) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
e1.printStackTrace(pw);
log.severe("Uncaught Exception: " + sw.toString());
resp.getWriter().println("Something unexpected has occurred.");
e1.printStackTrace(resp.getWriter());
}
DataAccessObject.updateFeedParameters(parameters);
}
}