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 43b44f5 Improved: Convert ProductContentServices.xml mini lang to groovy (OFBIZ-11436) 43b44f5 is described below commit 43b44f53e0897935a194db7c1ee56f2ebcbd8300 Author: Nicolas Malin <[hidden email]> AuthorDate: Tue Mar 10 09:32:37 2020 +0100 Improved: Convert ProductContentServices.xml mini lang to groovy (OFBIZ-11436) Thanks to Sebastian Berg for providing the patch --- .../product/product/ProductContentServices.groovy | 215 +++++++++++++++++++ .../product/product/ProductContentServices.xml | 238 --------------------- applications/product/servicedef/services.xml | 84 ++++---- 3 files changed, 252 insertions(+), 285 deletions(-) diff --git a/applications/product/groovyScripts/product/product/ProductContentServices.groovy b/applications/product/groovyScripts/product/product/ProductContentServices.groovy new file mode 100644 index 0000000..ee69514 --- /dev/null +++ b/applications/product/groovyScripts/product/product/ProductContentServices.groovy @@ -0,0 +1,215 @@ +/* + * 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.entity.GenericValue +import org.apache.ofbiz.service.ServiceUtil + +/** + * Create Content For Product + * @return + */ +def createProductContent() { + Map result = success() + GenericValue newEntity = makeValue("ProductContent", parameters) + newEntity.create() + run service: "updateContent", with: parameters + result.contentId = newEntity.contentId + result.productId = newEntity.productId + result.productContentTypeId = newEntity.productContentTypeId + return result +} + +/** + * Update Content For Product + * @return + */ +def updateProductContent() { + GenericValue lookedUpValue = from("ProductContent").where(parameters).queryOne() + lookedUpValue.setNonPKFields(parameters) + lookedUpValue.store() + run service: "updateContent", with: parameters + return success() +} + +/** + * Create Email Content For Product + * @return + */ +def createEmailContentForProduct() { + Map result = success() + Map createProductContent = parameters + Map serviceResult = run service: "createEmailContent", with: parameters + if (!ServiceUtil.isSuccess(serviceResult)) { + return serviceResult + } + createProductContent.contentId = serviceResult.contentId + run service: "createProductContent", with: createProductContent + return result +} + +/** + * Create Download Content For Product + * @return + */ +def createDownloadContentForProduct() { + Map createProductContent = parameters + Map persistContentAndAssoc = parameters + persistContentAndAssoc.contentTypeId = "DOCUMENT" + persistContentAndAssoc.dataResourceTypeId = "IMAGE_OBJECT" + persistContentAndAssoc.contentName = parameters._imageData_fileName + persistContentAndAssoc.mimeTypeId = parameters._imageData_contentType + + Map serviceResult = run service: "persistContentAndAssoc", with: persistContentAndAssoc + if (!ServiceUtil.isSuccess(serviceResult)) { + return serviceResult + } + createProductContent.contentId = serviceResult.contentId + run service: "createProductContent", with: createProductContent + return success() +} + + +/** + * Create Simple Text Content For Product + * @return + */ +def createSimpleTextContentForProduct() { + Map serviceResult = run service: "createSimpleTextContent", with: parameters + Map createProductContentMap = parameters + createProductContentMap.contentId = serviceResult.contentId + run service: "createProductContent", with: createProductContentMap + return success() +} + +/** + * Create Simple Text Content For Alternate Locale + * @return + */ +def createSimpleTextContentForAlternateLocale() { + Map serviceResult = run service: "createSimpleTextContent", with: parameters + Map createContentAssocMap = [contentIdTo: serviceResult.contentId, + contentId: parameters.mainContentId, + contentAssocTypeId: "ALTERNATE_LOCALE"] + run service: "createContentAssoc", with: createContentAssocMap + return success() +} + +/** + * Method to upload multiple Additional View images for product + * @return + */ +def uploadProductAdditionalViewImages() { + Map result = success() + Map addAdditionalViewForProductMap = [productId: parameters.productId] + if (parameters.additionalImageOne) { + addAdditionalViewForProductMap.uploadedFile = parameters.additionalImageOne + addAdditionalViewForProductMap.productContentTypeId = "ADDITIONAL_IMAGE_1" + addAdditionalViewForProductMap._uploadedFile_fileName = parameters._additionalImageOne_contentType + run service: "addAdditionalViewForProduct", with: addAdditionalViewForProductMap + } + if (parameters.additionalImageTwo) { + addAdditionalViewForProductMap.uploadedFile = parameters.additionalImageTwo + addAdditionalViewForProductMap.productContentTypeId = "ADDITIONAL_IMAGE_2" + addAdditionalViewForProductMap._uploadedFile_fileName = parameters._additionalImageTwo_contentType + run service: "addAdditionalViewForProduct", with: addAdditionalViewForProductMap + } + if (parameters.additionalImageThree) { + addAdditionalViewForProductMap.uploadedFile = parameters.additionalImageThree + addAdditionalViewForProductMap.productContentTypeId = "ADDITIONAL_IMAGE_3" + addAdditionalViewForProductMap._uploadedFile_fileName = parameters._additionalImageThree_contentType + run service: "addAdditionalViewForProduct", with: addAdditionalViewForProductMap + } + if (parameters.additionalImageFour) { + addAdditionalViewForProductMap.uploadedFile = parameters.additionalImageFour + addAdditionalViewForProductMap.productContentTypeId = "ADDITIONAL_IMAGE_4" + addAdditionalViewForProductMap._uploadedFile_fileName = parameters._additionalImageFour_contentType + run service: "addAdditionalViewForProduct", with: addAdditionalViewForProductMap + } + result.productId = parameters.productId + return result +} + +/** + * Update Product SEO + * @return + */ +def updateContentSEOForProduct() { + GenericValue productContent + if (parameters.title) { + productContent = from("ProductContentAndInfo") + .where(productId: parameters.productId, + productContentTypeId: "PAGE_TITLE") + .queryFirst() + if (productContent) { + GenericValue electronicText = from("ElectronicText") + .where(dataResourceId: productContent.dataResourceId) + .queryOne() + if (electronicText) { + electronicText.textData = parameters.title + electronicText.store() + } + } else { + Map createTextContentMap = [productId: parameters.productId, + productContentTypeId: "PAGE_TITLE", + text: parameters.title] + run service: "createSimpleTextContentForProduct", with: createTextContentMap + } + } + if (parameters.metaKeyword) { + productContent = from("ProductContentAndInfo") + .where(productId: parameters.productId, + productContentTypeId: "META_KEYWORD") + .queryFirst() + if (productContent) { + GenericValue electronicText = from("ElectronicText") + .where(dataResourceId: productContent.dataResourceId) + .queryOne() + if (electronicText) { + electronicText.textData = parameters.metaKeyword + electronicText.store() + } + } else { + Map createTextContentMap = [productId: parameters.productId, + productContentTypeId: "META_KEYWORD", + text: parameters.metaKeyword] + run service: "createSimpleTextContentForProduct", with: createTextContentMap + } + } + if (parameters.metaDescription) { + productContent = from("ProductContentAndInfo") + .where(productId: parameters.productId, + productContentTypeId: "META_DESCRIPTION") + .queryFirst() + if (productContent) { + GenericValue electronicText = from("ElectronicText") + .where(dataResourceId: productContent.dataResourceId) + .queryOne() + if (electronicText) { + electronicText.textData = parameters.metaDescription + electronicText.store() + } + } else { + Map createTextContentMap = [productId: parameters.productId, + productContentTypeId: "META_DESCRIPTION", + text: parameters.metaDescription] + run service: "createSimpleTextContentForProduct", with: createTextContentMap + } + } + return success() +} diff --git a/applications/product/minilang/product/product/ProductContentServices.xml b/applications/product/minilang/product/product/ProductContentServices.xml deleted file mode 100644 index 141d6c6..0000000 --- a/applications/product/minilang/product/product/ProductContentServices.xml +++ /dev/null @@ -1,238 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!-- -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. ---> - -<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns="http://ofbiz.apache.org/Simple-Method" xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method http://ofbiz.apache.org/dtds/simple-methods.xsd"> - <!-- ProductContent --> - <simple-method method-name="createProductContent" short-description="Create Content For Product"> - <make-value entity-name="ProductContent" value-field="newEntity"/> - <set-pk-fields map="parameters" value-field="newEntity"/> - <set-nonpk-fields map="parameters" value-field="newEntity"/> - - <if-empty field="newEntity.fromDate"> - <now-timestamp field="nowTimestamp"/> - <set field="newEntity.fromDate" from-field="nowTimestamp"/> - </if-empty> - - <create-value value-field="newEntity"/> - - <set-service-fields service-name="updateContent" map="parameters" to-map="updateContent"/> - <call-service service-name="updateContent" in-map-name="updateContent"/> - - <field-to-result field="newEntity.contentId" result-name="contentId"/> - <field-to-result field="newEntity.productId" result-name="productId"/> - <field-to-result field="newEntity.productContentTypeId" result-name="productContentTypeId"/> - </simple-method> - <simple-method method-name="updateProductContent" short-description="Update Content For Product"> - <make-value entity-name="ProductContent" value-field="lookupPKMap"/> - <set-pk-fields map="parameters" value-field="lookupPKMap"/> - <find-by-primary-key map="lookupPKMap" value-field="lookedUpValue"/> - <set-nonpk-fields map="parameters" value-field="lookedUpValue"/> - <store-value value-field="lookedUpValue"/> - - <set-service-fields service-name="updateContent" map="parameters" to-map="updateContent"/> - <call-service service-name="updateContent" in-map-name="updateContent"/> - </simple-method> - <simple-method method-name="removeProductContent" short-description="Remove Content From Product"> - <make-value entity-name="ProductContent" value-field="lookupPKMap"/> - <set-pk-fields map="parameters" value-field="lookupPKMap"/> - <find-by-primary-key map="lookupPKMap" value-field="lookedUpValue"/> - <remove-value value-field="lookedUpValue"/> - </simple-method> - - <!-- Specialized --> - <simple-method method-name="createEmailContentForProduct" short-description="Create Email Content For Product"> - <set-service-fields service-name="createProductContent" map="parameters" to-map="createProductContent"/> - <set-service-fields service-name="createEmailContent" map="parameters" to-map="createEmail"/> - <call-service service-name="createEmailContent" in-map-name="createEmail" break-on-error="true" > - <result-to-field result-name="contentId" field="createProductContent.contentId"/> - </call-service> - <call-service service-name="createProductContent" in-map-name="createProductContent"/> - </simple-method> - <simple-method method-name="updateEmailContentForProduct" short-description="Update Email Content For Product"> - <set-service-fields service-name="updateProductContent" map="parameters" to-map="updateProductContent"/> - <call-service service-name="updateProductContent" in-map-name="updateProductContent"/> - <set-service-fields service-name="updateEmailContent" map="parameters" to-map="updateEmail"/> - <call-service service-name="updateEmailContent" in-map-name="updateEmail"/> - </simple-method> - - <simple-method method-name="createDownloadContentForProduct" short-description="Create Download Content For Product"> - <set-service-fields service-name="createProductContent" map="parameters" to-map="createProductContent"/> - <set-service-fields service-name="persistContentAndAssoc" map="parameters" to-map="persistContentAndAssoc"/> - <set field="persistContentAndAssoc.contentTypeId" value="DOCUMENT"/> - <set field="persistContentAndAssoc.dataResourceTypeId" value="IMAGE_OBJECT"/> - <set field="persistContentAndAssoc.contentName" from-field="parameters._imageData_fileName"/> - <set field="persistContentAndAssoc.mimeTypeId" from-field="parameters._imageData_contentType"/> - <call-service service-name="persistContentAndAssoc" in-map-name="persistContentAndAssoc" break-on-error="true" > - <result-to-field result-name="contentId" field="createProductContent.contentId"/> - </call-service> - <call-service service-name="createProductContent" in-map-name="createProductContent"/> - </simple-method> - <simple-method method-name="updateDownloadContentForProduct" short-description="Update Email Content For Product"> - <set-service-fields service-name="updateProductContent" map="parameters" to-map="updateProductContent"/> - <call-service service-name="updateProductContent" in-map-name="updateProductContent"/> - <set-service-fields service-name="updateDownloadContent" map="parameters" to-map="updateDownload"/> - <call-service service-name="updateDownloadContent" in-map-name="updateDownload"/> - </simple-method> - - <simple-method method-name="createSimpleTextContentForProduct" short-description="Create Simple Text Content For Product"> - <set-service-fields service-name="createProductContent" map="parameters" to-map="createProductContentMap"/> - <set-service-fields service-name="createSimpleTextContent" map="parameters" to-map="createSimpleTextMap"/> - <call-service service-name="createSimpleTextContent" in-map-name="createSimpleTextMap"> - <result-to-field result-name="contentId" field="createProductContentMap.contentId"/> - </call-service> - <call-service service-name="createProductContent" in-map-name="createProductContentMap"/> - </simple-method> - <simple-method method-name="updateSimpleTextContentForProduct" short-description="Update Simple Text Content For Product"> - <set-service-fields service-name="updateProductContent" map="parameters" to-map="updateProductContent"/> - <call-service service-name="updateProductContent" in-map-name="updateProductContent"/> - <set-service-fields service-name="updateSimpleTextContent" map="parameters" to-map="updateSimpleText"/> - <call-service service-name="updateSimpleTextContent" in-map-name="updateSimpleText"/> - </simple-method> - <simple-method method-name="createSimpleTextContentForAlternateLocale" short-description="Create Simple Text Content For Alternate Locale"> - <set-service-fields service-name="createSimpleTextContent" map="parameters" to-map="createSimpleTextMap"/> - <call-service service-name="createSimpleTextContent" in-map-name="createSimpleTextMap"> - <result-to-field result-name="contentId" field="createContentAssocMap.contentIdTo"/> - </call-service> - <set field="createContentAssocMap.contentId" from-field="parameters.mainContentId"/> - <set field="createContentAssocMap.contentAssocTypeId" value="ALTERNATE_LOCALE"/> - <call-service service-name="createContentAssoc" in-map-name="createContentAssocMap"/> - </simple-method> - - <simple-method method-name="uploadProductAdditionalViewImages" short-description="Method to upload multiple Additional View images for product"> - <set-service-fields service-name="addAdditionalViewForProduct" map="parameters" to-map="addAdditionalViewForProductMap"/> - <if-not-empty field="parameters.additionalImageOne"> - <set field="addAdditionalViewForProductMap.productId" from-field="parameters.productId"/> - <set field="addAdditionalViewForProductMap.uploadedFile" from-field="parameters.additionalImageOne"/> - <set field="addAdditionalViewForProductMap.productContentTypeId" value="ADDITIONAL_IMAGE_1"/> - <set field="addAdditionalViewForProductMap._uploadedFile_fileName" from-field="parameters._additionalImageOne_fileName"/> - <set field="addAdditionalViewForProductMap._uploadedFile_contentType" from-field="parameters._additionalImageOne_contentType"/> - <call-service service-name="addAdditionalViewForProduct" in-map-name="addAdditionalViewForProductMap"/> - <clear-field field="addAdditionalViewForProductMap"/> - </if-not-empty> - <if-not-empty field="parameters.additionalImageTwo"> - <set field="addAdditionalViewForProductMap.productId" from-field="parameters.productId"/> - <set field="addAdditionalViewForProductMap.uploadedFile" from-field="parameters.additionalImageTwo"/> - <set field="addAdditionalViewForProductMap.productContentTypeId" value="ADDITIONAL_IMAGE_2"/> - <set field="addAdditionalViewForProductMap._uploadedFile_fileName" from-field="parameters._additionalImageTwo_fileName"/> - <set field="addAdditionalViewForProductMap._uploadedFile_contentType" from-field="parameters._additionalImageTwo_contentType"/> - <call-service service-name="addAdditionalViewForProduct" in-map-name="addAdditionalViewForProductMap"/> - <clear-field field="addAdditionalViewForProductMap"/> - </if-not-empty> - <if-not-empty field="parameters.additionalImageThree"> - <set field="addAdditionalViewForProductMap.productId" from-field="parameters.productId"/> - <set field="addAdditionalViewForProductMap.uploadedFile" from-field="parameters.additionalImageThree"/> - <set field="addAdditionalViewForProductMap.productContentTypeId" value="ADDITIONAL_IMAGE_3"/> - <set field="addAdditionalViewForProductMap._uploadedFile_fileName" from-field="parameters._additionalImageThree_fileName"/> - <set field="addAdditionalViewForProductMap._uploadedFile_contentType" from-field="parameters._additionalImageThree_contentType"/> - <call-service service-name="addAdditionalViewForProduct" in-map-name="addAdditionalViewForProductMap"/> - <clear-field field="addAdditionalViewForProductMap"/> - </if-not-empty> - <if-not-empty field="parameters.additionalImageFour"> - <set field="addAdditionalViewForProductMap.productId" from-field="parameters.productId"/> - <set field="addAdditionalViewForProductMap.uploadedFile" from-field="parameters.additionalImageFour"/> - <set field="addAdditionalViewForProductMap.productContentTypeId" value="ADDITIONAL_IMAGE_4"/> - <set field="addAdditionalViewForProductMap._uploadedFile_fileName" from-field="parameters._additionalImageFour_fileName"/> - <set field="addAdditionalViewForProductMap._uploadedFile_contentType" from-field="parameters._additionalImageFour_contentType"/> - <call-service service-name="addAdditionalViewForProduct" in-map-name="addAdditionalViewForProductMap"/> - <clear-field field="addAdditionalViewForProductMap"/> - </if-not-empty> - <field-to-result field="parameters.productId" result-name="productId"/> - </simple-method> - - <!-- ProductPromoContent --> - <simple-method method-name="removeProductPromoContent" short-description="Remove Content From Product Promo"> - <set-service-fields service-name="updateProductPromoContent" map="parameters" to-map="updateProductPromoContentMap"/> - <if-empty field="updateProductPromoContentMap.thruDate"> - <now-timestamp field="updateProductPromoContentMap.thruDate"/> - </if-empty> - <call-service service-name="updateProductPromoContent" in-map-name="updateProductPromoContentMap"/> - </simple-method> - - <!-- Product Content SEO --> - <simple-method method-name="updateContentSEOForProduct" short-description="Update Product SEO"> - <if-not-empty field="parameters.title"> - <entity-and entity-name="ProductContentAndInfo" list="productContents"> - <field-map field-name="productId" from-field="parameters.productId"/> - <field-map field-name="productContentTypeId" value="PAGE_TITLE"/> - </entity-and> - <if-not-empty field="productContents"> - <first-from-list entry="productContent" list="productContents"/> - <entity-one entity-name="ElectronicText" value-field="electronicText"> - <field-map field-name="dataResourceId" from-field="productContent.dataResourceId"/> - </entity-one> - <if-not-empty field="electronicText"> - <set field="electronicText.textData" from-field="parameters.title"/> - <store-value value-field="electronicText"/> - </if-not-empty> - <else> - <set field="createTextContentMap.productId" from-field="parameters.productId"/> - <set field="createTextContentMap.productContentTypeId" value="PAGE_TITLE"/> - <set field="createTextContentMap.text" from-field="parameters.title"/> - <call-service service-name="createSimpleTextContentForProduct" in-map-name="createTextContentMap"/> - </else> - </if-not-empty> - </if-not-empty> - <if-not-empty field="parameters.metaKeyword"> - <entity-and entity-name="ProductContentAndInfo" list="productContents"> - <field-map field-name="productId" from-field="parameters.productId"/> - <field-map field-name="productContentTypeId" value="META_KEYWORD"/> - </entity-and> - <if-not-empty field="productContents"> - <first-from-list entry="productContent" list="productContents"/> - <entity-one entity-name="ElectronicText" value-field="electronicText"> - <field-map field-name="dataResourceId" from-field="productContent.dataResourceId"/> - </entity-one> - <if-not-empty field="electronicText"> - <set field="electronicText.textData" from-field="parameters.metaKeyword"/> - <store-value value-field="electronicText"/> - </if-not-empty> - <else> - <set field="createTextContentMap.productId" from-field="parameters.productId"/> - <set field="createTextContentMap.productContentTypeId" value="META_KEYWORD"/> - <set field="createTextContentMap.text" from-field="parameters.metaKeyword"/> - <call-service service-name="createSimpleTextContentForProduct" in-map-name="createTextContentMap"/> - </else> - </if-not-empty> - </if-not-empty> - <if-not-empty field="parameters.metaDescription"> - <entity-and entity-name="ProductContentAndInfo" list="productContents"> - <field-map field-name="productId" from-field="parameters.productId"/> - <field-map field-name="productContentTypeId" value="META_DESCRIPTION"/> - </entity-and> - <if-not-empty field="productContents"> - <first-from-list entry="productContent" list="productContents"/> - <entity-one entity-name="ElectronicText" value-field="electronicText"> - <field-map field-name="dataResourceId" from-field="productContent.dataResourceId"/> - </entity-one> - <if-not-empty field="electronicText"> - <set field="electronicText.textData" from-field="parameters.metaDescription"/> - <store-value value-field="electronicText"/> - </if-not-empty> - <else> - <set field="createTextContentMap.productId" from-field="parameters.productId"/> - <set field="createTextContentMap.productContentTypeId" value="META_DESCRIPTION"/> - <set field="createTextContentMap.text" from-field="parameters.metaDescription"/> - <call-service service-name="createSimpleTextContentForProduct" in-map-name="createTextContentMap"/> - </else> - </if-not-empty> - </if-not-empty> - </simple-method> -</simple-methods> diff --git a/applications/product/servicedef/services.xml b/applications/product/servicedef/services.xml index e776379..6015638 100644 --- a/applications/product/servicedef/services.xml +++ b/applications/product/servicedef/services.xml @@ -361,30 +361,27 @@ under the License. </service> <!-- Product content services --> - <service name="createProductContent" default-entity-name="ProductContent" engine="simple" - location="component://product/minilang/product/product/ProductContentServices.xml" invoke="createProductContent" auth="true"> + <service name="createProductContent" default-entity-name="ProductContent" engine="groovy" + location="component://product/groovyScripts/product/product/ProductContentServices.groovy" invoke="createProductContent" auth="true"> <description>Add Content To Product</description> <auto-attributes include="pk" mode="INOUT" optional="false"/> <auto-attributes include="nonpk" mode="IN" optional="true"/> <auto-attributes entity-name="Content" include="nonpk" mode="IN" optional="true"/> - <override name="fromDate" optional="true"/> - <!--<override name="contentId" optional="true" mode="INOUT"/>--> + <override name="fromDate" default-value="${date:nowTimestamp()}"/> </service> - <service name="updateProductContent" default-entity-name="ProductContent" engine="simple" - location="component://product/minilang/product/product/ProductContentServices.xml" invoke="updateProductContent" auth="true"> + <service name="updateProductContent" default-entity-name="ProductContent" engine="groovy" + location="component://product/groovyScripts/product/product/ProductContentServices.groovy" invoke="updateProductContent" auth="true"> <description>Update Content To Product</description> <auto-attributes include="pk" mode="IN" optional="false"/> <auto-attributes include="nonpk" mode="IN" optional="true"/> <auto-attributes entity-name="Content" include="nonpk" mode="IN" optional="true"/> </service> - <service name="removeProductContent" default-entity-name="ProductContent" engine="simple" - location="component://product/minilang/product/product/ProductContentServices.xml" invoke="removeProductContent" auth="true"> + <service name="removeProductContent" default-entity-name="ProductContent" engine="entity-auto" invoke="delete" auth="true"> <description>Remove Content From Product</description> <auto-attributes include="pk" mode="IN" optional="false"/> - <auto-attributes include="nonpk" mode="IN" optional="true"/> </service> - <service name="createEmailContentForProduct" default-entity-name="ProductContent" engine="simple" - location="component://product/minilang/product/product/ProductContentServices.xml" invoke="createEmailContentForProduct" auth="true"> + <service name="createEmailContentForProduct" default-entity-name="ProductContent" engine="groovy" + location="component://product/groovyScripts/product/product/ProductContentServices.groovy" invoke="createEmailContentForProduct" auth="true"> <auto-attributes include="pk" mode="IN" optional="false"/> <auto-attributes include="nonpk" mode="IN" optional="true"/> <auto-attributes mode="IN" entity-name="Content" optional="true"/> @@ -393,20 +390,15 @@ under the License. <attribute name="htmlBody" type="String" mode="IN" optional="true" allow-html="safe"/> <override name="contentId" optional="true" mode="INOUT"/> </service> - <service name="updateEmailContentForProduct" default-entity-name="ProductContent" engine="simple" - location="component://product/minilang/product/product/ProductContentServices.xml" invoke="updateEmailContentForProduct" auth="true"> - <auto-attributes include="pk" mode="IN" optional="false"/> - <auto-attributes include="nonpk" mode="IN" optional="true"/> - <auto-attributes entity-name="Content" include="nonpk" mode="IN" optional="true"/> - <attribute name="subjectDataResourceId" type="String" mode="IN" optional="true"/> - <attribute name="subject" type="String" mode="IN" optional="true"/> - <attribute name="plainBodyDataResourceId" type="String" mode="IN" optional="true"/> - <attribute name="plainBody" type="String" mode="IN" optional="true"/> - <attribute name="htmlBodyDataResourceId" type="String" mode="IN" optional="true"/> - <attribute name="htmlBody" type="String" mode="IN" optional="true" allow-html="safe"/> + <service name="updateEmailContentForProduct" default-entity-name="ProductContent" engine="group" auth="true"> + <description>Update Email Content For Product</description> + <group> + <invoke name="updateProductContent"/> + <invoke name="updateEmailContent"/> + </group> </service> - <service name="createDownloadContentForProduct" default-entity-name="ProductContent" engine="simple" - location="component://product/minilang/product/product/ProductContentServices.xml" invoke="createDownloadContentForProduct" auth="true"> + <service name="createDownloadContentForProduct" default-entity-name="ProductContent" engine="groovy" + location="component://product/groovyScripts/product/product/ProductContentServices.groovy" invoke="createDownloadContentForProduct" auth="true"> <auto-attributes include="pk" mode="IN" optional="true"/> <auto-attributes include="nonpk" mode="IN" optional="true"/> <auto-attributes include="nonpk" mode="IN" entity-name="Content" optional="true"/> @@ -415,17 +407,16 @@ under the License. <attribute mode="IN" name="_imageData_fileName" optional="true" type="String"/> <override name="productContentTypeId" optional="false"/> </service> - <service name="updateDownloadContentForProduct" default-entity-name="ProductContent" engine="simple" - location="component://product/minilang/product/product/ProductContentServices.xml" invoke="updateDownloadContentForProduct" auth="true"> - <auto-attributes include="pk" mode="IN" optional="false"/> - <auto-attributes include="nonpk" mode="IN" optional="true"/> - <auto-attributes mode="IN" entity-name="Content" optional="true"/> - <attribute name="fileDataResourceId" type="String" mode="IN" optional="true"/> - <attribute name="file" type="String" mode="IN" optional="true"/> + <service name="updateDownloadContentForProduct" default-entity-name="ProductContent" engine="group" auth="true"> + <description>Update Download Content For Product</description> + <group> + <invoke name="updateProductContent"/> + <invoke name="updateDownloadContent"/> + </group> </service> - <service name="createSimpleTextContentForProduct" default-entity-name="ProductContent" engine="simple" - location="component://product/minilang/product/product/ProductContentServices.xml" invoke="createSimpleTextContentForProduct" auth="true"> + <service name="createSimpleTextContentForProduct" default-entity-name="ProductContent" engine="groovy" + location="component://product/groovyScripts/product/product/ProductContentServices.groovy" invoke="createSimpleTextContentForProduct" auth="true"> <auto-attributes include="pk" mode="IN" optional="false"/> <auto-attributes include="nonpk" mode="IN" optional="true"/> <auto-attributes entity-name="Content" include="nonpk" mode="IN" optional="true"/> @@ -433,16 +424,16 @@ under the License. <override name="contentId" optional="true"/> <override name="fromDate" optional="true"/> </service> - <service name="updateSimpleTextContentForProduct" default-entity-name="ProductContent" engine="simple" - location="component://product/minilang/product/product/ProductContentServices.xml" invoke="updateSimpleTextContentForProduct" auth="true"> - <auto-attributes include="pk" mode="IN" optional="false"/> - <auto-attributes include="nonpk" mode="IN" optional="true"/> - <auto-attributes mode="IN" entity-name="Content" optional="true"/> - <attribute name="textDataResourceId" type="String" mode="IN" optional="true"/> - <attribute name="text" type="String" mode="IN" optional="true" allow-html="safe"/> + <service name="updateSimpleTextContentForProduct" default-entity-name="ProductContent" engine="group" auth="true"> + <description>Update Simple Text Content For Product</description> + <group> + <invoke name="updateProductContent"/> + <invoke name="updateSimpleTextContent"/> + </group> </service> - <service name="createSimpleTextContentForAlternateLocale" engine="simple" location="component://product/minilang/product/product/ProductContentServices.xml" invoke="createSimpleTextContentForAlternateLocale"> + <service name="createSimpleTextContentForAlternateLocale" engine="groovy" + location="component://product/groovyScripts/product/product/ProductContentServices.groovy" invoke="createSimpleTextContentForAlternateLocale"> <auto-attributes mode="IN" entity-name="Content" optional="true"/> <attribute name="mainContentId" type="String" mode="IN" optional="false"/> <attribute name="text" type="String" mode="IN" optional="false" allow-html="safe"/> @@ -460,8 +451,8 @@ under the License. <override name="productId" optional="false"/> </service> - <service name="uploadProductAdditionalViewImages" engine="simple" - location="component://product/minilang/product/product/ProductContentServices.xml" invoke="uploadProductAdditionalViewImages" auth="true"> + <service name="uploadProductAdditionalViewImages" engine="groovy" + location="component://product/groovyScripts/product/product/ProductContentServices.groovy" invoke="uploadProductAdditionalViewImages" auth="true"> <description>Upload Additional View Images For Product</description> <permission-service service-name="genericContentPermission" main-action="UPDATE"/> <attribute name="productId" type="String" mode="INOUT" optional="false"/> @@ -479,8 +470,8 @@ under the License. <attribute name="_additionalImageFour_contentType" type="String" mode="IN" optional="true"/> </service> - <service name="updateContentSEOForProduct" engine="simple" - location="component://product/minilang/product/product/ProductContentServices.xml" invoke="updateContentSEOForProduct" auth="true"> + <service name="updateContentSEOForProduct" engine="groovy" + location="component://product/groovyScripts/product/product/ProductContentServices.groovy" invoke="updateContentSEOForProduct" auth="true"> <description>Update Product SEO</description> <attribute name="productId" mode="IN" type="String" optional="false"/> <attribute name="title" mode="IN" type="String" optional="true"/> @@ -1362,8 +1353,7 @@ under the License. <auto-attributes include="pk" mode="IN" optional="false"/> <auto-attributes include="nonpk" mode="IN" optional="true"/> </service> - <service name="removeProductPromoContent" default-entity-name="ProductPromoContent" engine="simple" - location="component://product/minilang/product/product/ProductContentServices.xml" invoke="removeProductPromoContent" auth="true"> + <service name="removeProductPromoContent" default-entity-name="ProductPromoContent" engine="entity-auto" invoke="expire" auth="true"> <description>Cancel by the thru date a Product Promo Content</description> <auto-attributes include="pk" mode="IN" optional="false"/> <auto-attributes include="nonpk" mode="IN" optional="true"/> |
Free forum by Nabble | Edit this page |