@sap_oss/wdio-qmate-service 2.12.1 → 2.12.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.
- package/docs/doc.md +160 -75
- package/lib/reuse/modules/flp/userLocks.d.ts +99 -1
- package/lib/reuse/modules/flp/userLocks.js +114 -8
- package/lib/reuse/modules/flp/userLocks.js.map +1 -1
- package/lib/reuse/modules/flp/userSettings.d.ts +161 -2
- package/lib/reuse/modules/flp/userSettings.js +172 -13
- package/lib/reuse/modules/flp/userSettings.js.map +1 -1
- package/package.json +1 -1
package/docs/doc.md
CHANGED
|
@@ -19,6 +19,9 @@
|
|
|
19
19
|
<dt><a href="#mobile">mobile</a></dt>
|
|
20
20
|
<dd><p>Global namespace for mobile modules.</p>
|
|
21
21
|
</dd>
|
|
22
|
+
<dt><a href="#flp">flp</a></dt>
|
|
23
|
+
<dd><p>Global namespace for Fiori Launchpad (FLP) modules.</p>
|
|
24
|
+
</dd>
|
|
22
25
|
</dl>
|
|
23
26
|
|
|
24
27
|
<a name="common"></a>
|
|
@@ -45,7 +48,7 @@ Global namespace for common modules.
|
|
|
45
48
|
* [.getNextYear([format])](#common.date.getNextYear) ⇒ <code>String</code>
|
|
46
49
|
* [.getPreviousYear([format])](#common.date.getPreviousYear) ⇒ <code>String</code>
|
|
47
50
|
* [.getSpecific(date, [format])](#common.date.getSpecific) ⇒ <code>String</code>
|
|
48
|
-
* [.calculate([date], [format])](#common.date.calculate) ⇒ <code>String</code>
|
|
51
|
+
* [.calculate([date], [format])](#common.date.calculate) ⇒ <code>String</code> \| <code>Date</code>
|
|
49
52
|
* [.navigation](#common.navigation)
|
|
50
53
|
* [.navigateToUrl(url)](#common.navigation.navigateToUrl)
|
|
51
54
|
* [.navigateToUrlAndRetry(url, [retries], [interval])](#common.navigation.navigateToUrlAndRetry)
|
|
@@ -192,7 +195,7 @@ await common.assertion.expectUrlToBe("www.sap.com");
|
|
|
192
195
|
* [.getNextYear([format])](#common.date.getNextYear) ⇒ <code>String</code>
|
|
193
196
|
* [.getPreviousYear([format])](#common.date.getPreviousYear) ⇒ <code>String</code>
|
|
194
197
|
* [.getSpecific(date, [format])](#common.date.getSpecific) ⇒ <code>String</code>
|
|
195
|
-
* [.calculate([date], [format])](#common.date.calculate) ⇒ <code>String</code>
|
|
198
|
+
* [.calculate([date], [format])](#common.date.calculate) ⇒ <code>String</code> \| <code>Date</code>
|
|
196
199
|
|
|
197
200
|
<a name="common.date.getToday"></a>
|
|
198
201
|
|
|
@@ -309,11 +312,11 @@ const date = await common.date.getSpecific("2020, 0, 17", "mm/dd/yyyy");
|
|
|
309
312
|
```
|
|
310
313
|
<a name="common.date.calculate"></a>
|
|
311
314
|
|
|
312
|
-
#### date.calculate([date], [format]) ⇒ <code>String</code>
|
|
315
|
+
#### date.calculate([date], [format]) ⇒ <code>String</code> \| <code>Date</code>
|
|
313
316
|
Calculates the date based on the input parameter and returns it in the given format.
|
|
314
317
|
|
|
315
318
|
**Kind**: static method of [<code>date</code>](#common.date)
|
|
316
|
-
**Returns**: <code>String</code> - The calculated date in the given format.
|
|
319
|
+
**Returns**: <code>String</code> \| <code>Date</code> - The calculated date in the given format.
|
|
317
320
|
|
|
318
321
|
| Param | Type | Default | Description |
|
|
319
322
|
| --- | --- | --- | --- |
|
|
@@ -619,6 +622,7 @@ Global namespace for util modules.
|
|
|
619
622
|
* [.executeOptional(fct, args)](#util.function.executeOptional)
|
|
620
623
|
* [.system](#util.system)
|
|
621
624
|
* [.getOS()](#util.system.getOS) ⇒ <code>String</code>
|
|
625
|
+
* [.userSettings](#util.userSettings)
|
|
622
626
|
|
|
623
627
|
<a name="util.browser"></a>
|
|
624
628
|
|
|
@@ -1676,6 +1680,10 @@ Returns the current operating system.
|
|
|
1676
1680
|
```js
|
|
1677
1681
|
const os = await util.system.getOS();
|
|
1678
1682
|
```
|
|
1683
|
+
<a name="util.userSettings"></a>
|
|
1684
|
+
|
|
1685
|
+
### util.userSettings
|
|
1686
|
+
**Kind**: static class of [<code>util</code>](#util)
|
|
1679
1687
|
<a name="ui5"></a>
|
|
1680
1688
|
|
|
1681
1689
|
## ui5
|
|
@@ -5776,7 +5784,7 @@ Global namespace for mobile modules.
|
|
|
5776
5784
|
* [.pressKeyByName(keyName)](#mobile.android.pressKeyByName)
|
|
5777
5785
|
* [.pressKeyByCode(keyCode)](#mobile.android.pressKeyByCode)
|
|
5778
5786
|
* [.device](#mobile.device)
|
|
5779
|
-
* [.isAppInstalled(
|
|
5787
|
+
* [.isAppInstalled(packageIdOrBundleId)](#mobile.device.isAppInstalled) ⇒ <code>boolean</code>
|
|
5780
5788
|
* [.installApp(appPath)](#mobile.device.installApp)
|
|
5781
5789
|
* [.element](#mobile.element)
|
|
5782
5790
|
* [.isVisible(element, [strict])](#mobile.element.isVisible) ⇒ <code>Boolean</code>
|
|
@@ -5786,7 +5794,7 @@ Global namespace for mobile modules.
|
|
|
5786
5794
|
* [.waitToBeClickable(selector, [timeout])](#mobile.element.waitToBeClickable)
|
|
5787
5795
|
* [.isSelected(elem)](#mobile.element.isSelected) ⇒ <code>boolean</code>
|
|
5788
5796
|
* [.gestures](#mobile.gestures)
|
|
5789
|
-
* [.
|
|
5797
|
+
* [.swipe(startX, startY, endX, endY, duration)](#mobile.gestures.swipe) ⇒ <code>Promise.<void></code>
|
|
5790
5798
|
* [.ios](#mobile.ios)
|
|
5791
5799
|
* [.userInteraction](#mobile.userInteraction)
|
|
5792
5800
|
* [.tap(element, [timeout])](#mobile.userInteraction.tap)
|
|
@@ -5820,76 +5828,13 @@ await mobile.device.pressKeyByName("back");
|
|
|
5820
5828
|
```js
|
|
5821
5829
|
await mobile.device.pressKeyByName("home");
|
|
5822
5830
|
```
|
|
5823
|
-
**Example**
|
|
5824
|
-
```js
|
|
5825
|
-
await mobile.device.pressKeyByName("volumeUp");
|
|
5826
|
-
```
|
|
5827
|
-
**Example**
|
|
5828
|
-
```js
|
|
5829
|
-
await mobile.device.pressKeyByName("volumeDown");
|
|
5830
|
-
```
|
|
5831
|
-
**Example**
|
|
5832
|
-
```js
|
|
5833
|
-
await mobile.device.pressKeyByName("volumeMute");
|
|
5834
|
-
```
|
|
5835
|
-
**Example**
|
|
5836
|
-
```js
|
|
5837
|
-
await mobile.device.pressKeyByName("power");
|
|
5838
|
-
```
|
|
5839
|
-
**Example**
|
|
5840
|
-
```js
|
|
5841
|
-
await mobile.device.pressKeyByName("enter");
|
|
5842
|
-
```
|
|
5843
|
-
**Example**
|
|
5844
|
-
```js
|
|
5845
|
-
await mobile.device.pressKeyByName("space");
|
|
5846
|
-
```
|
|
5847
|
-
**Example**
|
|
5848
|
-
```js
|
|
5849
|
-
await mobile.device.pressKeyByName("delete");
|
|
5850
|
-
```
|
|
5851
|
-
**Example**
|
|
5852
|
-
```js
|
|
5853
|
-
await mobile.device.pressKeyByName("menu");
|
|
5854
|
-
```
|
|
5855
|
-
**Example**
|
|
5856
|
-
```js
|
|
5857
|
-
await mobile.device.pressKeyByName("search");
|
|
5858
|
-
```
|
|
5859
|
-
**Example**
|
|
5860
|
-
```js
|
|
5861
|
-
await mobile.device.pressKeyByName("camera");
|
|
5862
|
-
```
|
|
5863
|
-
**Example**
|
|
5864
|
-
```js
|
|
5865
|
-
await mobile.device.pressKeyByName("focus");
|
|
5866
|
-
```
|
|
5867
|
-
**Example**
|
|
5868
|
-
```js
|
|
5869
|
-
await mobile.device.pressKeyByName("notification");
|
|
5870
|
-
```
|
|
5871
|
-
**Example**
|
|
5872
|
-
```js
|
|
5873
|
-
await mobile.device.pressKeyByName("call");
|
|
5874
|
-
```
|
|
5875
|
-
**Example**
|
|
5876
|
-
```js
|
|
5877
|
-
await mobile.device.pressKeyByName("calendar");
|
|
5878
|
-
```
|
|
5879
|
-
**Example**
|
|
5880
|
-
```js
|
|
5881
|
-
await mobile.device.pressKeyByName("recent");
|
|
5882
|
-
```
|
|
5883
|
-
**Example**
|
|
5884
|
-
```js
|
|
5885
|
-
await mobile.device.pressKeyByName("settings");
|
|
5886
|
-
```
|
|
5887
5831
|
<a name="mobile.android.pressKeyByCode"></a>
|
|
5888
5832
|
|
|
5889
5833
|
#### android.pressKeyByCode(keyCode)
|
|
5890
5834
|
Simulate pressing a hardware key on the android device (e.g., back button, home button, etc.),
|
|
5891
5835
|
|
|
5892
5836
|
**Kind**: static method of [<code>android</code>](#mobile.android)
|
|
5837
|
+
**See**: https://developer.android.com/reference/android/view/KeyEvent
|
|
5893
5838
|
|
|
5894
5839
|
| Param | Type | Description |
|
|
5895
5840
|
| --- | --- | --- |
|
|
@@ -5905,12 +5850,12 @@ await mobile.android.pressKeyByCode(4);
|
|
|
5905
5850
|
**Kind**: static class of [<code>mobile</code>](#mobile)
|
|
5906
5851
|
|
|
5907
5852
|
* [.device](#mobile.device)
|
|
5908
|
-
* [.isAppInstalled(
|
|
5853
|
+
* [.isAppInstalled(packageIdOrBundleId)](#mobile.device.isAppInstalled) ⇒ <code>boolean</code>
|
|
5909
5854
|
* [.installApp(appPath)](#mobile.device.installApp)
|
|
5910
5855
|
|
|
5911
5856
|
<a name="mobile.device.isAppInstalled"></a>
|
|
5912
5857
|
|
|
5913
|
-
#### device.isAppInstalled(
|
|
5858
|
+
#### device.isAppInstalled(packageIdOrBundleId) ⇒ <code>boolean</code>
|
|
5914
5859
|
Check wether given package/bundle app is installed or not in the device.
|
|
5915
5860
|
|
|
5916
5861
|
**Kind**: static method of [<code>device</code>](#mobile.device)
|
|
@@ -5918,7 +5863,7 @@ Check wether given package/bundle app is installed or not in the device.
|
|
|
5918
5863
|
|
|
5919
5864
|
| Param | Type | Description |
|
|
5920
5865
|
| --- | --- | --- |
|
|
5921
|
-
|
|
|
5866
|
+
| packageIdOrBundleId | <code>string</code> | Android package Id, or iOS bundle Id. |
|
|
5922
5867
|
|
|
5923
5868
|
**Example**
|
|
5924
5869
|
```js
|
|
@@ -6079,9 +6024,9 @@ const isSelected = await mobile.element.isSelected(elem);
|
|
|
6079
6024
|
|
|
6080
6025
|
### mobile.gestures
|
|
6081
6026
|
**Kind**: static class of [<code>mobile</code>](#mobile)
|
|
6082
|
-
<a name="mobile.gestures.
|
|
6027
|
+
<a name="mobile.gestures.swipe"></a>
|
|
6083
6028
|
|
|
6084
|
-
#### gestures.
|
|
6029
|
+
#### gestures.swipe(startX, startY, endX, endY, duration) ⇒ <code>Promise.<void></code>
|
|
6085
6030
|
Swipe from one point to another on the screen.
|
|
6086
6031
|
|
|
6087
6032
|
**Kind**: static method of [<code>gestures</code>](#mobile.gestures)
|
|
@@ -6138,3 +6083,143 @@ Checks the given checkbox.
|
|
|
6138
6083
|
```js
|
|
6139
6084
|
await mobile.userInteraction.check(selector);
|
|
6140
6085
|
```
|
|
6086
|
+
<a name="flp"></a>
|
|
6087
|
+
|
|
6088
|
+
## flp
|
|
6089
|
+
Global namespace for Fiori Launchpad (FLP) modules.
|
|
6090
|
+
|
|
6091
|
+
**Kind**: global constant
|
|
6092
|
+
|
|
6093
|
+
* [flp](#flp)
|
|
6094
|
+
* [.userLocks](#flp.userLocks)
|
|
6095
|
+
* [.getNumberOfLockEntries(user, password, [technicalUserId])](#flp.userLocks.getNumberOfLockEntries) ⇒ <code>Promise.<Number></code>
|
|
6096
|
+
* [.deleteExistingLockEntries(user, password, [technicalUserId])](#flp.userLocks.deleteExistingLockEntries)
|
|
6097
|
+
* [.userSettings](#flp.userSettings)
|
|
6098
|
+
* [.setLanguageFromUserSettings(user, password)](#flp.userSettings.setLanguageFromUserSettings) ⇒ <code>Promise.<void></code>
|
|
6099
|
+
* [.setDateFormatFromUserSettings(user, password)](#flp.userSettings.setDateFormatFromUserSettings) ⇒ <code>Promise.<void></code>
|
|
6100
|
+
* [.setDateFormatFromUserSettings(user, password)](#flp.userSettings.setDateFormatFromUserSettings) ⇒ <code>Promise.<void></code>
|
|
6101
|
+
* [.setTimeZoneFromUserSettings(user, password)](#flp.userSettings.setTimeZoneFromUserSettings) ⇒ <code>Promise.<void></code>
|
|
6102
|
+
|
|
6103
|
+
<a name="flp.userLocks"></a>
|
|
6104
|
+
|
|
6105
|
+
### flp.userLocks
|
|
6106
|
+
**Kind**: static class of [<code>flp</code>](#flp)
|
|
6107
|
+
|
|
6108
|
+
* [.userLocks](#flp.userLocks)
|
|
6109
|
+
* [.getNumberOfLockEntries(user, password, [technicalUserId])](#flp.userLocks.getNumberOfLockEntries) ⇒ <code>Promise.<Number></code>
|
|
6110
|
+
* [.deleteExistingLockEntries(user, password, [technicalUserId])](#flp.userLocks.deleteExistingLockEntries)
|
|
6111
|
+
|
|
6112
|
+
<a name="flp.userLocks.getNumberOfLockEntries"></a>
|
|
6113
|
+
|
|
6114
|
+
#### userLocks.getNumberOfLockEntries(user, password, [technicalUserId]) ⇒ <code>Promise.<Number></code>
|
|
6115
|
+
Gets the number of lock entries for the given user.
|
|
6116
|
+
|
|
6117
|
+
**Kind**: static method of [<code>userLocks</code>](#flp.userLocks)
|
|
6118
|
+
**Returns**: <code>Promise.<Number></code> - The number of lock entries.
|
|
6119
|
+
|
|
6120
|
+
| Param | Type | Description |
|
|
6121
|
+
| --- | --- | --- |
|
|
6122
|
+
| user | <code>String</code> | The user name. |
|
|
6123
|
+
| password | <code>String</code> | The password. |
|
|
6124
|
+
| [technicalUserId] | <code>String</code> | The technical user ID. |
|
|
6125
|
+
|
|
6126
|
+
**Example**
|
|
6127
|
+
```js
|
|
6128
|
+
const lockCount = await flp.userLocks.getNumberOfLockEntries("user", "password");
|
|
6129
|
+
```
|
|
6130
|
+
<a name="flp.userLocks.deleteExistingLockEntries"></a>
|
|
6131
|
+
|
|
6132
|
+
#### userLocks.deleteExistingLockEntries(user, password, [technicalUserId])
|
|
6133
|
+
Deletes the existing lock entries for the given user.
|
|
6134
|
+
|
|
6135
|
+
**Kind**: static method of [<code>userLocks</code>](#flp.userLocks)
|
|
6136
|
+
|
|
6137
|
+
| Param | Type | Description |
|
|
6138
|
+
| --- | --- | --- |
|
|
6139
|
+
| user | <code>String</code> | The user name. |
|
|
6140
|
+
| password | <code>String</code> | The password. |
|
|
6141
|
+
| [technicalUserId] | <code>String</code> | The technical user ID. |
|
|
6142
|
+
|
|
6143
|
+
**Example**
|
|
6144
|
+
```js
|
|
6145
|
+
await flp.userLocks.deleteExistingLockEntries("user", "password");
|
|
6146
|
+
```
|
|
6147
|
+
<a name="flp.userSettings"></a>
|
|
6148
|
+
|
|
6149
|
+
### flp.userSettings
|
|
6150
|
+
**Kind**: static class of [<code>flp</code>](#flp)
|
|
6151
|
+
|
|
6152
|
+
* [.userSettings](#flp.userSettings)
|
|
6153
|
+
* [.setLanguageFromUserSettings(user, password)](#flp.userSettings.setLanguageFromUserSettings) ⇒ <code>Promise.<void></code>
|
|
6154
|
+
* [.setDateFormatFromUserSettings(user, password)](#flp.userSettings.setDateFormatFromUserSettings) ⇒ <code>Promise.<void></code>
|
|
6155
|
+
* [.setDateFormatFromUserSettings(user, password)](#flp.userSettings.setDateFormatFromUserSettings) ⇒ <code>Promise.<void></code>
|
|
6156
|
+
* [.setTimeZoneFromUserSettings(user, password)](#flp.userSettings.setTimeZoneFromUserSettings) ⇒ <code>Promise.<void></code>
|
|
6157
|
+
|
|
6158
|
+
<a name="flp.userSettings.setLanguageFromUserSettings"></a>
|
|
6159
|
+
|
|
6160
|
+
#### userSettings.setLanguageFromUserSettings(user, password) ⇒ <code>Promise.<void></code>
|
|
6161
|
+
Sets the environment variable 'USER_SETTINGS_LANG_KEY' language from user settings.
|
|
6162
|
+
|
|
6163
|
+
**Kind**: static method of [<code>userSettings</code>](#flp.userSettings)
|
|
6164
|
+
**Returns**: <code>Promise.<void></code> - A promise that resolves when the language has been set.
|
|
6165
|
+
|
|
6166
|
+
| Param | Type | Description |
|
|
6167
|
+
| --- | --- | --- |
|
|
6168
|
+
| user | <code>String</code> | The username for authentication. |
|
|
6169
|
+
| password | <code>String</code> | The password for authentication. |
|
|
6170
|
+
|
|
6171
|
+
**Example**
|
|
6172
|
+
```js
|
|
6173
|
+
await flp.userSettings.setLanguageFromUserSettings("user", "password");
|
|
6174
|
+
```
|
|
6175
|
+
<a name="flp.userSettings.setDateFormatFromUserSettings"></a>
|
|
6176
|
+
|
|
6177
|
+
#### userSettings.setDateFormatFromUserSettings(user, password) ⇒ <code>Promise.<void></code>
|
|
6178
|
+
Sets the environment variable 'USER_SETTINGS_DATE_FORMAT' date format from user settings.
|
|
6179
|
+
|
|
6180
|
+
**Kind**: static method of [<code>userSettings</code>](#flp.userSettings)
|
|
6181
|
+
**Returns**: <code>Promise.<void></code> - A promise that resolves when the date format has been set.
|
|
6182
|
+
|
|
6183
|
+
| Param | Type | Description |
|
|
6184
|
+
| --- | --- | --- |
|
|
6185
|
+
| user | <code>String</code> | The username for authentication. |
|
|
6186
|
+
| password | <code>String</code> | The password for authentication. |
|
|
6187
|
+
|
|
6188
|
+
**Example**
|
|
6189
|
+
```js
|
|
6190
|
+
await flp.userSettings.setDateFormatFromUserSettings("user", "password");
|
|
6191
|
+
```
|
|
6192
|
+
<a name="flp.userSettings.setDateFormatFromUserSettings"></a>
|
|
6193
|
+
|
|
6194
|
+
#### userSettings.setDateFormatFromUserSettings(user, password) ⇒ <code>Promise.<void></code>
|
|
6195
|
+
Sets the environment variable 'USER_SETTINGS_DATE_FORMAT' date format from user settings.
|
|
6196
|
+
|
|
6197
|
+
**Kind**: static method of [<code>userSettings</code>](#flp.userSettings)
|
|
6198
|
+
**Returns**: <code>Promise.<void></code> - A promise that resolves when the date format has been set.
|
|
6199
|
+
|
|
6200
|
+
| Param | Type | Description |
|
|
6201
|
+
| --- | --- | --- |
|
|
6202
|
+
| user | <code>String</code> | The username for authentication. |
|
|
6203
|
+
| password | <code>String</code> | The password for authentication. |
|
|
6204
|
+
|
|
6205
|
+
**Example**
|
|
6206
|
+
```js
|
|
6207
|
+
await flp.userSettings.setDateFormatFromUserSettings("user", "password");
|
|
6208
|
+
```
|
|
6209
|
+
<a name="flp.userSettings.setTimeZoneFromUserSettings"></a>
|
|
6210
|
+
|
|
6211
|
+
#### userSettings.setTimeZoneFromUserSettings(user, password) ⇒ <code>Promise.<void></code>
|
|
6212
|
+
Sets the environment variable 'USER_SETTINGS_TIME_ZONE' time zone from user settings.
|
|
6213
|
+
|
|
6214
|
+
**Kind**: static method of [<code>userSettings</code>](#flp.userSettings)
|
|
6215
|
+
**Returns**: <code>Promise.<void></code> - A promise that resolves when the time zone has been set.
|
|
6216
|
+
|
|
6217
|
+
| Param | Type | Description |
|
|
6218
|
+
| --- | --- | --- |
|
|
6219
|
+
| user | <code>String</code> | The username for authentication. |
|
|
6220
|
+
| password | <code>String</code> | The password for authentication. |
|
|
6221
|
+
|
|
6222
|
+
**Example**
|
|
6223
|
+
```js
|
|
6224
|
+
await flp.userSettings.setTimeZoneFromUserSettings("user", "password");
|
|
6225
|
+
```
|
|
@@ -28,13 +28,111 @@ export declare class UserLocks {
|
|
|
28
28
|
* @example await flp.userLocks.deleteExistingLockEntries("user", "password");
|
|
29
29
|
*/
|
|
30
30
|
deleteExistingLockEntries(user: string, password: string, technicalUserId?: string): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* @private
|
|
33
|
+
* @function getLockCount
|
|
34
|
+
* @memberOf flp.userLocks
|
|
35
|
+
* @description Gets the number of locks for the user on the same session.
|
|
36
|
+
* @param {Array} sessions - The sessions.
|
|
37
|
+
* @returns {Number} The number of locks.
|
|
38
|
+
* @example const lockCount = flp.userLocks.getLockCount(sessions);
|
|
39
|
+
*/
|
|
40
|
+
private _getLockCount;
|
|
41
|
+
/**
|
|
42
|
+
* @private
|
|
43
|
+
* @function _getSessionId
|
|
44
|
+
* @memberOf flp.userLocks
|
|
45
|
+
* @description Gets the session ID.
|
|
46
|
+
* @param {Array} sessions - The sessions.
|
|
47
|
+
* @returns {String} The session ID.
|
|
48
|
+
* @example const sessionId = flp.userLocks.getSessionId(sessions);
|
|
49
|
+
*/
|
|
50
|
+
private _getSessionId;
|
|
51
|
+
/**
|
|
52
|
+
* @private
|
|
53
|
+
* @function _initializeService
|
|
54
|
+
* @memberOf flp.userLocks
|
|
55
|
+
* @description Initializes the service.
|
|
56
|
+
* @param {Object} instance - The service instance.
|
|
57
|
+
* @param {String} serviceName - The service name.
|
|
58
|
+
* @param {String} user - The user name.
|
|
59
|
+
* @param {String} [password] - The password.
|
|
60
|
+
* @returns {Promise<Object>} The service instance.
|
|
61
|
+
*/
|
|
31
62
|
private _initializeService;
|
|
63
|
+
/**
|
|
64
|
+
* @private
|
|
65
|
+
* @function _initializeUserLockService
|
|
66
|
+
* @memberOf flp.userLocks
|
|
67
|
+
* @description Initializes the User Lock Service.
|
|
68
|
+
* @param {String} user - The user name.
|
|
69
|
+
* @param {String} password - The password.
|
|
70
|
+
* @returns {Promise<void>}
|
|
71
|
+
*/
|
|
32
72
|
private _initializeUserLockService;
|
|
73
|
+
/**
|
|
74
|
+
* @private
|
|
75
|
+
* @function _initializeSearchService
|
|
76
|
+
* @memberOf flp.userLocks
|
|
77
|
+
* @description Initializes the Search Service.
|
|
78
|
+
* @param {String} user - The user name.
|
|
79
|
+
* @param {String} password - The password.
|
|
80
|
+
* @returns {Promise<void>}
|
|
81
|
+
*/
|
|
33
82
|
private _initializeSearchService;
|
|
83
|
+
/**
|
|
84
|
+
* @private
|
|
85
|
+
* @function _initializeRequestOptions
|
|
86
|
+
* @memberOf flp.userLocks
|
|
87
|
+
* @description Initializes the request options.
|
|
88
|
+
* @param {String} client - The client number.
|
|
89
|
+
* @param {String} userId - The user ID.
|
|
90
|
+
* @param {String} [sessionId] - The session ID.
|
|
91
|
+
* @returns {void}
|
|
92
|
+
*/
|
|
34
93
|
private _initializeRequestOptions;
|
|
94
|
+
/**
|
|
95
|
+
* @private
|
|
96
|
+
* @function _getUserInfo
|
|
97
|
+
* @memberOf flp.userLocks
|
|
98
|
+
* @description Gets the user info.
|
|
99
|
+
* @returns {Promise<UserInfo>} The user info.
|
|
100
|
+
* @throws {Error} If the user info cannot be retrieved.
|
|
101
|
+
* @example const userInfo = await flp.userLocks.getUserInfo();
|
|
102
|
+
* @example console.log(userInfo.Id);
|
|
103
|
+
* @example console.log(userInfo.Name);
|
|
104
|
+
*/
|
|
35
105
|
private _getUserInfo;
|
|
106
|
+
/**
|
|
107
|
+
* @private
|
|
108
|
+
* @function _extractClientFromUrl
|
|
109
|
+
* @memberOf flp.userLocks
|
|
110
|
+
* @description Extracts the client number from the URL.
|
|
111
|
+
* @param {String} url - The URL.
|
|
112
|
+
* @returns {String} The client number.
|
|
113
|
+
* @throws {Error} If the client number cannot be found in the URL.
|
|
114
|
+
* @example const client = flp.userLocks.extractClientFromUrl("https://www-123.example.com");
|
|
115
|
+
* @example console.log(client);
|
|
116
|
+
* @example // Output: 123
|
|
117
|
+
*/
|
|
36
118
|
private _extractClientFromUrl;
|
|
37
|
-
|
|
119
|
+
/**
|
|
120
|
+
* @private
|
|
121
|
+
* @function _getSession
|
|
122
|
+
* @memberOf flp.userLocks
|
|
123
|
+
* @description Gets the session.
|
|
124
|
+
* @returns {Promise<any>} The session.
|
|
125
|
+
* @example const session = await flp.userLocks.getSession();
|
|
126
|
+
*/
|
|
127
|
+
private _getSession;
|
|
128
|
+
/**
|
|
129
|
+
* @private
|
|
130
|
+
* @function _deleteLockEntries
|
|
131
|
+
* @memberOf flp.userLocks
|
|
132
|
+
* @description Deletes the lock entries.
|
|
133
|
+
* @returns {Promise<void>}
|
|
134
|
+
* @example await flp.userLocks.deleteLockEntries();
|
|
135
|
+
*/
|
|
38
136
|
private _deleteLockEntries;
|
|
39
137
|
}
|
|
40
138
|
declare const _default: UserLocks;
|
|
@@ -15,7 +15,7 @@ class UserLocks {
|
|
|
15
15
|
this._requestOptions = {
|
|
16
16
|
Client: "",
|
|
17
17
|
UserId: "",
|
|
18
|
-
SessionId: "
|
|
18
|
+
SessionId: ""
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
21
|
// Public Functions
|
|
@@ -44,13 +44,12 @@ class UserLocks {
|
|
|
44
44
|
// Extract client and prepare request options
|
|
45
45
|
const client = this._extractClientFromUrl(browser.config.params.systemUrl);
|
|
46
46
|
this._initializeRequestOptions(client, resolvedUserId);
|
|
47
|
-
|
|
48
|
-
const
|
|
49
|
-
const lockCount = locks.NumberOfLocks;
|
|
50
|
-
// Log the result
|
|
47
|
+
const sessions = await this._getSession();
|
|
48
|
+
const lockCount = this._getLockCount(sessions);
|
|
51
49
|
if (lockCount > 0) {
|
|
52
50
|
util.console.warn(`User '${resolvedUserName}' with ID '${resolvedUserId}' has ${lockCount} lock/s.`);
|
|
53
|
-
|
|
51
|
+
//if there are locks, set the session ID to the first session, since it is needed for deletion.
|
|
52
|
+
this._requestOptions.SessionId = this._getSessionId(sessions);
|
|
54
53
|
}
|
|
55
54
|
else {
|
|
56
55
|
util.console.success(`User '${resolvedUserName}' with ID '${resolvedUserId}' has no locks.`);
|
|
@@ -73,6 +72,46 @@ class UserLocks {
|
|
|
73
72
|
}
|
|
74
73
|
}
|
|
75
74
|
// Private Functions
|
|
75
|
+
/**
|
|
76
|
+
* @private
|
|
77
|
+
* @function getLockCount
|
|
78
|
+
* @memberOf flp.userLocks
|
|
79
|
+
* @description Gets the number of locks for the user on the same session.
|
|
80
|
+
* @param {Array} sessions - The sessions.
|
|
81
|
+
* @returns {Number} The number of locks.
|
|
82
|
+
* @example const lockCount = flp.userLocks.getLockCount(sessions);
|
|
83
|
+
*/
|
|
84
|
+
_getLockCount(sessions) {
|
|
85
|
+
if (sessions.length > 0) {
|
|
86
|
+
return sessions[0].NumberOfLocks; //Always uses the first session.
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
return 0;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* @private
|
|
94
|
+
* @function _getSessionId
|
|
95
|
+
* @memberOf flp.userLocks
|
|
96
|
+
* @description Gets the session ID.
|
|
97
|
+
* @param {Array} sessions - The sessions.
|
|
98
|
+
* @returns {String} The session ID.
|
|
99
|
+
* @example const sessionId = flp.userLocks.getSessionId(sessions);
|
|
100
|
+
*/
|
|
101
|
+
_getSessionId(sessions) {
|
|
102
|
+
return sessions[0].SessionId;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* @private
|
|
106
|
+
* @function _initializeService
|
|
107
|
+
* @memberOf flp.userLocks
|
|
108
|
+
* @description Initializes the service.
|
|
109
|
+
* @param {Object} instance - The service instance.
|
|
110
|
+
* @param {String} serviceName - The service name.
|
|
111
|
+
* @param {String} user - The user name.
|
|
112
|
+
* @param {String} [password] - The password.
|
|
113
|
+
* @returns {Promise<Object>} The service instance.
|
|
114
|
+
*/
|
|
76
115
|
async _initializeService(instance, serviceName, user, password = "Welcome1!") {
|
|
77
116
|
if (!instance) {
|
|
78
117
|
const params = browser.config.params;
|
|
@@ -89,12 +128,40 @@ class UserLocks {
|
|
|
89
128
|
}
|
|
90
129
|
return instance;
|
|
91
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* @private
|
|
133
|
+
* @function _initializeUserLockService
|
|
134
|
+
* @memberOf flp.userLocks
|
|
135
|
+
* @description Initializes the User Lock Service.
|
|
136
|
+
* @param {String} user - The user name.
|
|
137
|
+
* @param {String} password - The password.
|
|
138
|
+
* @returns {Promise<void>}
|
|
139
|
+
*/
|
|
92
140
|
async _initializeUserLockService(user, password) {
|
|
93
141
|
this._srvUserLockInstance = await this._initializeService(this._srvUserLockInstance, "APS_IAM_MUS_V2UI", user, password);
|
|
94
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* @private
|
|
145
|
+
* @function _initializeSearchService
|
|
146
|
+
* @memberOf flp.userLocks
|
|
147
|
+
* @description Initializes the Search Service.
|
|
148
|
+
* @param {String} user - The user name.
|
|
149
|
+
* @param {String} password - The password.
|
|
150
|
+
* @returns {Promise<void>}
|
|
151
|
+
*/
|
|
95
152
|
async _initializeSearchService(user, password) {
|
|
96
153
|
this._srvEshInstance = await this._initializeService(this._srvEshInstance, "ESH_SEARCH_SRV", user, password);
|
|
97
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* @private
|
|
157
|
+
* @function _initializeRequestOptions
|
|
158
|
+
* @memberOf flp.userLocks
|
|
159
|
+
* @description Initializes the request options.
|
|
160
|
+
* @param {String} client - The client number.
|
|
161
|
+
* @param {String} userId - The user ID.
|
|
162
|
+
* @param {String} [sessionId] - The session ID.
|
|
163
|
+
* @returns {void}
|
|
164
|
+
*/
|
|
98
165
|
_initializeRequestOptions(client, userId, sessionId = "*") {
|
|
99
166
|
this._requestOptions = {
|
|
100
167
|
Client: client,
|
|
@@ -102,6 +169,17 @@ class UserLocks {
|
|
|
102
169
|
SessionId: sessionId
|
|
103
170
|
};
|
|
104
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* @private
|
|
174
|
+
* @function _getUserInfo
|
|
175
|
+
* @memberOf flp.userLocks
|
|
176
|
+
* @description Gets the user info.
|
|
177
|
+
* @returns {Promise<UserInfo>} The user info.
|
|
178
|
+
* @throws {Error} If the user info cannot be retrieved.
|
|
179
|
+
* @example const userInfo = await flp.userLocks.getUserInfo();
|
|
180
|
+
* @example console.log(userInfo.Id);
|
|
181
|
+
* @example console.log(userInfo.Name);
|
|
182
|
+
*/
|
|
105
183
|
async _getUserInfo() {
|
|
106
184
|
try {
|
|
107
185
|
const users = await service.odata.get(this._srvEshInstance, "Users", {});
|
|
@@ -112,6 +190,18 @@ class UserLocks {
|
|
|
112
190
|
throw new Error(`Failed to get user info: ${errorMessage}`);
|
|
113
191
|
}
|
|
114
192
|
}
|
|
193
|
+
/**
|
|
194
|
+
* @private
|
|
195
|
+
* @function _extractClientFromUrl
|
|
196
|
+
* @memberOf flp.userLocks
|
|
197
|
+
* @description Extracts the client number from the URL.
|
|
198
|
+
* @param {String} url - The URL.
|
|
199
|
+
* @returns {String} The client number.
|
|
200
|
+
* @throws {Error} If the client number cannot be found in the URL.
|
|
201
|
+
* @example const client = flp.userLocks.extractClientFromUrl("https://www-123.example.com");
|
|
202
|
+
* @example console.log(client);
|
|
203
|
+
* @example // Output: 123
|
|
204
|
+
*/
|
|
115
205
|
_extractClientFromUrl(url) {
|
|
116
206
|
const regex = /https:\/\/\w{3}-(\d{3})\./;
|
|
117
207
|
const match = url.match(regex);
|
|
@@ -119,9 +209,25 @@ class UserLocks {
|
|
|
119
209
|
return match[1];
|
|
120
210
|
throw new Error("Client number not found in the URL");
|
|
121
211
|
}
|
|
122
|
-
|
|
123
|
-
|
|
212
|
+
/**
|
|
213
|
+
* @private
|
|
214
|
+
* @function _getSession
|
|
215
|
+
* @memberOf flp.userLocks
|
|
216
|
+
* @description Gets the session.
|
|
217
|
+
* @returns {Promise<any>} The session.
|
|
218
|
+
* @example const session = await flp.userLocks.getSession();
|
|
219
|
+
*/
|
|
220
|
+
async _getSession() {
|
|
221
|
+
return service.odata.get(this._srvUserLockInstance, "Session", {});
|
|
124
222
|
}
|
|
223
|
+
/**
|
|
224
|
+
* @private
|
|
225
|
+
* @function _deleteLockEntries
|
|
226
|
+
* @memberOf flp.userLocks
|
|
227
|
+
* @description Deletes the lock entries.
|
|
228
|
+
* @returns {Promise<void>}
|
|
229
|
+
* @example await flp.userLocks.deleteLockEntries();
|
|
230
|
+
*/
|
|
125
231
|
async _deleteLockEntries() {
|
|
126
232
|
const response = await service.odata.callFunctionImport(this._srvUserLockInstance, "delete_session", this._requestOptions, true);
|
|
127
233
|
const sapMessage = JSON.parse(response.headers.get("sap-message"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userLocks.js","sourceRoot":"","sources":["../../../../src/reuse/modules/flp/userLocks.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb,8DAAkE;AAOlE;;;GAGG;AACH,MAAa,SAAS;IAAtB;QACE,qBAAqB;QACb,QAAG,GAAG,IAAI,oCAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACpD,yBAAoB,GAAQ,IAAI,CAAC;QACjC,oBAAe,GAAQ,IAAI,CAAC;QAE5B,oBAAe,GAAG;YACxB,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"userLocks.js","sourceRoot":"","sources":["../../../../src/reuse/modules/flp/userLocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,185 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @class userSettings
|
|
3
|
-
* @memberof
|
|
3
|
+
* @memberof flp
|
|
4
4
|
*/
|
|
5
5
|
export declare class UserSettings {
|
|
6
6
|
private vlf;
|
|
7
7
|
private _srvInstance;
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* @private
|
|
10
|
+
* @function _initS4UserSettingService
|
|
11
|
+
* @memberOf flp.userSettings
|
|
12
|
+
* @description Initializes the S4 User Setting Service.
|
|
13
|
+
* @param {String} user - The username for authentication.
|
|
14
|
+
* @param {String} password - The password for authentication.
|
|
15
|
+
* @example await flp.userSettings._initS4UserSettingService("user", "password");
|
|
16
|
+
* @returns {Promise<void>} A promise that resolves when the service has been initialized.
|
|
17
|
+
*/
|
|
18
|
+
private _initS4UserSettingService;
|
|
19
|
+
/**
|
|
20
|
+
* @function setLanguageFromUserSettings
|
|
21
|
+
* @memberOf flp.userSettings
|
|
22
|
+
* @description Sets the environment variable 'USER_SETTINGS_LANG_KEY' language from user settings.
|
|
23
|
+
* @param {String} user - The username for authentication.
|
|
24
|
+
* @param {String} password - The password for authentication.
|
|
25
|
+
* @example await flp.userSettings.setLanguageFromUserSettings("user", "password");
|
|
26
|
+
* @returns {Promise<void>} A promise that resolves when the language has been set.
|
|
27
|
+
*/
|
|
9
28
|
setLanguageFromUserSettings(user: string, password: string): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* @function setDateFormatFromUserSettings
|
|
31
|
+
* @memberOf flp.userSettings
|
|
32
|
+
* @description Sets the environment variable 'USER_SETTINGS_DATE_FORMAT' date format from user settings.
|
|
33
|
+
* @param {String} user - The username for authentication.
|
|
34
|
+
* @param {String} password - The password for authentication.
|
|
35
|
+
* @example await flp.userSettings.setDateFormatFromUserSettings("user", "password");
|
|
36
|
+
* @returns {Promise<void>} A promise that resolves when the date format has been set.
|
|
37
|
+
*/
|
|
10
38
|
setDateFormatFromUserSettings(user: string, password: string): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* @function setTimeFormatFromUserSettings
|
|
41
|
+
* @memberOf flp.userSettings
|
|
42
|
+
* @description Sets the environment variable 'USER_SETTINGS_DATE_FORMAT' time format from user settings.
|
|
43
|
+
* @param {String} user - The username for authentication.
|
|
44
|
+
* @param {String} password - The password for authentication.
|
|
45
|
+
* @example await flp.userSettings.setTimeFormatFromUserSettings("user", "password");
|
|
46
|
+
* @returns {Promise<void>} A promise that resolves when the time format has been set.
|
|
47
|
+
*/
|
|
11
48
|
setTimeFormatFromUserSettings(user: string, password: string): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* @function setTimeZoneFromUserSettings
|
|
51
|
+
* @memberOf flp.userSettings
|
|
52
|
+
* @description Sets the environment variable 'USER_SETTINGS_TIME_ZONE' time zone from user settings.
|
|
53
|
+
* @param {String} user - The username for authentication.
|
|
54
|
+
* @param {String} password - The password for authentication.
|
|
55
|
+
* @example await flp.userSettings.setTimeZoneFromUserSettings("user", "password");
|
|
56
|
+
* @returns {Promise<void>} A promise that resolves when the time zone has been set.
|
|
57
|
+
*/
|
|
12
58
|
setTimeZoneFromUserSettings(user: string, password: string): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* @function setNumberFormatFromUserSettings
|
|
61
|
+
* @memberOf flp.userSettings
|
|
62
|
+
* @description Sets the environment variable 'USER_SETTINGS_NUMBER_FORMAT' number format from user settings.
|
|
63
|
+
* @param {String} user - The username for authentication.
|
|
64
|
+
* @param {String} password - The password for authentication.
|
|
65
|
+
* @example await flp.userSettings.setNumberFormatFromUserSettings("user", "password");
|
|
66
|
+
* @returns {Promise<void>} A promise that resolves when the number format has been set.
|
|
67
|
+
*/
|
|
13
68
|
setNumberFormatFromUserSettings(user: string, password: string): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* @function setS4UserSettings
|
|
71
|
+
* @memberOf flp.userSettings
|
|
72
|
+
* @description Sets the user settings for S4.
|
|
73
|
+
* @param {String} user - The username for authentication.
|
|
74
|
+
* @param {String} password - The password for authentication.
|
|
75
|
+
* @example await flp.userSettings.setS4UserSettings("user", "password");
|
|
76
|
+
* @returns {Promise<void>} A promise that resolves when the user settings have been set.
|
|
77
|
+
*/
|
|
14
78
|
setS4UserSettings(user: string, password: string): Promise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* @function getLanguageFromUserSettings
|
|
81
|
+
* @memberOf flp.userSettings
|
|
82
|
+
* @description Gets the language from user settings.
|
|
83
|
+
* @param {String} user - The username for authentication.
|
|
84
|
+
* @param {String} password - The password for authentication.
|
|
85
|
+
* @example const language = await flp.userSettings.getLanguageFromUserSettings("user", "password");
|
|
86
|
+
* @returns {Promise<String>} The language from user settings.
|
|
87
|
+
*/
|
|
15
88
|
getLanguageFromUserSettings(user: string, password: string): Promise<string>;
|
|
89
|
+
/**
|
|
90
|
+
* @function getDateFormatFromUserSettings
|
|
91
|
+
* @memberOf flp.userSettings
|
|
92
|
+
* @description Gets the date format from user settings.
|
|
93
|
+
* @param {String} user - The username for authentication.
|
|
94
|
+
* @param {String} password - The password for authentication.
|
|
95
|
+
* @example const dateFormat = await flp.userSettings.getDateFormatFromUserSettings("user", "password");
|
|
96
|
+
* @returns {Promise<String>} The date format from user settings.
|
|
97
|
+
*/
|
|
16
98
|
getDateFormatFromUserSettings(user: string, password: string): Promise<string>;
|
|
99
|
+
/**
|
|
100
|
+
* @function getTimeFormatFromUserSettings
|
|
101
|
+
* @memberOf flp.userSettings
|
|
102
|
+
* @description Gets the time format from user settings.
|
|
103
|
+
* @param {String} user - The username for authentication.
|
|
104
|
+
* @param {String} password - The password for authentication.
|
|
105
|
+
* @example const timeFormat = await flp.userSettings.getTimeFormatFromUserSettings("user", "password");
|
|
106
|
+
* @returns {Promise<String>} The time format from user settings.
|
|
107
|
+
*/
|
|
17
108
|
getTimeFormatFromUserSettings(user: string, password: string): Promise<string>;
|
|
109
|
+
/**
|
|
110
|
+
* @function getTimeZoneFromUserSettings
|
|
111
|
+
* @memberOf flp.userSettings
|
|
112
|
+
* @description Gets the time zone from user settings.
|
|
113
|
+
* @param {String} user - The username for authentication.
|
|
114
|
+
* @param {String} password - The password for authentication.
|
|
115
|
+
* @example const timeZone = await flp.userSettings.getTimeZoneFromUserSettings("user", "password");
|
|
116
|
+
* @returns {Promise<String>} The time zone from user settings.
|
|
117
|
+
*/
|
|
18
118
|
getTimeZoneFromUserSettings(user: string, password: string): Promise<string>;
|
|
119
|
+
/**
|
|
120
|
+
* @function getNumberFormatFromUserSettings
|
|
121
|
+
* @memberOf flp.userSettings
|
|
122
|
+
* @description Gets the number format from user settings.
|
|
123
|
+
* @param {String} user - The username for authentication.
|
|
124
|
+
* @param {String} password - The password for authentication.
|
|
125
|
+
* @example const numberFormat = await flp.userSettings.getNumberFormatFromUserSettings("user", "password");
|
|
126
|
+
* @returns {Promise<String>} The number format from user settings.
|
|
127
|
+
*/
|
|
19
128
|
getNumberFormatFromUserSettings(user: string, password: string): Promise<string>;
|
|
129
|
+
/**
|
|
130
|
+
* @private
|
|
131
|
+
* @function _getTimeZoneResponse
|
|
132
|
+
* @memberOf flp.userSettings
|
|
133
|
+
* @description Gets the time zone from user settings.
|
|
134
|
+
* @param {Object} srvInstance - The service instance.
|
|
135
|
+
* @example const timeZone = await flp.userSettings._getTimeZoneResponse(srvInstance);
|
|
136
|
+
* @returns {Promise<String>} The time zone from user settings.
|
|
137
|
+
* @throws {Error} Thrown if the time zone could not be retrieved.
|
|
138
|
+
*/
|
|
20
139
|
private _getTimeZoneResponse;
|
|
140
|
+
/**
|
|
141
|
+
* @private
|
|
142
|
+
* @function _getTimeFormatResponse
|
|
143
|
+
* @memberOf flp.userSettings
|
|
144
|
+
* @description Gets the time format from user settings.
|
|
145
|
+
* @param {Object} srvInstance - The service instance.
|
|
146
|
+
* @example const timeFormat = await flp.userSettings._getTimeFormatResponse(srvInstance);
|
|
147
|
+
* @returns {Promise<String>} The time format from user settings.
|
|
148
|
+
* @throws {Error} Thrown if the time format could not be retrieved.
|
|
149
|
+
*/
|
|
21
150
|
private _getTimeFormatResponse;
|
|
151
|
+
/**
|
|
152
|
+
* @private
|
|
153
|
+
* @function _getDateFormatsResponse
|
|
154
|
+
* @memberOf flp.userSettings
|
|
155
|
+
* @description Gets the date format from user settings.
|
|
156
|
+
* @param {Object} srvInstance - The service instance.
|
|
157
|
+
* @example const dateFormat = await flp.userSettings._getDateFormatsResponse(srvInstance);
|
|
158
|
+
* @returns {Promise<String>} The date format from user settings.
|
|
159
|
+
* @throws {Error} Thrown if the date format could not be retrieved.
|
|
160
|
+
*/
|
|
22
161
|
private _getDateFormatsResponse;
|
|
162
|
+
/**
|
|
163
|
+
* @private
|
|
164
|
+
* @function _getLanguageResponse
|
|
165
|
+
* @memberOf flp.userSettings
|
|
166
|
+
* @description Gets the language from user settings.
|
|
167
|
+
* @param {Object} srvInstance - The service instance.
|
|
168
|
+
* @example const language = await flp.userSettings._getLanguageResponse(srvInstance);
|
|
169
|
+
* @returns {Promise<String>} The language from user settings.
|
|
170
|
+
* @throws {Error} Thrown if the language could not be retrieved.
|
|
171
|
+
*/
|
|
23
172
|
private _getLanguageResponse;
|
|
173
|
+
/**
|
|
174
|
+
* @private
|
|
175
|
+
* @function _getNumberFormatResponse
|
|
176
|
+
* @memberOf flp.userSettings
|
|
177
|
+
* @description Gets the number format from user settings.
|
|
178
|
+
* @param {Object} srvInstance - The service instance.
|
|
179
|
+
* @example const numberFormat = await flp.userSettings._getNumberFormatResponse(srvInstance);
|
|
180
|
+
* @returns {Promise<String>} The number format from user settings.
|
|
181
|
+
* @throws {Error} Thrown if the number format could not be retrieved.
|
|
182
|
+
*/
|
|
24
183
|
private _getNumberFormatResponse;
|
|
25
184
|
}
|
|
26
185
|
declare const _default: UserSettings;
|
|
@@ -4,16 +4,26 @@ exports.UserSettings = void 0;
|
|
|
4
4
|
const verboseLogger_1 = require("../../helper/verboseLogger");
|
|
5
5
|
/**
|
|
6
6
|
* @class userSettings
|
|
7
|
-
* @memberof
|
|
7
|
+
* @memberof flp
|
|
8
8
|
*/
|
|
9
9
|
class UserSettings {
|
|
10
10
|
constructor() {
|
|
11
11
|
this.vlf = new verboseLogger_1.VerboseLoggerFactory("util", "userSettings");
|
|
12
12
|
this._srvInstance = null;
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* @private
|
|
16
|
+
* @function _initS4UserSettingService
|
|
17
|
+
* @memberOf flp.userSettings
|
|
18
|
+
* @description Initializes the S4 User Setting Service.
|
|
19
|
+
* @param {String} user - The username for authentication.
|
|
20
|
+
* @param {String} password - The password for authentication.
|
|
21
|
+
* @example await flp.userSettings._initS4UserSettingService("user", "password");
|
|
22
|
+
* @returns {Promise<void>} A promise that resolves when the service has been initialized.
|
|
23
|
+
*/
|
|
24
|
+
async _initS4UserSettingService(user, password) {
|
|
15
25
|
if (!this._srvInstance) {
|
|
16
|
-
const vl = this.vlf.initLog(await this.
|
|
26
|
+
const vl = this.vlf.initLog(await this._initS4UserSettingService);
|
|
17
27
|
const params = browser.config.params;
|
|
18
28
|
if (params?.systemUrl) {
|
|
19
29
|
try {
|
|
@@ -33,41 +43,95 @@ class UserSettings {
|
|
|
33
43
|
}
|
|
34
44
|
}
|
|
35
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* @function setLanguageFromUserSettings
|
|
48
|
+
* @memberOf flp.userSettings
|
|
49
|
+
* @description Sets the environment variable 'USER_SETTINGS_LANG_KEY' language from user settings.
|
|
50
|
+
* @param {String} user - The username for authentication.
|
|
51
|
+
* @param {String} password - The password for authentication.
|
|
52
|
+
* @example await flp.userSettings.setLanguageFromUserSettings("user", "password");
|
|
53
|
+
* @returns {Promise<void>} A promise that resolves when the language has been set.
|
|
54
|
+
*/
|
|
36
55
|
async setLanguageFromUserSettings(user, password) {
|
|
37
56
|
const vl = this.vlf.initLog(this.setLanguageFromUserSettings);
|
|
38
|
-
await this.
|
|
57
|
+
await this._initS4UserSettingService(user, password);
|
|
39
58
|
process.env.USER_SETTINGS_LANG_KEY = await this._getLanguageResponse(this._srvInstance);
|
|
40
59
|
util.console.info(`Language Key: ${process.env.USER_SETTINGS_LANG_KEY} was set.`);
|
|
41
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* @function setDateFormatFromUserSettings
|
|
63
|
+
* @memberOf flp.userSettings
|
|
64
|
+
* @description Sets the environment variable 'USER_SETTINGS_DATE_FORMAT' date format from user settings.
|
|
65
|
+
* @param {String} user - The username for authentication.
|
|
66
|
+
* @param {String} password - The password for authentication.
|
|
67
|
+
* @example await flp.userSettings.setDateFormatFromUserSettings("user", "password");
|
|
68
|
+
* @returns {Promise<void>} A promise that resolves when the date format has been set.
|
|
69
|
+
*/
|
|
42
70
|
async setDateFormatFromUserSettings(user, password) {
|
|
43
71
|
const vl = this.vlf.initLog(this.setDateFormatFromUserSettings);
|
|
44
|
-
await this.
|
|
72
|
+
await this._initS4UserSettingService(user, password);
|
|
45
73
|
process.env.USER_SETTINGS_DATE_FORMAT = await this._getDateFormatsResponse(this._srvInstance); //removes: the whitespace characters 0-* and the brackets including the content of the brackets.
|
|
46
74
|
util.console.info(`Date Format: ${process.env.USER_SETTINGS_DATE_FORMAT} was set.`);
|
|
47
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* @function setTimeFormatFromUserSettings
|
|
78
|
+
* @memberOf flp.userSettings
|
|
79
|
+
* @description Sets the environment variable 'USER_SETTINGS_DATE_FORMAT' time format from user settings.
|
|
80
|
+
* @param {String} user - The username for authentication.
|
|
81
|
+
* @param {String} password - The password for authentication.
|
|
82
|
+
* @example await flp.userSettings.setTimeFormatFromUserSettings("user", "password");
|
|
83
|
+
* @returns {Promise<void>} A promise that resolves when the time format has been set.
|
|
84
|
+
*/
|
|
48
85
|
async setTimeFormatFromUserSettings(user, password) {
|
|
49
86
|
const vl = this.vlf.initLog(this.setTimeFormatFromUserSettings);
|
|
50
|
-
await this.
|
|
87
|
+
await this._initS4UserSettingService(user, password);
|
|
51
88
|
process.env.USER_SETTINGS_TIME_FORMAT = await this._getTimeFormatResponse(this._srvInstance);
|
|
52
89
|
util.console.info(`Time Format: ${process.env.USER_SETTINGS_TIME_FORMAT} was set.`);
|
|
53
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* @function setTimeZoneFromUserSettings
|
|
93
|
+
* @memberOf flp.userSettings
|
|
94
|
+
* @description Sets the environment variable 'USER_SETTINGS_TIME_ZONE' time zone from user settings.
|
|
95
|
+
* @param {String} user - The username for authentication.
|
|
96
|
+
* @param {String} password - The password for authentication.
|
|
97
|
+
* @example await flp.userSettings.setTimeZoneFromUserSettings("user", "password");
|
|
98
|
+
* @returns {Promise<void>} A promise that resolves when the time zone has been set.
|
|
99
|
+
*/
|
|
54
100
|
async setTimeZoneFromUserSettings(user, password) {
|
|
55
101
|
const vl = this.vlf.initLog(this.setTimeZoneFromUserSettings);
|
|
56
|
-
await this.
|
|
102
|
+
await this._initS4UserSettingService(user, password);
|
|
57
103
|
const res = await service.odata.get(this._srvInstance, "UserProfileProperties", { id: "TIME_ZONE", shellType: "FLP" });
|
|
58
104
|
process.env.USER_SETTINGS_TIME_ZONE = await this._getTimeZoneResponse(this._srvInstance);
|
|
59
105
|
util.console.info(`Time Zone: ${process.env.USER_SETTINGS_TIME_ZONE} was set.`);
|
|
60
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* @function setNumberFormatFromUserSettings
|
|
109
|
+
* @memberOf flp.userSettings
|
|
110
|
+
* @description Sets the environment variable 'USER_SETTINGS_NUMBER_FORMAT' number format from user settings.
|
|
111
|
+
* @param {String} user - The username for authentication.
|
|
112
|
+
* @param {String} password - The password for authentication.
|
|
113
|
+
* @example await flp.userSettings.setNumberFormatFromUserSettings("user", "password");
|
|
114
|
+
* @returns {Promise<void>} A promise that resolves when the number format has been set.
|
|
115
|
+
*/
|
|
61
116
|
async setNumberFormatFromUserSettings(user, password) {
|
|
62
117
|
const vl = this.vlf.initLog(this.setNumberFormatFromUserSettings);
|
|
63
|
-
await this.
|
|
118
|
+
await this._initS4UserSettingService(user, password);
|
|
64
119
|
process.env.USER_SETTINGS_NUMBER_FORMAT = await this._getNumberFormatResponse(this._srvInstance);
|
|
65
120
|
util.console.info(`Number Format: ${process.env.USER_SETTINGS_NUMBER_FORMAT} was set.`);
|
|
66
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* @function setS4UserSettings
|
|
124
|
+
* @memberOf flp.userSettings
|
|
125
|
+
* @description Sets the user settings for S4.
|
|
126
|
+
* @param {String} user - The username for authentication.
|
|
127
|
+
* @param {String} password - The password for authentication.
|
|
128
|
+
* @example await flp.userSettings.setS4UserSettings("user", "password");
|
|
129
|
+
* @returns {Promise<void>} A promise that resolves when the user settings have been set.
|
|
130
|
+
*/
|
|
67
131
|
async setS4UserSettings(user, password) {
|
|
68
132
|
const vl = this.vlf.initLog(this.setS4UserSettings);
|
|
69
133
|
try {
|
|
70
|
-
await this.
|
|
134
|
+
await this._initS4UserSettingService(user, password);
|
|
71
135
|
await this.setDateFormatFromUserSettings(user, password);
|
|
72
136
|
await this.setLanguageFromUserSettings(user, password);
|
|
73
137
|
await this.setNumberFormatFromUserSettings(user, password);
|
|
@@ -78,30 +142,85 @@ class UserSettings {
|
|
|
78
142
|
vl.log(`Function: 'setUserSettingsForS4' failed: Unable to set the UserSettings: ${error}`);
|
|
79
143
|
}
|
|
80
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* @function getLanguageFromUserSettings
|
|
147
|
+
* @memberOf flp.userSettings
|
|
148
|
+
* @description Gets the language from user settings.
|
|
149
|
+
* @param {String} user - The username for authentication.
|
|
150
|
+
* @param {String} password - The password for authentication.
|
|
151
|
+
* @example const language = await flp.userSettings.getLanguageFromUserSettings("user", "password");
|
|
152
|
+
* @returns {Promise<String>} The language from user settings.
|
|
153
|
+
*/
|
|
81
154
|
async getLanguageFromUserSettings(user, password) {
|
|
82
155
|
const vl = this.vlf.initLog(this.getLanguageFromUserSettings);
|
|
83
|
-
await this.
|
|
156
|
+
await this._initS4UserSettingService(user, password);
|
|
84
157
|
return await this._getLanguageResponse(this._srvInstance);
|
|
85
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* @function getDateFormatFromUserSettings
|
|
161
|
+
* @memberOf flp.userSettings
|
|
162
|
+
* @description Gets the date format from user settings.
|
|
163
|
+
* @param {String} user - The username for authentication.
|
|
164
|
+
* @param {String} password - The password for authentication.
|
|
165
|
+
* @example const dateFormat = await flp.userSettings.getDateFormatFromUserSettings("user", "password");
|
|
166
|
+
* @returns {Promise<String>} The date format from user settings.
|
|
167
|
+
*/
|
|
86
168
|
async getDateFormatFromUserSettings(user, password) {
|
|
87
169
|
const vl = this.vlf.initLog(this.getDateFormatFromUserSettings);
|
|
88
|
-
await this.
|
|
170
|
+
await this._initS4UserSettingService(user, password);
|
|
89
171
|
return await this._getDateFormatsResponse(this._srvInstance);
|
|
90
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* @function getTimeFormatFromUserSettings
|
|
175
|
+
* @memberOf flp.userSettings
|
|
176
|
+
* @description Gets the time format from user settings.
|
|
177
|
+
* @param {String} user - The username for authentication.
|
|
178
|
+
* @param {String} password - The password for authentication.
|
|
179
|
+
* @example const timeFormat = await flp.userSettings.getTimeFormatFromUserSettings("user", "password");
|
|
180
|
+
* @returns {Promise<String>} The time format from user settings.
|
|
181
|
+
*/
|
|
91
182
|
async getTimeFormatFromUserSettings(user, password) {
|
|
92
183
|
const vl = this.vlf.initLog(this.getTimeFormatFromUserSettings);
|
|
93
|
-
await this.
|
|
184
|
+
await this._initS4UserSettingService(user, password);
|
|
94
185
|
return await this._getTimeFormatResponse(this._srvInstance);
|
|
95
186
|
}
|
|
187
|
+
/**
|
|
188
|
+
* @function getTimeZoneFromUserSettings
|
|
189
|
+
* @memberOf flp.userSettings
|
|
190
|
+
* @description Gets the time zone from user settings.
|
|
191
|
+
* @param {String} user - The username for authentication.
|
|
192
|
+
* @param {String} password - The password for authentication.
|
|
193
|
+
* @example const timeZone = await flp.userSettings.getTimeZoneFromUserSettings("user", "password");
|
|
194
|
+
* @returns {Promise<String>} The time zone from user settings.
|
|
195
|
+
*/
|
|
96
196
|
async getTimeZoneFromUserSettings(user, password) {
|
|
97
197
|
const vl = this.vlf.initLog(this.getTimeZoneFromUserSettings);
|
|
98
|
-
await this.
|
|
198
|
+
await this._initS4UserSettingService(user, password);
|
|
99
199
|
return await this._getTimeZoneResponse(this._srvInstance);
|
|
100
200
|
}
|
|
201
|
+
/**
|
|
202
|
+
* @function getNumberFormatFromUserSettings
|
|
203
|
+
* @memberOf flp.userSettings
|
|
204
|
+
* @description Gets the number format from user settings.
|
|
205
|
+
* @param {String} user - The username for authentication.
|
|
206
|
+
* @param {String} password - The password for authentication.
|
|
207
|
+
* @example const numberFormat = await flp.userSettings.getNumberFormatFromUserSettings("user", "password");
|
|
208
|
+
* @returns {Promise<String>} The number format from user settings.
|
|
209
|
+
*/
|
|
101
210
|
async getNumberFormatFromUserSettings(user, password) {
|
|
102
211
|
const vl = this.vlf.initLog(this.getNumberFormatFromUserSettings);
|
|
103
212
|
return await this._getNumberFormatResponse(this._srvInstance);
|
|
104
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* @private
|
|
216
|
+
* @function _getTimeZoneResponse
|
|
217
|
+
* @memberOf flp.userSettings
|
|
218
|
+
* @description Gets the time zone from user settings.
|
|
219
|
+
* @param {Object} srvInstance - The service instance.
|
|
220
|
+
* @example const timeZone = await flp.userSettings._getTimeZoneResponse(srvInstance);
|
|
221
|
+
* @returns {Promise<String>} The time zone from user settings.
|
|
222
|
+
* @throws {Error} Thrown if the time zone could not be retrieved.
|
|
223
|
+
*/
|
|
105
224
|
async _getTimeZoneResponse(srvInstance) {
|
|
106
225
|
try {
|
|
107
226
|
const res = await service.odata.get(srvInstance, "UserProfileProperties", { id: "TIME_ZONE", shellType: "FLP" });
|
|
@@ -116,6 +235,16 @@ class UserSettings {
|
|
|
116
235
|
}
|
|
117
236
|
}
|
|
118
237
|
}
|
|
238
|
+
/**
|
|
239
|
+
* @private
|
|
240
|
+
* @function _getTimeFormatResponse
|
|
241
|
+
* @memberOf flp.userSettings
|
|
242
|
+
* @description Gets the time format from user settings.
|
|
243
|
+
* @param {Object} srvInstance - The service instance.
|
|
244
|
+
* @example const timeFormat = await flp.userSettings._getTimeFormatResponse(srvInstance);
|
|
245
|
+
* @returns {Promise<String>} The time format from user settings.
|
|
246
|
+
* @throws {Error} Thrown if the time format could not be retrieved.
|
|
247
|
+
*/
|
|
119
248
|
async _getTimeFormatResponse(srvInstance) {
|
|
120
249
|
try {
|
|
121
250
|
const res = await service.odata.get(srvInstance, "UserProfileProperties", { id: "TIME_FORMAT", shellType: "FLP" });
|
|
@@ -131,6 +260,16 @@ class UserSettings {
|
|
|
131
260
|
}
|
|
132
261
|
}
|
|
133
262
|
}
|
|
263
|
+
/**
|
|
264
|
+
* @private
|
|
265
|
+
* @function _getDateFormatsResponse
|
|
266
|
+
* @memberOf flp.userSettings
|
|
267
|
+
* @description Gets the date format from user settings.
|
|
268
|
+
* @param {Object} srvInstance - The service instance.
|
|
269
|
+
* @example const dateFormat = await flp.userSettings._getDateFormatsResponse(srvInstance);
|
|
270
|
+
* @returns {Promise<String>} The date format from user settings.
|
|
271
|
+
* @throws {Error} Thrown if the date format could not be retrieved.
|
|
272
|
+
*/
|
|
134
273
|
async _getDateFormatsResponse(srvInstance) {
|
|
135
274
|
try {
|
|
136
275
|
const res = await service.odata.get(srvInstance, "UserProfileProperties", { id: "DATE_FORMAT", shellType: "FLP" });
|
|
@@ -146,6 +285,16 @@ class UserSettings {
|
|
|
146
285
|
}
|
|
147
286
|
}
|
|
148
287
|
}
|
|
288
|
+
/**
|
|
289
|
+
* @private
|
|
290
|
+
* @function _getLanguageResponse
|
|
291
|
+
* @memberOf flp.userSettings
|
|
292
|
+
* @description Gets the language from user settings.
|
|
293
|
+
* @param {Object} srvInstance - The service instance.
|
|
294
|
+
* @example const language = await flp.userSettings._getLanguageResponse(srvInstance);
|
|
295
|
+
* @returns {Promise<String>} The language from user settings.
|
|
296
|
+
* @throws {Error} Thrown if the language could not be retrieved.
|
|
297
|
+
*/
|
|
149
298
|
async _getLanguageResponse(srvInstance) {
|
|
150
299
|
try {
|
|
151
300
|
const res = await service.odata.get(srvInstance, "UserProfileProperties", { id: "LANGUAGE", shellType: "FLP" });
|
|
@@ -160,6 +309,16 @@ class UserSettings {
|
|
|
160
309
|
}
|
|
161
310
|
}
|
|
162
311
|
}
|
|
312
|
+
/**
|
|
313
|
+
* @private
|
|
314
|
+
* @function _getNumberFormatResponse
|
|
315
|
+
* @memberOf flp.userSettings
|
|
316
|
+
* @description Gets the number format from user settings.
|
|
317
|
+
* @param {Object} srvInstance - The service instance.
|
|
318
|
+
* @example const numberFormat = await flp.userSettings._getNumberFormatResponse(srvInstance);
|
|
319
|
+
* @returns {Promise<String>} The number format from user settings.
|
|
320
|
+
* @throws {Error} Thrown if the number format could not be retrieved.
|
|
321
|
+
*/
|
|
163
322
|
async _getNumberFormatResponse(srvInstance) {
|
|
164
323
|
try {
|
|
165
324
|
const res = await service.odata.get(srvInstance, "UserProfileProperties", { id: "NUMBER_FORMAT", shellType: "FLP" });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userSettings.js","sourceRoot":"","sources":["../../../../src/reuse/modules/flp/userSettings.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb,8DAAkE;AAElE;;;GAGG;AAEH,MAAa,YAAY;IAAzB;QACU,QAAG,GAAG,IAAI,oCAAoB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACvD,iBAAY,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"userSettings.js","sourceRoot":"","sources":["../../../../src/reuse/modules/flp/userSettings.ts"],"names":[],"mappings":"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"}
|