@amityco/ts-sdk 7.6.1-2841ad2c.0 → 7.6.1-63bd9d56.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/dist/@types/core/events.d.ts +1 -6
- package/dist/@types/core/events.d.ts.map +1 -1
- package/dist/@types/core/payload.d.ts +1 -26
- package/dist/@types/core/payload.d.ts.map +1 -1
- package/dist/@types/domains/channel.d.ts +0 -6
- package/dist/@types/domains/channel.d.ts.map +1 -1
- package/dist/@types/domains/content.d.ts +8 -2
- package/dist/@types/domains/content.d.ts.map +1 -1
- package/dist/@types/domains/feed.d.ts +6 -1
- package/dist/@types/domains/feed.d.ts.map +1 -1
- package/dist/@types/domains/file.d.ts +3 -1
- package/dist/@types/domains/file.d.ts.map +1 -1
- package/dist/@types/domains/post.d.ts +3 -3
- package/dist/@types/domains/post.d.ts.map +1 -1
- package/dist/@types/domains/stream.d.ts +1 -9
- package/dist/@types/domains/stream.d.ts.map +1 -1
- package/dist/@types/index.d.ts +0 -1
- package/dist/@types/index.d.ts.map +1 -1
- package/dist/channelRepository/api/createChannel.d.ts +1 -3
- package/dist/channelRepository/api/createChannel.d.ts.map +1 -1
- package/dist/channelRepository/channelMembership/observers/getMembers/ChannelMemberLiveCollectionController.d.ts.map +1 -1
- package/dist/channelRepository/events/index.d.ts +1 -1
- package/dist/channelRepository/events/index.d.ts.map +1 -1
- package/dist/channelRepository/events/onChannelMuted.d.ts +2 -0
- package/dist/channelRepository/events/onChannelMuted.d.ts.map +1 -0
- package/dist/channelRepository/internalApi/getChannel.d.ts.map +1 -1
- package/dist/channelRepository/observers/getChannels/ChannelLiveCollectionController.d.ts.map +1 -1
- package/dist/client/api/login.d.ts.map +1 -1
- package/dist/communityRepository/api/getCommunity.d.ts +1 -1
- package/dist/communityRepository/api/getCommunity.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/index.d.ts.map +1 -1
- package/dist/core/subscription.d.ts +1 -2
- package/dist/core/subscription.d.ts.map +1 -1
- package/dist/feedRepository/api/index.d.ts +0 -1
- package/dist/feedRepository/api/index.d.ts.map +1 -1
- package/dist/feedRepository/api/queryGlobalFeed.d.ts +3 -0
- package/dist/feedRepository/api/queryGlobalFeed.d.ts.map +1 -1
- package/dist/feedRepository/index.d.ts +2 -1
- package/dist/feedRepository/index.d.ts.map +1 -1
- package/dist/feedRepository/observers/getCustomRankingGlobalFeed/LiveCollectionController.d.ts +13 -0
- package/dist/feedRepository/observers/getCustomRankingGlobalFeed/LiveCollectionController.d.ts.map +1 -0
- package/dist/feedRepository/observers/getCustomRankingGlobalFeed/PaginationController.d.ts +5 -0
- package/dist/feedRepository/observers/getCustomRankingGlobalFeed/PaginationController.d.ts.map +1 -0
- package/dist/feedRepository/observers/getCustomRankingGlobalFeed/QueryStreamController.d.ts +15 -0
- package/dist/feedRepository/observers/getCustomRankingGlobalFeed/QueryStreamController.d.ts.map +1 -0
- package/dist/feedRepository/observers/getCustomRankingGlobalFeed.d.ts +22 -0
- package/dist/feedRepository/observers/getCustomRankingGlobalFeed.d.ts.map +1 -0
- package/dist/feedRepository/observers/getGlobalFeed/LiveCollectionController.d.ts +13 -0
- package/dist/feedRepository/observers/getGlobalFeed/LiveCollectionController.d.ts.map +1 -0
- package/dist/feedRepository/observers/getGlobalFeed/PaginationController.d.ts +5 -0
- package/dist/feedRepository/observers/getGlobalFeed/PaginationController.d.ts.map +1 -0
- package/dist/feedRepository/observers/getGlobalFeed/QueryStreamController.d.ts +15 -0
- package/dist/feedRepository/observers/getGlobalFeed/QueryStreamController.d.ts.map +1 -0
- package/dist/feedRepository/observers/getGlobalFeed.d.ts +22 -0
- package/dist/feedRepository/observers/getGlobalFeed.d.ts.map +1 -0
- package/dist/feedRepository/observers/index.d.ts +3 -0
- package/dist/feedRepository/observers/index.d.ts.map +1 -0
- package/dist/feedRepository/observers/utils.d.ts +6 -0
- package/dist/feedRepository/observers/utils.d.ts.map +1 -0
- package/dist/fileRepository/api/index.d.ts +1 -0
- package/dist/fileRepository/api/index.d.ts.map +1 -1
- package/dist/fileRepository/api/uploadClip.d.ts +17 -0
- package/dist/fileRepository/api/uploadClip.d.ts.map +1 -0
- package/dist/index.cjs.js +7215 -7438
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +7289 -7510
- package/dist/index.umd.js +3 -3
- package/dist/liveStreamPlayer/utils/eventRegister.d.ts +1 -2
- package/dist/liveStreamPlayer/utils/eventRegister.d.ts.map +1 -1
- package/dist/messagePreview/utils/getChannelMessagePreviewWithUser.d.ts +0 -4
- package/dist/messagePreview/utils/getChannelMessagePreviewWithUser.d.ts.map +1 -1
- package/dist/messagePreview/utils/getSubChannelMessagePreviewWithUser.d.ts +1 -1
- package/dist/messageRepository/api/deleteMessage.d.ts.map +1 -1
- package/dist/messageRepository/observers/getMessage.d.ts.map +1 -1
- package/dist/messageRepository/observers/getMessages/MessageLiveCollectionController.d.ts.map +1 -1
- package/dist/messageRepository/observers/getMessages/MessageQueryStreamController.d.ts.map +1 -1
- package/dist/postRepository/api/createClipPost.d.ts +32 -0
- package/dist/postRepository/api/createClipPost.d.ts.map +1 -0
- package/dist/postRepository/api/createPost.d.ts.map +1 -1
- package/dist/postRepository/api/index.d.ts +1 -0
- package/dist/postRepository/api/index.d.ts.map +1 -1
- package/dist/postRepository/events/utils.d.ts.map +1 -1
- package/dist/postRepository/observers/getGlobalPinnedPosts/GlobalPinnedPostLiveCollectionController.d.ts.map +1 -1
- package/dist/postRepository/observers/getPinnedPosts/PinnedPostLiveCollectionController.d.ts.map +1 -1
- package/dist/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.d.ts +6 -0
- package/dist/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.d.ts.map +1 -1
- package/dist/postRepository/observers/getPosts/PostLiveCollectionController.d.ts.map +1 -1
- package/dist/postRepository/observers/utils.d.ts +13 -0
- package/dist/postRepository/observers/utils.d.ts.map +1 -0
- package/dist/postRepository/utils/payload.d.ts.map +1 -1
- package/dist/reactionRepository/api/addReaction.d.ts.map +1 -1
- package/dist/reactionRepository/api/removeReaction.d.ts.map +1 -1
- package/dist/streamRepository/api/createStream.d.ts +1 -1
- package/dist/streamRepository/api/createStream.d.ts.map +1 -1
- package/dist/streamRepository/api/index.d.ts +0 -1
- package/dist/streamRepository/api/index.d.ts.map +1 -1
- package/dist/streamRepository/api/updateStream.d.ts +1 -4
- package/dist/streamRepository/api/updateStream.d.ts.map +1 -1
- package/dist/streamRepository/events/index.d.ts +0 -2
- package/dist/streamRepository/events/index.d.ts.map +1 -1
- package/dist/streamRepository/internalApi/getStream.d.ts +2 -2
- package/dist/streamRepository/internalApi/getStream.d.ts.map +1 -1
- package/dist/streamRepository/observers/getStreamById.d.ts.map +1 -1
- package/dist/streamRepository/observers/getStreams/GetStreamsLiveCollectionController.d.ts.map +1 -1
- package/dist/utils/linkedObject/channelLinkedObject.d.ts.map +1 -1
- package/dist/utils/linkedObject/postLinkedObject.d.ts.map +1 -1
- package/dist/utils/linkedObject/streamLinkedObject.d.ts.map +1 -1
- package/dist/utils/postTypePredicate.d.ts +4 -5
- package/dist/utils/postTypePredicate.d.ts.map +1 -1
- package/dist/utils/tests/dummy/comment.d.ts +1 -1
- package/package.json +1 -1
- package/src/@types/core/events.ts +1 -10
- package/src/@types/core/payload.ts +1 -33
- package/src/@types/domains/channel.ts +0 -9
- package/src/@types/domains/content.ts +10 -0
- package/src/@types/domains/feed.ts +18 -1
- package/src/@types/domains/file.ts +5 -0
- package/src/@types/domains/post.ts +4 -4
- package/src/@types/domains/stream.ts +1 -13
- package/src/@types/index.ts +0 -1
- package/src/channelRepository/api/createChannel.ts +8 -11
- package/src/channelRepository/channelMembership/observers/getMembers/ChannelMemberLiveCollectionController.ts +0 -2
- package/src/channelRepository/events/index.ts +1 -1
- package/src/channelRepository/events/onChannelMuted.ts +39 -0
- package/src/channelRepository/internalApi/getChannel.ts +1 -0
- package/src/channelRepository/observers/getChannel.ts +2 -2
- package/src/channelRepository/observers/getChannels/ChannelLiveCollectionController.ts +2 -2
- package/src/channelRepository/utils/constructChannelObject.ts +2 -2
- package/src/client/api/login.ts +0 -2
- package/src/commentRepository/api/deleteComment.ts +6 -6
- package/src/communityRepository/api/getCommunity.ts +0 -9
- package/src/core/events.ts +1 -4
- package/src/core/model/index.ts +2 -1
- package/src/core/subscription.ts +6 -10
- package/src/feedRepository/api/index.ts +0 -1
- package/src/feedRepository/api/queryGlobalFeed.ts +6 -1
- package/src/feedRepository/index.ts +2 -1
- package/src/feedRepository/observers/getCustomRankingGlobalFeed/LiveCollectionController.ts +95 -0
- package/src/feedRepository/observers/getCustomRankingGlobalFeed/PaginationController.ts +25 -0
- package/src/feedRepository/observers/getCustomRankingGlobalFeed/QueryStreamController.ts +101 -0
- package/src/feedRepository/observers/getCustomRankingGlobalFeed.ts +56 -0
- package/src/feedRepository/observers/getGlobalFeed/LiveCollectionController.ts +91 -0
- package/src/feedRepository/observers/getGlobalFeed/PaginationController.ts +23 -0
- package/src/feedRepository/observers/getGlobalFeed/QueryStreamController.ts +99 -0
- package/src/feedRepository/observers/getGlobalFeed.ts +56 -0
- package/src/feedRepository/observers/index.ts +2 -0
- package/src/feedRepository/observers/utils.ts +85 -0
- package/src/fileRepository/api/index.ts +1 -0
- package/src/fileRepository/api/uploadClip.ts +71 -0
- package/src/index.ts +0 -2
- package/src/liveStreamPlayer/api/getPlayer.ts +1 -1
- package/src/liveStreamPlayer/utils/eventRegister.ts +1 -16
- package/src/messageRepository/api/deleteMessage.ts +0 -16
- package/src/messageRepository/observers/getMessage.ts +0 -2
- package/src/messageRepository/observers/getMessages/MessageLiveCollectionController.ts +0 -2
- package/src/messageRepository/observers/getMessages/MessageQueryStreamController.ts +0 -13
- package/src/postRepository/api/createClipPost.ts +62 -0
- package/src/postRepository/api/createPost.ts +2 -3
- package/src/postRepository/api/index.ts +2 -0
- package/src/postRepository/api/queryPosts.ts +1 -1
- package/src/postRepository/events/utils.ts +35 -1
- package/src/postRepository/observers/getGlobalPinnedPosts/GlobalPinnedPostLiveCollectionController.ts +5 -0
- package/src/postRepository/observers/getPinnedPosts/PinnedPostLiveCollectionController.ts +7 -1
- package/src/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.ts +27 -0
- package/src/postRepository/observers/getPosts/PostLiveCollectionController.ts +2 -74
- package/src/postRepository/observers/getPosts/PostPaginationController.ts +1 -1
- package/src/postRepository/observers/utils.ts +97 -0
- package/src/postRepository/utils/payload.ts +1 -37
- package/src/reactionRepository/api/addReaction.ts +1 -0
- package/src/reactionRepository/api/removeReaction.ts +1 -0
- package/src/streamRepository/api/createStream.ts +1 -4
- package/src/streamRepository/api/index.ts +0 -1
- package/src/streamRepository/api/updateStream.ts +1 -8
- package/src/streamRepository/events/index.ts +0 -2
- package/src/streamRepository/internalApi/getStream.ts +3 -3
- package/src/streamRepository/observers/getStreamById.ts +0 -2
- package/src/streamRepository/observers/getStreams/GetStreamsLiveCollectionController.ts +1 -5
- package/src/utils/linkedObject/channelLinkedObject.ts +0 -3
- package/src/utils/linkedObject/postLinkedObject.ts +8 -28
- package/src/utils/linkedObject/streamLinkedObject.ts +0 -4
- package/src/utils/postTypePredicate.ts +6 -20
- package/dist/@types/domains/liveReaction.d.ts +0 -20
- package/dist/@types/domains/liveReaction.d.ts.map +0 -1
- package/dist/channelRepository/events/onChannelSetMuted.d.ts +0 -2
- package/dist/channelRepository/events/onChannelSetMuted.d.ts.map +0 -1
- package/dist/channelRepository/events/onChannelSetUserMuted.d.ts +0 -2
- package/dist/channelRepository/events/onChannelSetUserMuted.d.ts.map +0 -1
- package/dist/channelRepository/internalApi/getMyMembership.d.ts +0 -11
- package/dist/channelRepository/internalApi/getMyMembership.d.ts.map +0 -1
- package/dist/channelRepository/observers/getMyMembership.d.ts +0 -2
- package/dist/channelRepository/observers/getMyMembership.d.ts.map +0 -1
- package/dist/feedRepository/api/getCustomRankingGlobalFeed.d.ts +0 -37
- package/dist/feedRepository/api/getCustomRankingGlobalFeed.d.ts.map +0 -1
- package/dist/liveReactionRepository/api/createReaction.d.ts +0 -20
- package/dist/liveReactionRepository/api/createReaction.d.ts.map +0 -1
- package/dist/liveReactionRepository/api/index.d.ts +0 -2
- package/dist/liveReactionRepository/api/index.d.ts.map +0 -1
- package/dist/liveReactionRepository/events/index.d.ts +0 -2
- package/dist/liveReactionRepository/events/index.d.ts.map +0 -1
- package/dist/liveReactionRepository/events/onLiveReactionCreated.d.ts +0 -17
- package/dist/liveReactionRepository/events/onLiveReactionCreated.d.ts.map +0 -1
- package/dist/liveReactionRepository/events/onLiveReactionCreatedLocal.d.ts +0 -17
- package/dist/liveReactionRepository/events/onLiveReactionCreatedLocal.d.ts.map +0 -1
- package/dist/liveReactionRepository/index.d.ts +0 -4
- package/dist/liveReactionRepository/index.d.ts.map +0 -1
- package/dist/liveReactionRepository/internalApi/createLiveReaction.d.ts +0 -20
- package/dist/liveReactionRepository/internalApi/createLiveReaction.d.ts.map +0 -1
- package/dist/liveReactionRepository/observers/getReactions.d.ts +0 -19
- package/dist/liveReactionRepository/observers/getReactions.d.ts.map +0 -1
- package/dist/liveReactionRepository/observers/index.d.ts +0 -2
- package/dist/liveReactionRepository/observers/index.d.ts.map +0 -1
- package/dist/liveReactionRepository/service/ReactionSyncEngine.d.ts +0 -26
- package/dist/liveReactionRepository/service/ReactionSyncEngine.d.ts.map +0 -1
- package/dist/liveReactionRepository/utils/ReactionSyncEngineOnLoginHandler.d.ts +0 -3
- package/dist/liveReactionRepository/utils/ReactionSyncEngineOnLoginHandler.d.ts.map +0 -1
- package/dist/streamRepository/api/editStream.d.ts +0 -18
- package/dist/streamRepository/api/editStream.d.ts.map +0 -1
- package/dist/streamRepository/events/onStreamViewerBanned.d.ts +0 -17
- package/dist/streamRepository/events/onStreamViewerBanned.d.ts.map +0 -1
- package/dist/streamRepository/events/onStreamViewerUnbanned.d.ts +0 -17
- package/dist/streamRepository/events/onStreamViewerUnbanned.d.ts.map +0 -1
- package/dist/streamRepository/internalApi/getLiveChat.d.ts +0 -16
- package/dist/streamRepository/internalApi/getLiveChat.d.ts.map +0 -1
- package/src/@types/domains/liveReaction.ts +0 -25
- package/src/channelRepository/events/onChannelSetMuted.ts +0 -48
- package/src/channelRepository/events/onChannelSetUserMuted.ts +0 -65
- package/src/channelRepository/internalApi/getMyMembership.ts +0 -37
- package/src/channelRepository/observers/getMyMembership.ts +0 -98
- package/src/feedRepository/api/getCustomRankingGlobalFeed.ts +0 -115
- package/src/liveReactionRepository/api/createReaction.ts +0 -58
- package/src/liveReactionRepository/api/index.ts +0 -1
- package/src/liveReactionRepository/events/index.ts +0 -1
- package/src/liveReactionRepository/events/onLiveReactionCreated.ts +0 -37
- package/src/liveReactionRepository/events/onLiveReactionCreatedLocal.ts +0 -29
- package/src/liveReactionRepository/index.ts +0 -3
- package/src/liveReactionRepository/internalApi/createLiveReaction.ts +0 -42
- package/src/liveReactionRepository/observers/getReactions.ts +0 -59
- package/src/liveReactionRepository/observers/index.ts +0 -1
- package/src/liveReactionRepository/service/ReactionSyncEngine.ts +0 -138
- package/src/liveReactionRepository/utils/ReactionSyncEngineOnLoginHandler.ts +0 -19
- package/src/streamRepository/api/editStream.ts +0 -51
- package/src/streamRepository/events/onStreamViewerBanned.ts +0 -58
- package/src/streamRepository/events/onStreamViewerUnbanned.ts +0 -47
- package/src/streamRepository/internalApi/getLiveChat.ts +0 -59
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { getActiveUser } from '~/client/api/activeUser';
|
|
2
|
-
import { getMyMembership as _getMyMembership } from '../internalApi/getMyMembership';
|
|
3
|
-
import { ASCApiError, ASCError } from '~/core/errors';
|
|
4
|
-
import { getActiveClient } from '~/client/api/activeClient';
|
|
5
|
-
import { isEqual } from '~/utils/isEqual';
|
|
6
|
-
import { createQuery, runQuery } from '~/core/query';
|
|
7
|
-
import {
|
|
8
|
-
UNSYNCED_OBJECT_CACHED_AT_MESSAGE,
|
|
9
|
-
UNSYNCED_OBJECT_CACHED_AT_VALUE,
|
|
10
|
-
} from '~/utils/constants';
|
|
11
|
-
import { channelMemberLinkedObject } from '~/utils/linkedObject/channelMemberLinkedObject';
|
|
12
|
-
import { onChannelMemberBanned, onChannelMemberUnbanned } from '../events';
|
|
13
|
-
import { onChannelSetUserMuted } from '../events/onChannelSetUserMuted';
|
|
14
|
-
|
|
15
|
-
export const getMyMembership = (
|
|
16
|
-
channelId: string,
|
|
17
|
-
callback: Amity.LiveObjectCallback<Amity.Membership<'channel'> | undefined>,
|
|
18
|
-
): Amity.Unsubscriber => {
|
|
19
|
-
const { _id: userId } = getActiveUser();
|
|
20
|
-
|
|
21
|
-
if (!userId)
|
|
22
|
-
throw new ASCError(
|
|
23
|
-
'The _id has not been defined in ActiveUser',
|
|
24
|
-
Amity.ClientError.UNKNOWN_ERROR,
|
|
25
|
-
Amity.ErrorLevel.ERROR,
|
|
26
|
-
);
|
|
27
|
-
|
|
28
|
-
const { log, cache } = getActiveClient();
|
|
29
|
-
|
|
30
|
-
if (!cache) {
|
|
31
|
-
console.log('This observable object need the cache data!');
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const timestamp = Date.now();
|
|
35
|
-
log(`liveMymembership(tmpid: ${timestamp}) > listen`);
|
|
36
|
-
|
|
37
|
-
const disposers: Amity.Unsubscriber[] = [];
|
|
38
|
-
|
|
39
|
-
let isUnsyncedModel = false; // for messages
|
|
40
|
-
|
|
41
|
-
let model: Amity.Membership<'channel'> | undefined;
|
|
42
|
-
|
|
43
|
-
const dispatcher = (data: Amity.LiveObject<Amity.Membership<'channel'> | undefined>) => {
|
|
44
|
-
callback({
|
|
45
|
-
...data,
|
|
46
|
-
data: data.data ? channelMemberLinkedObject(data.data) : data.data,
|
|
47
|
-
});
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
const realtimeRouter = (_: Amity.StaticInternalChannel, __: Amity.RawMembership<'channel'>) => {
|
|
51
|
-
const { data } = _getMyMembership(channelId);
|
|
52
|
-
|
|
53
|
-
if (isEqual(model, data)) return;
|
|
54
|
-
|
|
55
|
-
dispatcher({
|
|
56
|
-
loading: false,
|
|
57
|
-
data,
|
|
58
|
-
});
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
const onFetch = () => {
|
|
62
|
-
const query = createQuery(async () => _getMyMembership(channelId));
|
|
63
|
-
|
|
64
|
-
runQuery(query, ({ error, data, loading, origin, cachedAt }) => {
|
|
65
|
-
if (cachedAt === UNSYNCED_OBJECT_CACHED_AT_VALUE) {
|
|
66
|
-
dispatcher({
|
|
67
|
-
data,
|
|
68
|
-
origin,
|
|
69
|
-
loading: false,
|
|
70
|
-
error: new ASCApiError(
|
|
71
|
-
UNSYNCED_OBJECT_CACHED_AT_MESSAGE,
|
|
72
|
-
Amity.ClientError.DISALOOW_UNSYNCED_OBJECT,
|
|
73
|
-
Amity.ErrorLevel.ERROR,
|
|
74
|
-
),
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
isUnsyncedModel = true;
|
|
78
|
-
disposers.forEach(fn => fn());
|
|
79
|
-
} else if (!isUnsyncedModel) {
|
|
80
|
-
dispatcher({ loading, data, origin, error });
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
if (error) {
|
|
84
|
-
disposers.forEach(fn => fn());
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
disposers.push(onChannelMemberBanned(realtimeRouter));
|
|
90
|
-
disposers.push(onChannelMemberUnbanned(realtimeRouter));
|
|
91
|
-
disposers.push(onChannelSetUserMuted(realtimeRouter));
|
|
92
|
-
|
|
93
|
-
onFetch();
|
|
94
|
-
|
|
95
|
-
return () => {
|
|
96
|
-
disposers.forEach(fn => fn());
|
|
97
|
-
};
|
|
98
|
-
};
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { getActiveClient } from '~/client/api/activeClient';
|
|
2
|
-
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
3
|
-
import { pullFromCache, pushToCache } from '~/cache/api';
|
|
4
|
-
import { getResolver } from '~/core/model';
|
|
5
|
-
import { prepareMembershipPayload } from '~/group/utils';
|
|
6
|
-
import { LinkedObject } from '~/utils/linkedObject';
|
|
7
|
-
|
|
8
|
-
/* begin_public_function
|
|
9
|
-
id: feed.query.custom_ranking_feed
|
|
10
|
-
*/
|
|
11
|
-
/**
|
|
12
|
-
* ```js
|
|
13
|
-
* import { FeedRepository } from '@amityco/ts-sdk'
|
|
14
|
-
* const posts = await FeedRepository.getCustomRankingGlobalFeed()
|
|
15
|
-
* ```
|
|
16
|
-
*
|
|
17
|
-
* Queries a paginable list of {@link Amity.Post} objects
|
|
18
|
-
*
|
|
19
|
-
* @param query The query parameters
|
|
20
|
-
* @returns A page of {@link Amity.Post} objects
|
|
21
|
-
*
|
|
22
|
-
* @category Feed API
|
|
23
|
-
* @async
|
|
24
|
-
* */
|
|
25
|
-
export const getCustomRankingGlobalFeed = async (query?: {
|
|
26
|
-
dataTypes?: ('video' | 'image' | 'file' | 'liveStream')[];
|
|
27
|
-
limit?: number;
|
|
28
|
-
queryToken?: string;
|
|
29
|
-
}): Promise<
|
|
30
|
-
Omit<Amity.Cached<Amity.Paged<Amity.Post>> & Amity.Pagination, 'nextPage' | 'prevPage'>
|
|
31
|
-
> => {
|
|
32
|
-
const client = getActiveClient();
|
|
33
|
-
client.log('feed/getCustomRankingGlobalFeed', query);
|
|
34
|
-
|
|
35
|
-
const { queryToken, limit, ...params } = query ?? {};
|
|
36
|
-
|
|
37
|
-
const options = (() => {
|
|
38
|
-
if (queryToken) return { token: queryToken };
|
|
39
|
-
return undefined;
|
|
40
|
-
})();
|
|
41
|
-
|
|
42
|
-
const { data: queryPayload } = await client.http.get<Amity.PostPayload & Amity.Pagination>(
|
|
43
|
-
`/api/v5/me/global-feeds`,
|
|
44
|
-
{
|
|
45
|
-
params: {
|
|
46
|
-
...params,
|
|
47
|
-
limit: !queryToken ? limit : undefined,
|
|
48
|
-
options,
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
);
|
|
52
|
-
|
|
53
|
-
const { paging, ...payload } = queryPayload;
|
|
54
|
-
|
|
55
|
-
const data = prepareMembershipPayload(payload, 'communityUsers');
|
|
56
|
-
|
|
57
|
-
const { posts } = data;
|
|
58
|
-
|
|
59
|
-
const cachedAt = client.cache && Date.now();
|
|
60
|
-
|
|
61
|
-
if (client.cache) {
|
|
62
|
-
ingestInCache(data);
|
|
63
|
-
|
|
64
|
-
const cacheKey = ['customGlobalFeed', 'query', { ...params, options } as Amity.Serializable];
|
|
65
|
-
pushToCache(cacheKey, { posts: posts.map(getResolver('post')), paging });
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
return { data: posts.map(LinkedObject.post), cachedAt, paging };
|
|
69
|
-
};
|
|
70
|
-
/* end_public_function */
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* ```js
|
|
74
|
-
* import { FeedRepository } from '@amityco/ts-sdk'
|
|
75
|
-
* const posts = await FeedRepository.getCustomRankingGlobalFeed.locally()
|
|
76
|
-
* ```
|
|
77
|
-
*
|
|
78
|
-
* Queries a paginable list of {@link Amity.Post} objects from cache
|
|
79
|
-
*
|
|
80
|
-
* @param query The query parameters
|
|
81
|
-
* @returns A page of {@link Amity.Post} objects
|
|
82
|
-
*
|
|
83
|
-
* @category Feed API
|
|
84
|
-
* @async
|
|
85
|
-
* */
|
|
86
|
-
getCustomRankingGlobalFeed.locally = (
|
|
87
|
-
query?: Parameters<typeof getCustomRankingGlobalFeed>[0],
|
|
88
|
-
):
|
|
89
|
-
| Omit<Amity.Cached<Amity.Paged<Amity.Post>> & Amity.Pagination, 'nextPage' | 'prevPage'>
|
|
90
|
-
| undefined => {
|
|
91
|
-
const client = getActiveClient();
|
|
92
|
-
client.log('post/getCustomRankingGlobalFeed.locally', query);
|
|
93
|
-
|
|
94
|
-
if (!client.cache) return;
|
|
95
|
-
|
|
96
|
-
const { ...params } = query ?? {};
|
|
97
|
-
|
|
98
|
-
const queryKey = ['customGlobalFeed', 'query', { ...params } as Amity.Serializable];
|
|
99
|
-
|
|
100
|
-
const { data, cachedAt } =
|
|
101
|
-
pullFromCache<{ posts: Amity.Post['postId'][] } & Amity.Pagination>(queryKey) ?? {};
|
|
102
|
-
|
|
103
|
-
if (!data?.posts.length) return;
|
|
104
|
-
|
|
105
|
-
const posts: Amity.InternalPost[] = data.posts
|
|
106
|
-
.map(postId => pullFromCache<Amity.InternalPost>(['post', 'get', postId])!)
|
|
107
|
-
.filter(Boolean)
|
|
108
|
-
.map(({ data }) => data);
|
|
109
|
-
|
|
110
|
-
const { paging } = data;
|
|
111
|
-
|
|
112
|
-
return posts.length === data?.posts?.length
|
|
113
|
-
? { data: posts.map(LinkedObject.post), cachedAt, paging }
|
|
114
|
-
: undefined;
|
|
115
|
-
};
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { fireEvent } from '~/core/events';
|
|
2
|
-
import ReactionSyncEngine from '../service/ReactionSyncEngine';
|
|
3
|
-
|
|
4
|
-
import { getActiveClient } from '~/client/api/activeClient';
|
|
5
|
-
// TODO: confirm id
|
|
6
|
-
/* begin_public_function
|
|
7
|
-
id: live_reaction.create
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* ```js
|
|
11
|
-
* import { acceptInvitation } from '@amityco/ts-sdk'
|
|
12
|
-
* const isAccepted = await acceptInvitation(invitationId)
|
|
13
|
-
* ```
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* @param referenceId that is target post's ID linked with a livestream
|
|
17
|
-
* @param reactionName that is the reaction name
|
|
18
|
-
* @param streamId stream id
|
|
19
|
-
* @returns a success boolean if the reaction was added
|
|
20
|
-
*
|
|
21
|
-
* @category Live Reaction API
|
|
22
|
-
* @async
|
|
23
|
-
*/
|
|
24
|
-
export const createReaction = async ({
|
|
25
|
-
referenceId,
|
|
26
|
-
referenceType,
|
|
27
|
-
reactionName,
|
|
28
|
-
streamId,
|
|
29
|
-
}: Pick<Amity.CreateLiveReactionRequest, 'referenceType' | 'reactionName'> & {
|
|
30
|
-
referenceId: string;
|
|
31
|
-
streamId: string;
|
|
32
|
-
}): Promise<boolean> => {
|
|
33
|
-
const client = getActiveClient();
|
|
34
|
-
|
|
35
|
-
client.log('live_reaction/createReaction', {
|
|
36
|
-
referenceId,
|
|
37
|
-
referenceType,
|
|
38
|
-
reactionName,
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
const reactionSynceEngine = ReactionSyncEngine.getInstance();
|
|
42
|
-
|
|
43
|
-
const reaction = {
|
|
44
|
-
reactionName,
|
|
45
|
-
referencePublicId: referenceId,
|
|
46
|
-
referenceType,
|
|
47
|
-
streamId,
|
|
48
|
-
occurredAt: new Date().toISOString(),
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
reactionSynceEngine.createLiveReaction(reaction);
|
|
53
|
-
|
|
54
|
-
fireEvent('local.liveReaction.created', [{ ...reaction, userId: client.userId!, referenceId }]);
|
|
55
|
-
|
|
56
|
-
return true;
|
|
57
|
-
};
|
|
58
|
-
/* end_public_function */
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './createReaction';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './onLiveReactionCreated';
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { getActiveClient } from '~/client/api';
|
|
2
|
-
import { createEventSubscriber } from '~/core/events';
|
|
3
|
-
/**
|
|
4
|
-
* ```js
|
|
5
|
-
* import { onLiveReactionCreated } from '@amityco/ts-sdk'
|
|
6
|
-
* const dispose = onLiveReactionCreated(reactions => {
|
|
7
|
-
* // ...
|
|
8
|
-
* })
|
|
9
|
-
* ```
|
|
10
|
-
*
|
|
11
|
-
* Fired when a batch of {@link Amity.LiveReaction} has been created
|
|
12
|
-
*
|
|
13
|
-
* @param callback The function to call when the event was fired
|
|
14
|
-
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
15
|
-
*
|
|
16
|
-
* @category Live Reaction Events
|
|
17
|
-
*/
|
|
18
|
-
export const onLiveReactionCreated = (
|
|
19
|
-
callback: Amity.Listener<Amity.LiveReaction[]>,
|
|
20
|
-
): Amity.Unsubscriber => {
|
|
21
|
-
const client = getActiveClient();
|
|
22
|
-
|
|
23
|
-
const filter = (rawPayload: Amity.LiveReactionPayload) => {
|
|
24
|
-
if (rawPayload.reactions.length > 0) {
|
|
25
|
-
// TODO: check with BE if user id is internal or pulbic id
|
|
26
|
-
const filteredPayload = rawPayload.reactions.filter(({ userId }) => userId !== client.userId);
|
|
27
|
-
callback(filteredPayload);
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
return createEventSubscriber(
|
|
32
|
-
client,
|
|
33
|
-
'live_reaction/onLiveReactionCreated',
|
|
34
|
-
'liveReaction.created',
|
|
35
|
-
filter,
|
|
36
|
-
);
|
|
37
|
-
};
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { getActiveClient } from '~/client/api';
|
|
2
|
-
import { createEventSubscriber } from '~/core/events';
|
|
3
|
-
/**
|
|
4
|
-
* ```js
|
|
5
|
-
* import { onLiveReactionCreatedLocal } from '@amityco/ts-sdk'
|
|
6
|
-
* const dispose = onLiveReactionCreatedLocal(reactions => {
|
|
7
|
-
* // ...
|
|
8
|
-
* })
|
|
9
|
-
* ```
|
|
10
|
-
*
|
|
11
|
-
* Fired when a batch of {@link Amity.LiveReaction} has been created
|
|
12
|
-
*
|
|
13
|
-
* @param callback The function to call when the event was fired
|
|
14
|
-
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
15
|
-
*
|
|
16
|
-
* @category Live Reaction Events
|
|
17
|
-
*/
|
|
18
|
-
export const onLiveReactionCreatedLocal = (
|
|
19
|
-
callback: Amity.Listener<Amity.LiveReaction[]>,
|
|
20
|
-
): Amity.Unsubscriber => {
|
|
21
|
-
const client = getActiveClient();
|
|
22
|
-
|
|
23
|
-
return createEventSubscriber(
|
|
24
|
-
client,
|
|
25
|
-
'live_reaction/onLiveReactionCreated',
|
|
26
|
-
'local.liveReaction.created',
|
|
27
|
-
callback,
|
|
28
|
-
);
|
|
29
|
-
};
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { getActiveClient } from '~/client/api/activeClient';
|
|
2
|
-
// TODO: confirm id
|
|
3
|
-
/* begin_public_function
|
|
4
|
-
id: live_reaction.create
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* ```js
|
|
8
|
-
* import { acceptInvitation } from '@amityco/ts-sdk'
|
|
9
|
-
* const isAccepted = await acceptInvitation(invitationId)
|
|
10
|
-
* ```
|
|
11
|
-
*
|
|
12
|
-
* Accepts array of {@link Amity.LiveReaction} object without userId
|
|
13
|
-
*
|
|
14
|
-
* @param reactions the array of {@link Amity.LiveReaction} to create
|
|
15
|
-
// TODO: confirm what is the ids in addedIds
|
|
16
|
-
* @returns An object addedIds contains array of reaction ID
|
|
17
|
-
*
|
|
18
|
-
* @category Live Reaction API
|
|
19
|
-
* @async
|
|
20
|
-
*/
|
|
21
|
-
export const createLiveReaction = async ({
|
|
22
|
-
reactions,
|
|
23
|
-
liveStreamId,
|
|
24
|
-
}: {
|
|
25
|
-
reactions: Amity.CreateLiveReactionRequest[];
|
|
26
|
-
liveStreamId: string;
|
|
27
|
-
}): Promise<Amity.CreateLiveReactionResponse> => {
|
|
28
|
-
const client = getActiveClient();
|
|
29
|
-
|
|
30
|
-
client.log('live_reaction/addReaction', reactions);
|
|
31
|
-
|
|
32
|
-
const { data } = await client.http.post<Amity.CreateLiveReactionResponse>(
|
|
33
|
-
`/api/v1/reactions/live`,
|
|
34
|
-
{
|
|
35
|
-
liveStreamId,
|
|
36
|
-
reactions,
|
|
37
|
-
},
|
|
38
|
-
);
|
|
39
|
-
|
|
40
|
-
return data;
|
|
41
|
-
};
|
|
42
|
-
/* end_public_function */
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { ASCError } from '~/core/errors';
|
|
2
|
-
import { onLiveReactionCreated } from '../events';
|
|
3
|
-
import { getActiveClient, getActiveUser } from '~/client';
|
|
4
|
-
import { onLiveReactionCreatedLocal } from '../events/onLiveReactionCreatedLocal';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
*
|
|
8
|
-
* ```js
|
|
9
|
-
* import { getReactions } from '@amityco/ts-sdk';
|
|
10
|
-
*
|
|
11
|
-
* const unsubscribe = getReactions(response => {
|
|
12
|
-
* reactions = response.data
|
|
13
|
-
* });
|
|
14
|
-
* ```
|
|
15
|
-
*
|
|
16
|
-
* Observe live reactions {@link_Amity.LiveReaction} that have been created in a post linked with a stream
|
|
17
|
-
*
|
|
18
|
-
* @param callback the function to call when new data are available
|
|
19
|
-
* @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the events
|
|
20
|
-
*
|
|
21
|
-
* @category Live Reaction Observable
|
|
22
|
-
*/
|
|
23
|
-
// TODO: confirm return type for this observable property
|
|
24
|
-
export const getReactions = (
|
|
25
|
-
postId: string,
|
|
26
|
-
callback: Amity.Listener<Amity.LiveReaction[]>,
|
|
27
|
-
): Amity.Unsubscriber => {
|
|
28
|
-
const { _id: userId } = getActiveUser();
|
|
29
|
-
|
|
30
|
-
if (!userId)
|
|
31
|
-
throw new ASCError(
|
|
32
|
-
'The _id has not been defined in ActiveUser',
|
|
33
|
-
Amity.ClientError.UNKNOWN_ERROR,
|
|
34
|
-
Amity.ErrorLevel.ERROR,
|
|
35
|
-
);
|
|
36
|
-
|
|
37
|
-
const { log } = getActiveClient();
|
|
38
|
-
|
|
39
|
-
const timestamp = Date.now();
|
|
40
|
-
log(`getReactions(tmpid: ${timestamp}) > listen`);
|
|
41
|
-
|
|
42
|
-
const disposers: Amity.Unsubscriber[] = [];
|
|
43
|
-
|
|
44
|
-
const dispatcher = (data: Amity.LiveReaction[]) => {
|
|
45
|
-
callback(data);
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
const realtimeRouter = (data: Amity.LiveReaction[]) => {
|
|
49
|
-
const relevantReactions = data.filter(({ referenceId }) => referenceId === postId);
|
|
50
|
-
dispatcher(relevantReactions);
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
disposers.push(onLiveReactionCreated(realtimeRouter));
|
|
54
|
-
disposers.push(onLiveReactionCreatedLocal(realtimeRouter));
|
|
55
|
-
|
|
56
|
-
return () => {
|
|
57
|
-
disposers.forEach(fn => fn());
|
|
58
|
-
};
|
|
59
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './getReactions';
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import { onOffline } from '~/client/utils/onOffline';
|
|
2
|
-
import { onOnline } from '~/client/utils/onOnline';
|
|
3
|
-
import { SECOND } from '~/utils/constants';
|
|
4
|
-
import { createLiveReaction as _createLiveReaction } from '../internalApi/createLiveReaction';
|
|
5
|
-
|
|
6
|
-
class LiveReactionSyncEngine {
|
|
7
|
-
private readonly TIMER_INTERVAL_MS = 1 * SECOND;
|
|
8
|
-
|
|
9
|
-
private buffer: (Amity.CreateLiveReactionRequest & { streamId: string })[] = [];
|
|
10
|
-
|
|
11
|
-
private timer: NodeJS.Timer | undefined;
|
|
12
|
-
|
|
13
|
-
private isSyncing = false;
|
|
14
|
-
|
|
15
|
-
private connectionListener: (() => void)[] = [];
|
|
16
|
-
|
|
17
|
-
private isConnected = true;
|
|
18
|
-
|
|
19
|
-
constructor() {
|
|
20
|
-
this.addConnectionListener();
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
startReactionsSync() {
|
|
24
|
-
if (!this.timer) {
|
|
25
|
-
this.timer = setInterval(() => {
|
|
26
|
-
if (this.isConnected) this.syncLiveReactions();
|
|
27
|
-
}, this.TIMER_INTERVAL_MS);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
stopReactionsSync() {
|
|
32
|
-
if (this.timer) {
|
|
33
|
-
clearInterval(this.timer);
|
|
34
|
-
this.timer = undefined;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
createLiveReaction(liveReaction: Amity.CreateLiveReactionRequest & { streamId: string }) {
|
|
39
|
-
this.buffer.push(liveReaction);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
private addConnectionListener() {
|
|
43
|
-
if (this.connectionListener.length > 0) return;
|
|
44
|
-
this.connectionListener.push(
|
|
45
|
-
onOnline(() => {
|
|
46
|
-
this.isConnected = true;
|
|
47
|
-
}),
|
|
48
|
-
);
|
|
49
|
-
|
|
50
|
-
this.connectionListener.push(
|
|
51
|
-
onOffline(() => {
|
|
52
|
-
this.isConnected = false;
|
|
53
|
-
}),
|
|
54
|
-
);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
private removeConnectionListener() {
|
|
58
|
-
if (this.connectionListener.length > 0) {
|
|
59
|
-
this.connectionListener.forEach(listener => listener());
|
|
60
|
-
this.connectionListener = [];
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
private syncLiveReactions() {
|
|
65
|
-
if (this.isSyncing) {
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
this.isSyncing = true;
|
|
70
|
-
|
|
71
|
-
const reactions = this.buffer;
|
|
72
|
-
|
|
73
|
-
// Clear buffer
|
|
74
|
-
this.clearBuffer();
|
|
75
|
-
|
|
76
|
-
const payloads: Record<string, Amity.CreateLiveReactionRequest[]> = reactions.reduce(
|
|
77
|
-
(prev: Record<string, Amity.CreateLiveReactionRequest[]>, curr) => {
|
|
78
|
-
const { streamId, ...rest } = curr;
|
|
79
|
-
if (!prev[streamId]) {
|
|
80
|
-
// eslint-disable-next-line no-param-reassign
|
|
81
|
-
prev[streamId] = [rest];
|
|
82
|
-
} else prev[streamId].push(rest);
|
|
83
|
-
return prev;
|
|
84
|
-
},
|
|
85
|
-
{} as Record<string, Amity.CreateLiveReactionRequest[]>,
|
|
86
|
-
);
|
|
87
|
-
|
|
88
|
-
// Call server api `POST /api/v1/reactions/live` to sync live reactions
|
|
89
|
-
Object.entries(payloads).forEach(([streamId, reactions]) => {
|
|
90
|
-
_createLiveReaction({
|
|
91
|
-
liveStreamId: streamId,
|
|
92
|
-
reactions,
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
// After sending request
|
|
97
|
-
this.isSyncing = false;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
private clearBuffer() {
|
|
101
|
-
this.buffer = [];
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
// Session Management : SessionComponent
|
|
105
|
-
onSessionEstablished() {
|
|
106
|
-
this.startReactionsSync();
|
|
107
|
-
this.addConnectionListener();
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
onSessionDestroyed() {
|
|
111
|
-
// Stop timer
|
|
112
|
-
this.stopReactionsSync();
|
|
113
|
-
|
|
114
|
-
// Clear buffer
|
|
115
|
-
this.clearBuffer();
|
|
116
|
-
|
|
117
|
-
// Reset state
|
|
118
|
-
this.isSyncing = false;
|
|
119
|
-
|
|
120
|
-
// remove connection listener
|
|
121
|
-
this.removeConnectionListener();
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
onTokenExpired() {
|
|
125
|
-
this.stopReactionsSync();
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
let instance: LiveReactionSyncEngine;
|
|
130
|
-
|
|
131
|
-
export default {
|
|
132
|
-
getInstance: () => {
|
|
133
|
-
if (!instance) {
|
|
134
|
-
instance = new LiveReactionSyncEngine();
|
|
135
|
-
}
|
|
136
|
-
return instance;
|
|
137
|
-
},
|
|
138
|
-
};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { onSessionStateChange } from '~/client/events/onSessionStateChange';
|
|
2
|
-
import ReactionSyncEngine from '../service/ReactionSyncEngine';
|
|
3
|
-
|
|
4
|
-
export default () => {
|
|
5
|
-
const reactionSynceEngine = ReactionSyncEngine.getInstance();
|
|
6
|
-
reactionSynceEngine.startReactionsSync();
|
|
7
|
-
|
|
8
|
-
onSessionStateChange(state => {
|
|
9
|
-
if (state === Amity.SessionStates.ESTABLISHED) {
|
|
10
|
-
reactionSynceEngine.onSessionEstablished();
|
|
11
|
-
} else if (state === Amity.SessionStates.TOKEN_EXPIRED) {
|
|
12
|
-
reactionSynceEngine.onTokenExpired();
|
|
13
|
-
} else reactionSynceEngine.onSessionDestroyed();
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
return () => {
|
|
17
|
-
reactionSynceEngine.onSessionDestroyed();
|
|
18
|
-
};
|
|
19
|
-
};
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { getActiveClient } from '~/client/api';
|
|
2
|
-
|
|
3
|
-
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
4
|
-
import { LinkedObject } from '~/utils/linkedObject';
|
|
5
|
-
|
|
6
|
-
/* begin_public_function
|
|
7
|
-
id: stream.update
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
*
|
|
11
|
-
* ```js
|
|
12
|
-
* import { StreamRepository } from '@amityco/ts-sdk'
|
|
13
|
-
* const updated = await StreamRepository.editStream(streamId, { title: 'foobar' })
|
|
14
|
-
* ```
|
|
15
|
-
*
|
|
16
|
-
* Updates an {@link Amity.Stream}
|
|
17
|
-
*
|
|
18
|
-
* @param streamId The ID of the {@link Amity.Stream} to edit
|
|
19
|
-
* @param patch The patch data to apply
|
|
20
|
-
* @returns the updated {@link Amity.Stream} object
|
|
21
|
-
*
|
|
22
|
-
* @category Stream API
|
|
23
|
-
* @async
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
export const editStream = async (
|
|
27
|
-
streamId: Amity.Stream['streamId'],
|
|
28
|
-
patch: Patch<
|
|
29
|
-
Amity.Stream,
|
|
30
|
-
'title' | 'thumbnailFileId' | 'description' | 'metadata' | 'channelEnabled'
|
|
31
|
-
>,
|
|
32
|
-
): Promise<Amity.Cached<Amity.Stream>> => {
|
|
33
|
-
const client = getActiveClient();
|
|
34
|
-
client.log('stream/updateStream', streamId, patch);
|
|
35
|
-
|
|
36
|
-
const { data } = await client.http.put<Amity.StreamPayload>(
|
|
37
|
-
`/api/v3/video-streaming/${streamId}`,
|
|
38
|
-
patch,
|
|
39
|
-
);
|
|
40
|
-
|
|
41
|
-
const cachedAt = client.cache && Date.now();
|
|
42
|
-
if (client.cache) ingestInCache(data, { cachedAt });
|
|
43
|
-
|
|
44
|
-
const { videoStreamings } = data;
|
|
45
|
-
|
|
46
|
-
return {
|
|
47
|
-
data: LinkedObject.stream(videoStreamings.find(stream => stream.streamId === streamId)!),
|
|
48
|
-
cachedAt,
|
|
49
|
-
};
|
|
50
|
-
};
|
|
51
|
-
/* end_public_function */
|