@amityco/ts-sdk 7.8.6 → 7.8.7-2982cd9c.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/.env +26 -26
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/index.d.ts +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/index.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/index.js +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/index.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/tests/updateVote.test.d.ts +2 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/tests/updateVote.test.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/tests/updateVote.test.js +32 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/tests/updateVote.test.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/updateVote.d.ts +17 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/updateVote.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/updateVote.js +37 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/updateVote.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/reactionRepository/observers/getReactions/ReactionPaginationController.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/reactionRepository/observers/getReactions/ReactionPaginationController.js +3 -3
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/reactionRepository/observers/getReactions/ReactionPaginationController.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/channelLinkedObject.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/channelLinkedObject.js +2 -2
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/channelLinkedObject.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/tsconfig.tsbuildinfo +1 -1
- package/dist/index.cjs.js +41 -6
- package/dist/index.esm.js +41 -6
- package/dist/index.umd.js +3 -3
- package/dist/pollRepository/api/index.d.ts +1 -0
- package/dist/pollRepository/api/index.d.ts.map +1 -1
- package/dist/pollRepository/api/tests/updateVote.test.d.ts +2 -0
- package/dist/pollRepository/api/tests/updateVote.test.d.ts.map +1 -0
- package/dist/pollRepository/api/updateVote.d.ts +17 -0
- package/dist/pollRepository/api/updateVote.d.ts.map +1 -0
- package/dist/reactionRepository/observers/getReactions/ReactionPaginationController.d.ts.map +1 -1
- package/dist/utils/linkedObject/channelLinkedObject.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/pollRepository/api/index.ts +1 -0
- package/src/pollRepository/api/tests/updateVote.test.ts +41 -0
- package/src/pollRepository/api/updateVote.ts +48 -0
- package/src/reactionRepository/observers/getReactions/ReactionPaginationController.ts +4 -3
- package/src/utils/linkedObject/channelLinkedObject.ts +4 -2
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pollRepository/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAE7B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pollRepository/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAE7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateVote.test.d.ts","sourceRoot":"","sources":["../../../../src/pollRepository/api/tests/updateVote.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ```js
|
|
3
|
+
* import { updateVote } from '@amityco/ts-sdk'
|
|
4
|
+
* const updatedVote = await updateVote(pollId, [answerId1, answerId2])
|
|
5
|
+
* ```
|
|
6
|
+
*
|
|
7
|
+
* Votes for an {@link Amity.Poll}
|
|
8
|
+
*
|
|
9
|
+
* @param pollId The ID of the {@link Amity.Poll} to vote
|
|
10
|
+
* @param answerIds The IDs of the {@link Amity.Poll} answers to vote {@link Amity.Poll}
|
|
11
|
+
* @returns the updated {@link Amity.Poll} object
|
|
12
|
+
*
|
|
13
|
+
* @category Poll API
|
|
14
|
+
* @async
|
|
15
|
+
*/
|
|
16
|
+
export declare const updateVote: (pollId: Amity.Poll['pollId'], answerIds: string[]) => Promise<Amity.Cached<Amity.Poll>>;
|
|
17
|
+
//# sourceMappingURL=updateVote.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateVote.d.ts","sourceRoot":"","sources":["../../../src/pollRepository/api/updateVote.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,UAAU,WACb,MAAM,IAAI,CAAC,QAAQ,CAAC,aACjB,MAAM,EAAE,KAClB,QAAQ,MAAM,MAAM,CAAC,MAAM,IAAI,CAAC,CAoBlC,CAAC"}
|
package/dist/reactionRepository/observers/getReactions/ReactionPaginationController.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactionPaginationController.d.ts","sourceRoot":"","sources":["../../../../src/reactionRepository/observers/getReactions/ReactionPaginationController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAKlF,qBAAa,4BAA6B,SAAQ,oBAAoB,CACpE,UAAU,EACV,KAAK,CAAC,sBAAsB,CAC7B;IACO,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"ReactionPaginationController.d.ts","sourceRoot":"","sources":["../../../../src/reactionRepository/observers/getReactions/ReactionPaginationController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAKlF,qBAAa,4BAA6B,SAAQ,oBAAoB,CACpE,UAAU,EACV,KAAK,CAAC,sBAAsB,CAC7B;IACO,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS;CA4BtF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channelLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/channelLinkedObject.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,mBAAmB,YAAa,MAAM,eAAe,KAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"channelLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/channelLinkedObject.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,mBAAmB,YAAa,MAAM,eAAe,KAAG,MAAM,OAyB1E,CAAC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { client, pause, poll11 } from '~/utils/tests';
|
|
2
|
+
import { ASCError } from '~/core/errors';
|
|
3
|
+
import { disableCache, enableCache } from '~/cache/api';
|
|
4
|
+
import { onPollUpdated } from '~/pollRepository/events';
|
|
5
|
+
import { updateVote } from '../updateVote';
|
|
6
|
+
import { getPoll } from '../getPoll';
|
|
7
|
+
|
|
8
|
+
describe('updateVote', () => {
|
|
9
|
+
beforeAll(enableCache);
|
|
10
|
+
afterAll(disableCache);
|
|
11
|
+
|
|
12
|
+
// integration_test_id: 2abcbca5-f845-4e96-9405-23781013738e
|
|
13
|
+
it('should vote', async () => {
|
|
14
|
+
client.http.post = jest
|
|
15
|
+
.fn()
|
|
16
|
+
.mockResolvedValueOnce({ data: { polls: [{ ...poll11, isVoted: true }] } });
|
|
17
|
+
const callback = jest.fn();
|
|
18
|
+
onPollUpdated(callback);
|
|
19
|
+
|
|
20
|
+
const { data: poll } = await updateVote(poll11.pollId, [poll11.answers[0].id]);
|
|
21
|
+
const { data: cachedPoll } = getPoll.locally(poll.pollId)!;
|
|
22
|
+
await pause();
|
|
23
|
+
|
|
24
|
+
expect(poll.isVoted).toEqual(true);
|
|
25
|
+
expect(cachedPoll).toMatchObject(poll);
|
|
26
|
+
expect(callback).toHaveBeenCalledWith(poll);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
// integration_test_id: b6ab2681-7f25-47a0-bc14-f4f542a3cf80
|
|
30
|
+
it('should fail to vote for in an invalid poll', async () => {
|
|
31
|
+
client.http.post = jest
|
|
32
|
+
.fn()
|
|
33
|
+
.mockRejectedValueOnce(
|
|
34
|
+
new ASCError('error message', Amity.ServerError.ITEM_NOT_FOUND, Amity.ErrorLevel.FATAL),
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
await expect(() =>
|
|
38
|
+
updateVote('non-existent-poll-id', ['non-existent-answer-id']),
|
|
39
|
+
).rejects.toThrow();
|
|
40
|
+
});
|
|
41
|
+
});
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { fireEvent } from '~/core/events';
|
|
2
|
+
import { getActiveClient } from '~/client/api';
|
|
3
|
+
|
|
4
|
+
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
5
|
+
|
|
6
|
+
/* begin_public_function
|
|
7
|
+
id: poll.updateVote
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* ```js
|
|
11
|
+
* import { updateVote } from '@amityco/ts-sdk'
|
|
12
|
+
* const updatedVote = await updateVote(pollId, [answerId1, answerId2])
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* Votes for an {@link Amity.Poll}
|
|
16
|
+
*
|
|
17
|
+
* @param pollId The ID of the {@link Amity.Poll} to vote
|
|
18
|
+
* @param answerIds The IDs of the {@link Amity.Poll} answers to vote {@link Amity.Poll}
|
|
19
|
+
* @returns the updated {@link Amity.Poll} object
|
|
20
|
+
*
|
|
21
|
+
* @category Poll API
|
|
22
|
+
* @async
|
|
23
|
+
*/
|
|
24
|
+
export const updateVote = async (
|
|
25
|
+
pollId: Amity.Poll['pollId'],
|
|
26
|
+
answerIds: string[],
|
|
27
|
+
): Promise<Amity.Cached<Amity.Poll>> => {
|
|
28
|
+
const client = getActiveClient();
|
|
29
|
+
client.log('user/updateVote', pollId);
|
|
30
|
+
|
|
31
|
+
const { data } = await client.http.put<Amity.PollPayload>(
|
|
32
|
+
`/api/v3/polls/${encodeURIComponent(pollId)}/votes`,
|
|
33
|
+
{ pollId, answerIds },
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
const cachedAt = client.cache && Date.now();
|
|
37
|
+
if (client.cache) ingestInCache(data, { cachedAt });
|
|
38
|
+
|
|
39
|
+
const { polls } = data;
|
|
40
|
+
|
|
41
|
+
fireEvent('poll.updated', data);
|
|
42
|
+
|
|
43
|
+
return {
|
|
44
|
+
data: polls.find(poll => poll.pollId === pollId)!,
|
|
45
|
+
cachedAt,
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
/* end_public_function */
|
|
@@ -9,14 +9,14 @@ export class ReactionPaginationController extends PaginationController<
|
|
|
9
9
|
Amity.ReactionLiveCollection
|
|
10
10
|
> {
|
|
11
11
|
async getRequest(queryParams: Amity.ReactionLiveCollection, token: string | undefined) {
|
|
12
|
-
const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT, ...params } = queryParams;
|
|
12
|
+
const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT, referenceType, ...params } = queryParams;
|
|
13
13
|
const options = token ? { token } : { limit };
|
|
14
14
|
const client = getActiveClient();
|
|
15
15
|
client.log('reaction/queryReactions', queryParams);
|
|
16
16
|
|
|
17
17
|
const path = '/api/v3/reactions';
|
|
18
18
|
|
|
19
|
-
if (!['post', 'comment', 'story', 'message'].includes(
|
|
19
|
+
if (!['post', 'comment', 'story', 'message'].includes(referenceType))
|
|
20
20
|
throw new ASCApiError(
|
|
21
21
|
'The reference type is not valid. It should be one of post, comment, story, or message',
|
|
22
22
|
Amity.ServerError.BAD_REQUEST,
|
|
@@ -28,7 +28,8 @@ export class ReactionPaginationController extends PaginationController<
|
|
|
28
28
|
{
|
|
29
29
|
params: {
|
|
30
30
|
...params,
|
|
31
|
-
|
|
31
|
+
referenceType,
|
|
32
|
+
referenceVersion: referenceType === 'message' ? REFERENCE_API_V5 : undefined, // Need to put this param to make it can query reaction for message in sub-channel
|
|
32
33
|
options,
|
|
33
34
|
},
|
|
34
35
|
},
|
|
@@ -7,11 +7,13 @@ import { getMyMembership } from '~/channelRepository/observers/getMyMembership';
|
|
|
7
7
|
export const channelLinkedObject = (channel: Amity.InternalChannel): Amity.Channel => {
|
|
8
8
|
let previewMembers: Amity.Membership<'channel'>[] = [];
|
|
9
9
|
|
|
10
|
-
if (channel.type
|
|
10
|
+
if (['conversation', 'community'].includes(channel.type)) {
|
|
11
11
|
const channelUsers = queryCache<Amity.Membership<'channel'>>(['channelUsers', 'get']);
|
|
12
12
|
if (channelUsers && channelUsers?.length > 0) {
|
|
13
13
|
previewMembers = (
|
|
14
|
-
channelUsers?.filter(
|
|
14
|
+
channelUsers?.filter(
|
|
15
|
+
({ data }) => data.channelId === channel.channelId && data.membership !== 'none',
|
|
16
|
+
) ?? []
|
|
15
17
|
)
|
|
16
18
|
// sort in ascending order by userInternalId
|
|
17
19
|
.sort((a, b) => a.data.userInternalId.localeCompare(b.data.userInternalId))
|