quickblox-react-ui-kit 0.1.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 (724) hide show
  1. package/.prettierignore +4 -0
  2. package/.prettierrc +8 -0
  3. package/LICENSE.md +19 -0
  4. package/README.md +255 -0
  5. package/dist/App.d.ts +4 -0
  6. package/dist/CommonTypes/FunctionResult.d.ts +4 -0
  7. package/dist/Data/Stubs.d.ts +29 -0
  8. package/dist/Data/dto/dialog/LocalDialogDTO.d.ts +16 -0
  9. package/dist/Data/dto/dialog/LocalDialogsDTO.d.ts +9 -0
  10. package/dist/Data/dto/dialog/RemoteDialogDTO.d.ts +18 -0
  11. package/dist/Data/dto/dialog/RemoteDialogsDTO.d.ts +9 -0
  12. package/dist/Data/dto/file/LocalFileDTO.d.ts +10 -0
  13. package/dist/Data/dto/file/RemoteFileDTO.d.ts +10 -0
  14. package/dist/Data/dto/message/LocalMessageDTO.d.ts +20 -0
  15. package/dist/Data/dto/message/LocalMessagesDTO.d.ts +9 -0
  16. package/dist/Data/dto/message/RemoteMessageDTO.d.ts +20 -0
  17. package/dist/Data/dto/message/RemoteMessagesDTO.d.ts +9 -0
  18. package/dist/Data/dto/user/LocalUserDTO.d.ts +14 -0
  19. package/dist/Data/dto/user/LocalUsersDTO.d.ts +9 -0
  20. package/dist/Data/dto/user/RemoteUserDTO.d.ts +14 -0
  21. package/dist/Data/dto/user/RemoteUsersDTO.d.ts +9 -0
  22. package/dist/Data/mapper/DialogLocalDTOMapper.d.ts +17 -0
  23. package/dist/Data/mapper/DialogRemoteDTOMapper.d.ts +18 -0
  24. package/dist/Data/mapper/FileLocalDTOMapper.d.ts +8 -0
  25. package/dist/Data/mapper/FileRemoteDTOMapper.d.ts +8 -0
  26. package/dist/Data/mapper/IMapper.d.ts +4 -0
  27. package/dist/Data/mapper/MessageLocalDTOMapper.d.ts +8 -0
  28. package/dist/Data/mapper/MessageRemoteDTOMapper.d.ts +8 -0
  29. package/dist/Data/mapper/UserLocalDTOMapper.d.ts +9 -0
  30. package/dist/Data/mapper/UserRemoteDTOMapper.d.ts +9 -0
  31. package/dist/Data/repository/ConnectionRepository.d.ts +15 -0
  32. package/dist/Data/repository/DialogsRepository.d.ts +28 -0
  33. package/dist/Data/repository/EventMessagesRepository.d.ts +35 -0
  34. package/dist/Data/repository/FileRepository.d.ts +14 -0
  35. package/dist/Data/repository/MessagesRepository.d.ts +24 -0
  36. package/dist/Data/repository/UsersRepository.d.ts +18 -0
  37. package/dist/Data/source/exception/LocalDataSourceException.d.ts +10 -0
  38. package/dist/Data/source/exception/MapperDTOException.d.ts +9 -0
  39. package/dist/Data/source/exception/RemoteDataSourceException.d.ts +15 -0
  40. package/dist/Data/source/exception/RepositoryException.d.ts +15 -0
  41. package/dist/Data/source/local/ChatLocalStorageDataSource.d.ts +8 -0
  42. package/dist/Data/source/local/ILocalDataSource.d.ts +25 -0
  43. package/dist/Data/source/local/ILocalFileDataSource.d.ts +7 -0
  44. package/dist/Data/source/local/LocalDataSource.d.ts +28 -0
  45. package/dist/Data/source/local/LocalFileDataSource.d.ts +8 -0
  46. package/dist/Data/source/remote/IRemoteDataSource.d.ts +36 -0
  47. package/dist/Data/source/remote/Mapper/DialogDTOMapper.d.ts +7 -0
  48. package/dist/Data/source/remote/Mapper/FileDTOMapper.d.ts +7 -0
  49. package/dist/Data/source/remote/Mapper/IDTOMapper.d.ts +4 -0
  50. package/dist/Data/source/remote/Mapper/MessageDTOMapper.d.ts +9 -0
  51. package/dist/Data/source/remote/Mapper/UserDTOMapper.d.ts +7 -0
  52. package/dist/Data/source/remote/RemoteDataSource.d.ts +81 -0
  53. package/dist/Domain/entity/Chat.d.ts +4 -0
  54. package/dist/Domain/entity/ChatMessageAttachmentEntity.d.ts +14 -0
  55. package/dist/Domain/entity/CustomDataEntity.d.ts +3 -0
  56. package/dist/Domain/entity/DialogEntity.d.ts +13 -0
  57. package/dist/Domain/entity/DialogEventInfo.d.ts +14 -0
  58. package/dist/Domain/entity/DialogTypes.d.ts +5 -0
  59. package/dist/Domain/entity/EventMessageType.d.ts +5 -0
  60. package/dist/Domain/entity/FileEntity.d.ts +10 -0
  61. package/dist/Domain/entity/FileTypes.d.ts +6 -0
  62. package/dist/Domain/entity/GroupDialogEntity.d.ts +19 -0
  63. package/dist/Domain/entity/LastMessageEntity.d.ts +5 -0
  64. package/dist/Domain/entity/MessageEntity.d.ts +21 -0
  65. package/dist/Domain/entity/NotificationTypes.d.ts +5 -0
  66. package/dist/Domain/entity/PrivateDialogEntity.d.ts +16 -0
  67. package/dist/Domain/entity/PublicDialogEntity.d.ts +18 -0
  68. package/dist/Domain/entity/UserEntity.d.ts +12 -0
  69. package/dist/Domain/exception/domain/DomainExecption.d.ts +4 -0
  70. package/dist/Domain/repository/IDialogsRepository.d.ts +20 -0
  71. package/dist/Domain/repository/IFileRepository.d.ts +6 -0
  72. package/dist/Domain/repository/IMessagesRepository.d.ts +15 -0
  73. package/dist/Domain/repository/IUsersRepository.d.ts +8 -0
  74. package/dist/Domain/repository/Pagination.d.ts +16 -0
  75. package/dist/Domain/use_cases/CreateDialogUseCase.d.ts +12 -0
  76. package/dist/Domain/use_cases/GetAllDialogsUseCase.d.ts +8 -0
  77. package/dist/Domain/use_cases/GetAllDialogsUseCaseWithMock.d.ts +10 -0
  78. package/dist/Domain/use_cases/GetAllMessagesForDialog.d.ts +11 -0
  79. package/dist/Domain/use_cases/GetAllUsersUseCase.d.ts +11 -0
  80. package/dist/Domain/use_cases/GetDialogByIdUseCase.d.ts +9 -0
  81. package/dist/Domain/use_cases/GetUsersByIdsUseCase.d.ts +9 -0
  82. package/dist/Domain/use_cases/LeaveDialogUseCase.d.ts +18 -0
  83. package/dist/Domain/use_cases/RemoveUsersFromTheDialogUseCase.d.ts +12 -0
  84. package/dist/Domain/use_cases/SendTextMessageUseCase.d.ts +9 -0
  85. package/dist/Domain/use_cases/SubscribeToDialogEventsUseCase.d.ts +16 -0
  86. package/dist/Domain/use_cases/SubscribeToDialogsUpdatesUseCase.d.ts +11 -0
  87. package/dist/Domain/use_cases/SubscribeToDialogsUpdatesUseCaseWithMock.d.ts +11 -0
  88. package/dist/Domain/use_cases/SyncDialogsUseCase.d.ts +23 -0
  89. package/dist/Domain/use_cases/UpdateDialogUseCase.d.ts +12 -0
  90. package/dist/Domain/use_cases/UploadFileUseCase.d.ts +9 -0
  91. package/dist/Domain/use_cases/UserTypingMessageUseCase.d.ts +13 -0
  92. package/dist/Domain/use_cases/base/BaseUseCase.d.ts +5 -0
  93. package/dist/Domain/use_cases/base/IUseCase.d.ts +5 -0
  94. package/dist/Domain/use_cases/base/Subscribable/ISubscribable.d.ts +5 -0
  95. package/dist/Domain/use_cases/base/Subscribable/SubscriptionPerformer.d.ts +24 -0
  96. package/dist/MyButton/MyButton.d.ts +9 -0
  97. package/dist/MyInput/MyInput.d.ts +10 -0
  98. package/dist/Presentation/Views/Base/BaseViewModel.d.ts +23 -0
  99. package/dist/Presentation/Views/CreateDialogFlow/CreateNewDialogFlow.d.ts +7 -0
  100. package/dist/Presentation/Views/Dialogs/DialogViewModel.d.ts +16 -0
  101. package/dist/Presentation/Views/Dialogs/Dialogs.d.ts +20 -0
  102. package/dist/Presentation/Views/Dialogs/useDialogsViewModel.d.ts +2 -0
  103. package/dist/Presentation/Views/Dialogs/useDialogsViewModelWithMockUseCase.d.ts +4 -0
  104. package/dist/Presentation/assets/DarkTheme.d.ts +21 -0
  105. package/dist/Presentation/assets/LightTheme.d.ts +21 -0
  106. package/dist/Presentation/assets/Theme.d.ts +20 -0
  107. package/dist/Presentation/assets/ThemeScheme.d.ts +43 -0
  108. package/dist/Presentation/components/Button.d.ts +4 -0
  109. package/dist/Presentation/components/Navbar.d.ts +2 -0
  110. package/dist/Presentation/components/TextInput.d.ts +1 -0
  111. package/dist/Presentation/components/UI/ DefaultThemes/CustomTheme.d.ts +6 -0
  112. package/dist/Presentation/components/UI/ DefaultThemes/DefaultTheme.d.ts +21 -0
  113. package/dist/Presentation/components/UI/Buttons/ActiveButton/ActiveButton.d.ts +9 -0
  114. package/dist/Presentation/components/UI/Buttons/MainBoundedButton/MainBoundedButton.d.ts +11 -0
  115. package/dist/Presentation/components/UI/Buttons/MainButton/MainButton.d.ts +21 -0
  116. package/dist/Presentation/components/UI/Dialogs/CreateDialog/CreateDialog.d.ts +13 -0
  117. package/dist/Presentation/components/UI/Dialogs/DialogInformation/DialogInformation.d.ts +12 -0
  118. package/dist/Presentation/components/UI/Dialogs/DialogInformation/DialogMemberButton/DialogMembersButton.d.ts +10 -0
  119. package/dist/Presentation/components/UI/Dialogs/DialogInformation/UsersList/SingleUser/SingleUser.d.ts +9 -0
  120. package/dist/Presentation/components/UI/Dialogs/DialogInformation/UsersList/UsersList.d.ts +10 -0
  121. package/dist/Presentation/components/UI/Dialogs/DialogInformation/UsersList/UsersListViewModel.d.ts +10 -0
  122. package/dist/Presentation/components/UI/Dialogs/DialogInformation/UsersList/useUsersListViewModel.d.ts +3 -0
  123. package/dist/Presentation/components/UI/Dialogs/EditDialog/EditDialog.d.ts +19 -0
  124. package/dist/Presentation/components/UI/Dialogs/EditDialog/UserAvatar/UserAvatar.d.ts +11 -0
  125. package/dist/Presentation/components/UI/Dialogs/HeaderDialogs/HeaderDialogs.d.ts +15 -0
  126. package/dist/Presentation/components/UI/Dialogs/InviteMembers/InviteMembers.d.ts +14 -0
  127. package/dist/Presentation/components/UI/Dialogs/InviteMembers/InviteMembersViewModel.d.ts +13 -0
  128. package/dist/Presentation/components/UI/Dialogs/InviteMembers/InviteUsersList/SingleUserWithCheckBox/SingleUserWithCheckBox.d.ts +13 -0
  129. package/dist/Presentation/components/UI/Dialogs/InviteMembers/InviteUsersResultViewModel.d.ts +6 -0
  130. package/dist/Presentation/components/UI/Dialogs/InviteMembers/NotFoundContent/NotFoundContent.d.ts +7 -0
  131. package/dist/Presentation/components/UI/Dialogs/InviteMembers/useInviteMembersViewModel.d.ts +2 -0
  132. package/dist/Presentation/components/UI/Dialogs/MembersList/MembersList.d.ts +10 -0
  133. package/dist/Presentation/components/UI/Dialogs/MessagesView/AudioAttachmentComponent/AudioAttachmentComponent.d.ts +8 -0
  134. package/dist/Presentation/components/UI/Dialogs/MessagesView/HeaderMessages/HeaderMessages.d.ts +12 -0
  135. package/dist/Presentation/components/UI/Dialogs/MessagesView/ImageAttachmentComponent/ImageAttachmentComponent.d.ts +8 -0
  136. package/dist/Presentation/components/UI/Dialogs/MessagesView/MessagesView.d.ts +11 -0
  137. package/dist/Presentation/components/UI/Dialogs/MessagesView/MessagesViewModel.d.ts +14 -0
  138. package/dist/Presentation/components/UI/Dialogs/MessagesView/VideoAttachmentComponent/VideoAttachmentComponent.d.ts +8 -0
  139. package/dist/Presentation/components/UI/Dialogs/MessagesView/VoiceRecordingProgress/VoiceRecordingProgress.d.ts +10 -0
  140. package/dist/Presentation/components/UI/Dialogs/MessagesView/useMessagesViewModelWithMockUseCase.d.ts +4 -0
  141. package/dist/Presentation/components/UI/Dialogs/PreviewDialog/PreviewDialog.d.ts +34 -0
  142. package/dist/Presentation/components/UI/Dialogs/PreviewDialog/PreviewDialogViewModel.d.ts +11 -0
  143. package/dist/Presentation/components/UI/Dialogs/YesNoQuestion/YesNoQuestion.d.ts +14 -0
  144. package/dist/Presentation/components/UI/Elements/SwitchButton/SwitchButton.d.ts +11 -0
  145. package/dist/Presentation/components/UI/Placeholders/ErrorComponent/ErrorComponent.d.ts +12 -0
  146. package/dist/Presentation/components/UI/Placeholders/LoaderComponent/LoaderComponent.d.ts +4 -0
  147. package/dist/Presentation/components/UI/svgs/ActiveSvg/ActiveSvg.d.ts +10 -0
  148. package/dist/Presentation/components/UI/svgs/Icons/Actions/Add/index.d.ts +4 -0
  149. package/dist/Presentation/components/UI/svgs/Icons/Actions/AddContact/index.d.ts +4 -0
  150. package/dist/Presentation/components/UI/svgs/Icons/Actions/Archive/index.d.ts +4 -0
  151. package/dist/Presentation/components/UI/svgs/Icons/Actions/Copy/index.d.ts +4 -0
  152. package/dist/Presentation/components/UI/svgs/Icons/Actions/Delete/index.d.ts +4 -0
  153. package/dist/Presentation/components/UI/svgs/Icons/Actions/Download/index.d.ts +4 -0
  154. package/dist/Presentation/components/UI/svgs/Icons/Actions/Edit/index.d.ts +4 -0
  155. package/dist/Presentation/components/UI/svgs/Icons/Actions/EditDots/index.d.ts +4 -0
  156. package/dist/Presentation/components/UI/svgs/Icons/Actions/Emoji/index.d.ts +4 -0
  157. package/dist/Presentation/components/UI/svgs/Icons/Actions/ForwardFilled/index.d.ts +4 -0
  158. package/dist/Presentation/components/UI/svgs/Icons/Actions/Hungup/index.d.ts +4 -0
  159. package/dist/Presentation/components/UI/svgs/Icons/Actions/IncomeCall/index.d.ts +4 -0
  160. package/dist/Presentation/components/UI/svgs/Icons/Actions/Like/index.d.ts +4 -0
  161. package/dist/Presentation/components/UI/svgs/Icons/Actions/NewChat/index.d.ts +4 -0
  162. package/dist/Presentation/components/UI/svgs/Icons/Actions/OutcomeCall/index.d.ts +4 -0
  163. package/dist/Presentation/components/UI/svgs/Icons/Actions/Phone/index.d.ts +4 -0
  164. package/dist/Presentation/components/UI/svgs/Icons/Actions/PhoneFilled/index.d.ts +4 -0
  165. package/dist/Presentation/components/UI/svgs/Icons/Actions/Remove/index.d.ts +4 -0
  166. package/dist/Presentation/components/UI/svgs/Icons/Actions/Remove2/index.d.ts +4 -0
  167. package/dist/Presentation/components/UI/svgs/Icons/Actions/ReplyFilled/index.d.ts +4 -0
  168. package/dist/Presentation/components/UI/svgs/Icons/Actions/Send/index.d.ts +4 -0
  169. package/dist/Presentation/components/UI/svgs/Icons/Actions/Share/index.d.ts +4 -0
  170. package/dist/Presentation/components/UI/svgs/Icons/Actions/SwapCamera/index.d.ts +4 -0
  171. package/dist/Presentation/components/UI/svgs/Icons/Actions/Unarchive/index.d.ts +4 -0
  172. package/dist/Presentation/components/UI/svgs/Icons/Actions/VideoIcon/index.d.ts +4 -0
  173. package/dist/Presentation/components/UI/svgs/Icons/Actions/Voice/index.d.ts +4 -0
  174. package/dist/Presentation/components/UI/svgs/Icons/Contents/Brodcast/index.d.ts +4 -0
  175. package/dist/Presentation/components/UI/svgs/Icons/Contents/Chat/index.d.ts +4 -0
  176. package/dist/Presentation/components/UI/svgs/Icons/Contents/ChatFilled/index.d.ts +4 -0
  177. package/dist/Presentation/components/UI/svgs/Icons/Contents/Conference/index.d.ts +4 -0
  178. package/dist/Presentation/components/UI/svgs/Icons/Contents/Contact/index.d.ts +4 -0
  179. package/dist/Presentation/components/UI/svgs/Icons/Contents/ContactFilled/index.d.ts +4 -0
  180. package/dist/Presentation/components/UI/svgs/Icons/Contents/GroupChat/index.d.ts +4 -0
  181. package/dist/Presentation/components/UI/svgs/Icons/Contents/Notifications/index.d.ts +4 -0
  182. package/dist/Presentation/components/UI/svgs/Icons/Contents/PrivateChat/index.d.ts +4 -0
  183. package/dist/Presentation/components/UI/svgs/Icons/Contents/PublicChannel/index.d.ts +4 -0
  184. package/dist/Presentation/components/UI/svgs/Icons/Contents/Stream/index.d.ts +4 -0
  185. package/dist/Presentation/components/UI/svgs/Icons/Contents/StreamFilled/index.d.ts +4 -0
  186. package/dist/Presentation/components/UI/svgs/Icons/Contents/User/index.d.ts +4 -0
  187. package/dist/Presentation/components/UI/svgs/Icons/IconsCommonTypes.d.ts +6 -0
  188. package/dist/Presentation/components/UI/svgs/Icons/Media/Attachment/index.d.ts +4 -0
  189. package/dist/Presentation/components/UI/svgs/Icons/Media/AudioFile/index.d.ts +4 -0
  190. package/dist/Presentation/components/UI/svgs/Icons/Media/BrokenFile/index.d.ts +4 -0
  191. package/dist/Presentation/components/UI/svgs/Icons/Media/Camera/index.d.ts +4 -0
  192. package/dist/Presentation/components/UI/svgs/Icons/Media/GifFile/index.d.ts +4 -0
  193. package/dist/Presentation/components/UI/svgs/Icons/Media/ImageEmpty/index.d.ts +4 -0
  194. package/dist/Presentation/components/UI/svgs/Icons/Media/ImageFile/index.d.ts +4 -0
  195. package/dist/Presentation/components/UI/svgs/Icons/Media/ImageFilled/index.d.ts +4 -0
  196. package/dist/Presentation/components/UI/svgs/Icons/Media/LinkWeb/index.d.ts +4 -0
  197. package/dist/Presentation/components/UI/svgs/Icons/Media/Location/index.d.ts +4 -0
  198. package/dist/Presentation/components/UI/svgs/Icons/Media/TextDocument/index.d.ts +4 -0
  199. package/dist/Presentation/components/UI/svgs/Icons/Media/VideoFile/index.d.ts +4 -0
  200. package/dist/Presentation/components/UI/svgs/Icons/Moderation/Admin/index.d.ts +4 -0
  201. package/dist/Presentation/components/UI/svgs/Icons/Moderation/Banned/index.d.ts +4 -0
  202. package/dist/Presentation/components/UI/svgs/Icons/Moderation/Freeze/index.d.ts +4 -0
  203. package/dist/Presentation/components/UI/svgs/Icons/Moderation/Moderations/index.d.ts +4 -0
  204. package/dist/Presentation/components/UI/svgs/Icons/Moderation/Muted/index.d.ts +4 -0
  205. package/dist/Presentation/components/UI/svgs/Icons/Navigation/ArrowLeft/index.d.ts +4 -0
  206. package/dist/Presentation/components/UI/svgs/Icons/Navigation/ArrowRight/index.d.ts +4 -0
  207. package/dist/Presentation/components/UI/svgs/Icons/Navigation/Back/index.d.ts +4 -0
  208. package/dist/Presentation/components/UI/svgs/Icons/Navigation/Close/index.d.ts +4 -0
  209. package/dist/Presentation/components/UI/svgs/Icons/Navigation/Down/index.d.ts +4 -0
  210. package/dist/Presentation/components/UI/svgs/Icons/Navigation/Leave/index.d.ts +4 -0
  211. package/dist/Presentation/components/UI/svgs/Icons/Navigation/More/index.d.ts +4 -0
  212. package/dist/Presentation/components/UI/svgs/Icons/Navigation/Next/index.d.ts +4 -0
  213. package/dist/Presentation/components/UI/svgs/Icons/Navigation/Plus/index.d.ts +4 -0
  214. package/dist/Presentation/components/UI/svgs/Icons/Navigation/Refresh/index.d.ts +4 -0
  215. package/dist/Presentation/components/UI/svgs/Icons/Navigation/Search/index.d.ts +4 -0
  216. package/dist/Presentation/components/UI/svgs/Icons/Navigation/Settings/index.d.ts +4 -0
  217. package/dist/Presentation/components/UI/svgs/Icons/Navigation/SettingsField/index.d.ts +4 -0
  218. package/dist/Presentation/components/UI/svgs/Icons/Status/Error/index.d.ts +4 -0
  219. package/dist/Presentation/components/UI/svgs/Icons/Status/Help/index.d.ts +4 -0
  220. package/dist/Presentation/components/UI/svgs/Icons/Status/Information/index.d.ts +4 -0
  221. package/dist/Presentation/components/UI/svgs/Icons/Status/InformationFill/index.d.ts +4 -0
  222. package/dist/Presentation/components/UI/svgs/Icons/Status/Loader/index.d.ts +4 -0
  223. package/dist/Presentation/components/UI/svgs/Icons/Status/Mention/index.d.ts +4 -0
  224. package/dist/Presentation/components/UI/svgs/Icons/Status/Sent/index.d.ts +4 -0
  225. package/dist/Presentation/components/UI/svgs/Icons/Status/ViewedDelivered/index.d.ts +4 -0
  226. package/dist/Presentation/components/UI/svgs/Icons/Toggle/CameraOff/index.d.ts +4 -0
  227. package/dist/Presentation/components/UI/svgs/Icons/Toggle/CameraOn/index.d.ts +4 -0
  228. package/dist/Presentation/components/UI/svgs/Icons/Toggle/CheckOff/index.d.ts +4 -0
  229. package/dist/Presentation/components/UI/svgs/Icons/Toggle/CheckOn/index.d.ts +4 -0
  230. package/dist/Presentation/components/UI/svgs/Icons/Toggle/Favourite/index.d.ts +4 -0
  231. package/dist/Presentation/components/UI/svgs/Icons/Toggle/FavouriteFilled/index.d.ts +4 -0
  232. package/dist/Presentation/components/UI/svgs/Icons/Toggle/FullScreen/inex.d.ts +4 -0
  233. package/dist/Presentation/components/UI/svgs/Icons/Toggle/Hide/index.d.ts +4 -0
  234. package/dist/Presentation/components/UI/svgs/Icons/Toggle/ImagePlay/index.d.ts +4 -0
  235. package/dist/Presentation/components/UI/svgs/Icons/Toggle/Louder/index.d.ts +4 -0
  236. package/dist/Presentation/components/UI/svgs/Icons/Toggle/MicOff/index.d.ts +4 -0
  237. package/dist/Presentation/components/UI/svgs/Icons/Toggle/MicOn/index.d.ts +4 -0
  238. package/dist/Presentation/components/UI/svgs/Icons/Toggle/Minimize/index.d.ts +4 -0
  239. package/dist/Presentation/components/UI/svgs/Icons/Toggle/NotifyOff/index.d.ts +4 -0
  240. package/dist/Presentation/components/UI/svgs/Icons/Toggle/NotifyOn/index.d.ts +4 -0
  241. package/dist/Presentation/components/UI/svgs/Icons/Toggle/Pause/index.d.ts +4 -0
  242. package/dist/Presentation/components/UI/svgs/Icons/Toggle/Quite/index.d.ts +4 -0
  243. package/dist/Presentation/components/UI/svgs/Icons/Toggle/Record/index.d.ts +4 -0
  244. package/dist/Presentation/components/UI/svgs/Icons/Toggle/Screenshare/index.d.ts +4 -0
  245. package/dist/Presentation/components/UI/svgs/Icons/Toggle/Show/index.d.ts +4 -0
  246. package/dist/Presentation/components/UI/svgs/Icons/Toggle/Speaker/index.d.ts +4 -0
  247. package/dist/Presentation/components/UI/svgs/Icons/Toggle/SpeakerOff/index.d.ts +4 -0
  248. package/dist/Presentation/components/UI/svgs/Icons/Toggle/StopRecord/index.d.ts +4 -0
  249. package/dist/Presentation/components/UI/svgs/Icons/Toggle/StopShare/index.d.ts +4 -0
  250. package/dist/Presentation/components/containers/ColumnContainer/ColumnContainer.d.ts +5 -0
  251. package/dist/Presentation/components/containers/RowCenterContainer/RowCenterContainer.d.ts +33 -0
  252. package/dist/Presentation/components/containers/RowLeftContainer/RowLeftContainer.d.ts +33 -0
  253. package/dist/Presentation/components/containers/RowRightContainer/RowRightContainer.d.ts +33 -0
  254. package/dist/Presentation/components/containers/ScrollableContainer/ScrollableContainer.d.ts +14 -0
  255. package/dist/Presentation/components/layouts/Desktop/Desktop.d.ts +4 -0
  256. package/dist/Presentation/components/layouts/Desktop/DesktopLayoutForMockModels.d.ts +9 -0
  257. package/dist/Presentation/components/layouts/LayoutCommonTypes.d.ts +6 -0
  258. package/dist/Presentation/components/layouts/TestStage/LoginView/Login.d.ts +9 -0
  259. package/dist/Presentation/components/layouts/TestStage/TestStageMarkup.d.ts +4 -0
  260. package/dist/Presentation/components/layouts/TestStage/TestStageWithMockData/TestStageWithMockData.d.ts +3 -0
  261. package/dist/Presentation/components/providers/ModalContextProvider/Modal.d.ts +14 -0
  262. package/dist/Presentation/components/providers/ModalContextProvider/ModalContextProvider.d.ts +4 -0
  263. package/dist/Presentation/components/providers/ModalContextProvider/useModal.d.ts +11 -0
  264. package/dist/Presentation/components/providers/ProviderProps.d.ts +4 -0
  265. package/dist/Presentation/components/providers/QuickBloxUIKitProvider/QuickBloxUIKitProvider.d.ts +41 -0
  266. package/dist/Presentation/components/providers/QuickBloxUIKitProvider/useEventMessagesRepository.d.ts +3 -0
  267. package/dist/Presentation/components/providers/QuickBloxUIKitProvider/useQBConnection.d.ts +7 -0
  268. package/dist/Presentation/components/providers/QuickBloxUIKitProvider/useQbDataContext.d.ts +3 -0
  269. package/dist/QBconfig.d.ts +29 -0
  270. package/dist/index-ui.d.ts +25 -0
  271. package/dist/index-ui.js +2589 -0
  272. package/dist/index.d.ts +1 -0
  273. package/dist/qb-api-calls/index.d.ts +59 -0
  274. package/dist/setupTests.d.ts +1 -0
  275. package/dist/utils/DateTimeFormatter.d.ts +4 -0
  276. package/dist/utils/parse.d.ts +6 -0
  277. package/global.d.ts +855 -0
  278. package/package.json +104 -0
  279. package/public/favicon.ico +0 -0
  280. package/public/index.html +47 -0
  281. package/public/logo192.png +0 -0
  282. package/public/logo512.png +0 -0
  283. package/public/manifest.json +25 -0
  284. package/public/quickblox.js +54609 -0
  285. package/public/robots.txt +3 -0
  286. package/src/App.scss +0 -0
  287. package/src/App.tsx +230 -0
  288. package/src/CommonTypes/FunctionResult.ts +4 -0
  289. package/src/Data/Stubs.ts +1131 -0
  290. package/src/Data/dto/dialog/LocalDialogDTO.ts +42 -0
  291. package/src/Data/dto/dialog/LocalDialogsDTO.ts +21 -0
  292. package/src/Data/dto/dialog/RemoteDialogDTO.ts +58 -0
  293. package/src/Data/dto/dialog/RemoteDialogsDTO.ts +21 -0
  294. package/src/Data/dto/file/LocalFileDTO.ts +26 -0
  295. package/src/Data/dto/file/RemoteFileDTO.ts +26 -0
  296. package/src/Data/dto/message/LocalMessageDTO.ts +51 -0
  297. package/src/Data/dto/message/LocalMessagesDTO.ts +21 -0
  298. package/src/Data/dto/message/RemoteMessageDTO.ts +51 -0
  299. package/src/Data/dto/message/RemoteMessagesDTO.ts +21 -0
  300. package/src/Data/dto/user/LocalUserDTO.ts +37 -0
  301. package/src/Data/dto/user/LocalUsersDTO.ts +23 -0
  302. package/src/Data/dto/user/RemoteUserDTO.ts +37 -0
  303. package/src/Data/dto/user/RemoteUsersDTO.ts +21 -0
  304. package/src/Data/mapper/DialogLocalDTOMapper.ts +742 -0
  305. package/src/Data/mapper/DialogRemoteDTOMapper.ts +776 -0
  306. package/src/Data/mapper/FileLocalDTOMapper.ts +253 -0
  307. package/src/Data/mapper/FileRemoteDTOMapper.ts +265 -0
  308. package/src/Data/mapper/IMapper.ts +14 -0
  309. package/src/Data/mapper/MessageLocalDTOMapper.ts +425 -0
  310. package/src/Data/mapper/MessageRemoteDTOMapper.ts +430 -0
  311. package/src/Data/mapper/UserLocalDTOMapper.ts +381 -0
  312. package/src/Data/mapper/UserRemoteDTOMapper.ts +393 -0
  313. package/src/Data/repository/ConnectionRepository.ts +128 -0
  314. package/src/Data/repository/DialogsRepository.ts +422 -0
  315. package/src/Data/repository/EventMessagesRepository.ts +291 -0
  316. package/src/Data/repository/FileRepository.ts +110 -0
  317. package/src/Data/repository/MessagesRepository.ts +288 -0
  318. package/src/Data/repository/UsersRepository.ts +324 -0
  319. package/src/Data/source/exception/LocalDataSourceException.ts +17 -0
  320. package/src/Data/source/exception/MapperDTOException.ts +19 -0
  321. package/src/Data/source/exception/RemoteDataSourceException.ts +28 -0
  322. package/src/Data/source/exception/RepositoryException.ts +27 -0
  323. package/src/Data/source/local/ChatLocalStorageDataSource.ts +262 -0
  324. package/src/Data/source/local/ILocalDataSource.ts +45 -0
  325. package/src/Data/source/local/ILocalFileDataSource.ts +11 -0
  326. package/src/Data/source/local/LocalDataSource.ts +377 -0
  327. package/src/Data/source/local/LocalFileDataSource.ts +22 -0
  328. package/src/Data/source/remote/IRemoteDataSource.ts +112 -0
  329. package/src/Data/source/remote/Mapper/DialogDTOMapper.ts +401 -0
  330. package/src/Data/source/remote/Mapper/FileDTOMapper.ts +276 -0
  331. package/src/Data/source/remote/Mapper/IDTOMapper.ts +4 -0
  332. package/src/Data/source/remote/Mapper/MessageDTOMapper.ts +399 -0
  333. package/src/Data/source/remote/Mapper/UserDTOMapper.ts +344 -0
  334. package/src/Data/source/remote/RemoteDataSource.ts +1278 -0
  335. package/src/Domain/entity/Chat.ts +4 -0
  336. package/src/Domain/entity/ChatMessageAttachmentEntity.ts +15 -0
  337. package/src/Domain/entity/CustomDataEntity.ts +3 -0
  338. package/src/Domain/entity/DialogEntity.ts +15 -0
  339. package/src/Domain/entity/DialogEventInfo.ts +15 -0
  340. package/src/Domain/entity/DialogTypes.ts +7 -0
  341. package/src/Domain/entity/EventMessageType.ts +7 -0
  342. package/src/Domain/entity/FileEntity.ts +11 -0
  343. package/src/Domain/entity/FileTypes.ts +9 -0
  344. package/src/Domain/entity/GroupDialogEntity.ts +54 -0
  345. package/src/Domain/entity/LastMessageEntity.ts +5 -0
  346. package/src/Domain/entity/MessageEntity.ts +25 -0
  347. package/src/Domain/entity/NotificationTypes.ts +7 -0
  348. package/src/Domain/entity/PrivateDialogEntity.ts +46 -0
  349. package/src/Domain/entity/PublicDialogEntity.ts +72 -0
  350. package/src/Domain/entity/UserEntity.ts +22 -0
  351. package/src/Domain/exception/domain/DomainExecption.ts +5 -0
  352. package/src/Domain/repository/IDialogsRepository.ts +40 -0
  353. package/src/Domain/repository/IFileRepository.ts +9 -0
  354. package/src/Domain/repository/IMessagesRepository.ts +28 -0
  355. package/src/Domain/repository/IUsersRepository.ts +13 -0
  356. package/src/Domain/repository/Pagination.ts +48 -0
  357. package/src/Domain/use_cases/CreateDialogUseCase.ts +73 -0
  358. package/src/Domain/use_cases/GetAllDialogsUseCase.ts +20 -0
  359. package/src/Domain/use_cases/GetAllDialogsUseCaseWithMock.ts +45 -0
  360. package/src/Domain/use_cases/GetAllMessagesForDialog.ts +61 -0
  361. package/src/Domain/use_cases/GetAllUsersUseCase.ts +34 -0
  362. package/src/Domain/use_cases/GetDialogByIdUseCase.ts +28 -0
  363. package/src/Domain/use_cases/GetUsersByIdsUseCase.ts +22 -0
  364. package/src/Domain/use_cases/LeaveDialogUseCase.ts +109 -0
  365. package/src/Domain/use_cases/RemoveUsersFromTheDialogUseCase.ts +103 -0
  366. package/src/Domain/use_cases/SendTextMessageUseCase.ts +26 -0
  367. package/src/Domain/use_cases/SubscribeToDialogEventsUseCase.ts +141 -0
  368. package/src/Domain/use_cases/SubscribeToDialogsUpdatesUseCase.ts +69 -0
  369. package/src/Domain/use_cases/SubscribeToDialogsUpdatesUseCaseWithMock.ts +61 -0
  370. package/src/Domain/use_cases/SyncDialogsUseCase.ts +246 -0
  371. package/src/Domain/use_cases/UpdateDialogUseCase.ts +65 -0
  372. package/src/Domain/use_cases/UploadFileUseCase.ts +24 -0
  373. package/src/Domain/use_cases/UserTypingMessageUseCase.ts +51 -0
  374. package/src/Domain/use_cases/base/BaseUseCase.ts +77 -0
  375. package/src/Domain/use_cases/base/IUseCase.ts +5 -0
  376. package/src/Domain/use_cases/base/Subscribable/ISubscribable.ts +6 -0
  377. package/src/Domain/use_cases/base/Subscribable/SubscriptionPerformer.ts +143 -0
  378. package/src/MyButton/MyButton.scss +11 -0
  379. package/src/MyButton/MyButton.tsx +25 -0
  380. package/src/MyInput/MyInput.scss +9 -0
  381. package/src/MyInput/MyInput.tsx +36 -0
  382. package/src/Presentation/.gitkeep +0 -0
  383. package/src/Presentation/Views/Base/BaseViewModel.ts +66 -0
  384. package/src/Presentation/Views/CreateDialogFlow/CreateNewDialogFlow.tsx +187 -0
  385. package/src/Presentation/Views/Dialogs/DialogViewModel.ts +23 -0
  386. package/src/Presentation/Views/Dialogs/Dialogs.scss +66 -0
  387. package/src/Presentation/Views/Dialogs/Dialogs.tsx +372 -0
  388. package/src/Presentation/Views/Dialogs/useDialogsViewModel.ts +136 -0
  389. package/src/Presentation/Views/Dialogs/useDialogsViewModelWithMockUseCase.ts +345 -0
  390. package/src/Presentation/Views/Navigation/More.svg +7 -0
  391. package/src/Presentation/assets/DarkTheme.ts +58 -0
  392. package/src/Presentation/assets/LightTheme.ts +58 -0
  393. package/src/Presentation/assets/Theme.ts +143 -0
  394. package/src/Presentation/assets/ThemeScheme.ts +83 -0
  395. package/src/Presentation/assets/fonts/.gitkeep +0 -0
  396. package/src/Presentation/assets/fonts/Roboto-Bold.eot +0 -0
  397. package/src/Presentation/assets/fonts/Roboto-Bold.ttf +0 -0
  398. package/src/Presentation/assets/fonts/Roboto-Bold.woff +0 -0
  399. package/src/Presentation/assets/fonts/Roboto-Bold.woff2 +0 -0
  400. package/src/Presentation/assets/fonts/Roboto-Medium.eot +0 -0
  401. package/src/Presentation/assets/fonts/Roboto-Medium.ttf +0 -0
  402. package/src/Presentation/assets/fonts/Roboto-Medium.woff +0 -0
  403. package/src/Presentation/assets/fonts/Roboto-Medium.woff2 +0 -0
  404. package/src/Presentation/assets/fonts/Roboto-Regular.eot +0 -0
  405. package/src/Presentation/assets/fonts/Roboto-Regular.ttf +0 -0
  406. package/src/Presentation/assets/fonts/Roboto-Regular.woff +0 -0
  407. package/src/Presentation/assets/fonts/Roboto-Regular.woff2 +0 -0
  408. package/src/Presentation/assets/img/Artem_Koltunov_Selfi.png +0 -0
  409. package/src/Presentation/assets/img/bee-img.png +0 -0
  410. package/src/Presentation/assets/styles/_fonts.scss +32 -0
  411. package/src/Presentation/assets/styles/_reset-styles.scss +435 -0
  412. package/src/Presentation/assets/styles/_theme_colors_scheme.scss +56 -0
  413. package/src/Presentation/assets/styles/_theme_dark.scss +33 -0
  414. package/src/Presentation/assets/styles/_theme_light.scss +33 -0
  415. package/src/Presentation/assets/styles/_variables.scss +2 -0
  416. package/src/Presentation/components/Button.js +5 -0
  417. package/src/Presentation/components/Navbar.tsx +45 -0
  418. package/src/Presentation/components/TextInput.js +10 -0
  419. package/src/Presentation/components/UI/ DefaultThemes/CustomTheme.ts +13 -0
  420. package/src/Presentation/components/UI/ DefaultThemes/DefaultTheme.ts +58 -0
  421. package/src/Presentation/components/UI/Buttons/ActiveButton/ActiveButton.tsx +40 -0
  422. package/src/Presentation/components/UI/Buttons/MainBoundedButton/MainBoundedButton.scss +0 -0
  423. package/src/Presentation/components/UI/Buttons/MainBoundedButton/MainBoundedButton.tsx +30 -0
  424. package/src/Presentation/components/UI/Buttons/MainButton/MainButton.scss +127 -0
  425. package/src/Presentation/components/UI/Buttons/MainButton/MainButton.tsx +62 -0
  426. package/src/Presentation/components/UI/Dialogs/CreateDialog/CreateDialog.scss +45 -0
  427. package/src/Presentation/components/UI/Dialogs/CreateDialog/CreateDialog.tsx +77 -0
  428. package/src/Presentation/components/UI/Dialogs/DialogInformation/DialogInformation.scss +429 -0
  429. package/src/Presentation/components/UI/Dialogs/DialogInformation/DialogInformation.tsx +646 -0
  430. package/src/Presentation/components/UI/Dialogs/DialogInformation/DialogMemberButton/DialogMembersButton.scss +42 -0
  431. package/src/Presentation/components/UI/Dialogs/DialogInformation/DialogMemberButton/DialogMembersButton.tsx +26 -0
  432. package/src/Presentation/components/UI/Dialogs/DialogInformation/UsersList/SingleUser/SingleUser.scss +95 -0
  433. package/src/Presentation/components/UI/Dialogs/DialogInformation/UsersList/SingleUser/SingleUser.tsx +42 -0
  434. package/src/Presentation/components/UI/Dialogs/DialogInformation/UsersList/UsersList.scss +60 -0
  435. package/src/Presentation/components/UI/Dialogs/DialogInformation/UsersList/UsersList.tsx +65 -0
  436. package/src/Presentation/components/UI/Dialogs/DialogInformation/UsersList/UsersListViewModel.ts +13 -0
  437. package/src/Presentation/components/UI/Dialogs/DialogInformation/UsersList/useUsersListViewModel.ts +81 -0
  438. package/src/Presentation/components/UI/Dialogs/EditDialog/EditDialog.scss +183 -0
  439. package/src/Presentation/components/UI/Dialogs/EditDialog/EditDialog.tsx +262 -0
  440. package/src/Presentation/components/UI/Dialogs/EditDialog/UserAvatar/UserAvatar.scss +32 -0
  441. package/src/Presentation/components/UI/Dialogs/EditDialog/UserAvatar/UserAvatar.tsx +59 -0
  442. package/src/Presentation/components/UI/Dialogs/HeaderDialogs/HeaderDialogs.scss +67 -0
  443. package/src/Presentation/components/UI/Dialogs/HeaderDialogs/HeaderDialogs.tsx +112 -0
  444. package/src/Presentation/components/UI/Dialogs/InviteMembers/InviteMembers.scss +146 -0
  445. package/src/Presentation/components/UI/Dialogs/InviteMembers/InviteMembers.tsx +374 -0
  446. package/src/Presentation/components/UI/Dialogs/InviteMembers/InviteMembersViewModel.ts +18 -0
  447. package/src/Presentation/components/UI/Dialogs/InviteMembers/InviteUsersList/SingleUserWithCheckBox/SingleUserWithCheckBox.scss +113 -0
  448. package/src/Presentation/components/UI/Dialogs/InviteMembers/InviteUsersList/SingleUserWithCheckBox/SingleUserWithCheckBox.tsx +87 -0
  449. package/src/Presentation/components/UI/Dialogs/InviteMembers/InviteUsersResultViewModel.ts +12 -0
  450. package/src/Presentation/components/UI/Dialogs/InviteMembers/NotFoundContent/NotFoundContent.scss +37 -0
  451. package/src/Presentation/components/UI/Dialogs/InviteMembers/NotFoundContent/NotFoundContent.tsx +22 -0
  452. package/src/Presentation/components/UI/Dialogs/InviteMembers/useInviteMembersViewModel.ts +116 -0
  453. package/src/Presentation/components/UI/Dialogs/MembersList/MembersList.scss +128 -0
  454. package/src/Presentation/components/UI/Dialogs/MembersList/MembersList.tsx +89 -0
  455. package/src/Presentation/components/UI/Dialogs/MessagesView/AudioAttachmentComponent/AudioAttachmentComponent.scss +7 -0
  456. package/src/Presentation/components/UI/Dialogs/MessagesView/AudioAttachmentComponent/AudioAttachmentComponent.tsx +27 -0
  457. package/src/Presentation/components/UI/Dialogs/MessagesView/HeaderMessages/HeaderMessages.scss +133 -0
  458. package/src/Presentation/components/UI/Dialogs/MessagesView/HeaderMessages/HeaderMessages.tsx +137 -0
  459. package/src/Presentation/components/UI/Dialogs/MessagesView/ImageAttachmentComponent/ImageAttachmentComponent.scss +11 -0
  460. package/src/Presentation/components/UI/Dialogs/MessagesView/ImageAttachmentComponent/ImageAttachmentComponent.tsx +25 -0
  461. package/src/Presentation/components/UI/Dialogs/MessagesView/MessagesView.scss +327 -0
  462. package/src/Presentation/components/UI/Dialogs/MessagesView/MessagesView.tsx +794 -0
  463. package/src/Presentation/components/UI/Dialogs/MessagesView/MessagesViewModel.ts +20 -0
  464. package/src/Presentation/components/UI/Dialogs/MessagesView/VideoAttachmentComponent/VideoAttachmentComponent.scss +7 -0
  465. package/src/Presentation/components/UI/Dialogs/MessagesView/VideoAttachmentComponent/VideoAttachmentComponent.tsx +33 -0
  466. package/src/Presentation/components/UI/Dialogs/MessagesView/VoiceRecordingProgress/VoiceRecordingProgress.scss +35 -0
  467. package/src/Presentation/components/UI/Dialogs/MessagesView/VoiceRecordingProgress/VoiceRecordingProgress.tsx +86 -0
  468. package/src/Presentation/components/UI/Dialogs/MessagesView/useMessagesViewModelWithMockUseCase.ts +452 -0
  469. package/src/Presentation/components/UI/Dialogs/PreviewDialog/PreviewDialog.scss +100 -0
  470. package/src/Presentation/components/UI/Dialogs/PreviewDialog/PreviewDialog.tsx +405 -0
  471. package/src/Presentation/components/UI/Dialogs/PreviewDialog/PreviewDialogViewModel.ts +42 -0
  472. package/src/Presentation/components/UI/Dialogs/YesNoQuestion/YesNoQuestion.scss +35 -0
  473. package/src/Presentation/components/UI/Dialogs/YesNoQuestion/YesNoQuestion.tsx +89 -0
  474. package/src/Presentation/components/UI/Elements/SwitchButton/SwitchButton.scss +61 -0
  475. package/src/Presentation/components/UI/Elements/SwitchButton/SwitchButton.tsx +48 -0
  476. package/src/Presentation/components/UI/Placeholders/ErrorComponent/ErrorComponent.scss +74 -0
  477. package/src/Presentation/components/UI/Placeholders/ErrorComponent/ErrorComponent.tsx +72 -0
  478. package/src/Presentation/components/UI/Placeholders/LoaderComponent/LoaderComponent.scss +21 -0
  479. package/src/Presentation/components/UI/Placeholders/LoaderComponent/LoaderComponent.tsx +41 -0
  480. package/src/Presentation/components/UI/svgs/ActiveSvg/ActiveSvg.scss +3 -0
  481. package/src/Presentation/components/UI/svgs/ActiveSvg/ActiveSvg.tsx +41 -0
  482. package/src/Presentation/components/UI/svgs/Icons/Actions/Add/Add.svg +3 -0
  483. package/src/Presentation/components/UI/svgs/Icons/Actions/Add/index.tsx +22 -0
  484. package/src/Presentation/components/UI/svgs/Icons/Actions/AddContact/Add contact.svg +3 -0
  485. package/src/Presentation/components/UI/svgs/Icons/Actions/AddContact/index.tsx +22 -0
  486. package/src/Presentation/components/UI/svgs/Icons/Actions/Archive/Archive.svg +3 -0
  487. package/src/Presentation/components/UI/svgs/Icons/Actions/Archive/index.tsx +22 -0
  488. package/src/Presentation/components/UI/svgs/Icons/Actions/Copy/Copy.svg +3 -0
  489. package/src/Presentation/components/UI/svgs/Icons/Actions/Copy/index.tsx +22 -0
  490. package/src/Presentation/components/UI/svgs/Icons/Actions/Delete/Delete.svg +3 -0
  491. package/src/Presentation/components/UI/svgs/Icons/Actions/Delete/index.tsx +22 -0
  492. package/src/Presentation/components/UI/svgs/Icons/Actions/Download/Download.svg +3 -0
  493. package/src/Presentation/components/UI/svgs/Icons/Actions/Download/index.tsx +22 -0
  494. package/src/Presentation/components/UI/svgs/Icons/Actions/Edit/Edit.svg +3 -0
  495. package/src/Presentation/components/UI/svgs/Icons/Actions/Edit/index.tsx +22 -0
  496. package/src/Presentation/components/UI/svgs/Icons/Actions/EditDots/EditDots.svg +3 -0
  497. package/src/Presentation/components/UI/svgs/Icons/Actions/EditDots/index.tsx +22 -0
  498. package/src/Presentation/components/UI/svgs/Icons/Actions/Emoji/Emoji.svg +3 -0
  499. package/src/Presentation/components/UI/svgs/Icons/Actions/Emoji/index.tsx +22 -0
  500. package/src/Presentation/components/UI/svgs/Icons/Actions/ForwardFilled/Forward filled.svg +3 -0
  501. package/src/Presentation/components/UI/svgs/Icons/Actions/ForwardFilled/index.tsx +22 -0
  502. package/src/Presentation/components/UI/svgs/Icons/Actions/Hungup/Hungup.svg +3 -0
  503. package/src/Presentation/components/UI/svgs/Icons/Actions/Hungup/index.tsx +22 -0
  504. package/src/Presentation/components/UI/svgs/Icons/Actions/IncomeCall/Income call.svg +3 -0
  505. package/src/Presentation/components/UI/svgs/Icons/Actions/IncomeCall/index.tsx +22 -0
  506. package/src/Presentation/components/UI/svgs/Icons/Actions/Like/Like.svg +3 -0
  507. package/src/Presentation/components/UI/svgs/Icons/Actions/Like/index.tsx +22 -0
  508. package/src/Presentation/components/UI/svgs/Icons/Actions/NewChat/New chat.svg +3 -0
  509. package/src/Presentation/components/UI/svgs/Icons/Actions/NewChat/index.tsx +22 -0
  510. package/src/Presentation/components/UI/svgs/Icons/Actions/OutcomeCall/Outcome call.svg +3 -0
  511. package/src/Presentation/components/UI/svgs/Icons/Actions/OutcomeCall/index.tsx +22 -0
  512. package/src/Presentation/components/UI/svgs/Icons/Actions/Phone/Phone.svg +3 -0
  513. package/src/Presentation/components/UI/svgs/Icons/Actions/Phone/index.tsx +35 -0
  514. package/src/Presentation/components/UI/svgs/Icons/Actions/PhoneFilled/Phone filled.svg +3 -0
  515. package/src/Presentation/components/UI/svgs/Icons/Actions/PhoneFilled/index.tsx +22 -0
  516. package/src/Presentation/components/UI/svgs/Icons/Actions/Remove/Remove.svg +3 -0
  517. package/src/Presentation/components/UI/svgs/Icons/Actions/Remove/index.tsx +22 -0
  518. package/src/Presentation/components/UI/svgs/Icons/Actions/Remove2/Remove2.svg +3 -0
  519. package/src/Presentation/components/UI/svgs/Icons/Actions/Remove2/index.tsx +22 -0
  520. package/src/Presentation/components/UI/svgs/Icons/Actions/ReplyFilled/Reply filled.svg +3 -0
  521. package/src/Presentation/components/UI/svgs/Icons/Actions/ReplyFilled/index.tsx +22 -0
  522. package/src/Presentation/components/UI/svgs/Icons/Actions/Send/Send.svg +3 -0
  523. package/src/Presentation/components/UI/svgs/Icons/Actions/Send/index.tsx +38 -0
  524. package/src/Presentation/components/UI/svgs/Icons/Actions/Share/Share.svg +3 -0
  525. package/src/Presentation/components/UI/svgs/Icons/Actions/Share/index.tsx +22 -0
  526. package/src/Presentation/components/UI/svgs/Icons/Actions/SwapCamera/Swap camera.svg +3 -0
  527. package/src/Presentation/components/UI/svgs/Icons/Actions/SwapCamera/index.tsx +22 -0
  528. package/src/Presentation/components/UI/svgs/Icons/Actions/Unarchive/Unarchive.svg +3 -0
  529. package/src/Presentation/components/UI/svgs/Icons/Actions/Unarchive/index.tsx +22 -0
  530. package/src/Presentation/components/UI/svgs/Icons/Actions/VideoIcon/Video.svg +3 -0
  531. package/src/Presentation/components/UI/svgs/Icons/Actions/VideoIcon/index.tsx +22 -0
  532. package/src/Presentation/components/UI/svgs/Icons/Actions/Voice/Voice.svg +3 -0
  533. package/src/Presentation/components/UI/svgs/Icons/Actions/Voice/index.tsx +35 -0
  534. package/src/Presentation/components/UI/svgs/Icons/Contents/Brodcast/Broadcast.svg +7 -0
  535. package/src/Presentation/components/UI/svgs/Icons/Contents/Brodcast/index.tsx +38 -0
  536. package/src/Presentation/components/UI/svgs/Icons/Contents/Chat/Chat.svg +3 -0
  537. package/src/Presentation/components/UI/svgs/Icons/Contents/Chat/index.tsx +35 -0
  538. package/src/Presentation/components/UI/svgs/Icons/Contents/ChatFilled/Chat filled.svg +3 -0
  539. package/src/Presentation/components/UI/svgs/Icons/Contents/ChatFilled/index.tsx +22 -0
  540. package/src/Presentation/components/UI/svgs/Icons/Contents/Conference/Conference.svg +3 -0
  541. package/src/Presentation/components/UI/svgs/Icons/Contents/Conference/index.tsx +22 -0
  542. package/src/Presentation/components/UI/svgs/Icons/Contents/Contact/Contact.svg +3 -0
  543. package/src/Presentation/components/UI/svgs/Icons/Contents/Contact/index.tsx +22 -0
  544. package/src/Presentation/components/UI/svgs/Icons/Contents/ContactFilled/Contact filled.svg +3 -0
  545. package/src/Presentation/components/UI/svgs/Icons/Contents/ContactFilled/index.tsx +22 -0
  546. package/src/Presentation/components/UI/svgs/Icons/Contents/GroupChat/Group chat.svg +3 -0
  547. package/src/Presentation/components/UI/svgs/Icons/Contents/GroupChat/index.tsx +35 -0
  548. package/src/Presentation/components/UI/svgs/Icons/Contents/Notifications/Notifications.svg +3 -0
  549. package/src/Presentation/components/UI/svgs/Icons/Contents/Notifications/index.tsx +22 -0
  550. package/src/Presentation/components/UI/svgs/Icons/Contents/PrivateChat/Private chat.svg +3 -0
  551. package/src/Presentation/components/UI/svgs/Icons/Contents/PrivateChat/index.tsx +22 -0
  552. package/src/Presentation/components/UI/svgs/Icons/Contents/PublicChannel/Public channel.svg +7 -0
  553. package/src/Presentation/components/UI/svgs/Icons/Contents/PublicChannel/index.tsx +67 -0
  554. package/src/Presentation/components/UI/svgs/Icons/Contents/Stream/Stream.svg +3 -0
  555. package/src/Presentation/components/UI/svgs/Icons/Contents/Stream/index.tsx +22 -0
  556. package/src/Presentation/components/UI/svgs/Icons/Contents/StreamFilled/Stream filled.svg +3 -0
  557. package/src/Presentation/components/UI/svgs/Icons/Contents/StreamFilled/index.tsx +22 -0
  558. package/src/Presentation/components/UI/svgs/Icons/Contents/User/User.svg +3 -0
  559. package/src/Presentation/components/UI/svgs/Icons/Contents/User/index.tsx +35 -0
  560. package/src/Presentation/components/UI/svgs/Icons/IconsCommonTypes.ts +6 -0
  561. package/src/Presentation/components/UI/svgs/Icons/Media/Attachment/Attachment.svg +3 -0
  562. package/src/Presentation/components/UI/svgs/Icons/Media/Attachment/index.tsx +22 -0
  563. package/src/Presentation/components/UI/svgs/Icons/Media/AudioFile/Audio file.svg +3 -0
  564. package/src/Presentation/components/UI/svgs/Icons/Media/AudioFile/index.tsx +22 -0
  565. package/src/Presentation/components/UI/svgs/Icons/Media/BrokenFile/Broken file.svg +3 -0
  566. package/src/Presentation/components/UI/svgs/Icons/Media/BrokenFile/index.tsx +22 -0
  567. package/src/Presentation/components/UI/svgs/Icons/Media/Camera/Camera.svg +3 -0
  568. package/src/Presentation/components/UI/svgs/Icons/Media/Camera/index.tsx +22 -0
  569. package/src/Presentation/components/UI/svgs/Icons/Media/GifFile/GIF file.svg +3 -0
  570. package/src/Presentation/components/UI/svgs/Icons/Media/GifFile/index.tsx +22 -0
  571. package/src/Presentation/components/UI/svgs/Icons/Media/ImageEmpty/Image.svg +3 -0
  572. package/src/Presentation/components/UI/svgs/Icons/Media/ImageEmpty/index.tsx +22 -0
  573. package/src/Presentation/components/UI/svgs/Icons/Media/ImageFile/File.svg +3 -0
  574. package/src/Presentation/components/UI/svgs/Icons/Media/ImageFile/index.tsx +35 -0
  575. package/src/Presentation/components/UI/svgs/Icons/Media/ImageFilled/Image filled.svg +3 -0
  576. package/src/Presentation/components/UI/svgs/Icons/Media/ImageFilled/index.tsx +22 -0
  577. package/src/Presentation/components/UI/svgs/Icons/Media/LinkWeb/Link.svg +3 -0
  578. package/src/Presentation/components/UI/svgs/Icons/Media/LinkWeb/index.tsx +22 -0
  579. package/src/Presentation/components/UI/svgs/Icons/Media/Location/Location.svg +4 -0
  580. package/src/Presentation/components/UI/svgs/Icons/Media/Location/index.tsx +26 -0
  581. package/src/Presentation/components/UI/svgs/Icons/Media/TextDocument/Text document.svg +3 -0
  582. package/src/Presentation/components/UI/svgs/Icons/Media/TextDocument/index.tsx +22 -0
  583. package/src/Presentation/components/UI/svgs/Icons/Media/VideoFile/Video file.svg +3 -0
  584. package/src/Presentation/components/UI/svgs/Icons/Media/VideoFile/index.tsx +22 -0
  585. package/src/Presentation/components/UI/svgs/Icons/Moderation/Admin/Admin.svg +3 -0
  586. package/src/Presentation/components/UI/svgs/Icons/Moderation/Admin/index.tsx +22 -0
  587. package/src/Presentation/components/UI/svgs/Icons/Moderation/Banned/Banned.svg +3 -0
  588. package/src/Presentation/components/UI/svgs/Icons/Moderation/Banned/index.tsx +22 -0
  589. package/src/Presentation/components/UI/svgs/Icons/Moderation/Freeze/Freeze.svg +3 -0
  590. package/src/Presentation/components/UI/svgs/Icons/Moderation/Freeze/index.tsx +22 -0
  591. package/src/Presentation/components/UI/svgs/Icons/Moderation/Moderations/Moderations.svg +3 -0
  592. package/src/Presentation/components/UI/svgs/Icons/Moderation/Moderations/index.tsx +22 -0
  593. package/src/Presentation/components/UI/svgs/Icons/Moderation/Muted/Muted.svg +3 -0
  594. package/src/Presentation/components/UI/svgs/Icons/Moderation/Muted/index.tsx +22 -0
  595. package/src/Presentation/components/UI/svgs/Icons/Navigation/ArrowLeft/Arrow left.svg +3 -0
  596. package/src/Presentation/components/UI/svgs/Icons/Navigation/ArrowLeft/index.tsx +22 -0
  597. package/src/Presentation/components/UI/svgs/Icons/Navigation/ArrowRight/Arrow right.svg +3 -0
  598. package/src/Presentation/components/UI/svgs/Icons/Navigation/ArrowRight/index.tsx +22 -0
  599. package/src/Presentation/components/UI/svgs/Icons/Navigation/Back/Back.svg +3 -0
  600. package/src/Presentation/components/UI/svgs/Icons/Navigation/Back/index.tsx +22 -0
  601. package/src/Presentation/components/UI/svgs/Icons/Navigation/Close/Close.svg +3 -0
  602. package/src/Presentation/components/UI/svgs/Icons/Navigation/Close/index.tsx +35 -0
  603. package/src/Presentation/components/UI/svgs/Icons/Navigation/Down/Down.svg +3 -0
  604. package/src/Presentation/components/UI/svgs/Icons/Navigation/Down/index.tsx +35 -0
  605. package/src/Presentation/components/UI/svgs/Icons/Navigation/Leave/Leave.svg +3 -0
  606. package/src/Presentation/components/UI/svgs/Icons/Navigation/Leave/index.tsx +35 -0
  607. package/src/Presentation/components/UI/svgs/Icons/Navigation/More/More.svg +7 -0
  608. package/src/Presentation/components/UI/svgs/Icons/Navigation/More/index.tsx +22 -0
  609. package/src/Presentation/components/UI/svgs/Icons/Navigation/Next/Next.svg +3 -0
  610. package/src/Presentation/components/UI/svgs/Icons/Navigation/Next/index.tsx +35 -0
  611. package/src/Presentation/components/UI/svgs/Icons/Navigation/Plus/Plus.svg +3 -0
  612. package/src/Presentation/components/UI/svgs/Icons/Navigation/Plus/index.tsx +22 -0
  613. package/src/Presentation/components/UI/svgs/Icons/Navigation/Refresh/Refresh.svg +3 -0
  614. package/src/Presentation/components/UI/svgs/Icons/Navigation/Refresh/index.tsx +36 -0
  615. package/src/Presentation/components/UI/svgs/Icons/Navigation/Search/Search.svg +3 -0
  616. package/src/Presentation/components/UI/svgs/Icons/Navigation/Search/index.tsx +35 -0
  617. package/src/Presentation/components/UI/svgs/Icons/Navigation/Settings/Settings.svg +3 -0
  618. package/src/Presentation/components/UI/svgs/Icons/Navigation/Settings/index.tsx +22 -0
  619. package/src/Presentation/components/UI/svgs/Icons/Navigation/SettingsField/Settings filled.svg +3 -0
  620. package/src/Presentation/components/UI/svgs/Icons/Navigation/SettingsField/index.tsx +22 -0
  621. package/src/Presentation/components/UI/svgs/Icons/Status/Error/Error.svg +3 -0
  622. package/src/Presentation/components/UI/svgs/Icons/Status/Error/index.tsx +36 -0
  623. package/src/Presentation/components/UI/svgs/Icons/Status/Help/Help.svg +3 -0
  624. package/src/Presentation/components/UI/svgs/Icons/Status/Help/index.tsx +22 -0
  625. package/src/Presentation/components/UI/svgs/Icons/Status/Information/Information.svg +3 -0
  626. package/src/Presentation/components/UI/svgs/Icons/Status/Information/index.tsx +22 -0
  627. package/src/Presentation/components/UI/svgs/Icons/Status/InformationFill/index.tsx +35 -0
  628. package/src/Presentation/components/UI/svgs/Icons/Status/Loader/Loader.svg +3 -0
  629. package/src/Presentation/components/UI/svgs/Icons/Status/Loader/index.tsx +22 -0
  630. package/src/Presentation/components/UI/svgs/Icons/Status/Mention/Mention.svg +3 -0
  631. package/src/Presentation/components/UI/svgs/Icons/Status/Mention/index.tsx +22 -0
  632. package/src/Presentation/components/UI/svgs/Icons/Status/Sent/Sent.svg +3 -0
  633. package/src/Presentation/components/UI/svgs/Icons/Status/Sent/index.tsx +22 -0
  634. package/src/Presentation/components/UI/svgs/Icons/Status/ViewedDelivered/Viewed_Delivered.svg +3 -0
  635. package/src/Presentation/components/UI/svgs/Icons/Status/ViewedDelivered/index.tsx +38 -0
  636. package/src/Presentation/components/UI/svgs/Icons/Toggle/CameraOff/Camera off.svg +3 -0
  637. package/src/Presentation/components/UI/svgs/Icons/Toggle/CameraOff/index.tsx +22 -0
  638. package/src/Presentation/components/UI/svgs/Icons/Toggle/CameraOn/Camera on.svg +3 -0
  639. package/src/Presentation/components/UI/svgs/Icons/Toggle/CameraOn/index.tsx +22 -0
  640. package/src/Presentation/components/UI/svgs/Icons/Toggle/CheckOff/Check off.svg +3 -0
  641. package/src/Presentation/components/UI/svgs/Icons/Toggle/CheckOff/index.tsx +22 -0
  642. package/src/Presentation/components/UI/svgs/Icons/Toggle/CheckOn/Check on.svg +3 -0
  643. package/src/Presentation/components/UI/svgs/Icons/Toggle/CheckOn/index.tsx +24 -0
  644. package/src/Presentation/components/UI/svgs/Icons/Toggle/Favourite/Favourite.svg +3 -0
  645. package/src/Presentation/components/UI/svgs/Icons/Toggle/Favourite/index.tsx +22 -0
  646. package/src/Presentation/components/UI/svgs/Icons/Toggle/FavouriteFilled/Favourite filled.svg +3 -0
  647. package/src/Presentation/components/UI/svgs/Icons/Toggle/FavouriteFilled/index.tsx +22 -0
  648. package/src/Presentation/components/UI/svgs/Icons/Toggle/FullScreen/Full screen.svg +3 -0
  649. package/src/Presentation/components/UI/svgs/Icons/Toggle/FullScreen/inex.tsx +22 -0
  650. package/src/Presentation/components/UI/svgs/Icons/Toggle/Hide/Hide.svg +3 -0
  651. package/src/Presentation/components/UI/svgs/Icons/Toggle/Hide/index.tsx +22 -0
  652. package/src/Presentation/components/UI/svgs/Icons/Toggle/ImagePlay/Play.svg +3 -0
  653. package/src/Presentation/components/UI/svgs/Icons/Toggle/ImagePlay/index.tsx +22 -0
  654. package/src/Presentation/components/UI/svgs/Icons/Toggle/Louder/Louder.svg +3 -0
  655. package/src/Presentation/components/UI/svgs/Icons/Toggle/Louder/index.tsx +22 -0
  656. package/src/Presentation/components/UI/svgs/Icons/Toggle/MicOff/Mic off.svg +3 -0
  657. package/src/Presentation/components/UI/svgs/Icons/Toggle/MicOff/index.tsx +22 -0
  658. package/src/Presentation/components/UI/svgs/Icons/Toggle/MicOn/Mic on.svg +4 -0
  659. package/src/Presentation/components/UI/svgs/Icons/Toggle/MicOn/index.tsx +26 -0
  660. package/src/Presentation/components/UI/svgs/Icons/Toggle/Minimize/Minimize.svg +3 -0
  661. package/src/Presentation/components/UI/svgs/Icons/Toggle/Minimize/index.tsx +22 -0
  662. package/src/Presentation/components/UI/svgs/Icons/Toggle/NotifyOff/Notify off.svg +3 -0
  663. package/src/Presentation/components/UI/svgs/Icons/Toggle/NotifyOff/index.tsx +35 -0
  664. package/src/Presentation/components/UI/svgs/Icons/Toggle/NotifyOn/Notify on.svg +3 -0
  665. package/src/Presentation/components/UI/svgs/Icons/Toggle/NotifyOn/index.tsx +35 -0
  666. package/src/Presentation/components/UI/svgs/Icons/Toggle/Pause/Pause.svg +3 -0
  667. package/src/Presentation/components/UI/svgs/Icons/Toggle/Pause/index.tsx +22 -0
  668. package/src/Presentation/components/UI/svgs/Icons/Toggle/Quite/Quite.svg +3 -0
  669. package/src/Presentation/components/UI/svgs/Icons/Toggle/Quite/index.tsx +22 -0
  670. package/src/Presentation/components/UI/svgs/Icons/Toggle/Record/Record.svg +3 -0
  671. package/src/Presentation/components/UI/svgs/Icons/Toggle/Record/index.tsx +22 -0
  672. package/src/Presentation/components/UI/svgs/Icons/Toggle/Screenshare/Screenshare.svg +3 -0
  673. package/src/Presentation/components/UI/svgs/Icons/Toggle/Screenshare/index.tsx +22 -0
  674. package/src/Presentation/components/UI/svgs/Icons/Toggle/Show/Show.svg +3 -0
  675. package/src/Presentation/components/UI/svgs/Icons/Toggle/Show/index.tsx +22 -0
  676. package/src/Presentation/components/UI/svgs/Icons/Toggle/Speaker/Speaker.svg +3 -0
  677. package/src/Presentation/components/UI/svgs/Icons/Toggle/Speaker/index.tsx +22 -0
  678. package/src/Presentation/components/UI/svgs/Icons/Toggle/SpeakerOff/Speaker off.svg +3 -0
  679. package/src/Presentation/components/UI/svgs/Icons/Toggle/SpeakerOff/index.tsx +22 -0
  680. package/src/Presentation/components/UI/svgs/Icons/Toggle/StopRecord/Stop record.svg +3 -0
  681. package/src/Presentation/components/UI/svgs/Icons/Toggle/StopRecord/index.tsx +22 -0
  682. package/src/Presentation/components/UI/svgs/Icons/Toggle/StopShare/Stop share.svg +3 -0
  683. package/src/Presentation/components/UI/svgs/Icons/Toggle/StopShare/index.tsx +22 -0
  684. package/src/Presentation/components/containers/ColumnContainer/ColumnContainer.scss +6 -0
  685. package/src/Presentation/components/containers/ColumnContainer/ColumnContainer.tsx +24 -0
  686. package/src/Presentation/components/containers/RowCenterContainer/RowCenterContainer.scss +45 -0
  687. package/src/Presentation/components/containers/RowCenterContainer/RowCenterContainer.tsx +95 -0
  688. package/src/Presentation/components/containers/RowLeftContainer/RowLeftContainer.scss +45 -0
  689. package/src/Presentation/components/containers/RowLeftContainer/RowLeftContainer.tsx +97 -0
  690. package/src/Presentation/components/containers/RowRightContainer/RowRightContainer.scss +46 -0
  691. package/src/Presentation/components/containers/RowRightContainer/RowRightContainer.tsx +97 -0
  692. package/src/Presentation/components/containers/ScrollableContainer/ScrollableContainer.scss +46 -0
  693. package/src/Presentation/components/containers/ScrollableContainer/ScrollableContainer.tsx +85 -0
  694. package/src/Presentation/components/layouts/Desktop/Desktop.tsx +103 -0
  695. package/src/Presentation/components/layouts/Desktop/DesktopLayout.scss +31 -0
  696. package/src/Presentation/components/layouts/Desktop/DesktopLayoutForMockModels.tsx +31 -0
  697. package/src/Presentation/components/layouts/LayoutCommonTypes.ts +7 -0
  698. package/src/Presentation/components/layouts/TestStage/LoginView/Login.scss +71 -0
  699. package/src/Presentation/components/layouts/TestStage/LoginView/Login.tsx +116 -0
  700. package/src/Presentation/components/layouts/TestStage/TestStageMarkup.scss +24 -0
  701. package/src/Presentation/components/layouts/TestStage/TestStageMarkup.tsx +1109 -0
  702. package/src/Presentation/components/layouts/TestStage/TestStageWithMockData/TestStageWithMockData.tsx +209 -0
  703. package/src/Presentation/components/providers/ModalContextProvider/Modal.scss +71 -0
  704. package/src/Presentation/components/providers/ModalContextProvider/Modal.tsx +131 -0
  705. package/src/Presentation/components/providers/ModalContextProvider/ModalContextProvider.tsx +38 -0
  706. package/src/Presentation/components/providers/ModalContextProvider/useModal.ts +39 -0
  707. package/src/Presentation/components/providers/ProviderProps.ts +5 -0
  708. package/src/Presentation/components/providers/QuickBloxUIKitProvider/QuickBloxUIKitProvider.tsx +255 -0
  709. package/src/Presentation/components/providers/QuickBloxUIKitProvider/useEventMessagesRepository.ts +10 -0
  710. package/src/Presentation/components/providers/QuickBloxUIKitProvider/useQBConnection.ts +38 -0
  711. package/src/Presentation/components/providers/QuickBloxUIKitProvider/useQbDataContext.ts +82 -0
  712. package/src/QBconfig.ts +41 -0
  713. package/src/index-ui.ts +60 -0
  714. package/src/index.scss +74 -0
  715. package/src/index.tsx +25 -0
  716. package/src/logo.svg +1 -0
  717. package/src/qb-api-calls/index.ts +543 -0
  718. package/src/react-app-env.d.ts +1 -0
  719. package/src/setupTests.ts +5 -0
  720. package/src/utils/DateTimeFormatter.ts +35 -0
  721. package/src/utils/parse.ts +74 -0
  722. package/tsconfig.json +33 -0
  723. package/typedoc.json +4 -0
  724. package/webpack.config.js +56 -0
