@amityco/ts-sdk 7.7.1-47be9e51.0 → 7.7.1-4843378b.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 (129) hide show
  1. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/feed.d.ts +0 -31
  2. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/feed.d.ts.map +1 -1
  3. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/feed.js +1 -21
  4. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/feed.js.map +1 -1
  5. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/hashtag.d.ts +11 -0
  6. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/hashtag.d.ts.map +1 -0
  7. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/hashtag.js +2 -0
  8. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/hashtag.js.map +1 -0
  9. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/post.d.ts +8 -3
  10. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/post.d.ts.map +1 -1
  11. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/post.js.map +1 -1
  12. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.d.ts +1 -0
  13. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.d.ts.map +1 -1
  14. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.js +1 -0
  15. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.js.map +1 -1
  16. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/index.d.ts +0 -1
  17. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/index.d.ts.map +1 -1
  18. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/index.js +0 -1
  19. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/index.js.map +1 -1
  20. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/createPost.d.ts +1 -1
  21. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/createPost.js.map +1 -1
  22. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/editPost.d.ts +1 -1
  23. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/editPost.js.map +1 -1
  24. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/getPostsByHashtag.d.ts +16 -0
  25. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/getPostsByHashtag.d.ts.map +1 -0
  26. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/getPostsByHashtag.js +62 -0
  27. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/getPostsByHashtag.js.map +1 -0
  28. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/index.d.ts +1 -0
  29. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/index.d.ts.map +1 -1
  30. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/index.js +1 -0
  31. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/index.js.map +1 -1
  32. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPosts/PostPaginationController.d.ts.map +1 -1
  33. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPosts/PostPaginationController.js +2 -3
  34. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPosts/PostPaginationController.js.map +1 -1
  35. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/{feedRepository/observers/getUserFeed/LiveCollectionController.d.ts → postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.d.ts} +4 -4
  36. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.d.ts.map +1 -0
  37. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/{feedRepository/observers/getUserFeed/LiveCollectionController.js → postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.js} +9 -12
  38. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.js.map +1 -0
  39. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.d.ts +5 -0
  40. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.d.ts.map +1 -0
  41. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.js +26 -0
  42. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.js.map +1 -0
  43. package/{dist/feedRepository/observers/getUserFeed/QueryStreamController.d.ts → .rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.d.ts} +4 -4
  44. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.d.ts.map +1 -0
  45. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/{feedRepository/observers/getUserFeed/QueryStreamController.js → postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.js} +6 -19
  46. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.js.map +1 -0
  47. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/index.d.ts +1 -0
  48. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/index.d.ts.map +1 -1
  49. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/index.js +1 -0
  50. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/index.js.map +1 -1
  51. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/searchPostsByHashtag.d.ts +22 -0
  52. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/searchPostsByHashtag.d.ts.map +1 -0
  53. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/searchPostsByHashtag.js +45 -0
  54. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/searchPostsByHashtag.js.map +1 -0
  55. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/tsconfig.tsbuildinfo +1 -1
  56. package/dist/@types/domains/feed.d.ts +0 -31
  57. package/dist/@types/domains/feed.d.ts.map +1 -1
  58. package/dist/@types/domains/hashtag.d.ts +11 -0
  59. package/dist/@types/domains/hashtag.d.ts.map +1 -0
  60. package/dist/@types/domains/post.d.ts +8 -3
  61. package/dist/@types/domains/post.d.ts.map +1 -1
  62. package/dist/@types/index.d.ts +1 -0
  63. package/dist/@types/index.d.ts.map +1 -1
  64. package/dist/feedRepository/index.d.ts +0 -1
  65. package/dist/feedRepository/index.d.ts.map +1 -1
  66. package/dist/index.cjs.js +1394 -1343
  67. package/dist/index.esm.js +1393 -1342
  68. package/dist/index.umd.js +4 -4
  69. package/dist/postRepository/api/createPost.d.ts +1 -1
  70. package/dist/postRepository/api/editPost.d.ts +1 -1
  71. package/dist/postRepository/api/getPostsByHashtag.d.ts +16 -0
  72. package/dist/postRepository/api/getPostsByHashtag.d.ts.map +1 -0
  73. package/dist/postRepository/api/index.d.ts +1 -0
  74. package/dist/postRepository/api/index.d.ts.map +1 -1
  75. package/dist/postRepository/observers/getPosts/PostPaginationController.d.ts.map +1 -1
  76. package/dist/{feedRepository/observers/getUserFeed/LiveCollectionController.d.ts → postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.d.ts} +4 -4
  77. package/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.d.ts.map +1 -0
  78. package/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.d.ts +5 -0
  79. package/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.d.ts.map +1 -0
  80. package/{.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/QueryStreamController.d.ts → dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.d.ts} +4 -4
  81. package/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.d.ts.map +1 -0
  82. package/dist/postRepository/observers/index.d.ts +1 -0
  83. package/dist/postRepository/observers/index.d.ts.map +1 -1
  84. package/dist/postRepository/observers/searchPostsByHashtag.d.ts +22 -0
  85. package/dist/postRepository/observers/searchPostsByHashtag.d.ts.map +1 -0
  86. package/package.json +1 -1
  87. package/src/@types/domains/feed.ts +0 -43
  88. package/src/@types/domains/hashtag.ts +11 -0
  89. package/src/@types/domains/post.ts +12 -3
  90. package/src/@types/index.ts +1 -0
  91. package/src/feedRepository/index.ts +0 -1
  92. package/src/postRepository/api/createPost.ts +1 -1
  93. package/src/postRepository/api/editPost.ts +1 -1
  94. package/src/postRepository/api/getPostsByHashtag.ts +77 -0
  95. package/src/postRepository/api/index.ts +2 -0
  96. package/src/postRepository/observers/getPosts/PostPaginationController.ts +0 -3
  97. package/src/{feedRepository/observers/getUserFeed/LiveCollectionController.ts → postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.ts} +17 -23
  98. package/src/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.ts +45 -0
  99. package/src/{feedRepository/observers/getUserFeed/QueryStreamController.ts → postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.ts} +9 -29
  100. package/src/postRepository/observers/index.ts +1 -0
  101. package/src/postRepository/observers/searchPostsByHashtag.ts +56 -0
  102. package/tsconfig.tsbuildinfo +1 -1
  103. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/LiveCollectionController.d.ts.map +0 -1
  104. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/LiveCollectionController.js.map +0 -1
  105. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts +0 -5
  106. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts.map +0 -1
  107. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.js +0 -15
  108. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.js.map +0 -1
  109. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/QueryStreamController.d.ts.map +0 -1
  110. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/QueryStreamController.js.map +0 -1
  111. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.d.ts +0 -23
  112. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.d.ts.map +0 -1
  113. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.js +0 -46
  114. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.js.map +0 -1
  115. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.d.ts +0 -2
  116. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.d.ts.map +0 -1
  117. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.js +0 -2
  118. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.js.map +0 -1
  119. package/dist/feedRepository/observers/getUserFeed/LiveCollectionController.d.ts.map +0 -1
  120. package/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts +0 -5
  121. package/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts.map +0 -1
  122. package/dist/feedRepository/observers/getUserFeed/QueryStreamController.d.ts.map +0 -1
  123. package/dist/feedRepository/observers/getUserFeed.d.ts +0 -23
  124. package/dist/feedRepository/observers/getUserFeed.d.ts.map +0 -1
  125. package/dist/feedRepository/observers/index.d.ts +0 -2
  126. package/dist/feedRepository/observers/index.d.ts.map +0 -1
  127. package/src/feedRepository/observers/getUserFeed/PaginationController.ts +0 -37
  128. package/src/feedRepository/observers/getUserFeed.ts +0 -56
  129. package/src/feedRepository/observers/index.ts +0 -1
