@amityco/ts-sdk 6.2.0 → 6.2.1-0cf9bee.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/README.md +0 -4
- package/dist/@types/core/events.d.ts +1 -0
- package/dist/@types/core/events.d.ts.map +1 -1
- package/dist/@types/core/payload.d.ts +4 -0
- package/dist/@types/core/payload.d.ts.map +1 -1
- package/dist/@types/domains/channel.d.ts +5 -1
- package/dist/@types/domains/channel.d.ts.map +1 -1
- package/dist/@types/domains/marker.d.ts +2 -1
- package/dist/@types/domains/marker.d.ts.map +1 -1
- package/dist/channelRepsitory/api/createChannel.d.ts +1 -1
- package/dist/channelRepsitory/api/markAsRead.d.ts +1 -1
- package/dist/channelRepsitory/api/muteChannel.d.ts.map +1 -1
- package/dist/client/utils/markerSyncEngine.d.ts.map +1 -1
- package/dist/communityRepository/{communityModeration → communityMembership}/api/addMembers.d.ts.map +1 -1
- package/dist/communityRepository/communityMembership/api/index.d.ts +3 -0
- package/dist/communityRepository/communityMembership/api/index.d.ts.map +1 -0
- package/dist/communityRepository/{communityModeration → communityMembership}/api/removeMembers.d.ts.map +1 -1
- package/dist/communityRepository/communityMembership/api/tests/addMembers.test.d.ts.map +1 -0
- package/dist/communityRepository/communityMembership/api/tests/removeMembers.test.d.ts.map +1 -0
- package/dist/communityRepository/communityMembership/index.d.ts +1 -0
- package/dist/communityRepository/communityMembership/index.d.ts.map +1 -1
- package/dist/communityRepository/communityMembership/observers/getMembers.d.ts.map +1 -1
- package/dist/communityRepository/communityModeration/api/banMembers.d.ts +16 -0
- package/dist/communityRepository/communityModeration/api/banMembers.d.ts.map +1 -0
- package/dist/communityRepository/communityModeration/api/index.d.ts +2 -2
- package/dist/communityRepository/communityModeration/api/index.d.ts.map +1 -1
- package/dist/communityRepository/communityModeration/api/test/banMembers.test.d.ts +2 -0
- package/dist/communityRepository/communityModeration/api/test/banMembers.test.d.ts.map +1 -0
- package/dist/communityRepository/communityModeration/api/test/unbanMembers.test.d.ts +2 -0
- package/dist/communityRepository/communityModeration/api/test/unbanMembers.test.d.ts.map +1 -0
- package/dist/communityRepository/communityModeration/api/unbanMembers.d.ts +16 -0
- package/dist/communityRepository/communityModeration/api/unbanMembers.d.ts.map +1 -0
- package/dist/core/events.d.ts +3 -3
- package/dist/core/events.d.ts.map +1 -1
- package/dist/core/query/filtering.d.ts +1 -0
- package/dist/core/query/filtering.d.ts.map +1 -1
- package/dist/core/query/sorting.d.ts.map +1 -1
- package/dist/core/transports/mqtt.d.ts +1 -1
- package/dist/core/transports/mqtt.d.ts.map +1 -1
- package/dist/feedRepository/api/getCustomRankingGlobalFeed.d.ts +36 -0
- package/dist/feedRepository/api/getCustomRankingGlobalFeed.d.ts.map +1 -0
- package/dist/feedRepository/api/index.d.ts +1 -0
- package/dist/feedRepository/api/index.d.ts.map +1 -1
- package/dist/feedRepository/api/queryGlobalFeed.d.ts.map +1 -1
- package/dist/feedRepository/api/test/getCustomRankingGlobalFeed.test.d.ts +2 -0
- package/dist/feedRepository/api/test/getCustomRankingGlobalFeed.test.d.ts.map +1 -0
- package/dist/fileRepository/api/index.d.ts +3 -3
- package/dist/fileRepository/api/test/uploadFile.test.d.ts +2 -0
- package/dist/fileRepository/api/test/uploadFile.test.d.ts.map +1 -0
- package/dist/fileRepository/api/test/uploadImage.test.d.ts +2 -0
- package/dist/fileRepository/api/test/uploadImage.test.d.ts.map +1 -0
- package/dist/fileRepository/api/test/uploadVideo.test.d.ts +2 -0
- package/dist/fileRepository/api/test/uploadVideo.test.d.ts.map +1 -0
- package/dist/fileRepository/api/{createFile.d.ts → uploadFile.d.ts} +4 -4
- package/dist/fileRepository/api/uploadFile.d.ts.map +1 -0
- package/dist/fileRepository/api/{createImage.d.ts → uploadImage.d.ts} +4 -4
- package/dist/fileRepository/api/uploadImage.d.ts.map +1 -0
- package/dist/fileRepository/api/{createVideo.d.ts → uploadVideo.d.ts} +5 -5
- package/dist/fileRepository/api/uploadVideo.d.ts.map +1 -0
- package/dist/index.cjs.js +795 -193
- package/dist/index.esm.js +794 -194
- package/dist/index.umd.js +4 -4
- package/dist/marker/events/index.d.ts +1 -0
- package/dist/marker/events/index.d.ts.map +1 -1
- package/dist/marker/events/onFeedlMarkerUpdated.d.ts +17 -0
- package/dist/marker/events/onFeedlMarkerUpdated.d.ts.map +1 -0
- package/dist/messageRepository/api/createMessage.d.ts +1 -1
- package/dist/messageRepository/api/editMessage.d.ts +38 -0
- package/dist/messageRepository/api/editMessage.d.ts.map +1 -0
- package/dist/messageRepository/api/flagMessage.d.ts +14 -0
- package/dist/messageRepository/api/flagMessage.d.ts.map +1 -0
- package/dist/messageRepository/api/index.d.ts +5 -1
- package/dist/messageRepository/api/index.d.ts.map +1 -1
- package/dist/messageRepository/api/isMessageFlaggedByMe.d.ts +14 -0
- package/dist/messageRepository/api/isMessageFlaggedByMe.d.ts.map +1 -0
- package/dist/messageRepository/api/markAsDelivered.d.ts +2 -2
- package/dist/messageRepository/api/{deleteMessage.d.ts → softDeleteMessage.d.ts} +6 -6
- package/dist/messageRepository/api/softDeleteMessage.d.ts.map +1 -0
- package/dist/messageRepository/api/tests/editMessage.test.d.ts +2 -0
- package/dist/messageRepository/api/tests/editMessage.test.d.ts.map +1 -0
- package/dist/messageRepository/api/tests/flagMessage.test.d.ts +2 -0
- package/dist/messageRepository/api/tests/flagMessage.test.d.ts.map +1 -0
- package/dist/messageRepository/api/tests/unflagMessage.test.d.ts +2 -0
- package/dist/messageRepository/api/tests/unflagMessage.test.d.ts.map +1 -0
- package/dist/messageRepository/api/unflagMessage.d.ts +14 -0
- package/dist/messageRepository/api/unflagMessage.d.ts.map +1 -0
- package/dist/messageRepository/api/updateMessage.d.ts.map +1 -1
- package/dist/postRepository/api/deletePost.d.ts +1 -1
- package/dist/postRepository/api/deletePost.d.ts.map +1 -1
- package/dist/postRepository/api/editPost.d.ts +24 -0
- package/dist/postRepository/api/editPost.d.ts.map +1 -0
- package/dist/postRepository/api/flagPost.d.ts +14 -0
- package/dist/postRepository/api/flagPost.d.ts.map +1 -0
- package/dist/postRepository/api/hardDeletePost.d.ts +16 -0
- package/dist/postRepository/api/hardDeletePost.d.ts.map +1 -0
- package/dist/postRepository/api/index.d.ts +6 -0
- package/dist/postRepository/api/index.d.ts.map +1 -1
- package/dist/postRepository/api/isPostFlaggedByMe.d.ts +14 -0
- package/dist/postRepository/api/isPostFlaggedByMe.d.ts.map +1 -0
- package/dist/postRepository/api/softDeletePost.d.ts +16 -0
- package/dist/postRepository/api/softDeletePost.d.ts.map +1 -0
- package/dist/postRepository/api/unflagPost.d.ts +14 -0
- package/dist/postRepository/api/unflagPost.d.ts.map +1 -0
- package/dist/postRepository/api/updatePost.d.ts.map +1 -1
- package/dist/subChannelRepository/api/startReadingAPI.d.ts.map +1 -1
- package/dist/subChannelRepository/api/stopReadingAPI.d.ts.map +1 -1
- package/dist/userRepository/api/flagUser.d.ts +14 -0
- package/dist/userRepository/api/flagUser.d.ts.map +1 -0
- package/dist/userRepository/api/index.d.ts +3 -0
- package/dist/userRepository/api/index.d.ts.map +1 -1
- package/dist/userRepository/api/isUserFlaggedByMe.d.ts +14 -0
- package/dist/userRepository/api/isUserFlaggedByMe.d.ts.map +1 -0
- package/dist/userRepository/{relationship/block/api → api}/queryBlockedUsers.d.ts +2 -2
- package/dist/userRepository/api/queryBlockedUsers.d.ts.map +1 -0
- package/dist/userRepository/api/tests/flagUser.test.d.ts +2 -0
- package/dist/userRepository/api/tests/flagUser.test.d.ts.map +1 -0
- package/dist/userRepository/api/tests/queryBlockedUsers.test.d.ts.map +1 -0
- package/dist/userRepository/api/tests/unflagUser.test.d.ts +2 -0
- package/dist/userRepository/api/tests/unflagUser.test.d.ts.map +1 -0
- package/dist/userRepository/api/unflagUser.d.ts +14 -0
- package/dist/userRepository/api/unflagUser.d.ts.map +1 -0
- package/dist/userRepository/observers/getBlockedUsers.d.ts +2 -0
- package/dist/userRepository/observers/getBlockedUsers.d.ts.map +1 -0
- package/dist/userRepository/observers/index.d.ts +1 -0
- package/dist/userRepository/observers/index.d.ts.map +1 -1
- package/dist/userRepository/relationship/block/observers/getBlockedUsers.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/@types/core/events.ts +1 -0
- package/src/@types/core/payload.ts +5 -0
- package/src/@types/domains/channel.ts +7 -2
- package/src/@types/domains/marker.ts +1 -0
- package/src/categoryRepository/observers/getCategories.ts +4 -4
- package/src/channelRepsitory/api/markAsRead.ts +1 -1
- package/src/channelRepsitory/api/muteChannel.ts +8 -0
- package/src/channelRepsitory/api/tests/muteChannel.test.ts +12 -0
- package/src/channelRepsitory/channelMembership/observers/getMembers.ts +6 -6
- package/src/channelRepsitory/observers/getChannels.ts +5 -5
- package/src/channelRepsitory/observers/tests/getChannels.test.ts +3 -9
- package/src/client/utils/markerSyncEngine.ts +2 -14
- package/src/commentRepository/observers/getComments.ts +5 -5
- package/src/communityRepository/communityMembership/api/index.ts +2 -0
- package/src/communityRepository/{communityModeration/api/test → communityMembership/api/tests}/addMembers.test.ts +1 -1
- package/src/communityRepository/{communityModeration/api/test → communityMembership/api/tests}/removeMembers.test.ts +1 -1
- package/src/communityRepository/communityMembership/index.ts +1 -0
- package/src/communityRepository/communityMembership/observers/getMembers.ts +6 -8
- package/src/communityRepository/communityModeration/api/banMembers.ts +50 -0
- package/src/communityRepository/communityModeration/api/index.ts +3 -2
- package/src/communityRepository/communityModeration/api/test/banMembers.test.ts +70 -0
- package/src/communityRepository/communityModeration/api/test/unbanMembers.test.ts +70 -0
- package/src/communityRepository/communityModeration/api/unbanMembers.ts +50 -0
- package/src/communityRepository/observers/getCommunities.ts +5 -5
- package/src/core/query/filtering.ts +22 -2
- package/src/core/query/sorting.ts +2 -4
- package/src/core/query/tests/filtering.test.ts +6 -0
- package/src/core/query/tests/runQuery.test.ts +3 -3
- package/src/core/transports/mqtt.ts +3 -2
- package/src/feedRepository/api/getCustomRankingGlobalFeed.ts +117 -0
- package/src/feedRepository/api/index.ts +1 -0
- package/src/feedRepository/api/queryGlobalFeed.ts +12 -4
- package/src/feedRepository/api/test/getCustomRankingGlobalFeed.test.ts +130 -0
- package/src/feedRepository/api/test/queryGlobalFeed.test.ts +1 -15
- package/src/fileRepository/api/index.ts +3 -3
- package/src/fileRepository/api/test/uploadFile.test.ts +69 -0
- package/src/fileRepository/api/test/{createImage.test.ts → uploadImage.test.ts} +7 -7
- package/src/fileRepository/api/test/{createVideo.test.ts → uploadVideo.test.ts} +8 -8
- package/src/fileRepository/api/{createFile.ts → uploadFile.ts} +4 -6
- package/src/fileRepository/api/{createImage.ts → uploadImage.ts} +4 -6
- package/src/fileRepository/api/{createVideo.ts → uploadVideo.ts} +5 -7
- package/src/marker/events/index.ts +1 -0
- package/src/marker/events/onFeedlMarkerUpdated.ts +34 -0
- package/src/messageRepository/api/editMessage.ts +100 -0
- package/src/messageRepository/api/flagMessage.ts +40 -0
- package/src/messageRepository/api/index.ts +7 -1
- package/src/messageRepository/api/isMessageFlaggedByMe.ts +30 -0
- package/src/messageRepository/api/markAsDelivered.ts +2 -2
- package/src/messageRepository/api/{deleteMessage.ts → softDeleteMessage.ts} +8 -8
- package/src/messageRepository/api/tests/deleteMessage.test.ts +11 -11
- package/src/messageRepository/api/tests/{updateMessage.test.ts → editMessage.test.ts} +10 -10
- package/src/messageRepository/api/tests/flagMessage.test.ts +87 -0
- package/src/messageRepository/api/tests/unflagMessage.test.ts +87 -0
- package/src/messageRepository/api/unflagMessage.ts +40 -0
- package/src/messageRepository/api/updateMessage.ts +4 -0
- package/src/messageRepository/events/onMessageDeleted.ts +1 -1
- package/src/messageRepository/observers/getMessages.ts +5 -5
- package/src/postRepository/api/deletePost.ts +1 -7
- package/src/postRepository/api/editPost.ts +58 -0
- package/src/postRepository/api/flagPost.ts +38 -0
- package/src/postRepository/api/hardDeletePost.ts +30 -0
- package/src/postRepository/api/index.ts +8 -0
- package/src/postRepository/api/isPostFlaggedByMe.ts +33 -0
- package/src/postRepository/api/softDeletePost.ts +30 -0
- package/src/postRepository/api/unflagPost.ts +39 -0
- package/src/postRepository/api/updatePost.ts +4 -0
- package/src/postRepository/observers/getPosts.ts +5 -5
- package/src/reactionRepository/observers/getReactions.ts +4 -4
- package/src/report/api/createReport.ts +1 -1
- package/src/report/api/tests/createReport.test.ts +2 -62
- package/src/report/api/tests/deleteReport.test.ts +2 -62
- package/src/subChannelRepository/api/startReadingAPI.ts +13 -0
- package/src/subChannelRepository/api/stopReadingAPI.ts +13 -0
- package/src/userRepository/api/flagUser.ts +37 -0
- package/src/userRepository/api/index.ts +4 -0
- package/src/userRepository/api/isUserFlaggedByMe.ts +33 -0
- package/src/userRepository/{relationship/block/api → api}/queryBlockedUsers.ts +3 -2
- package/src/userRepository/api/tests/flagUser.test.ts +81 -0
- package/src/userRepository/{relationship/block/api → api}/tests/queryBlockedUsers.test.ts +1 -1
- package/src/userRepository/api/tests/unflagUser.test.ts +80 -0
- package/src/userRepository/api/unflagUser.ts +37 -0
- package/src/userRepository/observers/getBlockedUsers.ts +104 -0
- package/src/userRepository/observers/getUsers.ts +4 -4
- package/src/userRepository/observers/index.ts +1 -0
- package/src/userRepository/observers/tests/getUsers.test.ts +3 -9
- package/src/userRepository/relationship/block/observers/getBlockedUsers.ts +5 -96
- package/src/userRepository/relationship/follow/observers/getFollowers.ts +4 -4
- package/src/userRepository/relationship/follow/observers/getFollowings.ts +4 -4
- package/dist/communityRepository/communityModeration/api/test/addMembers.test.d.ts.map +0 -1
- package/dist/communityRepository/communityModeration/api/test/removeMembers.test.d.ts.map +0 -1
- package/dist/fileRepository/api/createFile.d.ts.map +0 -1
- package/dist/fileRepository/api/createImage.d.ts.map +0 -1
- package/dist/fileRepository/api/createVideo.d.ts.map +0 -1
- package/dist/fileRepository/api/test/createImage.test.d.ts +0 -2
- package/dist/fileRepository/api/test/createImage.test.d.ts.map +0 -1
- package/dist/fileRepository/api/test/createVideo.test.d.ts +0 -2
- package/dist/fileRepository/api/test/createVideo.test.d.ts.map +0 -1
- package/dist/messageRepository/api/deleteMessage.d.ts.map +0 -1
- package/dist/messageRepository/api/tests/updateMessage.test.d.ts +0 -2
- package/dist/messageRepository/api/tests/updateMessage.test.d.ts.map +0 -1
- package/dist/userRepository/relationship/block/api/queryBlockedUsers.d.ts.map +0 -1
- package/dist/userRepository/relationship/block/api/tests/queryBlockedUsers.test.d.ts.map +0 -1
- /package/dist/communityRepository/{communityModeration → communityMembership}/api/addMembers.d.ts +0 -0
- /package/dist/communityRepository/{communityModeration → communityMembership}/api/removeMembers.d.ts +0 -0
- /package/dist/communityRepository/{communityModeration/api/test → communityMembership/api/tests}/addMembers.test.d.ts +0 -0
- /package/dist/communityRepository/{communityModeration/api/test → communityMembership/api/tests}/removeMembers.test.d.ts +0 -0
- /package/dist/userRepository/{relationship/block/api → api}/tests/queryBlockedUsers.test.d.ts +0 -0
- /package/src/communityRepository/{communityModeration → communityMembership}/api/addMembers.ts +0 -0
- /package/src/communityRepository/{communityModeration → communityMembership}/api/removeMembers.ts +0 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { disableCache, enableCache, pullFromCache } from '~/cache/api';
|
|
2
|
+
import { client, connectClient, disconnectClient, generateRawMessage, user11 } from '~/utils/tests';
|
|
3
|
+
import { ASCApiError } from '~/core/errors';
|
|
4
|
+
import { fireEvent } from '~/core/events';
|
|
5
|
+
|
|
6
|
+
import { unflagMessage } from '..';
|
|
7
|
+
import { convertFromRaw } from '../../utils';
|
|
8
|
+
|
|
9
|
+
jest.mock('~/core/events', () => ({
|
|
10
|
+
__esModule: true,
|
|
11
|
+
...jest.requireActual('~/core/events'),
|
|
12
|
+
fireEvent: jest.fn(),
|
|
13
|
+
}));
|
|
14
|
+
|
|
15
|
+
const unflaggedRawMessage = generateRawMessage();
|
|
16
|
+
const message = convertFromRaw(unflaggedRawMessage);
|
|
17
|
+
const { messageId } = unflaggedRawMessage;
|
|
18
|
+
|
|
19
|
+
const unflaggedMessageQueryResponse = {
|
|
20
|
+
data: {
|
|
21
|
+
messages: [unflaggedRawMessage],
|
|
22
|
+
users: [user11],
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
describe('unflagMessage', () => {
|
|
27
|
+
beforeEach(disableCache);
|
|
28
|
+
beforeAll(connectClient);
|
|
29
|
+
afterAll(disconnectClient);
|
|
30
|
+
|
|
31
|
+
// integration_test_id: afb432ec-52eb-49d7-8054-c162e3b60535
|
|
32
|
+
test('it should unflag message with messageId', async () => {
|
|
33
|
+
const expected = true;
|
|
34
|
+
client.http.delete = jest.fn().mockResolvedValue(unflaggedMessageQueryResponse);
|
|
35
|
+
|
|
36
|
+
const received = await unflagMessage(messageId);
|
|
37
|
+
|
|
38
|
+
expect(received).toBe(expected);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
// integration_test_id: 5c6b5a0a-628d-4834-8453-d11df656dea8
|
|
42
|
+
test('it should throw error with 400400 when sending invalid messageId', async () => {
|
|
43
|
+
client.http.delete = jest
|
|
44
|
+
.fn()
|
|
45
|
+
.mockRejectedValueOnce(
|
|
46
|
+
new ASCApiError('unauthorized', Amity.ServerError.ITEM_NOT_FOUND, Amity.ErrorLevel.ERROR),
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
await expect(unflagMessage(messageId)).rejects.toThrow('400400');
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
test('it should call fire event method', async () => {
|
|
53
|
+
client.http.delete = jest.fn().mockResolvedValue(unflaggedMessageQueryResponse);
|
|
54
|
+
|
|
55
|
+
const recieved = await unflagMessage(messageId);
|
|
56
|
+
const [recievedMqttString] = (fireEvent as jest.Mock).mock.lastCall;
|
|
57
|
+
|
|
58
|
+
expect(recieved).toBe(true);
|
|
59
|
+
expect(recievedMqttString).toBe('message.unflagged');
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
test('it should call the appropriate api', async () => {
|
|
63
|
+
const apimock = jest.fn();
|
|
64
|
+
const expected = `/api/v5/messages/${encodeURIComponent('messageId')}/flags`;
|
|
65
|
+
|
|
66
|
+
client.http.delete = apimock.mockResolvedValue({ data: {} });
|
|
67
|
+
|
|
68
|
+
await unflagMessage('messageId');
|
|
69
|
+
|
|
70
|
+
const received = apimock.mock.lastCall[0];
|
|
71
|
+
|
|
72
|
+
expect(received).toBe(expected);
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
test('it should add data to cache', async () => {
|
|
76
|
+
enableCache();
|
|
77
|
+
const expected = message;
|
|
78
|
+
client.http.delete = jest.fn().mockResolvedValue(unflaggedMessageQueryResponse);
|
|
79
|
+
|
|
80
|
+
await unflagMessage(messageId);
|
|
81
|
+
const recieved = pullFromCache(['message', 'get', messageId]);
|
|
82
|
+
|
|
83
|
+
expect(recieved?.data).toStrictEqual(expected);
|
|
84
|
+
|
|
85
|
+
disableCache();
|
|
86
|
+
});
|
|
87
|
+
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { getActiveClient } from '~/client/api/activeClient';
|
|
2
|
+
|
|
3
|
+
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
4
|
+
|
|
5
|
+
import { fireEvent } from '~/core/events';
|
|
6
|
+
import { prepareMessagePayload } from '~/messageRepository/utils';
|
|
7
|
+
|
|
8
|
+
/* begin_public_function
|
|
9
|
+
id: message.unflag
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* ```js
|
|
13
|
+
* import { MessageRepository } from '@amityco/ts-sdk'
|
|
14
|
+
* const unflagged = await MessageRepository.unflag(messageId)
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @param messageId of the message to unflag
|
|
18
|
+
* @returns boolean to indicate success
|
|
19
|
+
*
|
|
20
|
+
* @category Report API
|
|
21
|
+
* @async
|
|
22
|
+
* */
|
|
23
|
+
export const unflagMessage = async (messageId: Amity.Message['messageId']): Promise<boolean> => {
|
|
24
|
+
const client = getActiveClient();
|
|
25
|
+
client.log('message/unflag', messageId);
|
|
26
|
+
|
|
27
|
+
const { data: payload } = await client.http.delete<Amity.MessagePayload>(
|
|
28
|
+
`/api/v5/messages/${encodeURIComponent(messageId)}/flags`,
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
if (client.cache) {
|
|
32
|
+
const messagePayload = await prepareMessagePayload(payload);
|
|
33
|
+
ingestInCache(messagePayload);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
fireEvent('message.unflagged', payload);
|
|
37
|
+
|
|
38
|
+
return !!payload;
|
|
39
|
+
};
|
|
40
|
+
/* end_public_function */
|
|
@@ -33,6 +33,10 @@ export const updateMessage = async (
|
|
|
33
33
|
const client = getActiveClient();
|
|
34
34
|
client.log('message/updateMessage', patch);
|
|
35
35
|
|
|
36
|
+
console.warn(
|
|
37
|
+
'MessageRepository.updateMessage will be replaced with MessageRepository.editMessage',
|
|
38
|
+
);
|
|
39
|
+
|
|
36
40
|
const { data: payload } = await client.http.put<Amity.MessagePayload>(
|
|
37
41
|
`/api/v5/messages/${encodeURIComponent(messageId)}`,
|
|
38
42
|
convertParams(patch),
|
|
@@ -31,7 +31,7 @@ export const onMessageDeleted = (callback: Amity.Listener<Amity.Message>): Amity
|
|
|
31
31
|
|
|
32
32
|
const disposers = [
|
|
33
33
|
createEventSubscriber(client, 'message/onMessageDeleted', 'message.deleted', filter),
|
|
34
|
-
createEventSubscriber(client, '
|
|
34
|
+
createEventSubscriber(client, 'message/onMessageDeleted', 'local.message.deleted', payload =>
|
|
35
35
|
callback(payload.messages[0]),
|
|
36
36
|
),
|
|
37
37
|
];
|
|
@@ -100,21 +100,20 @@ export const getMessages = (
|
|
|
100
100
|
collection.data = [...new Set([message.messageId, ...collection.data])];
|
|
101
101
|
|
|
102
102
|
pushToCache(cacheKey, collection);
|
|
103
|
-
disposers.push(() => dropFromCache(cacheKey));
|
|
104
103
|
|
|
105
104
|
responder(collection);
|
|
106
105
|
};
|
|
107
106
|
|
|
108
|
-
const onFetch = () => {
|
|
107
|
+
const onFetch = (initial = false) => {
|
|
109
108
|
const collection = pullFromCache<Amity.MessageLiveCollectionCache>(cacheKey)?.data;
|
|
110
109
|
|
|
111
110
|
const messages = collection?.data ?? [];
|
|
112
111
|
|
|
113
|
-
if (messages.length > 0 && !collection?.params?.page) return;
|
|
112
|
+
if (!initial && messages.length > 0 && !collection?.params?.page) return;
|
|
114
113
|
|
|
115
114
|
const query = createQuery(queryMessages, {
|
|
116
115
|
...queryParams,
|
|
117
|
-
page: collection?.params
|
|
116
|
+
page: (!initial ? collection?.params.page : undefined) ?? { limit },
|
|
118
117
|
});
|
|
119
118
|
|
|
120
119
|
runQuery(
|
|
@@ -151,7 +150,8 @@ export const getMessages = (
|
|
|
151
150
|
onMessageReactionRemoved(realtimeRouter('onReactionRemoved')),
|
|
152
151
|
);
|
|
153
152
|
|
|
154
|
-
onFetch();
|
|
153
|
+
onFetch(true);
|
|
154
|
+
disposers.push(() => dropFromCache(cacheKey));
|
|
155
155
|
|
|
156
156
|
return () => {
|
|
157
157
|
log(`getMessages(tmpid: ${timestamp}) > dispose`);
|
|
@@ -7,9 +7,6 @@ import { pushToTombstone } from '~/cache/api/pushToTombstone';
|
|
|
7
7
|
|
|
8
8
|
import { getPost } from './getPost';
|
|
9
9
|
|
|
10
|
-
/* begin_public_function
|
|
11
|
-
id: post.soft_delete, post.hard_delete
|
|
12
|
-
*/
|
|
13
10
|
/**
|
|
14
11
|
* ```js
|
|
15
12
|
* import { deletePost } from '@amityco/ts-sdk'
|
|
@@ -21,7 +18,7 @@ import { getPost } from './getPost';
|
|
|
21
18
|
* @param postId The {@link Amity.Post} ID to delete
|
|
22
19
|
* @return A success boolean if the {@link Amity.Post} was deleted
|
|
23
20
|
*
|
|
24
|
-
* @
|
|
21
|
+
* @private
|
|
25
22
|
* @async
|
|
26
23
|
*/
|
|
27
24
|
export const deletePost = async (
|
|
@@ -29,11 +26,9 @@ export const deletePost = async (
|
|
|
29
26
|
permanent = false,
|
|
30
27
|
): Promise<Amity.Post> => {
|
|
31
28
|
const client = getActiveClient();
|
|
32
|
-
client.log('post/deletePost', postId);
|
|
33
29
|
|
|
34
30
|
const post = await getPost(postId);
|
|
35
31
|
|
|
36
|
-
// API-FIX: This endpoint has not been implemented yet.
|
|
37
32
|
await client.http.delete<{ success: boolean }>(`/api/v4/posts/${encodeURIComponent(postId)}`, {
|
|
38
33
|
params: {
|
|
39
34
|
postId,
|
|
@@ -82,4 +77,3 @@ export const deletePost = async (
|
|
|
82
77
|
|
|
83
78
|
return deleted;
|
|
84
79
|
};
|
|
85
|
-
/* end_public_function */
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { getActiveClient } from '~/client/api';
|
|
2
|
+
|
|
3
|
+
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
4
|
+
import { fireEvent } from '~/core/events';
|
|
5
|
+
import { prepareMembershipPayload } from '~/group/utils';
|
|
6
|
+
|
|
7
|
+
/* begin_public_function
|
|
8
|
+
id: post.edit
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* ```js
|
|
12
|
+
* import { PostRepository } from '@amityco/ts-sdk'
|
|
13
|
+
* const updated = await PostRepository.editPost(postId, {
|
|
14
|
+
* data: { text: 'hello world' }
|
|
15
|
+
* })
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* Updates an {@link Amity.Post}
|
|
19
|
+
*
|
|
20
|
+
* @param postId The ID of the {@link Amity.Post} to edit
|
|
21
|
+
* @param patch The patch data to apply
|
|
22
|
+
* @returns the updated {@link Amity.Post} object
|
|
23
|
+
*
|
|
24
|
+
* @category Post API
|
|
25
|
+
* @async
|
|
26
|
+
*/
|
|
27
|
+
export const editPost = async <T extends Amity.PostContentType>(
|
|
28
|
+
postId: Amity.Post['postId'],
|
|
29
|
+
patch: Patch<Amity.Post, 'data' | 'metadata' | 'mentionees' | 'tags'> & {
|
|
30
|
+
attachments?: {
|
|
31
|
+
type: T;
|
|
32
|
+
fileId: Amity.File['fileId'];
|
|
33
|
+
}[];
|
|
34
|
+
},
|
|
35
|
+
): Promise<Amity.Cached<Amity.Post>> => {
|
|
36
|
+
const client = getActiveClient();
|
|
37
|
+
client.log('user/editPost', patch);
|
|
38
|
+
|
|
39
|
+
const { data: payload } = await client.http.put<Amity.PostPayload>(
|
|
40
|
+
`/api/v4/posts/${encodeURIComponent(postId)}`,
|
|
41
|
+
patch,
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
const data = prepareMembershipPayload(payload, 'communityUsers');
|
|
45
|
+
|
|
46
|
+
const cachedAt = client.cache && Date.now();
|
|
47
|
+
if (client.cache) ingestInCache(data, { cachedAt });
|
|
48
|
+
|
|
49
|
+
fireEvent('post.updated', data);
|
|
50
|
+
|
|
51
|
+
const { posts } = data;
|
|
52
|
+
|
|
53
|
+
return {
|
|
54
|
+
data: posts.find(post => post.postId === postId)!,
|
|
55
|
+
cachedAt,
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
/* end_public_function */
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { getActiveClient } from '~/client/api/activeClient';
|
|
2
|
+
|
|
3
|
+
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
4
|
+
import { fireEvent } from '~/core/events';
|
|
5
|
+
import { prepareMembershipPayload } from '~/group/utils';
|
|
6
|
+
|
|
7
|
+
/* begin_public_function
|
|
8
|
+
id: post.flag
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* ```js
|
|
12
|
+
* import { PostRepository } from '@amityco/ts-sdk'
|
|
13
|
+
* const flagged = await PostRepository.flagPost(postId)
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @param postId of the post to flag
|
|
17
|
+
* @returns a boolean
|
|
18
|
+
*
|
|
19
|
+
* @category Post API
|
|
20
|
+
* @async
|
|
21
|
+
* */
|
|
22
|
+
export const flagPost = async (postId: Amity.Post['postId']): Promise<boolean> => {
|
|
23
|
+
const client = getActiveClient();
|
|
24
|
+
client.log('post/flagPost', postId);
|
|
25
|
+
|
|
26
|
+
const { data: payload } = await client.http.post<Amity.PostPayload>(
|
|
27
|
+
`/api/v3/posts/${encodeURIComponent(postId)}/flag`,
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
if (client.cache) {
|
|
31
|
+
ingestInCache(prepareMembershipPayload(payload, 'communityUsers'));
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
fireEvent('post.flagged', payload);
|
|
35
|
+
|
|
36
|
+
return !!payload;
|
|
37
|
+
};
|
|
38
|
+
/* end_public_function */
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { getActiveClient } from '~/client/api';
|
|
2
|
+
|
|
3
|
+
import { deletePost } from './deletePost';
|
|
4
|
+
|
|
5
|
+
/* begin_public_function
|
|
6
|
+
id: post.hard_delete
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* ```js
|
|
10
|
+
* import { hardDeletePost } from '@amityco/ts-sdk'
|
|
11
|
+
* const success = await hardDeletePost('foobar')
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* Hard deletes a {@link Amity.Post}
|
|
15
|
+
*
|
|
16
|
+
* @param postId The {@link Amity.Post} ID to be hard delete
|
|
17
|
+
* @return A success boolean if the {@link Amity.Post} was deleted
|
|
18
|
+
*
|
|
19
|
+
* @category Post API
|
|
20
|
+
* @async
|
|
21
|
+
*/
|
|
22
|
+
export const hardDeletePost = async (postId: Amity.Post['postId']): Promise<Amity.Post> => {
|
|
23
|
+
const client = getActiveClient();
|
|
24
|
+
client.log('post/hardDeletePost', postId);
|
|
25
|
+
|
|
26
|
+
const hardDeleted = await deletePost(postId, true);
|
|
27
|
+
|
|
28
|
+
return hardDeleted;
|
|
29
|
+
};
|
|
30
|
+
/* end_public_function */
|
|
@@ -2,7 +2,15 @@ export * from './getPostByIds';
|
|
|
2
2
|
|
|
3
3
|
export * from './createPost';
|
|
4
4
|
export * from './updatePost';
|
|
5
|
+
export * from './editPost';
|
|
6
|
+
|
|
5
7
|
export * from './deletePost';
|
|
8
|
+
export * from './softDeletePost';
|
|
9
|
+
export * from './hardDeletePost';
|
|
6
10
|
|
|
7
11
|
export * from './approvePost';
|
|
8
12
|
export * from './declinePost';
|
|
13
|
+
|
|
14
|
+
export * from './flagPost';
|
|
15
|
+
export * from './unflagPost';
|
|
16
|
+
export * from './isPostFlaggedByMe';
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { getActiveClient } from '~/client/api/activeClient';
|
|
2
|
+
import { synchronousWSCall } from '~/core/transports';
|
|
3
|
+
|
|
4
|
+
/* begin_public_function
|
|
5
|
+
id: post.check_flag_by_me
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* ```js
|
|
9
|
+
* import { PostRepository } from '@amityco/ts-sdk'
|
|
10
|
+
* const isReported = await PostRepository.isPostFlaggedByMe('post', postId)
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @param postId of the post to check if flagged by current user
|
|
14
|
+
* @returns `true` if the post is flagged by me, `false` if doesn't.
|
|
15
|
+
*
|
|
16
|
+
* @category Post API
|
|
17
|
+
* @async
|
|
18
|
+
* */
|
|
19
|
+
export const isPostFlaggedByMe = async (postId: Amity.Post['postId']): Promise<boolean> => {
|
|
20
|
+
const client = getActiveClient();
|
|
21
|
+
client.log('post/isPostFlaggedByMe', postId);
|
|
22
|
+
|
|
23
|
+
const { result, isFlagByMe } =
|
|
24
|
+
(await synchronousWSCall<{
|
|
25
|
+
result?: boolean;
|
|
26
|
+
isFlagByMe?: boolean;
|
|
27
|
+
}>(client, 'v3/post.isflagbyme', {
|
|
28
|
+
postId,
|
|
29
|
+
})) ?? {};
|
|
30
|
+
|
|
31
|
+
return result ?? isFlagByMe ?? false;
|
|
32
|
+
};
|
|
33
|
+
/* end_public_function */
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { getActiveClient } from '~/client/api';
|
|
2
|
+
|
|
3
|
+
import { deletePost } from './deletePost';
|
|
4
|
+
|
|
5
|
+
/* begin_public_function
|
|
6
|
+
id: post.soft_delete
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* ```js
|
|
10
|
+
* import { PostRepository } from '@amityco/ts-sdk'
|
|
11
|
+
* const success = await PostRepository.softDeletePost('foobar')
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* Soft deletes a {@link Amity.Post}
|
|
15
|
+
*
|
|
16
|
+
* @param postId The {@link Amity.Post} ID to soft delete
|
|
17
|
+
* @return A success boolean if the {@link Amity.Post} was deleted
|
|
18
|
+
*
|
|
19
|
+
* @category Post API
|
|
20
|
+
* @async
|
|
21
|
+
*/
|
|
22
|
+
export const softDeletePost = async (postId: Amity.Post['postId']): Promise<Amity.Post> => {
|
|
23
|
+
const client = getActiveClient();
|
|
24
|
+
client.log('post/softDeletePost', postId);
|
|
25
|
+
|
|
26
|
+
const softDeleted = await deletePost(postId, false);
|
|
27
|
+
|
|
28
|
+
return softDeleted;
|
|
29
|
+
};
|
|
30
|
+
/* end_public_function */
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { getActiveClient } from '~/client/api/activeClient';
|
|
2
|
+
|
|
3
|
+
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
4
|
+
|
|
5
|
+
import { fireEvent } from '~/core/events';
|
|
6
|
+
import { prepareMembershipPayload } from '~/group/utils';
|
|
7
|
+
|
|
8
|
+
/* begin_public_function
|
|
9
|
+
id: post.unflag
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* ```js
|
|
13
|
+
* import { PostRepository } from '@amityco/ts-sdk'
|
|
14
|
+
* const unflagged = await PostRepository.unflagPost(postId)
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @param postId of the post to unflag
|
|
18
|
+
* @returns the unflag post result
|
|
19
|
+
*
|
|
20
|
+
* @category Post API
|
|
21
|
+
* @async
|
|
22
|
+
* */
|
|
23
|
+
export const unflagPost = async (postId: Amity.Post['postId']): Promise<boolean> => {
|
|
24
|
+
const client = getActiveClient();
|
|
25
|
+
client.log('post/unflagPost', postId);
|
|
26
|
+
|
|
27
|
+
const { data: payload } = await client.http.delete<Amity.PostPayload>(
|
|
28
|
+
`/api/v3/posts/${encodeURIComponent(postId)}/unflag`,
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
if (client.cache) {
|
|
32
|
+
ingestInCache(prepareMembershipPayload(payload, 'communityUsers'));
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
fireEvent('post.unflagged', payload);
|
|
36
|
+
|
|
37
|
+
return !!payload;
|
|
38
|
+
};
|
|
39
|
+
/* end_public_function */
|
|
@@ -36,6 +36,10 @@ export const updatePost = async <T extends Amity.PostContentType>(
|
|
|
36
36
|
const client = getActiveClient();
|
|
37
37
|
client.log('user/updatePost', patch);
|
|
38
38
|
|
|
39
|
+
console.warn(
|
|
40
|
+
'Deprecation: updatePost has been renamed to editPost. Update post API will be deprecated soon.',
|
|
41
|
+
);
|
|
42
|
+
|
|
39
43
|
const { data: payload } = await client.http.put<Amity.PostPayload>(
|
|
40
44
|
`/api/v4/posts/${encodeURIComponent(postId)}`,
|
|
41
45
|
patch,
|
|
@@ -135,21 +135,20 @@ export const getPosts = (
|
|
|
135
135
|
}
|
|
136
136
|
|
|
137
137
|
pushToCache(cacheKey, collection);
|
|
138
|
-
disposers.push(() => dropFromCache(cacheKey));
|
|
139
138
|
|
|
140
139
|
responder(collection);
|
|
141
140
|
};
|
|
142
141
|
|
|
143
|
-
const onFetch = () => {
|
|
142
|
+
const onFetch = (initial = false) => {
|
|
144
143
|
const collection = pullFromCache<Amity.PostLiveCollectionCache>(cacheKey)?.data;
|
|
145
144
|
|
|
146
145
|
const posts = collection?.data ?? [];
|
|
147
146
|
|
|
148
|
-
if (posts.length > 0 && !collection?.params?.page) return;
|
|
147
|
+
if (!initial && posts.length > 0 && !collection?.params?.page) return;
|
|
149
148
|
|
|
150
149
|
const query = createQuery(queryPosts, {
|
|
151
150
|
...queryParams,
|
|
152
|
-
page: collection?.params
|
|
151
|
+
page: (!initial ? collection?.params.page : undefined) ?? { limit },
|
|
153
152
|
});
|
|
154
153
|
|
|
155
154
|
runQuery(
|
|
@@ -187,7 +186,8 @@ export const getPosts = (
|
|
|
187
186
|
onPostReactionRemoved(realtimeRouter('onReactionRemoved')),
|
|
188
187
|
);
|
|
189
188
|
|
|
190
|
-
onFetch();
|
|
189
|
+
onFetch(true);
|
|
190
|
+
disposers.push(() => dropFromCache(cacheKey));
|
|
191
191
|
|
|
192
192
|
return () => {
|
|
193
193
|
log(`getPosts(tmpid: ${timestamp}) > dispose`);
|
|
@@ -91,16 +91,16 @@ export const getReactions = (
|
|
|
91
91
|
responder(collection);
|
|
92
92
|
};
|
|
93
93
|
|
|
94
|
-
const onFetch = () => {
|
|
94
|
+
const onFetch = (initial = false) => {
|
|
95
95
|
const collection = pullFromCache<Amity.ReactionLiveCollectionCache>(cacheKey)?.data;
|
|
96
96
|
|
|
97
97
|
const reactions = collection?.data ?? [];
|
|
98
98
|
|
|
99
|
-
if (reactions.length > 0 && !collection?.params?.page) return;
|
|
99
|
+
if (!initial && reactions.length > 0 && !collection?.params?.page) return;
|
|
100
100
|
|
|
101
101
|
const query = createQuery(queryReactions, {
|
|
102
102
|
...queryParams,
|
|
103
|
-
page: collection?.params
|
|
103
|
+
page: (!initial ? collection?.params.page : undefined) ?? { limit },
|
|
104
104
|
});
|
|
105
105
|
|
|
106
106
|
runQuery(
|
|
@@ -136,7 +136,7 @@ export const getReactions = (
|
|
|
136
136
|
),
|
|
137
137
|
);
|
|
138
138
|
|
|
139
|
-
onFetch();
|
|
139
|
+
onFetch(true);
|
|
140
140
|
|
|
141
141
|
return () => {
|
|
142
142
|
log(`liveReactions(tmpid: ${timestamp}) > dispose`);
|
|
@@ -8,7 +8,7 @@ import { prepareMessagePayload } from '~/messageRepository/utils';
|
|
|
8
8
|
import REFERENCE_TYPES from '../constants/referenceTypes';
|
|
9
9
|
|
|
10
10
|
/* begin_public_function
|
|
11
|
-
id:
|
|
11
|
+
id: message.flag, post.flag, comment.flag
|
|
12
12
|
*/
|
|
13
13
|
/**
|
|
14
14
|
* ```js
|
|
@@ -1,14 +1,5 @@
|
|
|
1
|
-
import { disableCache
|
|
2
|
-
import {
|
|
3
|
-
client,
|
|
4
|
-
connectClient,
|
|
5
|
-
disconnectClient,
|
|
6
|
-
flaggedUser,
|
|
7
|
-
flaggedUserQueryResponse,
|
|
8
|
-
} from '~/utils/tests';
|
|
9
|
-
import { ASCApiError } from '~/core/errors';
|
|
10
|
-
|
|
11
|
-
import { onUserFlagged } from '~/userRepository/events';
|
|
1
|
+
import { disableCache } from '~/cache/api';
|
|
2
|
+
import { client, connectClient, disconnectClient } from '~/utils/tests';
|
|
12
3
|
|
|
13
4
|
import { createReport } from '..';
|
|
14
5
|
import REFERENCE_TYPES from '../../constants/referenceTypes';
|
|
@@ -18,48 +9,10 @@ describe('createReport', () => {
|
|
|
18
9
|
beforeAll(connectClient);
|
|
19
10
|
afterAll(disconnectClient);
|
|
20
11
|
|
|
21
|
-
// integration_test_id: ca4a760f-4342-4a99-9f3c-6c17cd205ca6
|
|
22
|
-
test('it should flag user with userId', async () => {
|
|
23
|
-
const expected = true;
|
|
24
|
-
client.http.post = jest.fn().mockResolvedValue(flaggedUserQueryResponse);
|
|
25
|
-
|
|
26
|
-
const received = await createReport('user', flaggedUser.userId);
|
|
27
|
-
|
|
28
|
-
expect(received).toBe(expected);
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
// integration_test_id: e8d0f02c-3558-488f-bdae-e70835d8cefb
|
|
32
|
-
test('it should throw error with 400400 when sending invalid userId', async () => {
|
|
33
|
-
client.http.post = jest
|
|
34
|
-
.fn()
|
|
35
|
-
.mockRejectedValueOnce(
|
|
36
|
-
new ASCApiError('unauthorized', Amity.ServerError.ITEM_NOT_FOUND, Amity.ErrorLevel.ERROR),
|
|
37
|
-
);
|
|
38
|
-
|
|
39
|
-
await expect(createReport('user', flaggedUser.userId)).rejects.toThrow('400400');
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
test('it should fire event for user', async () => {
|
|
43
|
-
let dispose;
|
|
44
|
-
const expected = flaggedUser;
|
|
45
|
-
|
|
46
|
-
client.http.post = jest.fn().mockResolvedValue(flaggedUserQueryResponse);
|
|
47
|
-
|
|
48
|
-
const callbackPromise = new Promise(resolve => {
|
|
49
|
-
dispose = onUserFlagged(resolve);
|
|
50
|
-
}).finally(dispose);
|
|
51
|
-
|
|
52
|
-
const recieved = await createReport('user', flaggedUser.userId);
|
|
53
|
-
|
|
54
|
-
expect(recieved).toBe(true);
|
|
55
|
-
await expect(callbackPromise).resolves.toEqual(expect.objectContaining(expected));
|
|
56
|
-
});
|
|
57
|
-
|
|
58
12
|
test.todo('it should fire event for flagging message');
|
|
59
13
|
test.todo('it should fire event for flagging post');
|
|
60
14
|
|
|
61
15
|
const tests: [keyof typeof REFERENCE_TYPES, string, string][] = [
|
|
62
|
-
['user', 'userId', `/api/v4/me/flags/${encodeURIComponent('userId')}`],
|
|
63
16
|
['post', 'postId', `/api/v3/posts/${encodeURIComponent('postId')}/flag`],
|
|
64
17
|
['message', 'messageId', `/api/v5/messages/${encodeURIComponent('messageId')}/flags`],
|
|
65
18
|
];
|
|
@@ -78,17 +31,4 @@ describe('createReport', () => {
|
|
|
78
31
|
expect(received).toBe(expected);
|
|
79
32
|
},
|
|
80
33
|
);
|
|
81
|
-
|
|
82
|
-
test('it should add data to cache', async () => {
|
|
83
|
-
enableCache();
|
|
84
|
-
const expected = flaggedUser;
|
|
85
|
-
client.http.post = jest.fn().mockResolvedValue(flaggedUserQueryResponse);
|
|
86
|
-
|
|
87
|
-
await createReport('user', flaggedUser.userId);
|
|
88
|
-
const recieved = pullFromCache(['user', 'get', flaggedUser.userId]);
|
|
89
|
-
|
|
90
|
-
expect(recieved?.data).toBe(expected);
|
|
91
|
-
|
|
92
|
-
disableCache();
|
|
93
|
-
});
|
|
94
34
|
});
|