You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by pa...@apache.org on 2020/07/18 16:56:31 UTC
[ofbiz-framework] branch trunk updated: Improved: Convert
createEmailContent service from mini-lang to groovy DSL(OFBIZ-11370)
This is an automated email from the ASF dual-hosted git repository.
pawan 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 7799673 Improved: Convert createEmailContent service from mini-lang to groovy DSL(OFBIZ-11370)
7799673 is described below
commit 7799673fa3e7aa9a1d5bc542c7e7a43fc2d93f20
Author: Pawan Verma <pa...@hotwaxsystems.com>
AuthorDate: Sat Jul 18 22:25:55 2020 +0530
Improved: Convert createEmailContent service from mini-lang to groovy DSL(OFBIZ-11370)
Thanks, Devanshu for the report and Rohit for initial patch and Nicolas for updated patch and review.
---
.../groovyScripts/content/ContentServices.groovy | 37 ++++++++++++++++++++
.../content/minilang/content/ContentServices.xml | 39 ----------------------
applications/content/servicedef/services.xml | 2 +-
3 files changed, 38 insertions(+), 40 deletions(-)
diff --git a/applications/content/groovyScripts/content/ContentServices.groovy b/applications/content/groovyScripts/content/ContentServices.groovy
index ed39c78..75e2d8f 100644
--- a/applications/content/groovyScripts/content/ContentServices.groovy
+++ b/applications/content/groovyScripts/content/ContentServices.groovy
@@ -51,6 +51,43 @@ def createTextAndUploadedContent(){
result.contentId = parameters.parentContentId
return result
}
+
+def createEmailContent() {
+ Map result = success()
+ Map createContentMap = dispatcher.getDispatchContext()
+ .makeValidContext('createContent', ModelService.IN_PARAM, parameters)
+
+ //Create subject
+ Map serviceResult = run service: 'createElectronicText', with: [textData: parameters.subject]
+ createContentMap.dataResourceId = serviceResult.dataResourceId
+ serviceResult = run service: 'createContent', with: createContentMap
+
+ //Create plain body and assoc with subject
+ Map createBodyAssoc = [contentId: serviceResult.contentId,
+ contentAssocTypeId: 'TREE_CHILD',
+ mapKey: 'plainBody']
+
+ serviceResult = run service: 'createElectronicText', with: [textData: parameters.plainBody]
+ createContentMap.dataResourceId = serviceResult.dataResourceId
+ serviceResult = run service: 'createContent', with: createContentMap
+
+ createBodyAssoc.contentIdTo = serviceResult.contentId
+
+ run service: 'createContentAssoc', with: createBodyAssoc
+ result.contentId = createBodyAssoc.contentId
+
+ if (parameters.htmlBody) {
+ serviceResult = run service: 'createElectronicText', with: [textData: parameters.htmlBody]
+ createContentMap.dataResourceId = serviceResult.dataResourceId
+ serviceResult = run service: 'createContent', with: createContentMap
+ createBodyAssoc.contentIdTo = serviceResult.contentId
+ createBodyAssoc.mapKey = 'htmlBody'
+ run service: 'createContentAssoc', with: createBodyAssoc
+ }
+
+ return result
+}
+
def deactivateAllContentRoles() {
List contentRoles = from("ContentRole").
where("contentId", parameters.contentId, "partyId", parameters.partyId, "roleTypeId", parameters.roleTypeId)
diff --git a/applications/content/minilang/content/ContentServices.xml b/applications/content/minilang/content/ContentServices.xml
index 285e6ad..61e528f 100644
--- a/applications/content/minilang/content/ContentServices.xml
+++ b/applications/content/minilang/content/ContentServices.xml
@@ -170,45 +170,6 @@
</if>
</simple-method>
- <!-- Generic content services -->
- <simple-method method-name="createEmailContent" short-description="Create Email as Content">
- <!-- Create subject -->
- <set-service-fields service-name="createContent" map="parameters" to-map="createSubjectContent"/>
- <set from-field="parameters.subject" field="createSubjectEtext.textData"/>
- <call-service service-name="createElectronicText" in-map-name="createSubjectEtext">
- <result-to-field result-name="dataResourceId" field="createSubjectContent.dataResourceId"/>
- </call-service>
- <call-service service-name="createContent" in-map-name="createSubjectContent">
- <result-to-field result-name="contentId" field="createBodyAssoc.contentId"/>
- </call-service>
-
- <!-- Create plain body -->
- <set from-field="parameters.plainBody" field="createPlainBodyEtext.textData"/>
- <call-service service-name="createElectronicText" in-map-name="createPlainBodyEtext">
- <result-to-field result-name="dataResourceId" field="createPlainBodyContent.dataResourceId"/>
- </call-service>
- <call-service service-name="createContent" in-map-name="createPlainBodyContent">
- <result-to-field result-name="contentId" field="createBodyAssoc.contentIdTo"/>
- </call-service>
- <!-- Create content assoc between subject and plain body -->
- <set value="TREE_CHILD" field="createBodyAssoc.contentAssocTypeId"/>
- <set value="plainBody" field="createBodyAssoc.mapKey"/>
- <call-service service-name="createContentAssoc" in-map-name="createBodyAssoc"/>
-
- <!-- Create HTML body -->
- <set from-field="parameters.htmlBody" field="createHtmlBodyEtext.textData"/>
- <call-service service-name="createElectronicText" in-map-name="createHtmlBodyEtext">
- <result-to-field result-name="dataResourceId" field="createHtmlBodyContent.dataResourceId"/>
- </call-service>
- <call-service service-name="createContent" in-map-name="createHtmlBodyContent">
- <result-to-field result-name="contentId" field="createBodyAssoc.contentIdTo"/>
- </call-service>
- <!-- Create content assoc between subject and html body -->
- <set value="htmlBody" field="createBodyAssoc.mapKey"/>
- <call-service service-name="createContentAssoc" in-map-name="createBodyAssoc"/>
-
- <field-to-result field="createBodyAssoc.contentId" result-name="contentId"/>
- </simple-method>
<simple-method method-name="createSimpleTextContent" short-description="Create Simple Text Content">
<set-service-fields service-name="createContent" map="parameters" to-map="createSimpleTextContent"/>
<set value="DOCUMENT" field="createSimpleTextContent.contentTypeId"/>
diff --git a/applications/content/servicedef/services.xml b/applications/content/servicedef/services.xml
index 3d32a82..925bcca 100644
--- a/applications/content/servicedef/services.xml
+++ b/applications/content/servicedef/services.xml
@@ -117,7 +117,7 @@
</service>
<!-- Generic Content Services -->
- <service name="createEmailContent" engine="simple" location="component://content/minilang/content/ContentServices.xml" invoke="createEmailContent">
+ <service name="createEmailContent" engine="groovy" location="component://content/groovyScripts/content/ContentServices.groovy" invoke="createEmailContent">
<permission-service service-name="contentManagerPermission" main-action="CREATE"/>
<auto-attributes mode="IN" entity-name="Content" optional="true"/>
<attribute name="subject" type="String" mode="IN" optional="false">