@amityco/ts-sdk 0.0.1-e26de88.0 → 0.0.1-e556efe.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.
- package/.eslintrc.json +13 -10
- package/dist/@types/core/events.d.ts +15 -10
- package/dist/@types/core/events.d.ts.map +1 -1
- package/dist/@types/core/live.d.ts +23 -0
- package/dist/@types/core/live.d.ts.map +1 -0
- package/dist/@types/core/model.d.ts +6 -0
- package/dist/@types/core/model.d.ts.map +1 -1
- package/dist/@types/core/paging.d.ts +1 -1
- package/dist/@types/core/paging.d.ts.map +1 -1
- package/dist/@types/core/payload.d.ts +15 -6
- package/dist/@types/core/payload.d.ts.map +1 -1
- package/dist/@types/domains/channel.d.ts +1 -2
- package/dist/@types/domains/channel.d.ts.map +1 -1
- package/dist/@types/domains/comment.d.ts +15 -0
- package/dist/@types/domains/comment.d.ts.map +1 -1
- package/dist/@types/domains/content.d.ts +5 -2
- package/dist/@types/domains/content.d.ts.map +1 -1
- package/dist/@types/domains/follow.d.ts +2 -1
- package/dist/@types/domains/follow.d.ts.map +1 -1
- package/dist/@types/domains/message.d.ts +5 -2
- package/dist/@types/domains/message.d.ts.map +1 -1
- package/dist/@types/domains/poll.d.ts +27 -0
- package/dist/@types/domains/poll.d.ts.map +1 -0
- package/dist/@types/domains/post.d.ts +18 -1
- package/dist/@types/domains/post.d.ts.map +1 -1
- package/dist/@types/domains/reaction.d.ts +18 -8
- package/dist/@types/domains/reaction.d.ts.map +1 -1
- package/dist/@types/domains/user.d.ts +2 -1
- package/dist/@types/domains/user.d.ts.map +1 -1
- package/dist/@types/index.d.ts +2 -0
- package/dist/@types/index.d.ts.map +1 -1
- package/dist/cache/api/ingestInCache.d.ts +1 -1
- package/dist/cache/api/ingestInCache.d.ts.map +1 -1
- package/dist/cache/api/mergeInCache.d.ts +1 -1
- package/dist/cache/api/mergeInCache.d.ts.map +1 -1
- package/dist/category/api/getCategory.d.ts +18 -2
- package/dist/category/api/getCategory.d.ts.map +1 -1
- package/dist/category/api/queryCategories.d.ts +23 -11
- package/dist/category/api/queryCategories.d.ts.map +1 -1
- package/dist/channel/api/addChannelMembers.d.ts.map +1 -1
- package/dist/channel/api/banChannelMembers.d.ts +16 -0
- package/dist/channel/api/banChannelMembers.d.ts.map +1 -0
- package/dist/channel/api/deleteChannel.d.ts.map +1 -1
- package/dist/channel/api/index.d.ts +2 -0
- package/dist/channel/api/index.d.ts.map +1 -1
- package/dist/channel/api/queryChannelMembers.d.ts +2 -1
- package/dist/channel/api/queryChannelMembers.d.ts.map +1 -1
- package/dist/channel/api/queryChannels.d.ts +9 -6
- package/dist/channel/api/queryChannels.d.ts.map +1 -1
- package/dist/channel/api/removeChannelMembers.d.ts.map +1 -1
- package/dist/channel/api/unbanChannelMembers.d.ts +16 -0
- package/dist/channel/api/unbanChannelMembers.d.ts.map +1 -0
- package/dist/channel/api/updateChannel.d.ts +1 -1
- package/dist/channel/api/updateChannel.d.ts.map +1 -1
- package/dist/channel/events/index.d.ts +2 -2
- package/dist/channel/events/index.d.ts.map +1 -1
- package/dist/channel/events/onChannelMemberAdded.d.ts +17 -0
- package/dist/channel/events/onChannelMemberAdded.d.ts.map +1 -0
- package/dist/channel/events/onChannelMemberRemoved.d.ts +17 -0
- package/dist/channel/events/onChannelMemberRemoved.d.ts.map +1 -0
- package/dist/channel/observers/observeChannel.d.ts.map +1 -1
- package/dist/client/api/connectClient.d.ts +7 -4
- package/dist/client/api/connectClient.d.ts.map +1 -1
- package/dist/client/api/createClient.d.ts +1 -1
- package/dist/client/api/createClient.d.ts.map +1 -1
- package/dist/comment/api/queryComments.d.ts +1 -8
- package/dist/comment/api/queryComments.d.ts.map +1 -1
- package/dist/comment/observers/index.d.ts +1 -0
- package/dist/comment/observers/index.d.ts.map +1 -1
- package/dist/comment/observers/liveComments.d.ts +22 -0
- package/dist/comment/observers/liveComments.d.ts.map +1 -0
- package/dist/comment/observers/observeComments.d.ts.map +1 -1
- package/dist/community/api/addCommunityMembersRoles.d.ts +18 -0
- package/dist/community/api/addCommunityMembersRoles.d.ts.map +1 -0
- package/dist/community/api/getRecommendedCommunities.d.ts +1 -1
- package/dist/community/api/getRecommendedCommunities.d.ts.map +1 -1
- package/dist/community/api/getTopTrendingCommunities.d.ts +1 -1
- package/dist/community/api/getTopTrendingCommunities.d.ts.map +1 -1
- package/dist/community/api/index.d.ts +2 -2
- package/dist/community/api/index.d.ts.map +1 -1
- package/dist/community/api/queryCommunities.d.ts +7 -7
- package/dist/community/api/queryCommunities.d.ts.map +1 -1
- package/dist/community/api/removeCommunityMembersRoles.d.ts +18 -0
- package/dist/community/api/removeCommunityMembersRoles.d.ts.map +1 -0
- package/dist/core/debug.d.ts +1 -1
- package/dist/core/debug.d.ts.map +1 -1
- package/dist/core/events.d.ts +3 -3
- package/dist/core/events.d.ts.map +1 -1
- package/dist/core/model/idResolvers.d.ts.map +1 -1
- package/dist/core/model/identifyModel.d.ts +1 -0
- package/dist/core/model/identifyModel.d.ts.map +1 -1
- package/dist/core/model/index.d.ts.map +1 -1
- package/dist/core/query/paging.d.ts +2 -2
- package/dist/core/query/paging.d.ts.map +1 -1
- package/dist/core/query/query.d.ts +1 -1
- package/dist/core/query/query.d.ts.map +1 -1
- package/dist/core/subscription.d.ts +2 -0
- package/dist/core/subscription.d.ts.map +1 -1
- package/dist/core/tests/query/filtering.test.d.ts +2 -0
- package/dist/core/tests/query/filtering.test.d.ts.map +1 -0
- package/dist/core/tests/query/query.test.d.ts +2 -0
- package/dist/core/tests/query/query.test.d.ts.map +1 -0
- package/dist/core/transports/ws.d.ts +1 -1
- package/dist/core/transports/ws.d.ts.map +1 -1
- package/dist/external/api/createUserToken.d.ts +23 -0
- package/dist/external/api/createUserToken.d.ts.map +1 -0
- package/dist/external/api/index.d.ts +2 -0
- package/dist/external/api/index.d.ts.map +1 -0
- package/dist/feed/api/queryGlobalFeed.d.ts +4 -4
- package/dist/feed/api/queryGlobalFeed.d.ts.map +1 -1
- package/dist/file/api/createFile.d.ts +2 -1
- package/dist/file/api/createFile.d.ts.map +1 -1
- package/dist/file/api/createImage.d.ts +17 -0
- package/dist/file/api/createImage.d.ts.map +1 -0
- package/dist/file/api/createVideo.d.ts +1 -0
- package/dist/file/api/createVideo.d.ts.map +1 -1
- package/dist/file/api/getFile.d.ts +1 -1
- package/dist/file/api/index.d.ts +1 -0
- package/dist/file/api/index.d.ts.map +1 -1
- package/dist/follow/api/follow.d.ts.map +1 -1
- package/dist/follow/api/getFollowInfo.d.ts.map +1 -1
- package/dist/follow/api/queryFollowers.d.ts +4 -4
- package/dist/follow/api/queryFollowers.d.ts.map +1 -1
- package/dist/follow/api/queryFollowings.d.ts +4 -4
- package/dist/follow/api/queryFollowings.d.ts.map +1 -1
- package/dist/follow/api/utils.d.ts +4 -4
- package/dist/follow/api/utils.d.ts.map +1 -1
- package/dist/follow/events/utils.d.ts.map +1 -1
- package/dist/index.cjs.js +20229 -14222
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +20194 -14213
- package/dist/index.umd.js +4 -19
- package/dist/message/api/createMessage.d.ts +2 -2
- package/dist/message/api/createMessage.d.ts.map +1 -1
- package/dist/message/api/updateMessage.d.ts +2 -2
- package/dist/message/api/updateMessage.d.ts.map +1 -1
- package/dist/message/events/onMessageUpdated.d.ts.map +1 -1
- package/dist/poll/api/closePoll.d.ts +16 -0
- package/dist/poll/api/closePoll.d.ts.map +1 -0
- package/dist/poll/api/createPoll.d.ts +25 -0
- package/dist/poll/api/createPoll.d.ts.map +1 -0
- package/dist/poll/api/deletePoll.d.ts +16 -0
- package/dist/poll/api/deletePoll.d.ts.map +1 -0
- package/dist/poll/api/getPoll.d.ts +32 -0
- package/dist/poll/api/getPoll.d.ts.map +1 -0
- package/dist/poll/api/index.d.ts +6 -0
- package/dist/poll/api/index.d.ts.map +1 -0
- package/dist/poll/api/votePoll.d.ts +17 -0
- package/dist/poll/api/votePoll.d.ts.map +1 -0
- package/dist/poll/events/index.d.ts +3 -0
- package/dist/poll/events/index.d.ts.map +1 -0
- package/dist/poll/events/onPollDeleted.d.ts +17 -0
- package/dist/poll/events/onPollDeleted.d.ts.map +1 -0
- package/dist/poll/events/onPollUpdated.d.ts +17 -0
- package/dist/poll/events/onPollUpdated.d.ts.map +1 -0
- package/dist/poll/observers/index.d.ts +2 -0
- package/dist/poll/observers/index.d.ts.map +1 -0
- package/dist/poll/observers/observePoll.d.ts +18 -0
- package/dist/poll/observers/observePoll.d.ts.map +1 -0
- package/dist/post/api/approvePost.d.ts +17 -0
- package/dist/post/api/approvePost.d.ts.map +1 -0
- package/dist/post/api/declinePost.d.ts +17 -0
- package/dist/post/api/declinePost.d.ts.map +1 -0
- package/dist/post/api/getPost.d.ts +1 -1
- package/dist/post/api/index.d.ts +2 -0
- package/dist/post/api/index.d.ts.map +1 -1
- package/dist/post/api/queryPosts.d.ts +1 -12
- package/dist/post/api/queryPosts.d.ts.map +1 -1
- package/dist/post/observers/index.d.ts +1 -0
- package/dist/post/observers/index.d.ts.map +1 -1
- package/dist/post/observers/livePosts.d.ts +22 -0
- package/dist/post/observers/livePosts.d.ts.map +1 -0
- package/dist/post/observers/observePosts.d.ts.map +1 -1
- package/dist/post/tests/api/getPost.test.d.ts +2 -0
- package/dist/post/tests/api/getPost.test.d.ts.map +1 -0
- package/dist/post/tests/api/queryPosts.test.d.ts +2 -0
- package/dist/post/tests/api/queryPosts.test.d.ts.map +1 -0
- package/dist/reaction/api/index.d.ts +1 -0
- package/dist/reaction/api/index.d.ts.map +1 -1
- package/dist/reaction/api/queryReactions.d.ts +19 -0
- package/dist/reaction/api/queryReactions.d.ts.map +1 -0
- package/dist/reaction/events/index.d.ts +3 -0
- package/dist/reaction/events/index.d.ts.map +1 -1
- package/dist/reaction/events/onReactionAdded.d.ts.map +1 -1
- package/dist/reaction/events/onReactorAdded.d.ts +19 -0
- package/dist/reaction/events/onReactorAdded.d.ts.map +1 -0
- package/dist/reaction/events/onReactorRemoved.d.ts +19 -0
- package/dist/reaction/events/onReactorRemoved.d.ts.map +1 -0
- package/dist/reaction/observers/index.d.ts +2 -0
- package/dist/reaction/observers/index.d.ts.map +1 -0
- package/dist/reaction/observers/liveReactions.d.ts +22 -0
- package/dist/reaction/observers/liveReactions.d.ts.map +1 -0
- package/dist/reaction/utils/index.d.ts +1 -0
- package/dist/reaction/utils/index.d.ts.map +1 -1
- package/dist/reaction/utils/prepareMessagePayloadForCache.d.ts +3 -0
- package/dist/reaction/utils/prepareMessagePayloadForCache.d.ts.map +1 -0
- package/dist/report/api/createReport.d.ts.map +1 -1
- package/dist/report/api/deleteReport.d.ts.map +1 -1
- package/dist/role/api/queryRoles.d.ts +4 -4
- package/dist/role/api/queryRoles.d.ts.map +1 -1
- package/dist/stream/api/queryStreams.d.ts +6 -6
- package/dist/stream/api/queryStreams.d.ts.map +1 -1
- package/dist/user/api/updateUser.d.ts +1 -1
- package/dist/user/api/updateUser.d.ts.map +1 -1
- package/dist/user/events/index.d.ts +1 -0
- package/dist/user/events/index.d.ts.map +1 -1
- package/dist/user/events/onUserDeleted.d.ts +17 -0
- package/dist/user/events/onUserDeleted.d.ts.map +1 -0
- package/dist/user/observers/observeUser.d.ts +1 -1
- package/dist/user/observers/observeUser.d.ts.map +1 -1
- package/dist/utils/constants.d.ts +3 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/env.d.ts.map +1 -1
- package/dist/utils/tests/client.d.ts +3 -0
- package/dist/utils/tests/client.d.ts.map +1 -0
- package/dist/utils/tests/dummy.d.ts +8 -0
- package/dist/utils/tests/dummy.d.ts.map +1 -0
- package/dist/utils/tests/index.d.ts +3 -0
- package/dist/utils/tests/index.d.ts.map +1 -0
- package/jest.config.ts +15 -0
- package/package.json +22 -17
- package/src/@types/core/events.ts +16 -10
- package/src/@types/core/live.ts +28 -0
- package/src/@types/core/model.ts +6 -0
- package/src/@types/core/paging.ts +1 -1
- package/src/@types/core/payload.ts +19 -7
- package/src/@types/domains/channel.ts +1 -2
- package/src/@types/domains/comment.ts +32 -0
- package/src/@types/domains/content.ts +7 -1
- package/src/@types/domains/follow.ts +3 -1
- package/src/@types/domains/message.ts +11 -1
- package/src/@types/domains/poll.ts +32 -0
- package/src/@types/domains/post.ts +38 -1
- package/src/@types/domains/reaction.ts +26 -9
- package/src/@types/domains/user.ts +2 -0
- package/src/@types/index.ts +3 -0
- package/src/category/api/getCategory.ts +45 -7
- package/src/category/api/queryCategories.ts +70 -13
- package/src/channel/api/addChannelMembers.ts +2 -1
- package/src/channel/api/banChannelMembers.ts +41 -0
- package/src/channel/api/deleteChannel.ts +0 -1
- package/src/channel/api/index.ts +3 -0
- package/src/channel/api/queryChannelMembers.ts +4 -4
- package/src/channel/api/queryChannels.ts +3 -0
- package/src/channel/api/removeChannelMembers.ts +2 -1
- package/src/channel/api/unbanChannelMembers.ts +41 -0
- package/src/channel/api/updateChannel.ts +1 -1
- package/src/channel/events/index.ts +2 -2
- package/src/channel/events/{onMemberAdded.ts → onChannelMemberAdded.ts} +8 -6
- package/src/channel/events/{onMemberRemoved.ts → onChannelMemberRemoved.ts} +13 -6
- package/src/channel/observers/observeChannel.ts +8 -4
- package/src/client/api/connectClient.ts +28 -16
- package/src/comment/api/queryComments.ts +8 -11
- package/src/comment/observers/index.ts +1 -0
- package/src/comment/observers/liveComments.ts +172 -0
- package/src/comment/observers/observeComments.ts +1 -11
- package/src/community/api/{addCommunityMembersRole.ts → addCommunityMembersRoles.ts} +11 -10
- package/src/community/api/index.ts +2 -3
- package/src/community/api/{removeCommunityMembersRole.ts → removeCommunityMembersRoles.ts} +11 -10
- package/src/core/model/idResolvers.ts +3 -0
- package/src/core/model/identifyModel.ts +21 -0
- package/src/core/model/index.ts +3 -0
- package/src/core/query/paging.ts +3 -3
- package/src/core/query/query.ts +32 -1
- package/src/core/subscription.ts +17 -4
- package/src/core/tests/query/filtering.test.ts +11 -0
- package/src/core/tests/query/query.test.ts +19 -0
- package/src/external/api/createUserToken.ts +43 -0
- package/src/external/api/index.ts +1 -0
- package/src/file/api/createFile.ts +6 -5
- package/src/file/api/createImage.ts +58 -0
- package/src/file/api/createVideo.ts +23 -18
- package/src/file/api/getFile.ts +1 -1
- package/src/file/api/index.ts +1 -0
- package/src/follow/api/acceptFollower.ts +1 -1
- package/src/follow/api/declineFollower.ts +1 -1
- package/src/follow/api/follow.ts +1 -4
- package/src/follow/api/getFollowInfo.ts +8 -5
- package/src/follow/api/queryFollowers.ts +5 -4
- package/src/follow/api/queryFollowings.ts +5 -4
- package/src/follow/api/unfollow.ts +1 -1
- package/src/follow/api/utils.ts +10 -10
- package/src/follow/events/utils.ts +9 -6
- package/src/index.ts +10 -0
- package/src/message/api/createMessage.ts +30 -8
- package/src/message/api/updateMessage.ts +2 -2
- package/src/message/events/onMessageUpdated.ts +9 -1
- package/src/poll/api/closePoll.ts +42 -0
- package/src/poll/api/createPoll.ts +45 -0
- package/src/poll/api/deletePoll.ts +39 -0
- package/src/poll/api/getPoll.ts +64 -0
- package/src/poll/api/index.ts +7 -0
- package/src/poll/api/votePoll.ts +44 -0
- package/src/poll/events/index.ts +2 -0
- package/src/poll/events/onPollDeleted.ts +31 -0
- package/src/poll/events/onPollUpdated.ts +31 -0
- package/src/poll/observers/index.ts +1 -0
- package/src/poll/observers/observePoll.ts +67 -0
- package/src/post/api/approvePost.ts +48 -0
- package/src/post/api/declinePost.ts +48 -0
- package/src/post/api/getPost.ts +1 -1
- package/src/post/api/index.ts +3 -0
- package/src/post/api/queryPosts.ts +3 -12
- package/src/post/observers/index.ts +1 -0
- package/src/post/observers/livePosts.ts +170 -0
- package/src/post/observers/observePosts.ts +1 -13
- package/src/post/tests/api/getPost.test.ts +88 -0
- package/src/post/tests/api/queryPosts.test.ts +23 -0
- package/src/reaction/api/index.ts +1 -0
- package/src/reaction/api/queryReactions.ts +52 -0
- package/src/reaction/events/index.ts +4 -0
- package/src/reaction/events/onReactionAdded.ts +4 -0
- package/src/reaction/events/onReactorAdded.ts +80 -0
- package/src/reaction/events/onReactorRemoved.ts +85 -0
- package/src/reaction/observers/index.ts +1 -0
- package/src/reaction/observers/liveReactions.ts +142 -0
- package/src/reaction/utils/index.ts +1 -0
- package/src/reaction/utils/prepareMessagePayloadForCache.ts +40 -0
- package/src/report/api/createReport.ts +7 -1
- package/src/report/api/deleteReport.ts +7 -1
- package/src/user/api/updateUser.ts +4 -1
- package/src/user/events/index.ts +1 -0
- package/src/user/events/onUserDeleted.ts +19 -0
- package/src/user/events/utils.ts +1 -1
- package/src/user/observers/observeUser.ts +9 -2
- package/src/utils/constants.ts +2 -0
- package/src/utils/env.ts +3 -1
- package/src/utils/tests/client.ts +5 -0
- package/src/utils/tests/dummy.ts +7 -0
- package/src/utils/tests/index.ts +2 -0
- package/tsconfig.json +23 -22
- package/dist/channel/events/onMemberAdded.d.ts +0 -17
- package/dist/channel/events/onMemberAdded.d.ts.map +0 -1
- package/dist/channel/events/onMemberRemoved.d.ts +0 -17
- package/dist/channel/events/onMemberRemoved.d.ts.map +0 -1
- package/dist/community/api/addCommunityMembersRole.d.ts +0 -18
- package/dist/community/api/addCommunityMembersRole.d.ts.map +0 -1
- package/dist/community/api/removeCommunityMembersRole.d.ts +0 -18
- package/dist/community/api/removeCommunityMembersRole.d.ts.map +0 -1
|
@@ -4,17 +4,15 @@ declare global {
|
|
|
4
4
|
namespace Amity {
|
|
5
5
|
type ReactableType = 'message' | 'post' | 'comment';
|
|
6
6
|
|
|
7
|
-
type
|
|
7
|
+
type ReactionActionType = 'onAdded' | 'onRemoved';
|
|
8
|
+
|
|
9
|
+
type Reactor = {
|
|
8
10
|
reactionId: string;
|
|
9
|
-
userId: string;
|
|
10
11
|
reactionName: string;
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
userId: Amity.User['userId'];
|
|
13
|
+
} & Amity.CreatedAt;
|
|
13
14
|
|
|
14
|
-
type
|
|
15
|
-
reactions: Record<string, number>;
|
|
16
|
-
count: number;
|
|
17
|
-
};
|
|
15
|
+
type Reaction = Amity.Reactor & Amity.Relationship<ReactableType>;
|
|
18
16
|
|
|
19
17
|
type Reactable = {
|
|
20
18
|
reactionsCount: number;
|
|
@@ -22,8 +20,27 @@ declare global {
|
|
|
22
20
|
myReactions?: string[];
|
|
23
21
|
|
|
24
22
|
latestReaction?: Amity.Reaction & {
|
|
25
|
-
eventName: '
|
|
23
|
+
eventName: 'add' | 'remove';
|
|
24
|
+
userDisplayName: string;
|
|
26
25
|
};
|
|
27
26
|
};
|
|
27
|
+
|
|
28
|
+
type ReactionQuery = {
|
|
29
|
+
reactors: Reactor[];
|
|
30
|
+
} & Amity.Relationship<ReactableType>;
|
|
31
|
+
|
|
32
|
+
type QueryReactions = {
|
|
33
|
+
referenceId: Amity.Reaction['referenceId'];
|
|
34
|
+
referenceType: Amity.Reaction['referenceType'];
|
|
35
|
+
reactionName?: Amity.Reaction['reactionName'];
|
|
36
|
+
page?: Amity.Page<string>;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
type ReactionLiveCollection = Amity.LiveCollectionParams<Omit<QueryReactions, 'page'>>;
|
|
40
|
+
|
|
41
|
+
type ReactionLiveCollectionCache = Amity.LiveCollectionCache<
|
|
42
|
+
Amity.Reactor['reactionId'],
|
|
43
|
+
Pick<QueryReactions, 'page'>
|
|
44
|
+
>;
|
|
28
45
|
}
|
|
29
46
|
}
|
|
@@ -7,12 +7,14 @@ declare global {
|
|
|
7
7
|
userId: string;
|
|
8
8
|
displayName?: string;
|
|
9
9
|
avatarFileId?: Amity.File<'image'>['fileId'];
|
|
10
|
+
avatarCustomUrl?: string;
|
|
10
11
|
description?: string;
|
|
11
12
|
} & Amity.Metadata &
|
|
12
13
|
Amity.Taggable &
|
|
13
14
|
Amity.Flaggable &
|
|
14
15
|
Amity.Accredited &
|
|
15
16
|
Amity.Timestamps &
|
|
17
|
+
Amity.SoftDelete &
|
|
16
18
|
Amity.Subscribable;
|
|
17
19
|
}
|
|
18
20
|
}
|
package/src/@types/index.ts
CHANGED
|
@@ -8,6 +8,7 @@ import './core/events'; // sdk events definitions
|
|
|
8
8
|
import './core/paging'; // createQuery, runQuery
|
|
9
9
|
import './core/query'; // createQuery, runQuery
|
|
10
10
|
import './core/cache'; // cache.pull('user', ...)
|
|
11
|
+
import './core/live';
|
|
11
12
|
|
|
12
13
|
// domains
|
|
13
14
|
import './domains/client'; // client definition
|
|
@@ -32,3 +33,5 @@ import './domains/comment';
|
|
|
32
33
|
import './domains/stream';
|
|
33
34
|
|
|
34
35
|
import './domains/mention';
|
|
36
|
+
|
|
37
|
+
import './domains/poll';
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { getActiveClient } from '~/client/api/activeClient';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
import { pullFromCache, dropFromCache } from '~/cache/api';
|
|
4
|
+
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* ```js
|
|
7
8
|
* import { getCategory } from '@amityco/ts-sdk'
|
|
8
|
-
* const category = await getCategory('foo')
|
|
9
|
+
* const { data: category } = await getCategory('foo')
|
|
9
10
|
* ```
|
|
10
11
|
*
|
|
11
12
|
* Fetches a {@link Amity.Category} object
|
|
@@ -16,17 +17,54 @@ import { getActiveClient } from '~/client/api/activeClient';
|
|
|
16
17
|
* @category Category API
|
|
17
18
|
* @async
|
|
18
19
|
*/
|
|
19
|
-
export const getCategory = async (
|
|
20
|
+
export const getCategory = async (
|
|
21
|
+
categoryId: Amity.Category['categoryId'],
|
|
22
|
+
): Promise<Amity.Cached<Amity.Category>> => {
|
|
20
23
|
const client = getActiveClient();
|
|
21
24
|
client.log('category/getCategory', categoryId);
|
|
22
25
|
|
|
23
26
|
const { data } = await client.http.get<Amity.CategoryPayload>(
|
|
24
|
-
`/api/v3/community-categories/${categoryId}`,
|
|
27
|
+
`/api/v3/community-categories/${encodeURIComponent(categoryId)}`,
|
|
25
28
|
);
|
|
26
29
|
|
|
27
|
-
|
|
28
|
-
|
|
30
|
+
const cachedAt = client.cache && Date.now();
|
|
31
|
+
if (client.cache) ingestInCache(data, { cachedAt });
|
|
29
32
|
|
|
30
33
|
const { categories } = data;
|
|
31
|
-
|
|
34
|
+
|
|
35
|
+
return {
|
|
36
|
+
data: categories.find(category => category.categoryId === categoryId)!,
|
|
37
|
+
cachedAt,
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* ```js
|
|
43
|
+
* import { getCategory } from '@amityco/ts-sdk'
|
|
44
|
+
* const { data: category } = getCategory.locally('foobar')
|
|
45
|
+
* ```
|
|
46
|
+
*
|
|
47
|
+
* Fetches a {@link Amity.Category} object from cache
|
|
48
|
+
*
|
|
49
|
+
* @param categoryId the ID of the {@link Amity.Category} to fetch
|
|
50
|
+
* @returns the associated {@link Amity.Category} object
|
|
51
|
+
*
|
|
52
|
+
* @category Category API
|
|
53
|
+
*/
|
|
54
|
+
getCategory.locally = (
|
|
55
|
+
categoryId: Amity.Category['categoryId'],
|
|
56
|
+
): Amity.Cached<Amity.Category> | undefined => {
|
|
57
|
+
const client = getActiveClient();
|
|
58
|
+
client.log('category/getCategory.locally', categoryId);
|
|
59
|
+
|
|
60
|
+
if (!client.cache) return;
|
|
61
|
+
|
|
62
|
+
const cached = pullFromCache<Amity.Category>(['category', 'get', categoryId]);
|
|
63
|
+
|
|
64
|
+
if (!cached) return;
|
|
65
|
+
|
|
66
|
+
return {
|
|
67
|
+
data: cached.data,
|
|
68
|
+
cachedAt: cached.cachedAt,
|
|
69
|
+
};
|
|
32
70
|
};
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { getActiveClient } from '~/client/api/activeClient';
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
|
|
3
|
+
import { toToken, toPage } from '~/core/query';
|
|
4
|
+
|
|
5
|
+
import { pullFromCache, pushToCache } from '~/cache/api';
|
|
6
|
+
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
7
|
+
import { getResolver } from '~/core/model';
|
|
5
8
|
|
|
6
9
|
/**
|
|
7
10
|
* ```js
|
|
8
11
|
* import { queryCategories } from '@amityco/ts-sdk'
|
|
9
|
-
* const categories = await queryCategories()
|
|
12
|
+
* const { data: categories, prevPage, nextPage } = await queryCategories()
|
|
10
13
|
* ```
|
|
11
14
|
*
|
|
12
15
|
* Queries a paginable list of {@link Amity.Category} objects
|
|
@@ -14,18 +17,18 @@ import { toPage, toToken } from '~/core/query';
|
|
|
14
17
|
* @param query The query parameters
|
|
15
18
|
* @returns A page of {@link Amity.Category} objects
|
|
16
19
|
*
|
|
17
|
-
* @category
|
|
20
|
+
* @category Category API
|
|
18
21
|
* @async
|
|
19
22
|
* */
|
|
20
23
|
export const queryCategories = async (query?: {
|
|
21
24
|
sortBy?: 'lastCreated' | 'firstCreated' | 'name';
|
|
22
25
|
isDeleted?: Amity.Category['isDeleted'];
|
|
23
26
|
page?: Amity.Page;
|
|
24
|
-
}) => {
|
|
27
|
+
}): Promise<Amity.Cached<Amity.Paged<Amity.Category, Amity.Page>>> => {
|
|
25
28
|
const client = getActiveClient();
|
|
26
29
|
client.log('category/queryCategories', query);
|
|
27
30
|
|
|
28
|
-
const { page, ...params } = query ?? {};
|
|
31
|
+
const { page = { limit: 10 }, ...params } = query ?? {};
|
|
29
32
|
|
|
30
33
|
const { data } = await client.http.get<Amity.CategoryPayload & Amity.Pagination>(
|
|
31
34
|
`/api/v3/community-categories`,
|
|
@@ -39,14 +42,68 @@ export const queryCategories = async (query?: {
|
|
|
39
42
|
},
|
|
40
43
|
);
|
|
41
44
|
|
|
42
|
-
const { paging, ...
|
|
45
|
+
const { paging, ...payload } = data;
|
|
46
|
+
const { categories } = payload;
|
|
47
|
+
|
|
48
|
+
const cachedAt = client.cache && Date.now();
|
|
49
|
+
|
|
50
|
+
if (client.cache) {
|
|
51
|
+
ingestInCache(payload as Amity.CategoryPayload, { cachedAt });
|
|
52
|
+
|
|
53
|
+
const cacheKey = [
|
|
54
|
+
'category',
|
|
55
|
+
'query',
|
|
56
|
+
{ ...params, options: { ...page } } as Amity.Serializable,
|
|
57
|
+
];
|
|
58
|
+
pushToCache(cacheKey, { categories: categories.map(getResolver('category')), paging });
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const nextPage = toPage(paging.next);
|
|
62
|
+
const prevPage = toPage(paging.previous);
|
|
63
|
+
|
|
64
|
+
return { data: categories, cachedAt, prevPage, nextPage };
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* ```js
|
|
69
|
+
* import { queryCategories } from '@amityco/ts-sdk'
|
|
70
|
+
* const { data: categories, prevPage, nextPage } = queryCategories.locally()
|
|
71
|
+
* ```
|
|
72
|
+
*
|
|
73
|
+
* Queries a paginable list of {@link Amity.Category} objects from cache
|
|
74
|
+
*
|
|
75
|
+
* @param query The query parameters
|
|
76
|
+
* @returns categories
|
|
77
|
+
*
|
|
78
|
+
* @category category API
|
|
79
|
+
*/
|
|
80
|
+
queryCategories.locally = (
|
|
81
|
+
query: Parameters<typeof queryCategories>[0],
|
|
82
|
+
): Amity.Cached<Amity.Paged<Amity.Category, Amity.Page>> | undefined => {
|
|
83
|
+
const client = getActiveClient();
|
|
84
|
+
client.log('category/queryCategories.locally', query);
|
|
85
|
+
|
|
86
|
+
if (!client.cache) return;
|
|
87
|
+
|
|
88
|
+
const { page = { limit: 10 }, ...params } = query ?? {};
|
|
89
|
+
|
|
90
|
+
const queryKey = ['category', 'query', { ...params, options: { ...page } } as Amity.Serializable];
|
|
91
|
+
const { data, cachedAt } =
|
|
92
|
+
pullFromCache<{ categories: Pick<Amity.Category, 'categoryId'>[] } & Amity.Pagination>(
|
|
93
|
+
queryKey,
|
|
94
|
+
) ?? {};
|
|
95
|
+
|
|
96
|
+
if (!data?.categories.length) return;
|
|
43
97
|
|
|
44
|
-
|
|
45
|
-
|
|
98
|
+
const categories: Amity.Category[] = data.categories
|
|
99
|
+
.map(categoryId => pullFromCache<Amity.Category>(['category', 'get', categoryId])!)
|
|
100
|
+
.filter(Boolean)
|
|
101
|
+
.map(({ data }) => data);
|
|
46
102
|
|
|
47
|
-
const prevPage = toPage(paging
|
|
48
|
-
const nextPage = toPage(paging
|
|
103
|
+
const prevPage = toPage(data?.paging.previous);
|
|
104
|
+
const nextPage = toPage(data?.paging.next);
|
|
49
105
|
|
|
50
|
-
|
|
51
|
-
|
|
106
|
+
return categories.length === data?.categories?.length
|
|
107
|
+
? { data: categories, cachedAt, prevPage, nextPage }
|
|
108
|
+
: undefined;
|
|
52
109
|
};
|
|
@@ -33,7 +33,8 @@ export const addChannelMembers = async (
|
|
|
33
33
|
if (client.cache) ingestInCache(data);
|
|
34
34
|
|
|
35
35
|
fireEvent('v3.channel.didAddUsers', {
|
|
36
|
-
channels: data.channels
|
|
36
|
+
channels: data.channels,
|
|
37
|
+
channelUsers: data.channelUsers,
|
|
37
38
|
});
|
|
38
39
|
|
|
39
40
|
const { channelUsers } = data;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { getActiveClient } from '~/client/api/activeClient';
|
|
2
|
+
|
|
3
|
+
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* ```js
|
|
7
|
+
* import { banChannelMembers } from '@amityco/ts-sdk'
|
|
8
|
+
*
|
|
9
|
+
* await banChannelMembers('channel-id-1', ['userId1', 'userId2'])
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* @param channelId of {@link Amity.Channel} from which the users should be banned
|
|
13
|
+
* @param userIds of the {@link Amity.User}'s to be banned
|
|
14
|
+
* @returns the updated {@link Amity.Membership}'s object
|
|
15
|
+
*
|
|
16
|
+
* @category Channel API
|
|
17
|
+
* @async
|
|
18
|
+
* */
|
|
19
|
+
export const banChannelMembers = async (
|
|
20
|
+
channelId: Amity.Channel['channelId'],
|
|
21
|
+
userIds: Amity.User['userId'][],
|
|
22
|
+
): Promise<Amity.Cached<Amity.Membership<'channel'>[]>> => {
|
|
23
|
+
const client = getActiveClient();
|
|
24
|
+
client.log('channel/banChannelMembers', { userIds, channelId });
|
|
25
|
+
|
|
26
|
+
const payload = await client.http.put<Amity.ChannelPayload>(
|
|
27
|
+
`/api/v3/channels/${channelId}/users/ban`,
|
|
28
|
+
{
|
|
29
|
+
userIds,
|
|
30
|
+
},
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
const cachedAt = client.cache && Date.now();
|
|
34
|
+
if (client.cache) ingestInCache(payload.data, { cachedAt });
|
|
35
|
+
|
|
36
|
+
const { channelUsers } = payload.data;
|
|
37
|
+
return {
|
|
38
|
+
data: channelUsers?.filter(user => user.membership === 'banned')!,
|
|
39
|
+
cachedAt,
|
|
40
|
+
};
|
|
41
|
+
};
|
|
@@ -22,7 +22,6 @@ export const deleteChannel = async (
|
|
|
22
22
|
const client = getActiveClient();
|
|
23
23
|
client.log('channel/deleteChannel', channelId);
|
|
24
24
|
|
|
25
|
-
// API-FIX: This endpoint has not been implemented yet.
|
|
26
25
|
await client.http.delete<{ success: boolean }>(
|
|
27
26
|
`/api/v3/channels/${encodeURIComponent(channelId)}`,
|
|
28
27
|
);
|
package/src/channel/api/index.ts
CHANGED
|
@@ -19,22 +19,22 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
|
19
19
|
* */
|
|
20
20
|
export const queryChannelMembers = async (query: {
|
|
21
21
|
channelId: string;
|
|
22
|
-
|
|
22
|
+
memberships?: ('muted' | 'banned' | 'member')[];
|
|
23
23
|
roles?: string[];
|
|
24
24
|
sortBy?: 'firstCreated' | 'lastCreated';
|
|
25
|
+
search?: string;
|
|
25
26
|
page?: Amity.Page;
|
|
26
27
|
}): Promise<Amity.Cached<Amity.Paged<Amity.Membership<'channel'>>>> => {
|
|
27
28
|
const client = getActiveClient();
|
|
28
29
|
client.log('channel/queryChannelMembers', query);
|
|
29
30
|
|
|
30
|
-
const { page, channelId,
|
|
31
|
+
const { page, channelId, ...params } = query ?? {};
|
|
31
32
|
|
|
32
33
|
const { data } = await client.http.get<Amity.ChannelMembershipPayload & Amity.Pagination>(
|
|
33
|
-
`/api/
|
|
34
|
+
`/api/v4/channels/${encodeURIComponent(channelId)}/users`,
|
|
34
35
|
{
|
|
35
36
|
params: {
|
|
36
37
|
...params,
|
|
37
|
-
filter: membership,
|
|
38
38
|
options: {
|
|
39
39
|
token: toToken(page, 'skiplimit'),
|
|
40
40
|
},
|
|
@@ -25,6 +25,9 @@ export const queryChannels = async (query?: {
|
|
|
25
25
|
membership?: 'all' | 'member' | 'notMember';
|
|
26
26
|
sortBy?: 'displayName' | 'firstCreated' | 'lastCreated';
|
|
27
27
|
types?: Amity.ChannelType;
|
|
28
|
+
isDeleted?: Amity.Channel['isDeleted'];
|
|
29
|
+
tags?: Amity.Taggable['tags'];
|
|
30
|
+
excludeTags?: Amity.Taggable['tags'];
|
|
28
31
|
page?: Amity.Page;
|
|
29
32
|
}): Promise<Amity.Cached<Amity.Paged<Amity.Channel>>> => {
|
|
30
33
|
const client = getActiveClient();
|
|
@@ -33,7 +33,8 @@ export const removeChannelMembers = async (
|
|
|
33
33
|
if (client.cache) ingestInCache(data);
|
|
34
34
|
|
|
35
35
|
fireEvent('v3.channel.didRemoveUsers', {
|
|
36
|
-
channels: data.channels
|
|
36
|
+
channels: data.channels,
|
|
37
|
+
channelUsers: data.channelUsers,
|
|
37
38
|
});
|
|
38
39
|
|
|
39
40
|
const { channelUsers } = data;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { getActiveClient } from '~/client/api/activeClient';
|
|
2
|
+
|
|
3
|
+
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* ```js
|
|
7
|
+
* import { unbanChannelMembers } from '@amityco/ts-sdk'
|
|
8
|
+
*
|
|
9
|
+
* await unbanChannelMembers('channel-id-1', ['userId1', 'userId2'])
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* @param channelId of {@link Amity.Channel} where the users should be unbanned
|
|
13
|
+
* @param userIds of the {@link Amity.User}'s to be unbanned
|
|
14
|
+
* @returns the updated {@link Amity.Membership}'s object
|
|
15
|
+
*
|
|
16
|
+
* @category Channel API
|
|
17
|
+
* @async
|
|
18
|
+
* */
|
|
19
|
+
export const unbanChannelMembers = async (
|
|
20
|
+
channelId: Amity.Channel['channelId'],
|
|
21
|
+
userIds: Amity.User['userId'][],
|
|
22
|
+
): Promise<Amity.Cached<Amity.Membership<'channel'>[]>> => {
|
|
23
|
+
const client = getActiveClient();
|
|
24
|
+
client.log('channel/unbanChannelMembers', { userIds, channelId });
|
|
25
|
+
|
|
26
|
+
const payload = await client.http.put<Amity.ChannelPayload>(
|
|
27
|
+
`/api/v3/channels/${encodeURIComponent(channelId)}/users/unban`,
|
|
28
|
+
{
|
|
29
|
+
userIds,
|
|
30
|
+
},
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
const cachedAt = client.cache && Date.now();
|
|
34
|
+
if (client.cache) ingestInCache(payload.data, { cachedAt });
|
|
35
|
+
|
|
36
|
+
const { channelUsers } = payload.data;
|
|
37
|
+
return {
|
|
38
|
+
data: channelUsers?.filter(user => user.membership === 'member')!,
|
|
39
|
+
cachedAt,
|
|
40
|
+
};
|
|
41
|
+
};
|
|
@@ -19,7 +19,7 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
|
19
19
|
*/
|
|
20
20
|
export const updateChannel = async (
|
|
21
21
|
channelId: Amity.Channel['channelId'],
|
|
22
|
-
patch: Patch<Amity.Channel, 'displayName' | '
|
|
22
|
+
patch: Patch<Amity.Channel, 'displayName' | 'avatarFileId' | 'tags' | 'metadata'>,
|
|
23
23
|
): Promise<Amity.Cached<Amity.Channel>> => {
|
|
24
24
|
const client = getActiveClient();
|
|
25
25
|
client.log('channel/updateChannel', channelId, patch);
|
|
@@ -2,5 +2,5 @@ export * from './onChannelUpdated';
|
|
|
2
2
|
export * from './onChannelDeleted';
|
|
3
3
|
export * from './onChannelJoined';
|
|
4
4
|
export * from './onChannelLeft';
|
|
5
|
-
export * from './
|
|
6
|
-
export * from './
|
|
5
|
+
export * from './onChannelMemberAdded';
|
|
6
|
+
export * from './onChannelMemberRemoved';
|
|
@@ -5,8 +5,8 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* ```js
|
|
8
|
-
* import {
|
|
9
|
-
* const dispose =
|
|
8
|
+
* import { onChannelMemberAdded } from '@amityco/ts-sdk'
|
|
9
|
+
* const dispose = onChannelMemberAdded((channel, member) => {
|
|
10
10
|
* // ...
|
|
11
11
|
* })
|
|
12
12
|
* ```
|
|
@@ -18,13 +18,15 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
|
18
18
|
*
|
|
19
19
|
* @category Channel Events
|
|
20
20
|
*/
|
|
21
|
-
export const
|
|
21
|
+
export const onChannelMemberAdded = (
|
|
22
|
+
callback: (channel: Amity.Channel, member: Amity.Membership<'channel'>) => void,
|
|
23
|
+
) => {
|
|
22
24
|
const client = getActiveClient();
|
|
23
25
|
|
|
24
|
-
const filter = (payload: Amity.
|
|
26
|
+
const filter = (payload: Amity.ChannelMembershipPayload) => {
|
|
25
27
|
ingestInCache(payload);
|
|
26
|
-
callback(payload.channels[0]);
|
|
28
|
+
callback(payload.channels[0], payload.channelUsers[0]);
|
|
27
29
|
};
|
|
28
30
|
|
|
29
|
-
return createEventSubscriber(client, '
|
|
31
|
+
return createEventSubscriber(client, 'onChannelMemberAdded', 'v3.channel.didAddUsers', filter);
|
|
30
32
|
};
|
|
@@ -5,8 +5,8 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* ```js
|
|
8
|
-
* import {
|
|
9
|
-
* const dispose =
|
|
8
|
+
* import { onChannelMemberRemoved } from '@amityco/ts-sdk'
|
|
9
|
+
* const dispose = onChannelMemberRemoved((channel, member) => {
|
|
10
10
|
* // ...
|
|
11
11
|
* })
|
|
12
12
|
* ```
|
|
@@ -18,13 +18,20 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
|
18
18
|
*
|
|
19
19
|
* @category Channel Events
|
|
20
20
|
*/
|
|
21
|
-
export const
|
|
21
|
+
export const onChannelMemberRemoved = (
|
|
22
|
+
callback: (channel: Amity.Channel, member: Amity.Membership<'channel'>) => void,
|
|
23
|
+
) => {
|
|
22
24
|
const client = getActiveClient();
|
|
23
25
|
|
|
24
|
-
const filter = (payload: Amity.
|
|
26
|
+
const filter = (payload: Amity.ChannelMembershipPayload) => {
|
|
25
27
|
ingestInCache(payload);
|
|
26
|
-
callback(payload.channels[0]);
|
|
28
|
+
callback(payload.channels[0], payload.channelUsers[0]);
|
|
27
29
|
};
|
|
28
30
|
|
|
29
|
-
return createEventSubscriber(
|
|
31
|
+
return createEventSubscriber(
|
|
32
|
+
client,
|
|
33
|
+
'onChannelMemberRemoved',
|
|
34
|
+
'v3.channel.didRemoveUsers',
|
|
35
|
+
filter,
|
|
36
|
+
);
|
|
30
37
|
};
|
|
@@ -9,8 +9,8 @@ import {
|
|
|
9
9
|
onChannelDeleted,
|
|
10
10
|
onChannelJoined,
|
|
11
11
|
onChannelLeft,
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
onChannelMemberAdded,
|
|
13
|
+
onChannelMemberRemoved,
|
|
14
14
|
} from '../events';
|
|
15
15
|
|
|
16
16
|
/**
|
|
@@ -67,8 +67,12 @@ export const observeChannel = <
|
|
|
67
67
|
onChannelDeleted(data => router({ data, loading: false, origin: 'event' }, 'onDelete')),
|
|
68
68
|
onChannelJoined(data => router({ data, loading: false, origin: 'event' }, 'onJoin')),
|
|
69
69
|
onChannelLeft(data => router({ data, loading: false, origin: 'event' }, 'onLeft')),
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
onChannelMemberAdded(data =>
|
|
71
|
+
router({ data, loading: false, origin: 'event' }, 'onMemberAdded'),
|
|
72
|
+
),
|
|
73
|
+
onChannelMemberRemoved(data =>
|
|
74
|
+
router({ data, loading: false, origin: 'event' }, 'onMemberRemoved'),
|
|
75
|
+
),
|
|
72
76
|
);
|
|
73
77
|
|
|
74
78
|
runQuery(createQuery(getChannel, channelId), result => result.data && router(result, 'onFetch'));
|
|
@@ -9,6 +9,8 @@ import { setActiveUser } from './activeUser';
|
|
|
9
9
|
|
|
10
10
|
import { getToken } from './getToken';
|
|
11
11
|
import { onClientBanned } from '../events';
|
|
12
|
+
import { getNetworkTopic, subscribeTopic } from '~/core/subscription';
|
|
13
|
+
import { onUserDeleted } from '~/user/events/onUserDeleted';
|
|
12
14
|
|
|
13
15
|
/**
|
|
14
16
|
* ```js
|
|
@@ -20,26 +22,29 @@ import { onClientBanned } from '../events';
|
|
|
20
22
|
*
|
|
21
23
|
* Connects an {@link Amity.Client} instance to ASC servers
|
|
22
24
|
*
|
|
23
|
-
* @param
|
|
24
|
-
* @param
|
|
25
|
-
* @param
|
|
26
|
-
* @param
|
|
25
|
+
* @param params the connect parameters
|
|
26
|
+
* @param params.userId the user ID for the current session
|
|
27
|
+
* @param params.displayName the user's displayName for the current session
|
|
28
|
+
* @param params.deviceId Manual override of the user's device id (for device management)
|
|
29
|
+
* @param params.authToken The authentication token - necessary when network option is set to secure
|
|
27
30
|
* @returns a success boolean if connected
|
|
28
31
|
*
|
|
29
32
|
* @category Client API
|
|
30
33
|
* @async
|
|
31
34
|
*/
|
|
32
|
-
export const connectClient = async (
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
export const connectClient = async (
|
|
36
|
+
params: {
|
|
37
|
+
userId: Amity.User['userId'];
|
|
38
|
+
displayName?: Amity.User['displayName'];
|
|
39
|
+
authToken?: string;
|
|
40
|
+
deviceId?: Amity.Device['deviceId'];
|
|
41
|
+
},
|
|
42
|
+
config?: { disableRTE: boolean },
|
|
43
|
+
): Promise<boolean> => {
|
|
38
44
|
const client = getActiveClient();
|
|
39
45
|
client.log('client/api/connectClient', { apiKey: client.apiKey, ...params });
|
|
40
46
|
|
|
41
47
|
// default values
|
|
42
|
-
params.displayName ??= params.userId;
|
|
43
48
|
params.deviceId ??= getDeviceId();
|
|
44
49
|
|
|
45
50
|
// @ts-ignore: in that particular case, typing can be
|
|
@@ -63,15 +68,22 @@ export const connectClient = async (params: {
|
|
|
63
68
|
client.ws.open();
|
|
64
69
|
});
|
|
65
70
|
|
|
66
|
-
const unsubscribe = onClientBanned(() => {
|
|
67
|
-
disconnectClient();
|
|
68
|
-
unsubscribe();
|
|
69
|
-
});
|
|
70
|
-
|
|
71
71
|
client.userId = params.userId;
|
|
72
72
|
client.accessToken = accessToken;
|
|
73
73
|
|
|
74
74
|
setActiveUser(users[0]);
|
|
75
75
|
|
|
76
|
+
if (config?.disableRTE !== true) {
|
|
77
|
+
subscribeTopic(getNetworkTopic());
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const subscriptions = [
|
|
81
|
+
onClientBanned(() => {
|
|
82
|
+
disconnectClient();
|
|
83
|
+
subscriptions.forEach(fn => fn());
|
|
84
|
+
}),
|
|
85
|
+
onUserDeleted(() => null),
|
|
86
|
+
];
|
|
87
|
+
|
|
76
88
|
return client.ws.connected;
|
|
77
89
|
};
|
|
@@ -19,19 +19,18 @@ import { getResolver } from '~/core/model';
|
|
|
19
19
|
* @category Comment API
|
|
20
20
|
* @async
|
|
21
21
|
*/
|
|
22
|
-
export const queryComments = async (
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
parentId?: Amity.Comment['commentId'] | null;
|
|
26
|
-
hasFlag?: boolean;
|
|
27
|
-
isDeleted?: Amity.Comment['isDeleted'];
|
|
28
|
-
page?: Amity.Page;
|
|
29
|
-
}): Promise<Amity.Cached<Amity.Paged<Amity.Comment>>> => {
|
|
22
|
+
export const queryComments = async (
|
|
23
|
+
query: Amity.QueryComments,
|
|
24
|
+
): Promise<Amity.Cached<Amity.Paged<Amity.Comment>>> => {
|
|
30
25
|
const client = getActiveClient();
|
|
31
26
|
client.log('comment/queryComments', query);
|
|
32
27
|
|
|
33
28
|
const { page = { limit: 10 }, ...params } = query;
|
|
34
29
|
|
|
30
|
+
const options = {
|
|
31
|
+
type: params.sortBy ? 'pagination' : undefined,
|
|
32
|
+
token: toToken(page, params.sortBy ? 'skiplimit' : 'afterbefore'),
|
|
33
|
+
};
|
|
35
34
|
// const filterByParentId = query.parentId !== undefined
|
|
36
35
|
|
|
37
36
|
// API-FIX: parameters should be querystring. (1)
|
|
@@ -43,9 +42,7 @@ export const queryComments = async (query: {
|
|
|
43
42
|
params: {
|
|
44
43
|
...params,
|
|
45
44
|
// filterByParentId, API-FIX: backend does not support this boolean LOL. what the hell seriously.
|
|
46
|
-
options
|
|
47
|
-
token: toToken(page, 'afterbefore'),
|
|
48
|
-
},
|
|
45
|
+
options,
|
|
49
46
|
},
|
|
50
47
|
},
|
|
51
48
|
);
|