Package org.elip.stewiemaze.server.servlets

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

package org.elip.stewiemaze.server.servlets;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Logger;

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.SignedRequestDecoder;
import org.elip.stewiemaze.server.services.PlayerService;
import org.elip.stewiemaze.server.services.RegisterPlayerService;
import org.elip.stewiemaze.server.utils.Constants;
import org.elip.stewiemaze.server.utils.CookieUtils;
import org.elip.stewiemaze.shared.entities.Player;

import com.google.appengine.repackaged.org.json.JSONException;
import com.google.appengine.repackaged.org.json.JSONObject;

/**
* This servlet handles the initial registration of a facebook user.
* It stores the current score and the registration form details from the registration page.
* @author Eli
*
*/
public class RegisterFacebookPlayerServlet extends HttpServlet {
 
  /**
   *
   */
  private static final long serialVersionUID = 1L;
 
  @Override
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    doPost(request, response);
  }
 
  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   
    Logger logger = Logger.getLogger(RegisterFacebookPlayerServlet.class.getName());
   
    logger.fine("Got request from url : " + req.getRequestURL().toString());
   
    handleFacebookRegistration(req,resp);
 
  }
 
  @SuppressWarnings("unchecked")
  private void handleFacebookRegistration(HttpServletRequest req, HttpServletResponse resp) throws IOException {
   
    Logger logger = Logger.getLogger(RegisterFacebookPlayerServlet.class.getName());
   
    logger.fine("decoding signed_request and getting registration details");
   
    String input = (String)req.getParameter("signed_request").toString();
   
    Map<String, Object> jsonMap = new HashMap<String, Object>();
   
    try {
      jsonMap = SignedRequestDecoder.parse_signed_request(input, "f493dbd66eb6d4e668f17628ae52c514");
    } catch (Exception e1) {
    }
   
    JSONObject jsonObject = null;
    jsonObject = (JSONObject)jsonMap.get("registration");
   
    String name = "";
    String email = "";
    String userId = "";
   
    try {
      name = (String) jsonObject.get("name");
      email = (String) jsonObject.get("email");
      userId = (String)jsonMap.get("user_id");
    } catch (JSONException e) {
      e.printStackTrace();
    }
   
    /* retrieve the score from the request */
    Cookie score = CookieUtils.getCookie(req, "tempScore");
   
    /* Register the player to the database, still with no permissions */
    Player player = PlayerService.createFacebookPlayer(name, userId,email, Long.valueOf(score.getValue()));
    RegisterPlayerService.registerPlayer(player);
   
    /* delete this cookie since it is now saved in the database */
    CookieUtils.eraseCookie(req, resp, "tempScore");
   
    /* redirect the user to the application permission section */
    resp.sendRedirect(resp.encodeRedirectURL(Constants.FACEBOOK_AOUTH_URI))
   
  }

}
 
TOP

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

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.