@@ -0,0 +1,1278 @@
1
+ import { RemoteDialogDTO } from '../../dto/dialog/RemoteDialogDTO';
2
+ import {
3
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_CODE,
4
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_MESSAGE,
5
+ NOT_FOUND_REMOTE_DATASOURCE_EXCEPTION_CODE,
6
+ NOT_FOUND_REMOTE_DATASOURCE_EXCEPTION_MESSAGE,
7
+ RemoteDataSourceException,
8
+ } from '../exception/RemoteDataSourceException';
9
+ import { RemoteDialogsDTO } from '../../dto/dialog/RemoteDialogsDTO';
10
+ import { RemoteMessageDTO } from '../../dto/message/RemoteMessageDTO';
11
+ import { RemoteUserDTO } from '../../dto/user/RemoteUserDTO';
12
+ import { RemoteUsersDTO } from '../../dto/user/RemoteUsersDTO';
13
+ import { RemoteMessagesDTO } from '../../dto/message/RemoteMessagesDTO';
14
+ import { RemoteFileDTO } from '../../dto/file/RemoteFileDTO';
15
+ import { Pagination } from '../../../Domain/repository/Pagination';
16
+ import { DialogDTOMapper } from './Mapper/DialogDTOMapper';
17
+ import { IDTOMapper } from './Mapper/IDTOMapper';
18
+ import { Stubs } from '../../Stubs';
19
+ import {
20
+ QBChatConnect,
21
+ QBChatDisconnect,
22
+ QBChatGetMessages,
23
+ QBChatMarkMessageRead,
24
+ QBChatSendMessage,
25
+ QBChatSendSystemMessage,
26
+ QBCreateAndUploadContent,
27
+ QBCreateGroupDialog,
28
+ QBCreatePrivateDialog,
29
+ QBCreateSession,
30
+ QBDeleteDialog,
31
+ QBGetDialogById,
32
+ QBGetDialogs,
33
+ QBInit,
34
+ QBInitParams,
35
+ QBJoinDialog,
36
+ QBLogout,
37
+ QBSendIsStopTypingStatus,
38
+ QBSendIsTypingStatus,
39
+ QBUpdateDialog,
40
+ QBUsersGet,
41
+ QBUsersGetById,
42
+ } from '../../../qb-api-calls';
43
+ import { UserDTOMapper } from './Mapper/UserDTOMapper';
44
+ import { MessageDTOMapper } from './Mapper/MessageDTOMapper';
45
+ import { IMapper } from '../../mapper/IMapper';
46
+ import { DialogRemoteDTOMapper } from '../../mapper/DialogRemoteDTOMapper';
47
+ import { DialogEntity } from '../../../Domain/entity/DialogEntity';
48
+ import RepositoryException from '../exception/RepositoryException';
49
+ import { MapperDTOException } from '../exception/MapperDTOException';
50
+ import { stringifyError } from '../../../utils/parse';
51
+ import { DialogType } from '../../../Domain/entity/DialogTypes';
52
+ import { NotificationTypes } from '../../../Domain/entity/NotificationTypes';
53
+ import EventMessageType from '../../../Domain/entity/EventMessageType';
54
+ import { SubscriptionPerformer } from '../../../Domain/use_cases/base/Subscribable/SubscriptionPerformer';
55
+ import { CallBackFunction } from '../../../Domain/use_cases/base/IUseCase';
56
+ import { FileDTOMapper } from './Mapper/FileDTOMapper';
57
+ import { DialogEventInfo } from '../../../Domain/entity/DialogEventInfo';
58
+ import { IRemoteDataSource } from './IRemoteDataSource';
59
+
60
+ export type PaginatedDTOResult = {
61
+ // PaginatedList: Record<number, RemoteUserDTO[]>;
62
+ PaginationResult: Pagination;
63
+ ResultData: RemoteUserDTO[];
64
+ };
65
+
66
+ export type LoginData = {
67
+ userName: string;
68
+ password: string;
69
+ };
70
+ export type AuthorizationData = {
71
+ sessionToken: string;
72
+ userId: number;
73
+ password: string;
74
+ userName: string;
75
+ };
76
+
77
+ export class RemoteDataSource implements IRemoteDataSource {
78
+ get needInit(): boolean {
79
+ return this._needInit;
80
+ }
81
+
82
+ private dialogDTOMapper: IDTOMapper;
83
+
84
+ private userDTOMapper: IDTOMapper;
85
+
86
+ private messageDTOMapper: IDTOMapper;
87
+
88
+ private fileDTOMapper: IDTOMapper;
89
+
90
+ private _needInit: boolean;
91
+
92
+ private _authProcessed: boolean;
93
+
94
+ get authProcessed(): boolean {
95
+ return this._authProcessed;
96
+ }
97
+
98
+ public setAuthProcessedSuccessed() {
99
+ this._authProcessed = true;
100
+ this.setInitSDKSuccessed();
101
+ }
102
+
103
+ public setInitSDKSuccessed() {
104
+ this._needInit = false;
105
+ }
106
+
107
+ private _authInformation: AuthorizationData | undefined;
108
+
109
+ get authInformation(): AuthorizationData | undefined {
110
+ return this._authInformation;
111
+ }
112
+
113
+ //
114
+ constructor() {
115
+ console.log('CONSTRUCTOR RemoteDataSourceMock');
116
+ this.dialogDTOMapper = new DialogDTOMapper();
117
+ this.userDTOMapper = new UserDTOMapper();
118
+ this.messageDTOMapper = new MessageDTOMapper();
119
+ this.fileDTOMapper = new FileDTOMapper();
120
+ this._needInit = true;
121
+ this._authProcessed = false;
122
+ this.subscriptionOnSystemMessages[NotificationTypes.UPDATE_DIALOG] =
123
+ new SubscriptionPerformer<RemoteMessageDTO>();
124
+ this.subscriptionOnSystemMessages[NotificationTypes.DELETE_LEAVE_DIALOG] =
125
+ new SubscriptionPerformer<RemoteMessageDTO>();
126
+ this.subscriptionOnSystemMessages[NotificationTypes.NEW_DIALOG] =
127
+ new SubscriptionPerformer<RemoteMessageDTO>();
128
+ }
129
+
130
+ public async setUpMockStorage(): Promise<void> {
131
+ // const dialogs: RemoteDialogDTO[] = Stubs.createArrayPublicDialogDTO();
132
+ //
133
+ // dialogs.forEach((item) => {
134
+ // // eslint-disable-next-line promise/catch-or-return,promise/always-return,@typescript-eslint/no-unused-vars
135
+ // this.createDialog(item).then((_) => {
136
+ // console.log(`added mock item ${JSON.stringify(item)}`);
137
+ // });
138
+ // });
139
+
140
+ const dialogsDTOtoEntityMapper: IMapper = new DialogRemoteDTOMapper();
141
+ const dialogsEntities = Stubs.createDialogsForTest();
142
+
143
+ // eslint-disable-next-line no-restricted-syntax
144
+ for (const item of dialogsEntities) {
145
+ const dialogDTO: RemoteDialogDTO =
146
+ // eslint-disable-next-line no-await-in-loop
147
+ await dialogsDTOtoEntityMapper.fromEntity<
148
+ DialogEntity,
149
+ RemoteDialogDTO
150
+ >(item);
151
+
152
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars,promise/catch-or-return,promise/always-return
153
+ this.createDialog(dialogDTO)
154
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars,promise/always-return
155
+ .then((_) => {
156
+ console.log(`added mock item ${JSON.stringify(dialogDTO)}`);
157
+ })
158
+ .catch((e) => {
159
+ console.log('EXCEPTION:', (e as RepositoryException).message);
160
+ });
161
+ }
162
+ }
163
+
164
+ // eslint-disable-next-line class-methods-use-this
165
+ private async createUserSession(loginData: QBLoginParams) {
166
+ const session: QBSession = await QBCreateSession(loginData);
167
+
168
+ return session;
169
+ }
170
+
171
+ // eslint-disable-next-line class-methods-use-this
172
+ public static initSDK(sdkParams: QBInitParams): boolean {
173
+ console.log('2. call initSDK in RemoteDataSourceMock');
174
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
175
+ // @ts-ignore
176
+ if (!window.QB) {
177
+ throw new Error('HAVE NO SDK');
178
+ } else {
179
+ console.log('2. start init actions');
180
+ QBInit({
181
+ appIdOrToken: sdkParams.appIdOrToken,
182
+ authKeyOrAppId: sdkParams.authKeyOrAppId,
183
+ authSecret: sdkParams.authSecret,
184
+ accountKey: sdkParams.accountKey,
185
+ });
186
+ const QuickBloxVersion = `CALL initData: Init SDK was success: version ${QB.version} build ${QB.buildNumber}`;
187
+
188
+ console.log(QuickBloxVersion);
189
+
190
+ return true;
191
+ }
192
+ }
193
+
194
+ public async initSDKWithUser(
195
+ sdkParams: QBInitParams,
196
+ authData: LoginData,
197
+ ): Promise<void> {
198
+ console.log('2. call initSDK in RemoteDataSourceMock');
199
+ if (this._needInit) {
200
+ console.log('2. start init actions');
201
+ QBInit({
202
+ appIdOrToken: sdkParams.appIdOrToken,
203
+ authKeyOrAppId: sdkParams.authKeyOrAppId,
204
+ authSecret: sdkParams.authSecret,
205
+ accountKey: sdkParams.accountKey,
206
+ });
207
+ const QuickBloxVersion = `CALL initData: Init SDK was success: version ${QB.version} build ${QB.buildNumber}`;
208
+
209
+ console.log(QuickBloxVersion);
210
+ //
211
+ this._needInit = false;
212
+ await this.loginWithUser(authData);
213
+ }
214
+ }
215
+
216
+ public async disconnectAndLogoutUser() {
217
+ if (this._authProcessed) {
218
+ QBChatDisconnect();
219
+ await QBLogout();
220
+ this._authProcessed = false;
221
+ this.releaseSubscriptions();
222
+ this.releaseEventsHandlers();
223
+ }
224
+ }
225
+
226
+ releaseSubscriptions(): void {
227
+ Object.entries(this.subscriptionOnSystemMessages).map((x) => {
228
+ const eventName = x[0];
229
+
230
+ return this.subscriptionOnSystemMessages[eventName].release();
231
+ });
232
+ }
233
+
234
+ subscribeOnSystemMessaging(
235
+ notificationType: NotificationTypes,
236
+ callback: CallBackFunction<RemoteMessageDTO>,
237
+ ): void {
238
+ let SystemMessageType: string = NotificationTypes.NEW_DIALOG;
239
+
240
+ switch (notificationType) {
241
+ case NotificationTypes.DELETE_LEAVE_DIALOG:
242
+ SystemMessageType = NotificationTypes.DELETE_LEAVE_DIALOG;
243
+ break;
244
+ case NotificationTypes.UPDATE_DIALOG:
245
+ SystemMessageType = NotificationTypes.UPDATE_DIALOG;
246
+ break;
247
+ default:
248
+ SystemMessageType = NotificationTypes.NEW_DIALOG;
249
+ break;
250
+ }
251
+
252
+ this.subscriptionOnSystemMessages[SystemMessageType].subscribe(
253
+ callback,
254
+ EventMessageType.SystemMessage,
255
+ );
256
+ }
257
+
258
+ protected subscriptionOnSystemMessages: Dictionary<
259
+ SubscriptionPerformer<RemoteMessageDTO>
260
+ > = {};
261
+
262
+ subscribeOnMessaging(callback: CallBackFunction<RemoteMessageDTO>): void {
263
+ this.subscriptionOnChatMessages.subscribe(
264
+ callback,
265
+ EventMessageType.RegularMessage,
266
+ );
267
+ }
268
+
269
+ protected subscriptionOnChatMessages: SubscriptionPerformer<RemoteMessageDTO> =
270
+ new SubscriptionPerformer<RemoteMessageDTO>();
271
+
272
+ protected subscriptionOnMessageStatus: SubscriptionPerformer<DialogEventInfo> =
273
+ new SubscriptionPerformer<DialogEventInfo>();
274
+
275
+ protected subscriptionOnSessionExpiredListener: SubscriptionPerformer<boolean> =
276
+ new SubscriptionPerformer<boolean>();
277
+
278
+ subscribeOnSessionExpiredListener(callback: CallBackFunction<boolean>): void {
279
+ this.subscriptionOnSessionExpiredListener.subscribe(
280
+ callback,
281
+ EventMessageType.LocalMessage,
282
+ );
283
+ }
284
+
285
+ subscribeOnUpdateMessageStatus(
286
+ callback: CallBackFunction<DialogEventInfo>,
287
+ ): void {
288
+ this.subscriptionOnMessageStatus.subscribe(
289
+ callback,
290
+ EventMessageType.LocalMessage,
291
+ );
292
+ }
293
+
294
+ public initEventsHandlers() {
295
+ QB.chat.onSystemMessageListener = (message) => {
296
+ console.log(`EVENT: receive system message: ${JSON.stringify(message)}`);
297
+ const resultMessage = new RemoteMessageDTO();
298
+
299
+ resultMessage.message = message.body || 'system message';
300
+ resultMessage.notification_type =
301
+ message.extension.notification_type || NotificationTypes.UPDATE_DIALOG;
302
+ resultMessage.dialogId = message?.extension?.dialog_id || '';
303
+ this.subscriptionOnSystemMessages[
304
+ resultMessage.notification_type
305
+ ].informSubscribers(resultMessage, EventMessageType.SystemMessage);
306
+ };
307
+
308
+ function ToRemoteMessageDTO(message: QBChatXMPPMessage) {
309
+ const resultMessage = new RemoteMessageDTO();
310
+
311
+ resultMessage.id = message.id;
312
+ resultMessage.message = message.body;
313
+ resultMessage.markable = message.markable
314
+ ? message.markable.toString()
315
+ : '0';
316
+ resultMessage.dialogId = message?.extension?.dialog_id || '';
317
+ // eslint-disable-next-line no-nested-ternary
318
+ resultMessage.recipient_id = message?.recipient_id
319
+ ? parseInt(message?.recipient_id, 10)
320
+ : message?.extension?.sender_id
321
+ ? message?.extension?.sender_id
322
+ : 0;
323
+ resultMessage.sender_id = message?.extension?.sender_id
324
+ ? message?.extension?.sender_id
325
+ : 0;
326
+ resultMessage.notification_type =
327
+ message.notification_type || message.extension.notification_type;
328
+ resultMessage.date_sent = message.extension.date_sent
329
+ ? parseInt(message.extension.date_sent, 10)
330
+ : 0;
331
+ resultMessage.delivered_ids = [];
332
+
333
+ // resultMessage.attachments = message.extension.attachments || [];
334
+ resultMessage.attachments = MessageDTOMapper.transformAttachment(
335
+ message.extension.attachments ? message.extension.attachments : [],
336
+ );
337
+
338
+ return resultMessage;
339
+ }
340
+
341
+ QB.chat.onMessageListener = (
342
+ userId: number,
343
+ message: QBChatXMPPMessage,
344
+ ) => {
345
+ console.log(
346
+ `EVENT: receive message for userid: ${userId}, error: ${stringifyError(
347
+ message,
348
+ )}`,
349
+ );
350
+ const resultMessage = ToRemoteMessageDTO(message);
351
+
352
+ this.subscriptionOnChatMessages.informSubscribers(
353
+ resultMessage,
354
+ EventMessageType.RegularMessage,
355
+ );
356
+ };
357
+ QB.chat.onMessageTypingListener = (isTyping, userId, dialogId) => {
358
+ console.log(
359
+ `EVENT: receive typing: ${
360
+ isTyping ? 'true' : 'false'
361
+ }, dialog id: ${dialogId} userid: ${userId}`,
362
+ );
363
+ if (this._authProcessed && this.authInformation?.userId === userId)
364
+ return;
365
+
366
+ const resultMessage: DialogEventInfo = {
367
+ eventMessageType: EventMessageType.LocalMessage,
368
+ messageInfo: undefined,
369
+ messageStatus: { isTyping, userId, dialogId },
370
+ notificationTypes: undefined,
371
+ };
372
+
373
+ this.subscriptionOnMessageStatus.informSubscribers(
374
+ resultMessage,
375
+ EventMessageType.LocalMessage,
376
+ );
377
+ };
378
+ QB.chat.onSessionExpiredListener = (error) => {
379
+ let result = true;
380
+
381
+ if (error) {
382
+ console.log(
383
+ 'EVENT:onSessionExpiredListener - error: ',
384
+ stringifyError(error),
385
+ );
386
+ result = false;
387
+ } else {
388
+ console.log(
389
+ 'EVENT: Hello from SessionExpiredListener. session is expired.',
390
+ );
391
+ result = true;
392
+ }
393
+ this.subscriptionOnSessionExpiredListener.informSubscribers(
394
+ result,
395
+ EventMessageType.LocalMessage,
396
+ );
397
+ };
398
+ QB.chat.onDisconnectedListener = () => {
399
+ console.log('EVENT: disconnect');
400
+ };
401
+ QB.chat.onReconnectListener = () => {
402
+ console.log('EVENT: reconnect');
403
+ };
404
+ QB.chat.onMessageErrorListener = (messageId: string, error: unknown) => {
405
+ console.log(
406
+ `EVENT: receive error messageid: ${messageId}, error: ${stringifyError(
407
+ error,
408
+ )}`,
409
+ );
410
+ };
411
+
412
+ QB.chat.onDeliveredStatusListener = (messageId, dialogId, userId) => {
413
+ console.log(
414
+ `EVENT: receive delivered message id: ${messageId}, dialogid: ${dialogId} userid: ${userId}`,
415
+ );
416
+ };
417
+ QB.chat.onReadStatusListener = (messageId, dialogId, userId) => {
418
+ console.log(
419
+ `EVENT: receive read message id: ${messageId}, dialogid: ${dialogId} userid: ${userId}`,
420
+ );
421
+ };
422
+
423
+ //
424
+ }
425
+
426
+ // eslint-disable-next-line class-methods-use-this
427
+ public releaseEventsHandlers() {
428
+ QB.chat.onSessionExpiredListener = undefined;
429
+ QB.chat.onReconnectListener = undefined;
430
+ QB.chat.onDisconnectedListener = undefined;
431
+ QB.chat.onSystemMessageListener = undefined;
432
+ QB.chat.onMessageListener = undefined;
433
+ QB.chat.onMessageErrorListener = undefined;
434
+ QB.chat.onDeliveredStatusListener = undefined;
435
+ QB.chat.onReadStatusListener = undefined;
436
+ QB.chat.onMessageTypingListener = undefined;
437
+ }
438
+
439
+ public async loginWithUser(authParams: LoginData) {
440
+ if (this._needInit) return;
441
+ if (this._authProcessed) return;
442
+ //
443
+ console.log('CALL createUserSession....');
444
+ const userRequiredParams = {
445
+ login: authParams.userName,
446
+ password: authParams.password,
447
+ };
448
+ const sessionResult = await this.createUserSession(
449
+ userRequiredParams,
450
+ ).catch((e) => {
451
+ this._needInit = true;
452
+ this._authProcessed = false;
453
+ console.log(
454
+ `EXCEPTION IN CREATE USER SESSION (${
455
+ userRequiredParams.login
456
+ }) : ${stringifyError(e)}`,
457
+ );
458
+ });
459
+
460
+ if (!sessionResult) return;
461
+ //
462
+ console.log('USER DATA : ', userRequiredParams);
463
+ console.log('USER SESSION DATA : ', sessionResult);
464
+ console.log('Session token : ', sessionResult.token);
465
+
466
+ const session = sessionResult;
467
+ const sessionDataTmp = JSON.stringify(session);
468
+
469
+ const sessionData = JSON.parse(sessionDataTmp);
470
+
471
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
472
+ console.log(`user_id = ${sessionData.user_id}`);
473
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
474
+ console.log(`session token to chat init = ${sessionData.token}`);
475
+ const authInformation = {
476
+ userName: authParams.userName,
477
+ userId: sessionData.user_id,
478
+ sessionToken: sessionData.token,
479
+ password: sessionData.token,
480
+ };
481
+
482
+ const paramsConnect = {
483
+ userId: authInformation.userId,
484
+ password: authInformation.password,
485
+ };
486
+
487
+ console.log(paramsConnect);
488
+ //
489
+ const connectResult = await QBChatConnect(paramsConnect);
490
+
491
+ if (connectResult) {
492
+ //
493
+ this._authInformation = authInformation;
494
+ this.setAuthProcessedSuccessed();
495
+ console.log('CHAT CONNECTED. CAN WORK!');
496
+ console.log('CONNECTION DATA: ', JSON.stringify(authInformation));
497
+ //
498
+ this.initEventsHandlers();
499
+ //
500
+ } else {
501
+ console.log('could not connect to chat');
502
+ }
503
+
504
+ //
505
+ }
506
+
507
+ private async getDialogsFirstPage() {
508
+ // eslint-disable-next-line @typescript-eslint/no-shadow
509
+ const params = {
510
+ created_at: {
511
+ lt: Date.now() / 1000,
512
+ },
513
+ sort_desc: 'created_at',
514
+ limit: 100,
515
+ };
516
+
517
+ console.log('Chat connected. Get dialog.list....');
518
+ const qbDialogs: QBGetDialogResult | undefined = await QBGetDialogs(params);
519
+
520
+ if (qbDialogs) {
521
+ console.log('Ok... have dialog.list: ', JSON.stringify(qbDialogs));
522
+ //
523
+ const prevDialogs: RemoteDialogsDTO = await this.getDialogs();
524
+
525
+ // eslint-disable-next-line no-restricted-syntax
526
+ for (const item of prevDialogs.dialogs) {
527
+ // eslint-disable-next-line no-await-in-loop
528
+ await this.deleteDialog(item);
529
+ }
530
+ //
531
+ // eslint-disable-next-line no-restricted-syntax
532
+ for (const item of qbDialogs.items) {
533
+ const qbEntity: QBChatDialog = item;
534
+ // eslint-disable-next-line no-await-in-loop
535
+ const newDTO: RemoteDialogDTO = await this.dialogDTOMapper.toTDO(
536
+ qbEntity,
537
+ );
538
+
539
+ // eslint-disable-next-line no-await-in-loop
540
+ await this.createDialog(newDTO);
541
+ }
542
+ console.log('DATA COMPLETED');
543
+ }
544
+ }
545
+
546
+ async getDialogs(pagination?: Pagination): Promise<RemoteDialogsDTO> {
547
+ let currentPagination: Pagination = pagination || new Pagination();
548
+
549
+ console.log(
550
+ 'call getDialogs in RemoteDataSourceMock param pagination: ',
551
+ JSON.stringify(pagination),
552
+ );
553
+ console.log(
554
+ 'call getDialogs in RemoteDataSourceMock with result pagination: ',
555
+ JSON.stringify(currentPagination),
556
+ );
557
+ const pageNumber = currentPagination.getCurrentPage() || 1;
558
+
559
+ console.log('pageNumber: ', pageNumber);
560
+ const perPage = currentPagination.perPage || 100;
561
+
562
+ console.log('perPage: ', perPage);
563
+ const params = {
564
+ created_at: {
565
+ lt: Date.now() / 1000,
566
+ },
567
+ sort_desc: 'created_at',
568
+ page: pageNumber,
569
+ // per_page: perPage,
570
+ limit: perPage,
571
+ type: {
572
+ in: [2, 3],
573
+ },
574
+ };
575
+ // filter['type[in]'] = [3, 2].join(',');
576
+
577
+ console.log(
578
+ 'call getDialogs in RemoteDataSourceMock with params: ',
579
+ JSON.stringify(params),
580
+ );
581
+ const dialogsDTO: Array<RemoteDialogDTO> = [];
582
+ const qbDialogs: QBGetDialogResult | undefined = await QBGetDialogs(params);
583
+
584
+ if (qbDialogs) {
585
+ console.log(
586
+ `request completed. have: total_entries ${
587
+ qbDialogs.total_entries
588
+ }, limit: ${qbDialogs.limit}, skip: ${
589
+ qbDialogs.skip
590
+ } items: ${JSON.stringify(qbDialogs.items)}`,
591
+ );
592
+ currentPagination = new Pagination(0, perPage);
593
+ currentPagination.totalPages = qbDialogs.total_entries / perPage;
594
+ currentPagination.setCurrentPage(pageNumber);
595
+
596
+ // eslint-disable-next-line no-restricted-syntax
597
+ for (const item of qbDialogs.items) {
598
+ const qbEntity: QBChatDialog = item;
599
+ // eslint-disable-next-line no-await-in-loop
600
+ const newDTO: RemoteDialogDTO = await this.dialogDTOMapper.toTDO(
601
+ qbEntity,
602
+ );
603
+
604
+ dialogsDTO.push(newDTO);
605
+ }
606
+ }
607
+ /*
608
+ await Promise.all(
609
+ fromRemote.ResultData.map(async (entity) => {
610
+ // eslint-disable-next-line no-return-await
611
+ return await this.dialogRepository.saveDialogToLocal(entity);
612
+ }),
613
+ );
614
+ */
615
+
616
+ return Promise.resolve(new RemoteDialogsDTO(dialogsDTO, currentPagination));
617
+ }
618
+
619
+ // eslint-disable-next-line class-methods-use-this
620
+ async createDialog(dto: RemoteDialogDTO): Promise<RemoteDialogDTO> {
621
+ console.log(
622
+ 'call createDialog in remote with params: ',
623
+ JSON.stringify(dto),
624
+ );
625
+ const qbEntity: QBChatDialog = await this.dialogDTOMapper.fromDTO(dto);
626
+
627
+ let qbDialog: QBChatDialog | undefined | null;
628
+
629
+ if (qbEntity.type === DialogType.private) {
630
+ const participantId = qbEntity.occupants_ids[0];
631
+
632
+ qbDialog = await QBCreatePrivateDialog(participantId, qbEntity.name);
633
+ } else if (qbEntity.type === DialogType.group) {
634
+ const participants = qbEntity.occupants_ids;
635
+
636
+ const data = { photo: qbEntity.photo };
637
+
638
+ qbDialog = await QBCreateGroupDialog(participants, qbEntity.name, data);
639
+ }
640
+
641
+ if (qbDialog === null || qbDialog === undefined) {
642
+ return Promise.reject(
643
+ new RemoteDataSourceException(
644
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_MESSAGE,
645
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_CODE,
646
+ ),
647
+ );
648
+ }
649
+
650
+ const newDTO: RemoteDialogDTO = await this.dialogDTOMapper.toTDO(qbDialog);
651
+
652
+ console.log(
653
+ 'have result in createDialog in remote ds: ',
654
+ JSON.stringify(newDTO),
655
+ );
656
+
657
+ return Promise.resolve(newDTO);
658
+ }
659
+
660
+ async updateDialog(dto: RemoteDialogDTO): Promise<RemoteDialogDTO> {
661
+ const qbEntity: QBChatDialog = await this.dialogDTOMapper.fromDTO(dto);
662
+
663
+ let data = {};
664
+
665
+ if (qbEntity.name && qbEntity.name.length > 0) {
666
+ data = {
667
+ name: qbEntity.name,
668
+ // photo: qbEntity.photo,
669
+ // photo: 'null',
670
+ ...data,
671
+ };
672
+ }
673
+ if (qbEntity.photo) {
674
+ data = {
675
+ ...data,
676
+ photo: qbEntity.photo,
677
+ };
678
+ }
679
+ if (qbEntity.new_occupants_ids?.length > 0) {
680
+ data = {
681
+ ...data,
682
+ push_all: { occupants_ids: qbEntity.new_occupants_ids },
683
+ };
684
+ }
685
+
686
+ const qbDialogs: QBChatDialog = await QBUpdateDialog(qbEntity._id, data);
687
+
688
+ if (qbDialogs === null || qbDialogs === undefined) {
689
+ return Promise.reject(
690
+ new RemoteDataSourceException(
691
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_MESSAGE,
692
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_CODE,
693
+ ),
694
+ );
695
+ }
696
+
697
+ const newDTO: RemoteDialogDTO = await this.dialogDTOMapper.toTDO(qbDialogs);
698
+
699
+ return Promise.resolve(newDTO);
700
+ }
701
+
702
+ // eslint-disable-next-line class-methods-use-this
703
+ async getDialog(dto: RemoteDialogDTO): Promise<RemoteDialogDTO> {
704
+ const qbEntity: QBChatDialog = await this.dialogDTOMapper.fromDTO(dto);
705
+
706
+ const qbDialog: QBGetDialogResult | undefined = await QBGetDialogById(
707
+ qbEntity._id,
708
+ );
709
+
710
+ if (qbDialog === null || qbDialog === undefined) {
711
+ return Promise.reject(
712
+ new RemoteDataSourceException(
713
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_MESSAGE,
714
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_CODE,
715
+ ),
716
+ );
717
+ }
718
+ const qbEntityFromDB: QBChatDialog = qbDialog.items[0];
719
+
720
+ const resultDTO: RemoteDialogDTO = await this.dialogDTOMapper.toTDO(
721
+ qbEntityFromDB,
722
+ );
723
+
724
+ return Promise.resolve(resultDTO);
725
+ }
726
+
727
+ // eslint-disable-next-line class-methods-use-this
728
+ async deleteDialog(dto: RemoteDialogDTO): Promise<void> {
729
+ const qbEntity: QBChatDialog = await this.dialogDTOMapper.fromDTO(dto);
730
+
731
+ await QBDeleteDialog([qbEntity._id]).catch(() => {
732
+ throw new RemoteDataSourceException(
733
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_MESSAGE,
734
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_CODE,
735
+ );
736
+ });
737
+
738
+ return Promise.resolve();
739
+ }
740
+
741
+ async deleteUsersFromDialog(
742
+ dialogDTO: RemoteDialogDTO,
743
+ usersDTO: Array<RemoteUserDTO>,
744
+ ): Promise<void> {
745
+ const qbEntity: QBChatDialog = await this.dialogDTOMapper.fromDTO(
746
+ dialogDTO,
747
+ );
748
+ const usersIds: string[] = [];
749
+
750
+ usersDTO.forEach((item) => {
751
+ usersIds.push(item.id);
752
+ });
753
+
754
+ let data = {};
755
+
756
+ if (usersIds.length > 0) {
757
+ data = {
758
+ pull_all: { occupants_ids: usersIds },
759
+ };
760
+ }
761
+ const qbDialogs: QBChatDialog = await QBUpdateDialog(qbEntity._id, data);
762
+
763
+ if (qbDialogs === null || qbDialogs === undefined) {
764
+ return Promise.reject(
765
+ new RemoteDataSourceException(
766
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_MESSAGE,
767
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_CODE,
768
+ ),
769
+ );
770
+ }
771
+
772
+ return Promise.resolve();
773
+ }
774
+
775
+ // eslint-disable-next-line @typescript-eslint/require-await,class-methods-use-this,@typescript-eslint/no-unused-vars
776
+ async getUser(dto: RemoteUserDTO): Promise<RemoteUserDTO> {
777
+ const currentItem: QBUser | undefined = await QBUsersGetById(
778
+ parseInt(dto.id, 10),
779
+ );
780
+
781
+ if (currentItem === null || currentItem === undefined) {
782
+ return Promise.reject(
783
+ new RemoteDataSourceException(
784
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_MESSAGE,
785
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_CODE,
786
+ ),
787
+ );
788
+ }
789
+ let dtoUser: RemoteUserDTO | undefined;
790
+
791
+ try {
792
+ dtoUser = await this.userDTOMapper.toTDO<QBUser, RemoteUserDTO>(
793
+ currentItem,
794
+ );
795
+ } catch (e) {
796
+ console.log('problem with:');
797
+ console.log(JSON.stringify(currentItem));
798
+ console.log((e as MapperDTOException).message);
799
+ console.log((e as MapperDTOException)._description);
800
+ }
801
+
802
+ if (dtoUser !== null || dtoUser !== undefined) {
803
+ return Promise.resolve(dtoUser as RemoteUserDTO);
804
+ }
805
+
806
+ return Promise.reject(
807
+ new RemoteDataSourceException(
808
+ NOT_FOUND_REMOTE_DATASOURCE_EXCEPTION_MESSAGE,
809
+ NOT_FOUND_REMOTE_DATASOURCE_EXCEPTION_CODE,
810
+ `not found user with id: ${dto.id} (${dto.full_name})`,
811
+ ),
812
+ );
813
+ }
814
+
815
+ // eslint-disable-next-line @typescript-eslint/require-await,class-methods-use-this,@typescript-eslint/no-unused-vars
816
+ async getUsers(remoteUsersDTO: RemoteUsersDTO): Promise<RemoteUsersDTO> {
817
+ const usersDTO: Array<RemoteUserDTO> = new Array<RemoteUserDTO>();
818
+
819
+ // eslint-disable-next-line no-restricted-syntax
820
+ for (const item of remoteUsersDTO.users) {
821
+ // eslint-disable-next-line no-await-in-loop
822
+ const userDTO = await this.getUser(item);
823
+
824
+ usersDTO.push(userDTO);
825
+ }
826
+
827
+ return Promise.resolve(new RemoteUsersDTO(usersDTO, new Pagination()));
828
+ }
829
+
830
+ //
831
+ // eslint-disable-next-line class-methods-use-this
832
+ public async getAllUsers(
833
+ pagination: Pagination,
834
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
835
+ filter?: string,
836
+ ): Promise<PaginatedDTOResult> {
837
+ console.log('call getAllUsers');
838
+
839
+ console.log('pagination: ', JSON.stringify(pagination));
840
+
841
+ const users: RemoteUserDTO[] = [];
842
+ const pageTemplate = {
843
+ pageSize: pagination.perPage,
844
+ startPageNumber: pagination.getCurrentPage(),
845
+ };
846
+ const pageNumber = pageTemplate.startPageNumber;
847
+ const resultPagination = new Pagination(
848
+ pageNumber,
849
+ pageTemplate.startPageNumber,
850
+ );
851
+
852
+ let params: GetUserParams = {
853
+ per_page: pageTemplate.pageSize,
854
+ page: pageNumber,
855
+ };
856
+
857
+ if (filter && filter.length > 2) {
858
+ params = {
859
+ full_name: filter,
860
+ per_page: pageTemplate.pageSize,
861
+ page: pageNumber > 0 ? pageNumber : 1,
862
+ };
863
+ }
864
+
865
+ console.log('params: ', JSON.stringify(params));
866
+
867
+ // eslint-disable-next-line no-await-in-loop
868
+ const response: ListUserResponse | void = await QBUsersGet(params).catch(
869
+ (err) => {
870
+ console.log('catch call QBUsersGet : ', stringifyError(err));
871
+ },
872
+ );
873
+
874
+ if (response === undefined || response === null) {
875
+ throw new RemoteDataSourceException(
876
+ NOT_FOUND_REMOTE_DATASOURCE_EXCEPTION_MESSAGE,
877
+ NOT_FOUND_REMOTE_DATASOURCE_EXCEPTION_CODE,
878
+ `params: ${JSON.stringify(params)}`,
879
+ );
880
+ }
881
+ let currentItem: QBUser;
882
+
883
+ console.log('response: total_entries: ', response.total_entries);
884
+ console.log('response: per_page: ', response.per_page);
885
+ console.log('response: current_page: ', response.current_page);
886
+
887
+ resultPagination.totalPages =
888
+ response.total_entries / pageTemplate.pageSize;
889
+ resultPagination.setCurrentPage(response.current_page);
890
+ console.log(
891
+ `response result: count of items ${
892
+ response.items.length
893
+ } items: ${JSON.stringify(response.items)}`,
894
+ );
895
+ try {
896
+ // todo: переписать без циклов await
897
+ // eslint-disable-next-line no-restricted-syntax
898
+ for (const item of response.items) {
899
+ currentItem = item.user;
900
+ // eslint-disable-next-line no-await-in-loop
901
+ const dtoUser: RemoteUserDTO = await this.userDTOMapper.toTDO<
902
+ QBUser,
903
+ RemoteUserDTO
904
+ >(currentItem);
905
+
906
+ users.push(dtoUser);
907
+ }
908
+ } catch (e) {
909
+ console.log('problem with:');
910
+ console.log(JSON.stringify(currentItem!));
911
+ console.log((e as MapperDTOException).message);
912
+ console.log((e as MapperDTOException)._description);
913
+ }
914
+
915
+ return { ResultData: users, PaginationResult: resultPagination };
916
+ }
917
+ //
918
+ //
919
+
920
+ // eslint-disable-next-line @typescript-eslint/require-await,class-methods-use-this,@typescript-eslint/no-unused-vars,@typescript-eslint/ban-ts-comment
921
+ // @ts-ignore
922
+ // eslint-disable-next-line @typescript-eslint/require-await,class-methods-use-this
923
+ async getMessages(
924
+ dialogId: string,
925
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
926
+ pagination: Pagination,
927
+ ): Promise<RemoteMessagesDTO> {
928
+ const messagesDTO: Array<RemoteMessageDTO> = new Array<RemoteMessageDTO>();
929
+
930
+ //
931
+ await QBJoinDialog(dialogId).catch(() => {
932
+ throw new RemoteDataSourceException(
933
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_MESSAGE,
934
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_CODE,
935
+ );
936
+ });
937
+ //
938
+
939
+ const qbMessages: GetMessagesResult & { dialogId: QBChatDialog['_id'] } =
940
+ await QBChatGetMessages(dialogId);
941
+
942
+ if (qbMessages === null || qbMessages === undefined) {
943
+ return Promise.reject(
944
+ new RemoteDataSourceException(
945
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_MESSAGE,
946
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_CODE,
947
+ ),
948
+ );
949
+ }
950
+ console.log(
951
+ `GET MESSAGES ${qbMessages.items.length} FROM SERVER: ${JSON.stringify(
952
+ qbMessages,
953
+ )} `,
954
+ );
955
+ const currentUserId = this._authInformation?.userId;
956
+
957
+ await Promise.all(
958
+ qbMessages.items.map(async (currentItem) => {
959
+ const dtoMessage: RemoteMessageDTO = await this.messageDTOMapper.toTDO<
960
+ QBChatMessage,
961
+ RemoteMessageDTO
962
+ >(currentItem);
963
+
964
+ if (
965
+ this._authProcessed &&
966
+ currentUserId &&
967
+ dtoMessage.read_ids &&
968
+ dtoMessage.read_ids.length > 0 &&
969
+ dtoMessage.read_ids.includes(currentUserId) === false
970
+ ) {
971
+ QBChatMarkMessageRead({
972
+ messageId: dtoMessage.id,
973
+ dialogId: dtoMessage.dialogId,
974
+ userId: currentUserId,
975
+ });
976
+ }
977
+
978
+ messagesDTO.push(dtoMessage);
979
+
980
+ return dtoMessage;
981
+ }),
982
+ );
983
+
984
+ return Promise.resolve(
985
+ new RemoteMessagesDTO(messagesDTO, new Pagination()),
986
+ );
987
+ }
988
+
989
+ // eslint-disable-next-line class-methods-use-this
990
+ async typingMessageStart(
991
+ dialogDTO: RemoteDialogDTO,
992
+ senderId: number,
993
+ ): Promise<void> {
994
+ const qbEntity: QBChatDialog = await this.dialogDTOMapper.fromDTO(
995
+ dialogDTO,
996
+ );
997
+
998
+ await QBJoinDialog(dialogDTO.id).catch(() => {
999
+ throw new RemoteDataSourceException(
1000
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_MESSAGE,
1001
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_CODE,
1002
+ );
1003
+ });
1004
+
1005
+ QBSendIsTypingStatus(qbEntity, senderId);
1006
+
1007
+ return Promise.resolve();
1008
+ }
1009
+
1010
+ // eslint-disable-next-line class-methods-use-this
1011
+ async typingMessageStop(
1012
+ dialogDTO: RemoteDialogDTO,
1013
+ senderId: number,
1014
+ ): Promise<void> {
1015
+ const qbEntity: QBChatDialog = await this.dialogDTOMapper.fromDTO(
1016
+ dialogDTO,
1017
+ );
1018
+
1019
+ QBSendIsStopTypingStatus(qbEntity, senderId);
1020
+
1021
+ return Promise.resolve();
1022
+ }
1023
+
1024
+ // eslint-disable-next-line @typescript-eslint/require-await,class-methods-use-this,@typescript-eslint/no-unused-vars
1025
+ async sendMessage(dto: RemoteMessageDTO): Promise<RemoteMessageDTO> {
1026
+ console.log('call sendMessage');
1027
+ // const qbEntity: QBChatNewMessage = await this.messageDTOMapper.fromDTO<
1028
+ // RemoteMessageDTO,
1029
+ // QBChatNewMessage
1030
+ // >(dto);
1031
+
1032
+ /*
1033
+
1034
+ msg.type = 'groupchat';
1035
+ msg.body = `${this.userService.user.full_name} left the chat.`;
1036
+ msg.extension.notification_type = 3;
1037
+ msg.extension.save_to_history = 1;
1038
+ msg.dialog_id = dialog._id;
1039
+ msg.extension.dialog_id = dialog._id;
1040
+ msg.extension.dialog_updated_at = Date.now() / 1000;
1041
+
1042
+ */
1043
+ // notification_type: 3,
1044
+ // dialog_updated_at: Date.now() / 1000,
1045
+ let messageText = '';
1046
+
1047
+ switch (dto.notification_type) {
1048
+ case NotificationTypes.DELETE_LEAVE_DIALOG: {
1049
+ messageText = `${
1050
+ this.authInformation?.userName || 'owner'
1051
+ } has left the chat.`;
1052
+ break;
1053
+ }
1054
+ case NotificationTypes.NEW_DIALOG: {
1055
+ messageText = `${
1056
+ this.authInformation?.userName || 'owner'
1057
+ } create the chat`;
1058
+ break;
1059
+ }
1060
+ case NotificationTypes.UPDATE_DIALOG: {
1061
+ messageText = `${
1062
+ this.authInformation?.userName || 'owner'
1063
+ } update the chat`;
1064
+ break;
1065
+ }
1066
+ default: {
1067
+ messageText = dto.message;
1068
+ break;
1069
+ }
1070
+ }
1071
+ const qbEntity: QBChatNewMessage = {
1072
+ type: dto.dialog_type === DialogType.private ? 'chat' : 'groupchat',
1073
+ body: messageText,
1074
+ notification_type: dto.notification_type,
1075
+ dialog_id: dto.dialogId,
1076
+ extension: {
1077
+ save_to_history: 1,
1078
+ dialog_id: dto.dialogId,
1079
+ notification_type: dto.notification_type,
1080
+ sender_id: dto.sender_id || dto.recipient_id,
1081
+ },
1082
+ markable: 1,
1083
+ };
1084
+
1085
+ if (dto.attachments?.length > 0) {
1086
+ qbEntity.extension.attachments = [];
1087
+ dto.attachments.forEach((att) => {
1088
+ const chatMessageAttachment: ChatMessageAttachment = {
1089
+ id: att.id,
1090
+ name: att.name,
1091
+ size: att.size,
1092
+ type: att.type.toString(),
1093
+ uid: att.uid,
1094
+ };
1095
+
1096
+ qbEntity.extension.attachments?.push(chatMessageAttachment);
1097
+ });
1098
+ }
1099
+
1100
+ await QBJoinDialog(dto.dialogId).catch(() => {
1101
+ throw new RemoteDataSourceException(
1102
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_MESSAGE,
1103
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_CODE,
1104
+ );
1105
+ });
1106
+ const dialogJid = QB.chat.helpers.getRoomJidFromDialogId(dto.dialogId);
1107
+ const qbMessages: QBChatMessage['_id'] = await QBChatSendMessage(
1108
+ dialogJid,
1109
+ qbEntity,
1110
+ );
1111
+
1112
+ if (qbMessages === null || qbMessages === undefined) {
1113
+ return Promise.reject(
1114
+ new RemoteDataSourceException(
1115
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_MESSAGE,
1116
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_CODE,
1117
+ ),
1118
+ );
1119
+ }
1120
+ console.log('regular message was sent');
1121
+
1122
+ return Promise.resolve(dto);
1123
+ }
1124
+
1125
+ // eslint-disable-next-line class-methods-use-this
1126
+ async sendSystemMessage(dto: RemoteMessageDTO): Promise<boolean> {
1127
+ let qbMessages: QBSystemMessage | QBChatMessage['_id'] | undefined;
1128
+
1129
+ if (dto.notification_type && dto.notification_type.length > 0) {
1130
+ const systemMessage: QBSystemMessage = {
1131
+ body: null,
1132
+ id: '',
1133
+ userId: this.authInformation?.userId || 0,
1134
+ extension: {
1135
+ notification_type: dto.notification_type,
1136
+ dialog_id: dto.dialogId,
1137
+ },
1138
+ };
1139
+
1140
+ qbMessages = await QBChatSendSystemMessage(
1141
+ dto.recipient_id,
1142
+ systemMessage,
1143
+ );
1144
+ }
1145
+
1146
+ if (qbMessages === null || qbMessages === undefined) {
1147
+ return Promise.reject(
1148
+ new RemoteDataSourceException(
1149
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_MESSAGE,
1150
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_CODE,
1151
+ ),
1152
+ );
1153
+ }
1154
+ console.log('system message was sent');
1155
+
1156
+ return Promise.resolve(true);
1157
+ }
1158
+
1159
+ // eslint-disable-next-line @typescript-eslint/require-await,class-methods-use-this,@typescript-eslint/no-unused-vars
1160
+ async updateMessage(
1161
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1162
+ dto: RemoteMessageDTO,
1163
+ ): Promise<RemoteMessageDTO> {
1164
+ const qbEntity: QBChatMessage = await this.messageDTOMapper.fromDTO(dto);
1165
+
1166
+ const storageValue = localStorage.getItem('qbMessages');
1167
+ const result: string = storageValue ?? '';
1168
+
1169
+ const qbMessages: Record<string, QBChatMessage> =
1170
+ result === '' ? {} : JSON.parse(result);
1171
+
1172
+ if (qbMessages === null || qbMessages === undefined) {
1173
+ return Promise.reject(
1174
+ new RemoteDataSourceException(
1175
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_MESSAGE,
1176
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_CODE,
1177
+ ),
1178
+ );
1179
+ }
1180
+ qbMessages[qbEntity._id] = qbEntity;
1181
+
1182
+ // TODO: How get updated QBChatDialog and return to DTO
1183
+ localStorage.setItem('qbMessages', JSON.stringify(qbMessages));
1184
+
1185
+ const newDTO: RemoteMessageDTO = await this.messageDTOMapper.toTDO(
1186
+ qbEntity,
1187
+ );
1188
+
1189
+ return Promise.resolve(newDTO);
1190
+ }
1191
+
1192
+ // eslint-disable-next-line @typescript-eslint/require-await,class-methods-use-this,@typescript-eslint/no-unused-vars
1193
+ async deleteMessage(dto: RemoteMessageDTO): Promise<void> {
1194
+ const qbEntity: QBChatMessage = await this.messageDTOMapper.fromDTO(dto);
1195
+
1196
+ const storageValue = localStorage.getItem('qbMessages');
1197
+ const result: string = storageValue ?? '';
1198
+
1199
+ const qbMessages: Record<string, QBChatMessage> =
1200
+ result === '' ? {} : JSON.parse(result);
1201
+
1202
+ if (qbMessages === null || qbMessages === undefined) {
1203
+ return Promise.reject(
1204
+ new RemoteDataSourceException(
1205
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_MESSAGE,
1206
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_CODE,
1207
+ ),
1208
+ );
1209
+ }
1210
+ // TODO: try catch for delete
1211
+ const filteredqbMessages: Record<string, QBChatMessage> = {};
1212
+
1213
+ Object.keys(qbMessages).forEach((key) => {
1214
+ if (key !== qbEntity._id) {
1215
+ filteredqbMessages[key] = qbMessages[key];
1216
+ }
1217
+ });
1218
+
1219
+ localStorage.setItem('qbMessages', JSON.stringify(filteredqbMessages));
1220
+
1221
+ return Promise.resolve();
1222
+ }
1223
+
1224
+ // eslint-disable-next-line @typescript-eslint/require-await,class-methods-use-this,@typescript-eslint/no-unused-vars
1225
+ async createFile(dto: RemoteFileDTO): Promise<RemoteFileDTO> {
1226
+ console.log('call createFile in remote with params: ', JSON.stringify(dto));
1227
+ const qbParam: QBContentParam = await this.fileDTOMapper.fromDTO(dto);
1228
+
1229
+ const result = await QBCreateAndUploadContent(qbParam).catch((err) => {
1230
+ console.log('Error: ', stringifyError(err));
1231
+ throw new RemoteDataSourceException(
1232
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_MESSAGE,
1233
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_CODE,
1234
+ `exception: ${stringifyError(err)}`,
1235
+ );
1236
+ });
1237
+
1238
+ if (result === null || result === undefined) {
1239
+ return Promise.reject(
1240
+ new RemoteDataSourceException(
1241
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_MESSAGE,
1242
+ INCORRECT_REMOTE_DATASOURCE_DATA_EXCEPTION_CODE,
1243
+ ),
1244
+ );
1245
+ }
1246
+
1247
+ const qbContentObject: QBContentObject = result as QBContentObject;
1248
+ const newDto: RemoteFileDTO = await this.fileDTOMapper.toTDO<
1249
+ QBContentObject,
1250
+ RemoteFileDTO
1251
+ >(qbContentObject);
1252
+
1253
+ console.log(
1254
+ 'have result in createFile in remote ds: ',
1255
+ JSON.stringify(newDto),
1256
+ );
1257
+
1258
+ return Promise.resolve(newDto);
1259
+ }
1260
+
1261
+ // eslint-disable-next-line @typescript-eslint/require-await,class-methods-use-this,@typescript-eslint/no-unused-vars
1262
+ async getFile(dto: RemoteFileDTO): Promise<RemoteFileDTO> {
1263
+ throw new Error('Method not implemented.');
1264
+ }
1265
+
1266
+ // eslint-disable-next-line @typescript-eslint/require-await,class-methods-use-this,@typescript-eslint/no-unused-vars
1267
+ async deleteFile(dto: RemoteFileDTO): Promise<void> {
1268
+ throw new Error('Method not implemented.');
1269
+ }
1270
+
1271
+ // eslint-disable-next-line @typescript-eslint/require-await,class-methods-use-this,@typescript-eslint/no-unused-vars
1272
+ async subscribeToChatConnectionEvents(
1273
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1274
+ fileId: string,
1275
+ ): Promise<void> {
1276
+ throw new Error('Method not implemented.');
1277
+ }
1278
+ }