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 604a3bf Improved: Convert PartyInvitationService.xml from minilang to
groovy (OFBIZ-11360)
604a3bf is described below
commit 604a3bfa02227c0f834c04b6b6c819bf1b2809bc
Author: Nicolas Malin <[email protected]>
AuthorDate: Fri Feb 28 16:38:51 2020 +0100
Improved: Convert PartyInvitationService.xml from minilang to groovy
(OFBIZ-11360)
Thanks to Marie-Aline Pantais for providing the patch.
---
.../party/PartyInvitationServices.groovy | 80 ++++++++++++++
.../minilang/party/PartyInvitationServices.xml | 119 ---------------------
applications/party/servicedef/services.xml | 68 ++++++------
3 files changed, 115 insertions(+), 152 deletions(-)
diff --git
a/applications/party/groovyScripts/party/PartyInvitationServices.groovy
b/applications/party/groovyScripts/party/PartyInvitationServices.groovy
new file mode 100644
index 0000000..7ef1cbd
--- /dev/null
+++ b/applications/party/groovyScripts/party/PartyInvitationServices.groovy
@@ -0,0 +1,80 @@
+/*
+ * 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.party.party.PartyHelper
+
+import org.apache.ofbiz.base.util.UtilDateTime
+import org.apache.ofbiz.entity.GenericValue
+
+// Party Invitation Services
+def createPartyInvitation() {
+ Map result = success()
+ GenericValue newEntity = makeValue("PartyInvitation", parameters)
+ newEntity.partyInvitationId = delegator.getNextSeqId("PartyInvitation")
+ result.partyInvitationId = newEntity.partyInvitationId
+ if (! parameters.toName && parameters.partyId) {
+ newEntity.toName = PartyHelper.getPartyName(delegator,
parameters.partyId, false)
+ }
+ if (!newEntity.lastInviteDate) {
+ newEntity.lastInviteDate = UtilDateTime.nowTimestamp()
+ }
+ newEntity.create()
+ return result
+}
+
+def updatePartyInvitation() {
+ GenericValue lookedUpValue = makeValue("PartyInvitation", parameters)
+ if (! parameters.toName && parameters.partyId) {
+ newEntity.toName = PartyHelper.getPartyName(delegator,
parameters.partyId, false)
+ }
+ lookedUpValue.store()
+ return success()
+}
+
+def acceptPartyInvitation() {
+ List partyInvitationGroupAssocs = from("PartyInvitationGroupAssoc")
+ .where(partyInvitationId: parameters.partyInvitationId)
+ .queryList()
+ if (partyInvitationGroupAssocs) {
+ Map createPartyRelationshipCtx = [partyIdTo: parameters.partyId,
+ partyRelationshipTypeId:
"GROUP_ROLLUP"]
+ partyInvitationGroupAssocs.each {
+ createPartyRelationshipCtx.partyIdFrom = it.partyIdTo
+ run service: "createPartyRelationship", with:
createPartyRelationshipCtx
+ }
+ }
+
+ List partyInvitationRoleAssocs = from("PartyInvitationRoleAssoc")
+ .where(partyInvitationId: parameters.partyInvitationId)
+ .queryList()
+ if (partyInvitationRoleAssocs) {
+ Map ensurePartyRoleCtx = [partyId: parameters.partyId]
+ partyInvitationRoleAssocs.each {
+ ensurePartyRoleCtx.roleTypeId = it.roleTypeId
+ run service: "ensurePartyRole", with: ensurePartyRoleCtx
+ }
+ }
+
+ Map updatePartyInvitationCtx = [partyInvitationId:
parameters.partyInvitationId,
+ statusId: "PARTYINV_ACCEPTED"]
+ Map result = run service: "updatePartyInvitation", with:
updatePartyInvitationCtx
+ return result
+}
+
diff --git a/applications/party/minilang/party/PartyInvitationServices.xml
b/applications/party/minilang/party/PartyInvitationServices.xml
deleted file mode 100644
index c5b7a56..0000000
--- a/applications/party/minilang/party/PartyInvitationServices.xml
+++ /dev/null
@@ -1,119 +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">
-
- <!-- Party Invitation Services -->
- <simple-method method-name="createPartyInvitation"
short-description="Create a PartyInvitation">
- <make-value entity-name="PartyInvitation" value-field="newEntity"/>
- <sequenced-id sequence-name="PartyInvitation"
field="newEntity.partyInvitationId"/>
- <field-to-result field="newEntity.partyInvitationId"
result-name="partyInvitationId"/>
- <if-empty field="parameters.toName">
- <if-not-empty field="parameters.partyId">
- <entity-one entity-name="Person" value-field="person"
auto-field-map="false">
- <field-map field-name="partyId"
from-field="parameters.partyId"/>
- </entity-one>
- <set field="parameters.toName" value="${person.firstName}
${person.middleName} ${person.lastName}"/>
- </if-not-empty>
- </if-empty>
- <now-timestamp field="nowTimestamp"/>
- <set from-field="nowTimestamp" field="newEntity.lastInviteDate"/>
- <set-nonpk-fields map="parameters" value-field="newEntity"/>
- <create-value value-field="newEntity"/>
- </simple-method>
- <simple-method method-name="updatePartyInvitation"
short-description="Update a PartyInvitation">
- <entity-one entity-name="PartyInvitation" value-field="lookedUpValue"/>
- <if-empty field="parameters.toName">
- <if-not-empty field="parameters.partyId">
- <entity-one entity-name="Person" value-field="person"
auto-field-map="false">
- <field-map field-name="partyId"
from-field="parameters.partyId"/>
- </entity-one>
- <set field="parameters.toName" value="${person.firstName}
${person.middleName} ${person.lastName}"/>
- </if-not-empty>
- </if-empty>
- <set-nonpk-fields map="parameters" value-field="lookedUpValue"/>
- <store-value value-field="lookedUpValue"/>
- </simple-method>
- <simple-method method-name="deletePartyInvitation"
short-description="Remove a PartyInvitation">
- <entity-one entity-name="PartyInvitation" value-field="lookedUpValue"/>
- <remove-value value-field="lookedUpValue"/>
- </simple-method>
- <simple-method method-name="createPartyInvitationGroupAssoc"
short-description="Create a PartyInvitationGroupAssoc">
- <make-value entity-name="PartyInvitationGroupAssoc"
value-field="newEntity"/>
- <set-pk-fields map="parameters" value-field="newEntity"/>
- <create-value value-field="newEntity"/>
- </simple-method>
- <simple-method method-name="deletePartyInvitationGroupAssoc"
short-description="Remove a PartyInvitationGroupAssoc">
- <entity-one entity-name="PartyInvitationGroupAssoc"
value-field="lookedUpValue"/>
- <remove-value value-field="lookedUpValue"/>
- </simple-method>
- <simple-method method-name="createPartyInvitationRoleAssoc"
short-description="Create a PartyInvitationRoleAssoc">
- <make-value entity-name="PartyInvitationRoleAssoc"
value-field="newEntity"/>
- <set-pk-fields map="parameters" value-field="newEntity"/>
- <create-value value-field="newEntity"/>
- </simple-method>
- <simple-method method-name="deletePartyInvitationRoleAssoc"
short-description="Remove a PartyInvitationRoleAssoc">
- <entity-one entity-name="PartyInvitationRoleAssoc"
value-field="lookedUpValue"/>
- <remove-value value-field="lookedUpValue"/>
- </simple-method>
- <simple-method method-name="acceptPartyInvitation"
short-description="Accept Party Invitation">
- <entity-and entity-name="PartyInvitationGroupAssoc"
list="partyInvitationGroupAssocs">
- <field-map field-name="partyInvitationId"
from-field="parameters.partyInvitationId"/>
- </entity-and>
- <if-not-empty field="partyInvitationGroupAssocs">
- <set field="createPartyRelationshipCtx.partyIdTo"
from-field="parameters.partyId"/>
- <set field="createPartyRelationshipCtx.partyRelationshipTypeId"
value="GROUP_ROLLUP"/>
- <iterate list="partyInvitationGroupAssocs"
entry="partyInvitationGroupAssoc">
- <set field="createPartyRelationshipCtx.partyIdFrom"
from-field="partyInvitationGroupAssoc.partyIdTo"/>
- <call-service service-name="createPartyRelationship"
in-map-name="createPartyRelationshipCtx"/>
- </iterate>
- </if-not-empty>
- <entity-and entity-name="PartyInvitationRoleAssoc"
list="partyInvitationRoleAssocs">
- <field-map field-name="partyInvitationId"
from-field="parameters.partyInvitationId"/>
- </entity-and>
- <if-not-empty field="partyInvitationRoleAssocs">
- <set field="createPartyRoleCtx.partyId"
from-field="parameters.partyId"/>
- <iterate list="partyInvitationRoleAssocs"
entry="partyInvitationRoleAssoc">
- <entity-one entity-name="PartyRole" value-field="partyRole">
- <field-map field-name="roleTypeId"
from-field="partyInvitationRoleAssoc.roleTypeId"/>
- </entity-one>
- <if-empty field="partyRole">
- <set field="createPartyRoleCtx.roleTypeId"
from-field="partyInvitationRoleAssoc.roleTypeId"/>
- <call-service service-name="createPartyRole"
in-map-name="createPartyRoleCtx"/>
- </if-empty>
- </iterate>
- </if-not-empty>
- <set field="updatePartyInvitationCtx.partyInvitationId"
from-field="parameters.partyInvitationId"/>
- <set field="updatePartyInvitationCtx.statusId"
value="PARTYINV_ACCEPTED"/>
- <call-service service-name="updatePartyInvitation"
in-map-name="updatePartyInvitationCtx"/>
- </simple-method>
- <simple-method method-name="declinePartyInvitation"
short-description="Decline Party Invitation">
- <set field="updatePartyInvitationCtx.partyInvitationId"
from-field="parameters.partyInvitationId"/>
- <set field="updatePartyInvitationCtx.statusId"
value="PARTYINV_DECLINED"/>
- <call-service service-name="updatePartyInvitation"
in-map-name="updatePartyInvitationCtx"/>
- </simple-method>
- <simple-method method-name="cancelPartyInvitation"
short-description="Cancel Party Invitation">
- <set field="updatePartyInvitationCtx.partyInvitationId"
from-field="parameters.partyInvitationId"/>
- <set field="updatePartyInvitationCtx.statusId"
value="PARTYINV_CANCELLED"/>
- <call-service service-name="updatePartyInvitation"
in-map-name="updatePartyInvitationCtx"/>
- </simple-method>
-
-</simple-methods>
diff --git a/applications/party/servicedef/services.xml
b/applications/party/servicedef/services.xml
index 72fd7c6..2e8f2ab 100644
--- a/applications/party/servicedef/services.xml
+++ b/applications/party/servicedef/services.xml
@@ -1040,59 +1040,61 @@ under the License.
</service>
<!-- Party Invitation Services -->
- <service name="createPartyInvitation" engine="simple"
-
location="component://party/minilang/party/PartyInvitationServices.xml"
invoke="createPartyInvitation">
+ <service name="createPartyInvitation" engine="groovy"
default-entity-name="PartyInvitation"
+
location="component://party/groovyScripts/party/PartyInvitationServices.groovy"
invoke="createPartyInvitation">
<description>Create Party Invitation</description>
- <auto-attributes entity-name="PartyInvitation" include="pk" mode="IN"
optional="true"/>
- <auto-attributes entity-name="PartyInvitation" include="nonpk"
mode="IN" optional="true"/>
+ <auto-attributes include="pk" mode="IN" optional="true"/>
+ <auto-attributes include="nonpk" mode="IN" optional="true"/>
<override name="partyInvitationId" mode="OUT" optional="false"/>
</service>
- <service name="updatePartyInvitation" engine="simple"
-
location="component://party/minilang/party/PartyInvitationServices.xml"
invoke="updatePartyInvitation">
+ <service name="updatePartyInvitation" engine="groovy"
default-entity-name="PartyInvitation"
+
location="component://party/groovyScripts/party/PartyInvitationServices.groovy"
invoke="updatePartyInvitation">
<description>Update Party Invitation</description>
- <auto-attributes entity-name="PartyInvitation" include="pk" mode="IN"
optional="false"/>
- <auto-attributes entity-name="PartyInvitation" include="nonpk"
mode="IN" optional="true"/>
+ <auto-attributes include="pk" mode="IN" optional="false"/>
+ <auto-attributes include="nonpk" mode="IN" optional="true"/>
</service>
- <service name="deletePartyInvitation" engine="simple"
-
location="component://party/minilang/party/PartyInvitationServices.xml"
invoke="deletePartyInvitation">
+ <service name="deletePartyInvitation" default-entity-name="PartyInvitation"
+ engine="entity-auto" invoke="delete">
<description>Remove Party Invitation</description>
- <auto-attributes entity-name="PartyInvitation" include="pk" mode="IN"
optional="false"/>
+ <auto-attributes include="pk" mode="IN"/>
</service>
- <service name="createPartyInvitationGroupAssoc" engine="simple"
-
location="component://party/minilang/party/PartyInvitationServices.xml"
invoke="createPartyInvitationGroupAssoc">
+ <service name="createPartyInvitationGroupAssoc"
default-entity-name="PartyInvitationGroupAssoc"
+ engine="entity-auto" invoke="create">
<description>Create PartyInvitationGroupAssoc</description>
- <auto-attributes entity-name="PartyInvitationGroupAssoc" include="pk"
mode="IN" optional="false"/>
+ <auto-attributes include="pk" mode="IN"/>
</service>
- <service name="deletePartyInvitationGroupAssoc" engine="simple"
-
location="component://party/minilang/party/PartyInvitationServices.xml"
invoke="deletePartyInvitationGroupAssoc">
+ <service name="deletePartyInvitationGroupAssoc"
default-entity-name="PartyInvitationGroupAssoc"
+ engine="entity-auto" invoke="delete">
<description>Remove PartyInvitationGroupAssoc</description>
- <auto-attributes entity-name="PartyInvitationGroupAssoc" include="pk"
mode="IN" optional="false"/>
+ <auto-attributes include="pk" mode="IN"/>
</service>
- <service name="createPartyInvitationRoleAssoc" engine="simple"
-
location="component://party/minilang/party/PartyInvitationServices.xml"
invoke="createPartyInvitationRoleAssoc">
+ <service name="createPartyInvitationRoleAssoc"
default-entity-name="PartyInvitationRoleAssoc"
+ engine="entity-auto" invoke="create">
<description>Create PartyInvitationRoleAssoc</description>
- <auto-attributes entity-name="PartyInvitationRoleAssoc" include="pk"
mode="IN" optional="false"/>
+ <auto-attributes include="pk" mode="IN"/>
</service>
- <service name="deletePartyInvitationRoleAssoc" engine="simple"
-
location="component://party/minilang/party/PartyInvitationServices.xml"
invoke="deletePartyInvitationRoleAssoc">
+ <service name="deletePartyInvitationRoleAssoc"
default-entity-name="PartyInvitationRoleAssoc"
+ engine="entity-auto" invoke="delete">
<description>Remove PartyInvitationRoleAssoc</description>
- <auto-attributes entity-name="PartyInvitationRoleAssoc" include="pk"
mode="IN" optional="false"/>
+ <auto-attributes include="pk" mode="IN"/>
</service>
- <service name="acceptPartyInvitation" engine="simple"
-
location="component://party/minilang/party/PartyInvitationServices.xml"
invoke="acceptPartyInvitation">
+ <service name="acceptPartyInvitation" engine="groovy"
+
location="component://party/groovyScripts/party/PartyInvitationServices.groovy"
invoke="acceptPartyInvitation">
<permission-service
service-name="accAndDecPartyInvitationPermissionCheck"/>
- <attribute name="partyInvitationId" type="String" mode="IN"
optional="false"/>
- <attribute name="partyId" type="String" mode="IN" optional="false"/>
+ <attribute name="partyInvitationId" type="String" mode="IN"/>
+ <attribute name="partyId" type="String" mode="IN"/>
</service>
- <service name="declinePartyInvitation" engine="simple"
-
location="component://party/minilang/party/PartyInvitationServices.xml"
invoke="declinePartyInvitation">
+ <service name="declinePartyInvitation" engine="groovy"
+
location="component://party/groovyScripts/party/PartyInvitationServices.groovy"
invoke="updatePartyInvitation">
<permission-service
service-name="accAndDecPartyInvitationPermissionCheck"/>
- <attribute name="partyInvitationId" type="String" mode="IN"
optional="false"/>
+ <attribute name="partyInvitationId" type="String" mode="IN"/>
+ <attribute name="statusId" type="String" mode="IN" optional="true"
default-value="PARTYINV_DECLINED"/>
</service>
- <service name="cancelPartyInvitation" engine="simple"
-
location="component://party/minilang/party/PartyInvitationServices.xml"
invoke="cancelPartyInvitation">
+ <service name="cancelPartyInvitation" engine="groovy"
+
location="component://party/groovyScripts/party/PartyInvitationServices.groovy"
invoke="updatePartyInvitation">
<permission-service
service-name="cancelPartyInvitationPermissionCheck"/>
- <attribute name="partyInvitationId" type="String" mode="IN"
optional="false"/>
+ <attribute name="partyInvitationId" type="String" mode="IN"/>
+ <attribute name="statusId" type="String" mode="IN" optional="true"
default-value="PARTYINV_CANCELLED"/>
</service>
<!-- Permission checking services-->