@amityco/ts-sdk 0.0.1-beta.40 → 0.0.1-beta.42.1
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/README.md +3 -1
- package/dist/@types/core/model.d.ts +3 -1
- package/dist/@types/core/model.d.ts.map +1 -1
- package/dist/@types/domains/category.d.ts +1 -1
- package/dist/@types/domains/category.d.ts.map +1 -1
- package/dist/@types/domains/comment.d.ts +1 -1
- package/dist/@types/domains/comment.d.ts.map +1 -1
- package/dist/@types/domains/community.d.ts +1 -1
- package/dist/@types/domains/community.d.ts.map +1 -1
- package/dist/@types/domains/message.d.ts +1 -1
- package/dist/@types/domains/message.d.ts.map +1 -1
- package/dist/@types/domains/post.d.ts +1 -1
- package/dist/@types/domains/post.d.ts.map +1 -1
- package/dist/@types/domains/subChannel.d.ts +1 -1
- package/dist/@types/domains/subChannel.d.ts.map +1 -1
- package/dist/category/api/queryCategories.d.ts.map +1 -1
- package/dist/category/observers/liveCategories.d.ts.map +1 -1
- package/dist/channel/api/addChannelMembers.d.ts.map +1 -1
- package/dist/channel/api/addChannelMembersRole.d.ts.map +1 -1
- package/dist/channel/api/banChannelMembers.d.ts.map +1 -1
- package/dist/channel/api/createChannel.d.ts.map +1 -1
- package/dist/channel/api/getChannel.d.ts.map +1 -1
- package/dist/channel/api/joinChannel.d.ts.map +1 -1
- package/dist/channel/api/leaveChannel.d.ts.map +1 -1
- package/dist/channel/api/queryChannelMembers.d.ts.map +1 -1
- package/dist/channel/api/queryChannels.d.ts.map +1 -1
- package/dist/channel/api/removeChannelMembers.d.ts.map +1 -1
- package/dist/channel/api/removeChannelMembersRole.d.ts +1 -1
- package/dist/channel/api/removeChannelMembersRole.d.ts.map +1 -1
- package/dist/channel/api/startReading.d.ts +3 -3
- package/dist/channel/api/startReading.d.ts.map +1 -1
- package/dist/channel/api/stopReading.d.ts +2 -2
- package/dist/channel/api/stopReading.d.ts.map +1 -1
- package/dist/channel/api/unbanChannelMembers.d.ts.map +1 -1
- package/dist/channel/api/updateChannel.d.ts.map +1 -1
- package/dist/channel/observers/liveChannel.d.ts.map +1 -1
- package/dist/client/api/connectClient.d.ts.map +1 -1
- package/dist/client/api/disconnectClient.d.ts.map +1 -1
- package/dist/client/api/renewal.d.ts.map +1 -1
- package/dist/comment/api/createComment.d.ts.map +1 -1
- package/dist/comment/api/deleteComment.d.ts.map +1 -1
- package/dist/comment/api/getComment.d.ts.map +1 -1
- package/dist/comment/api/getComments.d.ts.map +1 -1
- package/dist/comment/api/queryComments.d.ts.map +1 -1
- package/dist/comment/api/tests/queryComments.test.d.ts +2 -0
- package/dist/comment/api/tests/queryComments.test.d.ts.map +1 -0
- package/dist/comment/api/updateComment.d.ts.map +1 -1
- package/dist/comment/observers/liveComments.d.ts.map +1 -1
- package/dist/community/api/addCommunityMembers.d.ts.map +1 -1
- package/dist/community/api/addCommunityMembersRoles.d.ts.map +1 -1
- package/dist/community/api/createCommunity.d.ts.map +1 -1
- package/dist/community/api/deleteCommunity.d.ts.map +1 -1
- package/dist/community/api/getCommunity.d.ts.map +1 -1
- package/dist/community/api/getRecommendedCommunities.d.ts.map +1 -1
- package/dist/community/api/getTopTrendingCommunities.d.ts.map +1 -1
- package/dist/community/api/joinCommunity.d.ts.map +1 -1
- package/dist/community/api/leaveCommunity.d.ts.map +1 -1
- package/dist/community/api/queryCommunities.d.ts.map +1 -1
- package/dist/community/api/queryCommunityMembers.d.ts.map +1 -1
- package/dist/community/api/removeCommunityMembers.d.ts.map +1 -1
- package/dist/community/api/removeCommunityMembersRoles.d.ts.map +1 -1
- package/dist/community/api/updateCommunity.d.ts.map +1 -1
- package/dist/community/observers/liveCommunities.d.ts.map +1 -1
- package/dist/core/model/idResolvers.d.ts.map +1 -1
- package/dist/core/model/identifyModel.d.ts.map +1 -1
- package/dist/core/model/index.d.ts +1 -1
- package/dist/core/model/index.d.ts.map +1 -1
- package/dist/core/transports/http.d.ts.map +1 -1
- package/dist/feed/api/queryGlobalFeed.d.ts.map +1 -1
- package/dist/file/api/createFile.d.ts.map +1 -1
- package/dist/file/api/createImage.d.ts.map +1 -1
- package/dist/file/api/createVideo.d.ts.map +1 -1
- package/dist/file/api/deleteFile.d.ts.map +1 -1
- package/dist/file/api/getFile.d.ts.map +1 -1
- package/dist/follow/api/acceptFollower.d.ts.map +1 -1
- package/dist/follow/api/declineFollower.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.map +1 -1
- package/dist/follow/api/queryFollowings.d.ts.map +1 -1
- package/dist/follow/api/unfollow.d.ts.map +1 -1
- package/dist/follow/observers/index.d.ts +1 -0
- package/dist/follow/observers/index.d.ts.map +1 -1
- package/dist/follow/observers/liveFollowInfo.d.ts +21 -0
- package/dist/follow/observers/liveFollowInfo.d.ts.map +1 -0
- package/dist/follow/observers/tests/liveFollowInfo.test.d.ts +2 -0
- package/dist/follow/observers/tests/liveFollowInfo.test.d.ts.map +1 -0
- package/dist/index.cjs.js +511 -109
- package/dist/index.esm.js +511 -110
- package/dist/index.umd.js +2 -2
- package/dist/message/api/createMessage.d.ts +2 -1
- package/dist/message/api/createMessage.d.ts.map +1 -1
- package/dist/message/api/deleteMessage.d.ts.map +1 -1
- package/dist/message/api/getMessage.d.ts.map +1 -1
- package/dist/message/api/queryMessages.d.ts.map +1 -1
- package/dist/message/api/updateMessage.d.ts.map +1 -1
- package/dist/message/observers/liveMessages.d.ts.map +1 -1
- package/dist/message/utils/index.d.ts +3 -2
- package/dist/message/utils/index.d.ts.map +1 -1
- package/dist/poll/api/closePoll.d.ts.map +1 -1
- package/dist/poll/api/createPoll.d.ts.map +1 -1
- package/dist/poll/api/deletePoll.d.ts.map +1 -1
- package/dist/poll/api/getPoll.d.ts.map +1 -1
- package/dist/poll/api/votePoll.d.ts.map +1 -1
- package/dist/post/api/approvePost.d.ts.map +1 -1
- package/dist/post/api/createPost.d.ts.map +1 -1
- package/dist/post/api/declinePost.d.ts.map +1 -1
- package/dist/post/api/deletePost.d.ts.map +1 -1
- package/dist/post/api/getPost.d.ts.map +1 -1
- package/dist/post/api/getPosts.d.ts.map +1 -1
- package/dist/post/api/queryPosts.d.ts.map +1 -1
- package/dist/post/api/updatePost.d.ts.map +1 -1
- package/dist/post/observers/livePosts.d.ts.map +1 -1
- package/dist/reaction/api/addReaction.d.ts.map +1 -1
- package/dist/reaction/api/queryReactions.d.ts.map +1 -1
- package/dist/reaction/api/removeReaction.d.ts.map +1 -1
- package/dist/report/api/createReport.d.ts.map +1 -1
- package/dist/report/api/deleteReport.d.ts.map +1 -1
- package/dist/report/api/isReportedByMe.d.ts.map +1 -1
- package/dist/stream/api/createStream.d.ts.map +1 -1
- package/dist/stream/api/deleteStream.d.ts.map +1 -1
- package/dist/stream/api/getStream.d.ts.map +1 -1
- package/dist/stream/api/queryStreams.d.ts.map +1 -1
- package/dist/stream/api/updateStream.d.ts.map +1 -1
- package/dist/subChannel/api/createSubChannel.d.ts.map +1 -1
- package/dist/subChannel/api/deleteSubChannel.d.ts.map +1 -1
- package/dist/subChannel/api/getSubChannel.d.ts.map +1 -1
- package/dist/subChannel/api/querySubChannels.d.ts.map +1 -1
- package/dist/subChannel/api/updateSubChannel.d.ts.map +1 -1
- package/dist/user/api/getUser.d.ts.map +1 -1
- package/dist/user/api/getUsers.d.ts.map +1 -1
- package/dist/user/api/queryUsers.d.ts.map +1 -1
- package/dist/user/api/updateUser.d.ts.map +1 -1
- package/dist/utils/liveObject.d.ts +1 -1
- package/dist/utils/liveObject.d.ts.map +1 -1
- package/dist/utils/tests/dummy/comment.d.ts +77 -0
- package/dist/utils/tests/dummy/comment.d.ts.map +1 -0
- package/dist/utils/tests/dummy/community.d.ts +1 -1
- package/dist/utils/tests/dummy/index.d.ts +1 -0
- package/dist/utils/tests/dummy/index.d.ts.map +1 -1
- package/dist/utils/tests/dummy/post.d.ts +0 -12
- package/dist/utils/tests/dummy/post.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/@types/core/model.ts +3 -1
- package/src/@types/domains/category.ts +1 -1
- package/src/@types/domains/comment.ts +1 -1
- package/src/@types/domains/community.ts +1 -1
- package/src/@types/domains/message.ts +1 -1
- package/src/@types/domains/post.ts +1 -1
- package/src/@types/domains/subChannel.ts +1 -1
- package/src/category/api/queryCategories.ts +5 -1
- package/src/category/observers/liveCategories.ts +3 -1
- package/src/category/observers/tests/liveCategories.test.ts +1 -3
- package/src/channel/api/addChannelMembers.ts +4 -0
- package/src/channel/api/addChannelMembersRole.ts +4 -0
- package/src/channel/api/banChannelMembers.ts +4 -0
- package/src/channel/api/createChannel.ts +4 -0
- package/src/channel/api/getChannel.ts +4 -0
- package/src/channel/api/joinChannel.ts +4 -0
- package/src/channel/api/leaveChannel.ts +4 -0
- package/src/channel/api/queryChannelMembers.ts +4 -0
- package/src/channel/api/queryChannels.ts +4 -0
- package/src/channel/api/removeChannelMembers.ts +4 -0
- package/src/channel/api/removeChannelMembersRole.ts +5 -1
- package/src/channel/api/startReading.ts +7 -3
- package/src/channel/api/stopReading.ts +6 -2
- package/src/channel/api/unbanChannelMembers.ts +4 -0
- package/src/channel/api/updateChannel.ts +4 -0
- package/src/channel/observers/liveChannel.ts +16 -1
- package/src/client/api/connectClient.ts +4 -0
- package/src/client/api/disconnectClient.ts +4 -0
- package/src/client/api/getToken.ts +1 -1
- package/src/client/api/renewal.ts +4 -0
- package/src/client/api/tests/getToken.test.ts +2 -2
- package/src/comment/api/createComment.ts +4 -0
- package/src/comment/api/deleteComment.ts +4 -0
- package/src/comment/api/getComment.ts +4 -0
- package/src/comment/api/getComments.ts +4 -0
- package/src/comment/api/queryComments.ts +6 -1
- package/src/comment/api/tests/createComment.test.ts +17 -112
- package/src/comment/api/tests/queryComments.test.ts +147 -0
- package/src/comment/api/tests/updateComment.test.ts +14 -85
- package/src/comment/api/updateComment.ts +4 -0
- package/src/comment/observers/liveComments.ts +3 -1
- package/src/community/api/addCommunityMembers.ts +4 -0
- package/src/community/api/addCommunityMembersRoles.ts +4 -0
- package/src/community/api/createCommunity.ts +4 -0
- package/src/community/api/deleteCommunity.ts +4 -0
- package/src/community/api/getCommunity.ts +4 -0
- package/src/community/api/getRecommendedCommunities.ts +4 -0
- package/src/community/api/getTopTrendingCommunities.ts +4 -0
- package/src/community/api/joinCommunity.ts +4 -0
- package/src/community/api/leaveCommunity.ts +4 -0
- package/src/community/api/queryCommunities.ts +6 -1
- package/src/community/api/queryCommunityMembers.ts +4 -0
- package/src/community/api/removeCommunityMembers.ts +4 -0
- package/src/community/api/removeCommunityMembersRoles.ts +4 -0
- package/src/community/api/test/queryCommunity.test.ts +30 -0
- package/src/community/api/updateCommunity.ts +4 -0
- package/src/community/observers/liveCommunities.ts +4 -1
- package/src/community/observers/tests/liveCommunities.test.ts +2 -2
- package/src/core/model/idResolvers.ts +1 -0
- package/src/core/model/identifyModel.ts +2 -1
- package/src/core/model/index.ts +11 -2
- package/src/core/transports/http.ts +5 -0
- package/src/core/transports/test/http.test.ts +12 -0
- package/src/feed/api/queryGlobalFeed.ts +4 -0
- package/src/file/api/createFile.ts +4 -0
- package/src/file/api/createImage.ts +4 -0
- package/src/file/api/createVideo.ts +4 -0
- package/src/file/api/deleteFile.ts +4 -0
- package/src/file/api/getFile.ts +4 -0
- package/src/follow/api/acceptFollower.ts +4 -0
- package/src/follow/api/declineFollower.ts +4 -0
- package/src/follow/api/follow.ts +4 -0
- package/src/follow/api/getFollowInfo.ts +8 -8
- package/src/follow/api/queryFollowers.ts +4 -0
- package/src/follow/api/queryFollowings.ts +4 -0
- package/src/follow/api/unfollow.ts +4 -0
- package/src/follow/observers/index.ts +1 -0
- package/src/follow/observers/liveFollowInfo.ts +29 -0
- package/src/follow/observers/tests/liveFollowInfo.test.ts +198 -0
- package/src/message/api/createMessage.ts +24 -7
- package/src/message/api/deleteMessage.ts +4 -0
- package/src/message/api/getMessage.ts +4 -0
- package/src/message/api/queryMessages.ts +4 -0
- package/src/message/api/tests/createMessage.test.ts +42 -2
- package/src/message/api/tests/queryMessages.test.ts +30 -0
- package/src/message/api/updateMessage.ts +4 -0
- package/src/message/observers/liveMessages.ts +14 -15
- package/src/message/tests/observers/liveMessages.test.ts +2 -2
- package/src/message/utils/index.ts +10 -1
- package/src/poll/api/closePoll.ts +4 -0
- package/src/poll/api/createPoll.ts +4 -0
- package/src/poll/api/deletePoll.ts +4 -0
- package/src/poll/api/getPoll.ts +4 -0
- package/src/poll/api/votePoll.ts +4 -0
- package/src/post/api/approvePost.ts +4 -0
- package/src/post/api/createPost.ts +4 -0
- package/src/post/api/declinePost.ts +4 -0
- package/src/post/api/deletePost.ts +4 -0
- package/src/post/api/getPost.ts +4 -0
- package/src/post/api/getPosts.ts +3 -0
- package/src/post/api/queryPosts.ts +6 -1
- package/src/post/api/tests/queryPosts.test.ts +30 -0
- package/src/post/api/updatePost.ts +4 -0
- package/src/post/observers/livePosts.ts +4 -2
- package/src/post/observers/tests/livePosts.test.ts +4 -5
- package/src/reaction/api/addReaction.ts +4 -0
- package/src/reaction/api/queryReactions.ts +4 -0
- package/src/reaction/api/removeReaction.ts +4 -0
- package/src/reaction/api/tests/addReaction.test.ts +13 -0
- package/src/reaction/api/tests/removeReaction.test.ts +13 -0
- package/src/report/api/createReport.ts +4 -0
- package/src/report/api/deleteReport.ts +4 -0
- package/src/report/api/isReportedByMe.ts +4 -0
- package/src/stream/api/createStream.ts +4 -0
- package/src/stream/api/deleteStream.ts +3 -0
- package/src/stream/api/getStream.ts +4 -0
- package/src/stream/api/queryStreams.ts +4 -0
- package/src/stream/api/updateStream.ts +3 -0
- package/src/subChannel/api/createSubChannel.ts +4 -0
- package/src/subChannel/api/deleteSubChannel.ts +4 -0
- package/src/subChannel/api/getSubChannel.ts +4 -0
- package/src/subChannel/api/querySubChannels.ts +6 -1
- package/src/subChannel/api/updateSubChannel.ts +4 -0
- package/src/subChannel/observers/liveSubChannels.ts +2 -2
- package/src/subChannel/observers/tests/liveSubChannels.test.ts +5 -2
- package/src/user/api/getUser.ts +4 -0
- package/src/user/api/getUsers.ts +3 -0
- package/src/user/api/queryUsers.ts +4 -0
- package/src/user/api/updateUser.ts +4 -0
- package/src/utils/liveObject.ts +1 -4
- package/src/utils/tests/dummy/comment.ts +268 -0
- package/src/utils/tests/dummy/index.ts +1 -0
- package/src/utils/tests/dummy/post.ts +0 -114
- package/dist/post/tests/api/getPost.test.d.ts +0 -2
- package/dist/post/tests/api/getPost.test.d.ts.map +0 -1
- package/dist/post/tests/api/queryPosts.test.d.ts +0 -2
- package/dist/post/tests/api/queryPosts.test.d.ts.map +0 -1
- package/src/post/tests/api/getPost.test.ts +0 -98
- package/src/post/tests/api/queryPosts.test.ts +0 -123
package/src/core/model/index.ts
CHANGED
|
@@ -33,8 +33,17 @@ export const PAYLOAD2MODEL: Record<string, Amity.Domain> = {
|
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
/** hidden */
|
|
36
|
-
export const hasUpdates = (prevData:
|
|
37
|
-
|
|
36
|
+
export const hasUpdates = <T extends Amity.Model>(prevData: T, nextData: T): boolean => {
|
|
37
|
+
if ('updatedAt' in prevData && 'updatedAt' in nextData) {
|
|
38
|
+
return new Date(prevData.updatedAt!) < new Date(nextData.updatedAt!);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/*
|
|
42
|
+
* hasUpdates is used to identify the latest object among many. If the object
|
|
43
|
+
* does not extend ${Amity.UpdatedAt}, then there is no way to differentiate.
|
|
44
|
+
* So it is considered by default that the object hasUpdates
|
|
45
|
+
*/
|
|
46
|
+
return true;
|
|
38
47
|
};
|
|
39
48
|
|
|
40
49
|
/** hidden */
|
|
@@ -38,6 +38,11 @@ export const createHttpTransport = (endpoint: string) => {
|
|
|
38
38
|
});
|
|
39
39
|
|
|
40
40
|
instance.interceptors.request.use(config => {
|
|
41
|
+
// do not check expiration for token creation url
|
|
42
|
+
if (config.url === '/api/v4/sessions') {
|
|
43
|
+
return config;
|
|
44
|
+
}
|
|
45
|
+
|
|
41
46
|
// check global.ts for the extension of AxiosRequestConfig
|
|
42
47
|
const tokenExpiry = config.metadata?.tokenExpiry;
|
|
43
48
|
|
|
@@ -3,6 +3,7 @@ import nock from 'nock';
|
|
|
3
3
|
import { ASCApiError, ASCUnknownError } from '~/core/errors';
|
|
4
4
|
import { createFileFormData } from '~/utils/tests';
|
|
5
5
|
|
|
6
|
+
import { getPastDate } from '~/core/model';
|
|
6
7
|
import { createHttpTransport } from '../http';
|
|
7
8
|
|
|
8
9
|
const baseUrl = 'https://non-exist.domain';
|
|
@@ -68,5 +69,16 @@ describe('core/transports', () => {
|
|
|
68
69
|
|
|
69
70
|
await expect(instance.post('/foo', formData)).resolves.not.toThrow();
|
|
70
71
|
});
|
|
72
|
+
|
|
73
|
+
test('should not check token expiration for token creation url', async () => {
|
|
74
|
+
const expectedResolveValue = { foo: 'bar' };
|
|
75
|
+
nock(baseUrl).get('/api/v4/sessions').reply(200, expectedResolveValue);
|
|
76
|
+
|
|
77
|
+
const instance = createHttpTransport(baseUrl);
|
|
78
|
+
instance.defaults.metadata = { tokenExpiry: getPastDate() };
|
|
79
|
+
|
|
80
|
+
const expected = expect.objectContaining({ data: expectedResolveValue });
|
|
81
|
+
await expect(instance.get('/api/v4/sessions')).resolves.toEqual(expected);
|
|
82
|
+
});
|
|
71
83
|
});
|
|
72
84
|
});
|
|
@@ -6,6 +6,9 @@ import { pullFromCache, pushToCache } from '~/cache/api';
|
|
|
6
6
|
import { getResolver } from '~/core/model';
|
|
7
7
|
import { prepareMembershipPayload } from '~/group/utils';
|
|
8
8
|
|
|
9
|
+
/* begin_public_function
|
|
10
|
+
id: feed.query.global_feed
|
|
11
|
+
*/
|
|
9
12
|
/**
|
|
10
13
|
* ```js
|
|
11
14
|
* import { queryGlobalFeed } from '@amityco/ts-sdk'
|
|
@@ -66,6 +69,7 @@ export const queryGlobalFeed = async (query?: {
|
|
|
66
69
|
|
|
67
70
|
return { data: posts, cachedAt, prevPage, nextPage };
|
|
68
71
|
};
|
|
72
|
+
/* end_public_function */
|
|
69
73
|
|
|
70
74
|
/**
|
|
71
75
|
* ```js
|
|
@@ -2,6 +2,9 @@ import { getActiveClient } from '~/client/api';
|
|
|
2
2
|
|
|
3
3
|
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
4
4
|
|
|
5
|
+
/* begin_public_function
|
|
6
|
+
id: file.upload.file
|
|
7
|
+
*/
|
|
5
8
|
/**
|
|
6
9
|
* ```js
|
|
7
10
|
* import { createFile } from '@amityco/ts-sdk'
|
|
@@ -50,5 +53,6 @@ export const createFile = async <T extends Amity.FileType = any>(
|
|
|
50
53
|
cachedAt,
|
|
51
54
|
};
|
|
52
55
|
};
|
|
56
|
+
/* end_public_function */
|
|
53
57
|
|
|
54
58
|
// TODO: consider doing local creation with URL.createObjectURL()
|
|
@@ -2,6 +2,9 @@ import { getActiveClient } from '~/client/api';
|
|
|
2
2
|
|
|
3
3
|
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
4
4
|
|
|
5
|
+
/* begin_public_function
|
|
6
|
+
id: file.upload.image
|
|
7
|
+
*/
|
|
5
8
|
/**
|
|
6
9
|
* ```js
|
|
7
10
|
* import { createImage } from '@amityco/ts-sdk'
|
|
@@ -54,5 +57,6 @@ export const createImage = async (
|
|
|
54
57
|
cachedAt,
|
|
55
58
|
};
|
|
56
59
|
};
|
|
60
|
+
/* end_public_function */
|
|
57
61
|
|
|
58
62
|
// TODO: consider doing local creation with URL.createObjectURL()
|
|
@@ -2,6 +2,9 @@ import { getActiveClient } from '~/client/api';
|
|
|
2
2
|
|
|
3
3
|
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
4
4
|
|
|
5
|
+
/* begin_public_function
|
|
6
|
+
id: file.upload.video
|
|
7
|
+
*/
|
|
5
8
|
/**
|
|
6
9
|
* ```js
|
|
7
10
|
* import { createVideo } from '@amityco/ts-sdk'
|
|
@@ -60,5 +63,6 @@ export const createVideo = async (
|
|
|
60
63
|
cachedAt,
|
|
61
64
|
};
|
|
62
65
|
};
|
|
66
|
+
/* end_public_function */
|
|
63
67
|
|
|
64
68
|
// TODO: consider doing local creation with URL.createObjectURL()
|
|
@@ -2,6 +2,9 @@ import { getActiveClient } from '~/client/api';
|
|
|
2
2
|
|
|
3
3
|
import { dropFromCache } from '~/cache/api';
|
|
4
4
|
|
|
5
|
+
/* begin_public_function
|
|
6
|
+
id: file.delete
|
|
7
|
+
*/
|
|
5
8
|
/**
|
|
6
9
|
* ```js
|
|
7
10
|
* import { deleteFile } from '@amityco/ts-sdk'
|
|
@@ -29,3 +32,4 @@ export const deleteFile = async (
|
|
|
29
32
|
|
|
30
33
|
return { success: true };
|
|
31
34
|
};
|
|
35
|
+
/* end_public_function */
|
package/src/file/api/getFile.ts
CHANGED
|
@@ -3,6 +3,9 @@ import { getActiveClient } from '~/client/api';
|
|
|
3
3
|
import { pullFromCache } from '~/cache/api';
|
|
4
4
|
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
5
5
|
|
|
6
|
+
/* begin_public_function
|
|
7
|
+
id: file.get
|
|
8
|
+
*/
|
|
6
9
|
/**
|
|
7
10
|
* ```js
|
|
8
11
|
* import { getFile } from '@amityco/ts-sdk'
|
|
@@ -36,6 +39,7 @@ export const getFile = async <T extends Amity.FileType = any>(
|
|
|
36
39
|
cachedAt,
|
|
37
40
|
};
|
|
38
41
|
};
|
|
42
|
+
/* end_public_function */
|
|
39
43
|
|
|
40
44
|
/**
|
|
41
45
|
* ```js
|
|
@@ -2,6 +2,9 @@ import { getActiveClient } from '~/client/api';
|
|
|
2
2
|
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
3
3
|
import { fireEvent } from '~/core/events';
|
|
4
4
|
|
|
5
|
+
/* begin_public_function
|
|
6
|
+
id: user.relationship.accept_follow
|
|
7
|
+
*/
|
|
5
8
|
/**
|
|
6
9
|
* ```js
|
|
7
10
|
* import { acceptFollower } from '@amityco/ts-sdk'
|
|
@@ -32,3 +35,4 @@ export const acceptFollower = async (userId: Amity.User['userId']): Promise<bool
|
|
|
32
35
|
|
|
33
36
|
return true;
|
|
34
37
|
};
|
|
38
|
+
/* end_public_function */
|
|
@@ -2,6 +2,9 @@ import { getActiveClient } from '~/client/api';
|
|
|
2
2
|
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
3
3
|
import { fireEvent } from '~/core/events';
|
|
4
4
|
|
|
5
|
+
/* begin_public_function
|
|
6
|
+
id: user.relationship.decline_follow
|
|
7
|
+
*/
|
|
5
8
|
/**
|
|
6
9
|
* ```js
|
|
7
10
|
* import { declineFollower } from '@amityco/ts-sdk'
|
|
@@ -32,3 +35,4 @@ export const declineFollower = async (userId: Amity.User['userId']): Promise<boo
|
|
|
32
35
|
|
|
33
36
|
return true;
|
|
34
37
|
};
|
|
38
|
+
/* end_public_function */
|
package/src/follow/api/follow.ts
CHANGED
|
@@ -2,6 +2,9 @@ import { getActiveClient } from '~/client/api';
|
|
|
2
2
|
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
3
3
|
import { fireEvent } from '~/core/events';
|
|
4
4
|
|
|
5
|
+
/* begin_public_function
|
|
6
|
+
id: user.relationship.follow
|
|
7
|
+
*/
|
|
5
8
|
/**
|
|
6
9
|
* ```js
|
|
7
10
|
* import { follow } from '@amityco/ts-sdk'
|
|
@@ -39,3 +42,4 @@ export const follow = async (
|
|
|
39
42
|
cachedAt,
|
|
40
43
|
};
|
|
41
44
|
};
|
|
45
|
+
/* end_public_function */
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { getActiveClient } from '~/client/api';
|
|
2
2
|
import { pullFromCache, pushToCache } from '~/cache/api';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
`${getActiveClient().userId}#${userId}`,
|
|
8
|
-
];
|
|
9
|
-
|
|
4
|
+
/* begin_public_function
|
|
5
|
+
id: user.relationship.get_follow_info, user.relationship.get_my_follow_info
|
|
6
|
+
*/
|
|
10
7
|
/**
|
|
11
8
|
* ```js
|
|
12
9
|
* import { getFollowInfo } from '@amityco/ts-sdk'
|
|
@@ -41,7 +38,9 @@ export const getFollowInfo = async (
|
|
|
41
38
|
: data.followCounts[0];
|
|
42
39
|
|
|
43
40
|
if (client.cache) {
|
|
44
|
-
pushToCache(
|
|
41
|
+
pushToCache(['followInfo', 'get', userId], followInfo, {
|
|
42
|
+
cachedAt,
|
|
43
|
+
});
|
|
45
44
|
}
|
|
46
45
|
|
|
47
46
|
return {
|
|
@@ -49,6 +48,7 @@ export const getFollowInfo = async (
|
|
|
49
48
|
cachedAt,
|
|
50
49
|
};
|
|
51
50
|
};
|
|
51
|
+
/* end_public_function */
|
|
52
52
|
|
|
53
53
|
/**
|
|
54
54
|
* ```js
|
|
@@ -73,7 +73,7 @@ getFollowInfo.locally = (
|
|
|
73
73
|
return;
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
const cached = pullFromCache<Amity.FollowInfo>(
|
|
76
|
+
const cached = pullFromCache<Amity.FollowInfo>(['followInfo', 'get', userId]);
|
|
77
77
|
|
|
78
78
|
if (!cached) {
|
|
79
79
|
return;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { queryFollows } from './utils';
|
|
2
2
|
|
|
3
|
+
/* begin_public_function
|
|
4
|
+
id: user.relationship.query_my_followers, user.relationship.query_followers
|
|
5
|
+
*/
|
|
3
6
|
/**
|
|
4
7
|
* ```js
|
|
5
8
|
* import { queryFollowers } from '@amityco/ts-sdk'
|
|
@@ -18,6 +21,7 @@ export const queryFollowers = async (
|
|
|
18
21
|
query: Amity.QueryFollowers,
|
|
19
22
|
): Promise<Amity.Cached<Amity.Paged<Amity.FollowStatus, Amity.PageRaw>>> =>
|
|
20
23
|
queryFollows('followers', query);
|
|
24
|
+
/* end_public_function */
|
|
21
25
|
|
|
22
26
|
/**
|
|
23
27
|
* ```js
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { queryFollows } from './utils';
|
|
2
2
|
|
|
3
|
+
/* begin_public_function
|
|
4
|
+
id: user.relationship.query_my_followings, user.relationship.query_followings
|
|
5
|
+
*/
|
|
3
6
|
/**
|
|
4
7
|
* ```js
|
|
5
8
|
* import { queryFollowings } from '@amityco/ts-sdk'
|
|
@@ -18,6 +21,7 @@ export const queryFollowings = async (
|
|
|
18
21
|
query: Amity.QueryFollowings,
|
|
19
22
|
): Promise<Amity.Cached<Amity.Paged<Amity.FollowStatus, Amity.PageRaw>>> =>
|
|
20
23
|
queryFollows('following', query);
|
|
24
|
+
/* end_public_function */
|
|
21
25
|
|
|
22
26
|
/**
|
|
23
27
|
* ```js
|
|
@@ -2,6 +2,9 @@ import { getActiveClient } from '~/client/api';
|
|
|
2
2
|
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
3
3
|
import { fireEvent } from '~/core/events';
|
|
4
4
|
|
|
5
|
+
/* begin_public_function
|
|
6
|
+
id: user.relationship.unfollow
|
|
7
|
+
*/
|
|
5
8
|
/**
|
|
6
9
|
* ```js
|
|
7
10
|
* import { unfollow } from '@amityco/ts-sdk'
|
|
@@ -32,3 +35,4 @@ export const unfollow = async (userId: Amity.User['userId']): Promise<boolean> =
|
|
|
32
35
|
|
|
33
36
|
return true;
|
|
34
37
|
};
|
|
38
|
+
/* end_public_function */
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { liveObject } from '~/utils/liveObject';
|
|
2
|
+
import { getFollowInfo } from '../api';
|
|
3
|
+
import { onFollowInfoUpdated } from '../events';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* ```js
|
|
7
|
+
* import { liveFollowInfo } from '@amityco/ts-sdk';
|
|
8
|
+
*
|
|
9
|
+
* let followInfo;
|
|
10
|
+
*
|
|
11
|
+
* const unsubscribe = liveFollowInfo(userId, response => {
|
|
12
|
+
* followInfo = response.data;
|
|
13
|
+
* });
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* Observe all mutation on a given {@link Amity.FollowCount} object
|
|
17
|
+
*
|
|
18
|
+
* @param userId the ID of the current user
|
|
19
|
+
* @param callback the function to call when new data are available
|
|
20
|
+
* @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing
|
|
21
|
+
*
|
|
22
|
+
* @category FollowInfo Live Object
|
|
23
|
+
*/
|
|
24
|
+
export const liveFollowInfo = (
|
|
25
|
+
userId: Amity.FollowInfo['userId'],
|
|
26
|
+
callback: Amity.LiveObjectCallback<Amity.FollowInfo>,
|
|
27
|
+
): Amity.Unsubscriber => {
|
|
28
|
+
return liveObject(userId, callback, 'userId', getFollowInfo, [onFollowInfoUpdated]);
|
|
29
|
+
};
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { disableCache, enableCache } from '~/cache/api';
|
|
2
|
+
import {
|
|
3
|
+
client,
|
|
4
|
+
connectClient,
|
|
5
|
+
disconnectClient,
|
|
6
|
+
follow21,
|
|
7
|
+
follow11,
|
|
8
|
+
user11,
|
|
9
|
+
pause,
|
|
10
|
+
date,
|
|
11
|
+
} from '~/utils/tests';
|
|
12
|
+
|
|
13
|
+
import { liveFollowInfo } from '../liveFollowInfo';
|
|
14
|
+
|
|
15
|
+
const FOLLOWING_COUNT = 2;
|
|
16
|
+
const getFollowInfoMePayload = ({
|
|
17
|
+
userId = user11.userId,
|
|
18
|
+
followerCount = 0,
|
|
19
|
+
pendingCount = 0,
|
|
20
|
+
followingCount = FOLLOWING_COUNT,
|
|
21
|
+
} = {}): Amity.FollowInfoMePayload => {
|
|
22
|
+
return {
|
|
23
|
+
followCounts: [
|
|
24
|
+
{
|
|
25
|
+
userId,
|
|
26
|
+
followerCount,
|
|
27
|
+
pendingCount,
|
|
28
|
+
followingCount,
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const getFollowMeStatusPayload = (
|
|
35
|
+
status: Amity.FollowStatus['status'] = follow11.status,
|
|
36
|
+
): Amity.FollowStatusPayload => {
|
|
37
|
+
return {
|
|
38
|
+
follows: [
|
|
39
|
+
{
|
|
40
|
+
from: follow11.from,
|
|
41
|
+
to: follow11.to,
|
|
42
|
+
status,
|
|
43
|
+
createdAt: date,
|
|
44
|
+
updatedAt: date,
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const getFollowStatusPayload = (
|
|
51
|
+
status: Amity.FollowStatus['status'] = follow21.status,
|
|
52
|
+
): Amity.FollowStatusPayload => {
|
|
53
|
+
return {
|
|
54
|
+
follows: [
|
|
55
|
+
{
|
|
56
|
+
from: follow21.from,
|
|
57
|
+
to: follow21.to,
|
|
58
|
+
status,
|
|
59
|
+
createdAt: date,
|
|
60
|
+
updatedAt: date,
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
describe('liveFollowInfo > me', () => {
|
|
67
|
+
beforeAll(connectClient);
|
|
68
|
+
afterAll(disconnectClient);
|
|
69
|
+
|
|
70
|
+
beforeEach(enableCache);
|
|
71
|
+
afterEach(disableCache);
|
|
72
|
+
|
|
73
|
+
const tests: [
|
|
74
|
+
string,
|
|
75
|
+
keyof Amity.MqttFollowEvents,
|
|
76
|
+
Amity.FollowStatusPayload,
|
|
77
|
+
Amity.FollowInfoMePayload,
|
|
78
|
+
][] = [
|
|
79
|
+
[
|
|
80
|
+
'it should update follow info collection on accepted',
|
|
81
|
+
'follow.accepted',
|
|
82
|
+
getFollowMeStatusPayload('accepted'),
|
|
83
|
+
getFollowInfoMePayload({ userId: user11.userId, followingCount: FOLLOWING_COUNT + 1 }),
|
|
84
|
+
],
|
|
85
|
+
[
|
|
86
|
+
'it should update follow info collection on unfollowed',
|
|
87
|
+
'follow.unfollowed',
|
|
88
|
+
getFollowMeStatusPayload('none'),
|
|
89
|
+
getFollowInfoMePayload({ userId: user11.userId, followingCount: FOLLOWING_COUNT - 1 }),
|
|
90
|
+
],
|
|
91
|
+
[
|
|
92
|
+
'it should update follow info collection on requestDeclined',
|
|
93
|
+
'follow.requestDeclined',
|
|
94
|
+
getFollowMeStatusPayload('none'),
|
|
95
|
+
getFollowInfoMePayload({ userId: user11.userId, followingCount: FOLLOWING_COUNT }),
|
|
96
|
+
],
|
|
97
|
+
[
|
|
98
|
+
'it should update follow info collection on followerDeleted',
|
|
99
|
+
'follow.followerDeleted',
|
|
100
|
+
getFollowMeStatusPayload('none'),
|
|
101
|
+
getFollowInfoMePayload({ userId: user11.userId, followingCount: FOLLOWING_COUNT - 1 }),
|
|
102
|
+
],
|
|
103
|
+
];
|
|
104
|
+
|
|
105
|
+
test.each(tests)('%s', async (description, event, payload, payloadFrom) => {
|
|
106
|
+
const callback = jest.fn();
|
|
107
|
+
client.http.get = jest
|
|
108
|
+
.fn()
|
|
109
|
+
.mockResolvedValue({ data: getFollowInfoMePayload() })
|
|
110
|
+
.mockResolvedValueOnce({ data: payloadFrom })
|
|
111
|
+
.mockResolvedValueOnce({ data: payloadFrom });
|
|
112
|
+
|
|
113
|
+
const unsub = liveFollowInfo(user11.userId, callback);
|
|
114
|
+
await pause();
|
|
115
|
+
|
|
116
|
+
client.emitter.emit(event, payload);
|
|
117
|
+
await pause();
|
|
118
|
+
|
|
119
|
+
expect(callback).toHaveBeenCalled();
|
|
120
|
+
|
|
121
|
+
expect(callback).toHaveBeenNthCalledWith(
|
|
122
|
+
3,
|
|
123
|
+
expect.objectContaining({
|
|
124
|
+
data: payloadFrom.followCounts[0],
|
|
125
|
+
loading: false,
|
|
126
|
+
}),
|
|
127
|
+
);
|
|
128
|
+
|
|
129
|
+
unsub();
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
describe('liveFollowInfo > other', () => {
|
|
134
|
+
beforeAll(connectClient);
|
|
135
|
+
afterAll(disconnectClient);
|
|
136
|
+
|
|
137
|
+
beforeEach(enableCache);
|
|
138
|
+
afterEach(disableCache);
|
|
139
|
+
|
|
140
|
+
const tests: [
|
|
141
|
+
string,
|
|
142
|
+
keyof Amity.MqttFollowEvents,
|
|
143
|
+
Amity.FollowStatusPayload,
|
|
144
|
+
Amity.FollowInfoMePayload,
|
|
145
|
+
][] = [
|
|
146
|
+
[
|
|
147
|
+
'it should update follow info collection on accepted',
|
|
148
|
+
'follow.accepted',
|
|
149
|
+
getFollowStatusPayload('accepted'),
|
|
150
|
+
getFollowInfoMePayload({ userId: follow21.from, followingCount: FOLLOWING_COUNT + 1 }),
|
|
151
|
+
],
|
|
152
|
+
[
|
|
153
|
+
'it should update follow info collection on unfollowed',
|
|
154
|
+
'follow.unfollowed',
|
|
155
|
+
getFollowStatusPayload('none'),
|
|
156
|
+
getFollowInfoMePayload({ userId: follow21.from, followingCount: FOLLOWING_COUNT - 1 }),
|
|
157
|
+
],
|
|
158
|
+
[
|
|
159
|
+
'it should update follow info collection on requestDeclined',
|
|
160
|
+
'follow.requestDeclined',
|
|
161
|
+
getFollowStatusPayload('none'),
|
|
162
|
+
getFollowInfoMePayload({ userId: follow21.from, followingCount: FOLLOWING_COUNT }),
|
|
163
|
+
],
|
|
164
|
+
[
|
|
165
|
+
'it should update follow info collection on followerDeleted',
|
|
166
|
+
'follow.followerDeleted',
|
|
167
|
+
getFollowStatusPayload('none'),
|
|
168
|
+
getFollowInfoMePayload({ userId: follow21.from, followingCount: FOLLOWING_COUNT - 1 }),
|
|
169
|
+
],
|
|
170
|
+
];
|
|
171
|
+
|
|
172
|
+
test.each(tests)('%s', async (description, event, payload, payloadFrom) => {
|
|
173
|
+
const callback = jest.fn();
|
|
174
|
+
client.http.get = jest
|
|
175
|
+
.fn()
|
|
176
|
+
.mockResolvedValue({ data: getFollowInfoMePayload({ userId: follow21.from }) })
|
|
177
|
+
.mockResolvedValueOnce({ data: payloadFrom })
|
|
178
|
+
.mockResolvedValueOnce({ data: payloadFrom });
|
|
179
|
+
|
|
180
|
+
const unsub = liveFollowInfo(follow21.from, callback);
|
|
181
|
+
await pause();
|
|
182
|
+
|
|
183
|
+
client.emitter.emit(event, payload);
|
|
184
|
+
await pause();
|
|
185
|
+
|
|
186
|
+
expect(callback).toHaveBeenCalled();
|
|
187
|
+
|
|
188
|
+
expect(callback).toHaveBeenNthCalledWith(
|
|
189
|
+
3,
|
|
190
|
+
expect.objectContaining({
|
|
191
|
+
data: payloadFrom.followCounts[0],
|
|
192
|
+
loading: false,
|
|
193
|
+
}),
|
|
194
|
+
);
|
|
195
|
+
|
|
196
|
+
unsub();
|
|
197
|
+
});
|
|
198
|
+
});
|
|
@@ -7,9 +7,14 @@ import { upsertInCache, pullFromCache, pushToCache, dropFromCache } from '~/cach
|
|
|
7
7
|
|
|
8
8
|
import { convertParams, prepareMessagePayload } from '../utils';
|
|
9
9
|
|
|
10
|
+
const getLocalId = () => `LOCAL_${uuid()}`;
|
|
11
|
+
|
|
10
12
|
// FIXME: temp solution
|
|
11
13
|
let uniqueId: string | undefined;
|
|
12
14
|
|
|
15
|
+
/* begin_public_function
|
|
16
|
+
id: message.create.text_message, message.create.image_message, message.create.file_message, message.create.video_message, message.create.audio_message, message.create.custom_message
|
|
17
|
+
*/
|
|
13
18
|
/**
|
|
14
19
|
* ```js
|
|
15
20
|
* import { createMessage, createQuery, runQuery } from '@amityco/ts-sdk'
|
|
@@ -39,12 +44,23 @@ export const createMessage = async <T extends Amity.MessageContentType>(
|
|
|
39
44
|
> & {
|
|
40
45
|
data?: Amity.Message<T>['data'];
|
|
41
46
|
fileId?: Amity.File['fileId'];
|
|
47
|
+
// Custom referenceId is a workaround for the case:
|
|
48
|
+
// User wants to create an image message. He should
|
|
49
|
+
// - create and show dummy message in ui
|
|
50
|
+
// - upload image to get fileId, while uploading show a spinner in dummy message in ui
|
|
51
|
+
// - call createMessage and pass fileId
|
|
52
|
+
// - replace dummy message with the actual message received from backend
|
|
53
|
+
// Custom referenceId is needed to make relation between dummy message and actual message.
|
|
54
|
+
// TODO: passing file src into createMessage so that sdk uploads files itself,
|
|
55
|
+
// returns the dummy message bound with the file to eliminate the need to create
|
|
56
|
+
// the dummy message on the user side,
|
|
57
|
+
referenceId?: string;
|
|
42
58
|
},
|
|
43
59
|
): Promise<Amity.Cached<Amity.Message>> => {
|
|
44
60
|
const client = getActiveClient();
|
|
45
61
|
client.log('message/createMessage', bundle);
|
|
46
62
|
|
|
47
|
-
const referenceId = uniqueId;
|
|
63
|
+
const referenceId = bundle.referenceId || uniqueId || getLocalId();
|
|
48
64
|
uniqueId = undefined;
|
|
49
65
|
|
|
50
66
|
const { data: payload } = await client.http.post<Amity.MessagePayload>('/api/v5/messages', {
|
|
@@ -86,9 +102,10 @@ export const createMessage = async <T extends Amity.MessageContentType>(
|
|
|
86
102
|
*
|
|
87
103
|
* @category Message API
|
|
88
104
|
*/
|
|
89
|
-
createMessage.optimistically = (
|
|
90
|
-
|
|
91
|
-
|
|
105
|
+
createMessage.optimistically = ({
|
|
106
|
+
referenceId,
|
|
107
|
+
...bundle
|
|
108
|
+
}: Parameters<typeof createMessage>[0]): Amity.Cached<Amity.Message> | undefined => {
|
|
92
109
|
const client = getActiveClient();
|
|
93
110
|
|
|
94
111
|
if (!client.cache) return;
|
|
@@ -100,9 +117,8 @@ createMessage.optimistically = (
|
|
|
100
117
|
* Updated to handle client requirement to add messageId while uploading
|
|
101
118
|
* message with image. Temporary!
|
|
102
119
|
*/
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
const bundleWithMessageId = { messageId: localId, uniqueId: localId, ...bundle };
|
|
120
|
+
uniqueId = referenceId || getLocalId();
|
|
121
|
+
const bundleWithMessageId = { messageId: uniqueId, uniqueId, ...bundle };
|
|
106
122
|
|
|
107
123
|
client.log('message/createMessage.optimistically', bundleWithMessageId);
|
|
108
124
|
|
|
@@ -148,3 +164,4 @@ createMessage.optimistically = (
|
|
|
148
164
|
data: message,
|
|
149
165
|
};
|
|
150
166
|
};
|
|
167
|
+
/* end_public_function */
|
|
@@ -4,6 +4,9 @@ import { fireEvent } from '~/core/events';
|
|
|
4
4
|
|
|
5
5
|
import { getMessage } from './getMessage';
|
|
6
6
|
|
|
7
|
+
/* begin_public_function
|
|
8
|
+
id: message.soft_delete
|
|
9
|
+
*/
|
|
7
10
|
/**
|
|
8
11
|
* ```js
|
|
9
12
|
* import { deleteMessage } from '@amityco/ts-sdk'
|
|
@@ -74,3 +77,4 @@ deleteMessage.optimistically = (
|
|
|
74
77
|
cachedAt,
|
|
75
78
|
};
|
|
76
79
|
};
|
|
80
|
+
/* end_public_function */
|
|
@@ -9,6 +9,9 @@ import { checkIfShouldGoesToTombstone } from '~/cache/utils';
|
|
|
9
9
|
import { pushToTombstone } from '~/cache/api/pushToTombstone';
|
|
10
10
|
import { convertResponseFromRaw } from '../utils';
|
|
11
11
|
|
|
12
|
+
/* begin_public_function
|
|
13
|
+
id: message.get
|
|
14
|
+
*/
|
|
12
15
|
/**
|
|
13
16
|
* ```js
|
|
14
17
|
* import { getMessage } from '@amityco/ts-sdk'
|
|
@@ -67,6 +70,7 @@ export const getMessage = async (
|
|
|
67
70
|
cachedAt,
|
|
68
71
|
};
|
|
69
72
|
};
|
|
73
|
+
/* end_public_function */
|
|
70
74
|
|
|
71
75
|
/**
|
|
72
76
|
* ```js
|
|
@@ -7,6 +7,9 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
|
7
7
|
import { getResolver } from '~/core/model';
|
|
8
8
|
import { convertQueryParams, convertResponseFromRaw } from '../utils';
|
|
9
9
|
|
|
10
|
+
/* begin_public_function
|
|
11
|
+
id: message.query
|
|
12
|
+
*/
|
|
10
13
|
/**
|
|
11
14
|
* ```js
|
|
12
15
|
* import { queryMessages } from '@amityco/ts-sdk'
|
|
@@ -58,6 +61,7 @@ export const queryMessages = async (
|
|
|
58
61
|
|
|
59
62
|
return { data: messages, cachedAt, prevPage, nextPage };
|
|
60
63
|
};
|
|
64
|
+
/* end_public_function */
|
|
61
65
|
|
|
62
66
|
/**
|
|
63
67
|
* ```js
|