Package com.tmm.enterprise.microblog.controller

Source Code of com.tmm.enterprise.microblog.controller.EmailController

package com.tmm.enterprise.microblog.controller;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
import org.springframework.web.servlet.mvc.multiaction.NoSuchRequestHandlingMethodException;
import org.springframework.web.servlet.view.RedirectView;

import com.google.common.collect.Maps;
import com.google.gson.JsonArray;
import com.tmm.enterprise.microblog.domain.Person;
import com.tmm.enterprise.microblog.domain.PrivateMessage;
import com.tmm.enterprise.microblog.service.AccountService;
import com.tmm.enterprise.microblog.service.ContactableService;
import com.tmm.enterprise.microblog.service.MessageService;
import com.tmm.enterprise.microblog.service.JsonService;


public class EmailController extends MultiActionController implements InitializingBean
{
  private static final String QUALIFIED_REDIRECT = "../";
  private static final String NONQUALIFIED_REDIRECT = "./";
 
  /**
   * Service Classes AutoWired in
   */
  @Autowired
  private AccountService accountService;
  @Autowired
  private ContactableService contactService;
  @Autowired
  private MessageService emailService;
  @Autowired
  private JsonService jsonService;
 

  public void setJsonService(JsonService jsonService) {
    this.jsonService = jsonService;
  }
 

  public void setAccountService(AccountService accountService) {
    this.accountService = accountService;
  }

  public void setContactService(ContactableService cService) {
    this.contactService = cService;
  }
 
  public void setEmailService(MessageService emailService) {
    this.emailService = emailService;
  }
 
  @Override
  public void afterPropertiesSet() throws Exception {}

  /**
   * Default handler to handle any incorrect urls - just forwards to home for now
   *
   * @param request
   * @param response
   * @return
   * @throws Exception
   */
  @Override
  @Transactional
  public ModelAndView handleNoSuchRequestHandlingMethod(NoSuchRequestHandlingMethodException ex, HttpServletRequest request, HttpServletResponse response) throws Exception{
    return new ModelAndView(new RedirectView(QUALIFIED_REDIRECT));
  }
 
 
  /**
   * Method to build users inbox
   *
   * @param request
   * @param response
   * @return
   * @throws Exception
   */
  @Transactional
  public ModelAndView list(HttpServletRequest request, HttpServletResponse response) throws Exception{
    Map<String, Object> model = getJsonMessagesForPerson(request);
    return new ModelAndView("emailFolder", "model", model);
  }

 
  private Map<String, Object> getJsonMessagesForPerson(
      HttpServletRequest request) {
    Person currentUser = accountService.getPerson(request);
    Map<String, Object> model = Maps.newHashMap();
    JsonArray array = new JsonArray();
    if (currentUser!=null){
      List<PrivateMessage> emails = currentUser.getReceivedMessages();
      for (PrivateMessage pm : emails){
        array.add(jsonService.convertToJson(pm));
      }
    }
    model.put("emails", array);
    return model;
  }
 
  @Transactional
  public ModelAndView messageDashboard(HttpServletRequest request, HttpServletResponse response)throws Exception{
    Map<String, Object> model = getJsonMessagesForPerson(request);
    return new ModelAndView("messageDash","model",model);
   
  }
 
 
  /**
   * Method to load view to allow user to compose new message
   *
   * @param request
   * @param response
   * @return
   * @throws Exception
   */
  @Transactional
  public ModelAndView compose(HttpServletRequest request, HttpServletResponse response) throws Exception{
    Map<String, Object> model = Maps.newHashMap();
    JsonArray array = new JsonArray();
    List<Person> contacts = contactService.loadAllPersons();
    for (Person p : contacts){
      array.add(jsonService.convertToJson(p));
    }
    model.put("contacts", array);
    return new ModelAndView("emailCompose", "model", model);
  }
 
 
 
  /**
   * Method to send email message
   *
   * @param request
   * @param response
   * @return
   * @throws Exception
   */
  public ModelAndView sendEmail(HttpServletRequest request, HttpServletResponse response) throws Exception{
    String msg = request.getParameter("msg");
    String recipId = request.getParameter("recipient");
    emailService.sendEmail(request.getRemoteUser(), msg, recipId);
    return new ModelAndView("ajax_email");
  }

}
TOP

Related Classes of com.tmm.enterprise.microblog.controller.EmailController

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.