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 bdd5673  Fixed: Clean groovy file ContentServices.groovy No functional 
change :  * remove case syntax  * use OFBiz dsl  * condense map creation, 
entityCondition by builder  * add typage to help ide and compilation
bdd5673 is described below

commit bdd5673fe21a578545ebfb84125d68ffa8e1915c
Author: Nicolas Malin <nicolas.ma...@nereide.fr>
AuthorDate: Tue Aug 17 17:45:45 2021 +0200

    Fixed: Clean groovy file ContentServices.groovy
    No functional change :
     * remove case syntax
     * use OFBiz dsl
     * condense map creation, entityCondition by builder
     * add typage to help ide and compilation
    
    Fixed to bad engine on service createDownloadContent and 
updateDownloadContent after the minilang to groovy migration
---
 .../groovyScripts/content/ContentServices.groovy   | 372 ++++++++++-----------
 applications/content/servicedef/services.xml       |   4 +-
 2 files changed, 181 insertions(+), 195 deletions(-)

diff --git a/applications/content/groovyScripts/content/ContentServices.groovy 
b/applications/content/groovyScripts/content/ContentServices.groovy
index cb53aa5..1defdf2 100644
--- a/applications/content/groovyScripts/content/ContentServices.groovy
+++ b/applications/content/groovyScripts/content/ContentServices.groovy
@@ -17,21 +17,22 @@
  * under the License.
  */
 
-import java.sql.Timestamp
+import org.apache.ofbiz.base.util.UtilProperties
 
 import org.apache.ofbiz.content.content.ContentKeywordIndex
 import org.apache.ofbiz.common.UrlServletHelper
 import org.apache.ofbiz.entity.condition.EntityCondition
-import org.apache.ofbiz.entity.condition.EntityOperator
+import org.apache.ofbiz.entity.condition.EntityConditionBuilder
 import org.apache.ofbiz.entity.GenericValue
+import org.apache.ofbiz.entity.condition.EntityOperator
 import org.apache.ofbiz.entity.util.EntityListIterator
-import org.apache.ofbiz.service.GenericServiceException;
+import org.apache.ofbiz.service.GenericServiceException
 
 import org.apache.ofbiz.service.ModelService
 import org.apache.ofbiz.service.ServiceUtil
 import org.apache.ofbiz.base.util.UtilDateTime
 
