blob: 9fb1cc73202a66a10c919a3f625df775d5310f81 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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 org.apache.ofbiz.ebaystore;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.ofbiz.base.util.Debug;
import org.apache.ofbiz.base.util.UtilHttp;
import org.apache.ofbiz.base.util.UtilValidate;
import org.apache.ofbiz.entity.Delegator;
import org.apache.ofbiz.entity.GenericValue;
import org.apache.ofbiz.service.GenericServiceException;
import org.apache.ofbiz.service.LocalDispatcher;
import org.apache.ofbiz.webapp.event.EventHandlerException;
import com.ebay.sdk.ApiContext;
import com.ebay.sdk.ApiException;
import com.ebay.sdk.SdkException;
import com.ebay.sdk.SdkSoapException;
import com.ebay.sdk.call.GetStoreOptionsCall;
import com.ebay.soap.eBLBaseComponents.CategoryType;
import com.ebay.soap.eBLBaseComponents.GetStoreOptionsRequestType;
import com.ebay.soap.eBLBaseComponents.GetStoreOptionsResponseType;
import com.ebay.soap.eBLBaseComponents.StoreColorSchemeType;
import com.ebay.soap.eBLBaseComponents.StoreColorType;
import com.ebay.soap.eBLBaseComponents.StoreFontType;
import com.ebay.soap.eBLBaseComponents.StoreThemeArrayType;
import com.ebay.soap.eBLBaseComponents.StoreThemeType;
import com.ebay.soap.eBLBaseComponents.StoreCustomCategoryType;
public class EbayStoreOptions {
private static final String module = EbayStoreOptions.class.getName();
public static String retrieveThemeColorSchemeByThemeId(HttpServletRequest request, HttpServletResponse response) {
Locale locale = UtilHttp.getLocale(request);
HttpSession session = request.getSession(true);
GenericValue userLogin = (GenericValue) session.getAttribute("userLogin");
Delegator delegator = (Delegator) request.getAttribute("delegator");
LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");
GetStoreOptionsRequestType req = null;
GetStoreOptionsResponseType resp = null;
StoreThemeArrayType returnedBasicThemeArray = null;
try {
Map<String, Object> paramMap = UtilHttp.getCombinedMap(request);
if (paramMap.get("productStoreId") != null) {
String themeId = (String)paramMap.get("themeId");
GetStoreOptionsCall call = new GetStoreOptionsCall(EbayStoreHelper.getApiContext((String)paramMap.get("productStoreId"), locale, delegator));
req = new GetStoreOptionsRequestType();
resp = (GetStoreOptionsResponseType) call.execute(req);
if (resp != null && "SUCCESS".equals(resp.getAck().toString())) {
returnedBasicThemeArray = resp.getBasicThemeArray();
StoreThemeType[] storeBasicTheme = returnedBasicThemeArray.getTheme();
int i=0;
String colorSchemeId = themeId.substring(themeId.indexOf("-")+1);
themeId = themeId.substring(0,themeId.indexOf("-"));
Map<String,Object> storeColorSchemeMap = new HashMap<String, Object>();
while (i < storeBasicTheme.length) {
StoreThemeType storeThemeType = storeBasicTheme[i];
if (themeId.equals(storeThemeType.getThemeID().toString())) {
StoreColorSchemeType colorSchemeType = storeThemeType.getColorScheme();
if (colorSchemeType != null) {
if (colorSchemeId.equals(colorSchemeType.getColorSchemeID().toString())) {
StoreColorType storeColor = colorSchemeType.getColor();
storeColorSchemeMap.put("storeColorAccent",storeColor.getAccent());
storeColorSchemeMap.put("storeColorPrimary",storeColor.getPrimary());
storeColorSchemeMap.put("storeColorSecondary",storeColor.getSecondary());
// get font,size and color
StoreFontType storeFontType = colorSchemeType.getFont();
storeColorSchemeMap.put("storeFontTypeNameFaceColor",storeFontType.getNameColor());
storeColorSchemeMap.put("storeFontTypeFontFaceValue",storeFontType.getNameFace().value());
storeColorSchemeMap.put("storeFontTypeSizeFaceValue",storeFontType.getNameSize().value());
storeColorSchemeMap.put("storeFontTypeTitleColor",storeFontType.getTitleColor());
storeColorSchemeMap.put("storeFontTypeFontTitleValue",storeFontType.getTitleFace().value());
storeColorSchemeMap.put("storeFontSizeTitleValue",storeFontType.getTitleSize().value());
storeColorSchemeMap.put("storeFontTypeDescColor",storeFontType.getDescColor());
storeColorSchemeMap.put("storeFontTypeFontDescValue",storeFontType.getDescFace().value());
storeColorSchemeMap.put("storeDescSizeValue",storeFontType.getDescSize().value());
request.setAttribute("storeColorSchemeMap", storeColorSchemeMap);
break;
}
}
}
i++;
}
} else {
EbayStoreHelper.createErrorLogMessage(userLogin, dispatcher, paramMap.get("productStoreId").toString(), resp.getAck().toString(), "GetStoreOptionsCall : retrieveThemeColorSchemeByThemeId", resp.getErrors(0).getLongMessage());
}
}
} catch (ApiException e) {
e.printStackTrace();
return "error";
} catch (SdkSoapException e) {
e.printStackTrace();
return "error";
} catch (SdkException e) {
e.printStackTrace();
return "error";
}
return "success";
}
public static String retrieveItemTemplateByTemplateGroupId(HttpServletRequest request,HttpServletResponse response) {
Map<String, Object> paramMap = UtilHttp.getCombinedMap(request);
if (paramMap.get("productStoreId") != null) {
String temGroupId = (String)paramMap.get("templateGroupId");
Map<String,Object> addItemObj = EbayEvents.getAddItemListingObject(request, EbayEvents.getApiContext(request));
if (UtilValidate.isNotEmpty(addItemObj)) {
String refName = "itemCateFacade_".concat((String) paramMap.get("pkCategoryId"));
if (UtilValidate.isNotEmpty(addItemObj.get(refName))) {
EbayStoreCategoryFacade cf = (EbayStoreCategoryFacade) addItemObj.get(refName);
List<Map<String,Object>> theme = cf.getAdItemTemplates(temGroupId);
if (theme.size() > 0) {
request.setAttribute("itemTemplates", theme);
}
}
}
}
return "success";
}
public static String retrieveEbayCategoryByParent(HttpServletRequest request, HttpServletResponse response) {
List<CategoryType> results;
try {
Map<String, Object> paramMap = UtilHttp.getCombinedMap(request);
if (paramMap.get("productStoreId") != null) {
String ebayCategoryId = (String)paramMap.get("ebayCategoryId");
// when change category should be remove old category from session
if (ebayCategoryId.indexOf("CH_") != -1) {
ebayCategoryId = ebayCategoryId.replace("CH_", "");
if (UtilValidate.isNotEmpty(ebayCategoryId)) {
ApiContext apiContext = EbayEvents.getApiContext(request);
Map<String,Object> addItemObject = EbayEvents.getAddItemListingObject(request, apiContext);
String refName = "itemCateFacade_".concat(ebayCategoryId);
if (UtilValidate.isNotEmpty(addItemObject.get(refName))) {
addItemObject.remove(refName);
}
}
ebayCategoryId = "";
}
request.setAttribute("productStoreId", paramMap.get("productStoreId"));
request.setAttribute("categoryId", ebayCategoryId);
results = EbayEvents.getChildCategories(request);
if (UtilValidate.isNotEmpty(results)) {
List<Map<String,Object>> categories = new LinkedList<Map<String,Object>>();
for (CategoryType category : results) {
Map<String,Object> context = new HashMap<String, Object>();
context.put("CategoryCode", category.getCategoryID());
context.put("CategoryName", category.getCategoryName());
String isLeaf = String.valueOf(category.isLeafCategory()!= null ? category.isLeafCategory() : "false");
context.put("IsLeafCategory", isLeaf);
categories.add(context);
}
if (categories.size() > 0) {
request.setAttribute("categories", categories);
}
}
}
} catch (GenericServiceException e) {
Debug.logError(e.getMessage(), module);
} catch (EventHandlerException e) {
Debug.logError(e.getMessage(), module);
} catch (ApiException e) {
Debug.logError(e.getMessage(), module);
} catch (SdkException e) {
Debug.logError(e.getMessage(), module);
} catch (Exception e) {
Debug.logError(e.getMessage(), module);
}
return "success";
}
public static String retrieveEbayStoreCategoryByParent(HttpServletRequest request, HttpServletResponse response) {
List<StoreCustomCategoryType> results;
try {
Map<String, Object> paramMap = UtilHttp.getCombinedMap(request);
if (paramMap.get("productStoreId") != null) {
String ebayStoreCategory = (String)paramMap.get("ebayCategoryId");
// when change category should be remove old category from session
if (ebayStoreCategory.indexOf("CH_") != -1) {
ebayStoreCategory = ebayStoreCategory.replace("CH_", "");
if (UtilValidate.isNotEmpty(ebayStoreCategory)) {
ApiContext apiContext = EbayEvents.getApiContext(request);
Map<String,Object> addItemObject = EbayEvents.getAddItemListingObject(request, apiContext);
String refName = "itemCateFacade_".concat(ebayStoreCategory);
if (UtilValidate.isNotEmpty(addItemObject.get(refName))) {
addItemObject.remove(refName);
}
}
ebayStoreCategory = "";
}
request.setAttribute("productStoreId", paramMap.get("productStoreId"));
request.setAttribute("categoryId", ebayStoreCategory);
results = EbayEvents.getStoreChildCategories(request);
if (UtilValidate.isNotEmpty(results)) {
List<Map<String,Object>> categories = new LinkedList<Map<String,Object>>();
for (StoreCustomCategoryType category : results) {
Map<String,Object> context = new HashMap<String, Object>();
context.put("CategoryCode", category.getCategoryID());
context.put("CategoryName", category.getName());
String isLeaf = "false";
if (category.getChildCategory().length == 0) {
isLeaf = "true";
} else {
isLeaf = "false";
}
context.put("IsLeafCategory", isLeaf);
categories.add(context);
}
if (categories.size() > 0) {
request.setAttribute("categories", categories);
}
}
}
} catch (GenericServiceException e) {
Debug.logError(e.getMessage(), module);
} catch (EventHandlerException e) {
Debug.logError(e.getMessage(), module);
} catch (ApiException e) {
Debug.logError(e.getMessage(), module);
} catch (SdkException e) {
Debug.logError(e.getMessage(), module);
} catch (Exception e) {
Debug.logError(e.getMessage(), module);
}
return "success";
}
}