@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
package/.env CHANGED
@@ -1,28 +1,28 @@
1
1
  LIVE_STREAM_KEY='-----BEGIN PRIVATE KEY-----
2
- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDHo80SecH7FuF2
3
- hFYnb+l26/VN8UMLXAQFLnxciNTEwkGVFMpdezlH8rU2HtUJL4RETogbAOLVY0XM
4
- js6sPn8G1nALmh9qeDpUtVqFOVtBHxEZ910TLOtQiunjqJKO5nWdqZ71EC3OFluR
5
- iGQkO84BiIFbv37ub7xl3S8XarbtKoLcyVpkDHi+1wx1pgCAn6gtBUgckPL5NR8j
6
- Lseabl3HAXQfhTCKo4tmOFM2Dxwl1IUMmIJrJg/aIU/U0tj/1Eoo7mG0JcNWX19l
7
- W3EecCbi0ncCJOrkUdwlBrcjaMayaX/ubEwyUeTGiLdyc4L3GRLHjyK8xgVNXRMH
8
- bZWJ2a5NAgMBAAECggEASxuE+35zTFO/XydKgmvIGcWL9FbgMlXb7Vcf0nBoG945
9
- biz0NVc2paraIhJXc608xbYF3qLmtAE1MVBI0ORyRdBHNxY024l/6H6SH60Ed+uI
10
- M4ysp5ourY6Vj+DLwpdRiI9YDjqYAQDIUmhNxJP7XPhOMoZI6st+xZQBM34ic/bv
11
- AMSJm9OZphSp3+qXVkFZztr2mxD2EZSJJLYxi8BCdgM2qhazalbcJ6zDKHCZWVWm
12
- 8RRxDGldyMb/237JxETzP40tAlzOZDmBAbUgEnurDJ93RVDIE3rbZUshwgeQd18a
13
- em096mWgvB1AIKYgsTAR3pw+V19YWAjq/glP6fz8wQKBgQD/oQq+ukKF0PRgBeM5
14
- geTjSwsdGppQLmf5ndujvoiz/TpdjDEPu6R8kigQr1rG2t4K/yfdZoI8RdmJD1al
15
- 3Q7N9hofooSy4rj6E3txzWZCHJjHad2cnCp/O26HiReGAl7wTcfTmNdiFHhZQzm5
16
- JBkvWAiwuvQMNfEbnXxw6/vIDwKBgQDH7fX8gsc77JLvAWgp1MaQN/sbqVb6JeT1
17
- FQfR8E/WFCSmzQBtNzd5KgYuCeelwr/8DyYytvN2BzCYZXp73gI1jF3YlW5jVn74
18
- OY6TwQ095digwo6Z0yuxopdIOApKgAkL9PRKgNrqAf3NAyMua6lOGifzjDojC3KU
19
- fylQmxMn4wKBgHp2B9O/H0dEBw5JQ8W0+JX6yWQz7mEjGiR2/1W+XXb8hQ1zr709
20
- w1r6Gb+EghRpnZ3fBpYGGbYOMFx8wKHM+N6qW3F0ReX8v2juFGE8aRSa5oYBrWzt
21
- U16Idjbv8hj84cZ1PJmdyvDtpYn9rpWHOZl4rxEbPvbqkIsOMyNVqdT5AoGAOSge
22
- mwIIU2le2FVeohbibXiToWTYKMuMmURZ5/r72AgKMmWJKbAPe+Q3wBG01/7FRBpQ
23
- oU8Ma0HC8s6QJbliiEyIx9JwrJWd1vkdecBHONrtA4ibm/5zD2WcOllLF+FitLhi
24
- 3qnX6+6F0IaFGFBPJrTzlv0P4dTz/OAdv52V7GECgYEA2TttOKBAqWllgOaZOkql
25
- LVMJVmgR7s6tLi1+cEP8ZcapV9aRbRzTAKXm4f8AEhtlG9F9kCOvHYCYGi6JaiWJ
26
- ZkHjeex3T+eE6Di6y5Bm/Ift5jtVhJ4jCVwHOKTMej79NPUFTJfv8hCo29haBDv6
27
- RXFrv+T21KCcw8k3sJeJWWQ=
2
+ MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDAARz+hmBgi8pJ
3
+ Qb8LeY41gtHhk+ACMwRfhsn7GqpqRQNG2qU0755mzZuVDUqjQMGSo8THJB7O+OJs
4
+ flbZRkFXlFoFOVNw1UpNOgwEQZ6wB9oRwzepTJAfF1sVhm/o/ixvXh1zDFNDy6yZ
5
+ pXyiiJHUVxqyjllZhxnwdvjoVtDs6hW6awG09bB9nh/TTejlUKXoAgzqVwu/1QMu
6
+ UVViET495elEe19aUarEy+oL2iKeXCEvqda/pWNBdbieFyJvvZ08HN8dPuT88wq2
7
+ jZLEAth1vrwQ2IAa4ktaLcBQdLJgIkrbDvAiVZ8lQAjS/bq5vXQikTGvoPlC5bbn
8
+ vuOM/3eLAgMBAAECggEAVZ+peHAghq2QVj71nX5lxsNCKaCyYwixSJBpfouTt7Rz
9
+ E6PpzMOXFi1W1o+I22jDakuSM2SOQKqI/u0QefB0r0O/KVk5NrZHXk0mkrdYtxOp
10
+ UgaGyf8UvmjB+8VqHrNKyZdk9qtmbnNj01kTTcAtmE4H39zPR7eR/8Rul94vaZbs
11
+ wCnKJS3mLT3JxyGug6lxanveKkjG+CKC1nJQYWaxCJxaFSzbwXQPvDhB+TvrIbee
12
+ pd5v4EAyEJohpr+T9oDGGJkb/KARBZCtwLyB976PKJwwBA8MRVL1i5QwawuMiMq5
13
+ UtnOnbGKtCeFzaLbNU0Qi8bqyims84EQxC6DOu1fkQKBgQDdvsoBsEhsOXV7hlIJ
14
+ aEd0eSJZVkdqimxH8uGoMM2FeNaOrcB6yBXqTSP0R3OIyf8eaY6yjRvP30ZNXcll
15
+ /gD3O1Mu6YmWQdt1W2WA6pKOsUuPXasf0pdOF7IiFZKlSabz5YHXFqwVuqm8loaj
16
+ sXel3YWqPVdHiankE7tz+3ssnQKBgQDdqi4TNdD1MdEpihx19jr0QjUiXW3939FK
17
+ qp30HESPEGDGQzXdmJgif9HhZb+cJSuWaHEbjgBrYahvgCF+y6LbEpOD+D/dmT+s
18
+ DEAQaR84sah6dokwPjV8fjBSrcVFjCS+doxv0d3p/9OUEeyUhFrY03nxtIEYkLIE
19
+ /Zvn37b4RwKBgQCLENVFe9XfsaVhQ5r9dV2iyTlmh7qgMZG5CbTFs12hQGhm8McO
20
+ +Z7s41YSJCFr/yq1WwP4LJDtrBw99vyQr1zRsG35tNLp3gGRNzGQSQyC2uQFVHw2
21
+ p+7mNewsfhUK/gbrXNsyFnDz6635rPlhfbII3sWuP2wWXFqkxE9CbMwR7QKBgQC6
22
+ awDMzxmo2/iYArrkyevSuEuPVxvFwpF1RgAI6C0QVCnPE38dmdN4UB7mfHekje4W
23
+ VEercMURidPp0cxZolCYBQtilUjAyL0vqC3In1/Ogjq6oy3FEMxSop1pKxMY5j+Q
24
+ noqFD+6deLUrddeNH7J3X4LSr4dSbX4JjG+tlgt+yQKBgQCuwTL4hA6KqeInQ0Ta
25
+ 9VQX5Qr8hFlqJz1gpymi/k63tW/Ob8yedbg3WWNWyShwRMFYyY9S81ITFWM95uL6
26
+ vF3x9rmRjwElJw9PMwVu6dmf/CO0Z1wzXSp2VVD12gbrUD/0/d7MUoJ9LgC8X8f/
27
+ n0txLHYGHbx+nf95+JUg6lV3hg==
28
28
  -----END PRIVATE KEY-----'
