@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.
- 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 +14 -1
- 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/queryPosts.js +2 -2
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/queryPosts.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 +27 -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 +14 -1
- 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 +1332 -1336
- package/dist/index.esm.js +1331 -1335
- 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/{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 +18 -1
- 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/queryPosts.ts +2 -2
- package/src/{feedRepository/observers/getUserFeed/LiveCollectionController.ts → postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.ts} +17 -27
- package/src/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.ts +49 -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'];
|
|
@@ -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.SearchPostWithHashtagLiveCollection, Amity.Post, SearchPostPaginationController> {
|
|
4
4
|
private queryStreamController;
|
|
5
5
|
private query;
|
|
6
|
-
constructor(query: Amity.
|
|
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=
|
|
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;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
|
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;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
|
-
|
|
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.
|
|
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=
|
|
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,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"}
|
|
@@ -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,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,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<
|
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'];
|
|
@@ -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
|
|
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(
|
|
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 {
|
|
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,
|
|
@@ -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 '
|
|
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
|
|
30
|
+
export class SearchPostLiveCollectionController extends LiveCollectionController<
|
|
37
31
|
'post',
|
|
38
|
-
Amity.
|
|
32
|
+
Amity.SearchPostWithHashtagLiveCollection,
|
|
39
33
|
Amity.Post,
|
|
40
|
-
|
|
34
|
+
SearchPostPaginationController
|
|
41
35
|
> {
|
|
42
|
-
private queryStreamController:
|
|
36
|
+
private queryStreamController: SearchPostQueryStreamController;
|
|
43
37
|
|
|
44
|
-
private query: Amity.
|
|
38
|
+
private query: Amity.SearchPostWithHashtagLiveCollection;
|
|
45
39
|
|
|
46
40
|
constructor(
|
|
47
|
-
query: Amity.
|
|
41
|
+
query: Amity.SearchPostWithHashtagLiveCollection,
|
|
48
42
|
callback: Amity.LiveCollectionCallback<Amity.Post>,
|
|
49
43
|
) {
|
|
50
44
|
const queryStreamId = hash(query);
|
|
51
|
-
const cacheKey = ['
|
|
52
|
-
const paginationController = new
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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 {
|
|
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 {
|
|
6
|
-
import {
|
|
4
|
+
import { getResolver } from '~/core/model';
|
|
5
|
+
import { getActiveClient } from '~/client';
|
|
6
|
+
import { EnumPostActions } from '../enums';
|
|
7
7
|
|
|
8
|
-
export class
|
|
8
|
+
export class SearchPostQueryStreamController extends QueryStreamController<
|
|
9
9
|
Amity.PostPayload,
|
|
10
|
-
Amity.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
|
@@ -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 */
|