blob: 572adaa0d4b5a0b64f19755177db1045dcc1dbde [file] [log] [blame]
<?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"
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods-v2.xsd">
<simple-method method-name="createSubscription" short-description="Create a Subscription">
<make-value entity-name="Subscription" value-field="newEntity"/>
<if-empty field="parameters.subscriptionId">
<sequenced-id sequence-name="Subscription" field="newEntity.subscriptionId"/> <!-- get the next sequenced ID -->
<else>
<set field="newEntity.subscriptionId" from-field="parameters.subscriptionId"/>
</else>
</if-empty>
<field-to-result field="newEntity.subscriptionId" result-name="subscriptionId"/>
<!-- lookup the product subscription resource (if exists) -->
<if-not-empty field="parameters.subscriptionResourceId">
<if-not-empty field="parameters.productId">
<entity-and entity-name="ProductSubscriptionResource" list="resourceList" filter-by-date="true">
<field-map field-name="subscriptionResourceId" from-field="parameters.subscriptionResourceId"/>
<field-map field-name="productId" from-field="parameters.productId"/>
<order-by field-name="-fromDate"/>
</entity-and>
<first-from-list entry="resource" list="resourceList"/>
<if-not-empty field="resource">
<set-nonpk-fields value-field="newEntity" map="resource"/>
</if-not-empty>
</if-not-empty>
</if-not-empty>
<set-nonpk-fields map="parameters" value-field="newEntity"/>
<create-value value-field="newEntity"/>
</simple-method>
<simple-method method-name="updateSubscription" short-description="Update a Subscription">
<entity-one entity-name="Subscription" value-field="lookedUpValue"/>
<set-nonpk-fields map="parameters" value-field="lookedUpValue"/>
<store-value value-field="lookedUpValue"/>
</simple-method>
<simple-method method-name="isSubscribed" short-description="check if a party has a subscription">
<set field="pfInput.inputFields" from-field="parameters"/>
<set field="pfInput.entityName" value="Subscription"/>
<set field="pfInput.filterByDate" from-field="parameters.filterByDate" default-value="Y"/>
<call-service service-name="performFindList" in-map-name="pfInput">
<result-to-field result-name="list" field="pfResultList"/>
</call-service>
<if-empty field="pfResultList">
<set field="found" value="false" type="Boolean"/>
<else>
<set field="found" value="true" type="Boolean"/>
<first-from-list entry="subscription" list="pfResultList"/>
<field-to-result field="subscription.subscriptionId" result-name="subscriptionId"/>
</else>
</if-empty>
<field-to-result field="found" result-name="isSubscribed"/>
</simple-method>
<simple-method method-name="getSubscription" short-description="Get Subscription data">
<entity-one entity-name="Subscription" value-field="subscription"/>
<field-to-result field="parameters.subscriptionId" result-name="subscriptionId"/>
<if-not-empty field="subscription">
<field-to-result field="subscription" result-name="subscription"/>
</if-not-empty>
</simple-method>
<simple-method method-name="createSubscriptionResource" short-description="Create a SubscriptionResource">
<make-value entity-name="SubscriptionResource" value-field="newEntity"/>
<sequenced-id sequence-name="SubscriptionResource" field="newEntity.subscriptionResourceId"/>
<field-to-result field="newEntity.subscriptionResourceId" result-name="subscriptionResourceId"/>
<set-nonpk-fields map="parameters" value-field="newEntity"/>
<create-value value-field="newEntity"/>
</simple-method>
<simple-method method-name="updateSubscriptionResource" short-description="Update a SubscriptionResource">
<entity-one entity-name="SubscriptionResource" value-field="lookedUpValue"/>
<set-nonpk-fields map="parameters" value-field="lookedUpValue"/>
<store-value value-field="lookedUpValue"/>
</simple-method>
<simple-method method-name="createProductSubscriptionResource" short-description="Create a ProductSubscriptionResource">
<make-value entity-name="ProductSubscriptionResource" value-field="newEntity"/>
<set-pk-fields map="parameters" value-field="newEntity"/>
<if-empty field="newEntity.fromDate"><now-timestamp field="newEntity.fromDate"/></if-empty>
<set-nonpk-fields map="parameters" value-field="newEntity"/>
<create-value value-field="newEntity"/>
</simple-method>
<simple-method method-name="updateProductSubscriptionResource" short-description="Update a ProductSubscriptionResource">
<entity-one entity-name="ProductSubscriptionResource" value-field="lookedUpValue"/>
<set-nonpk-fields map="parameters" value-field="lookedUpValue"/>
<store-value value-field="lookedUpValue"/>
</simple-method>
<simple-method method-name="deleteProductSubscriptionResource" short-description="Delete a ProductSubscriptionResource">
<entity-one entity-name="ProductSubscriptionResource" value-field="lookedUpValue"/>
<remove-value value-field="lookedUpValue"/>
</simple-method>
<simple-method method-name="updateSubscriptionAttribute" short-description="Create (when not exist) or update (when exist) a Subscription attribute">
<field-to-result field="parameters.subscriptionId" result-name="subscriptionId"/>
<entity-one entity-name="SubscriptionAttribute" value-field="lookedUpValue"/>
<if-empty field="lookedUpValue">
<make-value entity-name="SubscriptionAttribute" value-field="newEntity"/>
<set-pk-fields map="parameters" value-field="newEntity"/>
<set-nonpk-fields map="parameters" value-field="newEntity"/>
<create-value value-field="newEntity"/>
<else>
<set-nonpk-fields map="parameters" value-field="lookedUpValue"/>
<store-value value-field="lookedUpValue"/>
</else>
</if-empty>
</simple-method>
<simple-method method-name="createSubscriptionCommEvent" short-description="Create a Subscription Communication Event">
<make-value value-field="newEntity" entity-name="SubscriptionCommEvent"/>
<set-pk-fields map="parameters" value-field="newEntity"/>
<set-nonpk-fields map="parameters" value-field="newEntity"/>
<create-value value-field="newEntity"/>
</simple-method>
<simple-method method-name="removeSubscriptionCommEvent" short-description="Remove a Subscription Communication Event">
<entity-one entity-name="SubscriptionCommEvent" value-field="eventSubscription"/>
<remove-value value-field="eventSubscription"/>
</simple-method>
<!-- ============== Permission Checking Service ============= -->
<simple-method method-name="subscriptionPermissionCheck" short-description="Subscription permission checking logic">
<set field="primaryPermission" value="CATALOG"/>
<call-simple-method method-name="genericBasePermissionCheck" xml-resource="component://common/script/org/ofbiz/common/permission/CommonPermissionServices.xml"/>
<!-- Backwards compatibility - check for non-existent CATALOG_READ permission -->
<if>
<condition>
<and>
<if-compare field="hasPermission" value="false" operator="equals" type="Boolean"/>
<if-compare field="mainAction" value="VIEW" operator="equals"/>
</and>
</condition>
<then>
<if-has-permission permission="CATALOG_READ">
<set field="hasPermission" type="Boolean" value="true"/>
<field-to-result field="hasPermission"/>
</if-has-permission>
</then>
</if>
</simple-method>
</simple-methods>