@wavemaker/variables 12.0.0-next.45752 → 12.0.0-next.47809

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/npm-shrinkwrap.json +1993 -0
  2. package/package-lock.json +1993 -0
  3. {variables → package}/package.json +4 -3
  4. {variables → package}/scripts/build.js +52 -15
  5. package/scripts/build.js.map +1 -0
  6. package/src/manager/action/timer-action.manager.js.map +1 -0
  7. {variables → package}/src/manager/variable/base-variable.manager.js +2 -2
  8. package/src/manager/variable/base-variable.manager.js.map +1 -0
  9. {variables → package}/src/manager/variable/crud-variable.manager.js +16 -16
  10. package/src/manager/variable/crud-variable.manager.js.map +1 -0
  11. {variables → package}/src/manager/variable/live-variable.manager.js +50 -50
  12. package/src/manager/variable/live-variable.manager.js.map +1 -0
  13. {variables → package}/src/manager/variable/model-variable.manager.js +12 -12
  14. package/src/manager/variable/model-variable.manager.js.map +1 -0
  15. {variables → package}/src/manager/variable/service-variable.manager.js +61 -44
  16. package/src/manager/variable/service-variable.manager.js.map +1 -0
  17. package/src/model/action/timer-action.js.map +1 -0
  18. {variables → package}/src/model/base-action.d.ts +1 -1
  19. {variables → package}/src/model/base-action.js +3 -3
  20. package/src/model/base-action.js.map +1 -0
  21. {variables → package}/src/model/base-variable.d.ts +1 -1
  22. {variables → package}/src/model/base-variable.js +16 -16
  23. package/src/model/base-variable.js.map +1 -0
  24. {variables → package}/src/model/variable/crud-variable.d.ts +1 -0
  25. {variables → package}/src/model/variable/crud-variable.js +2 -2
  26. package/src/model/variable/crud-variable.js.map +1 -0
  27. {variables → package}/src/model/variable/live-variable.js +7 -7
  28. package/src/model/variable/live-variable.js.map +1 -0
  29. package/src/model/variable/model-variable.js.map +1 -0
  30. {variables → package}/src/model/variable/service-variable.d.ts +1 -0
  31. {variables → package}/src/model/variable/service-variable.js +2 -2
  32. package/src/model/variable/service-variable.js.map +1 -0
  33. package/src/types/event-notifier.js.map +1 -0
  34. {variables → package}/src/util/dataset-util.js +16 -16
  35. package/src/util/dataset-util.js.map +1 -0
  36. {variables → package}/src/util/file-upload.util.js +12 -12
  37. package/src/util/file-upload.util.js.map +1 -0
  38. package/src/util/inflight-queue.js.map +1 -0
  39. package/src/util/notify-promise.js.map +1 -0
  40. {variables → package}/src/util/utils.js +19 -19
  41. package/src/util/utils.js.map +1 -0
  42. {variables → package}/src/util/variable/live-variable.http.utils.js +6 -6
  43. package/src/util/variable/live-variable.http.utils.js.map +1 -0
  44. {variables → package}/src/util/variable/live-variable.utils.js +84 -84
  45. package/src/util/variable/live-variable.utils.js.map +1 -0
  46. {variables → package}/src/util/variable/pagination.utils.js +38 -20
  47. package/src/util/variable/pagination.utils.js.map +1 -0
  48. {variables → package}/src/util/variable/service-variable.utils.d.ts +1 -0
  49. {variables → package}/src/util/variable/service-variable.utils.js +31 -28
  50. package/src/util/variable/service-variable.utils.js.map +1 -0
  51. {variables → package}/src/util/variable/variables.utils.js +49 -49
  52. package/src/util/variable/variables.utils.js.map +1 -0
  53. package/webpack.config.d.ts +21 -0
  54. variables/scripts/build.js.map +0 -1
  55. variables/scripts/update-version.d.ts +0 -1
  56. variables/scripts/update-version.js +0 -27
  57. variables/scripts/update-version.js.map +0 -1
  58. variables/src/manager/action/timer-action.manager.js.map +0 -1
  59. variables/src/manager/variable/base-variable.manager.js.map +0 -1
  60. variables/src/manager/variable/crud-variable.manager.js.map +0 -1
  61. variables/src/manager/variable/live-variable.manager.js.map +0 -1
  62. variables/src/manager/variable/model-variable.manager.js.map +0 -1
  63. variables/src/manager/variable/service-variable.manager.js.map +0 -1
  64. variables/src/model/action/timer-action.js.map +0 -1
  65. variables/src/model/base-action.js.map +0 -1
  66. variables/src/model/base-variable.js.map +0 -1
  67. variables/src/model/variable/crud-variable.js.map +0 -1
  68. variables/src/model/variable/live-variable.js.map +0 -1
  69. variables/src/model/variable/model-variable.js.map +0 -1
  70. variables/src/model/variable/service-variable.js.map +0 -1
  71. variables/src/types/event-notifier.js.map +0 -1
  72. variables/src/util/dataset-util.js.map +0 -1
  73. variables/src/util/file-upload.util.js.map +0 -1
  74. variables/src/util/inflight-queue.js.map +0 -1
  75. variables/src/util/notify-promise.js.map +0 -1
  76. variables/src/util/utils.js.map +0 -1
  77. variables/src/util/variable/live-variable.http.utils.js.map +0 -1
  78. variables/src/util/variable/live-variable.utils.js.map +0 -1
  79. variables/src/util/variable/pagination.utils.js.map +0 -1
  80. variables/src/util/variable/service-variable.utils.js.map +0 -1
  81. variables/src/util/variable/variables.utils.js.map +0 -1
  82. variables/webpack.config.d.ts +0 -21
  83. {variables → package}/index.d.ts +0 -0
  84. {variables → package}/index.js +0 -0
  85. {variables → package}/index.js.map +0 -0
  86. {variables → package}/scripts/build.d.ts +0 -0
  87. {variables → package}/src/advanced-options.d.ts +0 -0
  88. {variables → package}/src/advanced-options.js +0 -0
  89. {variables → package}/src/advanced-options.js.map +0 -0
  90. {variables → package}/src/constants/variables.constants.d.ts +0 -0
  91. {variables → package}/src/constants/variables.constants.js +0 -0
  92. {variables → package}/src/constants/variables.constants.js.map +0 -0
  93. {variables → package}/src/factory/variable-manager.factory.d.ts +0 -0
  94. {variables → package}/src/factory/variable-manager.factory.js +0 -0
  95. {variables → package}/src/factory/variable-manager.factory.js.map +0 -0
  96. {variables → package}/src/manager/action/timer-action.manager.d.ts +0 -0
  97. {variables → package}/src/manager/action/timer-action.manager.js +0 -0
  98. {variables → package}/src/manager/variable/base-variable.manager.d.ts +0 -0
  99. {variables → package}/src/manager/variable/crud-variable.manager.d.ts +0 -0
  100. {variables → package}/src/manager/variable/live-variable.manager.d.ts +0 -0
  101. {variables → package}/src/manager/variable/model-variable.manager.d.ts +0 -0
  102. {variables → package}/src/manager/variable/service-variable.manager.d.ts +0 -0
  103. {variables → package}/src/model/action/timer-action.d.ts +0 -0
  104. {variables → package}/src/model/action/timer-action.js +0 -0
  105. {variables → package}/src/model/crud-create.d.ts +0 -0
  106. {variables → package}/src/model/crud-create.js +0 -0
  107. {variables → package}/src/model/crud-create.js.map +0 -0
  108. {variables → package}/src/model/crud-delete.d.ts +0 -0
  109. {variables → package}/src/model/crud-delete.js +0 -0
  110. {variables → package}/src/model/crud-delete.js.map +0 -0
  111. {variables → package}/src/model/crud-list.d.ts +0 -0
  112. {variables → package}/src/model/crud-list.js +0 -0
  113. {variables → package}/src/model/crud-list.js.map +0 -0
  114. {variables → package}/src/model/crud-update.d.ts +0 -0
  115. {variables → package}/src/model/crud-update.js +0 -0
  116. {variables → package}/src/model/crud-update.js.map +0 -0
  117. {variables → package}/src/model/variable/api-aware-variable.d.ts +0 -0
  118. {variables → package}/src/model/variable/api-aware-variable.js +0 -0
  119. {variables → package}/src/model/variable/api-aware-variable.js.map +0 -0
  120. {variables → package}/src/model/variable/live-variable.d.ts +0 -0
  121. {variables → package}/src/model/variable/model-variable.d.ts +0 -0
  122. {variables → package}/src/model/variable/model-variable.js +0 -0
  123. {variables → package}/src/types/date-formatter.d.ts +0 -0
  124. {variables → package}/src/types/date-formatter.js +0 -0
  125. {variables → package}/src/types/date-formatter.js.map +0 -0
  126. {variables → package}/src/types/event-notifier.d.ts +0 -0
  127. {variables → package}/src/types/event-notifier.js +0 -0
  128. {variables → package}/src/types/http-client.service.d.ts +0 -0
  129. {variables → package}/src/types/http-client.service.js +0 -0
  130. {variables → package}/src/types/http-client.service.js.map +0 -0
  131. {variables → package}/src/types/types.d.ts +0 -0
  132. {variables → package}/src/types/types.js +0 -0
  133. {variables → package}/src/types/types.js.map +0 -0
  134. {variables → package}/src/util/dataset-util.d.ts +0 -0
  135. {variables → package}/src/util/file-upload.util.d.ts +0 -0
  136. {variables → package}/src/util/inflight-queue.d.ts +0 -0
  137. {variables → package}/src/util/inflight-queue.js +0 -0
  138. {variables → package}/src/util/notify-promise.d.ts +0 -0
  139. {variables → package}/src/util/notify-promise.js +0 -0
  140. {variables → package}/src/util/oAuth.utils.d.ts +0 -0
  141. {variables → package}/src/util/oAuth.utils.js +0 -0
  142. {variables → package}/src/util/oAuth.utils.js.map +0 -0
  143. {variables → package}/src/util/utils.d.ts +0 -0
  144. {variables → package}/src/util/variable/live-variable.http.utils.d.ts +0 -0
  145. {variables → package}/src/util/variable/live-variable.utils.d.ts +0 -0
  146. {variables → package}/src/util/variable/pagination.utils.d.ts +0 -0
  147. {variables → package}/src/util/variable/variables.utils.d.ts +0 -0
  148. {variables → package}/webpack.config.js +0 -0
  149. {variables → package}/webpack.config.js.map +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-variable.utils.js","sourceRoot":"./","sources":["src/util/variable/live-variable.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { hasCordova, getClonedObject, isDateTimeType, isDefined, replace, triggerFn, isNumberType } from \"../../util/utils\";\nimport { $rootScope, DB_CONSTANTS, SWAGGER_CONSTANTS } from '../../constants/variables.constants';\nimport { getEvaluatedOrderBy, formatDate } from './variables.utils';\n\n// @ts-ignore\nimport moment from 'moment';\nimport {forEach, find, get, includes, map, filter, trim ,isEmpty, endsWith, join, toLower, isObject, isArray, toUpper, reduce, isString, each, isNil, remove, isNull, some ,indexOf, clone, replace as _replace, isNaN as _isNaN} from 'lodash-es';\n\nexport class LiveVariableUtils {\n\n static isCompositeKey(primaryKey) {\n return !primaryKey || (primaryKey && (!primaryKey.length || primaryKey.length > 1));\n }\n\n static isNoPrimaryKey(primaryKey) {\n return (!primaryKey || (primaryKey && !primaryKey.length));\n }\n\n // Generate the URL based on the primary keys and their values\n static getCompositeIDURL(primaryKeysData) {\n let compositeId = '';\n // Loop over the 'compositeKeysData' and construct the 'compositeId'.\n forEach(primaryKeysData, (paramValue, paramName) => {\n compositeId += paramName + '=' + encodeURIComponent(paramValue) + '&';\n });\n compositeId = compositeId.slice(0, -1);\n return compositeId;\n }\n\n\n // Check if table has blob column\n static hasBlob(variable) {\n return find(get(variable, ['propertiesMap', 'columns']), {'type': 'blob'});\n }\n\n static getPrimaryKey(variable) {\n if (!variable.propertiesMap) {\n return [];\n }\n\n if (variable.propertiesMap.primaryFields) {\n return variable.propertiesMap.primaryFields;\n }\n /*Old projects do not have primary fields. Get primary key from the columns*/\n const primaryKey = [];\n /*Loop through the propertiesMap and get the primary key column.*/\n forEach(variable.propertiesMap.columns, (index, column) => {\n if (column.isPrimaryKey) {\n if (column.isRelated && (!includes(column.relatedFieldName, primaryKey))) {\n primaryKey.push(column.relatedFieldName);\n } else if (!includes(column.fieldName, primaryKey)) {\n primaryKey.push(column.fieldName);\n }\n }\n });\n return primaryKey;\n }\n\n // Construct the URL for blob columns and set it in the data, so that widgets can use this\n static processBlobColumns(responseData, variable) {\n if (!responseData) {\n return;\n }\n const blobCols = map(filter(variable.propertiesMap.columns, {'type': 'blob'}), 'fieldName'),\n deployedUrl = trim($rootScope.project.deployedUrl);\n let href = '',\n primaryKeys;\n\n if (isEmpty(blobCols)) {\n return;\n }\n\n if (hasCordova()) {\n href += endsWith(deployedUrl, '/') ? deployedUrl : deployedUrl + '/';\n }\n href += ((variable._prefabName !== '' && variable._prefabName !== undefined) ? 'prefabs/' + variable._prefabName : 'services') + '/' + variable.liveSource + '/' + variable.type + '/';\n primaryKeys = variable.propertiesMap.primaryFields || variable.propertiesMap.primaryKeys;\n forEach(responseData, data => {\n if (data) {\n forEach(blobCols, col => {\n const compositeKeysData = {};\n if (data[col] === null || !isEmpty(trim(data[col]))) {\n return;\n }\n if (LiveVariableUtils.isCompositeKey(primaryKeys)) {\n primaryKeys.forEach(key => {\n compositeKeysData[key] = data[key];\n });\n data[col] = href + 'composite-id/content/' + col + '?' + LiveVariableUtils.getCompositeIDURL(compositeKeysData);\n } else {\n data[col] = href + data[join(primaryKeys)] + '/content/' + col;\n }\n });\n }\n });\n }\n\n static getHibernateOrSqlType(variable, fieldName, type, entityName?: string) {\n const columns = variable.propertiesMap.columns;\n let column,\n relatedCols,\n relatedCol,\n columnParts;\n if (includes(fieldName, '.')) {\n columnParts = fieldName.split('.');\n if (columnParts.length > 2) {\n return undefined;\n }\n column = find(columns, col => {\n return col.fieldName === columnParts[0];\n });\n relatedCols = column && column.columns;\n relatedCol = find(relatedCols, col => {\n return col.fieldName === columnParts[1];\n });\n return relatedCol && relatedCol[type];\n }\n column = find(columns, col => {\n return col.fieldName === fieldName || col.relatedColumnName === fieldName;\n });\n if (!column && entityName) {\n const entity = find(columns, col => col.relatedEntityName === entityName);\n column = find(entity.columns, col => {\n return col.fieldName === fieldName || col.relatedColumnName === fieldName;\n });\n }\n return column && column[type];\n }\n\n /*Function to get the sqlType of the specified field.*/\n static getSqlType(variable, fieldName, entityName?: string) {\n return LiveVariableUtils.getHibernateOrSqlType(variable, fieldName, 'type', entityName);\n }\n\n /*Function to check if the specified field has a one-to-many relation or not.*/\n static isRelatedFieldMany(variable, fieldName) {\n const columns = variable.propertiesMap.columns,\n columnsCount = columns.length;\n let index,\n column;\n /*Loop through the columns of the liveVariable*/\n for (index = 0; index < columnsCount; index += 1) {\n column = columns[index];\n /*If the specified field is found in the columns of the variable,\n * then it has a many-to-one relation.*/\n if (column.fieldName === fieldName) {\n return false;\n }\n }\n return true;\n }\n\n static isStringType(type) {\n return includes(['text', 'string'], toLower(type));\n }\n\n static getSQLFieldType(variable, options) {\n if (includes(['timestamp', 'datetime', 'date'], options.type)) {\n return options.type;\n }\n return LiveVariableUtils.getSqlType(variable, options.fieldName) || options.type;\n }\n\n static getAttributeName(variable, fieldName) {\n let attrName = fieldName;\n variable.propertiesMap.columns.forEach(column => {\n if (column.fieldName === fieldName && column.isRelated) {\n attrName = column.relatedFieldName;\n }\n });\n return attrName;\n }\n\n static getFilterCondition(filterCondition) {\n if (includes(DB_CONSTANTS.DATABASE_RANGE_MATCH_MODES, filterCondition)) {\n return filterCondition;\n }\n return DB_CONSTANTS.DATABASE_MATCH_MODES['exact'];\n }\n\n static getFilterOption(variable, fieldOptions, options) {\n let attributeName,\n fieldValue = fieldOptions.value,\n filterOption,\n filterCondition;\n\n const matchModes = DB_CONSTANTS.DATABASE_MATCH_MODES,\n fieldName = fieldOptions.fieldName,\n fieldRequired = fieldOptions.required || false,\n fieldType = LiveVariableUtils.getSQLFieldType(variable, fieldOptions);\n\n filterCondition = matchModes[fieldOptions.matchMode] || matchModes[fieldOptions.filterCondition] || fieldOptions.filterCondition;\n\n fieldOptions.type = fieldType;\n /* if the field value is an object(complex type), loop over each field inside and push only first level fields */\n if (isObject(fieldValue) && !isArray(fieldValue)) {\n const firstLevelValues = [];\n forEach(fieldValue, (subFieldValue, subFieldName) => {\n if (subFieldValue && !isObject(subFieldValue)) {\n firstLevelValues.push(fieldName + '.' + subFieldName + '=' + subFieldValue);\n }\n });\n return firstLevelValues;\n }\n\n if (includes(DB_CONSTANTS.DATABASE_EMPTY_MATCH_MODES, filterCondition)) {\n attributeName = LiveVariableUtils.getAttributeName(variable, fieldName);\n // For non string types empty match modes are not supported, so convert them to null match modes.\n if (fieldType && !LiveVariableUtils.isStringType(fieldType)) {\n filterCondition = DB_CONSTANTS.DATABASE_NULL_EMPTY_MATCH[filterCondition];\n }\n filterOption = {\n 'attributeName': attributeName,\n 'attributeValue': '',\n 'attributeType': toUpper(fieldType),\n 'filterCondition': filterCondition,\n 'required': fieldRequired\n };\n if (options.searchWithQuery) {\n filterOption.isVariableFilter = fieldOptions.isVariableFilter;\n }\n return filterOption;\n }\n\n if (isDefined(fieldValue) && fieldValue !== null && fieldValue !== '') {\n /*Based on the sqlType of the field, format the value & set the filter condition.*/\n if (fieldType) {\n switch (fieldType) {\n case 'integer':\n fieldValue = isArray(fieldValue) ? reduce(fieldValue, (result, value) => {\n value = parseInt(value, 10);\n if (!_isNaN(value)) {\n result.push(value);\n }\n return result;\n }, []) : parseInt(fieldValue, 10);\n filterCondition = filterCondition ? LiveVariableUtils.getFilterCondition(filterCondition) : matchModes['exact'];\n break;\n case 'date':\n case 'datetime':\n case 'timestamp':\n fieldValue = formatDate(fieldValue, fieldType, variable.dateFormatter);\n filterCondition = filterCondition ? LiveVariableUtils.getFilterCondition(filterCondition) : matchModes['exact'];\n break;\n case 'text':\n case 'string':\n if (isArray(fieldValue)) {\n filterCondition = includes([matchModes['in'], matchModes['notin']], filterCondition) ? filterCondition : matchModes['exact'];\n } else {\n filterCondition = filterCondition || matchModes['anywhereignorecase'];\n }\n break;\n default:\n filterCondition = filterCondition ? LiveVariableUtils.getFilterCondition(filterCondition) : matchModes['exact'];\n break;\n }\n } else {\n filterCondition = isString(fieldValue) ? matchModes['anywhereignorecase'] : matchModes['exact'];\n }\n attributeName = LiveVariableUtils.getAttributeName(variable, fieldName);\n filterOption = {\n 'attributeName': attributeName,\n 'attributeValue': fieldValue,\n 'attributeType': toUpper(fieldType),\n 'filterCondition': filterCondition,\n 'required': fieldRequired\n };\n if (options.searchWithQuery) {\n filterOption.isVariableFilter = fieldOptions.isVariableFilter;\n }\n return filterOption;\n }\n }\n\n static getFilterOptions(variable, filterFields, options) {\n let filterOptions = [];\n each(filterFields, (fieldOptions) => {\n const filterOption = LiveVariableUtils.getFilterOption(variable, fieldOptions, options);\n if (!isNil(filterOption)) {\n if (isArray(filterOption)) {\n filterOptions = filterOptions.concat(filterOption);\n } else {\n filterOptions.push(filterOption);\n }\n }\n });\n return filterOptions;\n }\n\n // Wrap the field name and value in lower() in ignore case scenario\n // TODO: Change the function name to represent the added functionality of identifiers for datetime, timestamp and float types. Previously only lower was warapped.\n static wrapInLowerCase(value, options, ignoreCase, isField?) {\n const type = toLower(options.attributeType);\n // If ignore case is true and type is string/ text and match mode is string type, wrap in lower()\n if (ignoreCase && (!type || LiveVariableUtils.isStringType(type)) && includes(DB_CONSTANTS.DATABASE_STRING_MODES, options.filterCondition)) {\n return 'lower(' + value + ')';\n }\n return value;\n }\n\n static encodeAndAddQuotes(value, type, skipEncode) {\n let encodedValue = skipEncode ? value : encodeURIComponent(value);\n type = toLower(type);\n encodedValue = _replace(encodedValue, /'/g, '\\'\\'');\n // For number types, don't wrap the value in quotes\n if ((isNumberType(type) && type !== 'float')) {\n return encodedValue;\n }\n return '\\'' + encodedValue + '\\'';\n }\n\n static getParamValue(value, options, ignoreCase, skipEncode) {\n let param;\n const filterCondition = options.filterCondition,\n dbModes = DB_CONSTANTS.DATABASE_MATCH_MODES,\n type = options.attributeType;\n if (includes(DB_CONSTANTS.DATABASE_EMPTY_MATCH_MODES, filterCondition)) {\n // For empty matchmodes, no value is required\n return '';\n }\n switch (filterCondition) {\n case dbModes.startignorecase:\n case dbModes.start:\n param = LiveVariableUtils.encodeAndAddQuotes(value + '%', type, skipEncode);\n param = LiveVariableUtils.wrapInLowerCase(param, options, ignoreCase);\n break;\n case dbModes.endignorecase:\n case dbModes.end:\n param = LiveVariableUtils.encodeAndAddQuotes('%' + value, type, skipEncode);\n param = LiveVariableUtils.wrapInLowerCase(param, options, ignoreCase);\n break;\n case dbModes.nowhereignorecase:\n case dbModes.nowhere:\n case dbModes.anywhereignorecase:\n case dbModes.anywhere:\n param = LiveVariableUtils.encodeAndAddQuotes('%' + value + '%', type, skipEncode);\n param = LiveVariableUtils.wrapInLowerCase(param, options, ignoreCase);\n break;\n case dbModes.between:\n param = join(map(value, val => {\n return LiveVariableUtils.wrapInLowerCase(LiveVariableUtils.encodeAndAddQuotes(val, type, skipEncode), options, ignoreCase);\n }), ' and ');\n break;\n case dbModes.in:\n case dbModes.notin:\n param = join(map(value, val => {\n return LiveVariableUtils.wrapInLowerCase(LiveVariableUtils.encodeAndAddQuotes(val, type, skipEncode), options, ignoreCase);\n }), ', ');\n param = '(' + param + ')';\n break;\n /*case dbModes.exactignorecase:\n case dbModes.exact:\n case dbModes.notequals:\n The above three cases will be handled by default*/\n default:\n param = LiveVariableUtils.encodeAndAddQuotes(value, type, skipEncode);\n param = LiveVariableUtils.wrapInLowerCase(param, options, ignoreCase);\n break;\n }\n return isDefined(param) ? param : '';\n }\n\n static getSearchQuery(filterOptions, operator, ignoreCase, skipEncode?) {\n let query;\n const params = [];\n forEach(filterOptions, fieldValue => {\n const value = fieldValue.attributeValue,\n dbModes = DB_CONSTANTS.DATABASE_MATCH_MODES,\n isValArray = isArray(value);\n let fieldName = fieldValue.attributeName,\n filterCondition = fieldValue.filterCondition,\n matchModeExpr,\n paramValue;\n // If value is an empty array, do not generate the query\n // If values is NaN and number type, do not generate query for this field\n if ((isValArray && isEmpty(value)) || (!isValArray && _isNaN(value) && (isNumberType(fieldValue.attributeType))) || (!isValArray && (_isNaN(value) && !moment(value).isValid() && isDateTimeType(toLower(fieldValue.attributeType))))) {\n return;\n }\n if (isValArray) {\n // If array is value and mode is between, pass between. Else pass as in query\n filterCondition = filterCondition === dbModes.between || filterCondition === dbModes.notin ? filterCondition : dbModes.in;\n fieldValue.filterCondition = filterCondition;\n }\n matchModeExpr = DB_CONSTANTS.DATABASE_MATCH_MODES_WITH_QUERY[filterCondition];\n paramValue = LiveVariableUtils.getParamValue(value, fieldValue, ignoreCase, skipEncode);\n fieldName = LiveVariableUtils.wrapInLowerCase(fieldName, fieldValue, ignoreCase);\n params.push(replace(matchModeExpr, [fieldName, paramValue]));\n });\n query = join(params, operator); // empty space added intentionally around OR\n return query;\n }\n\n /**\n * creating the proper values from the actual object like for between,in matchModes value has to be an array like [1,2]\n * @param rules recursive filterexpressions object\n * @param variable variable object\n * @param options options\n */\n static processFilterFields(rules, variable, options) {\n remove(rules, rule => {\n return rule && (isString(rule.value) && rule.value.indexOf('bind:') === 0 || (rule.matchMode === 'between' ? (isString(rule.secondvalue) && rule.secondvalue.indexOf('bind:') === 0) : false));\n });\n\n forEach(rules, (rule, index) => {\n if (rule) {\n if (rule.rules) {\n LiveVariableUtils.processFilterFields(rule.rules, variable, options);\n } else {\n if (!isNull(rule.target)) {\n const value = rule.matchMode.toLowerCase() === DB_CONSTANTS.DATABASE_MATCH_MODES.between.toLowerCase()\n ? (isArray(rule.value) ? rule.value : [rule.value, rule.secondvalue])\n : (rule.matchMode.toLowerCase() === DB_CONSTANTS.DATABASE_MATCH_MODES.in.toLowerCase() || rule.matchMode.toLowerCase() === DB_CONSTANTS.DATABASE_MATCH_MODES.notin.toLowerCase()\n ? (isArray(rule.value) ? rule.value : (rule.value ? rule.value.split(',').map(val => val.trim()) : ''))\n : rule.value);\n rules[index] = LiveVariableUtils.getFilterOption(variable, {\n 'fieldName': rule.target,\n 'type': rule.type,\n 'value': value,\n 'required': rule.required,\n 'filterCondition': rule.matchMode || options.matchMode || variable.matchMode\n }, options);\n }\n }\n }\n });\n }\n\n static getSearchField(fieldValue, ignoreCase, skipEncode) {\n let fieldName = fieldValue.attributeName;\n let matchModeExpr;\n let paramValue;\n let filterCondition = fieldValue.filterCondition;\n\n const value = fieldValue.attributeValue;\n const isValArray = isArray(value);\n const dbModes = DB_CONSTANTS.DATABASE_MATCH_MODES;\n\n // If value is an empty array, do not generate the query\n // If values is NaN and number type, do not generate query for this field\n if ((isValArray && isEmpty(value)) ||\n (isValArray && some(value, val => (isNull(val) || _isNaN(val) || val === ''))) ||\n (!isValArray && (_isNaN(value) && (isNumberType(fieldValue.attributeType)))) ||\n (!isValArray && (_isNaN(value) && !moment(value).isValid() && isDateTimeType(toLower(fieldValue.attributeType))))) {\n return;\n }\n if (isValArray) {\n // If array is value and mode is between, pass between. Else pass as in query\n filterCondition = filterCondition === dbModes.between || filterCondition === dbModes.notin ? filterCondition : dbModes.in;\n fieldValue.filterCondition = filterCondition;\n }\n matchModeExpr = DB_CONSTANTS.DATABASE_MATCH_MODES_WITH_QUERY[filterCondition];\n paramValue = LiveVariableUtils.getParamValue(value, fieldValue, ignoreCase, skipEncode);\n fieldName = LiveVariableUtils.wrapInLowerCase(fieldName, fieldValue, ignoreCase);\n return replace(matchModeExpr, [fieldName, paramValue]);\n }\n\n /**\n * this is used to identify whether to use ignorecase at each criteria level and not use the variable\n * level isIgnoreCase flag and apply it to all the rules.\n * Instead of adding an extra param to the criteria object, we have added few other matchmodes for string types like\n * anywhere with anywhereignorecase, start with startignorecase, end with endignorecase, exact with exactignorecase,\n * So while creating the criteria itseld user can choose whether to use ignore case or not for a particular column while querying\n * @param matchMode\n * @param ignoreCase\n * @returns {*} boolean\n */\n static getIgnoreCase(matchMode, ignoreCase) {\n const matchModes = DB_CONSTANTS.DATABASE_MATCH_MODES;\n if (indexOf([matchModes['anywhere'], matchModes['nowhere'], matchModes['start'], matchModes['end'], matchModes['exact']], matchMode) !== -1) {\n return false;\n }\n if (indexOf([matchModes['anywhereignorecase'], matchModes['nowhereignorecase'], matchModes['startignorecase'], matchModes['endignorecase'], matchModes['exactignorecase']], matchMode) !== -1) {\n return true;\n }\n return ignoreCase;\n }\n\n static generateSearchQuery(rules, condition, ignoreCase, skipEncode) {\n const params = [];\n forEach(rules, rule => {\n if (rule) {\n if (rule.rules) {\n const query = LiveVariableUtils.generateSearchQuery(rule.rules, rule.condition, ignoreCase, skipEncode);\n if (query !== '') {\n params.push('(' + query + ')');\n }\n } else {\n const searchField = LiveVariableUtils.getSearchField(rule, LiveVariableUtils.getIgnoreCase(rule.filterCondition, ignoreCase), skipEncode);\n if (!isNil(searchField)) {\n params.push(searchField);\n }\n }\n }\n });\n return join(params, ' ' + condition + ' ');\n }\n\n static prepareTableOptionsForFilterExps(variable, options, clonedFields) {\n if (!isDefined(options.searchWithQuery)) {\n options.searchWithQuery = true; // Using query api instead of search api\n }\n\n const filterOptions = [];\n const matchModes = DB_CONSTANTS.DATABASE_MATCH_MODES;\n let orderByFields,\n orderByOptions,\n query;\n let clonedObj = clonedFields || getClonedObject(variable.filterExpressions);\n\n // if filterexpression from live filter is present use it to query\n if (options.filterExpr && !isEmpty(options.filterExpr)) {\n clonedObj = options.filterExpr;\n }\n // merge live filter runtime values\n let filterRules: any = {};\n if (!isEmpty(options.filterFields)) {\n let operator = '';\n for (const field in options.filterFields) {\n operator = options.filterFields[field] && options.filterFields[field]['logicalOp'] || '';\n break;\n }\n filterRules = {'condition': options.logicalOp || operator || 'AND', 'rules': []};\n forEach(options.filterFields, (filterObj, filterName) => {\n if (!filterObj) {\n return\n }\n const filterCondition = matchModes[filterObj.matchMode] || matchModes[filterObj.filterCondition] || filterObj.filterCondition;\n if (includes(DB_CONSTANTS.DATABASE_EMPTY_MATCH_MODES, filterCondition) ||\n (!isNil(filterObj.value) && filterObj.value !== '')) {\n const type = filterObj.type || LiveVariableUtils.getSqlType(variable, filterName, options.entityName);\n const ruleObj = {\n 'target': filterName,\n 'type': type,\n 'matchMode': filterObj.matchMode || (LiveVariableUtils.isStringType(type) ? 'startignorecase' : 'exact'),\n 'value': filterObj.value,\n 'required': filterObj.required || false\n };\n filterRules.rules.push(ruleObj);\n }\n });\n }\n if (!isEmpty(clonedObj)) {\n if (!isNil(filterRules.rules) && filterRules.rules.length) {\n // combine both the rules using 'AND'\n const tempRules = {'condition': 'AND', 'rules': []};\n tempRules.rules.push(getClonedObject(clonedObj));\n tempRules.rules.push(filterRules);\n clonedObj = tempRules;\n }\n } else {\n clonedObj = filterRules;\n }\n\n LiveVariableUtils.processFilterFields(clonedObj.rules, variable, options);\n query = LiveVariableUtils.generateSearchQuery(clonedObj.rules, clonedObj.condition, variable.ignoreCase, options.skipEncode);\n\n orderByFields = getEvaluatedOrderBy(variable.orderBy, options.orderBy);\n orderByOptions = orderByFields ? 'sort=' + orderByFields : '';\n\n return {\n 'filter' : filterOptions,\n 'sort' : orderByOptions,\n 'query' : query\n };\n }\n\n static prepareTableOptions(variable, options, clonedFields?) {\n if (variable.operation === 'read') {\n return LiveVariableUtils.prepareTableOptionsForFilterExps(variable, options, clonedFields);\n }\n if (!isDefined(options.searchWithQuery)) {\n options.searchWithQuery = true; // Using query api instead of search api\n }\n const filterFields = [];\n let filterOptions = [],\n orderByFields,\n orderByOptions,\n query,\n optionsQuery;\n clonedFields = clonedFields || variable.filterFields;\n // get the filter fields from the variable\n forEach(clonedFields, (value, key) => {\n if (isObject(value) && (!options.filterFields || !options.filterFields[key] || options.filterFields[key].logicalOp === 'AND')) {\n value.fieldName = key;\n if (LiveVariableUtils.isStringType(LiveVariableUtils.getSQLFieldType(variable, value))) {\n value.filterCondition = DB_CONSTANTS.DATABASE_MATCH_MODES[value.matchMode || variable.matchMode];\n }\n value.isVariableFilter = true;\n filterFields.push(value);\n }\n });\n // get the filter fields from the options\n forEach(options.filterFields, (value, key) => {\n value.fieldName = key;\n value.filterCondition = DB_CONSTANTS.DATABASE_MATCH_MODES[value.matchMode || options.matchMode || variable.matchMode];\n filterFields.push(value);\n });\n if (variable.operation === 'read' || options.operation === 'read') {\n filterOptions = LiveVariableUtils.getFilterOptions(variable, filterFields, options);\n }\n /*if searchWithQuery is true, then convert the input params into query string. For example if firstName and lastName\n should be sent as params then query string will be q='firstName containing 'someValue' OR lastName containing 'someValue''\n */\n if (options.searchWithQuery && filterOptions.length) {\n // Generate query for variable filter fields. This has AND logical operator\n query = LiveVariableUtils.getSearchQuery(filter(filterOptions, {'isVariableFilter': true}), ' AND ', variable.ignoreCase, options.skipEncode);\n // Generate query for option filter fields. This has default logical operator as OR\n optionsQuery = LiveVariableUtils.getSearchQuery(filter(filterOptions, {'isVariableFilter': undefined}), ' ' + (options.logicalOp || 'AND') + ' ', variable.ignoreCase, options.skipEncode);\n if (optionsQuery) {\n // If both variable and option query are present, merge them with AND\n query = query ? (query + ' AND ( ' + optionsQuery + ' )') : optionsQuery;\n }\n }\n orderByFields = getEvaluatedOrderBy(variable.orderBy, options.orderBy);\n orderByOptions = orderByFields ? 'sort=' + orderByFields : '';\n\n return {\n 'filter': filterOptions,\n 'sort': orderByOptions,\n 'query': query\n };\n }\n\n /* Function to check if specified field is of type date*/\n static getFieldType(fieldName, variable, relatedField?) {\n let fieldType,\n columns,\n result;\n if (variable.propertiesMap) {\n columns = variable.propertiesMap.columns || [];\n result = find(columns, obj => {\n return obj.fieldName === fieldName;\n });\n // if related field name passed, get its type from columns inside the current field\n if (relatedField && result) {\n result = find(result.columns, obj => {\n return obj.fieldName === relatedField;\n });\n }\n fieldType = result && result.type;\n }\n return fieldType;\n }\n\n // Prepare formData for blob columns\n static prepareFormData(variableDetails, rowObject) {\n const formData: any = new FormData();\n formData.rowData = clone(rowObject);\n forEach(rowObject, (colValue, colName) => {\n if (LiveVariableUtils.getFieldType(colName, variableDetails) === 'blob') {\n if (isObject(colValue)) {\n if (isArray(colValue)) {\n forEach(colValue, fileObject => {\n formData.append(colName, fileObject, fileObject.name);\n });\n } else {\n formData.append(colName, colValue, colValue.name);\n }\n }\n rowObject[colName] = colValue !== null ? '' : null;\n }\n });\n formData.append(SWAGGER_CONSTANTS.WM_DATA_JSON, new Blob([JSON.stringify(rowObject)], {\n type: 'application/json'\n }));\n return formData;\n }\n\n static traverseFilterExpressions(filterExpressions, traverseCallbackFn) {\n if (filterExpressions && filterExpressions.rules) {\n forEach(filterExpressions.rules, (filExpObj, i) => {\n if (filExpObj.rules) {\n LiveVariableUtils.traverseFilterExpressions(filExpObj, traverseCallbackFn);\n } else {\n return triggerFn(traverseCallbackFn, filterExpressions, filExpObj);\n }\n });\n }\n }\n\n /**\n * Traverses recursively the filterExpressions object and if there is any required field present with no value,\n * then we will return without proceeding further. Its upto the developer to provide the mandatory value,\n * if he wants to assign it in teh onbefore<delete/insert/update>function then make that field in\n * the filter query section as optional\n * @param filterExpressions - recursive rule Object\n * @returns {Object} object or boolean. Object if everything gets validated or else just boolean indicating failure in the validations\n */\n static getFilterExprFields(filterExpressions) {\n let isRequiredFieldAbsent = false;\n const traverseCallbackFn = (parentFilExpObj, filExpObj) => {\n if (filExpObj\n && filExpObj.required\n && ((indexOf(['null', 'isnotnull', 'empty', 'isnotempty', 'nullorempty'], filExpObj.matchMode) === -1) && filExpObj.value === '')) {\n isRequiredFieldAbsent = true;\n return false;\n }\n };\n LiveVariableUtils.traverseFilterExpressions(filterExpressions, traverseCallbackFn);\n return isRequiredFieldAbsent ? !isRequiredFieldAbsent : filterExpressions;\n }\n\n /**\n *\n * @param variable\n * @param options\n * @returns {function(*=): *} returns a function which should be called for the where clause.\n * This return function can take a function as argument. This argument function can modify the filter fields\n * before generating where clause.\n */\n static getWhereClauseGenerator(variable, options, updatedFilterFields?: any) {\n return (modifier, skipEncode?: boolean) => {\n const clonedFields = LiveVariableUtils.getFilterExprFields(getClonedObject(updatedFilterFields || variable.filterExpressions));\n // this flag skips the encoding of the query\n if (isDefined(skipEncode)) {\n options.skipEncode = skipEncode;\n }\n if (modifier) {\n // handling the scenario where variable can also have filterFields\n if (options.filterFields) {\n modifier(clonedFields, options);\n } else {\n modifier(clonedFields);\n }\n }\n return LiveVariableUtils.prepareTableOptions(variable, options, clonedFields).query;\n };\n }\n}\n\n"]}
