Package com.google.livingstories.servlet

Source Code of com.google.livingstories.servlet.StartPageServlet

/**
* Copyright 2010 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS-IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.google.livingstories.servlet;

import com.google.gxp.base.GxpContext;
import com.google.livingstories.gxps.StartPageHtml;
import com.google.livingstories.server.dataservices.UserDataService;
import com.google.livingstories.server.dataservices.UserLoginService;
import com.google.livingstories.server.dataservices.impl.DataImplFactory;

import org.json.JSONException;
import org.json.JSONObject;

import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

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

/**
* Servlet for the living stories start page.
*/
public class StartPageServlet extends HttpServlet {
  protected UserLoginService userLoginService;
  protected UserDataService userDataService;
 
  public StartPageServlet() {
    this.userLoginService = DataImplFactory.getUserLoginService();
    this.userDataService = DataImplFactory.getUserDataService();
  }

  @Override
  public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    String loggedInUser = userLoginService.getUserId();
   
    JSONObject lastVisitTimes = new JSONObject();
    if (loggedInUser != null) {
      // Note: the date format that will be transferred via JSON should match with the date format
      // being used in {@link StartPage} which parses it. In particular, the timezone must be
      // included in the date being transferred.
      DateFormat dateFormatter = new SimpleDateFormat("MMMMM d, yyyy HH:mm:ss aaa ZZZZ");
      Map<Long, Date> allStoryMap = userDataService.getAllLastVisitTimes(loggedInUser);
      for (Map.Entry<Long, Date> entry : allStoryMap.entrySet()) {
        if (entry.getValue() != null) {
          try {
            lastVisitTimes.put(entry.getKey().toString(), dateFormatter.format(entry.getValue()));
          } catch (JSONException e) {
            // Do nothing
          }
        }
      }
    }
   
    ExternalServiceKeyChain externalProperties = new ExternalServiceKeyChain(getServletContext());
    String currentUrl = req.getRequestURI();
    StartPageHtml.write(
        resp.getWriter(),
        new GxpContext(req.getLocale()),
        req.getRequestURI(),
        userLoginService.getUserDisplayName(),
        userLoginService.createLoginUrl(currentUrl),
        userLoginService.createLogoutUrl(currentUrl),
        lastVisitTimes,
        loggedInUser == null ? null : userDataService.getDefaultStoryView(loggedInUser),
        externalProperties.getLogoFileLocation(),
        externalProperties.getAnalyticsAccountId());
  }
}
TOP

Related Classes of com.google.livingstories.servlet.StartPageServlet

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.