svn commit: r554828 - in /ofbiz/trunk/applications/product: servicedef/services.xml src/org/ofbiz/product/product/ProductSearchEvents.java webapp/catalog/WEB-INF/controller.xml

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r554828 - in /ofbiz/trunk/applications/product: servicedef/services.xml src/org/ofbiz/product/product/ProductSearchEvents.java webapp/catalog/WEB-INF/controller.xml

jacopoc
Author: jacopoc
Date: Mon Jul  9 22:24:32 2007
New Revision: 554828

URL: http://svn.apache.org/viewvc?view=rev&rev=554828
Log:
Applied patch (with some differences) by Marco Risaliti to convert a service into an event (part of Google Product interface implementation, OFBIZ-1095)

Modified:
    ofbiz/trunk/applications/product/servicedef/services.xml
    ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearchEvents.java
    ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/controller.xml

Modified: ofbiz/trunk/applications/product/servicedef/services.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/servicedef/services.xml?view=diff&rev=554828&r1=554827&r2=554828
==============================================================================
--- ofbiz/trunk/applications/product/servicedef/services.xml (original)
+++ ofbiz/trunk/applications/product/servicedef/services.xml Mon Jul  9 22:24:32 2007
@@ -1126,14 +1126,4 @@
         <attribute type="String" mode="IN" name="statusId" optional="false"/>
         <attribute type="String" mode="IN" name="trackingCodeId" optional="true"/>
     </service>
-    <service name="searchExportProductListToGoogle" engine="java"
-             location="org.ofbiz.product.product.ProductSearchEvents" invoke="searchExportProductListToGoogle" auth="true">
-        <description>Export products to Google Base</description>
-        <attribute type="String" mode="IN" name="webSiteUrl" optional="false"/>
-        <attribute type="String" mode="IN" name="imageUrl" optional="false"/>
-        <attribute type="String" mode="IN" name="actionType" optional="false"/>
-        <attribute type="String" mode="IN" name="statusId" optional="false"/>
-        <attribute type="List" mode="IN" name="selectResult" optional="true"/>
-        <attribute type="String" mode="IN" name="trackingCodeId" optional="true"/>
-    </service>
 </services>

Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearchEvents.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearchEvents.java?view=diff&rev=554828&r1=554827&r2=554828
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearchEvents.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearchEvents.java Mon Jul  9 22:24:32 2007
@@ -45,7 +45,6 @@
 import org.ofbiz.entity.util.EntityUtil;
 import org.ofbiz.product.product.ProductSearch.ProductSearchContext;
 import org.ofbiz.product.product.ProductSearch.ResultSortOrder;
-import org.ofbiz.service.DispatchContext;
 import org.ofbiz.service.GenericServiceException;
 import org.ofbiz.service.LocalDispatcher;
 import org.ofbiz.service.ServiceUtil;
@@ -454,20 +453,25 @@
         return "success";
     }
 
