@amityco/ts-sdk 7.8.6 → 7.8.7-9bdb8fdd.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.
Files changed (38) hide show
  1. package/.env +26 -26
  2. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/index.d.ts +1 -0
  3. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/index.d.ts.map +1 -1
  4. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/index.js +1 -0
  5. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/index.js.map +1 -1
  6. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/tests/unvotePoll.d.ts +2 -0
  7. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/tests/unvotePoll.d.ts.map +1 -0
  8. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/tests/unvotePoll.js +32 -0
  9. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/tests/unvotePoll.js.map +1 -0
  10. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/unvotePoll.d.ts +17 -0
  11. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/unvotePoll.d.ts.map +1 -0
  12. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/unvotePoll.js +37 -0
  13. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/unvotePoll.js.map +1 -0
  14. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/reactionRepository/observers/getReactions/ReactionPaginationController.d.ts.map +1 -1
  15. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/reactionRepository/observers/getReactions/ReactionPaginationController.js +3 -3
  16. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/reactionRepository/observers/getReactions/ReactionPaginationController.js.map +1 -1
  17. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/channelLinkedObject.d.ts.map +1 -1
  18. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/channelLinkedObject.js +2 -2
  19. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/channelLinkedObject.js.map +1 -1
  20. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/tsconfig.tsbuildinfo +1 -1
  21. package/dist/index.cjs.js +41 -6
  22. package/dist/index.esm.js +41 -6
  23. package/dist/index.umd.js +3 -3
  24. package/dist/pollRepository/api/index.d.ts +1 -0
  25. package/dist/pollRepository/api/index.d.ts.map +1 -1
  26. package/dist/pollRepository/api/tests/unvotePoll.d.ts +2 -0
  27. package/dist/pollRepository/api/tests/unvotePoll.d.ts.map +1 -0
  28. package/dist/pollRepository/api/unvotePoll.d.ts +17 -0
  29. package/dist/pollRepository/api/unvotePoll.d.ts.map +1 -0
  30. package/dist/reactionRepository/observers/getReactions/ReactionPaginationController.d.ts.map +1 -1
  31. package/dist/utils/linkedObject/channelLinkedObject.d.ts.map +1 -1
  32. package/package.json +1 -1
  33. package/src/pollRepository/api/index.ts +1 -0
  34. package/src/pollRepository/api/tests/unvotePoll.ts +41 -0
  35. package/src/pollRepository/api/unvotePoll.ts +48 -0
  36. package/src/reactionRepository/observers/getReactions/ReactionPaginationController.ts +4 -3
  37. package/src/utils/linkedObject/channelLinkedObject.ts +4 -2
  38. package/tsconfig.tsbuildinfo +1 -1
@@ -2,4 +2,5 @@ export * from './createPoll';
2
2
  export * from './closePoll';
3
3
  export * from './deletePoll';
4
4
  export * from './votePoll';
5
+ export * from './unvotePoll';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=unvotePoll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unvotePoll.d.ts","sourceRoot":"","sources":["../../../../src/pollRepository/api/tests/unvotePoll.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * ```js
3
+ * import { unvotePoll } from '@amityco/ts-sdk'
4
+ * const updatedVote = await unvotePoll(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 unvotePoll: (pollId: Amity.Poll['pollId'], answerIds: string[]) => Promise<Amity.Cached<Amity.Poll>>;
17
+ //# sourceMappingURL=unvotePoll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unvotePoll.d.ts","sourceRoot":"","sources":["../../../src/pollRepository/api/unvotePoll.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"}
@@ -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;CA2BtF"}
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,OAuB1E,CAAC"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amityco/ts-sdk",
3
- "version": "7.8.6",
3
+ "version": "7.8.7-9bdb8fdd.0",
4
4
  "license": "CC-BY-ND-4.0",
5
5
  "author": "amity.co <developers@amity.co> (https://amity.co)",
6
6
  "description": "Amity Social Cloud Typescript SDK",
@@ -3,3 +3,4 @@ export * from './closePoll';
3
3
  export * from './deletePoll';
4
4
 
5
5
  export * from './votePoll';
6
+ export * from './unvotePoll';
@@ -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 { unvotePoll } from '../unvotePoll';
6
+ import { getPoll } from '../getPoll';
7
+
8
+ describe('unvotePoll', () => {
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 unvotePoll(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
+ unvotePoll('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.unvote
8
+ */
9
+ /**
10
+ * ```js
11
+ * import { unvotePoll } from '@amityco/ts-sdk'
12
+ * const updatedVote = await unvotePoll(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 unvotePoll = async (
25
+ pollId: Amity.Poll['pollId'],
26
+ answerIds: string[],
27
+ ): Promise<Amity.Cached<Amity.Poll>> => {
28
+ const client = getActiveClient();
29
+ client.log('user/unvotePoll', 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(params.referenceType))
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
- referenceVersion: REFERENCE_API_V5, // Need to put this param to make it can query reaction for message in sub-channel
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 === 'conversation') {
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(({ data }) => data.channelId === channel.channelId) ?? []
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))