UNPKG

@geogirafe/lib-geoportal

Version:

GeoGirafe is a flexible application to build online geoportals.

23 lines (22 loc) 1.16 kB
import WfsFilter from '../../wfs/wfsfilter.js'; import WfsFilterCondition from '../../wfs/wfsfiltercondition.js'; // Serialize WfsFilter to SharedFilter export const serializeWfsFilter = (wfsFilter) => { return { conditions: wfsFilter.conditions.map((condition) => wfsFilterSerializerRecursive(condition)), logicalOperator: wfsFilter.logicalOperator }; }; const wfsFilterSerializerRecursive = (nestedFilter) => { return 'conditions' in nestedFilter ? serializeWfsFilter(nestedFilter) : nestedFilter; }; // Deserialize SharedFilter to WfsFilter export const deserializeWfsFilter = (sharedFilter) => { return new WfsFilter(sharedFilter.conditions.map((condition) => wfsFilterDeserializerRecursive(condition)), sharedFilter.logicalOperator); }; const deserializeWfsCondition = (sharedFilter) => { return new WfsFilterCondition(sharedFilter.property, sharedFilter.operator, sharedFilter.value, sharedFilter.value2, sharedFilter.propertyType); }; const wfsFilterDeserializerRecursive = (sharedFilter) => { return 'conditions' in sharedFilter ? deserializeWfsFilter(sharedFilter) : deserializeWfsCondition(sharedFilter); };