-def createTextAndUploadedContent(){
+def createTextAndUploadedContent() {
     Map result = success()
 
     Map serviceResult = run service: 'createContent', with: parameters
@@ -39,12 +40,11 @@ def createTextAndUploadedContent(){
 
     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'
+        Map uploadContext = [*: parameters,
+                             ownerContentId: parentContentId,
+                             contentIdFrom: parameters.parentContentId,
+                             contentAssocTypeId: 'SUB_CONTENT',
+                             contentPurposeTypeId: 'SECTION']
         run service: 'createContentFromUploadedFile', with: uploadContext
     }
 
@@ -59,8 +59,7 @@ def updateSingleContentPurpose() {
 
 def createEmailContent() {
     Map result = success()
-    Map createContentMap = dispatcher.getDispatchContext()
-            .makeValidContext('createContent', ModelService.IN_PARAM, 
parameters)
+    Map createContentMap = [*: parameters]
 
     //Create subject
     Map serviceResult = run service: 'createElectronicText', with: [textData: 
parameters.subject]
@@ -94,62 +93,64 @@ def createEmailContent() {
 }
 
 def deactivateAllContentRoles() {
-    List contentRoles = from("ContentRole").
-            where("contentId", parameters.contentId, "partyId", 
parameters.partyId, "roleTypeId", parameters.roleTypeId)
-            .queryList();
-    if (contentRoles) {
-        for (GenericValue contentRole : contentRoles) {
-            contentRole.put("thruDate", UtilDateTime.nowTimestamp());
-            contentRole.store();
-        }
+    List contentRoles = from("ContentRole")
+            .where(contentId: parameters.contentId,
+                    partyId: parameters.partyId,
+                    roleTypeId: parameters.roleTypeId)
+            .queryList()
+    contentRoles.each {
+        it.thruDate = UtilDateTime.nowTimestamp()
+        it.store()
     }
     return success()
 }
+
 def createContentAlternativeUrl() {
     //create Content Alternative URLs.
-    String contentCreated
-    Map serviceResult = [:]
-    Map serviceContext = [:]
+    String contentCreated = "N"
     defaultLocaleString = parameters.locale ?: "en"
     EntityListIterator contents
 
+    EntityCondition entryExprs
+    EntityCondition contentTypeExprs = 
EntityCondition.makeCondition(EntityOperator.OR,
+        'contentTypeId', "DOCUMENT",
+        'contentTypeId', "WEB_SITE_PUB_PT")
     if (parameters.contentId) {
-        entryExprs = EntityCondition.makeCondition([
-                EntityCondition.makeCondition("contentName", 
EntityOperator.NOT_EQUAL, null),
-                EntityCondition.makeCondition("contentId", 
EntityOperator.EQUALS, parameters.contentId),
-                EntityCondition.makeCondition([
-                        EntityCondition.makeCondition("contentTypeId", 
EntityOperator.EQUALS, "DOCUMENT"),
-                        EntityCondition.makeCondition("contentTypeId", 
EntityOperator.EQUALS, "WEB_SITE_PUB_PT")], EntityOperator.OR)
-        ], EntityOperator.AND)
+        entryExprs = new EntityConditionBuilder().AND(contentTypeExprs) {
+            NOT_EQUAL(contentName: null)
+            EQUALS(contentId: parameters.contentId)
+        }
     } else {
-        entryExprs = EntityCondition.makeCondition([
-                EntityCondition.makeCondition("contentName", 
EntityOperator.NOT_EQUAL, null),
-                EntityCondition.makeCondition([
-                        EntityCondition.makeCondition("contentTypeId", 
EntityOperator.EQUALS, "DOCUMENT"),
-                        EntityCondition.makeCondition("contentTypeId", 
EntityOperator.EQUALS, "WEB_SITE_PUB_PT")], EntityOperator.OR)
-        ], EntityOperator.AND)
+        entryExprs = new EntityConditionBuilder().AND(contentTypeExprs) {
+            NOT_EQUAL(contentName: null)
+        }
     }
 
-    contents = select("contentId", "contentName", 
"localeString").from("Content").where(entryExprs).queryIterator()
-    List contentAssocDataResources = []
-    String localeString
+    contents = select("contentId", "contentName", "localeString")
+            .from("Content")
+            .where(entryExprs)
+            .queryIterator()
 
+    GenericValue content
     while (content = contents.next()) {
-        localeString = content.localeString ?: defaultLocaleString
-        contentAssocDataResources = select("contentIdStart", "dataResourceId", 
"localeString", "drObjectInfo", "caFromDate", 
"caThruDate").from("ContentAssocDataResourceViewTo").
-                where("caContentAssocTypeId", "ALTERNATIVE_URL", 
"contentIdStart", content.contentId, "localeString", 
localeString.toString()).filterByDate("caFromDate", "caThruDate").queryList()
+        String localeString = content.localeString ?: defaultLocaleString
+        List contentAssocDataResources = select("contentIdStart", 
"dataResourceId", "localeString", "drObjectInfo", "caFromDate", "caThruDate")
+                .from("ContentAssocDataResourceViewTo")
+                .where(caContentAssocTypeId: "ALTERNATIVE_URL",
+                        contentIdStart: content.contentId,
+                        localeString: localeString.toString())
+                .filterByDate("caFromDate", "caThruDate")
+                .queryList()
         if (!contentAssocDataResources) {
             if (content.contentName) {
-                uri = UrlServletHelper.invalidCharacter(content.contentName)
+                String uri = 
UrlServletHelper.invalidCharacter(content.contentName)
                 if (uri) {
-                    serviceContext.dataResourceId = 
delegator.getNextSeqId("DataResource")
-                    serviceContext.dataResourceTypeId = "URL_RESOURCE"
-                    serviceContext.localeString = localeString.toString()
-                    serviceContext.objectInfo = uri + "-" + content.contentId 
+ "-content"
-                    serviceContext.statusId = "CTNT_IN_PROGRESS"
-                    serviceContext.userLogin = userLogin
                     try {
-                        serviceResult = run service: "createDataResource", 
with: serviceContext
+                        Map serviceResult = run service: "createDataResource", 
with: [dataResourceId: delegator.getNextSeqId("DataResource"),
+                                                                               
       dataResourceTypeId: "URL_RESOURCE",
+                                                                               
       localeString: localeString.toString(),
+                                                                               
       objectInfo: "${uri}-${content.contentId}-content",
+                                                                               
       statusId: "CTNT_IN_PROGRESS"]
                         if (ServiceUtil.isSuccess(serviceResult)) {
                             dataResourceId = serviceResult.dataResourceId
                         }
@@ -157,13 +158,10 @@ def createContentAlternativeUrl() {
                         logError(e.getMessage())
                     }
                     if (dataResourceId) {
-                        serviceContext.clear()
-                        serviceContext.dataResourceId = dataResourceId
-                        serviceContext.statusId = "CTNT_IN_PROGRESS"
-                        serviceContext.localeString = localeString.toString()
-                        serviceContext.userLogin = userLogin
                         try {
-                            serviceResult = run service: "createContent", 
with: serviceContext
+                            serviceResult = run service: "createContent", 
with: [dataResourceId: dataResourceId,
+                                                                               
  localeString: localeString.toString(),
+                                                                               
  statusId: "CTNT_IN_PROGRESS"]
                             if (ServiceUtil.isSuccess(serviceResult)) {
                                 contentIdTo = serviceResult.contentId
                             }
@@ -171,13 +169,10 @@ def createContentAlternativeUrl() {
                             logError(e.getMessage())
                         }
                         if (contentIdTo) {
-                            serviceContext.clear()
-                            serviceContext.contentId = content.contentId
-                            serviceContext.contentIdTo = contentIdTo
-                            serviceContext.contentAssocTypeId = 
"ALTERNATIVE_URL"
-                            serviceContext.userLogin = userLogin
                             try {
-                                serviceResult = run service: 
"createContentAssoc", with: serviceContext
+                                serviceResult = run service: 
"createContentAssoc", with: [contentId: content.contentId,
+                                                                               
           contentIdTo: contentIdTo,
+                                                                               
           contentAssocTypeId: "ALTERNATIVE_URL"]
                                 if (ServiceUtil.isSuccess(serviceResult)) {
                                     contentIdTo = serviceResult.contentId
                                 }
@@ -190,16 +185,14 @@ def createContentAlternativeUrl() {
                 }
             }
         } else {
-            if (contentAssocDataResources && 
contentAssocDataResources.get(0).drObjectInfo) {
-                if (content.contentName) {
-                    uri = 
UrlServletHelper.invalidCharacter(content.contentName)
+            if (contentAssocDataResources
+                    && contentAssocDataResources[0].drObjectInfo
+                    && content.contentName) {
+                    String uri = 
UrlServletHelper.invalidCharacter(content.contentName)
                     if (uri) {
-                        serviceContext.clear()
-                        serviceContext.dataResourceId = 
contentAssocDataResources.get(0).dataResourceId
-                        serviceContext.objectInfo = "/" + uri + "-" + 
content.contentId + "-content"
-                        serviceContext.userLogin = userLogin
                         try {
-                            serviceResult = run service: "updateDataResource", 
with: serviceContext
+                            serviceResult = run service: "updateDataResource", 
with: [dataResourceId: contentAssocDataResources[0].dataResourceId,
+                                                                               
       objectInfo: "/${uri}'${content.contentId}-content"]
                             if (ServiceUtil.isSuccess(serviceResult)) {
                                 contentIdTo = serviceResult.contentId
                             }
@@ -209,33 +202,33 @@ def createContentAlternativeUrl() {
                         contentCreated = "Y"
                     }
                 }
-            } else {
-                contentCreated = "N"
-            }
         }
     }
-    map = success()
-    map.contentCreated = contentCreated
-    return map
+    return [*: success(),
+            contentCreated: contentCreated]
 }
 
 def updateEmailContent() {
     if (parameters.subjectDataResourceId) {
-        run service: "updateElectronicText", with: [dataResourceId: 
parameters.subjectDataResourceId, textData: parameters.subject]
+        run service: "updateElectronicText", with: [dataResourceId: 
parameters.subjectDataResourceId,
+                                                    textData: 
parameters.subject]
     }
     if (parameters.plainBodyDataResourceId) {
-        run service: "updateElectronicText", with: [dataResourceId: 
parameters.plainBodyDataResourceId, textData: parameters.plainBody]
+        run service: "updateElectronicText", with: [dataResourceId: 
parameters.plainBodyDataResourceId,
+                                                    textData: 
parameters.plainBody]
     }
     if (parameters.htmlBodyDataResourceId) {
-        run service: "updateElectronicText", with: [dataResourceId: 
parameters.htmlBodyDataResourceId, textData: parameters.htmlBody]
+        run service: "updateElectronicText", with: [dataResourceId: 
parameters.htmlBodyDataResourceId,
+                                                    textData: 
parameters.htmlBody]
     }
 }
+
 def createArticleContent() {
     // Post a new Content article Entry
     String origContentAssocTypeId = parameters.contentAssocTypeId
     String contentAssocTypeId = parameters.contentAssocTypeId
     String ownerContentId = parameters.threadContentId
-    if ("PUBLISH_LINK".equals(origContentAssocTypeId)) {
+    if ("PUBLISH_LINK" == origContentAssocTypeId) {
         ownerContentId = parameters.pubPtContentId
     }
     String contentIdFrom = parameters.contentIdFrom
@@ -256,23 +249,21 @@ def createArticleContent() {
         subDescript = textData.substring(0, subStringLen)
         logInfo("subDescript: " + subDescript)
     }
-    if ("PUBLISH_LINK".equals(contentAssocTypeId)) {
+    if ("PUBLISH_LINK" == contentAssocTypeId) {
         ownerContentId = pubPtContentId
     }
     //determine of we need to create complex template structure or simple 
content structure
     if (parameters.uploadedFile && textData) {
-        Map createMain = [:]
-        createMain.dataResourceId = parameters.dataResourceId
-        createMain.contentAssocTypeId = parameters.contentAssocTypeId
-        createMain.contentName = parameters.contentName
-        createMain.description = subDescript
-        createMain.statusId = parameters.statusId
-        createMain.contentIdFrom = parameters.contentIdFrom
-        createMain.partyId = userLogin.partyId
-        createMain.ownerContentId = ownerContentId
-
-        createMain.dataTemplateTypeId = "SCREEN_COMBINED"
-        createMain.mapKey = "MAIN"
+        Map createMain = [dataResourceId: parameters.dataResourceId,
+                          contentAssocTypeId: parameters.contentAssocTypeId,
+                          contentName: parameters.contentName,
+                          description: subDescript,
+                          statusId: parameters.statusId,
+                          contentIdFrom: parameters.contentIdFrom,
+                          partyId: userLogin.partyId,
+                          ownerContentId: ownerContentId,
+                          dataTemplateTypeId: "SCREEN_COMBINED",
+                          mapKey: "MAIN"]
         Map serviceResult = run service: "createContent", with: createMain
         if (ServiceUtil.isSuccess(serviceResult)) {
             contentId = serviceResult.contentId
@@ -283,20 +274,19 @@ def createArticleContent() {
     }
     if (parameters.uploadedFile) {
         // create image data
-        Map createImage = [:]
-        createImage.dataResourceTypeId = "LOCAL_FILE"
-        createImage.dataTemplateTypeId = "NONE"
-        createImage.mapKey = "IMAGE"
-        createImage.ownerContentId = ownerContentId
-        createImage.contentName = parameters.contentName
-        createImage.description = subDescript
-        createImage.statusId = parameters.statusId
-        createImage.contentAssocTypeId = contentAssocTypeId
-        createImage.contentIdFrom = contentIdFrom
-        createImage.partyId = userLogin.partyId
-        createImage.uploadedFile = parameters.uploadedFile
-        createImage._uploadedFile_fileName = parameters._uploadedFile_fileName
-        createImage._uploadedFile_contentType = 
parameters._uploadedFile_contentType
+        Map createImage = [dataResourceTypeId: "LOCAL_FILE",
+                           dataTemplateTypeId: "NONE",
+                           mapKey: "IMAGE",
+                           ownerContentId: ownerContentId,
+                           contentName: parameters.contentName,
+                           description: subDescript,
+                           statusId: parameters.statusId,
+                           contentAssocTypeId: contentAssocTypeId,
+                           contentIdFrom: contentIdFrom,
+                           partyId: userLogin.partyId,
+                           uploadedFile: parameters.uploadedFile,
+                           _uploadedFile_fileName: 
parameters._uploadedFile_fileName,
+                           _uploadedFile_contentType: 
parameters._uploadedFile_contentType]
         Map serviceResult = run service: "createContentFromUploadedFile", 
with: createImage
         String imageContentId = ServiceUtil.isSuccess(serviceResult)? 
serviceResult.contentId : null
         if (!contentId) {
@@ -306,20 +296,17 @@ def createArticleContent() {
         }
     }
     if (textData) {
-        Map createText = [:]
-        createText.dataResourceTypeId = "ELECTRONIC_TEXT"
-        createText.dataTemplateTypeId = "NONE"
-        createText.mapKey = "MAIN"
-        createText.ownerContentId = ownerContentId
-        createText.contentName = parameters.contentName
-        createText.description = subDescript
-        createText.statusId = parameters.statusId
-        createText.contentAssocTypeId = contentAssocTypeId
-        createText.textData = textData
-        createText.contentIdFrom = contentIdFrom
-        createText.partyId = userLogin.partyId
-        logInfo("calling createTextContent with map: " + createText)
-        Map serviceResult = run service: "createTextContent", with: createText
+        Map serviceResult = run service: "createTextContent", with: 
[dataResourceTypeId: "ELECTRONIC_TEXT",
+                                                                     
dataTemplateTypeId: "NONE",
+                                                                     mapKey: 
"MAIN",
+                                                                     
ownerContentId: ownerContentId,
+                                                                     
contentName: parameters.contentName,
+                                                                     
description: subDescript,
+                                                                     statusId: 
parameters.statusId,
+                                                                     
contentAssocTypeId: contentAssocTypeId,
+                                                                     textData: 
textData,
+                                                                     
contentIdFrom: contentIdFrom,
+                                                                     partyId: 
userLogin.partyId]
         String textContentId = ServiceUtil.isSuccess(serviceResult)? 
serviceResult.contentId : null
         if (!contentId) {
             contentIdFrom = textContentId
@@ -329,75 +316,78 @@ def createArticleContent() {
     }
     // we should have a primary (at least) contentId
     if (contentId && parameters.summaryData) {
-        Map createSummary = [:]
-        createSummary.dataResourceTypeId = "ELECTRONIC_TEXT"
-        createSummary.dataTemplateTypeId = "NONE"
-        createSummary.mapKey = "SUMMARY"
-        createSummary.ownerContentId = ownerContentId
-        createSummary.contentName = parameters.contentName
-        createSummary.description = parameters.description
-        createSummary.statusId = parameters.statusId
-        createSummary.contentAssocTypeId = contentAssocTypeId
-        createSummary.textData = parameters.summaryData
-        createSummary.contentIdFrom = contentIdFrom
-        createSummary.partyId = userLogin.partyId
-        run service: "createTextContent", with:  createSummary
+        run service: "createTextContent", with: [dataResourceTypeId: 
"ELECTRONIC_TEXT",
+                                                 dataTemplateTypeId: "NONE",
+                                                 mapKey: "SUMMARY",
+                                                 ownerContentId: 
ownerContentId,
+                                                 contentName: 
parameters.contentName,
+                                                 description: 
parameters.description,
+                                                 statusId: parameters.statusId,
+                                                 contentAssocTypeId: 
contentAssocTypeId,
+                                                 textData: 
parameters.summaryData,
+                                                 contentIdFrom: contentIdFrom,
+                                                 partyId: userLogin.partyId]
     }
     // If a response, still link it to the publish point
-    if ("RESPONSE".equals(origContentAssocTypeId)) {
-        Map contentAssocMap = [:]
-        contentAssocMap.contentId = pubPtContentId
-        contentAssocMap.contentIdTo = contentId
-        contentAssocMap.contentAssocTypeId = "RESPONSE"
-        logInfo("contentAssocMap: " + contentAssocMap)
-        run service: "createContentAssoc", with: contentAssocMap
+    if ("RESPONSE" == origContentAssocTypeId) {
+        run service: "createContentAssoc", with: [contentId: pubPtContentId,
+                                                  contentIdTo: contentId,
+                                                  contentAssocTypeId: 
"RESPONSE"]
     }
     Map result = success()
     result.contentId = contentId
     return result
 }
+
 def setContentStatus() {
-    Map resultMap = new HashMap()
-    content = from("Content").where("contentId", 
parameters.contentId).queryOne()
+    Map result = success()
+    GenericValue content = from("Content").where(parameters).queryOne()
     if (content) {
-        oldStatusId = content.statusId
-        resultMap.oldStatusId = oldStatusId
-        if (!oldStatusId.equals(parameters.statusId)) {
-            statusChange = from("StatusValidChange").where("statusId", 
oldStatusId, "statusIdTo", parameters.statusId).queryOne()
+        String oldStatusId = content.statusId
+        result.oldStatusId = oldStatusId
+        if (oldStatusId != parameters.statusId) {
+            GenericValue statusChange = from("StatusValidChange")
+                    .where(statusId: oldStatusId,
+                            statusIdTo: parameters.statusId)
+                    .cache()
+                    .queryOne()
             if (statusChange) {
-                content.put("statusId", parameters.statusId)
+                content.statusId = parameters.statusId
                 content.store()
             } else {
-                resultMap.errorMessage = "Cannot change from " + oldStatusId + 
" to " + parameters.statusId
-                logError(resultMap.errorMessage)
+                result.errorMessage = "Cannot change from ${oldStatusId} to 
${parameters.statusId}"
+                logError(result.errorMessage)
             }
         }
     } else {
-        return failure("No Content is not available in the system with content 
ID - " + parameters.contentId)
+        return failure("No Content is not available in the system with content 
ID - ${parameters.contentId}")
     }
-    return resultMap
+    return result
 }
+
 def createDownloadContent() {
     Map serviceResult = success()
-    result = runService("createOtherDataResource", [dataResourceContent : 
parameters.file])
+    Map result = runService("createOtherDataResource", [dataResourceContent: 
parameters.file])
     if (ServiceUtil.isError(result)) return result
     Map serviceCtx = 
dispatcher.dispatchContext.makeValidContext("createContent", 
ModelService.IN_PARAM, parameters)
     serviceCtx.dataResourceId = result.dataResourceId
     result = runService("createContent", serviceCtx)
     if (ServiceUtil.isError(result)) return result
     serviceResult.contentId = result.contentId
-    return serviceResult;
+    return serviceResult
 }
+
 def updateDownloadContent() {
-    Map result = success()
-    if(parameters.fileDataResourceId) {
-        result = runService("updateOtherDataResource", [dataResourceId: 
parameters.fileDataResourceId, dataResourceContent: parameters.file])
+    if (parameters.fileDataResourceId) {
+        return runService("updateOtherDataResource", [dataResourceId: 
parameters.fileDataResourceId,
+                                                                  
dataResourceContent: parameters.file])
     }
-    return result
+    return success()
 }
+
 def getDataResource() {
     Map result = success()
-    resultData = [:]
+    Map resultData = [:]
 
     GenericValue dataResource = 
from('DataResource').where(parameters).queryOne()
     if (dataResource) {
@@ -412,49 +402,45 @@ def getDataResource() {
     result.resultData = resultData
     return result
 }
+
 def getContentAndDataResource () {
-    resultMap = [:];
-    resultDataContent = [:];
-    content = from("Content").where("contentId", 
parameters.contentId).queryOne();
-    resultDataContent.content = content;
+    Map result = success()
+    Map resultDataContent = [:]
+    GenericValue content = from("Content").where("contentId", 
parameters.contentId).queryOne()
+    resultDataContent.content = content
     if (content && content.dataResourceId) {
-        result = runService("getDataResource", ["dataResourceId": 
content.dataResourceId, "userLogin": userLogin]);
-        if (result) {
-            resultData = result.resultData;
-            resultDataContent.dataResource = resultData.dataResource;
-            resultDataContent.electronicText = resultData.electronicText;
-            resultDataContent.imageDataResource = resultData.imageDataResource;
+        Map serviceResult = run service: "getDataResource", with: 
[dataResourceId: content.dataResourceId]
+        if (serviceResult) {
+            Map resultData = serviceResult.resultData
+            resultDataContent.dataResource = resultData.dataResource
+            resultDataContent.electronicText = resultData.electronicText
+            resultDataContent.imageDataResource = resultData.imageDataResource
         }
     }
-    resultMap.resultData = resultDataContent;
-    return resultMap;
+    result.resultData = resultDataContent
+    return result
 }
-/* create content from data resource */
-/*This method will create a skeleton content record from a data resource */
+
+/* create content from data resource
+   This method will create a skeleton content record from a data resource */
 def createContentFromDataResource() {
-    dataResource = from("DataResource").where("dataResourceId", 
parameters.dataResourceId).queryOne()
-    if (dataResource == null) {
-            return error(UtilProperties.getMessage("ContentUiLabels", 
"ContentDataResourceNotFound", UtilMisc.toMap("parameters.dataResourceId", 
parameters.dataResourceId), parameters.locale))
-        }
-    Map createContentMap = 
dispatcher.getDispatchContext().makeValidContext('createContent', 
ModelService.IN_PARAM, parameters)
-    if (!(createContentMap.contentName)) {
-        createContentMap.contentName = dataResource.dataResourceName
-    }
-    if (!(createContentMap.contentTypeId)) {
-        createContentMap.contentTypeId = "DOCUMENT"
-    }
-    if (!(createContentMap.statusId)) {
-        createContentMap.statusId = "CTNT_INITIAL_DRAFT"
+    GenericValue dataResource = 
from("DataResource").where(parameters).queryOne()
+    if (! dataResource) {
+        return error(UtilProperties.getMessage("ContentUiLabels", 
"ContentDataResourceNotFound",
+                [dataResourceId: parameters.dataResourceId], 
parameters.locale))
     }
-    if (!(createContentMap.mimeTypeId)) {
-        createContentMap.mimeTypeId = dataResource.mimeTypeId
-    }
-    Map result = run service: "createContent", with: createContentMap
+    parameters.contentName = parameters.contentName ?: 
dataResource.dataResourceName
+    parameters.contentTypeId = parameters.contentTypeId ?: "DOCUMENT"
+    parameters.statusId = parameters.statusId ?: "CTNT_INITIAL_DRAFT"
+    parameters.mimeTypeId = parameters.mimeTypeId ?: dataResource.mimeTypeId
+    Map result = run service: "createContent", with: parameters
     return result
 }
 def deleteContentKeywords() {
-    content = from('Content').where('contentId', contentId).queryOne()
-    content.removeRelated('ContentKeyword')
+    GenericValue content = from('Content').where(parameters).queryOne()
+    if (content) {
+        content.removeRelated('ContentKeyword')
+    }
     return success()
 }
 
@@ -486,7 +472,7 @@ def indexContentKeywords() {
     // this service is meant to be called from an entity ECA for entities that 
include a contentId
     // if it is the Content entity itself triggering this action, then a 
[contentInstance] parameter
     // will be passed and we can save a few cycles looking that up
-    contentInstance = parameters.contentInstance
+    GenericValue contentInstance = parameters.contentInstance
     if (!contentInstance) {
         contentInstance = from("Content").where("contentId", 
parameters.contentId).queryOne()
     }
diff --git a/applications/content/servicedef/services.xml 
b/applications/content/servicedef/services.xml
index c56a627..994581c 100644
--- a/applications/content/servicedef/services.xml
+++ b/applications/content/servicedef/services.xml
@@ -143,7 +143,7 @@
         <attribute name="htmlBody" type="String" mode="IN" optional="true" 
allow-html="any"/>
     </service>
 
-    <service name="createDownloadContent" engine="simple" 
location="component://content/groovyScripts/content/ContentServices.groovy" 
invoke="createDownloadContent">
+    <service name="createDownloadContent" engine="groovy" 
location="component://content/groovyScripts/content/ContentServices.groovy" 
invoke="createDownloadContent">
         <permission-service service-name="contentManagerPermission" 
main-action="CREATE"/>
         <auto-attributes mode="IN" entity-name="Content" optional="true"/>
         <attribute name="file" type="String" mode="IN" optional="false">
@@ -153,7 +153,7 @@
         </attribute>
         <override name="contentId" mode="INOUT"/>
     </service>
-    <service name="updateDownloadContent" engine="simple" 
location="component://content/groovyScripts/content/ContentServices.groovy" 
invoke="updateDownloadContent">
+    <service name="updateDownloadContent" engine="groovy" 
location="component://content/groovyScripts/content/ContentServices.groovy" 
invoke="updateDownloadContent">
         <permission-service service-name="contentManagerPermission" 
main-action="UPDATE"/>
         <attribute name="fileDataResourceId" type="String" mode="IN" 
optional="true"/>
         <attribute name="file" type="String" mode="IN" optional="true"/>

Reply via email to