react-native-rook-sdk 4.0.0-beta.1 → 4.0.0

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 (332) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +3 -35
  3. package/android/build.gradle +45 -20
  4. package/android/gradle.properties +5 -5
  5. package/android/src/main/AndroidManifest.xml +2 -1
  6. package/android/src/main/AndroidManifestNew.xml +36 -0
  7. package/android/src/main/java/com/rooksdk/RookSdkModule.kt +263 -11
  8. package/android/src/main/java/com/rooksdk/RookSdkPackage.kt +42 -26
  9. package/android/src/main/java/com/rooksdk/broadcasts/AndroidPermissionsReceiverTransmitter.kt +65 -0
  10. package/android/src/main/java/com/rooksdk/broadcasts/HealthConnectPermissionsReceiverTransmitter.kt +70 -0
  11. package/android/src/main/java/com/rooksdk/broadcasts/SamsungHealthPermissionsReceiverTransmitter.kt +52 -0
  12. package/android/src/main/java/com/rooksdk/modules/RookBackgroundSyncModule.kt +99 -0
  13. package/android/src/main/java/com/rooksdk/modules/RookConfigurationModule.kt +182 -0
  14. package/android/src/main/java/com/rooksdk/modules/RookLocalData.kt +301 -0
  15. package/android/src/main/java/com/rooksdk/modules/RookPermissionsModule.kt +359 -0
  16. package/android/src/main/java/com/rooksdk/modules/RookSourcesModule.kt +102 -0
  17. package/android/src/main/java/com/rooksdk/modules/RookStepsModule.kt +119 -0
  18. package/android/src/main/java/com/rooksdk/modules/RookSyncModule.kt +551 -0
  19. package/android/src/main/java/com/rooksdk/utils/DatasourcesUtils.kt +34 -0
  20. package/android/src/main/java/com/rooksdk/utils/PermissionConversion.kt +21 -0
  21. package/android/src/main/java/com/rooksdk/utils/ReadableToWritable.kt +145 -0
  22. package/android/src/main/java/com/rooksdk/utils/RookDateTime.kt +26 -0
  23. package/android/src/main/java/com/rooksdk/utils/RookGsonBuilder.kt +17 -0
  24. package/android/src/main/java/com/rooksdk/utils/SamsungAvailability.kt +21 -0
  25. package/android/src/main/java/com/rooksdk/utils/Source.kt +6 -0
  26. package/android/src/main/java/com/rooksdk/utils/StringToSyncType.kt +41 -0
  27. package/android/src/main/java/com/rooksdk/utils/serializers/InstantSerializer.kt +19 -0
  28. package/android/src/main/java/com/rooksdk/utils/serializers/LocalDateSerializer.kt +21 -0
  29. package/android/src/main/res/drawable/ic_health_connect.xml +19 -0
  30. package/android/src/main/res/values/themes.xml +3 -0
  31. package/ios/DateHelper.swift +4 -4
  32. package/ios/EncodableDataSource.swift +3 -2
  33. package/ios/EncodableDataSourceAuthorizer.swift +3 -2
  34. package/ios/{HearRateMapper.swift → EncodableHeartRate.swift} +3 -3
  35. package/ios/EncodableRookDataSource.swift +36 -0
  36. package/ios/EncodableSDKState.swift +94 -0
  37. package/ios/EncodableStatusDataSources.swift +47 -0
  38. package/ios/NutritionMapper.swift +114 -0
  39. package/ios/RookBackground.swift +8 -5
  40. package/ios/RookBackgroundModule.h +5 -0
  41. package/ios/RookBackgroundModule.mm +15 -0
  42. package/ios/RookConfiguration.swift +34 -24
  43. package/ios/RookConfigurationModule.h +5 -0
  44. package/ios/RookConfigurationModule.mm +22 -0
  45. package/ios/RookExternalModule.h +5 -0
  46. package/ios/RookExternalModule.m +31 -0
  47. package/ios/{RookData.swift → RookLocalData.swift} +70 -48
  48. package/ios/RookPermissions.swift +33 -5
  49. package/ios/RookPermissionsModule.h +5 -0
  50. package/ios/RookPermissionsModule.mm +20 -0
  51. package/ios/RookSdk.h +2 -14
  52. package/ios/RookSdk.mm +97 -546
  53. package/ios/RookSources.swift +54 -60
  54. package/ios/RookSourcesModule.h +5 -0
  55. package/ios/RookSourcesModule.mm +18 -0
  56. package/ios/RookSync.h +5 -0
  57. package/ios/RookSync.m +35 -0
  58. package/ios/RookSync.swift +78 -48
  59. package/ios/SwiftTest.swift +18 -0
  60. package/ios/react-native-rook-sdk-Bridging-Header.h +12 -0
  61. package/{src/context/RookSyncGateContext.ts → lib/commonjs/context/RookSyncGateContext.js} +13 -10
  62. package/lib/commonjs/context/RookSyncGateContext.js.map +1 -0
  63. package/lib/commonjs/context/RookSyncGateProvider.js +108 -0
  64. package/lib/commonjs/context/RookSyncGateProvider.js.map +1 -0
  65. package/{src/context/RookSyncGateReducer.ts → lib/commonjs/context/RookSyncGateReducer.js} +44 -13
  66. package/lib/commonjs/context/RookSyncGateReducer.js.map +1 -0
  67. package/lib/commonjs/context/RookSyncGateTypes.js +6 -0
  68. package/lib/commonjs/context/RookSyncGateTypes.js.map +1 -0
  69. package/lib/commonjs/context/index.js +14 -0
  70. package/lib/commonjs/context/index.js.map +1 -0
  71. package/lib/commonjs/hooks/index.js +76 -0
  72. package/lib/commonjs/hooks/index.js.map +1 -0
  73. package/{src/hooks/useRookAPISources.ts → lib/commonjs/hooks/useRookAPISources.js} +36 -40
  74. package/lib/commonjs/hooks/useRookAPISources.js.map +1 -0
  75. package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js +88 -0
  76. package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js.map +1 -0
  77. package/lib/commonjs/hooks/useRookAppleHealth.js +63 -0
  78. package/lib/commonjs/hooks/useRookAppleHealth.js.map +1 -0
  79. package/lib/commonjs/hooks/useRookConfiguration.js +113 -0
  80. package/lib/commonjs/hooks/useRookConfiguration.js.map +1 -0
  81. package/lib/commonjs/hooks/useRookData.js +116 -0
  82. package/lib/commonjs/hooks/useRookData.js.map +1 -0
  83. package/lib/commonjs/hooks/useRookHealthConnect.js +70 -0
  84. package/lib/commonjs/hooks/useRookHealthConnect.js.map +1 -0
  85. package/lib/commonjs/hooks/useRookPermissions.js +211 -0
  86. package/lib/commonjs/hooks/useRookPermissions.js.map +1 -0
  87. package/lib/commonjs/hooks/useRookSamsungHealth.js +54 -0
  88. package/lib/commonjs/hooks/useRookSamsungHealth.js.map +1 -0
  89. package/lib/commonjs/hooks/useRookSync.js +148 -0
  90. package/lib/commonjs/hooks/useRookSync.js.map +1 -0
  91. package/lib/commonjs/hooks/useRookVariables.js +93 -0
  92. package/lib/commonjs/hooks/useRookVariables.js.map +1 -0
  93. package/lib/commonjs/index.js +121 -0
  94. package/lib/commonjs/index.js.map +1 -0
  95. package/lib/commonjs/modules/hook/useRookAutoSync.js +261 -0
  96. package/lib/commonjs/modules/hook/useRookAutoSync.js.map +1 -0
  97. package/lib/commonjs/modules/types/sendMessageBroadcast.js +2 -0
  98. package/lib/commonjs/modules/types/sendMessageBroadcast.js.map +1 -0
  99. package/lib/commonjs/modules/utils/errors.js +12 -0
  100. package/lib/commonjs/modules/utils/errors.js.map +1 -0
  101. package/lib/commonjs/types/ActivityEvent.js +6 -0
  102. package/lib/commonjs/types/ActivityEvent.js.map +1 -0
  103. package/lib/commonjs/types/AppleHealthNutritionEvent.js +77 -0
  104. package/lib/commonjs/types/AppleHealthNutritionEvent.js.map +1 -0
  105. package/lib/{module/NativeRookSdk.js → commonjs/types/AppleHealthPermissions.js} +7 -45
  106. package/lib/commonjs/types/AppleHealthPermissions.js.map +1 -0
  107. package/lib/commonjs/types/AuthorizedSources.js +6 -0
  108. package/lib/commonjs/types/AuthorizedSources.js.map +1 -0
  109. package/lib/commonjs/types/BodySummary.js +6 -0
  110. package/lib/{module/types/Rook.js.map → commonjs/types/BodySummary.js.map} +1 -1
  111. package/lib/commonjs/types/DataSource.js +16 -0
  112. package/lib/commonjs/types/DataSource.js.map +1 -0
  113. package/lib/commonjs/types/DiagnosticState.js +2 -0
  114. package/lib/commonjs/types/DiagnosticState.js.map +1 -0
  115. package/lib/commonjs/types/HCMealData.js +65 -0
  116. package/lib/commonjs/types/HCMealData.js.map +1 -0
  117. package/lib/commonjs/types/HeartRateEvent.js +2 -0
  118. package/lib/commonjs/types/HeartRateEvent.js.map +1 -0
  119. package/lib/commonjs/types/PermissionsType.js +2 -0
  120. package/lib/commonjs/types/PermissionsType.js.map +1 -0
  121. package/lib/commonjs/types/PhysicalSummary.js +6 -0
  122. package/lib/commonjs/types/PhysicalSummary.js.map +1 -0
  123. package/lib/commonjs/types/SDKSources.js +13 -0
  124. package/lib/commonjs/types/SDKSources.js.map +1 -0
  125. package/lib/commonjs/types/SamsungHealthPermissions.js +23 -0
  126. package/lib/commonjs/types/SamsungHealthPermissions.js.map +1 -0
  127. package/lib/commonjs/types/SleepSummary.js +6 -0
  128. package/lib/commonjs/types/SleepSummary.js.map +1 -0
  129. package/lib/commonjs/types/SummaryTypes.js +2 -0
  130. package/lib/commonjs/types/SummaryTypes.js.map +1 -0
  131. package/lib/commonjs/types/SyncTypes.js +33 -0
  132. package/lib/commonjs/types/SyncTypes.js.map +1 -0
  133. package/lib/commonjs/types/WriteNutrition.js +18 -0
  134. package/lib/commonjs/types/WriteNutrition.js.map +1 -0
  135. package/lib/commonjs/utils/getNativeModule.js +29 -0
  136. package/lib/commonjs/utils/getNativeModule.js.map +1 -0
  137. package/lib/commonjs/utils/getRookModule.js +28 -0
  138. package/lib/commonjs/utils/getRookModule.js.map +1 -0
  139. package/{src/utils/isModuleReady.ts → lib/commonjs/utils/isModuleReady.js} +10 -4
  140. package/lib/commonjs/utils/isModuleReady.js.map +1 -0
  141. package/lib/commonjs/utils/isRunningOnAndroid.js +15 -0
  142. package/lib/commonjs/utils/isRunningOnAndroid.js.map +1 -0
  143. package/lib/commonjs/utils/isRunningOniOS.js +15 -0
  144. package/lib/commonjs/utils/isRunningOniOS.js.map +1 -0
  145. package/lib/commonjs/utils/isValidDate.js +41 -0
  146. package/lib/commonjs/utils/isValidDate.js.map +1 -0
  147. package/lib/commonjs/utils/nativeModules.js +29 -0
  148. package/lib/commonjs/utils/nativeModules.js.map +1 -0
  149. package/lib/commonjs/utils/packageInfo.js +13 -0
  150. package/lib/commonjs/utils/packageInfo.js.map +1 -0
  151. package/lib/module/context/RookSyncGateContext.js +0 -2
  152. package/lib/module/context/RookSyncGateContext.js.map +1 -1
  153. package/lib/module/context/RookSyncGateProvider.js +31 -22
  154. package/lib/module/context/RookSyncGateProvider.js.map +1 -1
  155. package/lib/module/context/RookSyncGateReducer.js +12 -4
  156. package/lib/module/context/RookSyncGateReducer.js.map +1 -1
  157. package/lib/module/context/RookSyncGateTypes.js +0 -2
  158. package/lib/module/context/index.js +2 -0
  159. package/lib/module/context/index.js.map +1 -0
  160. package/lib/module/hooks/index.js +11 -0
  161. package/lib/module/hooks/index.js.map +1 -0
  162. package/lib/module/hooks/useRookAPISources.js +16 -10
  163. package/lib/module/hooks/useRookAPISources.js.map +1 -1
  164. package/lib/module/hooks/useRookAndroidBackgroundSteps.js +12 -11
  165. package/lib/module/hooks/useRookAndroidBackgroundSteps.js.map +1 -1
  166. package/lib/module/hooks/useRookAppleHealth.js +10 -9
  167. package/lib/module/hooks/useRookAppleHealth.js.map +1 -1
  168. package/lib/module/hooks/useRookConfiguration.js +34 -10
  169. package/lib/module/hooks/useRookConfiguration.js.map +1 -1
  170. package/lib/module/hooks/useRookData.js +45 -31
  171. package/lib/module/hooks/useRookData.js.map +1 -1
  172. package/lib/module/hooks/useRookHealthConnect.js +10 -9
  173. package/lib/module/hooks/useRookHealthConnect.js.map +1 -1
  174. package/lib/module/hooks/useRookPermissions.js +49 -26
  175. package/lib/module/hooks/useRookPermissions.js.map +1 -1
  176. package/lib/module/hooks/useRookSamsungHealth.js +20 -8
  177. package/lib/module/hooks/useRookSamsungHealth.js.map +1 -1
  178. package/lib/module/hooks/useRookSync.js +32 -23
  179. package/lib/module/hooks/useRookSync.js.map +1 -1
  180. package/lib/module/hooks/useRookVariables.js +37 -19
  181. package/lib/module/hooks/useRookVariables.js.map +1 -1
  182. package/lib/module/index.js +10 -18
  183. package/lib/module/index.js.map +1 -1
  184. package/lib/module/modules/hook/useRookAutoSync.js +40 -27
  185. package/lib/module/modules/hook/useRookAutoSync.js.map +1 -1
  186. package/lib/module/modules/types/sendMessageBroadcast.js +1 -1
  187. package/lib/module/modules/utils/errors.js +0 -2
  188. package/lib/module/modules/utils/errors.js.map +1 -1
  189. package/lib/module/types/ActivityEvent.js +0 -2
  190. package/lib/module/types/AppleHealthNutritionEvent.js +70 -0
  191. package/lib/module/types/AppleHealthNutritionEvent.js.map +1 -0
  192. package/lib/module/types/AppleHealthPermissions.js +0 -2
  193. package/lib/module/types/AppleHealthPermissions.js.map +1 -1
  194. package/lib/module/types/AuthorizedSources.js +0 -2
  195. package/lib/module/types/BodySummary.js +0 -2
  196. package/lib/module/types/DataSource.js +0 -2
  197. package/lib/module/types/DataSource.js.map +1 -1
  198. package/lib/module/types/DiagnosticState.js +2 -0
  199. package/lib/module/types/DiagnosticState.js.map +1 -0
  200. package/lib/module/types/HCMealData.js +59 -0
  201. package/lib/module/types/HCMealData.js.map +1 -0
  202. package/lib/module/types/HeartRateEvent.js +1 -1
  203. package/lib/module/types/PermissionsType.js +1 -1
  204. package/lib/module/types/PhysicalSummary.js +0 -2
  205. package/lib/module/types/SDKSources.js +0 -2
  206. package/lib/module/types/SDKSources.js.map +1 -1
  207. package/lib/module/types/SamsungHealthPermissions.js +0 -3
  208. package/lib/module/types/SamsungHealthPermissions.js.map +1 -1
  209. package/lib/module/types/SleepSummary.js +0 -2
  210. package/lib/module/types/SummaryTypes.js +1 -1
  211. package/lib/module/types/SyncTypes.js +0 -2
  212. package/lib/module/types/SyncTypes.js.map +1 -1
  213. package/lib/module/types/WriteNutrition.js +12 -0
  214. package/lib/module/types/WriteNutrition.js.map +1 -0
  215. package/lib/module/utils/getNativeModule.js +23 -0
  216. package/lib/module/utils/getNativeModule.js.map +1 -0
  217. package/lib/module/utils/getRookModule.js +22 -0
  218. package/lib/module/utils/getRookModule.js.map +1 -0
  219. package/lib/module/utils/isModuleReady.js +0 -2
  220. package/lib/module/utils/isModuleReady.js.map +1 -1
  221. package/lib/module/utils/isRunningOnAndroid.js +0 -2
  222. package/lib/module/utils/isRunningOnAndroid.js.map +1 -1
  223. package/lib/module/utils/isRunningOniOS.js +0 -2
  224. package/lib/module/utils/isRunningOniOS.js.map +1 -1
  225. package/lib/module/utils/isValidDate.js +20 -2
  226. package/lib/module/utils/isValidDate.js.map +1 -1
  227. package/lib/module/utils/nativeModules.js +23 -0
  228. package/lib/module/utils/nativeModules.js.map +1 -0
  229. package/lib/module/utils/packageInfo.js +7 -0
  230. package/lib/module/utils/packageInfo.js.map +1 -0
  231. package/lib/typescript/src/context/RookSyncGateContext.d.ts.map +1 -1
  232. package/lib/typescript/src/context/RookSyncGateProvider.d.ts.map +1 -1
  233. package/lib/typescript/src/context/RookSyncGateReducer.d.ts.map +1 -1
  234. package/lib/typescript/src/context/RookSyncGateTypes.d.ts +14 -4
  235. package/lib/typescript/src/context/RookSyncGateTypes.d.ts.map +1 -1
  236. package/lib/typescript/src/context/index.d.ts +2 -0
  237. package/lib/typescript/src/context/index.d.ts.map +1 -0
  238. package/lib/typescript/src/hooks/index.d.ts +11 -0
  239. package/lib/typescript/src/hooks/index.d.ts.map +1 -0
  240. package/lib/typescript/src/hooks/useRookAPISources.d.ts.map +1 -1
  241. package/lib/typescript/src/hooks/useRookAndroidBackgroundSteps.d.ts.map +1 -1
  242. package/lib/typescript/src/hooks/useRookAppleHealth.d.ts.map +1 -1
  243. package/lib/typescript/src/hooks/useRookConfiguration.d.ts +3 -1
  244. package/lib/typescript/src/hooks/useRookConfiguration.d.ts.map +1 -1
  245. package/lib/typescript/src/hooks/useRookData.d.ts +2 -2
  246. package/lib/typescript/src/hooks/useRookData.d.ts.map +1 -1
  247. package/lib/typescript/src/hooks/useRookHealthConnect.d.ts.map +1 -1
  248. package/lib/typescript/src/hooks/useRookPermissions.d.ts +2 -0
  249. package/lib/typescript/src/hooks/useRookPermissions.d.ts.map +1 -1
  250. package/lib/typescript/src/hooks/useRookSamsungHealth.d.ts +6 -0
  251. package/lib/typescript/src/hooks/useRookSamsungHealth.d.ts.map +1 -1
  252. package/lib/typescript/src/hooks/useRookSync.d.ts.map +1 -1
  253. package/lib/typescript/src/hooks/useRookVariables.d.ts +2 -0
  254. package/lib/typescript/src/hooks/useRookVariables.d.ts.map +1 -1
  255. package/lib/typescript/src/index.d.ts +8 -17
  256. package/lib/typescript/src/index.d.ts.map +1 -1
  257. package/lib/typescript/src/modules/hook/useRookAutoSync.d.ts.map +1 -1
  258. package/lib/typescript/src/types/AppleHealthNutritionEvent.d.ts +76 -0
  259. package/lib/typescript/src/types/AppleHealthNutritionEvent.d.ts.map +1 -0
  260. package/lib/typescript/src/types/AuthorizedSources.d.ts +0 -11
  261. package/lib/typescript/src/types/AuthorizedSources.d.ts.map +1 -1
  262. package/lib/typescript/src/types/DiagnosticState.d.ts +13 -0
  263. package/lib/typescript/src/types/DiagnosticState.d.ts.map +1 -0
  264. package/lib/typescript/src/types/HCMealData.d.ts +60 -0
  265. package/lib/typescript/src/types/HCMealData.d.ts.map +1 -0
  266. package/lib/typescript/src/types/HeartRateEvent.d.ts +2 -2
  267. package/lib/typescript/src/types/HeartRateEvent.d.ts.map +1 -1
  268. package/lib/typescript/src/types/SamsungHealthPermissions.d.ts +0 -1
  269. package/lib/typescript/src/types/SamsungHealthPermissions.d.ts.map +1 -1
  270. package/lib/typescript/src/types/SyncTypes.d.ts +1 -5
  271. package/lib/typescript/src/types/SyncTypes.d.ts.map +1 -1
  272. package/lib/typescript/src/types/WriteNutrition.d.ts +61 -0
  273. package/lib/typescript/src/types/WriteNutrition.d.ts.map +1 -0
  274. package/lib/typescript/src/utils/getNativeModule.d.ts +10 -0
  275. package/lib/typescript/src/utils/getNativeModule.d.ts.map +1 -0
  276. package/lib/typescript/src/utils/getRookModule.d.ts +9 -0
  277. package/lib/typescript/src/utils/getRookModule.d.ts.map +1 -0
  278. package/lib/typescript/src/utils/isModuleReady.d.ts.map +1 -1
  279. package/lib/typescript/src/utils/isValidDate.d.ts +8 -0
  280. package/lib/typescript/src/utils/isValidDate.d.ts.map +1 -1
  281. package/lib/typescript/src/utils/nativeModules.d.ts +24 -0
  282. package/lib/typescript/src/utils/nativeModules.d.ts.map +1 -0
  283. package/lib/typescript/src/utils/packageInfo.d.ts +6 -0
  284. package/lib/typescript/src/utils/packageInfo.d.ts.map +1 -0
  285. package/package.json +98 -94
  286. package/react-native-rook-sdk.podspec +45 -0
  287. package/RNRookSdk.podspec +0 -22
  288. package/ios/Encodable.swift +0 -25
  289. package/ios/RookEntry.swift +0 -61
  290. package/ios/RookSdk-Bridging-Header.h +0 -12
  291. package/ios/boost-boost_privacy-Bridging-Header.h +0 -4
  292. package/lib/module/NativeRookSdk.js.map +0 -1
  293. package/lib/module/package.json +0 -1
  294. package/lib/module/types/Rook.js +0 -2
  295. package/lib/typescript/package.json +0 -1
  296. package/lib/typescript/src/NativeRookSdk.d.ts +0 -190
  297. package/lib/typescript/src/NativeRookSdk.d.ts.map +0 -1
  298. package/lib/typescript/src/types/Rook.d.ts +0 -9
  299. package/lib/typescript/src/types/Rook.d.ts.map +0 -1
  300. package/src/NativeRookSdk.ts +0 -281
  301. package/src/context/RookSyncGateProvider.tsx +0 -78
  302. package/src/context/RookSyncGateTypes.ts +0 -34
  303. package/src/hooks/useRookAndroidBackgroundSteps.ts +0 -81
  304. package/src/hooks/useRookAppleHealth.ts +0 -55
  305. package/src/hooks/useRookConfiguration.ts +0 -82
  306. package/src/hooks/useRookData.ts +0 -122
  307. package/src/hooks/useRookHealthConnect.ts +0 -59
  308. package/src/hooks/useRookPermissions.ts +0 -224
  309. package/src/hooks/useRookSamsungHealth.ts +0 -37
  310. package/src/hooks/useRookSync.ts +0 -157
  311. package/src/hooks/useRookVariables.ts +0 -77
  312. package/src/index.tsx +0 -28
  313. package/src/modules/hook/useRookAutoSync.ts +0 -305
  314. package/src/modules/types/sendMessageBroadcast.ts +0 -5
  315. package/src/modules/utils/errors.ts +0 -9
  316. package/src/types/ActivityEvent.ts +0 -159
  317. package/src/types/AppleHealthPermissions.ts +0 -49
  318. package/src/types/AuthorizedSources.ts +0 -33
  319. package/src/types/BodySummary.ts +0 -116
  320. package/src/types/DataSource.ts +0 -16
  321. package/src/types/HeartRateEvent.ts +0 -26
  322. package/src/types/PermissionsType.ts +0 -9
  323. package/src/types/PhysicalSummary.ts +0 -84
  324. package/src/types/Rook.ts +0 -8
  325. package/src/types/SDKSources.ts +0 -5
  326. package/src/types/SamsungHealthPermissions.ts +0 -16
  327. package/src/types/SleepSummary.ts +0 -66
  328. package/src/types/SummaryTypes.ts +0 -70
  329. package/src/types/SyncTypes.ts +0 -63
  330. package/src/utils/isRunningOnAndroid.ts +0 -10
  331. package/src/utils/isRunningOniOS.ts +0 -10
  332. package/src/utils/isValidDate.ts +0 -15
