@amityco/ts-sdk-react-native 6.29.3-669217e.0 → 6.30.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 (379) hide show
  1. package/.env +26 -26
  2. package/dist/@types/core/events.d.ts +41 -11
  3. package/dist/@types/core/events.d.ts.map +1 -1
  4. package/dist/@types/core/model.d.ts +4 -0
  5. package/dist/@types/core/model.d.ts.map +1 -1
  6. package/dist/@types/core/payload.d.ts +32 -7
  7. package/dist/@types/core/payload.d.ts.map +1 -1
  8. package/dist/@types/core/permissions.d.ts +4 -4
  9. package/dist/@types/core/permissions.d.ts.map +1 -1
  10. package/dist/@types/domains/channel.d.ts +8 -0
  11. package/dist/@types/domains/channel.d.ts.map +1 -1
  12. package/dist/@types/domains/comment.d.ts +5 -4
  13. package/dist/@types/domains/comment.d.ts.map +1 -1
  14. package/dist/@types/domains/community.d.ts +32 -8
  15. package/dist/@types/domains/community.d.ts.map +1 -1
  16. package/dist/@types/domains/follow.d.ts +21 -3
  17. package/dist/@types/domains/follow.d.ts.map +1 -1
  18. package/dist/@types/domains/group.d.ts +13 -7
  19. package/dist/@types/domains/group.d.ts.map +1 -1
  20. package/dist/@types/domains/pin.d.ts +22 -0
  21. package/dist/@types/domains/pin.d.ts.map +1 -0
  22. package/dist/@types/domains/pinnedPost.d.ts +28 -0
  23. package/dist/@types/domains/pinnedPost.d.ts.map +1 -0
  24. package/dist/@types/domains/poll.d.ts +3 -1
  25. package/dist/@types/domains/poll.d.ts.map +1 -1
  26. package/dist/@types/domains/post.d.ts +8 -5
  27. package/dist/@types/domains/post.d.ts.map +1 -1
  28. package/dist/@types/domains/stream.d.ts +2 -1
  29. package/dist/@types/domains/stream.d.ts.map +1 -1
  30. package/dist/@types/domains/user.d.ts +34 -6
  31. package/dist/@types/domains/user.d.ts.map +1 -1
  32. package/dist/channelRepository/channelMembership/observers/getMembers/ChannelMemberLiveCollectionController.d.ts.map +1 -1
  33. package/dist/channelRepository/channelMembership/observers/getMembers/ChannelMemberPaginationController.d.ts +3 -2
  34. package/dist/channelRepository/channelMembership/observers/getMembers/ChannelMemberPaginationController.d.ts.map +1 -1
  35. package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberLiveCollectionController.d.ts +14 -0
  36. package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberLiveCollectionController.d.ts.map +1 -0
  37. package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberPaginationController.d.ts +14 -0
  38. package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberPaginationController.d.ts.map +1 -0
  39. package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberQueryStreamController.d.ts +14 -0
  40. package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberQueryStreamController.d.ts.map +1 -0
  41. package/dist/channelRepository/channelMembership/observers/searchMembers/index.d.ts +2 -0
  42. package/dist/channelRepository/channelMembership/observers/searchMembers/index.d.ts.map +1 -0
  43. package/dist/channelRepository/channelMembership/observers/searchMembers/searchMembers.d.ts +21 -0
  44. package/dist/channelRepository/channelMembership/observers/searchMembers/searchMembers.d.ts.map +1 -0
  45. package/dist/channelRepository/events/onUserDeleted.d.ts +2 -0
  46. package/dist/channelRepository/events/onUserDeleted.d.ts.map +1 -0
  47. package/dist/channelRepository/observers/getChannels/ChannelPaginationController.d.ts +3 -3
  48. package/dist/channelRepository/utils/prepareChannelPayload.d.ts.map +1 -1
  49. package/dist/channelRepository/utils/tests/prepareChannelPayload.test.d.ts +1 -1
  50. package/dist/channelRepository/utils/tests/prepareChannelPayload.test.d.ts.map +1 -1
  51. package/dist/client/api/index.d.ts +0 -2
  52. package/dist/client/api/index.d.ts.map +1 -1
  53. package/dist/commentRepository/api/createComment.d.ts.map +1 -1
  54. package/dist/commentRepository/api/deleteComment.d.ts.map +1 -1
  55. package/dist/commentRepository/events/onCommentCreatedLocal.d.ts +17 -0
  56. package/dist/commentRepository/events/onCommentCreatedLocal.d.ts.map +1 -0
  57. package/dist/commentRepository/events/onCommentDeletedLocal.d.ts +17 -0
  58. package/dist/commentRepository/events/onCommentDeletedLocal.d.ts.map +1 -0
  59. package/dist/commentRepository/events/onLocalCommentReactionAdded.d.ts +17 -0
  60. package/dist/commentRepository/events/onLocalCommentReactionAdded.d.ts.map +1 -0
  61. package/dist/commentRepository/events/onLocalCommentReactionRemoved.d.ts +17 -0
  62. package/dist/commentRepository/events/onLocalCommentReactionRemoved.d.ts.map +1 -0
  63. package/dist/commentRepository/events/utils.d.ts +1 -0
  64. package/dist/commentRepository/events/utils.d.ts.map +1 -1
  65. package/dist/commentRepository/observers/getComment.d.ts.map +1 -1
  66. package/dist/commentRepository/observers/getComments/CommentLiveCollectionController.d.ts.map +1 -1
  67. package/dist/communityRepository/communityMembership/events/index.d.ts +2 -0
  68. package/dist/communityRepository/communityMembership/events/index.d.ts.map +1 -1
  69. package/dist/communityRepository/communityMembership/events/onLocalCommunityUserAdded.d.ts +17 -0
  70. package/dist/communityRepository/communityMembership/events/onLocalCommunityUserAdded.d.ts.map +1 -0
  71. package/dist/communityRepository/communityMembership/events/onLocalCommunityUserRemoved.d.ts +17 -0
  72. package/dist/communityRepository/communityMembership/events/onLocalCommunityUserRemoved.d.ts.map +1 -0
  73. package/dist/communityRepository/communityMembership/events/onUserDeleted.d.ts +17 -0
  74. package/dist/communityRepository/communityMembership/events/onUserDeleted.d.ts.map +1 -0
  75. package/dist/communityRepository/communityMembership/events/utils.d.ts +1 -0
  76. package/dist/communityRepository/communityMembership/events/utils.d.ts.map +1 -1
  77. package/dist/communityRepository/communityMembership/observers/getMembers/CommunityMembersLiveCollectionController.d.ts.map +1 -1
  78. package/dist/communityRepository/communityMembership/observers/getMembers/CommunityMembersPaginationController.d.ts.map +1 -1
  79. package/dist/communityRepository/communityMembership/observers/getMembers/enums.d.ts +4 -1
  80. package/dist/communityRepository/communityMembership/observers/getMembers/enums.d.ts.map +1 -1
  81. package/dist/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersLiveCollectionController.d.ts.map +1 -1
  82. package/dist/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersPaginationController.d.ts.map +1 -1
  83. package/dist/communityRepository/communityModeration/api/addRoles.d.ts.map +1 -1
  84. package/dist/communityRepository/communityModeration/api/removeRoles.d.ts.map +1 -1
  85. package/dist/communityRepository/communityModeration/events/onLocalCommunityRoleAdded.d.ts +17 -0
  86. package/dist/communityRepository/communityModeration/events/onLocalCommunityRoleAdded.d.ts.map +1 -0
  87. package/dist/communityRepository/communityModeration/events/onLocalCommunityRoleRemoved.d.ts +17 -0
  88. package/dist/communityRepository/communityModeration/events/onLocalCommunityRoleRemoved.d.ts.map +1 -0
  89. package/dist/communityRepository/utils/payload.d.ts +3 -6
  90. package/dist/communityRepository/utils/payload.d.ts.map +1 -1
  91. package/dist/core/events.d.ts +3 -3
  92. package/dist/core/events.d.ts.map +1 -1
  93. package/dist/core/model/idResolvers.d.ts.map +1 -1
  94. package/dist/core/model/index.d.ts.map +1 -1
  95. package/dist/fileRepository/api/uploadFile.d.ts.map +1 -1
  96. package/dist/fileRepository/api/uploadImage.d.ts.map +1 -1
  97. package/dist/fileRepository/api/uploadVideo.d.ts.map +1 -1
  98. package/dist/group/utils/withUser.d.ts +13 -0
  99. package/dist/group/utils/withUser.d.ts.map +1 -1
  100. package/dist/index.cjs.js +2247 -1250
  101. package/dist/index.esm.js +2435 -1437
  102. package/dist/index.umd.js +3 -3
  103. package/dist/pollRepository/observers/observePoll.d.ts +1 -1
  104. package/dist/pollRepository/observers/observePoll.d.ts.map +1 -1
  105. package/dist/postRepository/events/onLocalPostDeleted.d.ts +17 -0
  106. package/dist/postRepository/events/onLocalPostDeleted.d.ts.map +1 -0
  107. package/dist/postRepository/events/onLocalPostReactionAdded.d.ts +17 -0
  108. package/dist/postRepository/events/onLocalPostReactionAdded.d.ts.map +1 -0
  109. package/dist/postRepository/events/onLocalPostReactionRemoved.d.ts +17 -0
  110. package/dist/postRepository/events/onLocalPostReactionRemoved.d.ts.map +1 -0
  111. package/dist/postRepository/events/onPostUpdatedLocal.d.ts +17 -0
  112. package/dist/postRepository/events/onPostUpdatedLocal.d.ts.map +1 -0
  113. package/dist/postRepository/events/utils.d.ts +1 -0
  114. package/dist/postRepository/events/utils.d.ts.map +1 -1
  115. package/dist/postRepository/internalApi/index.d.ts +1 -12
  116. package/dist/postRepository/internalApi/index.d.ts.map +1 -1
  117. package/dist/postRepository/observers/getPinnedPosts/PinnedPostLiveCollectionController.d.ts +14 -0
  118. package/dist/postRepository/observers/getPinnedPosts/PinnedPostLiveCollectionController.d.ts.map +1 -0
  119. package/dist/postRepository/observers/getPinnedPosts/PinnedPostPaginationController.d.ts +13 -0
  120. package/dist/postRepository/observers/getPinnedPosts/PinnedPostPaginationController.d.ts.map +1 -0
  121. package/dist/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.d.ts +9 -0
  122. package/dist/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.d.ts.map +1 -0
  123. package/dist/postRepository/observers/getPinnedPosts.d.ts +12 -0
  124. package/dist/postRepository/observers/getPinnedPosts.d.ts.map +1 -0
  125. package/dist/postRepository/observers/getPost.d.ts.map +1 -1
  126. package/dist/postRepository/observers/getPosts/PostLiveCollectionController.d.ts.map +1 -1
  127. package/dist/postRepository/observers/index.d.ts +1 -0
  128. package/dist/postRepository/observers/index.d.ts.map +1 -1
  129. package/dist/postRepository/utils/payload.d.ts.map +1 -1
  130. package/dist/reactionRepository/api/addReaction.d.ts.map +1 -1
  131. package/dist/reactionRepository/api/removeReaction.d.ts.map +1 -1
  132. package/dist/report/api/createReport.d.ts +1 -2
  133. package/dist/report/api/createReport.d.ts.map +1 -1
  134. package/dist/report/api/deleteReport.d.ts +1 -2
  135. package/dist/report/api/deleteReport.d.ts.map +1 -1
  136. package/dist/report/api/isReportedByMe.d.ts +1 -2
  137. package/dist/report/api/isReportedByMe.d.ts.map +1 -1
  138. package/dist/streamRepository/observers/getStreams/GetStreamsPageController.d.ts +1 -1
  139. package/dist/userRepository/api/flagUser.d.ts.map +1 -1
  140. package/dist/userRepository/api/getUser.d.ts.map +1 -1
  141. package/dist/userRepository/api/getUserByIds.d.ts.map +1 -1
  142. package/dist/userRepository/api/queryBlockedUsers.d.ts.map +1 -1
  143. package/dist/userRepository/api/queryUsers.d.ts.map +1 -1
  144. package/dist/userRepository/api/unflagUser.d.ts.map +1 -1
  145. package/dist/userRepository/api/updateUser.d.ts.map +1 -1
  146. package/dist/userRepository/events/utils.d.ts.map +1 -1
  147. package/dist/userRepository/internalApi/getUser.d.ts.map +1 -1
  148. package/dist/userRepository/internalApi/queryUsers.d.ts.map +1 -1
  149. package/dist/userRepository/observers/enums.d.ts +8 -0
  150. package/dist/userRepository/observers/enums.d.ts.map +1 -0
  151. package/dist/userRepository/observers/getBlockedUsers/BlockedUserLiveCollectionController.d.ts +14 -0
  152. package/dist/userRepository/observers/getBlockedUsers/BlockedUserLiveCollectionController.d.ts.map +1 -0
  153. package/dist/userRepository/observers/getBlockedUsers/BlockedUserPaginationController.d.ts +5 -0
  154. package/dist/userRepository/observers/getBlockedUsers/BlockedUserPaginationController.d.ts.map +1 -0
  155. package/dist/userRepository/observers/getBlockedUsers/BlockedUserQueryStreamController.d.ts +15 -0
  156. package/dist/userRepository/observers/getBlockedUsers/BlockedUserQueryStreamController.d.ts.map +1 -0
  157. package/dist/userRepository/observers/getBlockedUsers.d.ts.map +1 -1
  158. package/dist/userRepository/observers/getUsers/UserLiveCollectionController.d.ts +14 -0
  159. package/dist/userRepository/observers/getUsers/UserLiveCollectionController.d.ts.map +1 -0
  160. package/dist/userRepository/observers/getUsers/UserPaginationController.d.ts +5 -0
  161. package/dist/userRepository/observers/getUsers/UserPaginationController.d.ts.map +1 -0
  162. package/dist/userRepository/observers/getUsers/UserQueryStreamController.d.ts +15 -0
  163. package/dist/userRepository/observers/getUsers/UserQueryStreamController.d.ts.map +1 -0
  164. package/dist/userRepository/observers/getUsers.d.ts +0 -1
  165. package/dist/userRepository/observers/getUsers.d.ts.map +1 -1
  166. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserLiveCollectionController.d.ts +14 -0
  167. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserLiveCollectionController.d.ts.map +1 -0
  168. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserPaginationController.d.ts +5 -0
  169. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserPaginationController.d.ts.map +1 -0
  170. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserQueryStreamController.d.ts +15 -0
  171. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserQueryStreamController.d.ts.map +1 -0
  172. package/dist/userRepository/observers/searchUserByDisplayName.d.ts.map +1 -1
  173. package/dist/userRepository/relationship/block/api/blockUser.d.ts.map +1 -1
  174. package/dist/userRepository/relationship/block/api/unBlockUser.d.ts.map +1 -1
  175. package/dist/userRepository/relationship/follow/api/acceptFollower.d.ts.map +1 -1
  176. package/dist/userRepository/relationship/follow/api/acceptMyFollower.d.ts.map +1 -1
  177. package/dist/userRepository/relationship/follow/api/declineFollower.d.ts.map +1 -1
  178. package/dist/userRepository/relationship/follow/api/declineMyFollower.d.ts.map +1 -1
  179. package/dist/userRepository/relationship/follow/api/follow.d.ts.map +1 -1
  180. package/dist/userRepository/relationship/follow/api/unfollow.d.ts.map +1 -1
  181. package/dist/userRepository/relationship/follow/api/utils.d.ts.map +1 -1
  182. package/dist/userRepository/relationship/follow/enums.d.ts +11 -0
  183. package/dist/userRepository/relationship/follow/enums.d.ts.map +1 -0
  184. package/dist/userRepository/relationship/follow/events/index.d.ts +5 -0
  185. package/dist/userRepository/relationship/follow/events/index.d.ts.map +1 -1
  186. package/dist/userRepository/relationship/follow/events/onFollowInfoUpdated.d.ts.map +1 -1
  187. package/dist/userRepository/relationship/follow/events/onFollowerUserDeleted.d.ts +4 -0
  188. package/dist/userRepository/relationship/follow/events/onFollowerUserDeleted.d.ts.map +1 -0
  189. package/dist/userRepository/relationship/follow/events/onFollowingUserDeleted.d.ts +4 -0
  190. package/dist/userRepository/relationship/follow/events/onFollowingUserDeleted.d.ts.map +1 -0
  191. package/dist/userRepository/relationship/follow/events/onLocalFollowRequestAccepted.d.ts +2 -0
  192. package/dist/userRepository/relationship/follow/events/onLocalFollowRequestAccepted.d.ts.map +1 -0
  193. package/dist/userRepository/relationship/follow/events/onLocalFollowRequestDeclined.d.ts +2 -0
  194. package/dist/userRepository/relationship/follow/events/onLocalFollowRequestDeclined.d.ts.map +1 -0
  195. package/dist/userRepository/relationship/follow/events/onLocalFollowerRequested.d.ts +2 -0
  196. package/dist/userRepository/relationship/follow/events/onLocalFollowerRequested.d.ts.map +1 -0
  197. package/dist/userRepository/relationship/follow/events/onLocalUserFollowed.d.ts +2 -0
  198. package/dist/userRepository/relationship/follow/events/onLocalUserFollowed.d.ts.map +1 -0
  199. package/dist/userRepository/relationship/follow/events/onLocalUserUnfollowed.d.ts +2 -0
  200. package/dist/userRepository/relationship/follow/events/onLocalUserUnfollowed.d.ts.map +1 -0
  201. package/dist/userRepository/relationship/follow/events/utils.d.ts +2 -1
  202. package/dist/userRepository/relationship/follow/events/utils.d.ts.map +1 -1
  203. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerLiveCollectionController.d.ts +14 -0
  204. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerLiveCollectionController.d.ts.map +1 -0
  205. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerPaginationController.d.ts +5 -0
  206. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerPaginationController.d.ts.map +1 -0
  207. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerQueryStreamController.d.ts +15 -0
  208. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerQueryStreamController.d.ts.map +1 -0
  209. package/dist/userRepository/relationship/follow/observers/getFollowers.d.ts.map +1 -1
  210. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingLiveCollectionController.d.ts +14 -0
  211. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingLiveCollectionController.d.ts.map +1 -0
  212. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingPaginationController.d.ts +5 -0
  213. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingPaginationController.d.ts.map +1 -0
  214. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingQueryStreamController.d.ts +15 -0
  215. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingQueryStreamController.d.ts.map +1 -0
  216. package/dist/userRepository/relationship/follow/observers/getFollowings.d.ts.map +1 -1
  217. package/dist/userRepository/relationship/follow/observers/observeFollowers.d.ts +1 -1
  218. package/dist/userRepository/relationship/follow/observers/observeFollowers.d.ts.map +1 -1
  219. package/dist/userRepository/relationship/follow/observers/observeFollowings.d.ts +1 -1
  220. package/dist/userRepository/relationship/follow/observers/observeFollowings.d.ts.map +1 -1
  221. package/dist/userRepository/relationship/follow/utils.d.ts +4 -0
  222. package/dist/userRepository/relationship/follow/utils.d.ts.map +1 -0
  223. package/dist/userRepository/utils/convertRawUserToInternalUser.d.ts +2 -0
  224. package/dist/userRepository/utils/convertRawUserToInternalUser.d.ts.map +1 -0
  225. package/dist/userRepository/utils/prepareBlockedUserPayload.d.ts +2 -0
  226. package/dist/userRepository/utils/prepareBlockedUserPayload.d.ts.map +1 -0
  227. package/dist/userRepository/utils/prepareUserPayload.d.ts +2 -0
  228. package/dist/userRepository/utils/prepareUserPayload.d.ts.map +1 -0
  229. package/dist/utils/linkedObject/commentLinkedObject.d.ts.map +1 -1
  230. package/dist/utils/linkedObject/index.d.ts +2 -1
  231. package/dist/utils/linkedObject/index.d.ts.map +1 -1
  232. package/dist/utils/linkedObject/pinnedPostLinkedObject.d.ts +2 -0
  233. package/dist/utils/linkedObject/pinnedPostLinkedObject.d.ts.map +1 -0
  234. package/dist/utils/tests/dummy/block.d.ts +2 -2
  235. package/dist/utils/tests/dummy/channel.d.ts +12 -12
  236. package/dist/utils/tests/dummy/channel.d.ts.map +1 -1
  237. package/dist/utils/tests/dummy/community.d.ts +2 -2
  238. package/dist/utils/tests/dummy/follow.d.ts +2 -2
  239. package/dist/utils/tests/dummy/user.d.ts +10 -2
  240. package/dist/utils/tests/dummy/user.d.ts.map +1 -1
  241. package/package.json +1 -1
  242. package/src/@types/core/events.ts +40 -13
  243. package/src/@types/core/model.ts +6 -0
  244. package/src/@types/core/payload.ts +39 -9
  245. package/src/@types/core/permissions.ts +4 -4
  246. package/src/@types/domains/channel.ts +13 -0
  247. package/src/@types/domains/comment.ts +6 -4
  248. package/src/@types/domains/community.ts +40 -12
  249. package/src/@types/domains/follow.ts +26 -12
  250. package/src/@types/domains/group.ts +14 -6
  251. package/src/@types/domains/pin.ts +27 -0
  252. package/src/@types/domains/pinnedPost.ts +35 -0
  253. package/src/@types/domains/poll.ts +5 -1
  254. package/src/@types/domains/post.ts +9 -5
  255. package/src/@types/domains/stream.ts +3 -1
  256. package/src/@types/domains/user.ts +49 -6
  257. package/src/channelRepository/channelMembership/observers/getMembers/ChannelMemberLiveCollectionController.ts +6 -0
  258. package/src/channelRepository/channelMembership/observers/getMembers/ChannelMemberPaginationController.ts +4 -1
  259. package/src/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberLiveCollectionController.ts +148 -0
  260. package/src/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberPaginationController.ts +31 -0
  261. package/src/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberQueryStreamController.ts +112 -0
  262. package/src/channelRepository/channelMembership/observers/searchMembers/index.ts +1 -0
  263. package/src/channelRepository/channelMembership/observers/searchMembers/searchMembers.ts +111 -0
  264. package/src/channelRepository/events/onUserDeleted.ts +46 -0
  265. package/src/channelRepository/utils/prepareChannelPayload.ts +8 -4
  266. package/src/client/api/index.ts +0 -3
  267. package/src/commentRepository/api/createComment.ts +16 -12
  268. package/src/commentRepository/api/deleteComment.ts +23 -13
  269. package/src/commentRepository/events/onCommentCreatedLocal.ts +22 -0
  270. package/src/commentRepository/events/onCommentDeletedLocal.ts +20 -0
  271. package/src/commentRepository/events/onLocalCommentReactionAdded.ts +42 -0
  272. package/src/commentRepository/events/onLocalCommentReactionRemoved.ts +42 -0
  273. package/src/commentRepository/events/utils.ts +77 -0
  274. package/src/commentRepository/observers/getComment.ts +6 -19
  275. package/src/commentRepository/observers/getComments/CommentLiveCollectionController.ts +8 -0
  276. package/src/communityRepository/communityMembership/api/addMembers.ts +1 -1
  277. package/src/communityRepository/communityMembership/api/removeMembers.ts +1 -1
  278. package/src/communityRepository/communityMembership/events/index.ts +2 -0
  279. package/src/communityRepository/communityMembership/events/onLocalCommunityUserAdded.ts +20 -0
  280. package/src/communityRepository/communityMembership/events/onLocalCommunityUserRemoved.ts +20 -0
  281. package/src/communityRepository/communityMembership/events/onUserDeleted.ts +64 -0
  282. package/src/communityRepository/communityMembership/events/utils.ts +50 -2
  283. package/src/communityRepository/communityMembership/observers/getMembers/CommunityMembersLiveCollectionController.ts +26 -1
  284. package/src/communityRepository/communityMembership/observers/getMembers/CommunityMembersPaginationController.ts +4 -1
  285. package/src/communityRepository/communityMembership/observers/getMembers/enums.ts +3 -0
  286. package/src/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersLiveCollectionController.ts +14 -0
  287. package/src/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersPaginationController.ts +4 -1
  288. package/src/communityRepository/communityModeration/api/addRoles.ts +5 -2
  289. package/src/communityRepository/communityModeration/api/removeRoles.ts +5 -2
  290. package/src/communityRepository/communityModeration/events/onLocalCommunityRoleAdded.ts +38 -0
  291. package/src/communityRepository/communityModeration/events/onLocalCommunityRoleRemoved.ts +38 -0
  292. package/src/communityRepository/utils/payload.ts +47 -53
  293. package/src/core/model/idResolvers.ts +3 -0
  294. package/src/core/model/index.ts +3 -0
  295. package/src/fileRepository/api/uploadFile.ts +5 -10
  296. package/src/fileRepository/api/uploadImage.ts +5 -8
  297. package/src/fileRepository/api/uploadVideo.ts +7 -9
  298. package/src/group/utils/withUser.ts +33 -0
  299. package/src/postRepository/api/deletePost.ts +9 -9
  300. package/src/postRepository/api/updatePost.ts +1 -1
  301. package/src/postRepository/events/onLocalPostDeleted.ts +20 -0
  302. package/src/postRepository/events/onLocalPostReactionAdded.ts +38 -0
  303. package/src/postRepository/events/onLocalPostReactionRemoved.ts +41 -0
  304. package/src/postRepository/events/onPostUpdatedLocal.ts +20 -0
  305. package/src/postRepository/events/utils.ts +41 -6
  306. package/src/postRepository/internalApi/index.ts +1 -16
  307. package/src/postRepository/observers/getPinnedPosts/PinnedPostLiveCollectionController.ts +104 -0
  308. package/src/postRepository/observers/getPinnedPosts/PinnedPostPaginationController.ts +23 -0
  309. package/src/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.ts +61 -0
  310. package/src/postRepository/observers/getPinnedPosts.ts +41 -0
  311. package/src/postRepository/observers/getPost.ts +8 -0
  312. package/src/postRepository/observers/getPosts/PostLiveCollectionController.ts +8 -0
  313. package/src/postRepository/observers/index.ts +1 -0
  314. package/src/postRepository/utils/payload.ts +31 -7
  315. package/src/reactionRepository/api/addReaction.ts +27 -2
  316. package/src/reactionRepository/api/removeReaction.ts +27 -2
  317. package/src/report/api/createReport.ts +100 -31
  318. package/src/report/api/deleteReport.ts +100 -31
  319. package/src/report/api/isReportedByMe.ts +72 -11
  320. package/src/userRepository/api/flagUser.ts +5 -2
  321. package/src/userRepository/api/getUser.ts +4 -43
  322. package/src/userRepository/api/getUserByIds.ts +5 -2
  323. package/src/userRepository/api/queryBlockedUsers.ts +6 -6
  324. package/src/userRepository/api/queryUsers.ts +11 -87
  325. package/src/userRepository/api/unflagUser.ts +5 -2
  326. package/src/userRepository/api/updateUser.ts +5 -11
  327. package/src/userRepository/events/utils.ts +4 -1
  328. package/src/userRepository/internalApi/getUser.ts +12 -16
  329. package/src/userRepository/internalApi/queryUsers.ts +7 -4
  330. package/src/userRepository/observers/enums.ts +7 -0
  331. package/src/userRepository/observers/getBlockedUsers/BlockedUserLiveCollectionController.ts +106 -0
  332. package/src/userRepository/observers/getBlockedUsers/BlockedUserPaginationController.ts +24 -0
  333. package/src/userRepository/observers/getBlockedUsers/BlockedUserQueryStreamController.ts +76 -0
  334. package/src/userRepository/observers/getBlockedUsers.ts +8 -81
  335. package/src/userRepository/observers/getUsers/UserLiveCollectionController.ts +131 -0
  336. package/src/userRepository/observers/getUsers/UserPaginationController.ts +25 -0
  337. package/src/userRepository/observers/getUsers/UserQueryStreamController.ts +82 -0
  338. package/src/userRepository/observers/getUsers.ts +7 -137
  339. package/src/userRepository/observers/searchUserByDisplayName/SearchUserLiveCollectionController.ts +116 -0
  340. package/src/userRepository/observers/searchUserByDisplayName/SearchUserPaginationController.ts +25 -0
  341. package/src/userRepository/observers/searchUserByDisplayName/SearchUserQueryStreamController.ts +82 -0
  342. package/src/userRepository/observers/searchUserByDisplayName.ts +25 -1
  343. package/src/userRepository/relationship/block/api/blockUser.ts +4 -1
  344. package/src/userRepository/relationship/block/api/unBlockUser.ts +4 -1
  345. package/src/userRepository/relationship/follow/api/acceptFollower.ts +4 -1
  346. package/src/userRepository/relationship/follow/api/acceptMyFollower.ts +4 -1
  347. package/src/userRepository/relationship/follow/api/declineFollower.ts +5 -2
  348. package/src/userRepository/relationship/follow/api/declineMyFollower.ts +5 -2
  349. package/src/userRepository/relationship/follow/api/follow.ts +8 -1
  350. package/src/userRepository/relationship/follow/api/unfollow.ts +4 -1
  351. package/src/userRepository/relationship/follow/api/utils.ts +6 -2
  352. package/src/userRepository/relationship/follow/enums.ts +10 -0
  353. package/src/userRepository/relationship/follow/events/index.ts +6 -0
  354. package/src/userRepository/relationship/follow/events/onFollowInfoUpdated.ts +6 -1
  355. package/src/userRepository/relationship/follow/events/onFollowerUserDeleted.ts +33 -0
  356. package/src/userRepository/relationship/follow/events/onFollowingUserDeleted.ts +33 -0
  357. package/src/userRepository/relationship/follow/events/onLocalFollowRequestAccepted.ts +5 -0
  358. package/src/userRepository/relationship/follow/events/onLocalFollowRequestDeclined.ts +5 -0
  359. package/src/userRepository/relationship/follow/events/onLocalFollowerRequested.ts +5 -0
  360. package/src/userRepository/relationship/follow/events/onLocalUserFollowed.ts +5 -0
  361. package/src/userRepository/relationship/follow/events/onLocalUserUnfollowed.ts +5 -0
  362. package/src/userRepository/relationship/follow/events/utils.ts +25 -14
  363. package/src/userRepository/relationship/follow/observers/getFollowers/FollowerLiveCollectionController.ts +132 -0
  364. package/src/userRepository/relationship/follow/observers/getFollowers/FollowerPaginationController.ts +29 -0
  365. package/src/userRepository/relationship/follow/observers/getFollowers/FollowerQueryStreamController.ts +95 -0
  366. package/src/userRepository/relationship/follow/observers/getFollowers.ts +8 -106
  367. package/src/userRepository/relationship/follow/observers/getFollowings/FollowingLiveCollectionController.ts +136 -0
  368. package/src/userRepository/relationship/follow/observers/getFollowings/FollowingPaginationController.ts +29 -0
  369. package/src/userRepository/relationship/follow/observers/getFollowings/FollowingQueryStreamController.ts +95 -0
  370. package/src/userRepository/relationship/follow/observers/getFollowings.ts +6 -106
  371. package/src/userRepository/relationship/follow/observers/observeFollowers.ts +11 -0
  372. package/src/userRepository/relationship/follow/observers/observeFollowings.ts +11 -0
  373. package/src/userRepository/relationship/follow/utils.ts +36 -0
  374. package/src/userRepository/utils/convertRawUserToInternalUser.ts +6 -0
  375. package/src/userRepository/utils/prepareBlockedUserPayload.ts +19 -0
  376. package/src/userRepository/utils/prepareUserPayload.ts +8 -0
  377. package/src/utils/linkedObject/commentLinkedObject.ts +13 -16
  378. package/src/utils/linkedObject/index.ts +2 -0
  379. package/src/utils/linkedObject/pinnedPostLinkedObject.ts +28 -0
