@amityco/ts-sdk 7.8.1-837b630.0 → 7.8.1-dbb2fc7.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/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/notification.d.ts +2 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/notification.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/notification.js.map +1 -1
- 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/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/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.d.ts +14 -0
- 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/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.js +126 -0
- 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/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.d.ts +15 -0
- 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/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.js +65 -0
- 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/hashtag.d.ts +11 -0
- package/dist/@types/domains/hashtag.d.ts.map +1 -0
- package/dist/@types/domains/notification.d.ts +2 -1
- package/dist/@types/domains/notification.d.ts.map +1 -1
- 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/index.cjs.js +234 -1
- package/dist/index.esm.js +234 -1
- 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/observers/getPostsByHashtag/SearchPostLiveCollectionController.d.ts +14 -0
- 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/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.d.ts +15 -0
- 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/hashtag.ts +11 -0
- package/src/@types/domains/notification.ts +1 -0
- package/src/@types/domains/post.ts +18 -1
- package/src/@types/index.ts +1 -0
- 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/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.ts +183 -0
- package/src/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.ts +49 -0
- package/src/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.ts +99 -0
- package/src/postRepository/observers/index.ts +1 -0
- package/src/postRepository/observers/searchPostsByHashtag.ts +56 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hashtag.d.ts","sourceRoot":"","sources":["../../../src/@types/domains/hashtag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC;AAEV,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,KAAK,CAAC;QACd,KAAK,OAAO,GAAG;YACb,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;KACH;CACF"}
|
|
@@ -9,7 +9,8 @@ declare global {
|
|
|
9
9
|
POST_REACT = "reaction_on_post",
|
|
10
10
|
COMMENT_REACT = "reaction_on_comment",
|
|
11
11
|
REPLY_REACT = "reaction_on_reply",
|
|
12
|
-
RESPONSE_JOIN_REQUEST = "respond_on_join_request"
|
|
12
|
+
RESPONSE_JOIN_REQUEST = "respond_on_join_request",
|
|
13
|
+
FOLLOW_USER = "follow"
|
|
13
14
|
}
|
|
14
15
|
const enum TrayAction {
|
|
15
16
|
POST = "post",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../../../src/@types/domains/notification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC;AAEV,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,KAAK,CAAC;QACd,WAAW,oBAAoB;YAC7B,YAAY,oBAAoB;YAChC,eAAe,uBAAuB;YACtC,aAAa,qBAAqB;YAClC,YAAY,oBAAoB;YAChC,UAAU,qBAAqB;YAC/B,aAAa,wBAAwB;YACrC,WAAW,sBAAsB;YACjC,qBAAqB,4BAA4B;
|
|
1
|
+
{"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../../../src/@types/domains/notification.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ export declare const PostContentType: Readonly<{
|
|
|
9
9
|
}>;
|
|
10
10
|
declare global {
|
|
11
11
|
namespace Amity {
|
|
12
|
-
type PostTargetType = Amity.Feed['targetType'] | 'content';
|
|
12
|
+
type PostTargetType = Amity.Feed['targetType'] | 'content' | 'all';
|
|
13
13
|
type PostContentType = ValueOf<typeof PostContentType> | string;
|
|
14
14
|
type PostActionType = 'onFetch' | 'onCreate' | 'onUpdate' | 'onDelete' | 'onApproved' | 'onDeclined' | 'onFlagged' | 'onUnflagged' | 'onReactionAdded' | 'onReactionRemoved';
|
|
15
15
|
type RawPost<T extends PostContentType = any> = {
|
|
@@ -43,6 +43,7 @@ declare global {
|
|
|
43
43
|
reactionsCount: number;
|
|
44
44
|
reactions: Record<string, number>;
|
|
45
45
|
myReactions?: string[];
|
|
46
|
+
hashtags?: string[];
|
|
46
47
|
} & Amity.Content<T> & Amity.Mentionable<'user'>;
|
|
47
48
|
type InternalPost<T extends PostContentType = any> = RawPost<T> & {
|
|
48
49
|
feedType?: 'reviewing' | 'published';
|
|
@@ -77,9 +78,20 @@ declare global {
|
|
|
77
78
|
page?: string;
|
|
78
79
|
limit?: number;
|
|
79
80
|
};
|
|
81
|
+
type QueryPostsWithHashtags = {
|
|
82
|
+
dataTypes?: Exclude<Amity.PostContentType, 'text'>[];
|
|
83
|
+
targetType: Amity.InternalPost['targetType'];
|
|
84
|
+
hashtags: string[];
|
|
85
|
+
matchingOnlyParentPost?: boolean;
|
|
86
|
+
page?: string;
|
|
87
|
+
limit?: number;
|
|
88
|
+
};
|
|
80
89
|
type PostLiveCollection = Amity.LiveCollectionParams<Omit<QueryPosts, 'sortBy' | 'page'> & {
|
|
81
90
|
sortBy?: 'lastCreated' | 'firstCreated';
|
|
82
91
|
}>;
|
|
92
|
+
type SearchPostWithHashtagLiveCollection = Amity.LiveCollectionParams<Omit<QueryPostsWithHashtags, 'page'> & {
|
|
93
|
+
sortBy?: 'lastCreated' | 'firstCreated';
|
|
94
|
+
}>;
|
|
83
95
|
type PostLiveCollectionCache = Amity.LiveCollectionCache<Amity.InternalPost['postId'], Pick<QueryPosts, 'page'>>;
|
|
84
96
|
type QuerySemanticSearchPosts = {
|
|
85
97
|
query: string;
|
|
@@ -87,6 +99,7 @@ declare global {
|
|
|
87
99
|
targetType?: Amity.InternalPost['targetType'];
|
|
88
100
|
dataTypes?: string[];
|
|
89
101
|
matchingOnlyParentPost?: boolean;
|
|
102
|
+
limit?: number;
|
|
90
103
|
};
|
|
91
104
|
type SemanticSearchPostLiveCollection = Amity.LiveCollectionParams<Omit<QuerySemanticSearchPosts, 'page'>>;
|
|
92
105
|
type SemanticSearchPostLiveCollectionCache = Amity.LiveCollectionCache<Amity.InternalPost['postId'], // postId:score
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../../src/@types/domains/post.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;EAQ1B,CAAC;AAEH,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,KAAK,CAAC;QAEd,KAAK,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../../src/@types/domains/post.ts"],"names":[],"mappings":"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"}
|
package/dist/@types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/@types/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,CAAC;AAClB,OAAO,eAAe,CAAC;AACvB,OAAO,oBAAoB,CAAC;AAC5B,OAAO,gBAAgB,CAAC;AACxB,OAAO,eAAe,CAAC;AACvB,OAAO,eAAe,CAAC;AACvB,OAAO,cAAc,CAAC;AACtB,OAAO,cAAc,CAAC;AACtB,OAAO,aAAa,CAAC;AAGrB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,gBAAgB,CAAC;AACxB,OAAO,kBAAkB,CAAC;AAE1B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,oBAAoB,CAAC;AAE5B,OAAO,iBAAiB,CAAC;AACzB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,sBAAsB,CAAC;AAE9B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,mBAAmB,CAAC;AAE3B,OAAO,kBAAkB,CAAC;AAE1B,OAAO,mBAAmB,CAAC;AAE3B,OAAO,gBAAgB,CAAC;AACxB,OAAO,iBAAiB,CAAC;AAEzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/@types/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,CAAC;AAClB,OAAO,eAAe,CAAC;AACvB,OAAO,oBAAoB,CAAC;AAC5B,OAAO,gBAAgB,CAAC;AACxB,OAAO,eAAe,CAAC;AACvB,OAAO,eAAe,CAAC;AACvB,OAAO,cAAc,CAAC;AACtB,OAAO,cAAc,CAAC;AACtB,OAAO,aAAa,CAAC;AAGrB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,gBAAgB,CAAC;AACxB,OAAO,kBAAkB,CAAC;AAE1B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,oBAAoB,CAAC;AAE5B,OAAO,iBAAiB,CAAC;AACzB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,sBAAsB,CAAC;AAE9B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,mBAAmB,CAAC;AAE3B,OAAO,kBAAkB,CAAC;AAE1B,OAAO,mBAAmB,CAAC;AAE3B,OAAO,gBAAgB,CAAC;AACxB,OAAO,iBAAiB,CAAC;AAEzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -25912,6 +25912,238 @@ const semanticSearchPosts = (params, callback, config) => {
|
|
|
25912
25912
|
};
|
|
25913
25913
|
};
|
|
25914
25914
|
|
|
25915
|
+
class SearchPostPaginationController extends PaginationController {
|
|
25916
|
+
async getRequest(queryParams, token) {
|
|
25917
|
+
const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT, matchingOnlyParentPost, hashtags, dataTypes, targetType = 'all' } = queryParams, params = __rest(queryParams, ["limit", "matchingOnlyParentPost", "hashtags", "dataTypes", "targetType"]);
|
|
25918
|
+
const baseOptions = {
|
|
25919
|
+
type: params.sortBy || queryParams.limit ? 'pagination' : undefined,
|
|
25920
|
+
};
|
|
25921
|
+
const options = token ? Object.assign(Object.assign({}, baseOptions), { token }) : Object.assign(Object.assign({}, baseOptions), { limit });
|
|
25922
|
+
const { data: queryResponse } = await this.http.get(`/api/v1/search/posts`, {
|
|
25923
|
+
params: Object.assign(Object.assign({}, params), { hashtags,
|
|
25924
|
+
dataTypes,
|
|
25925
|
+
targetType,
|
|
25926
|
+
/*
|
|
25927
|
+
* when creating post like image, file, video BE will create 2 posts
|
|
25928
|
+
* 1. parent post to store text with dataType=text
|
|
25929
|
+
* 2. child post to store dataTypes post data
|
|
25930
|
+
*
|
|
25931
|
+
* By default, BE queries only parent post
|
|
25932
|
+
*/
|
|
25933
|
+
matchingOnlyParentPost: matchingOnlyParentPost !== null && matchingOnlyParentPost !== void 0 ? matchingOnlyParentPost : !(dataTypes === null || dataTypes === void 0 ? void 0 : dataTypes.length), options }),
|
|
25934
|
+
});
|
|
25935
|
+
return queryResponse;
|
|
25936
|
+
}
|
|
25937
|
+
}
|
|
25938
|
+
|
|
25939
|
+
class SearchPostQueryStreamController extends QueryStreamController {
|
|
25940
|
+
constructor(query, cacheKey, notifyChange, preparePayload) {
|
|
25941
|
+
super(query, cacheKey);
|
|
25942
|
+
this.notifyChange = notifyChange;
|
|
25943
|
+
this.preparePayload = preparePayload;
|
|
25944
|
+
}
|
|
25945
|
+
async saveToMainDB(response) {
|
|
25946
|
+
const processedPayload = await this.preparePayload(response);
|
|
25947
|
+
const client = getActiveClient();
|
|
25948
|
+
const cachedAt = client.cache && Date.now();
|
|
25949
|
+
if (client.cache) {
|
|
25950
|
+
ingestInCache(processedPayload, { cachedAt });
|
|
25951
|
+
}
|
|
25952
|
+
}
|
|
25953
|
+
appendToQueryStream(response, direction, refresh = false) {
|
|
25954
|
+
var _a, _b;
|
|
25955
|
+
if (refresh) {
|
|
25956
|
+
pushToCache(this.cacheKey, {
|
|
25957
|
+
data: response.posts.map(getResolver('post')),
|
|
25958
|
+
});
|
|
25959
|
+
}
|
|
25960
|
+
else {
|
|
25961
|
+
const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
25962
|
+
const posts = (_b = collection === null || collection === void 0 ? void 0 : collection.data) !== null && _b !== void 0 ? _b : [];
|
|
25963
|
+
pushToCache(this.cacheKey, Object.assign(Object.assign({}, collection), { data: [...new Set([...posts, ...response.posts.map(getResolver('post'))])] }));
|
|
25964
|
+
}
|
|
25965
|
+
}
|
|
25966
|
+
reactor(action) {
|
|
25967
|
+
return (post) => {
|
|
25968
|
+
var _a, _b;
|
|
25969
|
+
const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
25970
|
+
if (!collection)
|
|
25971
|
+
return;
|
|
25972
|
+
if (post.parentPostId && post.isDeleted) {
|
|
25973
|
+
const parentPost = (_b = pullFromCache([
|
|
25974
|
+
'post',
|
|
25975
|
+
'get',
|
|
25976
|
+
post.parentPostId,
|
|
25977
|
+
])) === null || _b === void 0 ? void 0 : _b.data;
|
|
25978
|
+
if (!parentPost)
|
|
25979
|
+
return;
|
|
25980
|
+
parentPost.children = parentPost.children.filter(childId => childId !== post.postId);
|
|
25981
|
+
pushToCache(['post', 'get', parentPost.postId], parentPost);
|
|
25982
|
+
}
|
|
25983
|
+
if (action === EnumPostActions.OnPostDeclined) {
|
|
25984
|
+
collection.data = collection.data.filter(postId => postId !== post.postId);
|
|
25985
|
+
}
|
|
25986
|
+
if (action === EnumPostActions.OnPostCreated || action === EnumPostActions.OnPostApproved) {
|
|
25987
|
+
collection.data = [...new Set([post.postId, ...collection.data])];
|
|
25988
|
+
}
|
|
25989
|
+
pushToCache(this.cacheKey, collection);
|
|
25990
|
+
this.notifyChange({ origin: "event" /* Amity.LiveDataOrigin.EVENT */, loading: false });
|
|
25991
|
+
};
|
|
25992
|
+
}
|
|
25993
|
+
subscribeRTE(createSubscriber) {
|
|
25994
|
+
return createSubscriber.map(subscriber => subscriber.fn(this.reactor(subscriber.action)));
|
|
25995
|
+
}
|
|
25996
|
+
}
|
|
25997
|
+
|
|
25998
|
+
class SearchPostLiveCollectionController extends LiveCollectionController {
|
|
25999
|
+
constructor(query, callback) {
|
|
26000
|
+
const queryStreamId = hash__default["default"](query);
|
|
26001
|
+
const cacheKey = ['posts', 'collection', queryStreamId];
|
|
26002
|
+
const paginationController = new SearchPostPaginationController(query);
|
|
26003
|
+
super(paginationController, queryStreamId, cacheKey, callback);
|
|
26004
|
+
this.query = query;
|
|
26005
|
+
this.queryStreamController = new SearchPostQueryStreamController(this.query, this.cacheKey, this.notifyChange.bind(this), preparePostPayload);
|
|
26006
|
+
this.callback = callback.bind(this);
|
|
26007
|
+
this.loadPage({ initial: true });
|
|
26008
|
+
}
|
|
26009
|
+
setup() {
|
|
26010
|
+
var _a;
|
|
26011
|
+
const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
26012
|
+
if (!collection) {
|
|
26013
|
+
pushToCache(this.cacheKey, {
|
|
26014
|
+
data: [],
|
|
26015
|
+
params: {},
|
|
26016
|
+
});
|
|
26017
|
+
}
|
|
26018
|
+
}
|
|
26019
|
+
async persistModel(queryPayload) {
|
|
26020
|
+
await this.queryStreamController.saveToMainDB(queryPayload);
|
|
26021
|
+
}
|
|
26022
|
+
persistQueryStream({ response, direction, refresh, }) {
|
|
26023
|
+
this.queryStreamController.appendToQueryStream(response, direction, refresh);
|
|
26024
|
+
}
|
|
26025
|
+
startSubscription() {
|
|
26026
|
+
return this.queryStreamController.subscribeRTE([
|
|
26027
|
+
{ fn: onPostCreated, action: EnumPostActions.OnPostCreated },
|
|
26028
|
+
{ fn: onPostUpdated, action: EnumPostActions.OnPostUpdated },
|
|
26029
|
+
{ fn: onPostUpdatedLocal, action: EnumPostActions.OnPostUpdated },
|
|
26030
|
+
{ fn: onPostDeleted, action: EnumPostActions.OnPostDeleted },
|
|
26031
|
+
{ fn: onPostFlagged, action: EnumPostActions.OnPostFlagged },
|
|
26032
|
+
{ fn: onPostUnflagged, action: EnumPostActions.OnPostUnflagged },
|
|
26033
|
+
{ fn: onPostApproved, action: EnumPostActions.OnPostApproved },
|
|
26034
|
+
{ fn: onPostDeclined, action: EnumPostActions.OnPostDeclined },
|
|
26035
|
+
{ fn: onPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
|
|
26036
|
+
{ fn: onPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
|
|
26037
|
+
{ fn: onLocalPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
|
|
26038
|
+
{ fn: onLocalPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
|
|
26039
|
+
{ fn: onLocalPostDeleted, action: EnumPostActions.OnPostDeleted },
|
|
26040
|
+
{
|
|
26041
|
+
fn: convertEventPayload((callback) => {
|
|
26042
|
+
return onCommentCreated(async (comment) => {
|
|
26043
|
+
var _a;
|
|
26044
|
+
const currentCollection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
26045
|
+
if (!currentCollection || currentCollection.data.includes(comment.referenceId))
|
|
26046
|
+
return;
|
|
26047
|
+
await getPost$1(comment.referenceId);
|
|
26048
|
+
callback(comment);
|
|
26049
|
+
});
|
|
26050
|
+
}, 'referenceId', 'post'),
|
|
26051
|
+
action: EnumPostActions.OnPostUpdated,
|
|
26052
|
+
},
|
|
26053
|
+
{
|
|
26054
|
+
fn: convertEventPayload((callback) => {
|
|
26055
|
+
return onCommentDeleted(async (comment) => {
|
|
26056
|
+
var _a;
|
|
26057
|
+
const currentCollection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
26058
|
+
if (!currentCollection || currentCollection.data.includes(comment.referenceId))
|
|
26059
|
+
return;
|
|
26060
|
+
await getPost$1(comment.referenceId);
|
|
26061
|
+
callback(comment);
|
|
26062
|
+
});
|
|
26063
|
+
}, 'referenceId', 'post'),
|
|
26064
|
+
action: EnumPostActions.OnPostUpdated,
|
|
26065
|
+
},
|
|
26066
|
+
]);
|
|
26067
|
+
}
|
|
26068
|
+
notifyChange({ origin, loading, error }) {
|
|
26069
|
+
var _a, _b;
|
|
26070
|
+
const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
26071
|
+
if (!collection)
|
|
26072
|
+
return;
|
|
26073
|
+
const data = this.applyFilter((_b = collection.data
|
|
26074
|
+
.map(id => pullFromCache(['post', 'get', id]))
|
|
26075
|
+
.filter(isNonNullable)
|
|
26076
|
+
.map(({ data }) => data)) !== null && _b !== void 0 ? _b : []).map(LinkedObject.post);
|
|
26077
|
+
if (!this.shouldNotify(data) && origin === 'event')
|
|
26078
|
+
return;
|
|
26079
|
+
this.callback({
|
|
26080
|
+
onNextPage: () => this.loadPage({ direction: "next" /* Amity.LiveCollectionPageDirection.NEXT */ }),
|
|
26081
|
+
data,
|
|
26082
|
+
hasNextPage: !!this.paginationController.getNextToken(),
|
|
26083
|
+
loading,
|
|
26084
|
+
error,
|
|
26085
|
+
});
|
|
26086
|
+
}
|
|
26087
|
+
applyFilter(data) {
|
|
26088
|
+
var _a;
|
|
26089
|
+
let posts = data;
|
|
26090
|
+
if ((_a = this.query.dataTypes) === null || _a === void 0 ? void 0 : _a.length) {
|
|
26091
|
+
posts = filterByPostDataTypes(posts, this.query.dataTypes);
|
|
26092
|
+
}
|
|
26093
|
+
switch (this.query.sortBy) {
|
|
26094
|
+
case 'firstCreated':
|
|
26095
|
+
posts = posts.sort(sortByFirstCreated);
|
|
26096
|
+
break;
|
|
26097
|
+
case 'lastCreated':
|
|
26098
|
+
default:
|
|
26099
|
+
posts = posts.sort(sortByLastCreated);
|
|
26100
|
+
break;
|
|
26101
|
+
}
|
|
26102
|
+
return posts;
|
|
26103
|
+
}
|
|
26104
|
+
}
|
|
26105
|
+
|
|
26106
|
+
/* begin_public_function
|
|
26107
|
+
id: post.query
|
|
26108
|
+
*/
|
|
26109
|
+
/**
|
|
26110
|
+
* ```js
|
|
26111
|
+
* import { PostRepository } from '@amityco/ts-sdk'
|
|
26112
|
+
*
|
|
26113
|
+
* let posts = []
|
|
26114
|
+
* const unsub = PostRepository.searchPostsByHashtag({
|
|
26115
|
+
* hashtags: ['amity'],
|
|
26116
|
+
* limit: 10,
|
|
26117
|
+
* }, response => merge(posts, response.data))
|
|
26118
|
+
* ```
|
|
26119
|
+
*
|
|
26120
|
+
* Observe all mutations on a list of {@link Amity.Post} for a given target object
|
|
26121
|
+
*
|
|
26122
|
+
* @param params.hashtags the hashtags to search for
|
|
26123
|
+
* @param callback the function to call when new data are available
|
|
26124
|
+
* @param config
|
|
26125
|
+
* @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the messages
|
|
26126
|
+
*
|
|
26127
|
+
* @category Posts Live Collection
|
|
26128
|
+
*/
|
|
26129
|
+
const searchPostsByHashtag = (params, callback, config) => {
|
|
26130
|
+
const { log, cache } = getActiveClient();
|
|
26131
|
+
if (!cache) {
|
|
26132
|
+
console.log(ENABLE_CACHE_MESSAGE);
|
|
26133
|
+
}
|
|
26134
|
+
const timestamp = Date.now();
|
|
26135
|
+
log(`searchPostsByHashtag(tmpid: ${timestamp}) > listen`);
|
|
26136
|
+
const postsLiveCollection = new SearchPostLiveCollectionController(params, callback);
|
|
26137
|
+
const disposers = postsLiveCollection.startSubscription();
|
|
26138
|
+
const cacheKey = postsLiveCollection.getCacheKey();
|
|
26139
|
+
disposers.push(() => dropFromCache(cacheKey));
|
|
26140
|
+
return () => {
|
|
26141
|
+
log(`searchPostsByHashtag(tmpid: ${timestamp}) > dispose`);
|
|
26142
|
+
disposers.forEach(fn => fn());
|
|
26143
|
+
};
|
|
26144
|
+
};
|
|
26145
|
+
/* end_public_function */
|
|
26146
|
+
|
|
25915
26147
|
var index$8 = /*#__PURE__*/Object.freeze({
|
|
25916
26148
|
__proto__: null,
|
|
25917
26149
|
getPostByIds: getPostByIds,
|
|
@@ -25939,7 +26171,8 @@ var index$8 = /*#__PURE__*/Object.freeze({
|
|
|
25939
26171
|
getPosts: getPosts,
|
|
25940
26172
|
getPinnedPosts: getPinnedPosts,
|
|
25941
26173
|
getGlobalPinnedPosts: getGlobalPinnedPosts,
|
|
25942
|
-
semanticSearchPosts: semanticSearchPosts
|
|
26174
|
+
semanticSearchPosts: semanticSearchPosts,
|
|
26175
|
+
searchPostsByHashtag: searchPostsByHashtag
|
|
25943
26176
|
});
|
|
25944
26177
|
|
|
25945
26178
|
/* begin_public_function
|
package/dist/index.esm.js
CHANGED
|
@@ -42003,6 +42003,238 @@ const semanticSearchPosts = (params, callback, config) => {
|
|
|
42003
42003
|
};
|
|
42004
42004
|
};
|
|
42005
42005
|
|
|
42006
|
+
class SearchPostPaginationController extends PaginationController {
|
|
42007
|
+
async getRequest(queryParams, token) {
|
|
42008
|
+
const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT, matchingOnlyParentPost, hashtags, dataTypes, targetType = 'all' } = queryParams, params = __rest(queryParams, ["limit", "matchingOnlyParentPost", "hashtags", "dataTypes", "targetType"]);
|
|
42009
|
+
const baseOptions = {
|
|
42010
|
+
type: params.sortBy || queryParams.limit ? 'pagination' : undefined,
|
|
42011
|
+
};
|
|
42012
|
+
const options = token ? Object.assign(Object.assign({}, baseOptions), { token }) : Object.assign(Object.assign({}, baseOptions), { limit });
|
|
42013
|
+
const { data: queryResponse } = await this.http.get(`/api/v1/search/posts`, {
|
|
42014
|
+
params: Object.assign(Object.assign({}, params), { hashtags,
|
|
42015
|
+
dataTypes,
|
|
42016
|
+
targetType,
|
|
42017
|
+
/*
|
|
42018
|
+
* when creating post like image, file, video BE will create 2 posts
|
|
42019
|
+
* 1. parent post to store text with dataType=text
|
|
42020
|
+
* 2. child post to store dataTypes post data
|
|
42021
|
+
*
|
|
42022
|
+
* By default, BE queries only parent post
|
|
42023
|
+
*/
|
|
42024
|
+
matchingOnlyParentPost: matchingOnlyParentPost !== null && matchingOnlyParentPost !== void 0 ? matchingOnlyParentPost : !(dataTypes === null || dataTypes === void 0 ? void 0 : dataTypes.length), options }),
|
|
42025
|
+
});
|
|
42026
|
+
return queryResponse;
|
|
42027
|
+
}
|
|
42028
|
+
}
|
|
42029
|
+
|
|
42030
|
+
class SearchPostQueryStreamController extends QueryStreamController {
|
|
42031
|
+
constructor(query, cacheKey, notifyChange, preparePayload) {
|
|
42032
|
+
super(query, cacheKey);
|
|
42033
|
+
this.notifyChange = notifyChange;
|
|
42034
|
+
this.preparePayload = preparePayload;
|
|
42035
|
+
}
|
|
42036
|
+
async saveToMainDB(response) {
|
|
42037
|
+
const processedPayload = await this.preparePayload(response);
|
|
42038
|
+
const client = getActiveClient();
|
|
42039
|
+
const cachedAt = client.cache && Date.now();
|
|
42040
|
+
if (client.cache) {
|
|
42041
|
+
ingestInCache(processedPayload, { cachedAt });
|
|
42042
|
+
}
|
|
42043
|
+
}
|
|
42044
|
+
appendToQueryStream(response, direction, refresh = false) {
|
|
42045
|
+
var _a, _b;
|
|
42046
|
+
if (refresh) {
|
|
42047
|
+
pushToCache(this.cacheKey, {
|
|
42048
|
+
data: response.posts.map(getResolver('post')),
|
|
42049
|
+
});
|
|
42050
|
+
}
|
|
42051
|
+
else {
|
|
42052
|
+
const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
42053
|
+
const posts = (_b = collection === null || collection === void 0 ? void 0 : collection.data) !== null && _b !== void 0 ? _b : [];
|
|
42054
|
+
pushToCache(this.cacheKey, Object.assign(Object.assign({}, collection), { data: [...new Set([...posts, ...response.posts.map(getResolver('post'))])] }));
|
|
42055
|
+
}
|
|
42056
|
+
}
|
|
42057
|
+
reactor(action) {
|
|
42058
|
+
return (post) => {
|
|
42059
|
+
var _a, _b;
|
|
42060
|
+
const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
42061
|
+
if (!collection)
|
|
42062
|
+
return;
|
|
42063
|
+
if (post.parentPostId && post.isDeleted) {
|
|
42064
|
+
const parentPost = (_b = pullFromCache([
|
|
42065
|
+
'post',
|
|
42066
|
+
'get',
|
|
42067
|
+
post.parentPostId,
|
|
42068
|
+
])) === null || _b === void 0 ? void 0 : _b.data;
|
|
42069
|
+
if (!parentPost)
|
|
42070
|
+
return;
|
|
42071
|
+
parentPost.children = parentPost.children.filter(childId => childId !== post.postId);
|
|
42072
|
+
pushToCache(['post', 'get', parentPost.postId], parentPost);
|
|
42073
|
+
}
|
|
42074
|
+
if (action === EnumPostActions.OnPostDeclined) {
|
|
42075
|
+
collection.data = collection.data.filter(postId => postId !== post.postId);
|
|
42076
|
+
}
|
|
42077
|
+
if (action === EnumPostActions.OnPostCreated || action === EnumPostActions.OnPostApproved) {
|
|
42078
|
+
collection.data = [...new Set([post.postId, ...collection.data])];
|
|
42079
|
+
}
|
|
42080
|
+
pushToCache(this.cacheKey, collection);
|
|
42081
|
+
this.notifyChange({ origin: "event" /* Amity.LiveDataOrigin.EVENT */, loading: false });
|
|
42082
|
+
};
|
|
42083
|
+
}
|
|
42084
|
+
subscribeRTE(createSubscriber) {
|
|
42085
|
+
return createSubscriber.map(subscriber => subscriber.fn(this.reactor(subscriber.action)));
|
|
42086
|
+
}
|
|
42087
|
+
}
|
|
42088
|
+
|
|
42089
|
+
class SearchPostLiveCollectionController extends LiveCollectionController {
|
|
42090
|
+
constructor(query, callback) {
|
|
42091
|
+
const queryStreamId = hash(query);
|
|
42092
|
+
const cacheKey = ['posts', 'collection', queryStreamId];
|
|
42093
|
+
const paginationController = new SearchPostPaginationController(query);
|
|
42094
|
+
super(paginationController, queryStreamId, cacheKey, callback);
|
|
42095
|
+
this.query = query;
|
|
42096
|
+
this.queryStreamController = new SearchPostQueryStreamController(this.query, this.cacheKey, this.notifyChange.bind(this), preparePostPayload);
|
|
42097
|
+
this.callback = callback.bind(this);
|
|
42098
|
+
this.loadPage({ initial: true });
|
|
42099
|
+
}
|
|
42100
|
+
setup() {
|
|
42101
|
+
var _a;
|
|
42102
|
+
const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
42103
|
+
if (!collection) {
|
|
42104
|
+
pushToCache(this.cacheKey, {
|
|
42105
|
+
data: [],
|
|
42106
|
+
params: {},
|
|
42107
|
+
});
|
|
42108
|
+
}
|
|
42109
|
+
}
|
|
42110
|
+
async persistModel(queryPayload) {
|
|
42111
|
+
await this.queryStreamController.saveToMainDB(queryPayload);
|
|
42112
|
+
}
|
|
42113
|
+
persistQueryStream({ response, direction, refresh, }) {
|
|
42114
|
+
this.queryStreamController.appendToQueryStream(response, direction, refresh);
|
|
42115
|
+
}
|
|
42116
|
+
startSubscription() {
|
|
42117
|
+
return this.queryStreamController.subscribeRTE([
|
|
42118
|
+
{ fn: onPostCreated, action: EnumPostActions.OnPostCreated },
|
|
42119
|
+
{ fn: onPostUpdated, action: EnumPostActions.OnPostUpdated },
|
|
42120
|
+
{ fn: onPostUpdatedLocal, action: EnumPostActions.OnPostUpdated },
|
|
42121
|
+
{ fn: onPostDeleted, action: EnumPostActions.OnPostDeleted },
|
|
42122
|
+
{ fn: onPostFlagged, action: EnumPostActions.OnPostFlagged },
|
|
42123
|
+
{ fn: onPostUnflagged, action: EnumPostActions.OnPostUnflagged },
|
|
42124
|
+
{ fn: onPostApproved, action: EnumPostActions.OnPostApproved },
|
|
42125
|
+
{ fn: onPostDeclined, action: EnumPostActions.OnPostDeclined },
|
|
42126
|
+
{ fn: onPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
|
|
42127
|
+
{ fn: onPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
|
|
42128
|
+
{ fn: onLocalPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
|
|
42129
|
+
{ fn: onLocalPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
|
|
42130
|
+
{ fn: onLocalPostDeleted, action: EnumPostActions.OnPostDeleted },
|
|
42131
|
+
{
|
|
42132
|
+
fn: convertEventPayload((callback) => {
|
|
42133
|
+
return onCommentCreated(async (comment) => {
|
|
42134
|
+
var _a;
|
|
42135
|
+
const currentCollection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
42136
|
+
if (!currentCollection || currentCollection.data.includes(comment.referenceId))
|
|
42137
|
+
return;
|
|
42138
|
+
await getPost$1(comment.referenceId);
|
|
42139
|
+
callback(comment);
|
|
42140
|
+
});
|
|
42141
|
+
}, 'referenceId', 'post'),
|
|
42142
|
+
action: EnumPostActions.OnPostUpdated,
|
|
42143
|
+
},
|
|
42144
|
+
{
|
|
42145
|
+
fn: convertEventPayload((callback) => {
|
|
42146
|
+
return onCommentDeleted(async (comment) => {
|
|
42147
|
+
var _a;
|
|
42148
|
+
const currentCollection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
42149
|
+
if (!currentCollection || currentCollection.data.includes(comment.referenceId))
|
|
42150
|
+
return;
|
|
42151
|
+
await getPost$1(comment.referenceId);
|
|
42152
|
+
callback(comment);
|
|
42153
|
+
});
|
|
42154
|
+
}, 'referenceId', 'post'),
|
|
42155
|
+
action: EnumPostActions.OnPostUpdated,
|
|
42156
|
+
},
|
|
42157
|
+
]);
|
|
42158
|
+
}
|
|
42159
|
+
notifyChange({ origin, loading, error }) {
|
|
42160
|
+
var _a, _b;
|
|
42161
|
+
const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
42162
|
+
if (!collection)
|
|
42163
|
+
return;
|
|
42164
|
+
const data = this.applyFilter((_b = collection.data
|
|
42165
|
+
.map(id => pullFromCache(['post', 'get', id]))
|
|
42166
|
+
.filter(isNonNullable)
|
|
42167
|
+
.map(({ data }) => data)) !== null && _b !== void 0 ? _b : []).map(LinkedObject.post);
|
|
42168
|
+
if (!this.shouldNotify(data) && origin === 'event')
|
|
42169
|
+
return;
|
|
42170
|
+
this.callback({
|
|
42171
|
+
onNextPage: () => this.loadPage({ direction: "next" /* Amity.LiveCollectionPageDirection.NEXT */ }),
|
|
42172
|
+
data,
|
|
42173
|
+
hasNextPage: !!this.paginationController.getNextToken(),
|
|
42174
|
+
loading,
|
|
42175
|
+
error,
|
|
42176
|
+
});
|
|
42177
|
+
}
|
|
42178
|
+
applyFilter(data) {
|
|
42179
|
+
var _a;
|
|
42180
|
+
let posts = data;
|
|
42181
|
+
if ((_a = this.query.dataTypes) === null || _a === void 0 ? void 0 : _a.length) {
|
|
42182
|
+
posts = filterByPostDataTypes(posts, this.query.dataTypes);
|
|
42183
|
+
}
|
|
42184
|
+
switch (this.query.sortBy) {
|
|
42185
|
+
case 'firstCreated':
|
|
42186
|
+
posts = posts.sort(sortByFirstCreated);
|
|
42187
|
+
break;
|
|
42188
|
+
case 'lastCreated':
|
|
42189
|
+
default:
|
|
42190
|
+
posts = posts.sort(sortByLastCreated);
|
|
42191
|
+
break;
|
|
42192
|
+
}
|
|
42193
|
+
return posts;
|
|
42194
|
+
}
|
|
42195
|
+
}
|
|
42196
|
+
|
|
42197
|
+
/* begin_public_function
|
|
42198
|
+
id: post.query
|
|
42199
|
+
*/
|
|
42200
|
+
/**
|
|
42201
|
+
* ```js
|
|
42202
|
+
* import { PostRepository } from '@amityco/ts-sdk'
|
|
42203
|
+
*
|
|
42204
|
+
* let posts = []
|
|
42205
|
+
* const unsub = PostRepository.searchPostsByHashtag({
|
|
42206
|
+
* hashtags: ['amity'],
|
|
42207
|
+
* limit: 10,
|
|
42208
|
+
* }, response => merge(posts, response.data))
|
|
42209
|
+
* ```
|
|
42210
|
+
*
|
|
42211
|
+
* Observe all mutations on a list of {@link Amity.Post} for a given target object
|
|
42212
|
+
*
|
|
42213
|
+
* @param params.hashtags the hashtags to search for
|
|
42214
|
+
* @param callback the function to call when new data are available
|
|
42215
|
+
* @param config
|
|
42216
|
+
* @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the messages
|
|
42217
|
+
*
|
|
42218
|
+
* @category Posts Live Collection
|
|
42219
|
+
*/
|
|
42220
|
+
const searchPostsByHashtag = (params, callback, config) => {
|
|
42221
|
+
const { log, cache } = getActiveClient();
|
|
42222
|
+
if (!cache) {
|
|
42223
|
+
console.log(ENABLE_CACHE_MESSAGE);
|
|
42224
|
+
}
|
|
42225
|
+
const timestamp = Date.now();
|
|
42226
|
+
log(`searchPostsByHashtag(tmpid: ${timestamp}) > listen`);
|
|
42227
|
+
const postsLiveCollection = new SearchPostLiveCollectionController(params, callback);
|
|
42228
|
+
const disposers = postsLiveCollection.startSubscription();
|
|
42229
|
+
const cacheKey = postsLiveCollection.getCacheKey();
|
|
42230
|
+
disposers.push(() => dropFromCache(cacheKey));
|
|
42231
|
+
return () => {
|
|
42232
|
+
log(`searchPostsByHashtag(tmpid: ${timestamp}) > dispose`);
|
|
42233
|
+
disposers.forEach(fn => fn());
|
|
42234
|
+
};
|
|
42235
|
+
};
|
|
42236
|
+
/* end_public_function */
|
|
42237
|
+
|
|
42006
42238
|
var index$8 = /*#__PURE__*/Object.freeze({
|
|
42007
42239
|
__proto__: null,
|
|
42008
42240
|
getPostByIds: getPostByIds,
|
|
@@ -42030,7 +42262,8 @@ var index$8 = /*#__PURE__*/Object.freeze({
|
|
|
42030
42262
|
getPosts: getPosts,
|
|
42031
42263
|
getPinnedPosts: getPinnedPosts,
|
|
42032
42264
|
getGlobalPinnedPosts: getGlobalPinnedPosts,
|
|
42033
|
-
semanticSearchPosts: semanticSearchPosts
|
|
42265
|
+
semanticSearchPosts: semanticSearchPosts,
|
|
42266
|
+
searchPostsByHashtag: searchPostsByHashtag
|
|
42034
42267
|
});
|
|
42035
42268
|
|
|
42036
42269
|
/* begin_public_function
|