quickblox-react-ui-kit 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) hide show
  1. package/README.md +288 -255
  2. package/dist/Presentation/Views/Dialogs/Dialogs.d.ts +3 -0
  3. package/dist/Presentation/Views/Dialogs/useDialogsViewModel.d.ts +3 -1
  4. package/dist/Presentation/{components/UI → assets}/ DefaultThemes/DefaultTheme.d.ts +2 -2
  5. package/dist/Presentation/assets/DarkTheme.d.ts +2 -2
  6. package/dist/Presentation/assets/LightTheme.d.ts +2 -2
  7. package/dist/Presentation/assets/{Theme.d.ts → UiKitTheme.d.ts} +1 -1
  8. package/dist/Presentation/components/UI/Dialogs/HeaderDialogs/HeaderDialogs.d.ts +2 -2
  9. package/dist/Presentation/components/UI/Dialogs/InviteMembers/InviteMembers.d.ts +2 -0
  10. package/dist/Presentation/components/UI/Dialogs/MessagesView/HeaderMessages/HeaderMessages.d.ts +2 -0
  11. package/dist/Presentation/components/UI/Dialogs/MessagesView/MessagesView.d.ts +2 -0
  12. package/dist/Presentation/components/UI/Dialogs/MessagesView/{useMessagesViewModelWithMockUseCase.d.ts → useMessagesViewModel.d.ts} +1 -1
  13. package/dist/Presentation/components/UI/Dialogs/PreviewDialog/PreviewDialog.d.ts +2 -2
  14. package/dist/Presentation/components/layouts/Desktop/{DesktopLayoutForMockModels.d.ts → DesktopLayout.d.ts} +2 -2
  15. package/dist/Presentation/components/layouts/Desktop/QuickBloxUIKitDesktopLayout.d.ts +7 -0
  16. package/dist/index-ui.d.ts +6 -5
  17. package/dist/index-ui.js +49 -93
  18. package/package.json +9 -2
  19. package/.prettierignore +0 -4
  20. package/.prettierrc +0 -8
  21. package/dist/MyButton/MyButton.d.ts +0 -9
  22. package/dist/MyInput/MyInput.d.ts +0 -10
  23. package/dist/Presentation/Views/Dialogs/useDialogsViewModelWithMockUseCase.d.ts +0 -4
  24. package/dist/Presentation/components/layouts/Desktop/Desktop.d.ts +0 -4
  25. package/dist/Presentation/components/layouts/TestStage/TestStageWithMockData/TestStageWithMockData.d.ts +0 -3
  26. package/public/favicon.ico +0 -0
  27. package/public/index.html +0 -47
  28. package/public/logo192.png +0 -0
  29. package/public/logo512.png +0 -0
  30. package/public/manifest.json +0 -25
  31. package/public/quickblox.js +0 -54609
  32. package/public/robots.txt +0 -3
  33. package/src/App.scss +0 -0
  34. package/src/App.tsx +0 -230
  35. package/src/CommonTypes/FunctionResult.ts +0 -4
  36. package/src/Data/Stubs.ts +0 -1131
  37. package/src/Data/dto/dialog/LocalDialogDTO.ts +0 -42
  38. package/src/Data/dto/dialog/LocalDialogsDTO.ts +0 -21
  39. package/src/Data/dto/dialog/RemoteDialogDTO.ts +0 -58
  40. package/src/Data/dto/dialog/RemoteDialogsDTO.ts +0 -21
  41. package/src/Data/dto/file/LocalFileDTO.ts +0 -26
  42. package/src/Data/dto/file/RemoteFileDTO.ts +0 -26
  43. package/src/Data/dto/message/LocalMessageDTO.ts +0 -51
  44. package/src/Data/dto/message/LocalMessagesDTO.ts +0 -21
  45. package/src/Data/dto/message/RemoteMessageDTO.ts +0 -51
  46. package/src/Data/dto/message/RemoteMessagesDTO.ts +0 -21
  47. package/src/Data/dto/user/LocalUserDTO.ts +0 -37
  48. package/src/Data/dto/user/LocalUsersDTO.ts +0 -23
  49. package/src/Data/dto/user/RemoteUserDTO.ts +0 -37
  50. package/src/Data/dto/user/RemoteUsersDTO.ts +0 -21
  51. package/src/Data/mapper/DialogLocalDTOMapper.ts +0 -742
  52. package/src/Data/mapper/DialogRemoteDTOMapper.ts +0 -776
  53. package/src/Data/mapper/FileLocalDTOMapper.ts +0 -253
  54. package/src/Data/mapper/FileRemoteDTOMapper.ts +0 -265
  55. package/src/Data/mapper/IMapper.ts +0 -14
  56. package/src/Data/mapper/MessageLocalDTOMapper.ts +0 -425
  57. package/src/Data/mapper/MessageRemoteDTOMapper.ts +0 -430
  58. package/src/Data/mapper/UserLocalDTOMapper.ts +0 -381
  59. package/src/Data/mapper/UserRemoteDTOMapper.ts +0 -393
  60. package/src/Data/repository/ConnectionRepository.ts +0 -128
  61. package/src/Data/repository/DialogsRepository.ts +0 -422
  62. package/src/Data/repository/EventMessagesRepository.ts +0 -291
  63. package/src/Data/repository/FileRepository.ts +0 -110
  64. package/src/Data/repository/MessagesRepository.ts +0 -288
  65. package/src/Data/repository/UsersRepository.ts +0 -324
  66. package/src/Data/source/exception/LocalDataSourceException.ts +0 -17
  67. package/src/Data/source/exception/MapperDTOException.ts +0 -19
  68. package/src/Data/source/exception/RemoteDataSourceException.ts +0 -28
  69. package/src/Data/source/exception/RepositoryException.ts +0 -27
  70. package/src/Data/source/local/ChatLocalStorageDataSource.ts +0 -262
  71. package/src/Data/source/local/ILocalDataSource.ts +0 -45
  72. package/src/Data/source/local/ILocalFileDataSource.ts +0 -11
  73. package/src/Data/source/local/LocalDataSource.ts +0 -377
  74. package/src/Data/source/local/LocalFileDataSource.ts +0 -22
  75. package/src/Data/source/remote/IRemoteDataSource.ts +0 -112
  76. package/src/Data/source/remote/Mapper/DialogDTOMapper.ts +0 -401
  77. package/src/Data/source/remote/Mapper/FileDTOMapper.ts +0 -276
  78. package/src/Data/source/remote/Mapper/IDTOMapper.ts +0 -4
  79. package/src/Data/source/remote/Mapper/MessageDTOMapper.ts +0 -399
  80. package/src/Data/source/remote/Mapper/UserDTOMapper.ts +0 -344
  81. package/src/Data/source/remote/RemoteDataSource.ts +0 -1278
  82. package/src/Domain/entity/Chat.ts +0 -4
  83. package/src/Domain/entity/ChatMessageAttachmentEntity.ts +0 -15
  84. package/src/Domain/entity/CustomDataEntity.ts +0 -3
  85. package/src/Domain/entity/DialogEntity.ts +0 -15
  86. package/src/Domain/entity/DialogEventInfo.ts +0 -15
  87. package/src/Domain/entity/DialogTypes.ts +0 -7
  88. package/src/Domain/entity/EventMessageType.ts +0 -7
  89. package/src/Domain/entity/FileEntity.ts +0 -11
  90. package/src/Domain/entity/FileTypes.ts +0 -9
  91. package/src/Domain/entity/GroupDialogEntity.ts +0 -54
  92. package/src/Domain/entity/LastMessageEntity.ts +0 -5
  93. package/src/Domain/entity/MessageEntity.ts +0 -25
  94. package/src/Domain/entity/NotificationTypes.ts +0 -7
  95. package/src/Domain/entity/PrivateDialogEntity.ts +0 -46
  96. package/src/Domain/entity/PublicDialogEntity.ts +0 -72
  97. package/src/Domain/entity/UserEntity.ts +0 -22
  98. package/src/Domain/exception/domain/DomainExecption.ts +0 -5
  99. package/src/Domain/repository/IDialogsRepository.ts +0 -40
  100. package/src/Domain/repository/IFileRepository.ts +0 -9
  101. package/src/Domain/repository/IMessagesRepository.ts +0 -28
  102. package/src/Domain/repository/IUsersRepository.ts +0 -13
  103. package/src/Domain/repository/Pagination.ts +0 -48
  104. package/src/Domain/use_cases/CreateDialogUseCase.ts +0 -73
  105. package/src/Domain/use_cases/GetAllDialogsUseCase.ts +0 -20
  106. package/src/Domain/use_cases/GetAllDialogsUseCaseWithMock.ts +0 -45
  107. package/src/Domain/use_cases/GetAllMessagesForDialog.ts +0 -61
  108. package/src/Domain/use_cases/GetAllUsersUseCase.ts +0 -34
  109. package/src/Domain/use_cases/GetDialogByIdUseCase.ts +0 -28
  110. package/src/Domain/use_cases/GetUsersByIdsUseCase.ts +0 -22
  111. package/src/Domain/use_cases/LeaveDialogUseCase.ts +0 -109
  112. package/src/Domain/use_cases/RemoveUsersFromTheDialogUseCase.ts +0 -103
  113. package/src/Domain/use_cases/SendTextMessageUseCase.ts +0 -26
  114. package/src/Domain/use_cases/SubscribeToDialogEventsUseCase.ts +0 -141
  115. package/src/Domain/use_cases/SubscribeToDialogsUpdatesUseCase.ts +0 -69
  116. package/src/Domain/use_cases/SubscribeToDialogsUpdatesUseCaseWithMock.ts +0 -61
  117. package/src/Domain/use_cases/SyncDialogsUseCase.ts +0 -246
  118. package/src/Domain/use_cases/UpdateDialogUseCase.ts +0 -65
  119. package/src/Domain/use_cases/UploadFileUseCase.ts +0 -24
  120. package/src/Domain/use_cases/UserTypingMessageUseCase.ts +0 -51
  121. package/src/Domain/use_cases/base/BaseUseCase.ts +0 -77
  122. package/src/Domain/use_cases/base/IUseCase.ts +0 -5
  123. package/src/Domain/use_cases/base/Subscribable/ISubscribable.ts +0 -6
  124. package/src/Domain/use_cases/base/Subscribable/SubscriptionPerformer.ts +0 -143
  125. package/src/MyButton/MyButton.scss +0 -11
  126. package/src/MyButton/MyButton.tsx +0 -25
  127. package/src/MyInput/MyInput.scss +0 -9
  128. package/src/MyInput/MyInput.tsx +0 -36
  129. package/src/Presentation/.gitkeep +0 -0
  130. package/src/Presentation/Views/Base/BaseViewModel.ts +0 -66
  131. package/src/Presentation/Views/CreateDialogFlow/CreateNewDialogFlow.tsx +0 -187
  132. package/src/Presentation/Views/Dialogs/DialogViewModel.ts +0 -23
  133. package/src/Presentation/Views/Dialogs/Dialogs.scss +0 -66
  134. package/src/Presentation/Views/Dialogs/Dialogs.tsx +0 -372
  135. package/src/Presentation/Views/Dialogs/useDialogsViewModel.ts +0 -136
  136. package/src/Presentation/Views/Dialogs/useDialogsViewModelWithMockUseCase.ts +0 -345
  137. package/src/Presentation/Views/Navigation/More.svg +0 -7
  138. package/src/Presentation/assets/DarkTheme.ts +0 -58
  139. package/src/Presentation/assets/LightTheme.ts +0 -58
  140. package/src/Presentation/assets/Theme.ts +0 -143
  141. package/src/Presentation/assets/ThemeScheme.ts +0 -83
  142. package/src/Presentation/assets/fonts/.gitkeep +0 -0
  143. package/src/Presentation/assets/fonts/Roboto-Bold.eot +0 -0
  144. package/src/Presentation/assets/fonts/Roboto-Bold.ttf +0 -0
  145. package/src/Presentation/assets/fonts/Roboto-Bold.woff +0 -0
  146. package/src/Presentation/assets/fonts/Roboto-Bold.woff2 +0 -0
  147. package/src/Presentation/assets/fonts/Roboto-Medium.eot +0 -0
  148. package/src/Presentation/assets/fonts/Roboto-Medium.ttf +0 -0
  149. package/src/Presentation/assets/fonts/Roboto-Medium.woff +0 -0
  150. package/src/Presentation/assets/fonts/Roboto-Medium.woff2 +0 -0
  151. package/src/Presentation/assets/fonts/Roboto-Regular.eot +0 -0
  152. package/src/Presentation/assets/fonts/Roboto-Regular.ttf +0 -0
  153. package/src/Presentation/assets/fonts/Roboto-Regular.woff +0 -0
  154. package/src/Presentation/assets/fonts/Roboto-Regular.woff2 +0 -0
  155. package/src/Presentation/assets/img/Artem_Koltunov_Selfi.png +0 -0
  156. package/src/Presentation/assets/img/bee-img.png +0 -0
  157. package/src/Presentation/assets/styles/_fonts.scss +0 -32
  158. package/src/Presentation/assets/styles/_reset-styles.scss +0 -435
  159. package/src/Presentation/assets/styles/_theme_colors_scheme.scss +0 -56
  160. package/src/Presentation/assets/styles/_theme_dark.scss +0 -33
  161. package/src/Presentation/assets/styles/_theme_light.scss +0 -33
  162. package/src/Presentation/assets/styles/_variables.scss +0 -2
  163. package/src/Presentation/components/Button.js +0 -5
  164. package/src/Presentation/components/Navbar.tsx +0 -45
  165. package/src/Presentation/components/TextInput.js +0 -10
  166. package/src/Presentation/components/UI/ DefaultThemes/CustomTheme.ts +0 -13
  167. package/src/Presentation/components/UI/ DefaultThemes/DefaultTheme.ts +0 -58
  168. package/src/Presentation/components/UI/Buttons/ActiveButton/ActiveButton.tsx +0 -40
  169. package/src/Presentation/components/UI/Buttons/MainBoundedButton/MainBoundedButton.scss +0 -0
  170. package/src/Presentation/components/UI/Buttons/MainBoundedButton/MainBoundedButton.tsx +0 -30
  171. package/src/Presentation/components/UI/Buttons/MainButton/MainButton.scss +0 -127
  172. package/src/Presentation/components/UI/Buttons/MainButton/MainButton.tsx +0 -62
  173. package/src/Presentation/components/UI/Dialogs/CreateDialog/CreateDialog.scss +0 -45
  174. package/src/Presentation/components/UI/Dialogs/CreateDialog/CreateDialog.tsx +0 -77
  175. package/src/Presentation/components/UI/Dialogs/DialogInformation/DialogInformation.scss +0 -429
  176. package/src/Presentation/components/UI/Dialogs/DialogInformation/DialogInformation.tsx +0 -646
  177. package/src/Presentation/components/UI/Dialogs/DialogInformation/DialogMemberButton/DialogMembersButton.scss +0 -42
  178. package/src/Presentation/components/UI/Dialogs/DialogInformation/DialogMemberButton/DialogMembersButton.tsx +0 -26
  179. package/src/Presentation/components/UI/Dialogs/DialogInformation/UsersList/SingleUser/SingleUser.scss +0 -95
  180. package/src/Presentation/components/UI/Dialogs/DialogInformation/UsersList/SingleUser/SingleUser.tsx +0 -42
  181. package/src/Presentation/components/UI/Dialogs/DialogInformation/UsersList/UsersList.scss +0 -60
  182. package/src/Presentation/components/UI/Dialogs/DialogInformation/UsersList/UsersList.tsx +0 -65
  183. package/src/Presentation/components/UI/Dialogs/DialogInformation/UsersList/UsersListViewModel.ts +0 -13
  184. package/src/Presentation/components/UI/Dialogs/DialogInformation/UsersList/useUsersListViewModel.ts +0 -81
  185. package/src/Presentation/components/UI/Dialogs/EditDialog/EditDialog.scss +0 -183
  186. package/src/Presentation/components/UI/Dialogs/EditDialog/EditDialog.tsx +0 -262
  187. package/src/Presentation/components/UI/Dialogs/EditDialog/UserAvatar/UserAvatar.scss +0 -32
  188. package/src/Presentation/components/UI/Dialogs/EditDialog/UserAvatar/UserAvatar.tsx +0 -59
  189. package/src/Presentation/components/UI/Dialogs/HeaderDialogs/HeaderDialogs.scss +0 -67
  190. package/src/Presentation/components/UI/Dialogs/HeaderDialogs/HeaderDialogs.tsx +0 -112
  191. package/src/Presentation/components/UI/Dialogs/InviteMembers/InviteMembers.scss +0 -146
  192. package/src/Presentation/components/UI/Dialogs/InviteMembers/InviteMembers.tsx +0 -374
  193. package/src/Presentation/components/UI/Dialogs/InviteMembers/InviteMembersViewModel.ts +0 -18
  194. package/src/Presentation/components/UI/Dialogs/InviteMembers/InviteUsersList/SingleUserWithCheckBox/SingleUserWithCheckBox.scss +0 -113
  195. package/src/Presentation/components/UI/Dialogs/InviteMembers/InviteUsersList/SingleUserWithCheckBox/SingleUserWithCheckBox.tsx +0 -87
  196. package/src/Presentation/components/UI/Dialogs/InviteMembers/InviteUsersResultViewModel.ts +0 -12
  197. package/src/Presentation/components/UI/Dialogs/InviteMembers/NotFoundContent/NotFoundContent.scss +0 -37
  198. package/src/Presentation/components/UI/Dialogs/InviteMembers/NotFoundContent/NotFoundContent.tsx +0 -22
  199. package/src/Presentation/components/UI/Dialogs/InviteMembers/useInviteMembersViewModel.ts +0 -116
  200. package/src/Presentation/components/UI/Dialogs/MembersList/MembersList.scss +0 -128
  201. package/src/Presentation/components/UI/Dialogs/MembersList/MembersList.tsx +0 -89
  202. package/src/Presentation/components/UI/Dialogs/MessagesView/AudioAttachmentComponent/AudioAttachmentComponent.scss +0 -7
  203. package/src/Presentation/components/UI/Dialogs/MessagesView/AudioAttachmentComponent/AudioAttachmentComponent.tsx +0 -27
  204. package/src/Presentation/components/UI/Dialogs/MessagesView/HeaderMessages/HeaderMessages.scss +0 -133
  205. package/src/Presentation/components/UI/Dialogs/MessagesView/HeaderMessages/HeaderMessages.tsx +0 -137
  206. package/src/Presentation/components/UI/Dialogs/MessagesView/ImageAttachmentComponent/ImageAttachmentComponent.scss +0 -11
  207. package/src/Presentation/components/UI/Dialogs/MessagesView/ImageAttachmentComponent/ImageAttachmentComponent.tsx +0 -25
  208. package/src/Presentation/components/UI/Dialogs/MessagesView/MessagesView.scss +0 -327
  209. package/src/Presentation/components/UI/Dialogs/MessagesView/MessagesView.tsx +0 -794
  210. package/src/Presentation/components/UI/Dialogs/MessagesView/MessagesViewModel.ts +0 -20
  211. package/src/Presentation/components/UI/Dialogs/MessagesView/VideoAttachmentComponent/VideoAttachmentComponent.scss +0 -7
  212. package/src/Presentation/components/UI/Dialogs/MessagesView/VideoAttachmentComponent/VideoAttachmentComponent.tsx +0 -33
  213. package/src/Presentation/components/UI/Dialogs/MessagesView/VoiceRecordingProgress/VoiceRecordingProgress.scss +0 -35
  214. package/src/Presentation/components/UI/Dialogs/MessagesView/VoiceRecordingProgress/VoiceRecordingProgress.tsx +0 -86
  215. package/src/Presentation/components/UI/Dialogs/MessagesView/useMessagesViewModelWithMockUseCase.ts +0 -452
  216. package/src/Presentation/components/UI/Dialogs/PreviewDialog/PreviewDialog.scss +0 -100
  217. package/src/Presentation/components/UI/Dialogs/PreviewDialog/PreviewDialog.tsx +0 -405
  218. package/src/Presentation/components/UI/Dialogs/PreviewDialog/PreviewDialogViewModel.ts +0 -42
  219. package/src/Presentation/components/UI/Dialogs/YesNoQuestion/YesNoQuestion.scss +0 -35
  220. package/src/Presentation/components/UI/Dialogs/YesNoQuestion/YesNoQuestion.tsx +0 -89
  221. package/src/Presentation/components/UI/Elements/SwitchButton/SwitchButton.scss +0 -61
  222. package/src/Presentation/components/UI/Elements/SwitchButton/SwitchButton.tsx +0 -48
  223. package/src/Presentation/components/UI/Placeholders/ErrorComponent/ErrorComponent.scss +0 -74
  224. package/src/Presentation/components/UI/Placeholders/ErrorComponent/ErrorComponent.tsx +0 -72
  225. package/src/Presentation/components/UI/Placeholders/LoaderComponent/LoaderComponent.scss +0 -21
  226. package/src/Presentation/components/UI/Placeholders/LoaderComponent/LoaderComponent.tsx +0 -41
  227. package/src/Presentation/components/UI/svgs/ActiveSvg/ActiveSvg.scss +0 -3
  228. package/src/Presentation/components/UI/svgs/ActiveSvg/ActiveSvg.tsx +0 -41
  229. package/src/Presentation/components/UI/svgs/Icons/Actions/Add/Add.svg +0 -3
  230. package/src/Presentation/components/UI/svgs/Icons/Actions/Add/index.tsx +0 -22
  231. package/src/Presentation/components/UI/svgs/Icons/Actions/AddContact/Add contact.svg +0 -3
  232. package/src/Presentation/components/UI/svgs/Icons/Actions/AddContact/index.tsx +0 -22
  233. package/src/Presentation/components/UI/svgs/Icons/Actions/Archive/Archive.svg +0 -3
  234. package/src/Presentation/components/UI/svgs/Icons/Actions/Archive/index.tsx +0 -22
  235. package/src/Presentation/components/UI/svgs/Icons/Actions/Copy/Copy.svg +0 -3
  236. package/src/Presentation/components/UI/svgs/Icons/Actions/Copy/index.tsx +0 -22
  237. package/src/Presentation/components/UI/svgs/Icons/Actions/Delete/Delete.svg +0 -3
  238. package/src/Presentation/components/UI/svgs/Icons/Actions/Delete/index.tsx +0 -22
  239. package/src/Presentation/components/UI/svgs/Icons/Actions/Download/Download.svg +0 -3
  240. package/src/Presentation/components/UI/svgs/Icons/Actions/Download/index.tsx +0 -22
  241. package/src/Presentation/components/UI/svgs/Icons/Actions/Edit/Edit.svg +0 -3
  242. package/src/Presentation/components/UI/svgs/Icons/Actions/Edit/index.tsx +0 -22
  243. package/src/Presentation/components/UI/svgs/Icons/Actions/EditDots/EditDots.svg +0 -3
  244. package/src/Presentation/components/UI/svgs/Icons/Actions/EditDots/index.tsx +0 -22
  245. package/src/Presentation/components/UI/svgs/Icons/Actions/Emoji/Emoji.svg +0 -3
  246. package/src/Presentation/components/UI/svgs/Icons/Actions/Emoji/index.tsx +0 -22
  247. package/src/Presentation/components/UI/svgs/Icons/Actions/ForwardFilled/Forward filled.svg +0 -3
  248. package/src/Presentation/components/UI/svgs/Icons/Actions/ForwardFilled/index.tsx +0 -22
  249. package/src/Presentation/components/UI/svgs/Icons/Actions/Hungup/Hungup.svg +0 -3
  250. package/src/Presentation/components/UI/svgs/Icons/Actions/Hungup/index.tsx +0 -22
  251. package/src/Presentation/components/UI/svgs/Icons/Actions/IncomeCall/Income call.svg +0 -3
  252. package/src/Presentation/components/UI/svgs/Icons/Actions/IncomeCall/index.tsx +0 -22
  253. package/src/Presentation/components/UI/svgs/Icons/Actions/Like/Like.svg +0 -3
  254. package/src/Presentation/components/UI/svgs/Icons/Actions/Like/index.tsx +0 -22
  255. package/src/Presentation/components/UI/svgs/Icons/Actions/NewChat/New chat.svg +0 -3
  256. package/src/Presentation/components/UI/svgs/Icons/Actions/NewChat/index.tsx +0 -22
  257. package/src/Presentation/components/UI/svgs/Icons/Actions/OutcomeCall/Outcome call.svg +0 -3
  258. package/src/Presentation/components/UI/svgs/Icons/Actions/OutcomeCall/index.tsx +0 -22
  259. package/src/Presentation/components/UI/svgs/Icons/Actions/Phone/Phone.svg +0 -3
  260. package/src/Presentation/components/UI/svgs/Icons/Actions/Phone/index.tsx +0 -35
  261. package/src/Presentation/components/UI/svgs/Icons/Actions/PhoneFilled/Phone filled.svg +0 -3
  262. package/src/Presentation/components/UI/svgs/Icons/Actions/PhoneFilled/index.tsx +0 -22
  263. package/src/Presentation/components/UI/svgs/Icons/Actions/Remove/Remove.svg +0 -3
  264. package/src/Presentation/components/UI/svgs/Icons/Actions/Remove/index.tsx +0 -22
  265. package/src/Presentation/components/UI/svgs/Icons/Actions/Remove2/Remove2.svg +0 -3
  266. package/src/Presentation/components/UI/svgs/Icons/Actions/Remove2/index.tsx +0 -22
  267. package/src/Presentation/components/UI/svgs/Icons/Actions/ReplyFilled/Reply filled.svg +0 -3
  268. package/src/Presentation/components/UI/svgs/Icons/Actions/ReplyFilled/index.tsx +0 -22
  269. package/src/Presentation/components/UI/svgs/Icons/Actions/Send/Send.svg +0 -3
  270. package/src/Presentation/components/UI/svgs/Icons/Actions/Send/index.tsx +0 -38
  271. package/src/Presentation/components/UI/svgs/Icons/Actions/Share/Share.svg +0 -3
  272. package/src/Presentation/components/UI/svgs/Icons/Actions/Share/index.tsx +0 -22
  273. package/src/Presentation/components/UI/svgs/Icons/Actions/SwapCamera/Swap camera.svg +0 -3
  274. package/src/Presentation/components/UI/svgs/Icons/Actions/SwapCamera/index.tsx +0 -22
  275. package/src/Presentation/components/UI/svgs/Icons/Actions/Unarchive/Unarchive.svg +0 -3
  276. package/src/Presentation/components/UI/svgs/Icons/Actions/Unarchive/index.tsx +0 -22
  277. package/src/Presentation/components/UI/svgs/Icons/Actions/VideoIcon/Video.svg +0 -3
  278. package/src/Presentation/components/UI/svgs/Icons/Actions/VideoIcon/index.tsx +0 -22
  279. package/src/Presentation/components/UI/svgs/Icons/Actions/Voice/Voice.svg +0 -3
  280. package/src/Presentation/components/UI/svgs/Icons/Actions/Voice/index.tsx +0 -35
  281. package/src/Presentation/components/UI/svgs/Icons/Contents/Brodcast/Broadcast.svg +0 -7
  282. package/src/Presentation/components/UI/svgs/Icons/Contents/Brodcast/index.tsx +0 -38
  283. package/src/Presentation/components/UI/svgs/Icons/Contents/Chat/Chat.svg +0 -3
  284. package/src/Presentation/components/UI/svgs/Icons/Contents/Chat/index.tsx +0 -35
  285. package/src/Presentation/components/UI/svgs/Icons/Contents/ChatFilled/Chat filled.svg +0 -3
  286. package/src/Presentation/components/UI/svgs/Icons/Contents/ChatFilled/index.tsx +0 -22
  287. package/src/Presentation/components/UI/svgs/Icons/Contents/Conference/Conference.svg +0 -3
  288. package/src/Presentation/components/UI/svgs/Icons/Contents/Conference/index.tsx +0 -22
  289. package/src/Presentation/components/UI/svgs/Icons/Contents/Contact/Contact.svg +0 -3
  290. package/src/Presentation/components/UI/svgs/Icons/Contents/Contact/index.tsx +0 -22
  291. package/src/Presentation/components/UI/svgs/Icons/Contents/ContactFilled/Contact filled.svg +0 -3
  292. package/src/Presentation/components/UI/svgs/Icons/Contents/ContactFilled/index.tsx +0 -22
  293. package/src/Presentation/components/UI/svgs/Icons/Contents/GroupChat/Group chat.svg +0 -3
  294. package/src/Presentation/components/UI/svgs/Icons/Contents/GroupChat/index.tsx +0 -35
  295. package/src/Presentation/components/UI/svgs/Icons/Contents/Notifications/Notifications.svg +0 -3
  296. package/src/Presentation/components/UI/svgs/Icons/Contents/Notifications/index.tsx +0 -22
  297. package/src/Presentation/components/UI/svgs/Icons/Contents/PrivateChat/Private chat.svg +0 -3
  298. package/src/Presentation/components/UI/svgs/Icons/Contents/PrivateChat/index.tsx +0 -22
  299. package/src/Presentation/components/UI/svgs/Icons/Contents/PublicChannel/Public channel.svg +0 -7
  300. package/src/Presentation/components/UI/svgs/Icons/Contents/PublicChannel/index.tsx +0 -67
  301. package/src/Presentation/components/UI/svgs/Icons/Contents/Stream/Stream.svg +0 -3
  302. package/src/Presentation/components/UI/svgs/Icons/Contents/Stream/index.tsx +0 -22
  303. package/src/Presentation/components/UI/svgs/Icons/Contents/StreamFilled/Stream filled.svg +0 -3
  304. package/src/Presentation/components/UI/svgs/Icons/Contents/StreamFilled/index.tsx +0 -22
  305. package/src/Presentation/components/UI/svgs/Icons/Contents/User/User.svg +0 -3
  306. package/src/Presentation/components/UI/svgs/Icons/Contents/User/index.tsx +0 -35
  307. package/src/Presentation/components/UI/svgs/Icons/IconsCommonTypes.ts +0 -6
  308. package/src/Presentation/components/UI/svgs/Icons/Media/Attachment/Attachment.svg +0 -3
  309. package/src/Presentation/components/UI/svgs/Icons/Media/Attachment/index.tsx +0 -22
  310. package/src/Presentation/components/UI/svgs/Icons/Media/AudioFile/Audio file.svg +0 -3
  311. package/src/Presentation/components/UI/svgs/Icons/Media/AudioFile/index.tsx +0 -22
  312. package/src/Presentation/components/UI/svgs/Icons/Media/BrokenFile/Broken file.svg +0 -3
  313. package/src/Presentation/components/UI/svgs/Icons/Media/BrokenFile/index.tsx +0 -22
  314. package/src/Presentation/components/UI/svgs/Icons/Media/Camera/Camera.svg +0 -3
  315. package/src/Presentation/components/UI/svgs/Icons/Media/Camera/index.tsx +0 -22
  316. package/src/Presentation/components/UI/svgs/Icons/Media/GifFile/GIF file.svg +0 -3
  317. package/src/Presentation/components/UI/svgs/Icons/Media/GifFile/index.tsx +0 -22
  318. package/src/Presentation/components/UI/svgs/Icons/Media/ImageEmpty/Image.svg +0 -3
  319. package/src/Presentation/components/UI/svgs/Icons/Media/ImageEmpty/index.tsx +0 -22
  320. package/src/Presentation/components/UI/svgs/Icons/Media/ImageFile/File.svg +0 -3
  321. package/src/Presentation/components/UI/svgs/Icons/Media/ImageFile/index.tsx +0 -35
  322. package/src/Presentation/components/UI/svgs/Icons/Media/ImageFilled/Image filled.svg +0 -3
  323. package/src/Presentation/components/UI/svgs/Icons/Media/ImageFilled/index.tsx +0 -22
  324. package/src/Presentation/components/UI/svgs/Icons/Media/LinkWeb/Link.svg +0 -3
  325. package/src/Presentation/components/UI/svgs/Icons/Media/LinkWeb/index.tsx +0 -22
  326. package/src/Presentation/components/UI/svgs/Icons/Media/Location/Location.svg +0 -4
  327. package/src/Presentation/components/UI/svgs/Icons/Media/Location/index.tsx +0 -26
  328. package/src/Presentation/components/UI/svgs/Icons/Media/TextDocument/Text document.svg +0 -3
  329. package/src/Presentation/components/UI/svgs/Icons/Media/TextDocument/index.tsx +0 -22
  330. package/src/Presentation/components/UI/svgs/Icons/Media/VideoFile/Video file.svg +0 -3
  331. package/src/Presentation/components/UI/svgs/Icons/Media/VideoFile/index.tsx +0 -22
  332. package/src/Presentation/components/UI/svgs/Icons/Moderation/Admin/Admin.svg +0 -3
  333. package/src/Presentation/components/UI/svgs/Icons/Moderation/Admin/index.tsx +0 -22
  334. package/src/Presentation/components/UI/svgs/Icons/Moderation/Banned/Banned.svg +0 -3
  335. package/src/Presentation/components/UI/svgs/Icons/Moderation/Banned/index.tsx +0 -22
  336. package/src/Presentation/components/UI/svgs/Icons/Moderation/Freeze/Freeze.svg +0 -3
  337. package/src/Presentation/components/UI/svgs/Icons/Moderation/Freeze/index.tsx +0 -22
  338. package/src/Presentation/components/UI/svgs/Icons/Moderation/Moderations/Moderations.svg +0 -3
  339. package/src/Presentation/components/UI/svgs/Icons/Moderation/Moderations/index.tsx +0 -22
  340. package/src/Presentation/components/UI/svgs/Icons/Moderation/Muted/Muted.svg +0 -3
  341. package/src/Presentation/components/UI/svgs/Icons/Moderation/Muted/index.tsx +0 -22
  342. package/src/Presentation/components/UI/svgs/Icons/Navigation/ArrowLeft/Arrow left.svg +0 -3
  343. package/src/Presentation/components/UI/svgs/Icons/Navigation/ArrowLeft/index.tsx +0 -22
  344. package/src/Presentation/components/UI/svgs/Icons/Navigation/ArrowRight/Arrow right.svg +0 -3
  345. package/src/Presentation/components/UI/svgs/Icons/Navigation/ArrowRight/index.tsx +0 -22
  346. package/src/Presentation/components/UI/svgs/Icons/Navigation/Back/Back.svg +0 -3
  347. package/src/Presentation/components/UI/svgs/Icons/Navigation/Back/index.tsx +0 -22
  348. package/src/Presentation/components/UI/svgs/Icons/Navigation/Close/Close.svg +0 -3
  349. package/src/Presentation/components/UI/svgs/Icons/Navigation/Close/index.tsx +0 -35
  350. package/src/Presentation/components/UI/svgs/Icons/Navigation/Down/Down.svg +0 -3
  351. package/src/Presentation/components/UI/svgs/Icons/Navigation/Down/index.tsx +0 -35
  352. package/src/Presentation/components/UI/svgs/Icons/Navigation/Leave/Leave.svg +0 -3
  353. package/src/Presentation/components/UI/svgs/Icons/Navigation/Leave/index.tsx +0 -35
  354. package/src/Presentation/components/UI/svgs/Icons/Navigation/More/More.svg +0 -7
  355. package/src/Presentation/components/UI/svgs/Icons/Navigation/More/index.tsx +0 -22
  356. package/src/Presentation/components/UI/svgs/Icons/Navigation/Next/Next.svg +0 -3
  357. package/src/Presentation/components/UI/svgs/Icons/Navigation/Next/index.tsx +0 -35
  358. package/src/Presentation/components/UI/svgs/Icons/Navigation/Plus/Plus.svg +0 -3
  359. package/src/Presentation/components/UI/svgs/Icons/Navigation/Plus/index.tsx +0 -22
  360. package/src/Presentation/components/UI/svgs/Icons/Navigation/Refresh/Refresh.svg +0 -3
  361. package/src/Presentation/components/UI/svgs/Icons/Navigation/Refresh/index.tsx +0 -36
  362. package/src/Presentation/components/UI/svgs/Icons/Navigation/Search/Search.svg +0 -3
  363. package/src/Presentation/components/UI/svgs/Icons/Navigation/Search/index.tsx +0 -35
  364. package/src/Presentation/components/UI/svgs/Icons/Navigation/Settings/Settings.svg +0 -3
  365. package/src/Presentation/components/UI/svgs/Icons/Navigation/Settings/index.tsx +0 -22
  366. package/src/Presentation/components/UI/svgs/Icons/Navigation/SettingsField/Settings filled.svg +0 -3
  367. package/src/Presentation/components/UI/svgs/Icons/Navigation/SettingsField/index.tsx +0 -22
  368. package/src/Presentation/components/UI/svgs/Icons/Status/Error/Error.svg +0 -3
  369. package/src/Presentation/components/UI/svgs/Icons/Status/Error/index.tsx +0 -36
  370. package/src/Presentation/components/UI/svgs/Icons/Status/Help/Help.svg +0 -3
  371. package/src/Presentation/components/UI/svgs/Icons/Status/Help/index.tsx +0 -22
  372. package/src/Presentation/components/UI/svgs/Icons/Status/Information/Information.svg +0 -3
  373. package/src/Presentation/components/UI/svgs/Icons/Status/Information/index.tsx +0 -22
  374. package/src/Presentation/components/UI/svgs/Icons/Status/InformationFill/index.tsx +0 -35
  375. package/src/Presentation/components/UI/svgs/Icons/Status/Loader/Loader.svg +0 -3
  376. package/src/Presentation/components/UI/svgs/Icons/Status/Loader/index.tsx +0 -22
  377. package/src/Presentation/components/UI/svgs/Icons/Status/Mention/Mention.svg +0 -3
  378. package/src/Presentation/components/UI/svgs/Icons/Status/Mention/index.tsx +0 -22
  379. package/src/Presentation/components/UI/svgs/Icons/Status/Sent/Sent.svg +0 -3
  380. package/src/Presentation/components/UI/svgs/Icons/Status/Sent/index.tsx +0 -22
  381. package/src/Presentation/components/UI/svgs/Icons/Status/ViewedDelivered/Viewed_Delivered.svg +0 -3
  382. package/src/Presentation/components/UI/svgs/Icons/Status/ViewedDelivered/index.tsx +0 -38
  383. package/src/Presentation/components/UI/svgs/Icons/Toggle/CameraOff/Camera off.svg +0 -3
  384. package/src/Presentation/components/UI/svgs/Icons/Toggle/CameraOff/index.tsx +0 -22
  385. package/src/Presentation/components/UI/svgs/Icons/Toggle/CameraOn/Camera on.svg +0 -3
  386. package/src/Presentation/components/UI/svgs/Icons/Toggle/CameraOn/index.tsx +0 -22
  387. package/src/Presentation/components/UI/svgs/Icons/Toggle/CheckOff/Check off.svg +0 -3
  388. package/src/Presentation/components/UI/svgs/Icons/Toggle/CheckOff/index.tsx +0 -22
  389. package/src/Presentation/components/UI/svgs/Icons/Toggle/CheckOn/Check on.svg +0 -3
  390. package/src/Presentation/components/UI/svgs/Icons/Toggle/CheckOn/index.tsx +0 -24
  391. package/src/Presentation/components/UI/svgs/Icons/Toggle/Favourite/Favourite.svg +0 -3
  392. package/src/Presentation/components/UI/svgs/Icons/Toggle/Favourite/index.tsx +0 -22
  393. package/src/Presentation/components/UI/svgs/Icons/Toggle/FavouriteFilled/Favourite filled.svg +0 -3
  394. package/src/Presentation/components/UI/svgs/Icons/Toggle/FavouriteFilled/index.tsx +0 -22
  395. package/src/Presentation/components/UI/svgs/Icons/Toggle/FullScreen/Full screen.svg +0 -3
  396. package/src/Presentation/components/UI/svgs/Icons/Toggle/FullScreen/inex.tsx +0 -22
  397. package/src/Presentation/components/UI/svgs/Icons/Toggle/Hide/Hide.svg +0 -3
  398. package/src/Presentation/components/UI/svgs/Icons/Toggle/Hide/index.tsx +0 -22
  399. package/src/Presentation/components/UI/svgs/Icons/Toggle/ImagePlay/Play.svg +0 -3
  400. package/src/Presentation/components/UI/svgs/Icons/Toggle/ImagePlay/index.tsx +0 -22
  401. package/src/Presentation/components/UI/svgs/Icons/Toggle/Louder/Louder.svg +0 -3
  402. package/src/Presentation/components/UI/svgs/Icons/Toggle/Louder/index.tsx +0 -22
  403. package/src/Presentation/components/UI/svgs/Icons/Toggle/MicOff/Mic off.svg +0 -3
  404. package/src/Presentation/components/UI/svgs/Icons/Toggle/MicOff/index.tsx +0 -22
  405. package/src/Presentation/components/UI/svgs/Icons/Toggle/MicOn/Mic on.svg +0 -4
  406. package/src/Presentation/components/UI/svgs/Icons/Toggle/MicOn/index.tsx +0 -26
  407. package/src/Presentation/components/UI/svgs/Icons/Toggle/Minimize/Minimize.svg +0 -3
  408. package/src/Presentation/components/UI/svgs/Icons/Toggle/Minimize/index.tsx +0 -22
  409. package/src/Presentation/components/UI/svgs/Icons/Toggle/NotifyOff/Notify off.svg +0 -3
  410. package/src/Presentation/components/UI/svgs/Icons/Toggle/NotifyOff/index.tsx +0 -35
  411. package/src/Presentation/components/UI/svgs/Icons/Toggle/NotifyOn/Notify on.svg +0 -3
  412. package/src/Presentation/components/UI/svgs/Icons/Toggle/NotifyOn/index.tsx +0 -35
  413. package/src/Presentation/components/UI/svgs/Icons/Toggle/Pause/Pause.svg +0 -3
  414. package/src/Presentation/components/UI/svgs/Icons/Toggle/Pause/index.tsx +0 -22
  415. package/src/Presentation/components/UI/svgs/Icons/Toggle/Quite/Quite.svg +0 -3
  416. package/src/Presentation/components/UI/svgs/Icons/Toggle/Quite/index.tsx +0 -22
  417. package/src/Presentation/components/UI/svgs/Icons/Toggle/Record/Record.svg +0 -3
  418. package/src/Presentation/components/UI/svgs/Icons/Toggle/Record/index.tsx +0 -22
  419. package/src/Presentation/components/UI/svgs/Icons/Toggle/Screenshare/Screenshare.svg +0 -3
  420. package/src/Presentation/components/UI/svgs/Icons/Toggle/Screenshare/index.tsx +0 -22
  421. package/src/Presentation/components/UI/svgs/Icons/Toggle/Show/Show.svg +0 -3
  422. package/src/Presentation/components/UI/svgs/Icons/Toggle/Show/index.tsx +0 -22
  423. package/src/Presentation/components/UI/svgs/Icons/Toggle/Speaker/Speaker.svg +0 -3
  424. package/src/Presentation/components/UI/svgs/Icons/Toggle/Speaker/index.tsx +0 -22
  425. package/src/Presentation/components/UI/svgs/Icons/Toggle/SpeakerOff/Speaker off.svg +0 -3
  426. package/src/Presentation/components/UI/svgs/Icons/Toggle/SpeakerOff/index.tsx +0 -22
  427. package/src/Presentation/components/UI/svgs/Icons/Toggle/StopRecord/Stop record.svg +0 -3
  428. package/src/Presentation/components/UI/svgs/Icons/Toggle/StopRecord/index.tsx +0 -22
  429. package/src/Presentation/components/UI/svgs/Icons/Toggle/StopShare/Stop share.svg +0 -3
  430. package/src/Presentation/components/UI/svgs/Icons/Toggle/StopShare/index.tsx +0 -22
  431. package/src/Presentation/components/containers/ColumnContainer/ColumnContainer.scss +0 -6
  432. package/src/Presentation/components/containers/ColumnContainer/ColumnContainer.tsx +0 -24
  433. package/src/Presentation/components/containers/RowCenterContainer/RowCenterContainer.scss +0 -45
  434. package/src/Presentation/components/containers/RowCenterContainer/RowCenterContainer.tsx +0 -95
  435. package/src/Presentation/components/containers/RowLeftContainer/RowLeftContainer.scss +0 -45
  436. package/src/Presentation/components/containers/RowLeftContainer/RowLeftContainer.tsx +0 -97
  437. package/src/Presentation/components/containers/RowRightContainer/RowRightContainer.scss +0 -46
  438. package/src/Presentation/components/containers/RowRightContainer/RowRightContainer.tsx +0 -97
  439. package/src/Presentation/components/containers/ScrollableContainer/ScrollableContainer.scss +0 -46
  440. package/src/Presentation/components/containers/ScrollableContainer/ScrollableContainer.tsx +0 -85
  441. package/src/Presentation/components/layouts/Desktop/Desktop.tsx +0 -103
  442. package/src/Presentation/components/layouts/Desktop/DesktopLayout.scss +0 -31
  443. package/src/Presentation/components/layouts/Desktop/DesktopLayoutForMockModels.tsx +0 -31
  444. package/src/Presentation/components/layouts/LayoutCommonTypes.ts +0 -7
  445. package/src/Presentation/components/layouts/TestStage/LoginView/Login.scss +0 -71
  446. package/src/Presentation/components/layouts/TestStage/LoginView/Login.tsx +0 -116
  447. package/src/Presentation/components/layouts/TestStage/TestStageMarkup.scss +0 -24
  448. package/src/Presentation/components/layouts/TestStage/TestStageMarkup.tsx +0 -1109
  449. package/src/Presentation/components/layouts/TestStage/TestStageWithMockData/TestStageWithMockData.tsx +0 -209
  450. package/src/Presentation/components/providers/ModalContextProvider/Modal.scss +0 -71
  451. package/src/Presentation/components/providers/ModalContextProvider/Modal.tsx +0 -131
  452. package/src/Presentation/components/providers/ModalContextProvider/ModalContextProvider.tsx +0 -38
  453. package/src/Presentation/components/providers/ModalContextProvider/useModal.ts +0 -39
  454. package/src/Presentation/components/providers/ProviderProps.ts +0 -5
  455. package/src/Presentation/components/providers/QuickBloxUIKitProvider/QuickBloxUIKitProvider.tsx +0 -255
  456. package/src/Presentation/components/providers/QuickBloxUIKitProvider/useEventMessagesRepository.ts +0 -10
  457. package/src/Presentation/components/providers/QuickBloxUIKitProvider/useQBConnection.ts +0 -38
  458. package/src/Presentation/components/providers/QuickBloxUIKitProvider/useQbDataContext.ts +0 -82
  459. package/src/QBconfig.ts +0 -41
  460. package/src/index-ui.ts +0 -60
  461. package/src/index.scss +0 -74
  462. package/src/index.tsx +0 -25
  463. package/src/logo.svg +0 -1
  464. package/src/qb-api-calls/index.ts +0 -543
  465. package/src/react-app-env.d.ts +0 -1
  466. package/src/setupTests.ts +0 -5
  467. package/src/utils/DateTimeFormatter.ts +0 -35
  468. package/src/utils/parse.ts +0 -74
  469. package/tsconfig.json +0 -33
  470. package/typedoc.json +0 -4
  471. package/webpack.config.js +0 -56
  472. /package/dist/Presentation/{components/UI → assets}/ DefaultThemes/CustomTheme.d.ts +0 -0
@@ -1,1278 +0,0 @@
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
- }