Package org.elip.stewiemaze.server.servlets

Source Code of org.elip.stewiemaze.server.servlets.RegisterPlayerServlet

package org.elip.stewiemaze.server.servlets;

import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.logging.Logger;

import javax.mail.MessagingException;
import javax.mail.internet.AddressException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.elip.stewiemaze.server.FormValidator;
import org.elip.stewiemaze.server.services.PlayerService;
import org.elip.stewiemaze.server.services.RegisterPlayerService;
import org.elip.stewiemaze.server.utils.CookieUtils;
import org.elip.stewiemaze.server.utils.MailUtils;
import org.elip.stewiemaze.shared.entities.Player;

public class RegisterPlayerServlet extends HttpServlet {
 
  /**
   *
   */
  private static final long serialVersionUID = 1L;
 
 
  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp)
      throws ServletException, IOException {
   
    Logger logger = Logger.getLogger(RegisterPlayerServlet.class.getName());
   
    logger.fine("Got request from url : " + req.getRequestURL().toString());
   
    handleRegularRegistration(req,resp);
   
  }


  private void handleRegularRegistration(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   
    Logger logger = Logger.getLogger(RegisterPlayerServlet.class.getName());
   
    logger.fine("started handling regular registration request");
   
    PrintWriter out = resp.getWriter();
   
    /* Get registration details from the request */
    String name = req.getParameter("nickname");;
    Long score = Long.parseLong(req.getParameter("score"));;
    String email = req.getParameter("email");
    String password = req.getParameter("password");
   
    logger.fine("request parameters are : name=" + name + " | " + "score=" + score + " | " + "email=" + email + " | " + "password=" + password);
   
    /* Validate the form server side */
    List<String> errors = FormValidator.validateForm(name, email, password);
       
    if (errors.size() == 0) { // no erros, can register
     
      logger.fine("the request has been validated on the server, adding to database");
     
      /* Remove this cookie, it will be replace with the "highscore" cookie */
      CookieUtils.eraseCookie(req, resp, "tempScore");
     
      /* Create a regular player */
      Player player = PlayerService.createPlayer(name, email, password, score, false);
     
      /* Save player to the database, not activated yet */
      RegisterPlayerService.registerPlayer(player);
     
      /* Add cookies so that uppon return to the application the user will be identifeid */
      resp.addCookie(new Cookie("nickname", name));
      resp.addCookie(new Cookie("highscore", score + ""));
     
      if (email.equals("")) { // A player has not registered for notification, no need to send validation mail
       
        logger.fine("added to databse succesfully");
       
        out.println("Congrats, you have registered succesfully");
        out.println("<a href='http://stewiemaze.appspot.com'>Return to game</a>");
      }
      else {
            try { // A player has registered for notifications, needs to verify the given email
             
              logger.fine("added to databse succesfully");
              logger.fine("sending an activation email to :" + email);
             
              MailUtils.sendValidationMail(email, name);
              out.println("Please verify your account by reading the message we have just sent you");
              out.println("<br>");
              out.println("After that, click <a href='http://2.stewiemaze.appspot.com'>Here</a> to return to the game");
              out.println("<a href='http://stewiemaze.appspot.com'>Return to app</a>");
            } catch (AddressException e) {
                throw new ServletException("Sorry, something happened...", e);
            } catch (MessagingException e) {
              throw new ServletException("Sorry, something happened...", e);
            } catch (UnsupportedEncodingException e) {
              throw new ServletException("Sorry, something happened...", e);
        }
      }
    }
    else { // Errors exist in the form, let the user know and offer to return to the application. the users score is saved in the tmpScore cookie
      for (String error : errors) {
       
        logger.fine("request validation failed on the server");
       
        out.println(error);
        out.println("<a href='http://stewiemaze.appspot.com'>Return to game</a>");
     
    }
  }
}
TOP

Related Classes of org.elip.stewiemaze.server.servlets.RegisterPlayerServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.