@@ -0,0 +1,136 @@
1
+ import hash from 'object-hash';
2
+ import { pullFromCache, pushToCache } from '~/cache/api';
3
+ import { FollowingPaginationController } from './FollowingPaginationController';
4
+ import { FollowingQueryStreamController } from './FollowingQueryStreamController';
5
+ import { LiveCollectionController } from '~/core/liveCollection/LiveCollectionController';
6
+ import { EnumFollowActions } from '~/userRepository/relationship/follow/enums';
7
+ import { isNonNullable } from '~/utils';
8
+ import {
9
+ onFollowerDeleted,
10
+ onFollowerRequested,
11
+ onFollowRequestAccepted,
12
+ onFollowRequestCanceled,
13
+ onFollowRequestDeclined,
14
+ onLocalFollowerRequested,
15
+ onLocalFollowRequestAccepted,
16
+ onLocalFollowRequestDeclined,
17
+ onLocalUserFollowed,
18
+ onLocalUserUnfollowed,
19
+ onUserFollowed,
20
+ onUserUnfollowed,
21
+ } from '../../events';
22
+ import { prepareFollowingsPayload } from '../../utils';
23
+ import { onFollowingUserDeleted } from '../../events/onFollowingUserDeleted';
24
+
25
+ export class FollowingLiveCollectionController extends LiveCollectionController<
26
+ 'following',
27
+ Amity.FollowingLiveCollection,
28
+ Amity.FollowStatus,
29
+ FollowingPaginationController
30
+ > {
31
+ private queryStreamController: FollowingQueryStreamController;
32
+
33
+ private query: Amity.FollowingLiveCollection;
34
+
35
+ constructor(
36
+ query: Amity.FollowingLiveCollection,
37
+ callback: Amity.LiveCollectionCallback<Amity.FollowStatus>,
38
+ ) {
39
+ const queryStreamId = hash(query);
40
+ const cacheKey = ['follow', 'collection', queryStreamId];
41
+ const paginationController = new FollowingPaginationController(query);
42
+
43
+ super(paginationController, queryStreamId, cacheKey, callback);
44
+
45
+ this.query = query;
46
+ this.queryStreamController = new FollowingQueryStreamController(
47
+ this.query,
48
+ this.cacheKey,
49
+ this.notifyChange.bind(this),
50
+ prepareFollowingsPayload,
51
+ );
52
+
53
+ this.callback = callback.bind(this);
54
+ this.loadPage({ initial: true });
55
+ }
56
+
57
+ protected setup() {
58
+ const collection = pullFromCache<Amity.FollowingLiveCollectionCache>(this.cacheKey)?.data;
59
+ if (!collection) {
60
+ pushToCache(this.cacheKey, {
61
+ data: [],
62
+ params: {},
63
+ });
64
+ }
65
+ }
66
+
67
+ protected async persistModel(queryPayload: Amity.FollowingsPayload & Amity.Pagination) {
68
+ await this.queryStreamController.saveToMainDB(queryPayload);
69
+ }
70
+
71
+ protected persistQueryStream({
72
+ response,
73
+ direction,
74
+ refresh,
75
+ }: Amity.LiveCollectionPersistQueryStreamParams<'following'>) {
76
+ this.queryStreamController.appendToQueryStream(response, direction, refresh);
77
+ }
78
+
79
+ startSubscription() {
80
+ return this.queryStreamController.subscribeRTE([
81
+ { fn: onFollowerRequested, action: EnumFollowActions.OnRequested },
82
+ { fn: onFollowRequestAccepted, action: EnumFollowActions.OnAccepted },
83
+ { fn: onFollowRequestDeclined, action: EnumFollowActions.OnDeclined },
84
+ { fn: onFollowRequestCanceled, action: EnumFollowActions.OnCanceled },
85
+ { fn: onUserFollowed, action: EnumFollowActions.OnFollowed },
86
+ { fn: onUserUnfollowed, action: EnumFollowActions.OnUnfollowed },
87
+ { fn: onFollowerDeleted, action: EnumFollowActions.OnDeleted },
88
+ { fn: onLocalFollowerRequested, action: EnumFollowActions.OnRequested },
89
+ { fn: onLocalFollowRequestAccepted, action: EnumFollowActions.OnAccepted },
90
+ { fn: onLocalFollowRequestDeclined, action: EnumFollowActions.OnDeclined },
91
+ { fn: onLocalUserFollowed, action: EnumFollowActions.OnFollowed },
92
+ { fn: onLocalUserUnfollowed, action: EnumFollowActions.OnUnfollowed },
93
+ {
94
+ fn: onFollowingUserDeleted({ userId: this.query.userId }),
95
+ action: EnumFollowActions.OnUserDeleted,
96
+ },
97
+ ]);
98
+ }
99
+
100
+ notifyChange({ origin, loading, error }: Amity.LiveCollectionNotifyParams) {
101
+ const collection = pullFromCache<Amity.FollowingLiveCollectionCache>(this.cacheKey)?.data;
102
+ if (!collection) return;
103
+
104
+ const data = this.applyFilter(
105
+ collection.data
106
+ .map(id => pullFromCache<Amity.InternalFollowStatus>(['follow', 'get', id])!)
107
+ .filter(isNonNullable)
108
+ .map(({ data }) => data) ?? [],
109
+ );
110
+
111
+ if (!this.shouldNotify(data) && origin === 'event') return;
112
+
113
+ this.callback({
114
+ onNextPage: () => this.loadPage({ direction: Amity.LiveCollectionPageDirection.NEXT }),
115
+ data,
116
+ hasNextPage: !!this.paginationController.getNextToken(),
117
+ loading,
118
+ error,
119
+ });
120
+ }
121
+
122
+ applyFilter(data: Amity.InternalFollowStatus[]) {
123
+ let followings = data;
124
+
125
+ if (this.query.status && this.query.status !== Amity.FollowStatusTypeEnum.All) {
126
+ followings = followings.filter(following => following.status === this.query.status);
127
+ }
128
+
129
+ followings = followings.filter(following => {
130
+ const toUser = pullFromCache<Amity.InternalUser>(['user', 'get', following.to])?.data;
131
+ return toUser?.isDeleted == null || toUser?.isDeleted === false;
132
+ });
133
+
134
+ return followings;
135
+ }
136
+ }
@@ -0,0 +1,29 @@
1
+ import { getActiveClient } from '~/client';
2
+ import { PaginationController } from '~/core/liveCollection/PaginationController';
3
+ import { COLLECTION_DEFAULT_PAGINATION_LIMIT } from '~/utils/constants';
4
+
5
+ export class FollowingPaginationController extends PaginationController<
6
+ 'follower',
7
+ Amity.FollowingLiveCollection
8
+ > {
9
+ async getRequest(queryParams: Amity.FollowingLiveCollection, token: string | undefined) {
10
+ const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT, userId, ...params } = queryParams;
11
+ const options = token ? { token } : { limit };
12
+ const client = getActiveClient();
13
+
14
+ const path =
15
+ client.userId === userId ? `/api/v4/me/following` : `/api/v4/users/${userId}/following`;
16
+
17
+ const { data: queryResponse } = await this.http.get<Amity.FollowingsPayload & Amity.Pagination>(
18
+ path,
19
+ {
20
+ params: {
21
+ ...params,
22
+ options,
23
+ isDeleted: false,
24
+ },
25
+ },
26
+ );
27
+ return queryResponse;
28
+ }
29
+ }
@@ -0,0 +1,95 @@
1
+ import { QueryStreamController } from '~/core/liveCollection/QueryStreamController';
2
+ import { pullFromCache, pushToCache } from '~/cache/api';
3
+ import { ingestInCache } from '~/cache/api/ingestInCache';
4
+ import { getResolver } from '~/core/model';
5
+ import { getActiveClient } from '~/client';
6
+ import { EnumFollowActions } from '~/userRepository/relationship/follow/enums';
7
+
8
+ export class FollowingQueryStreamController extends QueryStreamController<
9
+ Amity.FollowingsPayload,
10
+ Amity.FollowingLiveCollection
11
+ > {
12
+ private notifyChange: (params: Amity.LiveCollectionNotifyParams) => void;
13
+
14
+ private preparePayload: (response: Amity.FollowingsPayload) => Amity.ProcessedFollowingsPayload;
15
+
16
+ constructor(
17
+ query: Amity.FollowingLiveCollection,
18
+ cacheKey: string[],
19
+ notifyChange: (params: Amity.LiveCollectionNotifyParams) => void,
20
+ preparePayload: (response: Amity.FollowingsPayload) => Amity.ProcessedFollowingsPayload,
21
+ ) {
22
+ super(query, cacheKey);
23
+ this.notifyChange = notifyChange;
24
+ this.preparePayload = preparePayload;
25
+ }
26
+
27
+ async saveToMainDB(response: Amity.FollowingsPayload) {
28
+ const processedPayload = await this.preparePayload(response);
29
+
30
+ const client = getActiveClient();
31
+ const cachedAt = client.cache && Date.now();
32
+
33
+ if (client.cache) {
34
+ ingestInCache(processedPayload, { cachedAt });
35
+ }
36
+ }
37
+
38
+ appendToQueryStream(
39
+ response: Amity.FollowingsPayload & Partial<Amity.Pagination>,
40
+ direction: Amity.LiveCollectionPageDirection,
41
+ refresh = false,
42
+ ) {
43
+ if (refresh) {
44
+ pushToCache(this.cacheKey, {
45
+ data: response.follows.map(getResolver('follow')),
46
+ });
47
+ } else {
48
+ const collection = pullFromCache<Amity.FollowingLiveCollectionCache>(this.cacheKey)?.data;
49
+
50
+ const follows = collection?.data ?? [];
51
+
52
+ pushToCache(this.cacheKey, {
53
+ ...collection,
54
+ data: [...new Set([...follows, ...response.follows.map(getResolver('follow'))])],
55
+ });
56
+ }
57
+ }
58
+
59
+ reactor(action: EnumFollowActions) {
60
+ return (followStatus: Amity.InternalFollowStatus) => {
61
+ const collection = pullFromCache<Amity.FollowingLiveCollectionCache>(this.cacheKey)?.data;
62
+
63
+ if (this.query.userId !== followStatus.from || !collection) return;
64
+
65
+ switch (action) {
66
+ case EnumFollowActions.OnDeclined:
67
+ case EnumFollowActions.OnCanceled:
68
+ case EnumFollowActions.OnUnfollowed:
69
+ case EnumFollowActions.OnDeleted:
70
+ collection.data = collection.data.filter(p => p !== getResolver('follow')(followStatus));
71
+ break;
72
+ case EnumFollowActions.OnRequested:
73
+ case EnumFollowActions.OnAccepted:
74
+ case EnumFollowActions.OnFollowed:
75
+ collection.data = [...new Set([getResolver('follow')(followStatus), ...collection.data])];
76
+ break;
77
+
78
+ default:
79
+ break;
80
+ }
81
+
82
+ pushToCache(this.cacheKey, collection);
83
+ this.notifyChange({ origin: Amity.LiveDataOrigin.EVENT, loading: false });
84
+ };
85
+ }
86
+
87
+ subscribeRTE(
88
+ createSubscriber: {
89
+ fn: (reactor: (user: Amity.InternalFollowStatus) => void) => Amity.Unsubscriber;
90
+ action: EnumFollowActions;
91
+ }[],
92
+ ) {
93
+ return createSubscriber.map(subscriber => subscriber.fn(this.reactor(subscriber.action)));
94
+ }
95
+ }
@@ -1,24 +1,7 @@
1
- /* eslint-disable no-use-before-define */
2
- import { getResolver } from '~/core/model';
3
1
  import { getActiveClient } from '~/client/api';