@@ -16,7 +16,7 @@
16
16
  * @category Post API
17
17
  * @async
18
18
  */
19
- export declare const createPost: <T extends string>(bundle: Pick<Amity.Post<T>, "targetId" | "targetType"> & Partial<Pick<Amity.Post<T>, "tags" | "metadata" | "mentionees">> & {
19
+ export declare const createPost: <T extends string>(bundle: Pick<Amity.Post<T>, "targetId" | "targetType"> & Partial<Pick<Amity.Post<T>, "tags" | "metadata" | "mentionees" | "hashtags">> & {
20
20
  dataType?: T | undefined;
21
21
  data?: {
22
22
  [k: string]: any;
@@ -15,7 +15,7 @@
15
15
  * @category Post API
16
16
  * @async
17
17
  */
18
- export declare const editPost: <T extends string>(postId: Amity.Post['postId'], patch: Partial<Pick<Amity.Post<any>, "tags" | "metadata" | "data" | "mentionees">> & {
18
+ export declare const editPost: <T extends string>(postId: Amity.Post['postId'], patch: Partial<Pick<Amity.Post<any>, "tags" | "metadata" | "data" | "mentionees" | "hashtags">> & {
19
19
  attachments?: {
20
20
  type: T;
21
21
  fileId: Amity.File['fileId'];
@@ -0,0 +1,16 @@
1
+ /**
2
+ * ```js
3
+ * import { searchPostsByHashtag } from '@amityco/ts-sdk'
4
+ * const { data: posts, prevPage, nextPage } = await searchPostsByHashtag({ hashtags: ['amity'], limit: 10 });
5
+ * ```
6
+ *
7
+ * Queries a paginable list of {@link Amity.Post} objects
8
+ *
9
+ * @param query The query parameters
10
+ * @returns posts
11
+ *
12
+ * @category Post API
13
+ * @async
14
+ */
15
+ export declare const getPostsByHashtag: (query: Amity.QueryPostsWithHashtags) => Promise<Amity.Cached<Amity.PageToken<Amity.Post>>>;
16
+ //# sourceMappingURL=getPostsByHashtag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPostsByHashtag.d.ts","sourceRoot":"","sources":["../../../src/postRepository/api/getPostsByHashtag.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,iBAAiB,UACrB,MAAM,sBAAsB,KAClC,QAAQ,MAAM,MAAM,CAAC,MAAM,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAkDnD,CAAC"}
@@ -10,4 +10,5 @@ export * from './flagPost';
10
10
  export * from './unflagPost';
11
11
  export * from './isPostFlaggedByMe';
12
12
  export * from './createClipPost';
13
+ export * from './getPostsByHashtag';
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/postRepository/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAE/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAE3B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAE9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AAEpC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/postRepository/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAE/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAE3B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAE9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AAEpC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PostPaginationController.d.ts","sourceRoot":"","sources":["../../../../src/postRepository/observers/getPosts/PostPaginationController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAIlF,qBAAa,wBAAyB,SAAQ,oBAAoB,CAChE,MAAM,EACN,KAAK,CAAC,kBAAkB,CACzB;IACO,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS;CAoClF"}
1
+ {"version":3,"file":"PostPaginationController.d.ts","sourceRoot":"","sources":["../../../../src/postRepository/observers/getPosts/PostPaginationController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAGlF,qBAAa,wBAAyB,SAAQ,oBAAoB,CAChE,MAAM,EACN,KAAK,CAAC,kBAAkB,CACzB;IACO,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS;CAkClF"}
@@ -1,9 +1,9 @@
1
- import { UserFeedPaginationController } from './PaginationController';
1
+ import { SearchPostPaginationController } from './SearchPostPaginationController';
2
2
  import { LiveCollectionController } from '~/core/liveCollection/LiveCollectionController';
3
- export declare class UserFeedLiveCollectionController extends LiveCollectionController<'post', Amity.UserFeedLiveCollection, Amity.Post, UserFeedPaginationController> {
3
+ export declare class SearchPostLiveCollectionController extends LiveCollectionController<'post', Amity.PostLiveCollection, Amity.Post, SearchPostPaginationController> {
4
4
  private queryStreamController;
5
5
  private query;
6
- constructor(query: Amity.UserFeedLiveCollection, callback: Amity.LiveCollectionCallback<Amity.Post>);
6
+ constructor(query: Amity.PostLiveCollection, callback: Amity.LiveCollectionCallback<Amity.Post>);
7
7
  protected setup(): void;
8
8
  protected persistModel(queryPayload: Amity.PostPayload & Amity.Pagination): Promise<void>;
9
9
  protected persistQueryStream({ response, direction, refresh, }: Amity.LiveCollectionPersistQueryStreamParams<'post'>): void;
@@ -11,4 +11,4 @@ export declare class UserFeedLiveCollectionController extends LiveCollectionCont
11
11
  notifyChange({ origin, loading, error }: Amity.LiveCollectionNotifyParams): void;
12
12
  applyFilter(data: Amity.InternalPost[]): Amity.InternalPost<any>[];
13
13
  }
14
- //# sourceMappingURL=LiveCollectionController.d.ts.map
14
+ //# sourceMappingURL=SearchPostLiveCollectionController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchPostLiveCollectionController.d.ts","sourceRoot":"","sources":["../../../../src/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AA+B1F,qBAAa,kCAAmC,SAAQ,wBAAwB,CAC9E,MAAM,EACN,KAAK,CAAC,kBAAkB,EACxB,KAAK,CAAC,IAAI,EACV,8BAA8B,CAC/B;IACC,OAAO,CAAC,qBAAqB,CAAkC;IAE/D,OAAO,CAAC,KAAK,CAA2B;gBAE5B,KAAK,EAAE,KAAK,CAAC,kBAAkB,EAAE,QAAQ,EAAE,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC;IAmB/F,SAAS,CAAC,KAAK;cAUC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU;IAI/E,SAAS,CAAC,kBAAkB,CAAC,EAC3B,QAAQ,EACR,SAAS,EACT,OAAO,GACR,EAAE,KAAK,CAAC,sCAAsC,CAAC,MAAM,CAAC;IAIvD,iBAAiB;IA0DjB,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,0BAA0B;IAsBzE,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE;CAmBvC"}
@@ -0,0 +1,5 @@
1
+ import { PaginationController } from '~/core/liveCollection/PaginationController';
2
+ export declare class SearchPostPaginationController extends PaginationController<'post', Amity.PostLiveCollection> {
3
+ getRequest(queryParams: Amity.PostLiveCollection, token: string | undefined): Promise<Amity.PostPayload<any> & Amity.Pagination>;
4
+ }
5
+ //# sourceMappingURL=SearchPostPaginationController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchPostPaginationController.d.ts","sourceRoot":"","sources":["../../../../src/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAIlF,qBAAa,8BAA+B,SAAQ,oBAAoB,CACtE,MAAM,EACN,KAAK,CAAC,kBAAkB,CACzB;IACO,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS;CAoClF"}
@@ -1,9 +1,9 @@
1
- import { EnumPostActions } from '~/postRepository/observers/enums';
2
1
  import { QueryStreamController } from '~/core/liveCollection/QueryStreamController';
3
- export declare class UserFeedQueryStreamController extends QueryStreamController<Amity.PostPayload, Amity.UserFeedLiveCollection> {
2
+ import { EnumPostActions } from '../enums';
3
+ export declare class SearchPostQueryStreamController extends QueryStreamController<Amity.PostPayload, Amity.PostLiveCollection> {
4
4
  private notifyChange;
5
5
  private preparePayload;
6
- constructor(query: Amity.UserFeedLiveCollection, cacheKey: string[], notifyChange: (params: Amity.LiveCollectionNotifyParams) => void, preparePayload: (response: Amity.PostPayload) => Amity.ProcessedPostPayload);
6
+ constructor(query: Amity.PostLiveCollection, cacheKey: string[], notifyChange: (params: Amity.LiveCollectionNotifyParams) => void, preparePayload: (response: Amity.PostPayload) => Amity.ProcessedPostPayload);
7
7
  saveToMainDB(response: Amity.PostPayload): Promise<void>;
8
8
  appendToQueryStream(response: Amity.PostPayload & Partial<Amity.Pagination>, direction: Amity.LiveCollectionPageDirection, refresh?: boolean): void;
9
9
  reactor(action: EnumPostActions): (post: Amity.InternalPost) => void;
@@ -12,4 +12,4 @@ export declare class UserFeedQueryStreamController extends QueryStreamController
12
12
  action: EnumPostActions;
13
13
  }[]): Amity.Unsubscriber[];
14
14
  }
15
- //# sourceMappingURL=QueryStreamController.d.ts.map
15
+ //# sourceMappingURL=SearchPostQueryStreamController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchPostQueryStreamController.d.ts","sourceRoot":"","sources":["../../../../src/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAKpF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,qBAAa,+BAAgC,SAAQ,qBAAqB,CACxE,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,kBAAkB,CACzB;IACC,OAAO,CAAC,YAAY,CAAqD;IAEzE,OAAO,CAAC,cAAc,CAA8D;gBAGlF,KAAK,EAAE,KAAK,CAAC,kBAAkB,EAC/B,QAAQ,EAAE,MAAM,EAAE,EAClB,YAAY,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,0BAA0B,KAAK,IAAI,EAChE,cAAc,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,oBAAoB;IAOvE,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW;IAW9C,mBAAmB,CACjB,QAAQ,EAAE,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EACvD,SAAS,EAAE,KAAK,CAAC,2BAA2B,EAC5C,OAAO,UAAQ;IAkBjB,OAAO,CAAC,MAAM,EAAE,eAAe,UACf,MAAM,YAAY;IA+BlC,YAAY,CACV,gBAAgB,EAAE;QAChB,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,KAAK,IAAI,KAAK,KAAK,CAAC,YAAY,CAAC;QACxE,MAAM,EAAE,eAAe,CAAC;KACzB,EAAE;CAIN"}
@@ -3,4 +3,5 @@ export * from './getPosts';
3
3
  export * from './getPinnedPosts';
4
4
  export * from './getGlobalPinnedPosts';
5
5
  export * from './semanticSearchPosts';
6
+ export * from './searchPostsByHashtag';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/postRepository/observers/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/postRepository/observers/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * ```js
3
+ * import { PostRepository } from '@amityco/ts-sdk'
4
+ *
5
+ * let posts = []
6
+ * const unsub = PostRepository.searchPostsByHashtag({
7
+ * hashtags: ['amity'],
8
+ * limit: 10,
9
+ * }, response => merge(posts, response.data))
10
+ * ```
11
+ *
12
+ * Observe all mutations on a list of {@link Amity.Post} for a given target object
13
+ *
14
+ * @param params.hashtags the hashtags to search for
15
+ * @param callback the function to call when new data are available
16
+ * @param config
17
+ * @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the messages
18
+ *
19
+ * @category Posts Live Collection
20
+ */
21
+ export declare const searchPostsByHashtag: (params: Amity.PostLiveCollection, callback: Amity.LiveCollectionCallback<Amity.Post>, config?: Amity.LiveCollectionConfig) => Amity.Unsubscriber;
22
+ //# sourceMappingURL=searchPostsByHashtag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchPostsByHashtag.d.ts","sourceRoot":"","sources":["../../../src/postRepository/observers/searchPostsByHashtag.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,oBAAoB,WACvB,MAAM,kBAAkB,YACtB,MAAM,sBAAsB,CAAC,MAAM,IAAI,CAAC,WACzC,MAAM,oBAAoB,KAClC,MAAM,YAqBR,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amityco/ts-sdk",
3
- "version": "7.7.1-47be9e51.0",
3
+ "version": "7.7.1-4843378b.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",
@@ -1,34 +1,7 @@
1
1
  export {};
2
2
 
3
- export const enum FeedDataTypeEnum {
4
- Video = 'video',
5
- Image = 'image',
6
- File = 'file',
7
- LiveStream = 'liveStream',
8
- Clip = 'clip',
9
- Poll = 'poll',
10
- }
11
-
12
- export const enum FeedSortByEnum {
13
- LastCreated = 'lastCreated',
14
- FirstCreated = 'firstCreated',
15
- LastUpdated = 'lastUpdated',
16
- FirstUpdated = 'firstUpdated',
17
- }
18
-
19
- export const enum FeedSourceEnum {
20
- Community = 'community',
21
- User = 'user',
22
- }
23
-
24
3
  declare global {
25
4
  namespace Amity {
26
- type FeedDataType = FeedDataTypeEnum;
27
-
28
- type FeedSortBy = FeedSortByEnum;
29
-
30
- type FeedSource = FeedSourceEnum;
31
-
32
5
  type Feed = {
33
6
  feedId: string;
34
7
  feedType: 'reviewing' | 'published';
@@ -42,21 +15,5 @@ declare global {
42
15
  queryToken?: string;
43
16
  resolveParent?: boolean;
44
17
  };
45
-
46
- type QueryUserFeed = {
47
- userId: string;
48
- includeDeleted?: boolean;
49
- sortBy?: Amity.FeedSortBy;
50
- dataTypes?: Amity.FeedDataType[];
51
- matchingOnlyParentPost?: boolean;
52
- feedSources?: Amity.FeedSource[];
53
- };
54
-
55
- type UserFeedLiveCollection = Amity.LiveCollectionParams<QueryUserFeed>;
56
-
57
- type UserFeedLiveCollectionCache = Amity.LiveCollectionCache<
58
- Amity.InternalPost['postId'],
59
- QueryUserFeed
60
- >;
61
18
  }
62
19
  }
@@ -0,0 +1,11 @@
1
+ export {};
2
+
3
+ declare global {
4
+ namespace Amity {
5
+ type Hashtag = {
6
+ text: string;
7
+ index: number;
8
+ length: number;
9
+ };
10
+ }
11
+ }
@@ -11,7 +11,7 @@ export const PostContentType = Object.freeze({
11
11
  declare global {
12
12
  namespace Amity {
13
13
  // bad hack until we get proper feed objects in backend
14
- type PostTargetType = Amity.Feed['targetType'] | 'content';
14
+ type PostTargetType = Amity.Feed['targetType'] | 'content' | 'all';
15
15
 
16
16
  type PostContentType = ValueOf<typeof PostContentType> | string;
17
17
 
@@ -66,6 +66,7 @@ declare global {
66
66
  reactionsCount: number;
67
67
  reactions: Record<string, number>;
68
68
  myReactions?: string[];
69
+ hashtags?: string[];
69
70
  } & Amity.Content<T> &
70
71
  Amity.Mentionable<'user'>;
71
72
 
@@ -107,16 +108,24 @@ declare global {
107
108
  limit?: number;
108
109
  };
109
110
 
111
+ type QueryPostsWithHashtags = Pick<
112
+ Amity.QueryPosts,
113
+ 'dataTypes' | 'matchingOnlyParentPost' | 'sortBy' | 'page' | 'limit'
114
+ > & {
115
+ hashtags: string[];
116
+ };
117
+
110
118
  // Omit sortBy explained in asc-3398
111
119
  type PostLiveCollection = Amity.LiveCollectionParams<
112
- Omit<QueryPosts, 'sortBy' | 'page'> & {
120
+ Omit<QueryPosts | QueryPostsWithHashtags, 'sortBy' | 'page' | 'hashtags'> & {
113
121
  sortBy?: 'lastCreated' | 'firstCreated';
122
+ hashtags?: string[];
114
123
  }
115
124
  >;
116
125
 
117
126
  type PostLiveCollectionCache = Amity.LiveCollectionCache<
118
127
  Amity.InternalPost['postId'],
119
- Pick<QueryPosts, 'page'>
128
+ Pick<QueryPosts | QueryPostsWithHashtags, 'page'>
120
129
  >;
121
130
 
122
131
  type QuerySemanticSearchPosts = {
@@ -44,3 +44,4 @@ export * from './domains/joinRequest';
44
44
  export * from './domains/pin';
45
45
  export * from './domains/pinnedPost';
46
46
  export * from './domains/liveReaction';
47
+ export * from './domains/hashtag';
@@ -1,2 +1 @@
1
1
  export * from './api';
2
- export * from './observers';
@@ -28,7 +28,7 @@ import { preparePostPayload } from '../utils/payload';
28
28
  */
29
29
  export const createPost = async <T extends Amity.PostContentType | string>(
30
30
  bundle: Pick<Amity.Post<T>, 'targetType' | 'targetId'> &
31
- Partial<Pick<Amity.Post<T>, 'metadata' | 'mentionees' | 'tags'>> & {
31
+ Partial<Pick<Amity.Post<T>, 'metadata' | 'mentionees' | 'tags' | 'hashtags'>> & {
32
32
  dataType?: T;
33
33
  data?: { [k: string]: any };
34
34
  attachments?: { type: T; fileId: Amity.File['fileId'] }[];
@@ -27,7 +27,7 @@ import { LinkedObject } from '~/utils/linkedObject';
27
27
  */
28
28
  export const editPost = async <T extends Amity.PostContentType>(
29
29
  postId: Amity.Post['postId'],
30
- patch: Patch<Amity.Post, 'data' | 'metadata' | 'mentionees' | 'tags'> & {
30
+ patch: Patch<Amity.Post, 'data' | 'metadata' | 'mentionees' | 'tags' | 'hashtags'> & {
31
31
  attachments?: {
32
32
  type: T;
33
33
  fileId: Amity.File['fileId'];
@@ -0,0 +1,77 @@
1
+ import { getActiveClient } from '~/client/api';
2
+
3
+ import { pushToCache } from '~/cache/api';
4
+ import { ingestInCache } from '~/cache/api/ingestInCache';
5
+ import { getResolver } from '~/core/model';
6
+
7
+ import { prepareMembershipPayload } from '~/group/utils';
8
+ import { inferIsDeleted } from '~/utils/inferIsDeleted';
9
+ import { LinkedObject } from '~/utils/linkedObject';
10
+
11
+ /**
12
+ * ```js
13
+ * import { searchPostsByHashtag } from '@amityco/ts-sdk'
14
+ * const { data: posts, prevPage, nextPage } = await searchPostsByHashtag({ hashtags: ['amity'], limit: 10 });
15
+ * ```
16
+ *
17
+ * Queries a paginable list of {@link Amity.Post} objects
18
+ *
19
+ * @param query The query parameters
20
+ * @returns posts
21
+ *
22
+ * @category Post API
23
+ * @async
24
+ */
25
+ export const getPostsByHashtag = async (
26
+ query: Amity.QueryPostsWithHashtags,
27
+ ): Promise<Amity.Cached<Amity.PageToken<Amity.Post>>> => {
28
+ const client = getActiveClient();
29
+ client.log('post/queryByHashtag', query);
30
+
31
+ const { page, limit = 10, ...params } = query;
32
+ const { dataTypes, matchingOnlyParentPost, hashtags } = params;
33
+
34
+ const options = (() => {
35
+ if (page) return { token: page };
36
+ if (limit) return { limit };
37
+
38
+ return undefined;
39
+ })();
40
+
41
+ // API-FIX: parameters should be querystring. (1)
42
+ // API-FIX: backend should answer Amity.Response (2)
43
+ // const { data } = await client.http.get<Amity.Response<Amity.PagedResponse<Amity.PostPayload>>>(
44
+ const { data } = await client.http.get<Amity.PostPayload & Amity.Pagination>(`/api/v5/posts`, {
45
+ params: {
46
+ ...params,
47
+ hashtags,
48
+ /*
49
+ * when creating post like image, file, video BE will create 2 posts
50
+ * 1. parent post to store text with dataType=text
51
+ * 2. child post to store dataTypes post data
52
+ *
53
+ * By default, BE queries only parent post
54
+ */
55
+ matchingOnlyParentPost: matchingOnlyParentPost ?? !dataTypes?.length,
56
+ options,
57
+ },
58
+ });
59
+
60
+ // API-FIX: backend should answer Amity.Response (2)
61
+ // const { paging, posts } = unwrapPayload(data)
62
+ // unpacking
63
+ const { paging, ...payload } = data;
64
+ const paperedPayload = prepareMembershipPayload(payload, 'communityUsers');
65
+ const { posts } = payload;
66
+
67
+ const cachedAt = client.cache && Date.now();
68
+
69
+ if (client.cache) {
70
+ ingestInCache(paperedPayload, { cachedAt });
71
+
72
+ const cacheKey = ['post', 'query', { ...params, options } as Amity.Serializable];
73
+ pushToCache(cacheKey, { posts: posts.map(getResolver('post')), paging });
74
+ }
75
+
76
+ return { data: posts.map(LinkedObject.post), cachedAt, paging };
77
+ };
@@ -15,3 +15,5 @@ export * from './unflagPost';
15
15
  export * from './isPostFlaggedByMe';
16
16
 
17
17
  export * from './createClipPost';
18
+
19
+ export * from './getPostsByHashtag';
@@ -1,6 +1,5 @@
1
1
  import { PaginationController } from '~/core/liveCollection/PaginationController';
2
2
  import { COLLECTION_DEFAULT_PAGINATION_LIMIT } from '~/utils/constants';
3
- import { inferIsDeleted } from '~/utils/inferIsDeleted';
4
3
 
5
4
  export class PostPaginationController extends PaginationController<
6
5
  'post',
@@ -9,7 +8,6 @@ export class PostPaginationController extends PaginationController<
9
8
  async getRequest(queryParams: Amity.PostLiveCollection, token: string | undefined) {
10
9
  const {
11
10
  limit = COLLECTION_DEFAULT_PAGINATION_LIMIT,
12
- includeDeleted,
13
11
  matchingOnlyParentPost,
14
12
  ...params
15
13
  } = queryParams;
@@ -27,7 +25,6 @@ export class PostPaginationController extends PaginationController<
27
25
  {
28
26
  params: {
29
27
  ...params,
30
- isDeleted: inferIsDeleted(includeDeleted),
31
28
  /*
32
29
  * when creating post like image, file, video BE will create 2 posts
33
30
  * 1. parent post to store text with dataType=text
@@ -1,7 +1,7 @@
1
1
  import hash from 'object-hash';
2
2
  import { pullFromCache, pushToCache } from '~/cache/api';
3
- import { UserFeedPaginationController } from './PaginationController';
4
- import { UserFeedQueryStreamController } from './QueryStreamController';
3
+ import { SearchPostPaginationController } from './SearchPostPaginationController';
4
+ import { SearchPostQueryStreamController } from './SearchPostQueryStreamController';
5
5
  import { LiveCollectionController } from '~/core/liveCollection/LiveCollectionController';
6
6
  import {
7
7
  onPostCreated,
@@ -15,13 +15,14 @@ import {
15
15
  onPostDeclined,
16
16
  } from '~/postRepository/events';
17
17
  import {
18
+ filterByFeedType,
18
19
  filterByPostDataTypes,
19
20
  filterByPropEquality,
20
21
  sortByFirstCreated,
21
22
  sortByLastCreated,
22
23
  } from '~/core/query';
23
24
  import { isNonNullable } from '~/utils';
24
- import { EnumPostActions } from '~/postRepository/observers/enums';
25
+ import { EnumPostActions } from '../enums';
25
26
  import { LinkedObject } from '~/utils/linkedObject';
26
27
  import { preparePostPayload } from '~/postRepository/utils/payload';
27
28
  import { convertEventPayload } from '~/utils/event';
@@ -32,28 +33,25 @@ import { onLocalPostReactionAdded } from '~/postRepository/events/onLocalPostRea
32
33
  import { onLocalPostReactionRemoved } from '~/postRepository/events/onLocalPostReactionRemoved';
33
34
  import { onLocalPostDeleted } from '~/postRepository/events/onLocalPostDeleted';
34
35
 
35
- export class UserFeedLiveCollectionController extends LiveCollectionController<
36
+ export class SearchPostLiveCollectionController extends LiveCollectionController<
36
37
  'post',
37
- Amity.UserFeedLiveCollection,
38
+ Amity.PostLiveCollection,
38
39
  Amity.Post,
39
- UserFeedPaginationController
40
+ SearchPostPaginationController
40
41
  > {
41
- private queryStreamController: UserFeedQueryStreamController;
42
+ private queryStreamController: SearchPostQueryStreamController;
42
43
 
43
- private query: Amity.UserFeedLiveCollection;
44
+ private query: Amity.PostLiveCollection;
44
45
 
45
- constructor(
46
- query: Amity.UserFeedLiveCollection,
47
- callback: Amity.LiveCollectionCallback<Amity.Post>,
48
- ) {
46
+ constructor(query: Amity.PostLiveCollection, callback: Amity.LiveCollectionCallback<Amity.Post>) {
49
47
  const queryStreamId = hash(query);
50
- const cacheKey = ['userFeed', 'collection', queryStreamId];
51
- const paginationController = new UserFeedPaginationController(query);
48
+ const cacheKey = ['posts', 'collection', queryStreamId];
49
+ const paginationController = new SearchPostPaginationController(query);
52
50
 
53
51
  super(paginationController, queryStreamId, cacheKey, callback);
54
52
 
55
53
  this.query = query;
56
- this.queryStreamController = new UserFeedQueryStreamController(
54
+ this.queryStreamController = new SearchPostQueryStreamController(
57
55
  this.query,
58
56
  this.cacheKey,
59
57
  this.notifyChange.bind(this),
@@ -65,7 +63,7 @@ export class UserFeedLiveCollectionController extends LiveCollectionController<
65
63
  }
66
64
 
67
65
  protected setup() {
68
- const collection = pullFromCache<Amity.UserFeedLiveCollectionCache>(this.cacheKey)?.data;
66
+ const collection = pullFromCache<Amity.PostLiveCollectionCache>(this.cacheKey)?.data;
69
67
  if (!collection) {
70
68
  pushToCache(this.cacheKey, {
71
69
  data: [],
@@ -105,7 +103,7 @@ export class UserFeedLiveCollectionController extends LiveCollectionController<
105
103
  fn: convertEventPayload(
106
104
  (callback: Amity.Listener<Amity.InternalComment>) => {
107
105
  return onCommentCreated(async (comment: Amity.InternalComment) => {
108
- const currentCollection = pullFromCache<Amity.UserFeedLiveCollectionCache>(
106
+ const currentCollection = pullFromCache<Amity.PostLiveCollectionCache>(
109
107
  this.cacheKey,
110
108
  )?.data;
111
109
 
@@ -125,7 +123,7 @@ export class UserFeedLiveCollectionController extends LiveCollectionController<
125
123
  fn: convertEventPayload(
126
124
  (callback: Amity.Listener<Amity.InternalComment>) => {
127
125
  return onCommentDeleted(async (comment: Amity.InternalComment) => {
128
- const currentCollection = pullFromCache<Amity.UserFeedLiveCollectionCache>(
126
+ const currentCollection = pullFromCache<Amity.PostLiveCollectionCache>(
129
127
  this.cacheKey,
130
128
  )?.data;
131
129
 
@@ -145,7 +143,7 @@ export class UserFeedLiveCollectionController extends LiveCollectionController<
145
143
  }
146
144
 
147
145
  notifyChange({ origin, loading, error }: Amity.LiveCollectionNotifyParams) {
148
- const collection = pullFromCache<Amity.UserFeedLiveCollectionCache>(this.cacheKey)?.data;
146
+ const collection = pullFromCache<Amity.PostLiveCollectionCache>(this.cacheKey)?.data;
149
147
  if (!collection) return;
150
148
 
151
149
  const data = this.applyFilter(
@@ -169,10 +167,6 @@ export class UserFeedLiveCollectionController extends LiveCollectionController<
169
167
  applyFilter(data: Amity.InternalPost[]) {
170
168
  let posts = data;
171
169
 
172
- if (!this.query.includeDeleted) {
173
- posts = filterByPropEquality(posts, 'isDeleted', false);
174
- }
175
-
176
170
  if (this.query.dataTypes?.length) {
177
171
  posts = filterByPostDataTypes(posts, this.query.dataTypes);
178
172
  }
@@ -0,0 +1,45 @@
1
+ import { PaginationController } from '~/core/liveCollection/PaginationController';
2
+ import { COLLECTION_DEFAULT_PAGINATION_LIMIT } from '~/utils/constants';
3
+ import { inferIsDeleted } from '~/utils/inferIsDeleted';
4
+
5
+ export class SearchPostPaginationController extends PaginationController<
6
+ 'post',
7
+ Amity.PostLiveCollection
8
+ > {
9
+ async getRequest(queryParams: Amity.PostLiveCollection, token: string | undefined) {
10
+ const {
11
+ limit = COLLECTION_DEFAULT_PAGINATION_LIMIT,
12
+ matchingOnlyParentPost,
13
+ hashtags,
14
+ ...params
15
+ } = queryParams;
16
+
17
+ const { dataTypes } = params;
18
+
19
+ const baseOptions = {
20
+ type: params.sortBy || queryParams.limit ? 'pagination' : undefined,
21
+ };
22
+
23
+ const options = token ? { ...baseOptions, token } : { ...baseOptions, limit };
24
+
25
+ const { data: queryResponse } = await this.http.get<Amity.PostPayload & Amity.Pagination>(
26
+ `/api/v1/search/posts`,
27
+ {
28
+ params: {
29
+ ...params,
30
+ hashtags,
31
+ /*
32
+ * when creating post like image, file, video BE will create 2 posts
33
+ * 1. parent post to store text with dataType=text
34
+ * 2. child post to store dataTypes post data
35
+ *
36
+ * By default, BE queries only parent post
37
+ */
38
+ matchingOnlyParentPost: matchingOnlyParentPost ?? !dataTypes?.length,
39
+ options,
40
+ },
41
+ },
42
+ );
43
+ return queryResponse;
44
+ }
45
+ }