openui5-fhir
Advanced tools
Comparing version 2.0.5 to 2.1.0
@@ -0,1 +1,8 @@ | ||
# [2.1.0](https://github.com/SAP/openui5-fhir/compare/v2.0.5...v2.1.0) (2021-03-31) | ||
### Features | ||
* Implement the support for _filter ([#244](https://github.com/SAP/openui5-fhir/issues/244)) ([3fc0634](https://github.com/SAP/openui5-fhir/commit/3fc0634c65e79f54ac3e1cbc481171d31b062464)) | ||
## [2.0.5](https://github.com/SAP/openui5-fhir/compare/v2.0.4...v2.0.5) (2021-03-10) | ||
@@ -2,0 +9,0 @@ |
{ | ||
"name": "openui5-fhir", | ||
"version": "2.0.5", | ||
"version": "2.1.0", | ||
"author": "SAP SE", | ||
@@ -28,7 +28,7 @@ "license": "Apache-2.0", | ||
"devDependencies": { | ||
"eslint": "^7.21.0", | ||
"eslint": "^7.23.0", | ||
"eslint-watch": "^7.0.0", | ||
"js-beautify": "^1.13.5", | ||
"jsdoc": "^3.6.6", | ||
"karma": "^6.1.2", | ||
"karma": "^6.3.2", | ||
"karma-chrome-launcher": "^3.1.0", | ||
@@ -38,3 +38,3 @@ "karma-coverage": "^2.0.3", | ||
"karma-ui5": "^2.3.3", | ||
"@ui5/cli": "^2.10.1", | ||
"@ui5/cli": "^2.10.2", | ||
"coveralls": "^3.1.0", | ||
@@ -41,0 +41,0 @@ "replace-in-file": "^6.2.0", |
@@ -11,3 +11,3 @@ sap.ui.define(function() { | ||
* @author SAP SE | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
* @public | ||
@@ -17,3 +17,3 @@ */ | ||
name : "sap.fhir", | ||
version : "2.0.5", | ||
version : "2.1.0", | ||
noLibraryCSS: true, | ||
@@ -20,0 +20,0 @@ dependencies : [ "sap.ui.core" ], |
@@ -32,3 +32,3 @@ /*! | ||
* @since 1.0.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
* | ||
@@ -35,0 +35,0 @@ * @see sap.fhir.model.r4.Context.create |
@@ -34,3 +34,3 @@ /*! | ||
* @since 1.0.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
*/ | ||
@@ -37,0 +37,0 @@ var FHIRContextBinding = ContextBinding.extend("sap.fhir.model.r4.FHIRContextBinding", { |
@@ -6,3 +6,3 @@ /*! | ||
// Provides class sap.fhir.model.r4.FHIRFilterOperator | ||
sap.ui.define(["sap/ui/model/FilterOperator"], function(FilterOperator) { | ||
sap.ui.define(["sap/ui/model/FilterOperator"], function (FilterOperator) { | ||
@@ -25,3 +25,3 @@ "use strict"; | ||
*/ | ||
Missing : "Missing", | ||
Missing: "Missing", | ||
/** | ||
@@ -28,0 +28,0 @@ * starts-after |
@@ -6,3 +6,7 @@ /*! | ||
// Provides class sap.fhir.model.r4.FHIRFilterOperatorUtils | ||
sap.ui.define(["sap/fhir/model/r4/FHIRFilterOperator", "sap/fhir/model/r4/FHIRFilterType"], function(FHIRFilterOperator, FHIRFilterType) { | ||
sap.ui.define([ | ||
"sap/fhir/model/r4/FHIRFilterOperator", | ||
"sap/fhir/model/r4/FHIRFilterType", | ||
"sap/fhir/model/r4/FHIRFilterComplexOperator" | ||
], function (FHIRFilterOperator, FHIRFilterType, FHIRFilterComplexOperator) { | ||
@@ -20,3 +24,3 @@ "use strict"; | ||
* @since 1.0.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
*/ | ||
@@ -33,3 +37,3 @@ var FHIRFilterOperatorUtils = {}; | ||
*/ | ||
FHIRFilterOperatorUtils.getFHIRSearchParameterModifier = function(oFilter) { | ||
FHIRFilterOperatorUtils.getFHIRSearchParameterModifier = function (oFilter) { | ||
var sFHIRSearchModifier = ""; | ||
@@ -65,3 +69,3 @@ if (this.isSearchParameterModifiable(oFilter) || FHIRFilterOperator.Missing === oFilter.sOperator) { | ||
*/ | ||
FHIRFilterOperatorUtils.isSearchParameterModifiable = function(oFilter) { | ||
FHIRFilterOperatorUtils.isSearchParameterModifiable = function (oFilter) { | ||
return oFilter.sValueType !== FHIRFilterType.date && oFilter.sValueType !== FHIRFilterType.number && (typeof oFilter.oValue1 === "string" || Array.isArray(oFilter.oValue1)); | ||
@@ -78,3 +82,3 @@ }; | ||
*/ | ||
FHIRFilterOperatorUtils.isSearchParameterPrefixable = function(oFilter) { | ||
FHIRFilterOperatorUtils.isSearchParameterPrefixable = function (oFilter) { | ||
return !(typeof oFilter.oValue1 === "string" || Array.isArray(oFilter.oValue1)) || oFilter.sValueType === FHIRFilterType.date || !isNaN(oFilter.oValue1); | ||
@@ -84,3 +88,3 @@ }; | ||
/** | ||
* Parses the JS filter value to an FHIR filter value | ||
* Parses the JS filter value to a FHIR filter value | ||
* | ||
@@ -92,3 +96,3 @@ * @param {any} oValue The value of a filter object | ||
*/ | ||
FHIRFilterOperatorUtils.getFilterValue = function(oValue) { | ||
FHIRFilterOperatorUtils.getFilterValue = function (oValue) { | ||
var sValue = oValue; | ||
@@ -102,3 +106,3 @@ if (oValue instanceof Date) { | ||
/** | ||
* Transforms the UI5 filter operator to an FHIR valid search prefix based on the given UI5 <code>oFilter</code> | ||
* Transforms the UI5 filter operator to a FHIR valid search prefix based on the given UI5 <code>oFilter</code> | ||
* | ||
@@ -110,3 +114,3 @@ * @param {sap.ui.model.Filter} oFilter The given filter | ||
*/ | ||
FHIRFilterOperatorUtils.getFHIRSearchPrefix = function(oFilter) { | ||
FHIRFilterOperatorUtils.getFHIRSearchPrefix = function (oFilter) { | ||
var sFHIRSearchPrefix; | ||
@@ -149,3 +153,99 @@ if (this.isSearchParameterPrefixable(oFilter)) { | ||
/** | ||
* Transforms the UI5 filter operator to a FHIR valid filter prefix based on the given UI5 <code>oFilter</code> | ||
* | ||
* @param {sap.ui.model.Filter} oFilter The given filter | ||
* @returns {string} The FHIR filter prefix | ||
* @protected | ||
* @since 2.1.0 | ||
*/ | ||
FHIRFilterOperatorUtils.getFHIRFilterPrefix = function (oFilter) { | ||
var sFHIRFilterPrefix; | ||
switch (oFilter.sOperator) { | ||
case FHIRFilterComplexOperator.EQ: | ||
sFHIRFilterPrefix = "eq"; | ||
break; | ||
case FHIRFilterComplexOperator.NE: | ||
sFHIRFilterPrefix = "ne"; | ||
break; | ||
case FHIRFilterComplexOperator.GT: | ||
sFHIRFilterPrefix = "gt"; | ||
break; | ||
case FHIRFilterComplexOperator.GE: | ||
sFHIRFilterPrefix = "ge"; | ||
break; | ||
case FHIRFilterComplexOperator.LT: | ||
sFHIRFilterPrefix = "lt"; | ||
break; | ||
case FHIRFilterComplexOperator.LE: | ||
sFHIRFilterPrefix = "le"; | ||
break; | ||
case FHIRFilterComplexOperator.SA: | ||
sFHIRFilterPrefix = "sa"; | ||
break; | ||
case FHIRFilterComplexOperator.EB: | ||
sFHIRFilterPrefix = "eb"; | ||
break; | ||
case FHIRFilterComplexOperator.AP: | ||
sFHIRFilterPrefix = "ap"; | ||
break; | ||
case FHIRFilterComplexOperator.StartsWith: | ||
sFHIRFilterPrefix = "sw"; | ||
break; | ||
case FHIRFilterComplexOperator.EndsWith: | ||
sFHIRFilterPrefix = "ew"; | ||
break; | ||
case FHIRFilterComplexOperator.Contains: | ||
sFHIRFilterPrefix = "co"; | ||
break; | ||
case FHIRFilterComplexOperator.PR: | ||
sFHIRFilterPrefix = "pr"; | ||
break; | ||
case FHIRFilterComplexOperator.PO: | ||
sFHIRFilterPrefix = "po"; | ||
break; | ||
case FHIRFilterComplexOperator.SS: | ||
sFHIRFilterPrefix = "ss"; | ||
break; | ||
case FHIRFilterComplexOperator.SB: | ||
sFHIRFilterPrefix = "sb"; | ||
break; | ||
case FHIRFilterComplexOperator.IN: | ||
sFHIRFilterPrefix = "in"; | ||
break; | ||
case FHIRFilterComplexOperator.NI: | ||
sFHIRFilterPrefix = "ni"; | ||
break; | ||
case FHIRFilterComplexOperator.RE: | ||
sFHIRFilterPrefix = "re"; | ||
break; | ||
default: | ||
break; | ||
} | ||
return sFHIRFilterPrefix; | ||
}; | ||
/** | ||
* Parses the JS filter value to a FHIR filter value | ||
* | ||
* @param {string} sFilterValue The value type of a filter object | ||
* @param {any} vValue The value of a filter object | ||
* @returns {string} Formatted FHIR filter value | ||
* @public | ||
* @since 2.1.0 | ||
*/ | ||
FHIRFilterOperatorUtils.getFilterValueForComplexFilter = function (sFilterValue, vValue) { | ||
var isStringFilterType = sFilterValue && sFilterValue === FHIRFilterType.string ? true : false; | ||
var sValue; | ||
if (isStringFilterType) { | ||
// special handling for string parameter as per fhir | ||
// given eq "peter" | ||
sValue = "\"" + vValue + "\""; | ||
} else { | ||
sValue = vValue; | ||
} | ||
return sValue; | ||
}; | ||
return FHIRFilterOperatorUtils; | ||
}); |
@@ -23,3 +23,3 @@ /*! | ||
* @since 1.0.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
*/ | ||
@@ -26,0 +26,0 @@ var FHIRFilterProcessor = {}; |
@@ -46,3 +46,3 @@ /*! | ||
* @since 1.0.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
*/ | ||
@@ -49,0 +49,0 @@ var FHIRListBinding = ListBinding.extend("sap.fhir.model.r4.FHIRListBinding", { |
@@ -31,3 +31,3 @@ /*! | ||
* @since 1.0.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
*/ | ||
@@ -34,0 +34,0 @@ var FHIRPropertyBinding = PropertyBinding.extend("sap.fhir.model.r4.FHIRPropertyBinding", { |
@@ -9,2 +9,3 @@ /*! | ||
"sap/fhir/model/r4/FHIRFilterOperator", | ||
"sap/fhir/model/r4/FHIRFilterComplexOperator", | ||
"sap/ui/model/ChangeReason", | ||
@@ -15,3 +16,3 @@ "sap/base/util/merge", | ||
"sap/ui/model/Sorter" | ||
], function(FHIRFilterOperatorUtils, FHIRFilterOperator, ChangeReason, merge, deepEqual, Filter, Sorter) { | ||
], function (FHIRFilterOperatorUtils, FHIRFilterOperator, FHIRFilterComplexOperator, ChangeReason, merge, deepEqual, Filter, Sorter) { | ||
@@ -29,3 +30,3 @@ "use strict"; | ||
* @since 1.0.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
*/ | ||
@@ -42,3 +43,3 @@ var FHIRUtils = {}; | ||
*/ | ||
FHIRUtils.createSortParams = function(aSorters) { | ||
FHIRUtils.createSortParams = function (aSorters) { | ||
var sSorterURLPart; | ||
@@ -71,8 +72,8 @@ if (aSorters && Array.isArray(aSorters) && aSorters.length > 0) { | ||
*/ | ||
FHIRUtils.addRequestQueryParameters = function(oBinding, mParametersRequest){ | ||
if (oBinding.mParameters && oBinding.mParameters.hasOwnProperty("request")){ | ||
if (!mParametersRequest.urlParameters){ | ||
FHIRUtils.addRequestQueryParameters = function (oBinding, mParametersRequest) { | ||
if (oBinding.mParameters && oBinding.mParameters.hasOwnProperty("request")) { | ||
if (!mParametersRequest.urlParameters) { | ||
mParametersRequest.urlParameters = {}; | ||
} | ||
for (var sKey in oBinding.mParameters.request){ | ||
for (var sKey in oBinding.mParameters.request) { | ||
mParametersRequest.urlParameters[sKey] = oBinding.mParameters.request[sKey]; | ||
@@ -92,3 +93,3 @@ } | ||
*/ | ||
FHIRUtils.insertArrayIntoArray = function(aArray, aSubArray, iPos) { | ||
FHIRUtils.insertArrayIntoArray = function (aArray, aSubArray, iPos) { | ||
Array.prototype.splice.apply(aArray, [iPos, 0].concat(aSubArray)); | ||
@@ -106,4 +107,4 @@ }; | ||
*/ | ||
FHIRUtils.removeArrayFromArray = function(aArray, aSubArray) { | ||
return aArray.filter(function(x) { | ||
FHIRUtils.removeArrayFromArray = function (aArray, aSubArray) { | ||
return aArray.filter(function (x) { | ||
return aSubArray.indexOf(x) < 0; | ||
@@ -116,3 +117,3 @@ }); | ||
* | ||
* @param {any} vValue The value to be checked | ||
* @param {any} vValue The value to be checked | ||
* @param {any[]} aValue The array might contains the <code>vValue</code> | ||
@@ -123,7 +124,7 @@ * @returns {number} The index of the first occurrence of <code>vValue</code> in the <code>aValue</code> | ||
*/ | ||
FHIRUtils.getIndexOfValueInArray = function(vValue, aValue){ | ||
if (aValue && Array.isArray(aValue)){ | ||
for (var i = 0; i < aValue.length; i++){ | ||
FHIRUtils.getIndexOfValueInArray = function (vValue, aValue) { | ||
if (aValue && Array.isArray(aValue)) { | ||
for (var i = 0; i < aValue.length; i++) { | ||
var oEntry = aValue[i]; | ||
if (deepEqual(oEntry, vValue)){ | ||
if (deepEqual(oEntry, vValue)) { | ||
return i; | ||
@@ -147,4 +148,4 @@ } | ||
*/ | ||
FHIRUtils.isSubset = function(aSubCollection, aCollection) { | ||
return aSubCollection.every(function(vValue) { | ||
FHIRUtils.isSubset = function (aSubCollection, aCollection) { | ||
return aSubCollection.every(function (vValue) { | ||
return aCollection.indexOf(vValue) >= 0; | ||
@@ -162,3 +163,3 @@ }); | ||
*/ | ||
FHIRUtils.isQuantity = function(vValue) { | ||
FHIRUtils.isQuantity = function (vValue) { | ||
return false; | ||
@@ -175,3 +176,3 @@ }; | ||
*/ | ||
FHIRUtils.isString = function(vValue) { | ||
FHIRUtils.isString = function (vValue) { | ||
return typeof vValue === "string"; | ||
@@ -188,3 +189,3 @@ }; | ||
*/ | ||
FHIRUtils.isObject = function(vValue) { | ||
FHIRUtils.isObject = function (vValue) { | ||
return typeof vValue === "object"; | ||
@@ -201,3 +202,3 @@ }; | ||
*/ | ||
FHIRUtils.isNumber = function(vValue) { | ||
FHIRUtils.isNumber = function (vValue) { | ||
return typeof vValue === "number"; | ||
@@ -215,3 +216,3 @@ }; | ||
*/ | ||
FHIRUtils.isEmptyObject = function(oObject) { | ||
FHIRUtils.isEmptyObject = function (oObject) { | ||
for (var sName in oObject) { | ||
@@ -240,4 +241,4 @@ return false; | ||
*/ | ||
FHIRUtils.filterArray = function(aArray, sAttribute, sFilterValue, fnCallback) { | ||
return aArray.filter(function(oArrayAttribute) { | ||
FHIRUtils.filterArray = function (aArray, sAttribute, sFilterValue, fnCallback) { | ||
return aArray.filter(function (oArrayAttribute) { | ||
if (fnCallback) { | ||
@@ -264,5 +265,5 @@ return fnCallback(oArrayAttribute); | ||
*/ | ||
FHIRUtils.filterObject = function(oObject, sAttribute, sFilterValue, iLevel, aObjects, fnPreprocessResult) { | ||
FHIRUtils.filterObject = function (oObject, sAttribute, sFilterValue, iLevel, aObjects, fnPreprocessResult) { | ||
if (iLevel > 0) { | ||
for ( var sKey in oObject) { | ||
for (var sKey in oObject) { | ||
this.filterObject(oObject[sKey], sAttribute, sFilterValue, iLevel - 1, aObjects, fnPreprocessResult); | ||
@@ -289,3 +290,3 @@ } | ||
*/ | ||
FHIRUtils.deepClone = function(oObject) { | ||
FHIRUtils.deepClone = function (oObject) { | ||
if (oObject && typeof oObject === "object") { | ||
@@ -312,4 +313,4 @@ if (Array.isArray(oObject)) { | ||
*/ | ||
FHIRUtils.uuidv4 = function() { | ||
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) { | ||
FHIRUtils.uuidv4 = function () { | ||
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) { | ||
var r = Math.floor(Math.random() * 16), v = c === "x" ? r : r % 4 + 8; | ||
@@ -329,3 +330,3 @@ return v.toString(16); | ||
*/ | ||
FHIRUtils.getLinkUrl = function(aLinks, sRelation) { | ||
FHIRUtils.getLinkUrl = function (aLinks, sRelation) { | ||
var oLink = this.filterArray(aLinks, "relation", sRelation)[0]; | ||
@@ -343,3 +344,3 @@ return oLink && oLink.url ? oLink.url : undefined; | ||
*/ | ||
FHIRUtils.getNumberOfLevelsByPath = function(sPath) { | ||
FHIRUtils.getNumberOfLevelsByPath = function (sPath) { | ||
return this.countOccurrence(sPath, "/"); | ||
@@ -357,10 +358,10 @@ }; | ||
*/ | ||
FHIRUtils.countOccurrence = function(sBase, sSearch) { | ||
FHIRUtils.countOccurrence = function (sBase, sSearch) { | ||
var iCount = -1; | ||
if (sBase === undefined){ | ||
if (sBase === undefined) { | ||
throw new Error("sBase is undefined"); | ||
} | ||
if (!this.isString(sBase)){ | ||
if (!this.isString(sBase)) { | ||
throw new Error("sBase is not a string"); | ||
@@ -385,3 +386,3 @@ } | ||
*/ | ||
FHIRUtils.checkStringParameter = function(mParameters, sParameter) { | ||
FHIRUtils.checkStringParameter = function (mParameters, sParameter) { | ||
if (!mParameters.hasOwnProperty(sParameter)) { | ||
@@ -403,3 +404,3 @@ throw new Error("Missing parameter: '" + sParameter + "'."); | ||
*/ | ||
FHIRUtils.checkPathParameter = function(mParameters, sParameter) { | ||
FHIRUtils.checkPathParameter = function (mParameters, sParameter) { | ||
this.checkStringParameter(mParameters, sParameter); | ||
@@ -422,3 +423,3 @@ if (mParameters[sParameter].startsWith("/")) { | ||
*/ | ||
FHIRUtils.checkFHIRSearchParameter = function(mParameters, sParameter) { | ||
FHIRUtils.checkFHIRSearchParameter = function (mParameters, sParameter) { | ||
this.checkStringParameter(mParameters, sParameter); | ||
@@ -436,3 +437,3 @@ }; | ||
*/ | ||
FHIRUtils.checkRegularExpression = function(sText, rRegExp) { | ||
FHIRUtils.checkRegularExpression = function (sText, rRegExp) { | ||
if (!sText) { | ||
@@ -455,3 +456,3 @@ throw new Error("Empty string. Can not check the regular expression: " + rRegExp + " for an undefined text."); | ||
*/ | ||
FHIRUtils.splitPath = function(sPath) { | ||
FHIRUtils.splitPath = function (sPath) { | ||
var rSliceableExpression = /((\s*(\[|§)(.*?)(\]|§)\s*)+)/g; | ||
@@ -482,10 +483,15 @@ var aMatches = sPath.match(rSliceableExpression); | ||
*/ | ||
FHIRUtils.filterBuilder = function(aFilters, mParameters, iSupportedFilterDepth, bIsValueSet, iLvl, bLogicalConnection, bLogicalOperator){ | ||
if (iLvl === undefined){ | ||
FHIRUtils.filterBuilder = function (aFilters, mParameters, iSupportedFilterDepth, bIsValueSet, iLvl, bLogicalConnection, bLogicalOperator) { | ||
if (iLvl === undefined) { | ||
iLvl = 0; | ||
} | ||
if (aFilters){ | ||
if (aFilters) { | ||
for (var i = 0; i < aFilters.length; i++) { | ||
var oFilter = aFilters[i]; | ||
if (oFilter._bMultiFilter && iLvl <= iSupportedFilterDepth){ | ||
if (!iSupportedFilterDepth) { | ||
if (!mParameters._filter) { | ||
mParameters._filter = ""; | ||
} | ||
this._complexFilterBuilder(oFilter, mParameters, undefined); | ||
} else if (oFilter._bMultiFilter && iLvl <= iSupportedFilterDepth) { | ||
this.filterBuilder(oFilter.aFilters, mParameters, iSupportedFilterDepth, bIsValueSet, iLvl + 1, oFilter._bMultiFilter, oFilter.bAnd); | ||
@@ -512,3 +518,3 @@ } else if (iLvl > iSupportedFilterDepth) { | ||
*/ | ||
FHIRUtils._filterBuilder = function(oFilter, mParameters, bIsValueSet, bLogicalConnection, bLogicalOperator){ | ||
FHIRUtils._filterBuilder = function (oFilter, mParameters, bIsValueSet, bLogicalConnection, bLogicalOperator) { | ||
var sPath = oFilter.sPath; | ||
@@ -519,3 +525,3 @@ var sFhirSearchModifier = FHIRFilterOperatorUtils.getFHIRSearchParameterModifier(oFilter); | ||
var vValue; | ||
if (sSearchPrefix){ | ||
if (sSearchPrefix) { | ||
vValue = sSearchPrefix + oValue1; | ||
@@ -529,11 +535,11 @@ } else { | ||
var oValue2 = FHIRFilterOperatorUtils.getFilterValue(oFilter.oValue2); | ||
mParameters[sPath + sFhirSearchModifier] = ["ge" + oValue1, "le" + oValue2]; | ||
} else if (bLogicalConnection && !bLogicalOperator){ | ||
if (mParameters[sPath + sFhirSearchModifier]){ | ||
mParameters[sPath + sFhirSearchModifier] = [FHIRFilterOperator.GE.toLowerCase() + oValue1, FHIRFilterOperator.LE.toLowerCase() + oValue2]; | ||
} else if (bLogicalConnection && !bLogicalOperator) { | ||
if (mParameters[sPath + sFhirSearchModifier]) { | ||
mParameters[sPath + sFhirSearchModifier].push(vValue); | ||
} else { | ||
mParameters[sPath + sFhirSearchModifier] = [ vValue ]; | ||
mParameters[sPath + sFhirSearchModifier] = [vValue]; | ||
} | ||
} else { | ||
mParameters[sPath + sFhirSearchModifier] = vValue; | ||
mParameters[sPath + sFhirSearchModifier] = vValue; | ||
} | ||
@@ -543,2 +549,49 @@ }; | ||
/** | ||
* Creates a complex filter | ||
* | ||
* @param {sap.ui.model.Filter} oFilter The filter which should be added to the parameters | ||
* @param {object} mParameters The parameters which should be passed to the request | ||
* @param {string} [sLogicalConnection] if the list of filters needs to be combined either with AND or OR | ||
* @private | ||
* @since 2.1.0 | ||
*/ | ||
FHIRUtils._complexFilterBuilder = function (oFilter, mParameters, sLogicalConnection) { | ||
var sLogicalConnection1; | ||
if (oFilter instanceof Filter) { | ||
if (oFilter._bMultiFilter) { | ||
// recursive | ||
sLogicalConnection1 = oFilter.bAnd && oFilter.bAnd == true ? "and" : "or"; | ||
if (oFilter.aFilters) { | ||
mParameters._filter = mParameters._filter + "( "; | ||
// for the first filter the logical connection shouldnt be appended | ||
this._complexFilterBuilder(oFilter.aFilters[0], mParameters, undefined); | ||
for (var i = 1; i < oFilter.aFilters.length; i++) { | ||
this._complexFilterBuilder(oFilter.aFilters[i], mParameters, sLogicalConnection1); | ||
} | ||
mParameters._filter = mParameters._filter + " )"; | ||
} | ||
} else { | ||
// validate the filter operator | ||
// if BT operator use 'and' to generate the filter value | ||
var sPath = oFilter.sPath; | ||
var sFilterOperator = FHIRFilterOperatorUtils.getFHIRFilterPrefix(oFilter); | ||
var oValue1 = FHIRFilterOperatorUtils.getFilterValueForComplexFilter(oFilter.sValueType, oFilter.oValue1); | ||
var oValue2; | ||
var sFilter; | ||
if (oFilter.sOperator === FHIRFilterComplexOperator.BT) { | ||
oValue2 = FHIRFilterOperatorUtils.getFilterValueForComplexFilter(oFilter.sValueType, oFilter.oValue2); | ||
sFilter = "( " + sPath + " " + FHIRFilterComplexOperator.GE.toLowerCase() + " " + oValue1 + " and " + sPath + " " + FHIRFilterComplexOperator.LE.toLowerCase() + " " + oValue2 + " )"; | ||
} else { | ||
sFilter = sPath + " " + sFilterOperator + " " + oValue1; | ||
} | ||
if (sLogicalConnection) { | ||
mParameters._filter = mParameters._filter + " " + sLogicalConnection + " " + sFilter; | ||
} else { | ||
mParameters._filter = mParameters._filter + sFilter; | ||
} | ||
} | ||
} | ||
}; | ||
/** | ||
* Filters the actual binding depending on the given <code>aFilters</code> | ||
@@ -551,3 +604,3 @@ * | ||
*/ | ||
FHIRUtils.filter = function(aFilters, oBinding){ | ||
FHIRUtils.filter = function (aFilters, oBinding) { | ||
if (!aFilters) { | ||
@@ -559,5 +612,5 @@ aFilters = []; | ||
} | ||
if (oBinding.bPendingRequest){ | ||
var fnQueryLastFilters = function() { | ||
if (!oBinding.bPendingRequest){ | ||
if (oBinding.bPendingRequest) { | ||
var fnQueryLastFilters = function () { | ||
if (!oBinding.bPendingRequest) { | ||
oBinding.detachDataReceived(fnQueryLastFilters); | ||
@@ -569,3 +622,3 @@ oBinding.bIsDataReceivedAttached = false; | ||
}; | ||
if (!oBinding.bIsDataReceivedAttached){ | ||
if (!oBinding.bIsDataReceivedAttached) { | ||
oBinding.bIsDataReceivedAttached = true; | ||
@@ -590,3 +643,3 @@ oBinding.attachDataReceived(fnQueryLastFilters); | ||
*/ | ||
FHIRUtils.sort = function(aSorters, oBinding, bRefresh){ | ||
FHIRUtils.sort = function (aSorters, oBinding, bRefresh) { | ||
if (!aSorters) { | ||
@@ -598,9 +651,9 @@ aSorters = []; | ||
} | ||
if (oBinding.bPendingRequest){ | ||
var fnQueryLastSorters = function() { | ||
if (!oBinding.bPendingRequest){ | ||
if (oBinding.bPendingRequest) { | ||
var fnQueryLastSorters = function () { | ||
if (!oBinding.bPendingRequest) { | ||
oBinding.detachDataReceived(fnQueryLastSorters); | ||
oBinding.bIsDataReceivedAttached = false; | ||
oBinding.aSorters = oBinding.aSortersCache; | ||
if (bRefresh){ | ||
if (bRefresh) { | ||
oBinding.refresh(ChangeReason.Sort); | ||
@@ -610,3 +663,3 @@ } | ||
}; | ||
if (!oBinding.bIsDataReceivedAttached){ | ||
if (!oBinding.bIsDataReceivedAttached) { | ||
oBinding.bIsDataReceivedAttached = true; | ||
@@ -618,3 +671,3 @@ oBinding.attachDataReceived(fnQueryLastSorters); | ||
oBinding.aSorters = aSorters; | ||
if (bRefresh){ | ||
if (bRefresh) { | ||
oBinding.refresh(ChangeReason.Sort); | ||
@@ -633,3 +686,3 @@ } | ||
*/ | ||
FHIRUtils.isRequestable = function(sPath) { | ||
FHIRUtils.isRequestable = function (sPath) { | ||
return sPath && (sPath.indexOf("$") > -1 || (sPath.match(/\//g) || []).length <= 2 || sPath.indexOf("_history") > -1); | ||
@@ -646,3 +699,3 @@ }; | ||
*/ | ||
FHIRUtils.isContextBinding = function(oContext) { | ||
FHIRUtils.isContextBinding = function (oContext) { | ||
return oContext && oContext.getMetadata().getName() === "sap.fhir.model.r4.FHIRContextBinding"; | ||
@@ -659,3 +712,3 @@ }; | ||
*/ | ||
FHIRUtils.isPropertyBinding = function(oBinding) { | ||
FHIRUtils.isPropertyBinding = function (oBinding) { | ||
return oBinding && oBinding.getMetadata().getName() === "sap.fhir.model.r4.FHIRPropertyBinding"; | ||
@@ -675,3 +728,3 @@ }; | ||
*/ | ||
FHIRUtils.generateFullUrl = function(oUri, sResourceServerPath, sResourceId, sServiceUrl) { | ||
FHIRUtils.generateFullUrl = function (oUri, sResourceServerPath, sResourceId, sServiceUrl) { | ||
var sFullUrl; | ||
@@ -678,0 +731,0 @@ if (oUri) { |
@@ -29,3 +29,3 @@ /*! | ||
* @since 1.0.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
*/ | ||
@@ -32,0 +32,0 @@ var BindingInfo = function(sResourceId, sResourceType, sResourcePath, sRelativePath, sAbsolutePath, aBinding, sGroupId, sRequestPath, aResourcePath, sResourceServerPath, sETag) { |
@@ -19,3 +19,3 @@ /*! | ||
* @since 1.0.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
*/ | ||
@@ -22,0 +22,0 @@ var FHIRBundle = function(sBundleType, sGroupId) { |
@@ -21,3 +21,3 @@ /*! | ||
* @since 1.0.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
*/ | ||
@@ -24,0 +24,0 @@ var FHIRBundleEntry = function(sFullUrl, oResource, oRequest) { |
@@ -29,3 +29,3 @@ /*! | ||
* @since 1.0.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
*/ | ||
@@ -32,0 +32,0 @@ var FHIRBundleRequest = function(oBinding, sMethod, sUrl, fnSuccess, fnError, sIfMatch, sIfNoneMatch, sIfNoneExist, sIfModifiedSince) { |
@@ -19,3 +19,3 @@ /*! | ||
* @since 2.0.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
*/ | ||
@@ -22,0 +22,0 @@ var FHIROperationOutcome = function (oResource) { |
@@ -37,3 +37,3 @@ /*! | ||
* @since 1.0.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
*/ | ||
@@ -40,0 +40,0 @@ var FHIRRequestor = function(sServiceUrl, oModel, bCSRF, sPrefer, oDefaultQueryParams) { |
@@ -20,3 +20,3 @@ /*! | ||
* @since 1.0.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
*/ | ||
@@ -23,0 +23,0 @@ var FHIRUrl = function(sUrl, sServiceUrl) { |
@@ -18,3 +18,3 @@ /*! | ||
* @since 1.0.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
*/ | ||
@@ -21,0 +21,0 @@ var HTTPMethod = { |
@@ -20,3 +20,3 @@ /*! | ||
* @since 1.0.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
*/ | ||
@@ -23,0 +23,0 @@ var RequestHandle = function(oBinding) { |
@@ -22,3 +22,3 @@ /*! | ||
* @since 1.0.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
*/ | ||
@@ -25,0 +25,0 @@ var Sliceable = {}; |
@@ -18,3 +18,3 @@ /*! | ||
* @since 1.0.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
*/ | ||
@@ -21,0 +21,0 @@ var OperationMode = { |
@@ -17,3 +17,3 @@ /*! | ||
* @since 1.0.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
*/ | ||
@@ -20,0 +20,0 @@ var SubmitMode = { |
@@ -16,3 +16,3 @@ /*! | ||
* @since 1.1.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
*/ | ||
@@ -19,0 +19,0 @@ |
@@ -13,3 +13,3 @@ /*! | ||
* @since 1.1.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
*/ | ||
@@ -16,0 +16,0 @@ |
@@ -13,3 +13,3 @@ /*! | ||
* @since 1.1.0 | ||
* @version 2.0.5 | ||
* @version 2.1.0 | ||
*/ | ||
@@ -16,0 +16,0 @@ |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
333035
37
7683