@@ -1,5 +1,5 @@
1
1
  import { jmespath } from '@metrichor/jmespath';
2
- import _ from 'lodash';
2
+ import { startsWith, find, set, result, get } from 'lodash-es';
3
3
  import { getValidJSON } from '../utils';
4
4
  import { VARIABLE_CONSTANTS } from '../../constants/variables.constants';
5
5
  var PaginationUtils = /** @class */ (function () {
@@ -87,16 +87,16 @@ var PaginationUtils = /** @class */ (function () {
87
87
  PaginationUtils.setPaginationItems = function (item, response, res, key, resHeaders) {
88
88
  var _a;
89
89
  // if the item has body, resolve the expression against the response
90
- if (_.startsWith(item, '$body')) {
90
+ if (startsWith(item, '$body')) {
91
91
  var bodyKey = item.replace('$body.', '');
92
92
  try {
93
93
  res[key] = jmespath.search(response, bodyKey);
94
94
  }
95
95
  catch (_b) {
96
- console.warn(item + " expression needs to be corrected as per JMES guidelines");
96
+ console.warn("".concat(item, " expression needs to be corrected as per JMES guidelines"));
97
97
  }
98
98
  }
99
- else if (_.startsWith(item, '$header')) { // if the item has header, resolve the expression against the response headers
99
+ else if (startsWith(item, '$header')) { // if the item has header, resolve the expression against the response headers
100
100
  var headerKey = item.replace('$header.', '');
101
101
  var headers = Object.fromEntries((resHeaders === null || resHeaders === void 0 ? void 0 : resHeaders.headers) || resHeaders);
102
102
  var headerParams = headerKey.split('.');
@@ -104,7 +104,7 @@ var PaginationUtils = /** @class */ (function () {
104
104
  res[key] = jmespath.search(headers, headerParams[0].toLowerCase());
105
105
  }
106
106
  catch (_c) {
107
- console.warn(item + " expression needs to be corrected as per JMES guidelines");
107
+ console.warn("".concat(item, " expression needs to be corrected as per JMES guidelines"));
108
108
  }
109
109
  if ((_a = res[key]) === null || _a === void 0 ? void 0 : _a.length) {
110
110
  var headerVal = res[key].join();
@@ -131,7 +131,7 @@ var PaginationUtils = /** @class */ (function () {
131
131
  res[key] = jmespath.search(headerResp, keyName);
132
132
  }
133
133
  catch (_d) {
134
- console.warn(item + " expression needs to be corrected as per JMES guidelines");
134
+ console.warn("".concat(item, " expression needs to be corrected as per JMES guidelines"));
135
135
  }
136
136
  }
137
137
  }
@@ -175,7 +175,7 @@ var PaginationUtils = /** @class */ (function () {
175
175
  inputParam = 'page';
176
176
  }
177
177
  var paramName = paginationInfo.input[inputParam].split('.')[0];
178
- var paramObj = _.find(operationInfo.parameters, function (obj) { return obj.name === paramName; });
178
+ var paramObj = find(operationInfo.parameters, function (obj) { return obj.name === paramName; });
179
179
  // check if the variable has query params and they are not empty
180
180
  if (paramObj && paramObj.parameterType === 'query') {
181
181
  /**
@@ -224,17 +224,24 @@ var PaginationUtils = /** @class */ (function () {
224
224
  }
225
225
  var paramName = paginationInfo.input[inputParam].split('.')[0];
226
226
  // check if paramName is present in parameters of operation info
227
- var paramObj = _.find(operationInfo.parameters, function (obj) { return obj.name === paramName; });
227
+ var paramObj = find(operationInfo.parameters, function (obj) {
228
+ if (obj.parameterType === 'body' && inputParam === 'page') {
229
+ return obj.sampleValue.hasOwnProperty(paramName);
230
+ }
231
+ else {
232
+ return obj.name === paramName;
233
+ }
234
+ });
228
235
  // set page/offset and size from pagination if matched parameter's type is header
229
236
  if ((paramObj === null || paramObj === void 0 ? void 0 : paramObj.parameterType) === 'header') {
230
237
  var inputBodyParam = VARIABLE_CONSTANTS.REST_SERVICE.PREFIX.CLOAK_HEADER_KEY + paginationInfo.input[inputParam];
231
238
  if (inputParam !== 'offset') {
232
- _.set(reqObj, inputBodyParam, variable.pagination['page']);
239
+ set(reqObj, inputBodyParam, variable.pagination['page']);
233
240
  }
234
241
  else {
235
- _.set(reqObj, inputBodyParam, this.getOffsetInfo(variable, options));
242
+ set(reqObj, inputBodyParam, this.getOffsetInfo(variable, options));
236
243
  }
237
- _.set(reqObj, VARIABLE_CONSTANTS.REST_SERVICE.PREFIX.CLOAK_HEADER_KEY + paginationInfo.input.size, variable.pagination['size']);
244
+ set(reqObj, VARIABLE_CONSTANTS.REST_SERVICE.PREFIX.CLOAK_HEADER_KEY + paginationInfo.input.size, variable.pagination['size']);
238
245
  var headerKey = VARIABLE_CONSTANTS.REST_SERVICE.PREFIX.CLOAK_HEADER_KEY + paramName;
239
246
  headers[headerKey] = typeof reqObj[headerKey] === 'object' ? JSON.stringify(reqObj[headerKey]) : reqObj[headerKey];
240
247
  resObj['headers'] = headers;
@@ -242,17 +249,24 @@ var PaginationUtils = /** @class */ (function () {
242
249
  else if ((paramObj === null || paramObj === void 0 ? void 0 : paramObj.parameterType) === 'body') {
243
250
  // set page/offset and size from pagination if matched parameter's type is body
244
251
  // assign bodyVal to updated pagination info object
245
- var bodyVal = JSON.parse(paramObj.sampleValue);
246
- var bodyParam = paginationInfo.input[inputParam].split('.')[1];
252
+ var bodyVal = void 0;
253
+ try {
254
+ bodyVal = typeof paramObj.sampleValue === 'string' ? JSON.parse(paramObj.sampleValue) : paramObj.sampleValue;
255
+ }
256
+ catch (e) {
257
+ bodyVal = paramObj.sampleValue;
258
+ }
259
+ var bodyParam = inputParam === 'page' ? paginationInfo.input[inputParam] : paginationInfo.input[inputParam].split('.')[1];
247
260
  if (bodyVal && bodyVal[bodyParam]) {
248
261
  var inputBodyParam = paginationInfo.input[inputParam].split('.').splice(1).join('.');
249
262
  if (inputParam !== 'offset') {
250
- _.set(reqObj, inputBodyParam, variable.pagination['page']);
263
+ inputBodyParam = paginationInfo.input[inputParam];
264
+ set(reqObj, inputBodyParam, options.page ? options.page : 1);
251
265
  }
252
266
  else {
253
- _.set(reqObj, inputBodyParam, this.getOffsetInfo(variable, options));
267
+ set(reqObj, inputBodyParam, this.getOffsetInfo(variable, options));
254
268
  }
255
- _.set(reqObj, paginationInfo.input.size.split('.').splice(1).join('.'), variable.pagination['size']);
269
+ set(reqObj, paginationInfo.input.size.split('.').splice(1).join('.'), variable.pagination['size']);
256
270
  bodyVal[bodyParam] = reqObj[bodyParam];
257
271
  requestBody = JSON.stringify(bodyVal);
258
272
  resObj['requestBody'] = requestBody;
@@ -321,11 +335,11 @@ var PaginationUtils = /** @class */ (function () {
321
335
  var paginationInfo = this.getPaginationInfo(operationInfo, variable);
322
336
  var paginationParams = paginationInfo.input[paramName].split('.');
323
337
  var param = paginationParams[0];
324
- var sizeObj = _.find(operationInfo.parameters, function (obj) { return obj.name === param; });
325
- res[paramName] = _.result(sizeObj, 'sampleValue');
338
+ var sizeObj = find(operationInfo.parameters, function (obj) { return obj.name === param; });
339
+ res[paramName] = result(sizeObj, 'sampleValue');
326
340
  // if input value is configured from object, fetch the value from the specified path
327
341
  if (paginationParams.length > 1) {
328
- res[paramName] = _.get(getValidJSON(res[paramName]), paginationInfo.input[paramName].split('.').splice(1).join('.'));
342
+ res[paramName] = get(getValidJSON(res[paramName]), paginationInfo.input[paramName].split('.').splice(1).join('.'));
329
343
  }
330
344
  };
331
345
  /**
@@ -339,6 +353,7 @@ var PaginationUtils = /** @class */ (function () {
339
353
  * @returns {object} An object which holds the information of pagination which has to be stored on the variable
340
354
  */
341
355
  PaginationUtils.generatePaginationRes = function (operationInfo, paginationInfo, response, resHeaders, options, variable) {
356
+ var _a, _b, _c, _d;
342
357
  var res = {};
343
358
  var resOutput = paginationInfo.output;
344
359
  // If pagination type is not cursor, create the following metadata
@@ -350,6 +365,9 @@ var PaginationUtils = /** @class */ (function () {
350
365
  if (resOutput === null || resOutput === void 0 ? void 0 : resOutput.size) {
351
366
  this.setPaginationItems(resOutput.size, response, res, 'size', resHeaders);
352
367
  }
368
+ else if (((_a = paginationInfo.input) === null || _a === void 0 ? void 0 : _a.size) && paginationInfo.type === 'page') {
369
+ res['size'] = Number((_b = paginationInfo.input) === null || _b === void 0 ? void 0 : _b.size) ? (_c = paginationInfo.input) === null || _c === void 0 ? void 0 : _c.size : get(response, (_d = paginationInfo.input) === null || _d === void 0 ? void 0 : _d.size);
370
+ }
353
371
  else {
354
372
  this.setParameterVal('size', res, operationInfo, variable);
355
373
  }
@@ -371,7 +389,7 @@ var PaginationUtils = /** @class */ (function () {
371
389
 
372
390
  * If Pagination type is offset, deduce totalElements from size and options[page] else deduce from size and res[page]
373
391
  */
374
- if (_.startsWith(resOutput === null || resOutput === void 0 ? void 0 : resOutput.totalElements, '$minValue')) {
392
+ if (startsWith(resOutput === null || resOutput === void 0 ? void 0 : resOutput.totalElements, '$minValue')) {
375
393
  var totalEl = resOutput.totalElements.replace('$minValue=', '');
376
394
  var pageParam = res['page'] ? res['page'] : options['page'];
377
395
  var elRendered = res['size'] * pageParam;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.utils.js","sourceRoot":"./","sources":["src/util/variable/pagination.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { jmespath } from '@metrichor/jmespath';\n\nimport {startsWith, find, set, result, get} from 'lodash-es';\nimport { getValidJSON } from '../utils';\nimport { VARIABLE_CONSTANTS } from '../../constants/variables.constants';\n\nexport class PaginationUtils {\n /**\n * Modifies the query values with the pagination info which is retrieved from the previous API response.\n * @param variable withholds variable information \n * @param operationInfo has metadata of the variable \n * @param paginationInfo has metadata of the variable pagination data\n * @returns {void} This method does not return anything\n */\n static setPaginationQueryParams(variable, operationInfo, paginationInfo) {\n operationInfo.parameters.forEach(element => {\n // pagination input information varies based on the type\n let inputParam;\n if (paginationInfo.type === 'offset' || paginationInfo.input.offset) {\n inputParam = 'offset';\n } else {\n inputParam = 'page';\n }\n // modifies query values based on the pagination of variable\n // compare parameter name with the input parameter's starting naming key (ex: channelcontext in channelcontext.pagination)\n if (element.name === paginationInfo.input[inputParam].split('.')[0]) {\n element.sampleValue = variable.pagination['page'];\n } else if (element.name === paginationInfo.input.size.split('.')[0]) {\n element.sampleValue = variable.pagination['size'];\n }\n });\n }\n\n /**\n * Sets pagination on the variable based on the response of the triggered api call.\n * @param variable withholds variable information \n * @param response has data of the api call's response\n * @param options has info of the api's query params\n * @returns {void} This method does not return anything\n */\n static setVariablePagination(variable, response, options) {\n if (!variable.pagination) {\n variable.pagination = {\n empty: false\n };\n }\n variable.pagination['size'] = response.size;\n variable.pagination['page'] = response.page || 0;\n variable.pagination['totalElements'] = response.totalElements;\n variable.pagination['numberOfElements'] = variable.pagination['size'];\n variable.pagination['number'] = options['page'] ? options['page'] - 1 : 0;\n \n /**\n * Deduce totalPages from totalElements by size.\n * If the total elements are evenly split among the pages, assign the same to totalPages\n * Else assign totalPages + 1\n */\n variable.pagination['totalPages'] = variable.pagination['totalElements'] / variable.pagination['size'];\n if (variable.pagination['totalElements'] % variable.pagination['size'] === 0) {\n variable.pagination['totalPages'] = parseInt(variable.pagination['totalPages']);\n } else {\n variable.pagination['totalPages'] = parseInt(variable.pagination['totalPages']) + 1;\n }\n\n // If pagination type is cursor, fill next & prev\n if (response.next) {\n variable.pagination['next'] = response.next;\n variable.pagination['prev'] = response.prev;\n variable.pagination['last'] = response.next ? false : true;\n variable.pagination['first'] = response.prev ? false : true;\n } else {\n variable.pagination['first'] = variable.pagination['page'] <= 1 ? true : false;\n // calculate last based on current page index against total pages\n variable.pagination['last'] = response.hasMoreItems === '' ? !(variable.pagination['page'] < variable.pagination['totalPages']) : !response.hasMoreItems;\n }\n }\n\n /**\n * Resolves the expression given in pagination metadata's output\n * @param item has value of each key which is inside output pagination metadata\n * @param response has data of the api call's response\n * @param resHeaders has data of the api call's response headers\n * @param res holds the information of pagination which has to be stored on the variable\n * @param key has key name against which data has to be stored in pagination \n * @returns {void} This method does not return anything\n */\n static setPaginationItems(item, response, res, key, resHeaders) {\n // if the item has body, resolve the expression against the response\n if (startsWith(item, '$body')) {\n const bodyKey = item.replace('$body.', '');\n try {\n res[key] = jmespath.search(response, bodyKey);\n } catch {\n console.warn(`${item} expression needs to be corrected as per JMES guidelines`);\n }\n } else if (startsWith(item, '$header')) { // if the item has header, resolve the expression against the response headers \n const headerKey = item.replace('$header.', '');\n const headers = (<any>Object).fromEntries(resHeaders?.headers || resHeaders);\n const headerParams = headerKey.split('.');\n try {\n res[key] = jmespath.search(headers, headerParams[0].toLowerCase());\n } catch {\n console.warn(`${item} expression needs to be corrected as per JMES guidelines`);\n }\n if (res[key]?.length) { \n let headerVal = res[key].join();\n if (headerParams.length === 1) { \n /**\n * If the headerParams has only 1 key (which is not an object) name assing headerVal to the res[key]\n */\n res[key] = headerVal;\n } else { \n /**\n * If the headerParams has more than 1 key (an object), parse the stringified headerVal which is an object\n * Resolve the expression against headerVal object amd assign it to res[key]\n */\n let keyName = headerParams.slice(1).join('.');\n const headerResp = JSON.parse(headerVal);\n const specialChar = /[!@#$%^&*()+\\=\\[\\]{};':\"\\\\|,<>\\/?]+/;\n if (specialChar.test(keyName)) {\n // If key name has expression (ex: comparission expression) \n // add root key name to keyName for JMES to resolve the expression\n keyName = 'headerResp.' + keyName;\n }\n try {\n res[key] = jmespath.search(headerResp, keyName);\n } catch {\n console.warn(`${item} expression needs to be corrected as per JMES guidelines`);\n }\n }\n }\n }\n }\n\n /**\n * Return the pagination information of the service based on its existence on swagger or on the variable\n * @param variable withholds variable information \n * @param operationInfo has metadata of the variable \n * @returns {object} This method return pagination metadata\n */\n static getPaginationInfo(operationInfo, variable) {\n if (operationInfo?.paginationInfo) {\n return operationInfo.paginationInfo;\n } else {\n return variable._paginationConfig;\n }\n }\n\n /**\n * Set query params with the pagination info, if pagination metadata is present in query params\n * @param variable withholds variable information \n * @param operationInfo has metadata of the variable \n * @param options has info of the api's query params\n * @returns {void} This method does not return anything\n */\n static checkPaginationAtQuery(operationInfo, variable, options) { \n const paginationInfo = this.getPaginationInfo(operationInfo, variable);\n // If page is not first, pagination is present on the variable and paginationInfo's input meta has size set pagination in query params\n const hasPagination = options && options['page'] && paginationInfo?.input.size && variable.pagination; \n if (!hasPagination) {\n return;\n }\n\n let inputParam;\n // if pagination type is offset, asssign inputParam to offset else page\n if (paginationInfo.type === 'offset' || paginationInfo.input.offset) {\n inputParam = 'offset';\n } else {\n inputParam = 'page';\n }\n const paramName = paginationInfo.input[inputParam].split('.')[0]; \n const paramObj = find(operationInfo.parameters, function(obj) { return obj.name === paramName }); \n // check if the variable has query params and they are not empty\n if (paramObj && paramObj.parameterType === 'query') {\n /**\n * For pagination type other than offset, assign page which is recieved from options\n * For offset type, calculate page from size and options[page]\n */\n if (!paginationInfo.output?.page && paginationInfo.type !== 'offset') {\n variable.pagination['page'] = options['page'];\n } else {\n variable.pagination['page'] = this.getOffsetInfo(variable, options);\n }\n this.setPaginationQueryParams(variable, operationInfo, paginationInfo); \n }\n }\n\n /**\n * Deduces the offset information from the size and page params\n * @param variable withholds variable information \n * @param options has info of the api's query params\n * @returns {object} Returns the next offset number\n */\n static getOffsetInfo(variable, options) {\n return variable.pagination['size'] * (options['page'] ? (options['page'] - 1) : 0);\n }\n\n /**\n * Sets Pagination data on the request information\n * @param variable withholds variable information \n * @param operationInfo has metadata of the variable \n * @param options has info of the api's query params\n * @param paginationInfo has pagination information of the variable\n * @param headers has request headers\n * @param requestBody has request body\n * @param url has request url\n * @returns {object} Returns the request object which has pagination info\n */\n static setPaginationAtReq(paginationInfo, operationInfo, variable, headers, requestBody, url, options) {\n let reqObj = {};\n let inputParam;\n let resObj = {};\n // pagination input information varies based on the type\n if (paginationInfo.type === 'offset' || paginationInfo.input.offset) {\n inputParam = 'offset';\n } else {\n inputParam = 'page';\n }\n const paramName = paginationInfo.input[inputParam].split('.')[0]; \n // check if paramName is present in parameters of operation info \n const paramObj = find(operationInfo.parameters, function(obj) { \n if(obj.parameterType === 'body' && inputParam === 'page'){\n return obj.sampleValue.hasOwnProperty(paramName)\n }else{\n return obj.name === paramName\n }\n }); \n // set page/offset and size from pagination if matched parameter's type is header \n if (paramObj?.parameterType === 'header') {\n const inputBodyParam = VARIABLE_CONSTANTS.REST_SERVICE.PREFIX.CLOAK_HEADER_KEY + paginationInfo.input[inputParam]; \n if (inputParam !== 'offset') { \n set(reqObj, inputBodyParam, variable.pagination['page']);\n } else {\n set(reqObj, inputBodyParam, this.getOffsetInfo(variable, options));\n }\n set(reqObj, VARIABLE_CONSTANTS.REST_SERVICE.PREFIX.CLOAK_HEADER_KEY + paginationInfo.input.size, variable.pagination['size']);\n let headerKey = VARIABLE_CONSTANTS.REST_SERVICE.PREFIX.CLOAK_HEADER_KEY + paramName;\n headers[headerKey] = typeof reqObj[headerKey] === 'object' ? JSON.stringify(reqObj[headerKey]) : reqObj[headerKey];\n resObj['headers'] = headers;\n } else if (paramObj?.parameterType === 'body') { \n // set page/offset and size from pagination if matched parameter's type is body \n // assign bodyVal to updated pagination info object\n let bodyVal: any;\n try {\n bodyVal = typeof paramObj.sampleValue === 'string' ? JSON.parse(paramObj.sampleValue) : paramObj.sampleValue;\n } catch (e) {\n bodyVal = paramObj.sampleValue;\n }\n const bodyParam = inputParam === 'page' ? paginationInfo.input[inputParam] : paginationInfo.input[inputParam].split('.')[1]\n if (bodyVal && bodyVal[bodyParam]) {\n let inputBodyParam = paginationInfo.input[inputParam].split('.').splice(1).join('.'); \n if (inputParam !== 'offset') { \n inputBodyParam = paginationInfo.input[inputParam]; \n set(reqObj, inputBodyParam, options.page ? options.page : 1);\n } else {\n set(reqObj, inputBodyParam, this.getOffsetInfo(variable, options));\n }\n set(reqObj, paginationInfo.input.size.split('.').splice(1).join('.'), variable.pagination['size']);\n bodyVal[bodyParam] = reqObj[bodyParam];\n requestBody = JSON.stringify(bodyVal);\n resObj['requestBody'] = requestBody;\n }\n } else if (variable.pagination.next && paramObj) {\n /**\n * For cursor type pagination, if pagination info is present in the path \n * Based on whether user clicks on the next or prev button modify the url \n */\n \n if (paramObj.parameterType === 'path') {\n const urlParams = operationInfo.relativePath.split('/'),\n paramConfig = '{' + paramObj.name + '}',\n paramIndex = urlParams.indexOf(paramConfig);\n let invokeUrl;\n if (variable.pagination.isNext) {\n invokeUrl = variable.pagination.next.split('/');\n } else {\n invokeUrl = variable.pagination.prev.split('/');\n }\n\n let urlPathParmas;\n let urlPath;\n if (operationInfo.directPath) { // For direct path, as url has hostname, derivate pathname using URL object\n urlPath = new URL(url);\n urlPathParmas = urlPath.pathname.split('/');\n urlPathParmas[paramIndex] = invokeUrl[paramIndex];\n urlPath.pathname = urlPathParmas.join('/');\n url = urlPath.href;\n resObj['url'] = url;\n } else { // Else modify the url with index as +1 (following proxy pattern)\n urlPathParmas = url.split('/');\n urlPathParmas[paramIndex + 1] = invokeUrl[paramIndex];\n url = urlPathParmas.join('/');\n resObj['url'] = url;\n }\n\n } else if (paramObj.parameterType === 'query') {\n /**\n * For cursor type pagination, if pagination info is present in the query \n * Based on whether user clicks on the next or prev button modify the url's query params\n */\n const urlParams = url.split('?');\n let invokeUrl;\n if (variable.pagination.isNext) {\n invokeUrl = variable.pagination.next.split('?');\n } else {\n invokeUrl = variable.pagination.prev.split('?');\n }\n urlParams[1] = invokeUrl[1];\n url = urlParams.join('?');\n resObj['url'] = url;\n }\n }\n return resObj; \n }\n\n /**\n * Sets the pagination info recieved from api's response in the res object\n * @param operationInfo has metadata of the variable\n * @param res holds the information of pagination which has to be stored on the variable\n * @param paramName has key name against which data has to be stored in pagination\n * @param variable withholds variable information \n * @returns {void} This method does not return anything\n */\n static setParameterVal(paramName, res, operationInfo, variable) {\n const paginationInfo = this.getPaginationInfo(operationInfo, variable);\n const paginationParams = paginationInfo.input[paramName].split('.');\n const param = paginationParams[0]; \n const sizeObj = find(operationInfo.parameters, function(obj) { return obj.name === param });\n res[paramName] = result(sizeObj, 'sampleValue');\n // if input value is configured from object, fetch the value from the specified path\n if (paginationParams.length > 1) {\n res[paramName] = get(getValidJSON(res[paramName]), paginationInfo.input[paramName].split('.').splice(1).join('.'));\n }\n }\n\n /**\n * Creates res object from the response recieved from the api triggered\n * @param variable withholds variable information \n * @param operationInfo has metadata of the variable\n * @param paginationInfo has metadata of the variable's pagination\n * @param response has data of the api call's response\n * @param options has info of the api's query params\n * @param resHeaders has data of the api call's response headers\n * @returns {object} An object which holds the information of pagination which has to be stored on the variable\n */\n static generatePaginationRes(operationInfo, paginationInfo, response, resHeaders, options, variable) {\n let res = {};\n const resOutput = paginationInfo.output;\n // If pagination type is not cursor, create the following metadata \n if (!resOutput?.next) {\n /**\n * If size is present in the pagination's output metadata deduce size from api's response\n * Else deduce size from the pagination's input metadata size key\n */\n if (resOutput?.size) {\n this.setPaginationItems(resOutput.size, response, res, 'size', resHeaders);\n } else if(paginationInfo.input?.size && paginationInfo.type === 'page'){\n res['size'] = Number(paginationInfo.input?.size) ? paginationInfo.input?.size : get(response, paginationInfo.input?.size) \n }else{ \n this.setParameterVal('size', res, operationInfo, variable);\n }\n /**\n * If page is present in the pagination's output metadata deduce page from api's response\n * Else deduce page from the pagination's input metadata page key\n */\n if (resOutput?.page) {\n this.setPaginationItems(resOutput.page, response, res, 'page', resHeaders);\n } else if (paginationInfo.type !== 'offset') {\n this.setParameterVal('page', res, operationInfo, variable);\n }\n /**\n * If totalElements has $minValue in it, set totalElements as $minValue\n * If the rendered elements are greater than $minValue, set totalElements as Number of elements rendered + 1\n \n * If totalElements is present in the pagination's output metadata deduce totalElements from api's response\n \n * If Pagination type is offset, deduce totalElements from size and options[page] else deduce from size and res[page]\n */\n if (startsWith(resOutput?.totalElements, '$minValue')) {\n const totalEl = resOutput.totalElements.replace('$minValue=', '');\n const pageParam = res['page'] ? res['page'] : options['page']\n const elRendered = res['size'] * pageParam;\n if (!variable.pagination || variable.pagination['totalElements'] > elRendered) {\n res['totalElements'] = parseInt(totalEl);\n } else {\n res['totalElements'] = elRendered + 1;\n }\n } else if (resOutput?.totalElements) {\n this.setPaginationItems(resOutput.totalElements, response, res, 'totalElements', resHeaders);\n } else {\n if (paginationInfo.type === 'offset' || paginationInfo.input.offset) {\n res['totalElements'] = (res['size'] * (options['page'] ? options['page'] : 1)) + 1;\n } else {\n res['totalElements'] = (res['size'] * res['page']) + 1;\n }\n }\n /**\n * If hasMoreItems is present in the pagination's output metadata deduce hasMoreItems from api's response\n * Else assign it as empty which will be calculated at pagination object generation\n */\n if (resOutput?.hasMoreItems) {\n this.setPaginationItems(resOutput.hasMoreItems, response, res, 'hasMoreItems', resHeaders);\n } else {\n res['hasMoreItems'] = '';\n }\n } else if (resOutput) { // For cursor type pagination set next and prev keys in res object\n this.setPaginationItems(resOutput.next, response, res, 'next', resHeaders);\n this.setPaginationItems(resOutput.prev, response, res, 'prev', resHeaders);\n }\n return res;\n }\n}"]}
@@ -8,6 +8,7 @@ export declare class ServiceVariableUtils {
8
8
  */
9
9
  static constructRequestParams(variable: any, operationInfo: any, inputFields: any, options?: any): any;
10
10
  static isFileUploadRequest(variable: any): boolean;
11
+ static isFileDeleteRequest(variable: any): boolean;
11
12
  /**
12
13
  * This method returns array of query param names for variable other then page,size,sort
13
14
  * @params {params} params of the variable
@@ -4,7 +4,7 @@ import { isFileUploadSupported } from './variables.utils';
4
4
  import { getAccessToken } from './../oAuth.utils';
5
5
  import { formatDate } from "./variables.utils";
6
6
  import { PaginationUtils } from '../../util/variable/pagination.utils';
7
- import _ from 'lodash';
7
+ import { includes, toLower, get, isObject, isArray, forEach, isUndefined, join, isEmpty, isNull, concat, toUpper, map, reject } from 'lodash-es';
8
8
  /**
9
9
  * returns true if a Service variable is:
10
10
  * - for a query/procedure
@@ -13,7 +13,7 @@ import _ from 'lodash';
13
13
  * @returns {any}
14
14
  */
15
15
  var isBodyTypeQueryOrProcedure = function (variable) {
16
- return (_.includes(['QueryExecution', 'ProcedureExecution'], variable.controller)) && (_.includes(['put', 'post'], variable.operationType));
16
+ return (includes(['QueryExecution', 'ProcedureExecution'], variable.controller)) && (includes(['put', 'post'], variable.operationType));
17
17
  };
18
18
  /**
19
19
  * returns true if the variable is a Query service variable
@@ -31,17 +31,17 @@ var isQueryServiceVar = function (controller, serviceType) {
31
31
  * @param paramValue - Value which is to be appended to formdata
32
32
  */
33
33
  var getFormData = function (formData, param, paramValue) {
34
- var paramType = _.toLower(extractType(_.get(param, 'items.type') || param.type)), paramContentType = CONSTANTS.isStudioMode ? param['x-WM-CONTENT_TYPE'] : param.contentType;
34
+ var paramType = toLower(extractType(get(param, 'items.type') || param.type)), paramContentType = CONSTANTS.isStudioMode ? param['x-WM-CONTENT_TYPE'] : param.contentType;
35
35
  if (isFileUploadSupported()) {
36
36
  if ((paramType !== 'file') && (paramContentType === 'string' || !paramContentType)) {
37
- if (_.isObject(paramValue)) {
37
+ if (isObject(paramValue)) {
38
38
  paramValue = JSON.stringify(paramValue);
39
39
  }
40
40
  formData.append(param.name, paramValue);
41
41
  }
42
42
  else {
43
- if (_.isArray(paramValue) && paramType === 'file') {
44
- _.forEach(paramValue, function (fileObject) {
43
+ if (isArray(paramValue) && paramType === 'file') {
44
+ forEach(paramValue, function (fileObject) {
45
45
  formData.append(param.name, (fileObject && fileObject.content) || getBlob(fileObject), fileObject.name);
46
46
  });
47
47
  }
@@ -61,14 +61,14 @@ var getFormData = function (formData, param, paramValue) {
61
61
  var processRequestBody = function (inputData, params, variable) {
62
62
  var requestBody = {}, missingParams = [];
63
63
  var paramValue;
64
- _.forEach(params, function (param) {
65
- paramValue = _.get(inputData, param.name);
66
- if (!_.isUndefined(paramValue) && paramValue !== '' && paramValue !== null && !param.readOnly) {
64
+ forEach(params, function (param) {
65
+ paramValue = get(inputData, param.name);
66
+ if (!isUndefined(paramValue) && paramValue !== '' && paramValue !== null && !param.readOnly) {
67
67
  // ToDo - variable seperation
68
68
  paramValue = isDateTimeType(param.type) ? formatDate(paramValue, param.type, variable.dateFormatter) : paramValue;
69
69
  // Construct ',' separated string if param is not array type but value is an array
70
- if (_.isArray(paramValue) && _.toLower(extractType(param.type)) === 'string') {
71
- paramValue = _.join(paramValue, ',');
70
+ if (isArray(paramValue) && toLower(extractType(param.type)) === 'string') {
71
+ paramValue = join(paramValue, ',');
72
72
  }
73
73
  requestBody[param.name] = paramValue;
74
74
  }
@@ -91,8 +91,8 @@ var processRequestBody = function (inputData, params, variable) {
91
91
  */
92
92
  var cloakHeadersForProxy = function (headers) {
93
93
  var _headers = {}, UNCLOAKED_HEADERS = VARIABLE_CONSTANTS.REST_SERVICE.UNCLOAKED_HEADERS, CLOAK_PREFIX = VARIABLE_CONSTANTS.REST_SERVICE.PREFIX.CLOAK_HEADER_KEY;
94
- _.forEach(headers, function (val, key) {
95
- if (_.includes(UNCLOAKED_HEADERS, key.toUpperCase())) {
94
+ forEach(headers, function (val, key) {
95
+ if (includes(UNCLOAKED_HEADERS, key.toUpperCase())) {
96
96
  _headers[key] = val;
97
97
  }
98
98
  else {
@@ -123,7 +123,7 @@ var ServiceVariableUtils = /** @class */ (function () {
123
123
  }
124
124
  };
125
125
  }
126
- else if (_.isEmpty(operationInfo)) {
126
+ else if (isEmpty(operationInfo)) {
127
127
  return {
128
128
  'error': {
129
129
  'type': VARIABLE_CONSTANTS.REST_SERVICE.ERR_TYPE.METADATA_MISSING,
@@ -150,7 +150,7 @@ var ServiceVariableUtils = /** @class */ (function () {
150
150
  formData = new FormData();
151
151
  return formData;
152
152
  }
153
- securityDefnObj = _.get(operationInfo.securityDefinitions, '0');
153
+ securityDefnObj = get(operationInfo.securityDefinitions, '0');
154
154
  if (securityDefnObj) {
155
155
  switch (securityDefnObj.type) {
156
156
  case VARIABLE_CONSTANTS.REST_SERVICE.SECURITY_DEFN.OAUTH2:
@@ -204,18 +204,18 @@ var ServiceVariableUtils = /** @class */ (function () {
204
204
  withCredentials = operationInfo.proxySettings.withCredentials;
205
205
  url = isProxyCall ? relativePath : directPath;
206
206
  /* loop through all the parameters */
207
- _.forEach(operationInfo.parameters, function (param) {
207
+ forEach(operationInfo.parameters, function (param) {
208
208
  // Set params based on current workspace
209
209
  function setParamsOfChildNode() {
210
210
  if (inputFields) {
211
211
  // specific case for body type query/procedure variable with query params
212
- if (inputFields[param.name] && _.isObject(inputFields[param.name])) {
212
+ if (inputFields[param.name] && isObject(inputFields[param.name])) {
213
213
  paramValueInfo = inputFields[param.name];
214
214
  }
215
215
  else {
216
216
  paramValueInfo = inputFields;
217
217
  }
218
- params = _.get(operationInfo, ['definitions', param.type]);
218
+ params = get(operationInfo, ['definitions', param.type]);
219
219
  }
220
220
  else {
221
221
  // For Api Designer
@@ -231,13 +231,13 @@ var ServiceVariableUtils = /** @class */ (function () {
231
231
  paramValue = formatDate(paramValue, param.type, variable.dateFormatter);
232
232
  }
233
233
  // Construct ',' separated string if param is not array type but value is an array
234
- if (_.isArray(paramValue) && _.toLower(extractType(param.type)) === 'string' && variable.serviceType === VARIABLE_CONSTANTS.SERVICE_TYPE.DATA) {
235
- paramValue = _.join(paramValue, ',');
234
+ if (isArray(paramValue) && toLower(extractType(param.type)) === 'string' && variable.serviceType === VARIABLE_CONSTANTS.SERVICE_TYPE.DATA) {
235
+ paramValue = join(paramValue, ',');
236
236
  }
237
237
  switch (param.parameterType.toUpperCase()) {
238
238
  case 'QUERY':
239
239
  // Ignore null valued query params for queryService variable
240
- if (_.isNull(paramValue) && isQueryServiceVar(variable.controller, variable.serviceType)) {
240
+ if (isNull(paramValue) && isQueryServiceVar(variable.controller, variable.serviceType)) {
241
241
  break;
242
242
  }
243
243
  if (!queryParams) {
@@ -261,7 +261,7 @@ var ServiceVariableUtils = /** @class */ (function () {
261
261
  setParamsOfChildNode();
262
262
  bodyInfo = processRequestBody(paramValueInfo, params, variable);
263
263
  requestBody = bodyInfo.requestBody;
264
- requiredParamMissing = _.concat(requiredParamMissing, bodyInfo.missingParams);
264
+ requiredParamMissing = concat(requiredParamMissing, bodyInfo.missingParams);
265
265
  }
266
266
  else {
267
267
  requestBody = paramValue;
@@ -273,7 +273,7 @@ var ServiceVariableUtils = /** @class */ (function () {
273
273
  // Process query/procedure formData non-file params params
274
274
  bodyInfo = processRequestBody(paramValueInfo, params, variable);
275
275
  requestBody = getFormData(getFormDataObj(), param, bodyInfo.requestBody);
276
- requiredParamMissing = _.concat(requiredParamMissing, bodyInfo.missingParams);
276
+ requiredParamMissing = concat(requiredParamMissing, bodyInfo.missingParams);
277
277
  }
278
278
  else {
279
279
  requestBody = getFormData(getFormDataObj(), param, paramValue);
@@ -297,7 +297,7 @@ var ServiceVariableUtils = /** @class */ (function () {
297
297
  };
298
298
  }
299
299
  // Setting appropriate content-Type for request accepting request body like POST, PUT, etc
300
- if (!_.includes(WS_CONSTANTS.NON_BODY_HTTP_METHODS, _.toUpper(method))) {
300
+ if (!includes(WS_CONSTANTS.NON_BODY_HTTP_METHODS, toUpper(method))) {
301
301
  /*Based on the formData browser will automatically set the content type to 'multipart/form-data' and webkit boundary*/
302
302
  if (!(operationInfo.consumes && (operationInfo.consumes[0] === WS_CONSTANTS.CONTENT_TYPES.MULTIPART_FORMDATA))) {
303
303
  headers['Content-Type'] = (operationInfo.consumes && operationInfo.consumes[0]) || 'application/json';
@@ -305,8 +305,8 @@ var ServiceVariableUtils = /** @class */ (function () {
305
305
  }
306
306
  // if the consumes has application/x-www-form-urlencoded and
307
307
  // if the http request of given method type can have body send the queryParams as Form Data
308
- if (_.includes(operationInfo.consumes, WS_CONSTANTS.CONTENT_TYPES.FORM_URL_ENCODED)
309
- && !_.includes(WS_CONSTANTS.NON_BODY_HTTP_METHODS, (method || '').toUpperCase())) {
308
+ if (includes(operationInfo.consumes, WS_CONSTANTS.CONTENT_TYPES.FORM_URL_ENCODED)
309
+ && !includes(WS_CONSTANTS.NON_BODY_HTTP_METHODS, (method || '').toUpperCase())) {
310
310
  // remove the '?' at the start of the queryParams
311
311
  if (queryParams) {
312
312
  requestBody = (requestBody ? requestBody + '&' : '') + queryParams.substring(1);
@@ -369,13 +369,16 @@ var ServiceVariableUtils = /** @class */ (function () {
369
369
  // temporary fix, have to find proper solution for deciding weather to upload file through variable
370
370
  return variable.service === 'FileService' && variable.operation === 'uploadFile';
371
371
  };
372
+ ServiceVariableUtils.isFileDeleteRequest = function (variable) {
373
+ return variable.service === 'FileService' && variable.operation === 'deleteFile';
374
+ };
372
375
  /**
373
376
  * This method returns array of query param names for variable other then page,size,sort
374
377
  * @params {params} params of the variable
375
378
  */
376
379
  ServiceVariableUtils.excludePaginationParams = function (params) {
377
- return _.map(_.reject(params, function (param) {
378
- return _.includes(VARIABLE_CONSTANTS.PAGINATION_PARAMS, param.name);
380
+ return map(reject(params, function (param) {
381
+ return includes(VARIABLE_CONSTANTS.PAGINATION_PARAMS, param.name);
379
382
  }), function (param) {
380
383
  return param.name;
381
384
  });