[ofbiz-framework] branch trunk updated: Improved: Convert createTextAndUploadedContent service from mini-lang to groovy DSL (OFBIZ-11368)

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

[ofbiz-framework] branch trunk updated: Improved: Convert createTextAndUploadedContent service from mini-lang to groovy DSL (OFBIZ-11368)

nmalin
This is an automated email from the ASF dual-hosted git repository.

nmalin pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 27aa238  Improved: Convert createTextAndUploadedContent service from mini-lang to groovy DSL (OFBIZ-11368)
27aa238 is described below

commit 27aa23833ce1bf4bff541426938eb6680b1722f2
Author: Nicolas Malin <[hidden email]>
AuthorDate: Fri Mar 6 14:58:15 2020 +0100

    Improved: Convert createTextAndUploadedContent service from mini-lang to groovy DSL
    (OFBIZ-11368)
   
    Thanks to Rohit Hukkeri for providing the patch
---
 .../groovyScripts/content/ContentServices.groovy   | 41 ++++++++++++++++++++++
 .../content/minilang/content/ContentServices.xml   | 22 ------------
 .../content/servicedef/services_content.xml        |  4 +--
 3 files changed, 43 insertions(+), 24 deletions(-)

diff --git a/applications/content/groovyScripts/content/ContentServices.groovy b/applications/content/groovyScripts/content/ContentServices.groovy
new file mode 100644
index 0000000..1ad1374
--- /dev/null
+++ b/applications/content/groovyScripts/content/ContentServices.groovy
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+
+import org.apache.ofbiz.service.ModelService
+
+def createTextAndUploadedContent(){
+    Map result = success()
+
+    Map serviceResult = run service: 'createContent', with: parameters
+    parameters.parentContentId = serviceResult.contentId
+
+    if (parameters.uploadedFile) {
+        logInfo('Uploaded file found; processing sub-content')
+        Map uploadContext = dispatcher.getDispatchContext()
+                .makeValidContext('createContentFromUploadedFile', ModelService.IN_PARAM, parameters)
+        uploadContext.ownerContentId = parameters.parentContentId
+        uploadContext.contentIdFrom = parameters.parentContentId
+        uploadContext.contentAssocTypeId = 'SUB_CONTENT'
+        uploadContext.contentPurposeTypeId = 'SECTION'
+        run service: 'createContentFromUploadedFile', with: uploadContext
+    }
+
+    result.contentId = parameters.parentContentId
+    return result
+}
\ No newline at end of file
diff --git a/applications/content/minilang/content/ContentServices.xml b/applications/content/minilang/content/ContentServices.xml
index 4adf1bb..ad08f90 100644
--- a/applications/content/minilang/content/ContentServices.xml
+++ b/applications/content/minilang/content/ContentServices.xml
@@ -183,28 +183,6 @@
         <call-service service-name="createContentPurpose" in-map-name="parameters"/>
     </simple-method>
 
-    <!-- combined text + uploaded file service -->
-    <simple-method method-name="createTextAndUploadedContent" short-description="Creates Text and Optionally Uploaded (sub) Content records">
-        <set-service-fields service-name="createTextContent" map="parameters" to-map="textContext"/>
-        <call-service service-name="createTextContent" in-map-name="textContext">
-            <result-to-field result-name="contentId" field="parameters.parentContentId"/>
-        </call-service>
-
-        <log level="info" message="${parameters}"/>
-
-        <if-not-empty field="parameters.uploadedFile">
-            <log level="info" message="Uploaded file found; processing sub-content"/>
-            <set-service-fields service-name="createContentFromUploadedFile" map="parameters" to-map="uploadContext"/>
-            <set field="uploadContext.ownerContentId" from-field="parameters.parentContentId"/>
-            <set field="uploadContext.contentIdFrom" from-field="parameters.parentContentId"/>
-            <set field="uploadContext.contentAssocTypeId" value="SUB_CONTENT"/>
-            <set field="uploadContext.contentPurposeTypeId" value="SECTION"/>
-            <call-service service-name="createContentFromUploadedFile" in-map-name="uploadContext"/>
-        </if-not-empty>
-
-        <field-to-result field="parameters.parentContentId" result-name="contentId"/>
-    </simple-method>
-
     <!-- Util -->
     <simple-method method-name="findAssocContent" short-description="Find associated content">
         <set from-field="parameters.contentId" field="queryMap.contentId"/>
diff --git a/applications/content/servicedef/services_content.xml b/applications/content/servicedef/services_content.xml
index ea0d701..87be490 100644
--- a/applications/content/servicedef/services_content.xml
+++ b/applications/content/servicedef/services_content.xml
@@ -46,8 +46,8 @@
         <override name="description" allow-html="safe"/>
     </service>
 
-    <service name="createTextAndUploadedContent" engine="simple" auth="true"
-            location="component://content/minilang/content/ContentServices.xml" invoke="createTextAndUploadedContent">
+    <service name="createTextAndUploadedContent" engine="groovy" auth="true"
+            location="component://content/groovyScripts/content/ContentServices.groovy" invoke="createTextAndUploadedContent">
         <description>Creates text content and optional uploaded sub-content</description>
         <implements service="createTextContent"/>
         <implements service="uploadFileInterface" optional="true"/>