@amityco/ts-sdk 7.7.1-00acca4a.0 → 7.7.1-11a1171d.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 (113) 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 +14 -1
  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/queryPosts.js +2 -2
  25. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/queryPosts.js.map +1 -1
  26. 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
  27. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.d.ts.map +1 -0
  28. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/{feedRepository/observers/getUserFeed/LiveCollectionController.js → postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.js} +9 -12
  29. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.js.map +1 -0
  30. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.d.ts +5 -0
  31. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.d.ts.map +1 -0
  32. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.js +27 -0
  33. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.js.map +1 -0
  34. 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
  35. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.d.ts.map +1 -0
  36. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/{feedRepository/observers/getUserFeed/QueryStreamController.js → postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.js} +6 -19
  37. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.js.map +1 -0
  38. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/index.d.ts +1 -0
  39. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/index.d.ts.map +1 -1
  40. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/index.js +1 -0
  41. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/index.js.map +1 -1
  42. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/searchPostsByHashtag.d.ts +22 -0
  43. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/searchPostsByHashtag.d.ts.map +1 -0
  44. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/searchPostsByHashtag.js +45 -0
  45. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/searchPostsByHashtag.js.map +1 -0
  46. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/tsconfig.tsbuildinfo +1 -1
  47. package/dist/@types/domains/feed.d.ts +0 -31
  48. package/dist/@types/domains/feed.d.ts.map +1 -1
  49. package/dist/@types/domains/hashtag.d.ts +11 -0
  50. package/dist/@types/domains/hashtag.d.ts.map +1 -0
  51. package/dist/@types/domains/post.d.ts +14 -1
  52. package/dist/@types/domains/post.d.ts.map +1 -1
  53. package/dist/@types/index.d.ts +1 -0
  54. package/dist/@types/index.d.ts.map +1 -1
  55. package/dist/feedRepository/index.d.ts +0 -1
  56. package/dist/feedRepository/index.d.ts.map +1 -1
  57. package/dist/index.cjs.js +1332 -1336
  58. package/dist/index.esm.js +1331 -1335
  59. package/dist/index.umd.js +4 -4
  60. package/dist/postRepository/api/createPost.d.ts +1 -1
  61. package/dist/postRepository/api/editPost.d.ts +1 -1
  62. package/dist/{feedRepository/observers/getUserFeed/LiveCollectionController.d.ts → postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.d.ts} +4 -4
  63. package/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.d.ts.map +1 -0
  64. package/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.d.ts +5 -0
  65. package/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.d.ts.map +1 -0
  66. 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
  67. package/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.d.ts.map +1 -0
  68. package/dist/postRepository/observers/index.d.ts +1 -0
  69. package/dist/postRepository/observers/index.d.ts.map +1 -1
  70. package/dist/postRepository/observers/searchPostsByHashtag.d.ts +22 -0
  71. package/dist/postRepository/observers/searchPostsByHashtag.d.ts.map +1 -0
  72. package/package.json +1 -1
  73. package/src/@types/domains/feed.ts +0 -43
  74. package/src/@types/domains/hashtag.ts +11 -0
  75. package/src/@types/domains/post.ts +18 -1
  76. package/src/@types/index.ts +1 -0
  77. package/src/feedRepository/index.ts +0 -1
  78. package/src/postRepository/api/createPost.ts +1 -1
  79. package/src/postRepository/api/editPost.ts +1 -1
  80. package/src/postRepository/api/queryPosts.ts +2 -2
  81. package/src/{feedRepository/observers/getUserFeed/LiveCollectionController.ts → postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.ts} +17 -27
  82. package/src/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.ts +49 -0
  83. package/src/{feedRepository/observers/getUserFeed/QueryStreamController.ts → postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.ts} +9 -29
  84. package/src/postRepository/observers/index.ts +1 -0
  85. package/src/postRepository/observers/searchPostsByHashtag.ts +56 -0
  86. package/tsconfig.tsbuildinfo +1 -1
  87. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/LiveCollectionController.d.ts.map +0 -1
  88. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/LiveCollectionController.js.map +0 -1
  89. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts +0 -5
  90. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts.map +0 -1
  91. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.js +0 -15
  92. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.js.map +0 -1
  93. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/QueryStreamController.d.ts.map +0 -1
  94. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/QueryStreamController.js.map +0 -1
  95. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.d.ts +0 -23
  96. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.d.ts.map +0 -1
  97. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.js +0 -46
  98. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.js.map +0 -1
  99. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.d.ts +0 -2
  100. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.d.ts.map +0 -1
  101. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.js +0 -2
  102. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.js.map +0 -1
  103. package/dist/feedRepository/observers/getUserFeed/LiveCollectionController.d.ts.map +0 -1
  104. package/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts +0 -5
  105. package/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts.map +0 -1
  106. package/dist/feedRepository/observers/getUserFeed/QueryStreamController.d.ts.map +0 -1
  107. package/dist/feedRepository/observers/getUserFeed.d.ts +0 -23
  108. package/dist/feedRepository/observers/getUserFeed.d.ts.map +0 -1
  109. package/dist/feedRepository/observers/index.d.ts +0 -2
  110. package/dist/feedRepository/observers/index.d.ts.map +0 -1
  111. package/src/feedRepository/observers/getUserFeed/PaginationController.ts +0 -37
  112. package/src/feedRepository/observers/getUserFeed.ts +0 -56
  113. 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'];