4
- import { pushToCache, pullFromCache } from '~/cache/api';
5
- import { createQuery, runQuery, queryOptions, filterByPropEquality } from '~/core/query';
2
+ import { dropFromCache } from '~/cache/api';
6
3
 
7
- import {
8
- COLLECTION_DEFAULT_CACHING_POLICY,
9
- COLLECTION_DEFAULT_PAGINATION_LIMIT,
10
- } from '~/utils/constants';
11
-
12
- import {
13
- onFollowerRequested,
14
- onFollowRequestAccepted,
15
- onFollowRequestDeclined,
16
- onFollowRequestCanceled,
17
- onUserFollowed,
18
- onUserUnfollowed,
19
- onFollowerDeleted,
20
- } from '../events';
21
- import { queryFollowings } from '../api/queryFollowings';
4
+ import { FollowingLiveCollectionController } from './getFollowings/FollowingLiveCollectionController';
22
5
 
23
6
  /* begin_public_function
24
7
  id: user.relationship.query_my_followings, user.relationship.query_followings
@@ -55,95 +38,12 @@ export const getFollowings = (
55
38
  const timestamp = Date.now();
56
39
  log(`getFollowings(tmpid: ${timestamp}) > listen`);
57
40
 
58
- const { limit: queryLimit, ...queryParams } = params;
59
-
60
- const limit = queryLimit ?? COLLECTION_DEFAULT_PAGINATION_LIMIT;
61
- const { policy = COLLECTION_DEFAULT_CACHING_POLICY } = config ?? {};
62
-
63
- const disposers: Amity.Unsubscriber[] = [];
64
- const cacheKey = ['follow', 'collection', { userId: params.userId, type: 'following' }];
65
-
66
- const responder = (data: Amity.FollowingLiveCollectionCache) => {
67
- let followings: Amity.FollowStatus[] =
68
- data.data
69
- .map(key => pullFromCache<Amity.FollowStatus>(['follow', 'get', key])!)
70
- .filter(Boolean)
71
- .map(({ data }) => data) ?? [];
72
-
73
- if (params.status && params.status !== 'all') {
74
- followings = filterByPropEquality(followings, 'status', params.status);
75
- }
76
-
77
- callback({
78
- onNextPage: onFetch,
79
- data: followings,
80
- hasNextPage: !!data.params?.page,
81
- loading: data.loading,
82
- error: data.error,
83
- });
84
- };
85
-
86
- const realtimeRouter = (action: Amity.FollowActionType) => (followStatus: Amity.FollowStatus) => {
87
- const collection = pullFromCache<Amity.FollowingLiveCollectionCache>(cacheKey)?.data;
88
-
89
- if (params.userId !== followStatus.from || !collection) return;
90
-
91
- if (['onDeclined', 'onCanceled', 'onUnfollowed', 'onDeleted'].includes(action)) {
92
- collection.data = collection.data.filter(p => p !== getResolver('follow')(followStatus));
93
- } else if (['onRequested', 'onAccepted', 'onFollowed'].includes(action)) {
94
- collection.data = [...new Set([getResolver('follow')(followStatus), ...collection.data])];
95
- }
96
-
97
- pushToCache(cacheKey, collection);
98
-
99
- responder(collection);
100
- };
101
-
102
- const onFetch = (initial = false) => {
103
- const collection = pullFromCache<Amity.FollowingLiveCollectionCache>(cacheKey)?.data;
104
-
105
- const followings = collection?.data ?? [];
106
-
107
- if (!initial && followings.length > 0 && !collection?.params?.page) return;
108
-
109
- const query = createQuery(queryFollowings, {
110
- ...queryParams,
111
- page: (!initial ? collection?.params.page : undefined) ?? { limit },
112
- });
113
-
114
- runQuery(
115
- query,
116
- ({ data: result, error, loading, nextPage: page }) => {
117
- const data = {
118
- loading,
119
- error,
120
- params: { page },
121
- data: followings,
122
- };
123
-
124
- if (result) {
125
- data.data = [...new Set([...followings, ...result.map(getResolver('follow'))])];
126
- }
127
-
128
- pushToCache(cacheKey, data);
129
-
130
- responder(data);
131
- },
132
- queryOptions(policy),
133
- );
134
- };
41
+ const followingLiveCollection = new FollowingLiveCollectionController(params, callback);
42
+ const disposers = followingLiveCollection.startSubscription();
135
43
 
136
- disposers.push(
137
- onFollowerRequested(realtimeRouter('onRequested')),
138
- onFollowRequestAccepted(realtimeRouter('onAccepted')),
139
- onFollowRequestDeclined(realtimeRouter('onDeclined')),
140
- onFollowRequestCanceled(realtimeRouter('onCanceled')),
141
- onUserFollowed(realtimeRouter('onFollowed')),
142
- onUserUnfollowed(realtimeRouter('onUnfollowed')),
143
- onFollowerDeleted(realtimeRouter('onDeleted')),
144
- );
44
+ const cacheKey = followingLiveCollection.getCacheKey();
145
45
 
146
- onFetch(true);
46
+ disposers.push(() => dropFromCache(cacheKey));
147
47
 
148
48
  return () => {
149
49
  log(`getFollowings(tmpid: ${timestamp}) > dispose`);
@@ -8,6 +8,11 @@ import {
8
8
  onUserFollowed,
9
9
  onUserUnfollowed,
10
10
  onFollowerDeleted,
11
+ onLocalFollowerRequested,
12
+ onLocalFollowRequestAccepted,
13
+ onLocalFollowRequestDeclined,
14
+ onLocalUserFollowed,
15
+ onLocalUserUnfollowed,
11
16
  } from '../events';
12
17
 
13
18
  /**
@@ -54,6 +59,12 @@ export const observeFollowers = <Events extends Amity.FollowActionType[]>(
54
59
  onUserFollowed(x => router(x, 'onFollowed')),
55
60
  onUserUnfollowed(x => router(x, 'onUnfollowed')),
56
61
  onFollowerDeleted(x => router(x, 'onDeleted')),
62
+
63
+ onLocalFollowerRequested(x => router(x, 'onRequested')),
64
+ onLocalFollowRequestAccepted(x => router(x, 'onAccepted')),
65
+ onLocalFollowRequestDeclined(x => router(x, 'onDeclined')),
66
+ onLocalUserFollowed(x => router(x, 'onFollowed')),
67
+ onLocalUserUnfollowed(x => router(x, 'onUnfollowed')),
57
68
  );
58
69
 
59
70
  return () => {
@@ -8,6 +8,11 @@ import {
8
8
  onUserFollowed,
9
9
  onUserUnfollowed,
10
10
  onFollowerDeleted,
11
+ onLocalFollowerRequested,
12
+ onLocalFollowRequestAccepted,
13
+ onLocalFollowRequestDeclined,
14
+ onLocalUserFollowed,
15
+ onLocalUserUnfollowed,
11
16
  } from '../events';
12
17
 
13
18
  /**
@@ -54,6 +59,12 @@ export const observeFollowings = <Events extends Amity.FollowActionType[]>(
54
59
  onUserFollowed(x => router(x, 'onFollowed')),
55
60
  onUserUnfollowed(x => router(x, 'onUnfollowed')),
56
61
  onFollowerDeleted(x => router(x, 'onDeleted')),
62
+
63
+ onLocalFollowerRequested(x => router(x, 'onRequested')),
64
+ onLocalFollowRequestAccepted(x => router(x, 'onAccepted')),
65
+ onLocalFollowRequestDeclined(x => router(x, 'onDeclined')),
66
+ onLocalUserFollowed(x => router(x, 'onFollowed')),
67
+ onLocalUserUnfollowed(x => router(x, 'onUnfollowed')),
57
68
  );
58
69
 
59
70
  return () => {
@@ -0,0 +1,36 @@
1
+ import { convertRawUserToInternalUser } from '~/userRepository/utils/convertRawUserToInternalUser';
2
+
3
+ export function prepareFollowersPayload(
4
+ response: Amity.FollowersPayload,
5
+ ): Amity.ProcessedFollowersPayload {
6
+ const { users, follows, ...rest } = response;
7
+
8
+ return {
9
+ ...rest,
10
+ follows,
11
+ users: users.map(convertRawUserToInternalUser),
12
+ };
13
+ }
14
+
15
+ export function prepareFollowingsPayload(
16
+ response: Amity.FollowersPayload,
17
+ ): Amity.ProcessedFollowersPayload {
18
+ const { users, follows, ...rest } = response;
19
+
20
+ return {
21
+ ...rest,
22
+ follows,
23
+ users: users.map(convertRawUserToInternalUser),
24
+ };
25
+ }
26
+
27
+ export function prepareFollowStatusPayload(
28
+ response: Amity.FollowStatusPayload,
29
+ ): Amity.ProcessedFollowStatusPayload {
30
+ const { follows, ...rest } = response;
31
+
32
+ return {
33
+ ...rest,
34
+ follows,
35
+ };
36
+ }
@@ -0,0 +1,6 @@
1
+ export function convertRawUserToInternalUser(rawUser: Amity.RawUser): Amity.InternalUser {
2
+ return {
3
+ ...rawUser,
4
+ isGlobalBanned: rawUser?.isGlobalBan || false,
5
+ };
6
+ }
@@ -0,0 +1,19 @@
1
+ import { convertRawUserToInternalUser } from './convertRawUserToInternalUser';
2
+
3
+ export function prepareBlockedUserPayload(
4
+ response: Amity.BlockedUserPayload,
5
+ ): Amity.ProcessedBlockedUserPayload {
6
+ const { users, follows, ...rest } = response;
7
+
8
+ return {
9
+ ...rest,
10
+ follows: follows.map(follow => {
11
+ const followUser = users.find(user => user.userId === follow.from)!;
12
+ return {
13
+ ...follow,
14
+ user: convertRawUserToInternalUser(followUser),
15
+ };
16
+ }),
17
+ users: users.map(convertRawUserToInternalUser),
18
+ };
19
+ }
@@ -0,0 +1,8 @@
1
+ import { convertRawUserToInternalUser } from './convertRawUserToInternalUser';
2
+
3
+ export function prepareUserPayload(response: Amity.UserPayload): Amity.ProcessedUserPayload {
4
+ return {
5
+ users: response.users.map(convertRawUserToInternalUser),
6
+ files: response.files,
7
+ };
8
+ }
@@ -1,5 +1,6 @@
1
1
  import { pullFromCache } from '~/cache/api/pullFromCache';
2
2
  import { userLinkedObject } from './userLinkedObject';
3
+ import { isNonNullable } from '~/utils';
3
4
 
4
5
  export const commentLinkedObject = (comment: Amity.InternalComment): Amity.Comment => {
5
6
  return {
@@ -47,23 +48,19 @@ export const commentLinkedObject = (comment: Amity.InternalComment): Amity.Comme
47
48
  return undefined;
48
49
  },
49
50
  get childrenComment(): Amity.Comment[] {
50
- return (
51
- comment.children
52
- .map(childCommentId => {
53
- const commentCache = pullFromCache<Amity.InternalComment>([
54
- 'comment',
55
- 'get',
56
- childCommentId,
57
- ]);
51
+ return comment.children
52
+ .map(childCommentId => {
53
+ const commentCache = pullFromCache<Amity.InternalComment>([
54
+ 'comment',
55
+ 'get',
56
+ childCommentId,
57
+ ]);
58
58
 
59
- if (!commentCache?.data) return;
60
- return commentCache?.data;
61
- })
62
- .filter(item => item)
63
- // Cannot include this loop in the first loop because
64
- // TS always alert returned value is possibly undefined
65
- .map(item => commentLinkedObject(item!))
66
- );
59
+ if (!commentCache?.data) return;
60
+ return commentCache?.data;
61
+ })
62
+ .filter(isNonNullable)
63
+ .map(item => commentLinkedObject(item!));
67
64
  },
68
65
  };
69
66
  };
@@ -9,6 +9,7 @@ import { storyTargetLinkedObject } from './storyTargetLinkedObject';
9
9
  import { reactorLinkedObject } from './reactorLinkedObject';
10
10
  import { channelLinkedObject } from './channelLinkedObject';
11
11
  import { adLinkedObject } from './adLinkedObject';
12
+ import { pinnedPostLinkedObject } from './pinnedPostLinkedObject';
12
13
 
13
14
  export const LinkedObject = {
14
15
  ad: adLinkedObject,
@@ -22,4 +23,5 @@ export const LinkedObject = {
22
23
  message: messageLinkedObject,
23
24
  reactor: reactorLinkedObject,
24
25
  channel: channelLinkedObject,
26
+ pinnedPost: pinnedPostLinkedObject,
25
27
  };
@@ -0,0 +1,28 @@
1
+ import { pullFromCache, queryCache } from '~/cache/api';
2
+ import { postLinkedObject } from './postLinkedObject';
3
+
4
+ export const pinnedPostLinkedObject = (pinnedPost: Amity.RawPin): Amity.PinnedPost => {
5
+ const postCached = pullFromCache<Amity.InternalPost>(['post', 'get', pinnedPost.referenceId]);
6
+ const pinnedBy = queryCache<Amity.InternalUser>(['user', 'get'])!.find(cache => {
7
+ return cache.data?.userInternalId === pinnedPost.pinnedBy;
8
+ })?.data!;
9
+
10
+ return {
11
+ ...pinnedPost,
12
+ pinnedBy,
13
+ get post(): Amity.Post | undefined {
14
+ if (!postCached?.data) return;
15
+ return postLinkedObject(postCached.data);
16
+ },
17
+ get target(): Amity.PinTarget | undefined {
18
+ const pinTarget = pullFromCache<Amity.InternalPinTarget>([
19
+ 'pinTarget',
20
+ 'get',
21
+ postCached?.data.targetId,
22
+ ]);
23
+
24
+ if (!pinTarget?.data) return;
25
+ return pinTarget?.data;
26
+ },
27
+ };
28
+ };