-    public static Map searchExportProductListToGoogle(DispatchContext dctx, Map context) {
-        LocalDispatcher dispatcher = dctx.getDispatcher();
-        HttpServletRequest request = (HttpServletRequest) context.get("request");
-        Locale locale = (Locale)context.get("locale");
-        List productExportList = (List) context.get("selectResult");
-
+    public static String searchExportProductListToGoogle(HttpServletRequest request, HttpServletResponse response) {
+        LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");
+        Locale locale = UtilHttp.getLocale(request);
+        GenericValue userLogin = (GenericValue) request.getSession().getAttribute("userLogin");
+        String selectResult = (String) request.getParameter("selectResult");
+        List productExportList = new ArrayList();
+        String errMsg = null;
+        
         try {
             boolean beganTransaction = TransactionUtil.begin(DEFAULT_TX_TIMEOUT);
             try {
-                if (UtilValidate.isEmpty(productExportList)) {
+                if (UtilValidate.isEmpty(selectResult)) {
                     // If the passed list of product ids is empty, get the list from the search parameters in the request
                     EntityListIterator eli = getProductSearchResults(request);
                     if (eli == null) {
-                        return ServiceUtil.returnFailure(UtilProperties.getMessage(resource, "productsearchevents.no_results_found_probably_error_constraints", locale));
+                        errMsg = UtilProperties.getMessage(resource,"productsearchevents.no_results_found_probably_error_constraints", UtilHttp.getLocale(request));
+                        Debug.logError(errMsg, module);
+                        request.setAttribute("_ERROR_MESSAGE_", errMsg);
+                        return "error";
                     }
 
                     GenericValue searchResultView = null;
@@ -475,34 +479,53 @@
                         productExportList.add(searchResultView.getString("mainProductId"));
                     }
                     eli.close();
+                } else {
+                    productExportList = UtilMisc.toList(selectResult);
                 }
-                String webSiteUrl = (String)context.get("webSiteUrl");
-                String imageUrl = (String)context.get("imageUrl");
-                String actionType = (String)context.get("actionType");
-                String statusId = (String)context.get("statusId");
-                String trackingCodeId = (String)context.get("trackingCodeId");
+                String webSiteUrl = (String) request.getParameter("webSiteUrl");
+                String imageUrl = (String) request.getParameter("imageUrl");
+                String actionType = (String) request.getParameter("actionType");
+                String statusId = (String) request.getParameter("statusId");
+                String trackingCodeId = (String) request.getParameter("trackingCodeId");
                 
-                // Export all the products to Google Base
+                // Export all or selected products to Google Base
                 try {
-                    Map exportResult = dispatcher.runSync("exportProductsToGoogle", UtilMisc.toMap("selectResult", productExportList, "webSiteUrl", webSiteUrl,
-                                                          "imageUrl", imageUrl, "actionType", actionType, "statusId", statusId, "trackingCodeId", trackingCodeId));
+                    Map inMap = UtilMisc.toMap("selectResult", productExportList,
+                                               "webSiteUrl", webSiteUrl,
+                                               "imageUrl", imageUrl,
+                                               "actionType", actionType,
+                                               "statusId", statusId,
+                                               "trackingCodeId", trackingCodeId);
+                    inMap.put("userLogin", userLogin);
+                    Map exportResult = dispatcher.runSync("exportToGoogle", inMap);
                     if (ServiceUtil.isError(exportResult)) {
-                        return ServiceUtil.returnError(ServiceUtil.getErrorMessage(exportResult));
+                        errMsg = ServiceUtil.getErrorMessage(exportResult);
+                        Debug.logError(errMsg, module);
+                        request.setAttribute("_ERROR_MESSAGE_", errMsg);
+                        return "error";
                     }
                 } catch (GenericServiceException e) {
-                    Debug.logError(e, "Exception calling exportToGoogle", module);
-                    return ServiceUtil.returnError(UtilProperties.getMessage(resource, "productsearchevents.exceptionCallingExportToGoogle", locale));
+                    errMsg = UtilProperties.getMessage(resource, "productsearchevents.exceptionCallingExportToGoogle", locale);
+                    Debug.logError(e, errMsg, module);
+                    request.setAttribute("_ERROR_MESSAGE_", errMsg);
+                    return "error";
                 }
             } catch (GenericEntityException e) {
-                return ServiceUtil.returnFailure(UtilProperties.getMessage(resource, "productsearchevents.error_getting_search_results", locale));
+                errMsg = UtilProperties.getMessage(resource, "productsearchevents.error_getting_search_results", locale);
+                Debug.logError(e, errMsg, module);
+                request.setAttribute("_ERROR_MESSAGE_", errMsg);
+                return "error";
             } finally {
                 TransactionUtil.commit(beganTransaction);
             }
         } catch (GenericTransactionException e) {
-            return ServiceUtil.returnFailure(UtilProperties.getMessage(resource, "productsearchevents.error_getting_search_results", locale));
+            errMsg = UtilProperties.getMessage(resource, "productsearchevents.error_getting_search_results", locale);
+            Debug.logError(e, errMsg, module);
+            request.setAttribute("_ERROR_MESSAGE_", errMsg);
+            return "error";
         }
-        
-        return ServiceUtil.returnSuccess();
+
+        return "success";
     }
 
     public static EntityListIterator getProductSearchResults(HttpServletRequest request) {

Modified: ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/controller.xml?view=diff&rev=554828&r1=554827&r2=554828
==============================================================================
--- ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/controller.xml (original)
+++ ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/controller.xml Mon Jul  9 22:24:32 2007
@@ -2387,7 +2387,7 @@
     
     <request-map uri="searchExportProductListToGoogle">
         <security https="true" auth="true"/>
-        <event type="service" path="" invoke="searchExportProductListToGoogle"/>
+        <event type="java" path="org.ofbiz.product.product.ProductSearchEvents" invoke="searchExportProductListToGoogle"/>
         <response name="success" type="view" value="ProductsExportToGoogle"/>
         <response name="error" type="view" value="ProductsExportToGoogle"/>
     </request-map>