@sap_oss/wdio-qmate-service 1.0.0 → 1.0.2

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 (144) hide show
  1. package/README.md +2 -1
  2. package/{test/core/package-lock.json → docs/bestPractices/spec.md} +0 -0
  3. package/docs/doc.md +176 -353
  4. package/docs/gettingStarted/setup.md +2 -2
  5. package/docs/index.md +1 -1
  6. package/docs/sections/bestPractices/authentication.md +151 -0
  7. package/docs/sections/bestPractices/dataHandling.md +61 -0
  8. package/docs/sections/bestPractices/selectors.md +44 -0
  9. package/docs/{contact.md → sections/contact.md} +0 -0
  10. package/docs/sections/features/advancedDataHandling.md +252 -0
  11. package/docs/sections/features/config.md +171 -0
  12. package/docs/sections/features/dataHandling.md +83 -0
  13. package/docs/{gettingStarted → sections/features}/selectors.md +0 -0
  14. package/docs/sections/features/spec.md +0 -0
  15. package/docs/sections/gettingStarted/config.md +18 -0
  16. package/docs/sections/gettingStarted/execution.md +7 -0
  17. package/docs/sections/gettingStarted/setup.md +9 -0
  18. package/docs/sections/gettingStarted/spec.md +31 -0
  19. package/docs/sections/gettingStarted/specs.md +19 -0
  20. package/docs/sections/support/bugReporting.md +19 -0
  21. package/docs/sections/support/knownIssuesAndLimitations.md +0 -0
  22. package/docs/sections/support/troubleshooting.md +16 -0
  23. package/docs/sources/images/fiori_form.PNG +0 -0
  24. package/docs/sources/images/sapCloud_form.PNG +0 -0
  25. package/lib/index.js +59 -82
  26. package/lib/index.js.map +1 -1
  27. package/lib/reuse/authenticator/authHandler.js +12 -23
  28. package/lib/reuse/authenticator/authHandler.js.map +1 -1
  29. package/lib/reuse/authenticator/basicUrlAuthenticator.js +21 -32
  30. package/lib/reuse/authenticator/basicUrlAuthenticator.js.map +1 -1
  31. package/lib/reuse/authenticator/customAuthenticator.js +42 -55
  32. package/lib/reuse/authenticator/customAuthenticator.js.map +1 -1
  33. package/lib/reuse/authenticator/formAuthenticator.js +37 -50
  34. package/lib/reuse/authenticator/formAuthenticator.js.map +1 -1
  35. package/lib/reuse/authenticator/plainAuthenticator.js +5 -16
  36. package/lib/reuse/authenticator/plainAuthenticator.js.map +1 -1
  37. package/lib/reuse/helper/jsDocGen.js +4 -12
  38. package/lib/reuse/helper/jsDocGen.js.map +1 -1
  39. package/lib/reuse/index.js +20 -5
  40. package/lib/reuse/index.js.map +1 -1
  41. package/lib/reuse/modules/common/navigation.js +10 -23
  42. package/lib/reuse/modules/common/navigation.js.map +1 -1
  43. package/lib/reuse/modules/common/userInteraction.js +40 -73
  44. package/lib/reuse/modules/common/userInteraction.js.map +1 -1
  45. package/lib/reuse/modules/nonUi5/assertion.js +31 -52
  46. package/lib/reuse/modules/nonUi5/assertion.js.map +1 -1
  47. package/lib/reuse/modules/nonUi5/element.js +266 -331
  48. package/lib/reuse/modules/nonUi5/element.js.map +1 -1
  49. package/lib/reuse/modules/nonUi5/navigation.js +10 -21
  50. package/lib/reuse/modules/nonUi5/navigation.js.map +1 -1
  51. package/lib/reuse/modules/nonUi5/userInteraction.js +176 -215
  52. package/lib/reuse/modules/nonUi5/userInteraction.js.map +1 -1
  53. package/lib/reuse/modules/service/odata.d.ts +106 -94
  54. package/lib/reuse/modules/service/odata.js +209 -204
  55. package/lib/reuse/modules/service/odata.js.map +1 -1
  56. package/lib/reuse/modules/service/rest.js +64 -81
  57. package/lib/reuse/modules/service/rest.js.map +1 -1
  58. package/lib/reuse/modules/ui5/assertion.js +217 -268
  59. package/lib/reuse/modules/ui5/assertion.js.map +1 -1
  60. package/lib/reuse/modules/ui5/confirmationDialog.js +17 -42
  61. package/lib/reuse/modules/ui5/confirmationDialog.js.map +1 -1
  62. package/lib/reuse/modules/ui5/control.js +12 -33
  63. package/lib/reuse/modules/ui5/control.js.map +1 -1
  64. package/lib/reuse/modules/ui5/date.js +70 -89
  65. package/lib/reuse/modules/ui5/date.js.map +1 -1
  66. package/lib/reuse/modules/ui5/element.js +121 -156
  67. package/lib/reuse/modules/ui5/element.js.map +1 -1
  68. package/lib/reuse/modules/ui5/errorDialog.js +4 -17
  69. package/lib/reuse/modules/ui5/errorDialog.js.map +1 -1
  70. package/lib/reuse/modules/ui5/footerBar.js +28 -63
  71. package/lib/reuse/modules/ui5/footerBar.js.map +1 -1
  72. package/lib/reuse/modules/ui5/mockserver.js +390 -427
  73. package/lib/reuse/modules/ui5/mockserver.js.map +1 -1
  74. package/lib/reuse/modules/ui5/navigation.js +105 -132
  75. package/lib/reuse/modules/ui5/navigation.js.map +1 -1
  76. package/lib/reuse/modules/ui5/navigationBar.js +58 -77
  77. package/lib/reuse/modules/ui5/navigationBar.js.map +1 -1
  78. package/lib/reuse/modules/ui5/qunit.js +16 -27
  79. package/lib/reuse/modules/ui5/qunit.js.map +1 -1
  80. package/lib/reuse/modules/ui5/session.js +200 -236
  81. package/lib/reuse/modules/ui5/session.js.map +1 -1
  82. package/lib/reuse/modules/ui5/table.js +79 -98
  83. package/lib/reuse/modules/ui5/table.js.map +1 -1
  84. package/lib/reuse/modules/ui5/userInteraction.js +264 -335
  85. package/lib/reuse/modules/ui5/userInteraction.js.map +1 -1
  86. package/lib/reuse/modules/util/browser.js +131 -178
  87. package/lib/reuse/modules/util/browser.js.map +1 -1
  88. package/lib/reuse/modules/util/data.js +3 -2
  89. package/lib/reuse/modules/util/data.js.map +1 -1
  90. package/lib/reuse/modules/util/file.js +71 -90
  91. package/lib/reuse/modules/util/file.js.map +1 -1
  92. package/lib/reuse/modules/util/function.js +68 -87
  93. package/lib/reuse/modules/util/function.js.map +1 -1
  94. package/lib/reuse/modules/util/system.js +22 -33
  95. package/lib/reuse/modules/util/system.js.map +1 -1
  96. package/lib/scripts/dataExchange/dataExchange.js +145 -160
  97. package/lib/scripts/dataExchange/dataExchange.js.map +1 -1
  98. package/lib/scripts/dataExchange/dataExchangeUtil.js +93 -114
  99. package/lib/scripts/dataExchange/dataExchangeUtil.js.map +1 -1
  100. package/lib/scripts/hooks/after.js +3 -14
  101. package/lib/scripts/hooks/after.js.map +1 -1
  102. package/lib/scripts/hooks/before.js +9 -20
  103. package/lib/scripts/hooks/before.js.map +1 -1
  104. package/lib/scripts/hooks/beforeSession.js +7 -18
  105. package/lib/scripts/hooks/beforeSession.js.map +1 -1
  106. package/lib/scripts/hooks/onComplete.js +2 -13
  107. package/lib/scripts/hooks/onComplete.js.map +1 -1
  108. package/lib/scripts/hooks/onPrepare.js +9 -20
  109. package/lib/scripts/hooks/onPrepare.js.map +1 -1
  110. package/lib/scripts/hooks/utils/addLocatorCommands.js +109 -172
  111. package/lib/scripts/hooks/utils/addLocatorCommands.js.map +1 -1
  112. package/lib/scripts/hooks/utils/browserLog.js +18 -31
  113. package/lib/scripts/hooks/utils/browserLog.js.map +1 -1
  114. package/lib/scripts/hooks/utils/dataExchangeCommands.js +13 -24
  115. package/lib/scripts/hooks/utils/dataExchangeCommands.js.map +1 -1
  116. package/lib/scripts/hooks/utils/decryption.d.ts +1 -1
  117. package/lib/scripts/hooks/utils/decryption.js +33 -14
  118. package/lib/scripts/hooks/utils/decryption.js.map +1 -1
  119. package/lib/scripts/hooks/utils/lib.js +249 -272
  120. package/lib/scripts/hooks/utils/lib.js.map +1 -1
  121. package/lib/scripts/hooks/utils/locatorCommands.js +154 -183
  122. package/lib/scripts/hooks/utils/locatorCommands.js.map +1 -1
  123. package/mkdocs.yml +16 -3
  124. package/package.json +14 -11
  125. package/test/authenticator/staticLogin/specs/custom.spec.js +30 -1
  126. package/test/reuse/nonUi5/element/getById.spec.js +17 -0
  127. package/test/reuse/service/odata/get.spec.js +61 -0
  128. package/test/reuse/service/odata/getEntitySet.spec.js +87 -0
  129. package/test/reuse/service/odata/test.odata.conf.js +15 -0
  130. package/test/reuse/ui5/confirmationDialog/clickButton.spec.js +87 -0
  131. package/test/reuse/ui5/confirmationDialog/test.confirmationDialog.conf.js +2 -1
  132. package/test/reuse/ui5/element/test.element.conf.js +2 -1
  133. package/test/reuse/ui5/element/waitForAll.spec.js +46 -0
  134. package/test/reuse/ui5/userInteraction/clearAndFillSmartFieldInputAndRetry.spec.js +28 -0
  135. package/test/reuse/ui5/userInteraction/test.userInteraction.conf.js +1 -0
  136. package/test/reuse/util/browser/switchToNewWindow.spec.js +2 -2
  137. package/test/reuse/util/console/console.spec.js +27 -0
  138. package/test/reuse/util/console/test.console.conf.js +12 -0
  139. package/test/reuse/util/data/data/test.secure.json +7 -3
  140. package/test/reuse/util/data/getSecureData.spec.js +9 -3
  141. package/test/reuse/util/file/pdfParser.spec.js +33 -8
  142. package/test/reuse/util/system/system.spec.js +16 -0
  143. package/test/reuse/util/system/test.system.conf.js +12 -0
  144. package/tsconfig.json +1 -1
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.OData = void 0;
13
4
  /**
@@ -32,9 +23,9 @@ class OData {
32
23
  * @description Initializes The service to work with.
33
24
  * XCSRF-Token will be automatically fetched and stored in the service instance.
34
25
  * Cookies will also automatically assembled and stored in the service instance.
35
- * @param {url} url - The base url of the service
36
- * @param {username} username - The username.
37
- * @param {password} password - The password of the username.
26
+ * @param {String} url - The base url of the service
27
+ * @param {String} username - The username.
28
+ * @param {String} password - The password of the username.
38
29
  * @param {boolean} [loggingEnabled=false] - The boolean param to control whether user wants to see logs during build run
39
30
  * @param {Object} [params={}] - JSON object with key-value pairs of parameter names and corresponding values
40
31
  * by default we send {
@@ -43,6 +34,9 @@ class OData {
43
34
  * "language": "EN"
44
35
  * }
45
36
  * These can be overridden by sending params as JSON object with additional params as shown in example
37
+ * @param {String} [authType] - authentication type, in case you want to override the default
38
+ * SAML authentication. Set this to "basic", to use basic authentication for communication users for whom SAML login doesn't work.
39
+ * Or "none" for no authentication.
46
40
  * @returns {Object} The initialized service object.
47
41
  * @example const url = "https://hbr-715.wdf.sap.corp/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV/";
48
42
  * const params = {
@@ -51,264 +45,275 @@ class OData {
51
45
  * }
52
46
  * srv = await service.odata.init(url, user, password, false, params);
53
47
  */
