You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by nm...@apache.org on 2021/09/14 18:00:21 UTC
[ofbiz-framework] 01/03: Improved: Convert findAssocContent service
from mini-lang to groovy DSL (OFBIZ-11369)
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
commit 46d53b513eb455f453950db221d45e9023a0b04c
Author: Nicolas Malin <ni...@nereide.fr>
AuthorDate: Tue Sep 14 14:24:22 2021 +0200
Improved: Convert findAssocContent service from mini-lang to groovy DSL (OFBIZ-11369)
Thanks to Prakhar Kumar
---
.../groovyScripts/content/ContentServices.groovy | 17 ++++++++++++++
.../content/minilang/content/ContentServices.xml | 26 ----------------------
applications/content/servicedef/services.xml | 17 ++++----------
3 files changed, 21 insertions(+), 39 deletions(-)
diff --git a/applications/content/groovyScripts/content/ContentServices.groovy b/applications/content/groovyScripts/content/ContentServices.groovy
index 7d33c96..c689bd3 100644
--- a/applications/content/groovyScripts/content/ContentServices.groovy
+++ b/applications/content/groovyScripts/content/ContentServices.groovy
@@ -28,6 +28,7 @@ import org.apache.ofbiz.entity.condition.EntityOperator
import org.apache.ofbiz.entity.util.EntityListIterator
import org.apache.ofbiz.service.GenericServiceException
+import org.apache.ofbiz.entity.condition.EntityConditionBuilder
import org.apache.ofbiz.service.ModelService
import org.apache.ofbiz.service.ServiceUtil
import org.apache.ofbiz.base.util.UtilDateTime
@@ -52,6 +53,22 @@ def createTextAndUploadedContent() {
return result
}
+def findAssocContent() {
+ EntityCondition condition = new EntityConditionBuilder().AND() {
+ EQUALS(contentId: parameters.contentId)
+ IN(mapKey: parameters.mapKeys)
+ }
+ List contentAssocs = from("ContentAssoc")
+ .where(condition)
+ .filterByDate()
+ .cache()
+ .queryList()
+
+ Map result = success()
+ if (contentAssocs) result.contentAssocs = contentAssocs
+ return result
+}
+
def updateSingleContentPurpose() {
delegator.removeByAnd("ContentPurpose", [contentId: parameters.contentId])
run service : "createContentPurpose", with: parameters
diff --git a/applications/content/minilang/content/ContentServices.xml b/applications/content/minilang/content/ContentServices.xml
index 6ae3e1d..2aef8a1 100644
--- a/applications/content/minilang/content/ContentServices.xml
+++ b/applications/content/minilang/content/ContentServices.xml
@@ -136,32 +136,6 @@
<check-errors/>
</simple-method>
- <!-- Util -->
- <simple-method method-name="findAssocContent" short-description="Find associated content">
- <set from-field="parameters.contentId" field="queryMap.contentId"/>
- <set field="mapKeys" from-field="parameters.mapKeys"/>
- <field-to-list field="mapKey" list="mapKeys"/>
- <iterate list="mapKeys" entry="mapKey">
- <set from-field="mapKey" field="queryMap.mapKey"/>
- <find-by-and list="resultMap" entity-name="ContentAssoc" map="queryMap"/>
- <filter-list-by-date list="resultMap" to-list="validContent"/>
- <iterate list="validContent" entry="contentAssoc">
- <field-to-list field="contentAssoc" list="result"/>
- </iterate>
- </iterate>
- <if>
- <condition>
- <if-empty field="parameters.mapKey"/>
- </condition>
- <then>
- <field-to-result field="result" result-name="contentAssocs"/>
- </then>
- <else>
- <field-to-result field="result" result-name="contentAssoc"/>
- </else>
- </if>
- </simple-method>
-
<simple-method method-name="updateSimpleTextContent" short-description="Update Simple Text Content">
<if-not-empty field="parameters.textDataResourceId">
<set from-field="parameters.textDataResourceId" field="updateSimpleText.dataResourceId"/>
diff --git a/applications/content/servicedef/services.xml b/applications/content/servicedef/services.xml
index 37b44e7..40c8775 100644
--- a/applications/content/servicedef/services.xml
+++ b/applications/content/servicedef/services.xml
@@ -176,19 +176,10 @@
</service>
<!-- Util -->
- <service name="findAssocContent" engine="simple"
- location="component://content/minilang/content/ContentServices.xml" invoke="findAssocContent" auth="true">
- <attribute name="contentId" type="String" mode="IN" optional="false">
- <type-validate>
- <fail-property resource="ContentErrorUiLabels" property="ContentRequiredFieldMissingContentId"/>
- </type-validate>
- </attribute>
- <attribute name="mapKeys" type="List" mode="IN" optional="false">
- <type-validate>
- <fail-property resource="ContentErrorUiLabels" property="ContentRequiredFieldMissingMapKeys"/>
- </type-validate>
- </attribute>
- <attribute name="contentAssocs" type="List" mode="OUT" optional="true"/>
+ <service name="findAssocContent" engine="groovy" location="component://content/groovyScripts/content/ContentServices.groovy" invoke="findAssocContent" auth="true">
+ <attribute name="contentId" mode="IN" type="String" optional="false"/>
+ <attribute name="mapKeys" mode="IN" type="List" optional="false"/>
+ <attribute name="contentAssocs" mode="OUT" type="List" optional="true"/>
</service>
<!-- Complex Contentservices -->