@@ -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.SearchPostWithHashtagLiveCollection, 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.SearchPostWithHashtagLiveCollection, 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;AAyB1F,qBAAa,kCAAmC,SAAQ,wBAAwB,CAC9E,MAAM,EACN,KAAK,CAAC,mCAAmC,EACzC,KAAK,CAAC,IAAI,EACV,8BAA8B,CAC/B;IACC,OAAO,CAAC,qBAAqB,CAAkC;IAE/D,OAAO,CAAC,KAAK,CAA4C;gBAGvD,KAAK,EAAE,KAAK,CAAC,mCAAmC,EAChD,QAAQ,EAAE,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC;IAoBpD,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.SearchPostWithHashtagLiveCollection> {
3
+ getRequest(queryParams: Amity.SearchPostWithHashtagLiveCollection, 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;AAGlF,qBAAa,8BAA+B,SAAQ,oBAAoB,CACtE,MAAM,EACN,KAAK,CAAC,mCAAmC,CAC1C;IACO,UAAU,CACd,WAAW,EAAE,KAAK,CAAC,mCAAmC,EACtD,KAAK,EAAE,MAAM,GAAG,SAAS;CAuC5B"}
@@ -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.SearchPostWithHashtagLiveCollection> {
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.SearchPostWithHashtagLiveCollection, 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,mCAAmC,CAC1C;IACC,OAAO,CAAC,YAAY,CAAqD;IAEzE,OAAO,CAAC,cAAc,CAA8D;gBAGlF,KAAK,EAAE,KAAK,CAAC,mCAAmC,EAChD,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.SearchPostWithHashtagLiveCollection, 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,mCAAmC,YACvC,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-00acca4a.0",
3
+ "version": "7.7.1-11a1171d.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,6 +108,15 @@ declare global {
107
108
  limit?: number;
108
109
  };
109
110
 
111
+ type QueryPostsWithHashtags = {
112
+ dataTypes?: Exclude<Amity.PostContentType, 'text'>[];
113
+ targetType: Amity.InternalPost['targetType'];
114
+ hashtags: string[];
115
+ matchingOnlyParentPost?: boolean;
116
+ page?: string;
117
+ limit?: number;
118
+ };
119
+
110
120
  // Omit sortBy explained in asc-3398
111
121
  type PostLiveCollection = Amity.LiveCollectionParams<
112
122
  Omit<QueryPosts, 'sortBy' | 'page'> & {
@@ -114,6 +124,12 @@ declare global {
114
124
  }
115
125
  >;
116
126
 
127
+ type SearchPostWithHashtagLiveCollection = Amity.LiveCollectionParams<
128
+ Omit<QueryPostsWithHashtags, 'page'> & {
129
+ sortBy?: 'lastCreated' | 'firstCreated';
130
+ }
131
+ >;
132
+
117
133
  type PostLiveCollectionCache = Amity.LiveCollectionCache<
118
134
  Amity.InternalPost['postId'],
119
135
  Pick<QueryPosts, 'page'>
@@ -125,6 +141,7 @@ declare global {
125
141
  targetType?: Amity.InternalPost['targetType'];
126
142
  dataTypes?: string[];
127
143
  matchingOnlyParentPost?: boolean;
144
+ limit?: number;
128
145
  };
129
146
 
130
147
  type SemanticSearchPostLiveCollection = Amity.LiveCollectionParams<
@@ -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'];
@@ -63,13 +63,13 @@ export const queryPosts = async (
63
63
  // const { paging, posts } = unwrapPayload(data)
64
64
  // unpacking
65
65
  const { paging, ...payload } = data;
66
- const paperedPayload = prepareMembershipPayload(payload, 'communityUsers');
66
+ const preparedPayload = prepareMembershipPayload(payload, 'communityUsers');
67
67
  const { posts } = payload;
68
68
 
69
69
  const cachedAt = client.cache && Date.now();
70
70
 
71
71
  if (client.cache) {
72
- ingestInCache(paperedPayload, { cachedAt });
72
+ ingestInCache(preparedPayload, { cachedAt });
73
73
 
74
74
  const cacheKey = ['post', 'query', { ...params, options } as Amity.Serializable];
75
75
  pushToCache(cacheKey, { posts: posts.map(getResolver('post')), paging });
@@ -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,
@@ -14,15 +14,9 @@ import {
14
14
  onPostApproved,
15
15
  onPostDeclined,
16
16
  } from '~/postRepository/events';
17
- import {
18
- filterByFeedType,
19
- filterByPostDataTypes,
20
- filterByPropEquality,
21
- sortByFirstCreated,
22
- sortByLastCreated,
23
- } from '~/core/query';
17
+ import { filterByPostDataTypes, sortByFirstCreated, sortByLastCreated } from '~/core/query';
24
18
  import { isNonNullable } from '~/utils';
25
- import { EnumPostActions } from '~/postRepository/observers/enums';
19
+ import { EnumPostActions } from '../enums';
26
20
  import { LinkedObject } from '~/utils/linkedObject';
27
21
  import { preparePostPayload } from '~/postRepository/utils/payload';
28
22
  import { convertEventPayload } from '~/utils/event';
@@ -33,28 +27,28 @@ import { onLocalPostReactionAdded } from '~/postRepository/events/onLocalPostRea
33
27
  import { onLocalPostReactionRemoved } from '~/postRepository/events/onLocalPostReactionRemoved';
34
28
  import { onLocalPostDeleted } from '~/postRepository/events/onLocalPostDeleted';
35
29
 
36
- export class UserFeedLiveCollectionController extends LiveCollectionController<
30
+ export class SearchPostLiveCollectionController extends LiveCollectionController<
37
31
  'post',
38
- Amity.UserFeedLiveCollection,
32
+ Amity.SearchPostWithHashtagLiveCollection,
39
33
  Amity.Post,
40
- UserFeedPaginationController
34
+ SearchPostPaginationController
41
35
  > {
42
- private queryStreamController: UserFeedQueryStreamController;
36
+ private queryStreamController: SearchPostQueryStreamController;
43
37
 
44
- private query: Amity.UserFeedLiveCollection;
38
+ private query: Amity.SearchPostWithHashtagLiveCollection;
45
39
 
46
40
  constructor(
47
- query: Amity.UserFeedLiveCollection,
41
+ query: Amity.SearchPostWithHashtagLiveCollection,
48
42
  callback: Amity.LiveCollectionCallback<Amity.Post>,
49
43
  ) {
50
44
  const queryStreamId = hash(query);
51
- const cacheKey = ['userFeed', 'collection', queryStreamId];
52
- const paginationController = new UserFeedPaginationController(query);
45
+ const cacheKey = ['posts', 'collection', queryStreamId];
46
+ const paginationController = new SearchPostPaginationController(query);
53
47
 
54
48
  super(paginationController, queryStreamId, cacheKey, callback);
55
49
 
56
50
  this.query = query;
57
- this.queryStreamController = new UserFeedQueryStreamController(
51
+ this.queryStreamController = new SearchPostQueryStreamController(
58
52
  this.query,
59
53
  this.cacheKey,
60
54
  this.notifyChange.bind(this),
@@ -66,7 +60,7 @@ export class UserFeedLiveCollectionController extends LiveCollectionController<
66
60
  }
67
61
 
68
62
  protected setup() {
69
- const collection = pullFromCache<Amity.UserFeedLiveCollectionCache>(this.cacheKey)?.data;
63
+ const collection = pullFromCache<Amity.PostLiveCollectionCache>(this.cacheKey)?.data;
70
64
  if (!collection) {
71
65
  pushToCache(this.cacheKey, {
72
66
  data: [],
@@ -106,7 +100,7 @@ export class UserFeedLiveCollectionController extends LiveCollectionController<
106
100
  fn: convertEventPayload(
107
101
  (callback: Amity.Listener<Amity.InternalComment>) => {
108
102
  return onCommentCreated(async (comment: Amity.InternalComment) => {
109
- const currentCollection = pullFromCache<Amity.UserFeedLiveCollectionCache>(
103
+ const currentCollection = pullFromCache<Amity.PostLiveCollectionCache>(
110
104
  this.cacheKey,
111
105
  )?.data;
112
106
 
@@ -126,7 +120,7 @@ export class UserFeedLiveCollectionController extends LiveCollectionController<
126
120
  fn: convertEventPayload(
127
121
  (callback: Amity.Listener<Amity.InternalComment>) => {
128
122
  return onCommentDeleted(async (comment: Amity.InternalComment) => {
129
- const currentCollection = pullFromCache<Amity.UserFeedLiveCollectionCache>(
123
+ const currentCollection = pullFromCache<Amity.PostLiveCollectionCache>(
130
124
  this.cacheKey,
131
125
  )?.data;
132
126
 
@@ -146,7 +140,7 @@ export class UserFeedLiveCollectionController extends LiveCollectionController<
146
140
  }
147
141
 
148
142
  notifyChange({ origin, loading, error }: Amity.LiveCollectionNotifyParams) {
149
- const collection = pullFromCache<Amity.UserFeedLiveCollectionCache>(this.cacheKey)?.data;
143
+ const collection = pullFromCache<Amity.PostLiveCollectionCache>(this.cacheKey)?.data;
150
144
  if (!collection) return;
151
145
 
152
146
  const data = this.applyFilter(
@@ -170,10 +164,6 @@ export class UserFeedLiveCollectionController extends LiveCollectionController<
170
164
  applyFilter(data: Amity.InternalPost[]) {
171
165
  let posts = data;
172
166
 
173
- if (!this.query.includeDeleted) {
174
- posts = filterByPropEquality(posts, 'isDeleted', false);
175
- }
176
-
177
167
  if (this.query.dataTypes?.length) {
178
168
  posts = filterByPostDataTypes(posts, this.query.dataTypes);
179
169
  }
@@ -0,0 +1,49 @@
1
+ import { PaginationController } from '~/core/liveCollection/PaginationController';
2
+ import { COLLECTION_DEFAULT_PAGINATION_LIMIT } from '~/utils/constants';
3
+
4
+ export class SearchPostPaginationController extends PaginationController<
5
+ 'post',
6
+ Amity.SearchPostWithHashtagLiveCollection
7
+ > {
8
+ async getRequest(
9
+ queryParams: Amity.SearchPostWithHashtagLiveCollection,
10
+ token: string | undefined,
11
+ ) {
12
+ const {
13
+ limit = COLLECTION_DEFAULT_PAGINATION_LIMIT,
14
+ matchingOnlyParentPost,
15
+ hashtags,
16
+ dataTypes,
17
+ targetType = 'all',
18
+ ...params
19
+ } = queryParams;
20
+
21
+ const baseOptions = {
22
+ type: params.sortBy || queryParams.limit ? 'pagination' : undefined,
23
+ };
24
+
25
+ const options = token ? { ...baseOptions, token } : { ...baseOptions, limit };
26
+
27
+ const { data: queryResponse } = await this.http.get<Amity.PostPayload & Amity.Pagination>(
28
+ `/api/v1/search/posts`,
29
+ {
30
+ params: {
31
+ ...params,
32
+ hashtags,
33
+ dataTypes,
34
+ targetType,
35
+ /*
36
+ * when creating post like image, file, video BE will create 2 posts
37
+ * 1. parent post to store text with dataType=text
38
+ * 2. child post to store dataTypes post data
39
+ *
40
+ * By default, BE queries only parent post
41
+ */
42
+ matchingOnlyParentPost: matchingOnlyParentPost ?? !dataTypes?.length,
43
+ options,
44
+ },
45
+ },
46
+ );
47
+ return queryResponse;
48
+ }
49
+ }
@@ -1,20 +1,20 @@
1
- import { getResolver } from '~/core/model';
2
- import { getActiveClient } from '~/client';
1
+ import { QueryStreamController } from '~/core/liveCollection/QueryStreamController';
3
2
  import { pullFromCache, pushToCache } from '~/cache/api';
4
3
  import { ingestInCache } from '~/cache/api/ingestInCache';
5
- import { EnumPostActions } from '~/postRepository/observers/enums';
6
- import { QueryStreamController } from '~/core/liveCollection/QueryStreamController';
4
+ import { getResolver } from '~/core/model';
5
+ import { getActiveClient } from '~/client';
6
+ import { EnumPostActions } from '../enums';
7
7
 
8
- export class UserFeedQueryStreamController extends QueryStreamController<
8
+ export class SearchPostQueryStreamController extends QueryStreamController<
9
9
  Amity.PostPayload,
10
- Amity.UserFeedLiveCollection
10
+ Amity.SearchPostWithHashtagLiveCollection
11
11
  > {
12
12
  private notifyChange: (params: Amity.LiveCollectionNotifyParams) => void;
13
13
 
14
14
  private preparePayload: (response: Amity.PostPayload) => Amity.ProcessedPostPayload;
15
15
 
16
16
  constructor(
17
- query: Amity.UserFeedLiveCollection,
17
+ query: Amity.SearchPostWithHashtagLiveCollection,
18
18
  cacheKey: string[],
19
19
  notifyChange: (params: Amity.LiveCollectionNotifyParams) => void,
20
20
  preparePayload: (response: Amity.PostPayload) => Amity.ProcessedPostPayload,
@@ -45,7 +45,7 @@ export class UserFeedQueryStreamController extends QueryStreamController<
45
45
  data: response.posts.map(getResolver('post')),
46
46
  });
47
47
  } else {
48
- const collection = pullFromCache<Amity.UserFeedLiveCollectionCache>(this.cacheKey)?.data;
48
+ const collection = pullFromCache<Amity.PostLiveCollectionCache>(this.cacheKey)?.data;
49
49
 
50
50
  const posts = collection?.data ?? [];
51
51
 
@@ -58,22 +58,10 @@ export class UserFeedQueryStreamController extends QueryStreamController<
58
58
 
59
59
  reactor(action: EnumPostActions) {
60
60
  return (post: Amity.InternalPost) => {
61
- const collection = pullFromCache<Amity.UserFeedLiveCollectionCache>(this.cacheKey)?.data;
61
+ const collection = pullFromCache<Amity.PostLiveCollectionCache>(this.cacheKey)?.data;
62
62
 
63
63
  if (!collection) return;
64
64
 
65
- // if the collection is parent post collection and
66
- // post is not included in the collection or post is child post
67
- if (
68
- (!this.query.dataTypes || this.query.dataTypes.length === 0) &&
69
- !collection.data.includes(post.parentPostId ? post.parentPostId : post.postId)
70
- )
71
- return;
72
-
73
- if (action === EnumPostActions.OnPostDeleted) {
74
- collection.data = collection.data.filter(postId => postId !== post.postId);
75
- }
76
-
77
65
  if (post.parentPostId && post.isDeleted) {
78
66
  const parentPost = pullFromCache<Amity.InternalPost>([
79
67
  'post',
@@ -92,14 +80,6 @@ export class UserFeedQueryStreamController extends QueryStreamController<
92
80
  }
93
81
 
94
82
  if (action === EnumPostActions.OnPostCreated || action === EnumPostActions.OnPostApproved) {
95
- if (
96
- this.query.dataTypes &&
97
- this.query.dataTypes.length > 0 &&
98
- !this.query.dataTypes.includes(post.dataType)
99
- ) {
100
- return;
101
- }
102
-
103
83
  collection.data = [...new Set([post.postId, ...collection.data])];
104
84
  }
105
85
 
@@ -3,3 +3,4 @@ export * from './getPosts';
3
3
  export * from './getPinnedPosts';
4
4
  export * from './getGlobalPinnedPosts';
5
5
  export * from './semanticSearchPosts';
6
+ export * from './searchPostsByHashtag';
@@ -0,0 +1,56 @@
1
+ import { getActiveClient } from '~/client/api';
2
+ import { dropFromCache } from '~/cache/api';
3
+
4
+ import { ENABLE_CACHE_MESSAGE } from '~/utils/constants';
5
+ import { SearchPostLiveCollectionController } from './getPostsByHashtag/SearchPostLiveCollectionController';
6
+
7
+ /* begin_public_function
8
+ id: post.query
9
+ */
10
+ /**
11
+ * ```js
12
+ * import { PostRepository } from '@amityco/ts-sdk'
13
+ *
14
+ * let posts = []
15
+ * const unsub = PostRepository.searchPostsByHashtag({
16
+ * hashtags: ['amity'],
17
+ * limit: 10,
18
+ * }, response => merge(posts, response.data))
19
+ * ```
20
+ *
21
+ * Observe all mutations on a list of {@link Amity.Post} for a given target object
22
+ *
23
+ * @param params.hashtags the hashtags to search for
24
+ * @param callback the function to call when new data are available
25
+ * @param config
26
+ * @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the messages
27
+ *
28
+ * @category Posts Live Collection
29
+ */
30
+ export const searchPostsByHashtag = (
31
+ params: Amity.SearchPostWithHashtagLiveCollection,
32
+ callback: Amity.LiveCollectionCallback<Amity.Post>,
33
+ config?: Amity.LiveCollectionConfig,
34
+ ): Amity.Unsubscriber => {
35
+ const { log, cache } = getActiveClient();
36
+
37
+ if (!cache) {
38
+ console.log(ENABLE_CACHE_MESSAGE);
39
+ }
40
+
41
+ const timestamp = Date.now();
42
+ log(`searchPostsByHashtag(tmpid: ${timestamp}) > listen`);
43
+
44
+ const postsLiveCollection = new SearchPostLiveCollectionController(params, callback);
45
+ const disposers = postsLiveCollection.startSubscription();
46
+
47
+ const cacheKey = postsLiveCollection.getCacheKey();
48
+
49
+ disposers.push(() => dropFromCache(cacheKey));
50
+
51
+ return () => {
52
+ log(`searchPostsByHashtag(tmpid: ${timestamp}) > dispose`);
53
+ disposers.forEach(fn => fn());
54
+ };
55
+ };
56
+ /* end_public_function */