Package com.threepillar.labs.socialauthsample.controller

Source Code of com.threepillar.labs.socialauthsample.controller.HomeController

package com.threepillar.labs.socialauthsample.controller;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.brickred.socialauth.AuthProvider;
import org.brickred.socialauth.SocialAuthManager;
import org.brickred.socialauth.spring.bean.SocialAuthTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import com.threepillar.labs.socialauthsample.bean.User;
import com.threepillar.labs.socialauthsample.util.Constants;

@Controller
public class HomeController {

  private final Logger logger = LoggerFactory.getLogger(this.getClass());

  @Autowired
  private SocialAuthTemplate socialAuthTemplate;

  @RequestMapping(value = "/registration")
  public ModelAndView showRegistration(final HttpServletRequest request) {
    logger.info("Showing registration page");
    HttpSession session = request.getSession();
    session.setAttribute(Constants.REQUEST_TYPE, Constants.REGISTRATION);
    ModelAndView modelAndView = new ModelAndView("registration");
    return modelAndView;

  }

  @RequestMapping(value = "/submitRegistration")
  public ModelAndView showRegistrationPage(
      @ModelAttribute("user") final User user,
      final HttpServletRequest request) {
    logger.info("Submiting registration");
    ModelAndView modelAndView = new ModelAndView("registrationSuccess",
        "user", user);
    return modelAndView;

  }

  @RequestMapping(value = "/importContacts")
  public ModelAndView importContacts(final HttpServletRequest request) {
    logger.info("Showing import contacts page");
    HttpSession session = request.getSession();
    session.setAttribute(Constants.REQUEST_TYPE, Constants.IMPORT_CONTACTS);
    ModelAndView modelAndView = new ModelAndView("importContacts");
    return modelAndView;
  }

  @RequestMapping(value = "/shareForm")
  public ModelAndView shareForm(final HttpServletRequest request) {
    logger.info("Showing share form");
    HttpSession session = request.getSession();
    session.setAttribute(Constants.REQUEST_TYPE, Constants.SHARE);
    SocialAuthManager manager = socialAuthTemplate.getSocialAuthManager();
    List<String> connectedProvidersIds = new ArrayList<String>();
    if (manager != null) {
      connectedProvidersIds = manager.getConnectedProvidersIds();
    }

    ModelAndView modelAndView = new ModelAndView("shareForm",
        "connectedProvidersIds", connectedProvidersIds);
    return modelAndView;

  }

  @RequestMapping(value = "/share", method = RequestMethod.POST)
  public ModelAndView share(
      @RequestParam(value = "message", required = true) final String message,
      final HttpServletRequest request) {
    logger.info("Showing share form");
    HttpSession session = request.getSession();
    session.setAttribute(Constants.REQUEST_TYPE, Constants.SHARE);
    SocialAuthManager manager = socialAuthTemplate.getSocialAuthManager();
    List<String> connectedProvidersIds = new ArrayList<String>();
    if (manager != null) {
      connectedProvidersIds = manager.getConnectedProvidersIds();
    }
    String providerIds = null;
    for (String id : connectedProvidersIds) {
      try {
        AuthProvider provider = manager.getProvider(id);
        provider.updateStatus(message);
        if (providerIds == null) {
          providerIds = provider.getProviderId();
        } else {
          providerIds += ", " + provider.getProviderId();
        }
      } catch (Exception e) {
        logger.error(e.getMessage());
      }
    }
    ModelAndView modelAndView = new ModelAndView("shareForm");
    modelAndView.addObject("connectedProvidersIds", connectedProvidersIds);
    if (providerIds != null) {
      String str = "Status is updated on " + providerIds;
      if (providerIds.indexOf(',') != -1) {
        str += " providers.";
      } else {
        str += " provider.";
      }
      modelAndView.addObject("message", str);
    }
    return modelAndView;

  }
}
TOP

Related Classes of com.threepillar.labs.socialauthsample.controller.HomeController

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.