@@ -1,9 +0,0 @@
1
- export type RookConfig = {
2
- environment: string;
3
- clientUUID: string;
4
- password: string;
5
- enableLogs: boolean;
6
- enableEventsBackgroundSync: boolean;
7
- enableBackground: boolean;
8
- };
9
- //# sourceMappingURL=Rook.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Rook.d.ts","sourceRoot":"","sources":["../../../../src/types/Rook.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,0BAA0B,EAAE,OAAO,CAAC;IACpC,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC"}
@@ -1,281 +0,0 @@
1
- import type { TurboModule, CodegenTypes } from 'react-native';
2
- import { TurboModuleRegistry, NativeModules } from 'react-native';
3
-
4
- type RookConfig = {
5
- environment: string;
6
- clientUUID: string;
7
- password: string;
8
- enableLogs: boolean;
9
- enableEventsBackgroundSync: boolean;
10
- enableBackground: boolean;
11
- };
12
-
13
- enum APIDataSource {
14
- GARMIN = 'Garmin',
15
- OURA = 'Oura',
16
- POLAR = 'Polar',
17
- FITBIT = 'Fitbit',
18
- WITHINGS = 'Withings',
19
- WHOOP = 'Whoop',
20
- }
21
-
22
- type DataSourceProps = {
23
- userID: string;
24
- dataSource: APIDataSource;
25
- redirectURL?: string;
26
- };
27
-
28
- type DataSourceAuthorizer = {
29
- dataSource: string;
30
- authorized: boolean;
31
- authorizationUrl?: string;
32
- };
33
-
34
- type AuthorizedSource = {
35
- name: string;
36
- imageUrl: string;
37
- authorized: boolean;
38
- };
39
-
40
- enum SDKDataSource {
41
- HEALTH_CONNECT = 'HEALTH_CONNECT',
42
- SAMSUNG_HEALTH = 'SAMSUNG_HEALTH',
43
- APPLE_HEALTH = 'APPLE_HEALTH',
44
- }
45
-
46
- type RequestStatusPermissions = 'REQUEST_SENT' | 'ALREADY_GRANTED';
47
-
48
- type BackgroundStatus =
49
- | 'UNAVAILABLE'
50
- | 'PERMISSION_NOT_GRANTED'
51
- | 'PERMISSION_GRANTED';
52
-
53
- type CheckAvailabilityResponse =
54
- | 'INSTALLED'
55
- | 'NOT_INSTALLED'
56
- | 'DISABLED'
57
- | 'NOT_READY'
58
- | 'OUTDATED'
59
- | 'NOT_SUPPORTED';
60
-
61
- type PermissionStatus =
62
- | 'PERMISSION_NOT_REQUESTED'
63
- | 'PERMISSION_INDETERMINATE'
64
- | 'PERMISSION_GRANTED';
65
-
66
- enum SamsungHealthPermission {
67
- ACTIVITY_SUMMARY = 'ACTIVITY_SUMMARY',
68
- BODY_TEMPERATURE = 'BODY_TEMPERATURE',
69
- BLOOD_GLUCOSE = 'BLOOD_GLUCOSE',
70
- BLOOD_OXYGEN = 'BLOOD_OXYGEN',
71
- BLOOD_PRESSURE = 'BLOOD_PRESSURE',
72
- BODY_COMPOSITION = 'BODY_COMPOSITION',
73
- EXERCISE = 'EXERCISE',
74
- EXERCISE_LOCATION = 'EXERCISE_LOCATION',
75
- FLOORS_CLIMBED = 'FLOORS_CLIMBED',
76
- HEART_RATE = 'HEART_RATE',
77
- NUTRITION = 'NUTRITION',
78
- SLEEP = 'SLEEP',
79
- STEPS = 'STEPS',
80
- WATER_INTAKE = 'WATER_INTAKE',
81
- }
82
-
83
- enum AppleHealthPermission {
84
- APPLE_EXERCISE_TIME = 'appleExerciseTime',
85
- APPLE_MOVE_TIME = 'appleMoveTime',
86
- APPLE_STAND_TIME = 'appleStandTime',
87
- BASAL_ENERGY_BURNED = 'basalEnergyBurned',
88
- ACTIVE_ENERGY_BURNED = 'activeEnergyBurned',
89
- STEP_COUNT = 'stepCount',
90
- DISTANCE_CYCLING = 'distanceCycling',
91
- DISTANCE_WALKING_RUNNING = 'distanceWalkingRunning',
92
- DISTANCE_SWIMMING = 'distanceSwimming',
93
- SWIMMING_STROKE_COUNT = 'swimmingStrokeCount',
94
- FLIGHTS_CLIMBED = 'flightsClimbed',
95
- WALKING_SPEED = 'walkingSpeed',
96
- WALKING_STEP_LENGTH = 'walkingStepLength',
97
- RUNNING_POWER = 'runningPower',
98
- RUNNING_SPEED = 'runningSpeed',
99
- HEIGHT = 'height',
100
- BODY_MASS = 'bodyMass',
101
- BODY_MASS_INDEX = 'bodyMassIndex',
102
- WAIST_CIRCUMFERENCE = 'waistCircumference',
103
- BODY_FAT_PERCENTAGE = 'bodyFatPercentage',
104
- BODY_TEMPERATURE = 'bodyTemperature',
105
- BASAL_BODY_TEMPERATURE = 'basalBodyTemperature',
106
- APPLE_SLEEPING_WRIST_TEMPERATURE = 'appleSleepingWristTemperature',
107
- HEART_RATE = 'heartRate',
108
- RESTING_HEART_RATE = 'restingHeartRate',
109
- WALKING_HEART_RATE_AVERAGE = 'walkingHeartRateAverage',
110
- HEART_RATE_VARIABILITY_SDNN = 'heartRateVariabilitySDNN',
111
- ELECTROCARDIOGRAM = 'electrocardiogram',
112
- WORKOUT = 'workout',
113
- SLEEP_ANALYSIS = 'sleepAnalysis',
114
- VO2_MAX = 'vo2Max',
115
- OXYGEN_SATURATION = 'oxygenSaturation',
116
- RESPIRATORY_RATE = 'respiratoryRate',
117
- UV_EXPOSURE = 'uvExposure',
118
- BIOLOGICAL_SEX = 'biologicalSex',
119
- DATE_OF_BIRTH = 'dateOfBirth',
120
- BLOOD_PRESSURE_SYSTOLIC = 'bloodPressureSystolic',
121
- BLOOD_PRESSURE_DIASTOLIC = 'bloodPressureDiastolic',
122
- BLOOD_GLUCOSE = 'bloodGlucose',
123
- DIETARY_ENERGY_CONSUMED = 'dietaryEnergyConsumed',
124
- DIETARY_PROTEIN = 'dietaryProtein',
125
- DIETARY_SUGAR = 'dietarySugar',
126
- DIETARY_FAT_TOTAL = 'dietaryFatTotal',
127
- DIETARY_CARBOHYDRATES = 'dietaryCarbohydrates',
128
- DIETARY_FIBER = 'dietaryFiber',
129
- DIETARY_SODIUM = 'dietarySodium',
130
- DIETARY_CHOLESTEROL = 'dietaryCholesterol',
131
- }
132
-
133
- type Calories = {
134
- active: number;
135
- basal: number;
136
- };
137
-
138
- type RookError = {
139
- code: string;
140
- message: string;
141
- };
142
-
143
- type Message = {
144
- type: string;
145
- value: boolean;
146
- message?: string;
147
- };
148
-
149
- export interface Spec extends TurboModule {
150
- initRook: (options: RookConfig) => Promise<boolean>;
151
-
152
- // API Sources
153
- revokeDataSource: (userid: string, type: APIDataSource) => Promise<boolean>;
154
- getDataSourceAuthorizer: (
155
- props: DataSourceProps
156
- ) => Promise<DataSourceAuthorizer>;
157
- getAuthorizedDataSourcesV2: (userid: string) => Promise<AuthorizedSource[]>;
158
-
159
- // Configuration
160
- getUserID: () => Promise<string>;
161
- updateUserID: (userID: string) => Promise<boolean>;
162
- removeUserFromRook: (sources: SDKDataSource[]) => Promise<boolean>;
163
- syncUserTimeZone: () => Promise<boolean>;
164
-
165
- // bg android steps
166
- isStepsAvailable: () => Promise<boolean>;
167
- enableBackgroundAndroidSteps: () => Promise<boolean>;
168
- disableBackgroundAndroidSteps: () => Promise<boolean>;
169
- isBackgroundAndroidStepsActive: () => Promise<boolean>;
170
- syncTodayAndroidStepsCount: () => Promise<string>;
171
- syncTodayHealthConnectStepsCount: () => Promise<string>;
172
-
173
- //Apple health hook
174
- enableBackGroundUpdates: () => Promise<boolean>;
175
- disableBackGroundUpdates: () => Promise<boolean>;
176
- isBackgroundUpdatesEnabled: () => Promise<boolean>;
177
-
178
- // Permissions
179
- checkHealthConnectAvailability: () => Promise<CheckAvailabilityResponse>;
180
- checkSamsungAvailability: () => Promise<CheckAvailabilityResponse>;
181
- healthConnectHasPermissions: () => Promise<boolean>;
182
- healthConnectHasPartialPermissions: () => Promise<boolean>;
183
- appleHealthHasPermissions: (
184
- param: AppleHealthPermission
185
- ) => Promise<PermissionStatus>;
186
- samsungHealthHasPermissions: () => Promise<boolean>;
187
- samsungHealthHasPartialPermissions: () => Promise<boolean>;
188
- requestHealthConnectPermissions: () => Promise<RequestStatusPermissions>;
189
- requestAppleHealthPermissions: (
190
- permissions?: AppleHealthPermission[]
191
- ) => Promise<boolean>;
192
- requestSamsungHealthPermissions: (
193
- permissions?: SamsungHealthPermission[]
194
- ) => Promise<RequestStatusPermissions>;
195
- openAppleHealthSettings: () => Promise<void>;
196
- openHealthConnectSettings: () => Promise<void>;
197
- requestAndroidBackgroundPermissions: () => Promise<RequestStatusPermissions>;
198
- androidHasBackgroundPermissions: () => Promise<boolean>;
199
- checkHealthConnectBackgroundReadStatus: () => Promise<BackgroundStatus>;
200
- revokeHealthConnectPermissions: () => Promise<boolean>;
201
-
202
- // Local data any in the response to avoid paste the complete object
203
- getAppleHealthSleepSummary: (date: string) => Promise<any[]>;
204
- getHealthConnectSleepSummary: (date: string) => Promise<string>;
205
- getSamsungSleepSummary: (date: string) => Promise<string>;
206
-
207
- getAppleHealthBodySummary: (date: string) => Promise<any>;
208
- getHealthConnectBodySummary: (date: string) => Promise<string>;
209
- getSamsungBodySummary: (date: string) => Promise<string>;
210
-
211
- getAppleHealthPhysicalSummary: (date: string) => Promise<any>;
212
- getHealthConnectPhysicalSummary: (date: string) => Promise<string>;
213
- getSamsungPhysicalSummary: (date: string) => Promise<string>;
214
-
215
- getAppleHealthActivityEvents: (date: string) => Promise<any[]>;
216
- getHealthConnectActivityEvents: (date: string) => Promise<string>;
217
- getSamsungActivityEvents: (date: string) => Promise<string>;
218
-
219
- getTodayHeartRate: () => Promise<any>;
220
-
221
- // samsung hook
222
- enableSamsungSync: () => Promise<boolean>;
223
- disableSamsungSync: () => Promise<boolean>;
224
- isSamsungSyncEnabled: () => Promise<boolean>;
225
-
226
- // health connect hook
227
- scheduleBackgroundSync: (enableLogs: boolean) => Promise<boolean>;
228
- cancelBackgroundSync: () => Promise<boolean>;
229
- isBackgroundSyncEnabled: () => Promise<boolean>;
230
-
231
- // variables
232
- syncTodaySamsungHealthStepsCount: () => Promise<string>;
233
- getTodayAppleHealthSteps: () => Promise<string>;
234
- syncTodayCaloriesCount: () => Promise<Calories>;
235
- syncSHTodayCaloriesCount: () => Promise<Calories>;
236
-
237
- // sync
238
- sync: (cb: (error: RookError, result: boolean) => void) => void;
239
- syncByDate: (
240
- date: string,
241
- cb: (error: RookError, result: boolean) => void
242
- ) => void;
243
- syncByDefinition: (
244
- summary: string,
245
- date: string,
246
- cb: (error: RookError, result: boolean) => void
247
- ) => void;
248
- syncEvent: (date: string, event: string) => Promise<any>;
249
-
250
- shSync: (
251
- enableLogs: boolean,
252
- cb: (error: RookError, result: boolean) => void
253
- ) => void;
254
- shSyncByDate: (
255
- date: string,
256
- cb: (error: RookError, result: boolean) => void
257
- ) => void;
258
- shSyncByDefinition: (
259
- summary: string,
260
- date: string,
261
- cb: (error: RookError, result: boolean) => void
262
- ) => void;
263
- shSyncEvent: (date: string, event: string) => Promise<any>;
264
-
265
- // Notifications
266
- sendMessage: (message: Message) => Promise<boolean>;
267
- readonly onRookMessage: CodegenTypes.EventEmitter<Message>;
268
- }
269
- const turboModule = TurboModuleRegistry.get<Spec>('RNRookSdk');
270
-
271
- console.log({ exists: turboModule !== null });
272
-
273
- const RookSdk = turboModule ? turboModule : NativeModules.RNRookSdk;
274
-
275
- if (!RookSdk) {
276
- throw new Error(
277
- 'RNRookSdk module not found. Ensure you have linked the library and rebuilt the app.'
278
- );
279
- }
280
-
281
- export default RookSdk;
@@ -1,78 +0,0 @@
1
- /* eslint-disable react-hooks/exhaustive-deps */
2
- import { useReducer, type FC, useEffect } from 'react';
3
- import { rookSyncGateReducer } from './RookSyncGateReducer'; // Importa el reducer
4
- import type {
5
- RookSyncGateState,
6
- RookSyncGateProviderProps,
7
- } from './RookSyncGateTypes';
8
- import { RookSyncGateContext } from './RookSyncGateContext';
9
- import RookSdk from '../NativeRookSdk';
10
- import { useRookAutoSync } from '../modules/hook/useRookAutoSync';
11
-
12
- const initialState: RookSyncGateState = {
13
- clientUUID: '',
14
- environment: 'sandbox',
15
- password: '',
16
- ready: false,
17
- userID: '',
18
- permissions: 0,
19
- enableLogs: false,
20
- };
21
-
22
- /*
23
- * This code snippet is defining a React functional component called `RookSyncGateProvider`.
24
- * this define the provider for the SDK
25
- */
26
- const RookSyncGateProvider: FC<RookSyncGateProviderProps> = ({
27
- environment,
28
- clientUUID,
29
- password,
30
- children,
31
- enableLogs = false,
32
- enableBackgroundSync,
33
- enableEventsBackgroundSync = true,
34
- }) => {
35
- const [state, dispatch] = useReducer(rookSyncGateReducer, initialState);
36
-
37
- const { startBackgroundServices } = useRookAutoSync({
38
- state,
39
- enableBackground: enableBackgroundSync,
40
- enableLogs,
41
- });
42
-
43
- useEffect(() => {
44
- initModule();
45
- }, [environment, clientUUID, password]);
46
-
47
- const initModule = async (): Promise<void> => {
48
- dispatch({ type: 'SET_ROOK_ENVIRONMENT', environment });
49
- dispatch({ type: 'SET_CLIENT_UUID', clientUUID });
50
- dispatch({ type: 'SET_PASSWORD', password });
51
- dispatch({ type: 'SET_ENABLE_LOGS', enableLogs });
52
-
53
- try {
54
- await RookSdk.initRook({
55
- environment,
56
- clientUUID,
57
- password,
58
- enableLogs,
59
- enableEventsBackgroundSync,
60
- enableBackground: enableBackgroundSync,
61
- });
62
-
63
- if (enableBackgroundSync) startBackgroundServices();
64
-
65
- dispatch({ type: 'SET_READY', ready: true });
66
- } catch (error) {
67
- console.log(error);
68
- }
69
- };
70
-
71
- return (
72
- <RookSyncGateContext.Provider value={{ state, dispatch }}>
73
- {children}
74
- </RookSyncGateContext.Provider>
75
- );
76
- };
77
-
78
- export default RookSyncGateProvider;
@@ -1,34 +0,0 @@
1
- import type { ReactNode } from 'react';
2
-
3
- export type Environment = 'sandbox' | 'production';
4
-
5
- type RookSyncGateState = {
6
- clientUUID: string;
7
- environment: Environment;
8
- password: string;
9
- ready: boolean;
10
- userID: string;
11
- permissions: number;
12
- enableLogs: boolean;
13
- };
14
-
15
- type Action =
16
- | { type: 'SET_CLIENT_UUID'; clientUUID: string }
17
- | { type: 'SET_ENABLE_LOGS'; enableLogs: boolean }
18
- | { type: 'SET_PASSWORD'; password: string }
19
- | { type: 'SET_PERMISSIONS' }
20
- | { type: 'SET_READY'; ready: boolean }
21
- | { type: 'SET_ROOK_ENVIRONMENT'; environment: Environment }
22
- | { type: 'SET_USER_ID'; userID: string };
23
-
24
- type RookSyncGateProviderProps = {
25
- children: ReactNode;
26
- environment: Environment;
27
- clientUUID: string;
28
- password: string;
29
- enableLogs?: boolean;
30
- enableBackgroundSync: boolean;
31
- enableEventsBackgroundSync?: boolean;
32
- };
33
-
34
- export type { RookSyncGateState, Action, RookSyncGateProviderProps };
@@ -1,81 +0,0 @@
1
- import RookSdk from '../NativeRookSdk';
2
- import { useRookSyncGateContext } from '../context/RookSyncGateContext';
3
- import { isModuleReady } from '../utils/isModuleReady';
4
- import isRunningOnAndroid from '../utils/isRunningOnAndroid';
5
-
6
- /**
7
- * The `useRookAndroidBackgroundSteps` function provides various methods for managing and retrieving
8
- * step count data on Android devices using the Rook module.
9
- * @returns The `useRookAndroidBackgroundSteps` function returns a hook with the functions that allows the user to
10
- * control de steps sync
11
- */
12
- export const useRookAndroidBackgroundSteps = () => {
13
- const {
14
- state: { ready },
15
- } = useRookSyncGateContext();
16
-
17
- /**
18
- * The function `isStepsAvailable` checks if steps data is available.
19
- * @returns The function `isStepsAvailable` is returning a promise that resolve in a boolean value.
20
- */
21
- const isStepsAvailable = async (): Promise<boolean> => {
22
- isRunningOnAndroid();
23
- isModuleReady(ready);
24
-
25
- return RookSdk.isStepsAvailable();
26
- };
27
-
28
- /**
29
- * The function `enableBackgroundAndroidSteps` starts collecting of steps during the day
30
- * @returns The `enableBackgroundAndroidSteps` function is returning a Promise that resolves to a boolean
31
- */
32
- const enableBackgroundAndroidSteps = async (): Promise<boolean> => {
33
- isRunningOnAndroid();
34
- isModuleReady(ready);
35
-
36
- return RookSdk.enableBackgroundAndroidSteps();
37
- };
38
-
39
- /**
40
- * The function `disableBackgroundAndroidSteps` stops a process of collecting steps during the day
41
- * @returns The function `disableBackgroundAndroidSteps` function is returning a Promise that resolves to a boolean
42
- */
43
- const disableBackgroundAndroidSteps = (): Promise<boolean> => {
44
- isRunningOnAndroid();
45
- isModuleReady(ready);
46
-
47
- return RookSdk.disableBackgroundAndroidSteps();
48
- };
49
-
50
- /**
51
- * The function `isBackgroundAndroidStepsActive` checks if steps are active and returns a Promise with a boolean
52
- * value.
53
- * @returns The function is returning a Promise that resolves to a boolean
54
- */
55
- const isBackgroundAndroidStepsActive = (): Promise<boolean> => {
56
- isRunningOnAndroid();
57
- isModuleReady(ready);
58
-
59
- return RookSdk.isBackgroundAndroidStepsActive();
60
- };
61
-
62
- /**
63
- * The function `getTodayAndroidStepsCount` retrieves the number of steps taken today asynchronously as string.
64
- * @returns The function `getTodaySteps` is returning the result of calling
65
- */
66
- const syncTodayAndroidStepsCount = (): Promise<string> => {
67
- isRunningOnAndroid();
68
- isModuleReady(ready);
69
-
70
- return RookSdk.syncTodayAndroidStepsCount();
71
- };
72
-
73
- return {
74
- ready,
75
- isStepsAvailable,
76
- enableBackgroundAndroidSteps,
77
- disableBackgroundAndroidSteps,
78
- isBackgroundAndroidStepsActive,
79
- syncTodayAndroidStepsCount,
80
- };
81
- };
@@ -1,55 +0,0 @@
1
- import RookSdk from '../NativeRookSdk';
2
-
3
- import { useRookSyncGateContext } from '../context/RookSyncGateContext';
4
- import { isModuleReady } from '../utils/isModuleReady';
5
- import { isRunningOniOS } from '../utils/isRunningOniOS';
6
-
7
- export const useRookAppleHealth = () => {
8
- const {
9
- state: { ready },
10
- } = useRookSyncGateContext();
11
-
12
- /**
13
- * The function `enableBackGroundUpdates` enable background updates and returns a promise
14
- * indicating success.
15
- * @returns The function `enableBackGroundUpdates` returns a Promise that resolves to a boolean
16
- * value.
17
- */
18
- const enableBackGroundUpdates = (): Promise<boolean> => {
19
- isRunningOniOS();
20
- isModuleReady(ready);
21
-
22
- return RookSdk.enableBackGroundUpdates();
23
- };
24
-
25
- /**
26
- * The function `disableBackGroundUpdates` disables background updates and returns a promise
27
- * indicating success.
28
- * @returns The function `disableBackGroundUpdates` returns a Promise that resolves to a boolean
29
- * value.
30
- */
31
- const disableBackGroundUpdates = (): Promise<boolean> => {
32
- isRunningOniOS();
33
- isModuleReady(ready);
34
-
35
- return RookSdk.disableBackGroundUpdates();
36
- };
37
-
38
- /**
39
- * This function checks if background summaries are enabled.
40
- * @returns The function `isBackGroundForSummariesEnable` is returning a boolean value
41
- */
42
- const isBackgroundUpdatesEnabled = async (): Promise<boolean> => {
43
- isRunningOniOS();
44
- isModuleReady(ready);
45
-
46
- return RookSdk.isBackgroundUpdatesEnabled();
47
- };
48
-
49
- return {
50
- ready,
51
- enableBackGroundUpdates,
52
- disableBackGroundUpdates,
53
- isBackgroundUpdatesEnabled,
54
- };
55
- };
@@ -1,82 +0,0 @@
1
- import RookSdk from '../NativeRookSdk';
2
-
3
- import { useRookSyncGateContext } from '../context/RookSyncGateContext';
4
- import { isModuleReady } from '../utils/isModuleReady';
5
- import { type SDKDataSource } from '../types/SDKSources';
6
-
7
- /**
8
- * The `useRookConfiguration` hook provides various asynchronous methods for managing the configuration
9
- * of the ROOK SDK
10
- * @returns The `useRookConfiguration` function returns an object containing that allow the user to configure
11
- * the SDK
12
- */
13
- export const useRookConfiguration = () => {
14
- const {
15
- state: { ready },
16
- dispatch,
17
- } = useRookSyncGateContext();
18
-
19
- /**
20
- * The `getUserID` function retrieves the user ID
21
- * @returns The function `getUserID` is returning a Promise that resolves to a string value.
22
- */
23
- const getUserID = async (): Promise<string> => {
24
- isModuleReady(ready);
25
-
26
- const result = await RookSdk.getUserID();
27
-
28
- if (result) dispatch({ type: 'SET_USER_ID', userID: result });
29
-
30
- return result;
31
- };
32
-
33
- /**
34
- * The function `updateUserID` updates the user ID and returns a boolean indicating the success of
35
- * the update.
36
- * @param {string} userID - The `userID` parameter is a string that represents the user ID that needs
37
- * to be updated in the system.
38
- * @returns The `updateUserID` function returns a Promise that resolves to a boolean value.
39
- */
40
- const updateUserID = async (userID: string): Promise<boolean> => {
41
- isModuleReady(ready);
42
-
43
- const result: boolean = await RookSdk.updateUserID(userID);
44
-
45
- dispatch({ type: 'SET_USER_ID', userID });
46
-
47
- return result;
48
- };
49
-
50
- /**
51
- * This function `syncUserTimeZone` synchronizes the user's time zone using
52
- * @returns The `syncUserTimeZone` function returns a boolean value, indicating success or failure
53
- */
54
- const syncUserTimeZone = async (): Promise<boolean> => {
55
- isModuleReady(ready);
56
-
57
- const result: boolean = await RookSdk.syncUserTimeZone();
58
- return result;
59
- };
60
-
61
- /**
62
- * The function `removeUserFromRook` removes a user from a rook services, If you delete the user from the Rook services you have to create the user again with updateUserID and request permissions.
63
- * @returns The `removeUserFromRook` function is returning a boolean value.
64
- */
65
- const removeUserFromRook = async (
66
- sources: SDKDataSource[]
67
- ): Promise<boolean> => {
68
- isModuleReady(ready);
69
-
70
- dispatch({ type: 'SET_USER_ID', userID: '' });
71
-
72
- return RookSdk.removeUserFromRook(sources);
73
- };
74
-
75
- return {
76
- ready,
77
- getUserID,
78
- updateUserID,
79
- removeUserFromRook,
80
- syncUserTimeZone,
81
- };
82
- };