@@ -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"}
@@ -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.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","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","sourcesContent":["export * from './createPoll';\nexport * from './closePoll';\nexport * from './deletePoll';\n\nexport * from './votePoll';\n"]}
1
+ {"version":3,"file":"index.js","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","sourcesContent":["export * from './createPoll';\nexport * from './closePoll';\nexport * from './deletePoll';\n\nexport * from './votePoll';\nexport * from './unvotePoll';\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unvotePoll.d.ts","sourceRoot":"","sources":["../../../../src/pollRepository/api/tests/unvotePoll.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
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
+ describe('unvotePoll', () => {
8
+ beforeAll(enableCache);
9
+ afterAll(disableCache);
10
+ // integration_test_id: 2abcbca5-f845-4e96-9405-23781013738e
11
+ it('should vote', async () => {
12
+ client.http.post = jest
13
+ .fn()
14
+ .mockResolvedValueOnce({ data: { polls: [Object.assign(Object.assign({}, poll11), { isVoted: true })] } });
15
+ const callback = jest.fn();
16
+ onPollUpdated(callback);
17
+ const { data: poll } = await unvotePoll(poll11.pollId, [poll11.answers[0].id]);
18
+ const { data: cachedPoll } = getPoll.locally(poll.pollId);
19
+ await pause();
20
+ expect(poll.isVoted).toEqual(true);
21
+ expect(cachedPoll).toMatchObject(poll);
22
+ expect(callback).toHaveBeenCalledWith(poll);
23
+ });
24
+ // integration_test_id: b6ab2681-7f25-47a0-bc14-f4f542a3cf80
25
+ it('should fail to vote for in an invalid poll', async () => {
26
+ client.http.post = jest
27
+ .fn()
28
+ .mockRejectedValueOnce(new ASCError('error message', 400400 /* Amity.ServerError.ITEM_NOT_FOUND */, "fatal" /* Amity.ErrorLevel.FATAL */));
29
+ await expect(() => unvotePoll('non-existent-poll-id', ['non-existent-answer-id'])).rejects.toThrow();
30
+ });
31
+ });
32
+ //# sourceMappingURL=unvotePoll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unvotePoll.js","sourceRoot":"","sources":["../../../../src/pollRepository/api/tests/unvotePoll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,SAAS,CAAC,WAAW,CAAC,CAAC;IACvB,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEvB,4DAA4D;IAC5D,EAAE,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;QAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI;aACpB,EAAE,EAAE;aACJ,qBAAqB,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,iCAAM,MAAM,KAAE,OAAO,EAAE,IAAI,IAAG,EAAE,EAAE,CAAC,CAAC;QAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC3B,aAAa,CAAC,QAAQ,CAAC,CAAC;QAExB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/E,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC;QAC3D,MAAM,KAAK,EAAE,CAAC;QAEd,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,4DAA4D;IAC5D,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI;aACpB,EAAE,EAAE;aACJ,qBAAqB,CACpB,IAAI,QAAQ,CAAC,eAAe,sFAA2D,CACxF,CAAC;QAEJ,MAAM,MAAM,CAAC,GAAG,EAAE,CAChB,UAAU,CAAC,sBAAsB,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAC/D,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { client, pause, poll11 } from '~/utils/tests';\nimport { ASCError } from '~/core/errors';\nimport { disableCache, enableCache } from '~/cache/api';\nimport { onPollUpdated } from '~/pollRepository/events';\nimport { unvotePoll } from '../unvotePoll';\nimport { getPoll } from '../getPoll';\n\ndescribe('unvotePoll', () => {\n beforeAll(enableCache);\n afterAll(disableCache);\n\n // integration_test_id: 2abcbca5-f845-4e96-9405-23781013738e\n it('should vote', async () => {\n client.http.post = jest\n .fn()\n .mockResolvedValueOnce({ data: { polls: [{ ...poll11, isVoted: true }] } });\n const callback = jest.fn();\n onPollUpdated(callback);\n\n const { data: poll } = await unvotePoll(poll11.pollId, [poll11.answers[0].id]);\n const { data: cachedPoll } = getPoll.locally(poll.pollId)!;\n await pause();\n\n expect(poll.isVoted).toEqual(true);\n expect(cachedPoll).toMatchObject(poll);\n expect(callback).toHaveBeenCalledWith(poll);\n });\n\n // integration_test_id: b6ab2681-7f25-47a0-bc14-f4f542a3cf80\n it('should fail to vote for in an invalid poll', async () => {\n client.http.post = jest\n .fn()\n .mockRejectedValueOnce(\n new ASCError('error message', Amity.ServerError.ITEM_NOT_FOUND, Amity.ErrorLevel.FATAL),\n );\n\n await expect(() =>\n unvotePoll('non-existent-poll-id', ['non-existent-answer-id']),\n ).rejects.toThrow();\n });\n});\n"]}
@@ -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"}
@@ -0,0 +1,37 @@
1
+ import { fireEvent } from '~/core/events';
2
+ import { getActiveClient } from '~/client/api';
3
+ import { ingestInCache } from '~/cache/api/ingestInCache';
4
+ /* begin_public_function
5
+ id: poll.unvote
6
+ */
7
+ /**
8
+ * ```js
9
+ * import { unvotePoll } from '@amityco/ts-sdk'
10
+ * const updatedVote = await unvotePoll(pollId, [answerId1, answerId2])
11
+ * ```
12
+ *
13
+ * Votes for an {@link Amity.Poll}
14
+ *
15
+ * @param pollId The ID of the {@link Amity.Poll} to vote
16
+ * @param answerIds The IDs of the {@link Amity.Poll} answers to vote {@link Amity.Poll}
17
+ * @returns the updated {@link Amity.Poll} object
18
+ *
19
+ * @category Poll API
20
+ * @async
21
+ */
22
+ export const unvotePoll = async (pollId, answerIds) => {
23
+ const client = getActiveClient();
24
+ client.log('user/unvotePoll', pollId);
25
+ const { data } = await client.http.put(`/api/v3/polls/${encodeURIComponent(pollId)}/votes`, { pollId, answerIds });
26
+ const cachedAt = client.cache && Date.now();
27
+ if (client.cache)
28
+ ingestInCache(data, { cachedAt });
29
+ const { polls } = data;
30
+ fireEvent('poll.updated', data);
31
+ return {
32
+ data: polls.find(poll => poll.pollId === pollId),
33
+ cachedAt,
34
+ };
35
+ };
36
+ /* end_public_function */
37
+ //# sourceMappingURL=unvotePoll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unvotePoll.js","sourceRoot":"","sources":["../../../src/pollRepository/api/unvotePoll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D;;EAEE;AACF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,MAA4B,EAC5B,SAAmB,EACgB,EAAE;IACrC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAEtC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CACpC,iBAAiB,kBAAkB,CAAC,MAAM,CAAC,QAAQ,EACnD,EAAE,MAAM,EAAE,SAAS,EAAE,CACtB,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5C,IAAI,MAAM,CAAC,KAAK;QAAE,aAAa,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEpD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAEvB,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAEhC,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAE;QACjD,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC;AACF,yBAAyB","sourcesContent":["import { fireEvent } from '~/core/events';\nimport { getActiveClient } from '~/client/api';\n\nimport { ingestInCache } from '~/cache/api/ingestInCache';\n\n/* begin_public_function\n id: poll.unvote\n*/\n/**\n * ```js\n * import { unvotePoll } from '@amityco/ts-sdk'\n * const updatedVote = await unvotePoll(pollId, [answerId1, answerId2])\n * ```\n *\n * Votes for an {@link Amity.Poll}\n *\n * @param pollId The ID of the {@link Amity.Poll} to vote\n * @param answerIds The IDs of the {@link Amity.Poll} answers to vote {@link Amity.Poll}\n * @returns the updated {@link Amity.Poll} object\n *\n * @category Poll API\n * @async\n */\nexport const unvotePoll = async (\n pollId: Amity.Poll['pollId'],\n answerIds: string[],\n): Promise<Amity.Cached<Amity.Poll>> => {\n const client = getActiveClient();\n client.log('user/unvotePoll', pollId);\n\n const { data } = await client.http.put<Amity.PollPayload>(\n `/api/v3/polls/${encodeURIComponent(pollId)}/votes`,\n { pollId, answerIds },\n );\n\n const cachedAt = client.cache && Date.now();\n if (client.cache) ingestInCache(data, { cachedAt });\n\n const { polls } = data;\n\n fireEvent('poll.updated', data);\n\n return {\n data: polls.find(poll => poll.pollId === pollId)!,\n cachedAt,\n };\n};\n/* end_public_function */\n"]}
@@ -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"}
@@ -6,15 +6,15 @@ import { REFERENCE_API_V5 } from '~/reactionRepository/api/constants';
6
6
  import { ASCApiError } from '~/core/errors';
7
7
  export class ReactionPaginationController extends PaginationController {
8
8
  async getRequest(queryParams, token) {
9
- const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT } = queryParams, params = __rest(queryParams, ["limit"]);
9
+ const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT, referenceType } = queryParams, params = __rest(queryParams, ["limit", "referenceType"]);
10
10
  const options = token ? { token } : { limit };
11
11
  const client = getActiveClient();
12
12
  client.log('reaction/queryReactions', queryParams);
13
13
  const path = '/api/v3/reactions';
14
- if (!['post', 'comment', 'story', 'message'].includes(params.referenceType))
14
+ if (!['post', 'comment', 'story', 'message'].includes(referenceType))
15
15
  throw new ASCApiError('The reference type is not valid. It should be one of post, comment, story, or message', 400000 /* Amity.ServerError.BAD_REQUEST */, "error" /* Amity.ErrorLevel.ERROR */);
16
16
  const { data: queryResponse } = await this.http.get(path, {
17
- params: Object.assign(Object.assign({}, params), { referenceVersion: REFERENCE_API_V5, // Need to put this param to make it can query reaction for message in sub-channel
17
+ params: Object.assign(Object.assign({}, params), { referenceType, referenceVersion: referenceType === 'message' ? REFERENCE_API_V5 : undefined, // Need to put this param to make it can query reaction for message in sub-channel
18
18
  options }),
19
19
  });
20
20
  return queryResponse;
@@ -1 +1 @@
1
- {"version":3,"file":"ReactionPaginationController.js","sourceRoot":"","sources":["../../../../src/reactionRepository/observers/getReactions/ReactionPaginationController.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,mCAAmC,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,OAAO,4BAA6B,SAAQ,oBAGjD;IACC,KAAK,CAAC,UAAU,CAAC,WAAyC,EAAE,KAAyB;QACnF,MAAM,EAAE,KAAK,GAAG,mCAAmC,KAAgB,WAAW,EAAtB,MAAM,UAAK,WAAW,EAAxE,SAA0D,CAAc,CAAC;QAC/E,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,WAAW,CAAC,CAAC;QAEnD,MAAM,IAAI,GAAG,mBAAmB,CAAC;QAEjC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC;YACzE,MAAM,IAAI,WAAW,CACnB,uFAAuF,mFAGxF,CAAC;QAEJ,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CACjD,IAAI,EACJ;YACE,MAAM,kCACD,MAAM,KACT,gBAAgB,EAAE,gBAAgB,EAAE,kFAAkF;gBACtH,OAAO,GACR;SACF,CACF,CAAC;QACF,OAAO,aAAa,CAAC;IACvB,CAAC;CACF","sourcesContent":["import { getActiveClient } from '~/client';\nimport { PaginationController } from '~/core/liveCollection/PaginationController';\nimport { COLLECTION_DEFAULT_PAGINATION_LIMIT } from '~/utils/constants';\nimport { REFERENCE_API_V5 } from '~/reactionRepository/api/constants';\nimport { ASCApiError } from '~/core/errors';\n\nexport class ReactionPaginationController extends PaginationController<\n 'reaction',\n Amity.ReactionLiveCollection\n> {\n async getRequest(queryParams: Amity.ReactionLiveCollection, token: string | undefined) {\n const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT, ...params } = queryParams;\n const options = token ? { token } : { limit };\n const client = getActiveClient();\n client.log('reaction/queryReactions', queryParams);\n\n const path = '/api/v3/reactions';\n\n if (!['post', 'comment', 'story', 'message'].includes(params.referenceType))\n throw new ASCApiError(\n 'The reference type is not valid. It should be one of post, comment, story, or message',\n Amity.ServerError.BAD_REQUEST,\n Amity.ErrorLevel.ERROR,\n );\n\n const { data: queryResponse } = await this.http.get<Amity.ReactionPayload & Amity.Pagination>(\n path,\n {\n params: {\n ...params,\n referenceVersion: REFERENCE_API_V5, // Need to put this param to make it can query reaction for message in sub-channel\n options,\n },\n },\n );\n return queryResponse;\n }\n}\n"]}
1
+ {"version":3,"file":"ReactionPaginationController.js","sourceRoot":"","sources":["../../../../src/reactionRepository/observers/getReactions/ReactionPaginationController.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,mCAAmC,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,OAAO,4BAA6B,SAAQ,oBAGjD;IACC,KAAK,CAAC,UAAU,CAAC,WAAyC,EAAE,KAAyB;QACnF,MAAM,EAAE,KAAK,GAAG,mCAAmC,EAAE,aAAa,KAAgB,WAAW,EAAtB,MAAM,UAAK,WAAW,EAAvF,0BAAyE,CAAc,CAAC;QAC9F,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,WAAW,CAAC,CAAC;QAEnD,MAAM,IAAI,GAAG,mBAAmB,CAAC;QAEjC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;YAClE,MAAM,IAAI,WAAW,CACnB,uFAAuF,mFAGxF,CAAC;QAEJ,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CACjD,IAAI,EACJ;YACE,MAAM,kCACD,MAAM,KACT,aAAa,EACb,gBAAgB,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,EAAE,kFAAkF;gBAChK,OAAO,GACR;SACF,CACF,CAAC;QACF,OAAO,aAAa,CAAC;IACvB,CAAC;CACF","sourcesContent":["import { getActiveClient } from '~/client';\nimport { PaginationController } from '~/core/liveCollection/PaginationController';\nimport { COLLECTION_DEFAULT_PAGINATION_LIMIT } from '~/utils/constants';\nimport { REFERENCE_API_V5 } from '~/reactionRepository/api/constants';\nimport { ASCApiError } from '~/core/errors';\n\nexport class ReactionPaginationController extends PaginationController<\n 'reaction',\n Amity.ReactionLiveCollection\n> {\n async getRequest(queryParams: Amity.ReactionLiveCollection, token: string | undefined) {\n const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT, referenceType, ...params } = queryParams;\n const options = token ? { token } : { limit };\n const client = getActiveClient();\n client.log('reaction/queryReactions', queryParams);\n\n const path = '/api/v3/reactions';\n\n if (!['post', 'comment', 'story', 'message'].includes(referenceType))\n throw new ASCApiError(\n 'The reference type is not valid. It should be one of post, comment, story, or message',\n Amity.ServerError.BAD_REQUEST,\n Amity.ErrorLevel.ERROR,\n );\n\n const { data: queryResponse } = await this.http.get<Amity.ReactionPayload & Amity.Pagination>(\n path,\n {\n params: {\n ...params,\n referenceType,\n referenceVersion: referenceType === 'message' ? REFERENCE_API_V5 : undefined, // Need to put this param to make it can query reaction for message in sub-channel\n options,\n },\n },\n );\n return queryResponse;\n }\n}\n"]}
@@ -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"}
@@ -6,10 +6,10 @@ import { getMyMembership } from '~/channelRepository/observers/getMyMembership';
6
6
  export const channelLinkedObject = (channel) => {
7
7
  var _a;
8
8
  let previewMembers = [];
9
- if (channel.type === 'conversation') {
9
+ if (['conversation', 'community'].includes(channel.type)) {
10
10
  const channelUsers = queryCache(['channelUsers', 'get']);
11
11
  if (channelUsers && (channelUsers === null || channelUsers === void 0 ? void 0 : channelUsers.length) > 0) {
12
- previewMembers = ((_a = channelUsers === null || channelUsers === void 0 ? void 0 : channelUsers.filter(({ data }) => data.channelId === channel.channelId)) !== null && _a !== void 0 ? _a : [])
12
+ previewMembers = ((_a = channelUsers === null || channelUsers === void 0 ? void 0 : channelUsers.filter(({ data }) => data.channelId === channel.channelId && data.membership !== 'none')) !== null && _a !== void 0 ? _a : [])
13
13
  // sort in ascending order by userInternalId
14
14
  .sort((a, b) => a.data.userInternalId.localeCompare(b.data.userInternalId))
15
15
  // Select only first 4 members
@@ -1 +1 @@
1
- {"version":3,"file":"channelLinkedObject.js","sourceRoot":"","sources":["../../../src/utils/linkedObject/channelLinkedObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAEhF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAA8B,EAAiB,EAAE;;IACnF,IAAI,cAAc,GAAkC,EAAE,CAAC;IAEvD,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,EAAE;QACnC,MAAM,YAAY,GAAG,UAAU,CAA8B,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;QACtF,IAAI,YAAY,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,IAAG,CAAC,EAAE;YAC5C,cAAc,GAAG,CACf,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,mCAAI,EAAE,CAC/E;gBACC,4CAA4C;iBAC3C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC3E,8BAA8B;iBAC7B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;SACvD;KACF;IAED,OAAO,YAAY,CAAC,OAAO,EAAE;QAC3B,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC;QACvD,cAAc;QACd,YAAY,EAAE,CAAC,QAA2E,EAAE,EAAE,CAC5F,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC;KAC/C,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["import { markAsRead } from '~/channelRepository/internalApi/markAsRead';\nimport { shallowClone } from '../shallowClone';\nimport { queryCache } from '~/cache/api';\nimport { channelMemberLinkedObject } from './channelMemberLinkedObject';\nimport { getMyMembership } from '~/channelRepository/observers/getMyMembership';\n\nexport const channelLinkedObject = (channel: Amity.InternalChannel): Amity.Channel => {\n let previewMembers: Amity.Membership<'channel'>[] = [];\n\n if (channel.type === 'conversation') {\n const channelUsers = queryCache<Amity.Membership<'channel'>>(['channelUsers', 'get']);\n if (channelUsers && channelUsers?.length > 0) {\n previewMembers = (\n channelUsers?.filter(({ data }) => data.channelId === channel.channelId) ?? []\n )\n // sort in ascending order by userInternalId\n .sort((a, b) => a.data.userInternalId.localeCompare(b.data.userInternalId))\n // Select only first 4 members\n .slice(0, 4)\n .map(({ data }) => channelMemberLinkedObject(data));\n }\n }\n\n return shallowClone(channel, {\n markAsRead: () => markAsRead(channel.channelInternalId),\n previewMembers,\n myMembership: (callback: Amity.LiveObjectCallback<Amity.Membership<'channel'> | undefined>) =>\n getMyMembership(channel.channelId, callback),\n });\n};\n"]}
1
+ {"version":3,"file":"channelLinkedObject.js","sourceRoot":"","sources":["../../../src/utils/linkedObject/channelLinkedObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAEhF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAA8B,EAAiB,EAAE;;IACnF,IAAI,cAAc,GAAkC,EAAE,CAAC;IAEvD,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACxD,MAAM,YAAY,GAAG,UAAU,CAA8B,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;QACtF,IAAI,YAAY,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,IAAG,CAAC,EAAE;YAC5C,cAAc,GAAG,CACf,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,CAClB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,CACjF,mCAAI,EAAE,CACR;gBACC,4CAA4C;iBAC3C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC3E,8BAA8B;iBAC7B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;SACvD;KACF;IAED,OAAO,YAAY,CAAC,OAAO,EAAE;QAC3B,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC;QACvD,cAAc;QACd,YAAY,EAAE,CAAC,QAA2E,EAAE,EAAE,CAC5F,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC;KAC/C,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["import { markAsRead } from '~/channelRepository/internalApi/markAsRead';\nimport { shallowClone } from '../shallowClone';\nimport { queryCache } from '~/cache/api';\nimport { channelMemberLinkedObject } from './channelMemberLinkedObject';\nimport { getMyMembership } from '~/channelRepository/observers/getMyMembership';\n\nexport const channelLinkedObject = (channel: Amity.InternalChannel): Amity.Channel => {\n let previewMembers: Amity.Membership<'channel'>[] = [];\n\n if (['conversation', 'community'].includes(channel.type)) {\n const channelUsers = queryCache<Amity.Membership<'channel'>>(['channelUsers', 'get']);\n if (channelUsers && channelUsers?.length > 0) {\n previewMembers = (\n channelUsers?.filter(\n ({ data }) => data.channelId === channel.channelId && data.membership !== 'none',\n ) ?? []\n )\n // sort in ascending order by userInternalId\n .sort((a, b) => a.data.userInternalId.localeCompare(b.data.userInternalId))\n // Select only first 4 members\n .slice(0, 4)\n .map(({ data }) => channelMemberLinkedObject(data));\n }\n }\n\n return shallowClone(channel, {\n markAsRead: () => markAsRead(channel.channelInternalId),\n previewMembers,\n myMembership: (callback: Amity.LiveObjectCallback<Amity.Membership<'channel'> | undefined>) =>\n getMyMembership(channel.channelId, callback),\n });\n};\n"]}