Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ Written in 2016 by Shen Defu - shendepu
Written in 2016 by Sean Lovinger - smlovin2
Written in 2017 by Oleg Andrieiev - onadreyev
Written in 2017 by Zhen Zhao Wei - WillWei1983
Written in 2017 by Zhang Wei - zhangwei1979
Written in 2017-2020 by Zhang Wei - zhangwei1979
written in 2018 by Hans Bakker - hansbak
written in 2019 by Daniel Taylor - danieltaylor-nz
written in 2019 by Deepak Dixit - dixitdeepak
Expand Down
88 changes: 88 additions & 0 deletions service/mantle/party/CommunicationServices.xml
Original file line number Diff line number Diff line change
Expand Up @@ -101,4 +101,92 @@ along with this software (see the LICENSE.md file). If not, see
in-map="[wikiPageId:wikiPageId, communicationEventId:communicationEventId]"/>
</actions>
</service>

<!-- ================================================ -->
<!-- ========== CommunicationEventContent Services ========== -->
<!-- ================================================ -->

<service verb="get" noun="CommunicationEventContentLocation">
<in-parameters>
<parameter name="communicationEventId" required="true"/>
<parameter name="contentTypeEnumIdList" type="List" required="true"/>
</in-parameters>
<out-parameters>
<parameter name="contentLocation"/>
<parameter name="communicationEvenContent"/>
</out-parameters>
<actions>
<iterate list="contentTypeEnumIdList" entry="contentTypeEnumId">
<entity-find entity-name="mantle.party.communication.CommunicationEventContent" list="commEventContentList">
<econdition field-name="communicationEventId"/><econdition field-name="contentTypeEnumId"/>
<order-by field-name="-contentDate"/></entity-find>
<if condition="commEventContentList">
<set field="communicationEvenContent" from="commEventContentList[0]"/>
<break/>
</if>
</iterate>
<set field="contentLocation" from="communicationEvenContent ? communicationEvenContent.contentLocation : null"/>
</actions>
</service>

<service verb="create" noun="CommunicationEventContent">
<in-parameters>
<auto-parameters entity-name="mantle.party.communication.CommunicationEventContent" include="nonpk">
<exclude field-name="contentLocation"/></auto-parameters>
<parameter name="communicationEventId" required="true"/>
<parameter name="contentFile" type="org.apache.commons.fileupload.FileItem"/>
</in-parameters>
<out-parameters><parameter name="communicationEventContentId"/></out-parameters>
<actions>
<service-call name="create#mantle.party.communication.CommunicationEventContent" in-map="context" out-map="context"/>
<if condition="contentFile != null &amp;&amp; contentFile.size &gt; 0">
<service-call name="mantle.party.CommunicationServices.save#CommunicationEventContentFile" in-map="context"/></if>
</actions>
</service>

<service verb="update" noun="CommunicationEventContent">
<in-parameters>
<parameter name="communicationEventContentId" required="true"/>
<auto-parameters entity-name="mantle.party.communication.CommunicationEventContent" include="nonpk">
<exclude field-name="contentLocation"/></auto-parameters>
<parameter name="contentFile" type="org.apache.commons.fileupload.FileItem"/>
</in-parameters>
<actions>
<if condition="contentFile != null &amp;&amp; contentFile.size &gt; 0">
<entity-find-one entity-name="mantle.party.communication.CommunicationEventContent" value-field="communicationEvenContent"/>
<service-call name="mantle.party.CommunicationServices.save#CommunicationEventContentFile" out-map="context"
in-map="context + [communicationEventId:communicationEvenContent.communicationEventId, saveContentLocation:false]"/>
</if>
<service-call name="update#mantle.party.communication.CommunicationEventContent" in-map="context"/>
</actions>
</service>

<service verb="save" noun="CommunicationEventContentFile">
<in-parameters>
<parameter name="communicationEventContentId" required="true"/>
<parameter name="communicationEventId" required="true"/>
<parameter name="contentFile" type="org.apache.commons.fileupload.FileItem" required="true"/>
<parameter name="saveContentLocation" type="Boolean" default="true"/>
</in-parameters>
<out-parameters><parameter name="contentLocation"/></out-parameters>
<actions>
<set field="filename" from="contentFile.getName()"/>
<if condition="org.moqui.resource.ResourceReference.isTextFilename(filename)"><then>
<set field="contentRoot" from="ec.user.getPreference('mantle.content.root') ?: 'dbresource://mantle/content'"/>
</then><else>
<set field="contentRoot" from="ec.user.getPreference('mantle.content.large.root') ?: 'dbresource://mantle/content'"/>
</else></if>
<set field="contentLocation" value="${contentRoot}/CommunicationEvent/${communicationEventId}/content_${communicationEventContentId}/${filename}"/>

<set field="docRr" from="ec.resource.getLocationReference(contentLocation)"/>
<script>
fileStream = contentFile.getInputStream()
try { docRr.putStream(fileStream) } finally { fileStream.close() }
</script>

<if condition="saveContentLocation"><service-call name="update#mantle.party.communication.CommunicationEventContent"
in-map="[communicationEventContentId:communicationEventContentId, contentLocation:contentLocation]"/></if>
</actions>
</service>

</services>