54
- init(url, username, password, loggingEnabled = false, params = {}) {
55
- return __awaiter(this, void 0, void 0, function* () {
56
- const logger = {
57
- "trace": () => { },
58
- "debug": console.debug,
59
- "info": console.info,
60
- "warn": console.warn,
61
- "error": console.error
62
- };
63
- const parameters = {
64
- "client": "715",
65
- "documentation": ["heading", "quickinfo"],
66
- "language": "EN"
67
- };
68
- if (params) {
69
- // @ts-ignore
70
- Object.keys(params).forEach((key) => parameters[key] = params[key]);
71
- }
72
- const srv = new this.Service({
73
- "logger": loggingEnabled ? logger : "",
74
- "url": url,
75
- "auth": {
76
- "username": username,
77
- "password": password
78
- },
79
- "parameters": parameters,
80
- "strict": false // ignore non critical errors, e.g. orphaned annotations
81
- });
82
- yield srv.init;
83
- return srv;
48
+ async init(url, username, password, loggingEnabled = false, params = {}, authType = "") {
49
+ const logger = {
50
+ "trace": () => { },
51
+ "debug": console.debug,
52
+ "info": console.info,
53
+ "warn": console.warn,
54
+ "error": console.error
55
+ };
56
+ const parameters = {
57
+ "client": "715",
58
+ "documentation": ["heading", "quickinfo"],
59
+ "language": "EN"
60
+ };
61
+ if (params) {
62
+ // @ts-ignore
63
+ Object.keys(params).forEach((key) => parameters[key] = params[key]);
64
+ }
65
+ const auth = {
66
+ "username": username,
67
+ "password": password
68
+ };
69
+ if (authType) {
70
+ auth["type"] = authType;
71
+ }
72
+ const srv = new this.Service({
73
+ "logger": loggingEnabled ? logger : "",
74
+ "url": url,
75
+ "auth": auth,
76
+ "parameters": parameters,
77
+ "strict": false // ignore non critical errors, e.g. orphaned annotations
84
78
  });
79
+ await srv.init;
80
+ return srv;
85
81
  }
86
82
  ;
87
83
  /**
88
84
  * @function get
89
85
  * @memberOf service.odata
90
86
  * @description makes a GET request.
91
- * @param {service} service - Instance of the service
92
- * @param {entitySet} entitySet - The entitySet you want to GET from.
93
- * @param {keys} keys - The required keys for the GET-request.
87
+ * @param {Object} srv - Instance of the service
88
+ * @param {String} entitySet - The entitySet you want to GET from.
89
+ * @param {Object} keys - The required keys for the GET-request.
94
90
  * @example const url = "https://qs9-715.wdf.sap.corp/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV/";
95
91
  * srv = await service.odata.init(url, user, password);
92
+ * const keys = {
93
+ * PurchaseOrder: "4100000000"
94
+ * };
95
+ * const res = await service.odata.get(srv, "A_PurchaseOrder", keys);
96
96
  */
97
- get(srv, entitySet, options) {
98
- return __awaiter(this, void 0, void 0, function* () {
99
- return srv[entitySet].get(options);
100
- });
97
+ async get(srv, entitySet, keys) {
98
+ const entity = srv[entitySet];
99
+ if (!entity) {
100
+ throw new Error(`No entity set '${entitySet}' available in service`);
101
+ }
102
+ return entity.get(keys);
101
103
  }
102
104
  ;
103
105
  /**
104
106
  * @function getEntitySet
105
107
  * @memberOf service.odata
106
108
  * @description GET's the EntitySet collection.
107
- * @param {service} service - Instance of the service
108
- * @param {entitySet} entitySet - The entitySet you want to GET from.
109
+ * @param {Object} srv - Instance of the service
110
+ * @param {String} entitySet - The entitySet you want to GET from.
109
111
  * @param {String} [filterString] - The filters to be applied on get query
110
112
  * @param {String} [selectionFields] - comma separated list of fields to be selected
111
113
  * @param {Object} [queryParams] - JSON object of key value pairs of custom query parameters.
112
114
  * @returns {Array} - Result set array
113
- * @example const url = "https://qs9-715.wdf.sap.corp/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV/";
115
+ * @example
116
+ * const url = "https://qs9-715.wdf.sap.corp/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV/";
114
117
  * srv = await service.odata.init(url, user, password);
115
118
  *
116
119
  * let filterString = "Status eq '01'";
117
- * let res = await service.odata.getEntitySet(service, "A_PurchaseOrder", filterString);
120
+ * let res = await service.odata.getEntitySet(srv, "A_PurchaseOrder", filterString);
118
121
  *
119
122
  * let select = "CentralPurchaseContract,PurchasingProcessingStatus" ;
120
- * let res = await service.odata.getEntitySet(service, "A_PurchaseOrder", filterString, select);
123
+ * let res = await service.odata.getEntitySet(srv, "A_PurchaseOrder", filterString, select);
121
124
  *
122
125
  * let queryParams = {
123
- * "$top" : 5,
124
- * "$skip" : 10,
126
+ * "$top" : 5,
127
+ * "$skip" : 10,
125
128
  * };
126
- * let res = await service.odata.getEntitySet(service, "A_PurchaseOrder", filterString, select, queryParams);
129
+ * let res = await service.odata.getEntitySet(srv, "A_PurchaseOrder", filterString, select, queryParams);
127
130
  */
128
- getEntitySet(srv, entitySet, filterString = "", selectionFields = "", queryParams = {}) {
129
- return __awaiter(this, void 0, void 0, function* () {
130
- if (!srv) {
131
- throw new Error("Service is not defined. Please make sure to initialize and pass the service.");
131
+ async getEntitySet(srv, entitySet, filterString = "", selectionFields = "", queryParams = {}) {
132
+ if (!srv) {
133
+ throw new Error("Service is not defined. Please make sure to initialize and pass the service.");
134
+ }
135
+ else {
136
+ let entity = srv[entitySet];
137
+ if (!entity) {
138
+ throw new Error(`No entity set '${entitySet}' available in service`);
132
139
  }
133
- else {
134
- let entity = srv[entitySet];
135
- if (filterString) {
136
- entity = entity.filter(filterString);
137
- }
138
- if (selectionFields) {
139
- entity = entity.select(selectionFields.split(","));
140
- }
141
- if (queryParams) {
142
- Object.keys(queryParams).forEach((key) => {
143
- entity = entity.queryParameter(key, queryParams[key]);
144
- });
145
- }
146
- const res = entity.get();
147
- return res;
140
+ if (filterString) {
141
+ entity = entity.filter(filterString);
148
142
  }
149
- });
143
+ if (selectionFields) {
144
+ entity = entity.select(selectionFields.split(","));
145
+ }
146
+ if (queryParams) {
147
+ Object.keys(queryParams).forEach((key) => {
148
+ entity = entity.queryParameter(key, queryParams[key]);
149
+ });
150
+ }
151
+ const res = entity.get();
152
+ return res;
153
+ }
150
154
  }
151
155
  ;
152
156
  /**
153
157
  * @function isFeatureToggleActivated
154
158
  * @memberOf service.odata
155
159
  * @description checks if a feature toggle is switched on or off
156
- * @param {service} service - Instance of the service
157
- * @param {featureName} featureName - The name of the feature you want know the status of.
160
+ * @param {Object} srv - Instance of the service
161
+ * @param {String} featureName - The name of the feature you want know the status of.
158
162
  * @example const url = browser.params.systemUrl + "/sap/opu/odata/SAP/CA_FM_FEATURE_TOGGLE_STATUS_SRV/";
159
- * service = await service.odata.init(url, user, password);
160
- * let isFeatureActive = await service.odata.isFeatureToggleActivated(service, "MM_PUR_PO_BATCHES_IN_MANAGE_PO");
163
+ * const srv = await service.odata.init(url, user, password);
164
+ * let isFeatureActive = await service.odata.isFeatureToggleActivated(srv, "MM_PUR_PO_BATCHES_IN_MANAGE_PO");
161
165
  */
162
- isFeatureToggleActivated(srv, featureName) {
163
- return __awaiter(this, void 0, void 0, function* () {
164
- const res = yield this.getEntitySet(srv, "ToggleStatusSet");
165
- for (const featureEntity of Object.values(res)) {
166
- // @ts-ignore
167
- if (featureEntity.Featureid === featureName) {
168
- //feature toggle is disabled if found
169
- util.console.info(`Feature Toggle "${featureName}" is disabled.`);
170
- return false;
171
- }
166
+ async isFeatureToggleActivated(srv, featureName) {
167
+ const res = await this.getEntitySet(srv, "ToggleStatusSet");
168
+ for (const featureEntity of Object.values(res)) {
169
+ // @ts-ignore
170
+ if (featureEntity.Featureid === featureName) {
171
+ //feature toggle is disabled if found
172
+ util.console.info(`Feature Toggle "${featureName}" is disabled.`);
173
+ return false;
172
174
  }
173
- //feature toggle is enabled if NOT found
174
- util.console.info(`Feature Toggle "${featureName}" is enabled.`);
175
- return true;
176
- });
175
+ }
176
+ //feature toggle is enabled if NOT found
177
+ util.console.info(`Feature Toggle "${featureName}" is enabled.`);
178
+ return true;
177
179
  }
178
180
  ;
179
181
  /**
180
182
  * @function post
181
-
182
183
  * @memberOf service.odata
183
184
  * @description makes a POST request.
184
- * @param {service} service - Instance of the service
185
- * @param {entitySet} entitySet - The entitySet you want to POST against.
186
- * @param {payload} payload - The payload for the POST-request.
187
- * @example let keys = {
188
- * "PurchaseOrder": "4500007108",
189
- * "DraftUUID": "00000000-0000-0000-0000-000000000000",
190
- * "IsActiveEntity": "true"
191
- * };
192
- * let res = await service.odata.get(service, "A_PurchaseOrder", keys);
185
+ * @param {Object} srv - Instance of the service
186
+ * @param {String} entitySet - The entitySet you want to POST against.
187
+ * @param {Object} payload - The payload for the POST-request.
188
+ * @example
189
+ * let payload = {
190
+ * "PurchaseOrder": "4500007108",
191
+ * "DraftUUID": "00000000-0000-0000-0000-000000000000",
192
+ * "IsActiveEntity": "true"
193
+ * };
194
+ * let res = await service.odata.post(srv, "A_PurchaseOrder", payload);
193
195
  */
194
- post(srv, entitySet, payload) {
195
- return __awaiter(this, void 0, void 0, function* () {
196
- return srv[entitySet].post(payload);
197
- });
196
+ async post(srv, entitySet, payload) {
197
+ const entity = srv[entitySet];
198
+ if (!entity) {
199
+ throw new Error(`No entity set '${entitySet}' available in service`);
200
+ }
201
+ return entity.post(payload);
198
202
  }
199
203
  ;
200
204
  /**
201
205
  * @function merge
202
206
  * @memberOf service.odata
203
207
  * @description makes a MERGE request.
204
- * @param {service} service - Instance of the service
205
- * @param {entitySet} entitySet - The entitySet you want to MERGE in.
206
- * @param {payload} payload - The payload for the MERGE-request.
207
- * @example let res = await service.odata.merge(service, "A_PurchaseOrderScheduleLine", {
208
- * "PurchasingDocument": "4500007108",
209
- * "PurchasingDocumentItem": "10",
210
- * "ScheduleLine": "1",
211
- * "ScheduleLineDeliveryDate": new Date()
212
- * };
213
- * let res = await service.odata.get(service, "A_PurchaseOrder", keys);
208
+ * @param {Object} srv - Instance of the service
209
+ * @param {String} entitySet - The entitySet you want to MERGE in.
210
+ * @param {Object} payload - The payload for the MERGE-request.
211
+ * @example
212
+ * let res = await service.odata.merge(srv, "A_PurchaseOrderScheduleLine", {
213
+ * "PurchasingDocument": "4500007108",
214
+ * "PurchasingDocumentItem": "10",
215
+ * "ScheduleLine": "1",
216
+ * "ScheduleLineDeliveryDate": new Date()
217
+ * };
214
218
  */
215
- merge(srv, entitySet, payload) {
216
- return __awaiter(this, void 0, void 0, function* () {
217
- const res = yield srv[entitySet].merge(payload);
218
- return res;
219
- });
219
+ async merge(srv, entitySet, payload) {
220
+ const entity = srv[entitySet];
221
+ if (!entity) {
222
+ throw new Error(`No entity set '${entitySet}' available in service`);
223
+ }
224
+ const res = await entity.merge(payload);
225
+ return res;
220
226
  }
221
227
  ;
222
228
  /**
223
- * @function delete
224
- * @memberOf service.odata
225
- * @description makes a DELETE request.
226
- * @param {service} service - Instance of the service
227
- * @param {entitySet} entitySet - The entitySet you want to DELETE.
228
- * @param {options} options - The options for the DELETE-request.
229
- * @example let options = {
230
- "PurchaseOrder": "",
231
- "DraftUUID": draftUUID,
232
- "IsActiveEntity": false
233
- };
234
- await service.odata.delete(service, "C_PurchaseOrderTP", options);
235
- */
236
- delete(srv, entitySet, options) {
237
- return __awaiter(this, void 0, void 0, function* () {
238
- const res = yield srv[entitySet].delete(options);
239
- return res;
240
- });
229
+ * @function delete
230
+ * @memberOf service.odata
231
+ * @description makes a DELETE request.
232
+ * @param {Object} srv - Instance of the service
233
+ * @param {String} entitySet - The entitySet you want to DELETE.
234
+ * @param {Object} options - The options for the DELETE-request.
235
+ * @example
236
+ * let options = {
237
+ * "PurchaseOrder": "",
238
+ * "DraftUUID": draftUUID,
239
+ * "IsActiveEntity": false
240
+ * };
241
+ * await service.odata.delete(srv, "C_PurchaseOrderTP", options);
242
+ */
243
+ async delete(srv, entitySet, options) {
244
+ const entity = srv[entitySet];
245
+ if (!entity) {
246
+ throw new Error(`No entity set '${entitySet}' available in service`);
247
+ }
248
+ const res = await entity.delete(options);
249
+ return res;
241
250
  }
242
251
  ;
243
252
  /**
244
- * @function callFunctionImport
245
- * @memberOf service.odata
246
- * @description makes a function import request on an OData service.
247
- * @param {service} service - Instance of the service
248
- * @param {entitySet} functionImportName - Name of Function Import
249
- * @param {options} options - parameters for function import
250
- * @example const options = {
251
- CentralRequestForQuotation : "7500000026",
252
- Supplier : "100006"
253
- };
254
- const res = await service.odata.callFunctionImport(service, functionImportName, options);
255
- */
256
- callFunctionImport(srv, functionImportName, options) {
257
- return __awaiter(this, void 0, void 0, function* () {
258
- const functionImport = srv.functionImports[functionImportName];
259
- const res = yield functionImport.call(options);
260
- return res;
261
- });
253
+ * @function callFunctionImport
254
+ * @memberOf service.odata
255
+ * @description makes a function import request on an OData service.
256
+ * @param {Object} srv - Instance of the service
257
+ * @param {String} functionImportName - Name of Function Import
258
+ * @param {Object} options - parameters for function import
259
+ * @example
260
+ * const options = {
261
+ * CentralRequestForQuotation : "7500000026",
262
+ * Supplier : "100006"
263
+ * };
264
+ * const res = await service.odata.callFunctionImport(srv, "Cancel", options);
265
+ */
266
+ async callFunctionImport(srv, functionImportName, options) {
267
+ const functionImport = srv.functionImports[functionImportName];
268
+ const res = await functionImport.call(options);
269
+ return res;
262
270
  }
263
271
  ;
264
272
  /**
265
- * @function getOutputManagementPdfStream
266
- * @memberOf service.odata
267
- * @description returns a stream of output management pdf file.
268
- * @param {outputConf} outputConf - Configuration for the output management pdf.
269
- * @param {url} url - system url
270
- * @param {username} - username for login
271
- * @param {password} - password for login
272
- * @example const outputConf = {
273
- ApplObjectType: "REQUEST_FOR_QUOTATION",
274
- ApplObjectId: "7000002653",
275
- ItemId: "1"
276
- };
277
- const pdfStream = await service.odata.getOutputManagementPdfStream(outputConf, url, user, password);
278
-
279
- */
280
- getOutputManagementPdfStream(outputConf, url, username, password) {
281
- return __awaiter(this, arguments, void 0, function* () {
282
- if (arguments.length < 4) {
283
- throw new Error("getOutputManagementPdfStream Failed. Please send correct parameters");
284
- }
285
- const uri = new this.urlLib(url);
286
- url = uri.origin + "/sap/opu/odata/sap/CA_OC_OUTPUT_REQUEST_SRV/";
287
- const srv = yield service.odata.init(url, username, password);
288
- //await service.init;
289
- const dataBuffer = yield srv.Items.key(outputConf).GetDocument.get();
290
- return dataBuffer;
291
- });
273
+ * @function getOutputManagementPdfStream
274
+ * @memberOf service.odata
275
+ * @description returns a stream of output management pdf file.
276
+ * @param {Object} outputConf - Configuration for the output management pdf.
277
+ * @param {String} url - system url
278
+ * @param {String} username - username for login
279
+ * @param {String} password - password for login
280
+ * @example
281
+ * const outputConf =
282
+ * ApplObjectType: "REQUEST_FOR_QUOTATION",
283
+ * ApplObjectId: "7000002653",
284
+ * ItemId: "1"
285
+ * };
286
+ * const pdfStream = await service.odata.getOutputManagementPdfStream(outputConf, url, user, password);
287
+ */
288
+ async getOutputManagementPdfStream(outputConf, url, username, password) {
289
+ if (arguments.length < 4) {
290
+ throw new Error("getOutputManagementPdfStream Failed. Please send correct parameters");
291
+ }
292
+ const uri = new this.urlLib(url);
293
+ url = uri.origin + "/sap/opu/odata/sap/CA_OC_OUTPUT_REQUEST_SRV/";
294
+ const srv = await service.odata.init(url, username, password);
295
+ const dataBuffer = await srv.Items.key(outputConf).GetDocument.get();
296
+ return dataBuffer;
292
297
  }
293
298
  ;
294
299
  /**
295
- * @function readPdfFromDirectUrl
296
- * @memberOf service.odata
297
- * @description returns a stream of pdf file which is part of attachment.
298
- * @param {url} url - system url
299
- * @param {username} - [OPTIONAL] username for login
300
- * @param {password} - [OPTIONAL] password for login
301
- * @example const url = "https://domain.com/getPdfFile";
302
- const pdfStream = await service.odata.readPdfFromDirectUrl(url, "username", "Password");
303
- */
304
- readPdfFromDirectUrl(url, username, password, isSaml = false) {
305
- return __awaiter(this, void 0, void 0, function* () {
306
- if (url === undefined || url === null) {
307
- throw new Error("Function 'readPdfFromDirectUrl' Failed. Please provide valid url as first parameter");
308
- }
309
- const res = yield this._doRequest(url, username, password, isSaml);
310
- return res;
311
- });
300
+ * @function readPdfFromDirectUrl
301
+ * @memberOf service.odata
302
+ * @description returns a stream of pdf file which is part of attachment.
303
+ * @param {String} url - system url
304
+ * @param {String} [username] - username for login
305
+ * @param {String} [password] - password for login
306
+ * @param {Boolean} [isSaml=false] - use SAML login if true
307
+ * @example
308
+ * const url = "https://domain.com/getPdfFile";
309
+ * const pdfStream = await service.odata.readPdfFromDirectUrl(url, "username", "Password");
310
+ */
311
+ async readPdfFromDirectUrl(url, username, password, isSaml = false) {
312
+ if (url === undefined || url === null) {
313
+ throw new Error("Function 'readPdfFromDirectUrl' Failed. Please provide valid url as first parameter");
314
+ }
315
+ const res = await this._doRequest(url, username, password, isSaml);
316
+ return res;
312
317
  }
313
318
  ;
314
319
  // =================================== HELPER ===================================
@@ -1 +1 @@
1
- {"version":3,"file":"odata.js","sourceRoot":"","sources":["../../../../src/reuse/modules/service/odata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odata.js","sourceRoot":"","sources":["../../../../src/reuse/modules/service/odata.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AACb;;;GAGG;AACH,MAAa,KAAK;IAMhB;QALS,eAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7B,WAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;QAC5B,SAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAI9B,IAAI;YACF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,uCAAuC,CAAC,CAAC;SACjE;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qGAAqG,CAAC,CAAC;SAC3H;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,KAAK,CAAC,IAAI,CAAE,GAAW,EAAE,QAAgB,EAAE,QAAgB,EAAE,cAAc,GAAG,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,WAAmB,EAAE;QACrH,MAAM,MAAM,GAAG;YACb,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;YACjB,OAAO,EAAE,OAAO,CAAC,KAAK;YACtB,MAAM,EAAE,OAAO,CAAC,IAAI;YACpB,MAAM,EAAE,OAAO,CAAC,IAAI;YACpB,OAAO,EAAE,OAAO,CAAC,KAAK;SACvB,CAAC;QAEF,MAAM,UAAU,GAAG;YACjB,QAAQ,EAAE,KAAK;YACf,eAAe,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;YACzC,UAAU,EAAE,IAAI;SACjB,CAAC;QAEF,IAAI,MAAM,EAAE;YACV,aAAa;YACb,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SACrE;QAED,MAAM,IAAI,GAAQ;YAChB,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,QAAQ;SACrB,CAAC;QAEF,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;SACzB;QACD,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC;YAC3B,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACtC,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE,UAAU;YACxB,QAAQ,EAAE,KAAK,CAAC,wDAAwD;SACzE,CAAC,CAAC;QACH,MAAM,GAAG,CAAC,IAAI,CAAC;QAEf,OAAO,GAAG,CAAC;IACb,CAAC;IAAA,CAAC;IAEF;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,GAAG,CAAE,GAAQ,EAAE,SAAiB,EAAE,IAAS;QAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,SAAS,wBAAwB,CAAC,CAAC;SACtE;QACD,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAA,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,KAAK,CAAC,YAAY,CAAE,GAAQ,EAAE,SAAiB,EAAE,eAAuB,EAAE,EAAE,kBAA0B,EAAE,EAAE,cAAmB,EAAE;QAC7H,IAAI,CAAC,GAAG,EAAE;YACR,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;SACjG;aAAM;YACL,IAAI,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5B,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,SAAS,wBAAwB,CAAC,CAAC;aACtE;YACD,IAAI,YAAY,EAAE;gBAChB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aACtC;YACD,IAAI,eAAe,EAAE;gBACnB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;aACpD;YACD,IAAI,WAAW,EAAE;gBACf,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBACvC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxD,CAAC,CAAC,CAAC;aACJ;YACD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YACzB,OAAO,GAAG,CAAC;SACZ;IACH,CAAC;IAAA,CAAC;IAEF;;;;;;;;;OASG;IACH,KAAK,CAAC,wBAAwB,CAAE,GAAQ,EAAE,WAAmB;QAC3D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QAC5D,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YAC9C,aAAa;YACb,IAAI,aAAa,CAAC,SAAS,KAAK,WAAW,EAAE;gBAC3C,qCAAqC;gBACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,WAAW,gBAAgB,CAAC,CAAC;gBAClE,OAAO,KAAK,CAAC;aACd;SACF;QACD,wCAAwC;QACxC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,WAAW,eAAe,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IAAA,CAAC;IAEF;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,IAAI,CAAE,GAAQ,EAAE,SAAiB,EAAE,OAAY;QACnD,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,SAAS,wBAAwB,CAAC,CAAC;SACtE;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAAA,CAAC;IAEF;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,KAAK,CAAE,GAAQ,EAAE,SAAiB,EAAE,OAAY;QACpD,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,SAAS,wBAAwB,CAAC,CAAC;SACtE;QACD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO,GAAG,CAAC;IACb,CAAC;IAAA,CAAC;IAEF;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,MAAM,CAAE,GAAQ,EAAE,SAAiB,EAAE,OAAY;QACrD,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,SAAS,wBAAwB,CAAC,CAAC;SACtE;QACD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,GAAG,CAAC;IACb,CAAC;IAAA,CAAC;IAEF;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,kBAAkB,CAAE,GAAQ,EAAE,kBAA0B,EAAE,OAAY;QAC1E,MAAM,cAAc,GAAG,GAAG,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;QAE/D,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,GAAG,CAAC;IACb,CAAC;IAAA,CAAC;IAEF;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,4BAA4B,CAAE,UAAe,EAAE,GAAW,EAAE,QAAgB,EAAE,QAAgB;QAClG,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;SACxF;QACD,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjC,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,8CAA8C,CAAC;QAClE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;QACrE,OAAO,UAAU,CAAC;IACpB,CAAC;IAAA,CAAC;IAEF;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,oBAAoB,CAAE,GAAW,EAAE,QAAgB,EAAE,QAAgB,EAAE,MAAM,GAAG,KAAK;QACzF,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACrC,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAC;SACxG;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACnE,OAAO,GAAG,CAAC;IACb,CAAC;IAAA,CAAC;IAEF,iFAAiF;IACjF,UAAU,CAAC,GAAW,EAAE,QAAgB,EAAE,QAAgB,EAAE,MAAe;QACzE,wEAAwE;QACxE,MAAM,OAAO,GAAS;YACpB,QAAQ,EAAE,IAAI;YACd,cAAc,EAAE,iBAAiB;SAClC,CAAC;QACF,IAAI,QAAQ,IAAI,QAAQ,EAAE;YACxB,IAAI,MAAM,EAAE;gBACV,OAAO,CAAC,IAAI,GAAG,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;aAC1C;iBAAM;gBACL,OAAO,CAAC,IAAI,GAAG;oBACb,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,QAAQ;iBACf,CAAC;aACH;SAEF;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,KAAU,EAAE,GAAQ,EAAE,IAAS;gBACnE,IAAI,CAAC,KAAK,EAAE;oBACV,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;qBAAM;oBACL,MAAM,CAAC,KAAK,CAAC,CAAC;iBACf;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CAEF;AA3VD,sBA2VC;AAAA,CAAC;AACF,kBAAe,IAAI,KAAK,EAAE,CAAC"}