@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.
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/feed.d.ts +0 -31
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/feed.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/feed.js +1 -21
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/feed.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/hashtag.d.ts +11 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/hashtag.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/hashtag.js +2 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/hashtag.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/post.d.ts +8 -3
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/post.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/post.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.d.ts +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.js +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/index.d.ts +0 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/index.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/index.js +0 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/index.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/createPost.d.ts +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/createPost.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/editPost.d.ts +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/editPost.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/getPostsByHashtag.d.ts +16 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/getPostsByHashtag.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/getPostsByHashtag.js +62 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/getPostsByHashtag.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/index.d.ts +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/index.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/index.js +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/index.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPosts/PostPaginationController.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPosts/PostPaginationController.js +2 -3
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPosts/PostPaginationController.js.map +1 -1
- 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
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/{feedRepository/observers/getUserFeed/LiveCollectionController.js → postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.js} +9 -12
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.d.ts +5 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.js +26 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.js.map +1 -0
- 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
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/{feedRepository/observers/getUserFeed/QueryStreamController.js → postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.js} +6 -19
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/index.d.ts +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/index.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/index.js +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/index.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/searchPostsByHashtag.d.ts +22 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/searchPostsByHashtag.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/searchPostsByHashtag.js +45 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/searchPostsByHashtag.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/tsconfig.tsbuildinfo +1 -1
- package/dist/@types/domains/feed.d.ts +0 -31
- package/dist/@types/domains/feed.d.ts.map +1 -1
- package/dist/@types/domains/hashtag.d.ts +11 -0
- package/dist/@types/domains/hashtag.d.ts.map +1 -0
- package/dist/@types/domains/post.d.ts +8 -3
- package/dist/@types/domains/post.d.ts.map +1 -1
- package/dist/@types/index.d.ts +1 -0
- package/dist/@types/index.d.ts.map +1 -1
- package/dist/feedRepository/index.d.ts +0 -1
- package/dist/feedRepository/index.d.ts.map +1 -1
- package/dist/index.cjs.js +1394 -1343
- package/dist/index.esm.js +1393 -1342
- package/dist/index.umd.js +4 -4
- package/dist/postRepository/api/createPost.d.ts +1 -1
- package/dist/postRepository/api/editPost.d.ts +1 -1
- package/dist/postRepository/api/getPostsByHashtag.d.ts +16 -0
- package/dist/postRepository/api/getPostsByHashtag.d.ts.map +1 -0
- package/dist/postRepository/api/index.d.ts +1 -0
- package/dist/postRepository/api/index.d.ts.map +1 -1
- package/dist/postRepository/observers/getPosts/PostPaginationController.d.ts.map +1 -1
- package/dist/{feedRepository/observers/getUserFeed/LiveCollectionController.d.ts → postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.d.ts} +4 -4
- package/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.d.ts.map +1 -0
- package/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.d.ts +5 -0
- package/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.d.ts.map +1 -0
- 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
- package/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.d.ts.map +1 -0
- package/dist/postRepository/observers/index.d.ts +1 -0
- package/dist/postRepository/observers/index.d.ts.map +1 -1
- package/dist/postRepository/observers/searchPostsByHashtag.d.ts +22 -0
- package/dist/postRepository/observers/searchPostsByHashtag.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/@types/domains/feed.ts +0 -43
- package/src/@types/domains/hashtag.ts +11 -0
- package/src/@types/domains/post.ts +12 -3
- package/src/@types/index.ts +1 -0
- package/src/feedRepository/index.ts +0 -1
- package/src/postRepository/api/createPost.ts +1 -1
- package/src/postRepository/api/editPost.ts +1 -1
- package/src/postRepository/api/getPostsByHashtag.ts +77 -0
- package/src/postRepository/api/index.ts +2 -0
- package/src/postRepository/observers/getPosts/PostPaginationController.ts +0 -3
- package/src/{feedRepository/observers/getUserFeed/LiveCollectionController.ts → postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.ts} +17 -23
- package/src/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.ts +45 -0
- package/src/{feedRepository/observers/getUserFeed/QueryStreamController.ts → postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.ts} +9 -29
- package/src/postRepository/observers/index.ts +1 -0
- package/src/postRepository/observers/searchPostsByHashtag.ts +56 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/LiveCollectionController.d.ts.map +0 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/LiveCollectionController.js.map +0 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts +0 -5
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts.map +0 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.js +0 -15
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.js.map +0 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/QueryStreamController.d.ts.map +0 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/QueryStreamController.js.map +0 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.d.ts +0 -23
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.d.ts.map +0 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.js +0 -46
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.js.map +0 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.d.ts +0 -2
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.d.ts.map +0 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.js +0 -2
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.js.map +0 -1
- package/dist/feedRepository/observers/getUserFeed/LiveCollectionController.d.ts.map +0 -1
- package/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts +0 -5
- package/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts.map +0 -1
- package/dist/feedRepository/observers/getUserFeed/QueryStreamController.d.ts.map +0 -1
- package/dist/feedRepository/observers/getUserFeed.d.ts +0 -23
- package/dist/feedRepository/observers/getUserFeed.d.ts.map +0 -1
- package/dist/feedRepository/observers/index.d.ts +0 -2
- package/dist/feedRepository/observers/index.d.ts.map +0 -1
- package/src/feedRepository/observers/getUserFeed/PaginationController.ts +0 -37
- package/src/feedRepository/observers/getUserFeed.ts +0 -56
- 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"}
|
|
@@ -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;
|
|
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 {
|
|
1
|
+
import { SearchPostPaginationController } from './SearchPostPaginationController';
|
|
2
2
|
import { LiveCollectionController } from '~/core/liveCollection/LiveCollectionController';
|
|
3
|
-
export declare class
|
|
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.
|
|
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=
|
|
14
|
+
//# sourceMappingURL=SearchPostLiveCollectionController.d.ts.map
|
package/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.d.ts.map
ADDED
|
@@ -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
|
package/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.d.ts.map
ADDED
|
@@ -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
|
-
|
|
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.
|
|
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=
|
|
15
|
+
//# sourceMappingURL=SearchPostQueryStreamController.d.ts.map
|
package/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.d.ts.map
ADDED
|
@@ -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"}
|
|
@@ -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,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
|
}
|
|
@@ -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 = {
|
package/src/@types/index.ts
CHANGED
|
@@ -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
|
+
};
|
|
@@ -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 {
|
|
4
|
-
import {
|
|
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 '
|
|
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
|
|
36
|
+
export class SearchPostLiveCollectionController extends LiveCollectionController<
|
|
36
37
|
'post',
|
|
37
|
-
Amity.
|
|
38
|
+
Amity.PostLiveCollection,
|
|
38
39
|
Amity.Post,
|
|
39
|
-
|
|
40
|
+
SearchPostPaginationController
|
|
40
41
|
> {
|
|
41
|
-
private queryStreamController:
|
|
42
|
+
private queryStreamController: SearchPostQueryStreamController;
|
|
42
43
|
|
|
43
|
-
private query: Amity.
|
|
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 = ['
|
|
51
|
-
const paginationController = new
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
+
}
|