/*
* Created on Feb 19, 2011
*/
package com.googlecode.flickr2twitter.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.xml.sax.SAXException;
import com.googlecode.flickr2twitter.datastore.MyPersistenceManagerFactory;
import com.googlecode.flickr2twitter.datastore.model.User;
import com.googlecode.flickr2twitter.datastore.model.UserSourceServiceConfig;
import com.googlecode.flickr2twitter.impl.ebay.EbayUser;
import com.googlecode.flickr2twitter.impl.ebay.GetUserProfileDAO;
import com.googlecode.flickr2twitter.impl.ebay.SourceServiceProviderEbay;
import com.googlecode.flickr2twitter.impl.ebay.SourceServiceProviderEbaySandbox;
/**
* @author Emac Shen (shen.bin.1983@gmail.com)
*/
public class EbayConfigServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public static final String PARA_SELLER_ID = "seller_id";
public static final String PARA_SANDBOX = "sandbox";
public static final String PARA_SEARCH_SELLER_ID = "search_seller_id";
/*
* (non-Javadoc)
*
* @see
* javax.servlet.http.HttpServlet#service(javax.servlet.http.HttpServletRequest
* , javax.servlet.http.HttpServletResponse)
*/
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
User user = (User) req.getSession().getAttribute(
UserAccountServlet.PARA_SESSION_USER);
if (user == null) {
req.getSession().setAttribute("message", "Please Login first!");
resp.sendRedirect("/index.jsp");
return;
}
String userEmail = user.getUserId().getEmail();
String sellerId = req.getParameter(PARA_SELLER_ID);
boolean isSandbox = Boolean.valueOf(req.getParameter(EbayConfigServlet.PARA_SANDBOX));
registerNewSellerSourceServiceConfig(userEmail, sellerId, isSandbox);
resp.sendRedirect("/user_admin.jsp");
}
/**
* @param userEmail
* @param sellerId
* @param isSandbox
* @throws IOException
* @throws ServletException
*/
public void registerNewSellerSourceServiceConfig(String userEmail, String sellerId, boolean isSandbox)
throws IOException, ServletException
{
GetUserProfileDAO getUserProfileDAO = new GetUserProfileDAO();
EbayUser ebayUser = null;
try {
ebayUser = getUserProfileDAO.getUserProfile(isSandbox, sellerId);
} catch (SAXException e) {
throw new ServletException("Unable to found user profile for id: "
+ sellerId, e);
}
UserSourceServiceConfig serviceConfig = new UserSourceServiceConfig();
serviceConfig.setServiceUserId(sellerId);
serviceConfig.setServiceAccessToken(sellerId);
String userDisplayName = sellerId;
String storeName = ebayUser.getStoreName();
if ((storeName != null) && (storeName.length() > 0)) {
userDisplayName += " (" + storeName + ")";
}
serviceConfig.setServiceUserName(userDisplayName);
serviceConfig.setServiceProviderId(isSandbox ? SourceServiceProviderEbaySandbox.ID
: SourceServiceProviderEbay.ID);
serviceConfig.setUserEmail(userEmail);
if (ebayUser.getStoreURL() != null) {
serviceConfig.setUserSiteUrl(ebayUser.getStoreURL());
} else {
serviceConfig.setUserSiteUrl(ebayUser.getMyWorldURL());
}
MyPersistenceManagerFactory.addSourceServiceApp(userEmail,
serviceConfig);
}
}