package myapp; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class RenewTaskServlet extends HttpServlet { /** * */ private static void handleRequest(HttpServletRequest req, HttpServletResponse resp) throws IOException { // check if we are only rechecking a single card String card_filter = req.getParameter("card_number"); String email = req.getParameter("email"); User user = null; if(email == null) { System.err.println("'email' is a required parameter and was not found; aborting"); return; } else { user = User.find(email); if(user == null) { System.err.printf("email '%s' not found; aborting\n", email); return; } } // retrieve the cards from the datastore using Objectify LibraryCard card = null; if (card_filter == null) { System.err.println("'card_filter' is a required parameter and was not found; aborting"); return; } else { card = LibraryCard.find(user, card_filter); if (card == null) { resp.getWriter().printf("Library card not found for user '%s', with card number '%s'.\n",user.email,card_filter); return; } } System.out.printf("Renewing items for %s (%s)\n", user.email, card.card_number); resp.getWriter().printf("Renewing items for %s (%s)\n", user.email, card.card_number); int tryToRenewCount = LibraryRenewer.renewTask(card, resp); // if we set the status to an error, it will keep retrying the // task. resp.setStatus(tryToRenewCount == 0 ? 200 : 500); } @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { handleRequest(req, resp); } @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { handleRequest(req, resp); } }