@amityco/ts-sdk 7.8.1-0a477087.0 → 7.8.1-6f31a25d.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/content.d.ts +0 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/content.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/content.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/feed.d.ts +32 -0
- 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 +22 -1
- 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/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 +1 -0
- 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 +1 -0
- 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/feedRepository/observers/getUserFeed/LiveCollectionController.d.ts +14 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/LiveCollectionController.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/LiveCollectionController.js +129 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/LiveCollectionController.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts +5 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.js +15 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/QueryStreamController.d.ts +15 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/QueryStreamController.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/QueryStreamController.js +78 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/QueryStreamController.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.d.ts +23 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.js +46 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.d.ts +2 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.js +2 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/tsconfig.tsbuildinfo +1 -1
- package/dist/@types/domains/content.d.ts +0 -1
- package/dist/@types/domains/content.d.ts.map +1 -1
- package/dist/@types/domains/feed.d.ts +32 -0
- package/dist/@types/domains/feed.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 +1 -0
- package/dist/feedRepository/index.d.ts.map +1 -1
- package/dist/feedRepository/observers/getUserFeed/LiveCollectionController.d.ts +14 -0
- package/dist/feedRepository/observers/getUserFeed/LiveCollectionController.d.ts.map +1 -0
- package/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts +5 -0
- package/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts.map +1 -0
- package/dist/feedRepository/observers/getUserFeed/QueryStreamController.d.ts +15 -0
- package/dist/feedRepository/observers/getUserFeed/QueryStreamController.d.ts.map +1 -0
- package/dist/feedRepository/observers/getUserFeed.d.ts +23 -0
- package/dist/feedRepository/observers/getUserFeed.d.ts.map +1 -0
- package/dist/feedRepository/observers/index.d.ts +2 -0
- package/dist/feedRepository/observers/index.d.ts.map +1 -0
- package/dist/index.cjs.js +1216 -956
- package/dist/index.esm.js +1358 -1098
- package/dist/index.umd.js +4 -4
- package/package.json +1 -1
- package/src/@types/domains/content.ts +0 -1
- package/src/@types/domains/feed.ts +44 -0
- package/src/@types/index.ts +1 -0
- package/src/feedRepository/index.ts +1 -0
- package/src/feedRepository/observers/getUserFeed/LiveCollectionController.ts +192 -0
- package/src/feedRepository/observers/getUserFeed/PaginationController.ts +37 -0
- package/src/feedRepository/observers/getUserFeed/QueryStreamController.ts +119 -0
- package/src/feedRepository/observers/getUserFeed.ts +56 -0
- package/src/feedRepository/observers/index.ts +1 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -22,7 +22,6 @@ declare global {
|
|
|
22
22
|
type ContentType = 'text' | 'image' | 'file' | 'video' | 'poll' | 'json' | 'liveStream' | 'clip' | string;
|
|
23
23
|
type ContentFeedType = ValueOf<typeof ContentFeedType>;
|
|
24
24
|
type ContentDataText = {
|
|
25
|
-
title?: string;
|
|
26
25
|
text: string;
|
|
27
26
|
};
|
|
28
27
|
type ContentDataFile = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../src/@types/domains/content.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;EAM1B,CAAC;AAEH,oBAAY,qBAAqB;IAC/B,mBAAmB,iCAAiC;IACpD,oBAAoB,2BAA2B;IAC/C,iBAAiB,yBAAyB;IAC1C,4BAA4B,oCAAoC;IAChE,sBAAsB,2CAA2C;IACjE,qBAAqB,6BAA6B;IAClD,WAAW,kBAAkB;IAC7B,gBAAgB,wCAAwC;IACxD,MAAM,WAAW;CAClB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,KAAK,CAAC;QACd,KAAK,iBAAiB,GAClB,OAAO,CAAC,GAAG,qBAAqB,EAAE,EAAE,GAAG,qBAAqB,CAAC,MAAM,EAAE,CAAC,GACtE,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAElB,KAAK,WAAW,GACZ,MAAM,GACN,OAAO,GACP,MAAM,GACN,OAAO,GACP,MAAM,GACN,MAAM,GACN,YAAY,GACZ,MAAM,GACN,MAAM,CAAC;QAEX,KAAK,eAAe,GAAG,OAAO,CAAC,OAAO,eAAe,CAAC,CAAC;QAEvD,KAAK,eAAe,GAAG;YACrB,
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../src/@types/domains/content.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/@types/domains/content.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;CACnB,CAAC,CAAC;AAEH,MAAM,CAAN,IAAY,qBAUX;AAVD,WAAY,qBAAqB;IAC/B,6EAAoD,CAAA;IACpD,wEAA+C,CAAA;IAC/C,mEAA0C,CAAA;IAC1C,yFAAgE,CAAA;IAChE,0FAAiE,CAAA;IACjE,2EAAkD,CAAA;IAClD,sDAA6B,CAAA;IAC7B,iFAAwD,CAAA;IACxD,0CAAiB,CAAA;AACnB,CAAC,EAVW,qBAAqB,KAArB,qBAAqB,QAUhC","sourcesContent":["export const ContentFeedType = Object.freeze({\n STORY: 'story',\n CLIP: 'clip',\n CHAT: 'chat',\n POST: 'post',\n MESSAGE: 'message',\n});\n\nexport enum ContentFlagReasonEnum {\n CommunityGuidelines = 'Against community guidelines',\n HarassmentOrBullying = 'Harassment or bullying',\n SelfHarmOrSuicide = 'Self-harm or suicide',\n ViolenceOrThreateningContent = 'Violence or threatening content',\n SellingRestrictedItems = 'Selling and promoting restricted items',\n SexualContentOrNudity = 'Sexual message or nudity',\n SpamOrScams = 'Spam or scams',\n FalseInformation = 'False information or misinformation',\n Others = 'Others',\n}\n\ndeclare global {\n namespace Amity {\n type ContentFlagReason =\n | Exclude<`${ContentFlagReasonEnum}`, `${ContentFlagReasonEnum.Others}`>\n | (string & {});\n\n type ContentType =\n | 'text'\n | 'image'\n | 'file'\n | 'video'\n | 'poll'\n | 'json'\n | 'liveStream'\n | 'clip'\n | string;\n\n type ContentFeedType = ValueOf<typeof ContentFeedType>;\n\n type ContentDataText = {\n
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/@types/domains/content.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;CACnB,CAAC,CAAC;AAEH,MAAM,CAAN,IAAY,qBAUX;AAVD,WAAY,qBAAqB;IAC/B,6EAAoD,CAAA;IACpD,wEAA+C,CAAA;IAC/C,mEAA0C,CAAA;IAC1C,yFAAgE,CAAA;IAChE,0FAAiE,CAAA;IACjE,2EAAkD,CAAA;IAClD,sDAA6B,CAAA;IAC7B,iFAAwD,CAAA;IACxD,0CAAiB,CAAA;AACnB,CAAC,EAVW,qBAAqB,KAArB,qBAAqB,QAUhC","sourcesContent":["export const ContentFeedType = Object.freeze({\n STORY: 'story',\n CLIP: 'clip',\n CHAT: 'chat',\n POST: 'post',\n MESSAGE: 'message',\n});\n\nexport enum ContentFlagReasonEnum {\n CommunityGuidelines = 'Against community guidelines',\n HarassmentOrBullying = 'Harassment or bullying',\n SelfHarmOrSuicide = 'Self-harm or suicide',\n ViolenceOrThreateningContent = 'Violence or threatening content',\n SellingRestrictedItems = 'Selling and promoting restricted items',\n SexualContentOrNudity = 'Sexual message or nudity',\n SpamOrScams = 'Spam or scams',\n FalseInformation = 'False information or misinformation',\n Others = 'Others',\n}\n\ndeclare global {\n namespace Amity {\n type ContentFlagReason =\n | Exclude<`${ContentFlagReasonEnum}`, `${ContentFlagReasonEnum.Others}`>\n | (string & {});\n\n type ContentType =\n | 'text'\n | 'image'\n | 'file'\n | 'video'\n | 'poll'\n | 'json'\n | 'liveStream'\n | 'clip'\n | string;\n\n type ContentFeedType = ValueOf<typeof ContentFeedType>;\n\n type ContentDataText = {\n text: string;\n };\n\n type ContentDataFile = {\n fileId: Amity.File<'file'>['fileId'];\n };\n\n type ContentDataImage = {\n fileId: Amity.File<'image'>['fileId'];\n caption?: string;\n };\n\n type Attachment = {\n type: 'image' | 'link';\n url?: string;\n fileId?: Amity.File<'image'>['fileId'];\n };\n\n type ContentDataVideo = {\n thumbnailFileId: Amity.File<'image'>['fileId'];\n videoFileId: {\n [K in Amity.VideoSize]?: Amity.File<'video'>['fileId'];\n };\n };\n\n type ContentDataClip = {\n thumbnailFileId: Amity.File<'image'>['fileId'];\n fileId: Amity.File<'clip'>['fileId'];\n isMuted?: boolean;\n displayMode?: Amity.ClipDisplayMode;\n };\n\n type ContentDataPoll = {\n pollId: Amity.Poll['pollId'];\n };\n\n type ContentDataStream = {\n streamId: Amity.Stream['streamId'];\n };\n\n type ContentData<T extends ContentType> = T extends 'text'\n ? ContentDataText\n : T extends 'file'\n ? ContentDataFile\n : T extends 'image'\n ? ContentDataImage\n : T extends 'video'\n ? ContentDataVideo\n : T extends 'poll'\n ? ContentDataPoll\n : T extends 'liveStream'\n ? ContentDataStream\n : T extends 'clip'\n ? ContentDataClip\n : T extends 'json'\n ? Record<string, unknown>\n : T extends string\n ? string | Record<string, unknown> // custom type\n : never;\n\n type Content<T extends ContentType> = {\n // dataType still retained to maintain backward compatibility\n dataType?: T;\n dataTypes?: T[];\n data?: ContentData<T>;\n };\n\n type ContentSettingText = {\n contentType: 'text';\n allowed: boolean;\n };\n\n type ContentSettingVideo = {\n contentType: 'video';\n allowed: boolean;\n maxDurationSeconds: number;\n transcodeConfig: {\n maxResolution: Amity.VideoResolution;\n minResolution: Amity.VideoResolution;\n };\n };\n\n type ContentSetting<T extends ContentType = 'text' | 'video'> = T extends 'text'\n ? ContentSettingText\n : T extends 'video'\n ? ContentSettingVideo\n : never;\n }\n}\n"]}
|
|
@@ -1,6 +1,28 @@
|
|
|
1
1
|
export {};
|
|
2
|
+
export declare const enum FeedDataTypeEnum {
|
|
3
|
+
Text = "text",
|
|
4
|
+
Video = "video",
|
|
5
|
+
Image = "image",
|
|
6
|
+
File = "file",
|
|
7
|
+
LiveStream = "liveStream",
|
|
8
|
+
Clip = "clip",
|
|
9
|
+
Poll = "poll"
|
|
10
|
+
}
|
|
11
|
+
export declare const enum FeedSortByEnum {
|
|
12
|
+
LastCreated = "lastCreated",
|
|
13
|
+
FirstCreated = "firstCreated",
|
|
14
|
+
LastUpdated = "lastUpdated",
|
|
15
|
+
FirstUpdated = "firstUpdated"
|
|
16
|
+
}
|
|
17
|
+
export declare const enum FeedSourceEnum {
|
|
18
|
+
Community = "community",
|
|
19
|
+
User = "user"
|
|
20
|
+
}
|
|
2
21
|
declare global {
|
|
3
22
|
namespace Amity {
|
|
23
|
+
type FeedDataType = `${FeedDataTypeEnum}`;
|
|
24
|
+
type FeedSortBy = `${FeedSortByEnum}`;
|
|
25
|
+
type FeedSource = `${FeedSourceEnum}`;
|
|
4
26
|
type Feed = {
|
|
5
27
|
feedId: string;
|
|
6
28
|
feedType: 'reviewing' | 'published';
|
|
@@ -13,6 +35,16 @@ declare global {
|
|
|
13
35
|
queryToken?: string;
|
|
14
36
|
resolveParent?: boolean;
|
|
15
37
|
};
|
|
38
|
+
type QueryUserFeed = {
|
|
39
|
+
userId: string;
|
|
40
|
+
includeDeleted?: boolean;
|
|
41
|
+
sortBy?: Amity.FeedSortBy;
|
|
42
|
+
dataTypes?: Amity.FeedDataType[];
|
|
43
|
+
matchingOnlyParentPost?: boolean;
|
|
44
|
+
feedSources?: Amity.FeedSource[];
|
|
45
|
+
};
|
|
46
|
+
type UserFeedLiveCollection = Amity.LiveCollectionParams<QueryUserFeed>;
|
|
47
|
+
type UserFeedLiveCollectionCache = Amity.LiveCollectionCache<Amity.InternalPost['postId'], QueryUserFeed>;
|
|
16
48
|
}
|
|
17
49
|
}
|
|
18
50
|
//# sourceMappingURL=feed.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feed.d.ts","sourceRoot":"","sources":["../../../src/@types/domains/feed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC;AAEV,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,KAAK,CAAC;QACd,KAAK,IAAI,GAAG;YACV,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,WAAW,GAAG,WAAW,CAAC;YACpC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,CAAC;YACxD,QAAQ,EAAE,MAAM,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC;SACnB,GAAG,KAAK,CAAC,UAAU,CAAC;QAErB,KAAK,eAAe,GAAG;YACrB,SAAS,CAAC,EAAE,CAAC,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC;YACnE,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,aAAa,CAAC,EAAE,OAAO,CAAC;SACzB,CAAC;KACH;CACF"}
|
|
1
|
+
{"version":3,"file":"feed.d.ts","sourceRoot":"","sources":["../../../src/@types/domains/feed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC;AAEV,0BAAkB,gBAAgB;IAChC,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;IACf,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,0BAAkB,cAAc;IAC9B,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;CAC9B;AAED,0BAAkB,cAAc;IAC9B,SAAS,cAAc;IACvB,IAAI,SAAS;CACd;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,KAAK,CAAC;QACd,KAAK,YAAY,GAAG,GAAG,gBAAgB,EAAE,CAAC;QAE1C,KAAK,UAAU,GAAG,GAAG,cAAc,EAAE,CAAC;QAEtC,KAAK,UAAU,GAAG,GAAG,cAAc,EAAE,CAAC;QAEtC,KAAK,IAAI,GAAG;YACV,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,WAAW,GAAG,WAAW,CAAC;YACpC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,CAAC;YACxD,QAAQ,EAAE,MAAM,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC;SACnB,GAAG,KAAK,CAAC,UAAU,CAAC;QAErB,KAAK,eAAe,GAAG;YACrB,SAAS,CAAC,EAAE,CAAC,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC;YACnE,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,aAAa,CAAC,EAAE,OAAO,CAAC;SACzB,CAAC;QAEF,KAAK,aAAa,GAAG;YACnB,MAAM,EAAE,MAAM,CAAC;YACf,cAAc,CAAC,EAAE,OAAO,CAAC;YACzB,MAAM,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;YAC1B,SAAS,CAAC,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;YACjC,sBAAsB,CAAC,EAAE,OAAO,CAAC;YACjC,WAAW,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;SAClC,CAAC;QAEF,KAAK,sBAAsB,GAAG,KAAK,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAExE,KAAK,2BAA2B,GAAG,KAAK,CAAC,mBAAmB,CAC1D,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,EAC5B,aAAa,CACd,CAAC;KACH;CACF"}
|
|
@@ -1,2 +1,23 @@
|
|
|
1
|
-
export
|
|
1
|
+
export var FeedDataTypeEnum;
|
|
2
|
+
(function (FeedDataTypeEnum) {
|
|
3
|
+
FeedDataTypeEnum["Text"] = "text";
|
|
4
|
+
FeedDataTypeEnum["Video"] = "video";
|
|
5
|
+
FeedDataTypeEnum["Image"] = "image";
|
|
6
|
+
FeedDataTypeEnum["File"] = "file";
|
|
7
|
+
FeedDataTypeEnum["LiveStream"] = "liveStream";
|
|
8
|
+
FeedDataTypeEnum["Clip"] = "clip";
|
|
9
|
+
FeedDataTypeEnum["Poll"] = "poll";
|
|
10
|
+
})(FeedDataTypeEnum || (FeedDataTypeEnum = {}));
|
|
11
|
+
export var FeedSortByEnum;
|
|
12
|
+
(function (FeedSortByEnum) {
|
|
13
|
+
FeedSortByEnum["LastCreated"] = "lastCreated";
|
|
14
|
+
FeedSortByEnum["FirstCreated"] = "firstCreated";
|
|
15
|
+
FeedSortByEnum["LastUpdated"] = "lastUpdated";
|
|
16
|
+
FeedSortByEnum["FirstUpdated"] = "firstUpdated";
|
|
17
|
+
})(FeedSortByEnum || (FeedSortByEnum = {}));
|
|
18
|
+
export var FeedSourceEnum;
|
|
19
|
+
(function (FeedSourceEnum) {
|
|
20
|
+
FeedSourceEnum["Community"] = "community";
|
|
21
|
+
FeedSourceEnum["User"] = "user";
|
|
22
|
+
})(FeedSourceEnum || (FeedSourceEnum = {}));
|
|
2
23
|
//# sourceMappingURL=feed.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feed.js","sourceRoot":"","sources":["../../../src/@types/domains/feed.ts"],"names":[],"mappings":"","sourcesContent":["export {};\n\ndeclare global {\n namespace Amity {\n type Feed = {\n feedId: string;\n feedType: 'reviewing' | 'published';\n targetType: Extract<Amity.Domain, 'community' | 'user'>;\n targetId: string;\n postCount: number;\n } & Amity.Timestamps;\n\n type QueryGlobalFeed = {\n dataTypes?: ('video' | 'image' | 'file' | 'liveStream' | 'clip')[];\n queryToken?: string;\n resolveParent?: boolean;\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"feed.js","sourceRoot":"","sources":["../../../src/@types/domains/feed.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAkB,gBAQjB;AARD,WAAkB,gBAAgB;IAChC,iCAAa,CAAA;IACb,mCAAe,CAAA;IACf,mCAAe,CAAA;IACf,iCAAa,CAAA;IACb,6CAAyB,CAAA;IACzB,iCAAa,CAAA;IACb,iCAAa,CAAA;AACf,CAAC,EARiB,gBAAgB,KAAhB,gBAAgB,QAQjC;AAED,MAAM,CAAN,IAAkB,cAKjB;AALD,WAAkB,cAAc;IAC9B,6CAA2B,CAAA;IAC3B,+CAA6B,CAAA;IAC7B,6CAA2B,CAAA;IAC3B,+CAA6B,CAAA;AAC/B,CAAC,EALiB,cAAc,KAAd,cAAc,QAK/B;AAED,MAAM,CAAN,IAAkB,cAGjB;AAHD,WAAkB,cAAc;IAC9B,yCAAuB,CAAA;IACvB,+BAAa,CAAA;AACf,CAAC,EAHiB,cAAc,KAAd,cAAc,QAG/B","sourcesContent":["export {};\n\nexport const enum FeedDataTypeEnum {\n Text = 'text',\n Video = 'video',\n Image = 'image',\n File = 'file',\n LiveStream = 'liveStream',\n Clip = 'clip',\n Poll = 'poll',\n}\n\nexport const enum FeedSortByEnum {\n LastCreated = 'lastCreated',\n FirstCreated = 'firstCreated',\n LastUpdated = 'lastUpdated',\n FirstUpdated = 'firstUpdated',\n}\n\nexport const enum FeedSourceEnum {\n Community = 'community',\n User = 'user',\n}\n\ndeclare global {\n namespace Amity {\n type FeedDataType = `${FeedDataTypeEnum}`;\n\n type FeedSortBy = `${FeedSortByEnum}`;\n\n type FeedSource = `${FeedSourceEnum}`;\n\n type Feed = {\n feedId: string;\n feedType: 'reviewing' | 'published';\n targetType: Extract<Amity.Domain, 'community' | 'user'>;\n targetId: string;\n postCount: number;\n } & Amity.Timestamps;\n\n type QueryGlobalFeed = {\n dataTypes?: ('video' | 'image' | 'file' | 'liveStream' | 'clip')[];\n queryToken?: string;\n resolveParent?: boolean;\n };\n\n type QueryUserFeed = {\n userId: string;\n includeDeleted?: boolean;\n sortBy?: Amity.FeedSortBy;\n dataTypes?: Amity.FeedDataType[];\n matchingOnlyParentPost?: boolean;\n feedSources?: Amity.FeedSource[];\n };\n\n type UserFeedLiveCollection = Amity.LiveCollectionParams<QueryUserFeed>;\n\n type UserFeedLiveCollectionCache = Amity.LiveCollectionCache<\n Amity.InternalPost['postId'],\n QueryUserFeed\n >;\n }\n}\n"]}
|
|
@@ -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,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/@types/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,CAAC,CAAC,wBAAwB;AAC3C,OAAO,eAAe,CAAC,CAAC,gBAAgB;AACxC,OAAO,oBAAoB,CAAC,CAAC,mBAAmB;AAChD,OAAO,gBAAgB,CAAC,CAAC,6BAA6B;AACtD,OAAO,eAAe,CAAC,CAAC,yBAAyB;AACjD,OAAO,eAAe,CAAC,CAAC,wBAAwB;AAChD,OAAO,cAAc,CAAC,CAAC,wBAAwB;AAC/C,OAAO,cAAc,CAAC,CAAC,0BAA0B;AACjD,OAAO,aAAa,CAAC;AAErB,UAAU;AACV,OAAO,kBAAkB,CAAC,CAAC,oBAAoB;AAC/C,OAAO,gBAAgB,CAAC;AACxB,OAAO,kBAAkB,CAAC;AAE1B,OAAO,oBAAoB,CAAC,CAAC,2CAA2C;AACxE,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","sourcesContent":["import './global'; // global types (system)\nimport './core/errors'; // global errors\nimport './core/permissions'; // permissions enum\nimport './core/payload'; // backend payload definition\nimport './core/events'; // sdk events definitions\nimport './core/paging'; // createQuery, runQuery\nimport './core/query'; // createQuery, runQuery\nimport './core/cache'; // cache.pull('user', ...)\nimport './core/live';\n\n// domains\nimport './domains/client'; // client definition\nimport './domains/user';\nimport './domains/follow';\n\nimport './domains/partials'; // small model partials (CreatedAt, etc...)\nimport './domains/reaction';\n\nimport './domains/group';\nimport './domains/channel';\nimport './domains/subChannel';\n\nimport './domains/category';\nimport './domains/comment';\n\nimport './domains/stream';\n\nimport './domains/mention';\n\nimport './domains/poll';\nimport './domains/story';\n\nexport * from './domains/community';\nexport * from './domains/content';\nexport * from './domains/file';\nexport * from './domains/message';\nexport * from './domains/post';\nexport * from './domains/story';\nexport * from './domains/ad';\nexport * from './domains/notification';\nexport * from './domains/client';\nexport * from './domains/invitation';\nexport * from './domains/joinRequest';\nexport * from './domains/pin';\nexport * from './domains/pinnedPost';\nexport * from './domains/liveReaction';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/@types/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,CAAC,CAAC,wBAAwB;AAC3C,OAAO,eAAe,CAAC,CAAC,gBAAgB;AACxC,OAAO,oBAAoB,CAAC,CAAC,mBAAmB;AAChD,OAAO,gBAAgB,CAAC,CAAC,6BAA6B;AACtD,OAAO,eAAe,CAAC,CAAC,yBAAyB;AACjD,OAAO,eAAe,CAAC,CAAC,wBAAwB;AAChD,OAAO,cAAc,CAAC,CAAC,wBAAwB;AAC/C,OAAO,cAAc,CAAC,CAAC,0BAA0B;AACjD,OAAO,aAAa,CAAC;AAErB,UAAU;AACV,OAAO,kBAAkB,CAAC,CAAC,oBAAoB;AAC/C,OAAO,gBAAgB,CAAC;AACxB,OAAO,kBAAkB,CAAC;AAE1B,OAAO,oBAAoB,CAAC,CAAC,2CAA2C;AACxE,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,gBAAgB,CAAC","sourcesContent":["import './global'; // global types (system)\nimport './core/errors'; // global errors\nimport './core/permissions'; // permissions enum\nimport './core/payload'; // backend payload definition\nimport './core/events'; // sdk events definitions\nimport './core/paging'; // createQuery, runQuery\nimport './core/query'; // createQuery, runQuery\nimport './core/cache'; // cache.pull('user', ...)\nimport './core/live';\n\n// domains\nimport './domains/client'; // client definition\nimport './domains/user';\nimport './domains/follow';\n\nimport './domains/partials'; // small model partials (CreatedAt, etc...)\nimport './domains/reaction';\n\nimport './domains/group';\nimport './domains/channel';\nimport './domains/subChannel';\n\nimport './domains/category';\nimport './domains/comment';\n\nimport './domains/stream';\n\nimport './domains/mention';\n\nimport './domains/poll';\nimport './domains/story';\n\nexport * from './domains/community';\nexport * from './domains/content';\nexport * from './domains/file';\nexport * from './domains/message';\nexport * from './domains/post';\nexport * from './domains/story';\nexport * from './domains/ad';\nexport * from './domains/notification';\nexport * from './domains/client';\nexport * from './domains/invitation';\nexport * from './domains/joinRequest';\nexport * from './domains/pin';\nexport * from './domains/pinnedPost';\nexport * from './domains/liveReaction';\nexport * from './domains/feed';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/feedRepository/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/feedRepository/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/feedRepository/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC","sourcesContent":["export * from './api';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/feedRepository/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC","sourcesContent":["export * from './api';\nexport * from './observers';\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { UserFeedPaginationController } from './PaginationController';
|
|
2
|
+
import { LiveCollectionController } from '~/core/liveCollection/LiveCollectionController';
|
|
3
|
+
export declare class UserFeedLiveCollectionController extends LiveCollectionController<'post', Amity.UserFeedLiveCollection, Amity.Post, UserFeedPaginationController> {
|
|
4
|
+
private queryStreamController;
|
|
5
|
+
private query;
|
|
6
|
+
constructor(query: Amity.UserFeedLiveCollection, callback: Amity.LiveCollectionCallback<Amity.Post>);
|
|
7
|
+
protected setup(): void;
|
|
8
|
+
protected persistModel(queryPayload: Amity.PostPayload & Amity.Pagination): Promise<void>;
|
|
9
|
+
protected persistQueryStream({ response, direction, refresh, }: Amity.LiveCollectionPersistQueryStreamParams<'post'>): void;
|
|
10
|
+
startSubscription(): Amity.Unsubscriber[];
|
|
11
|
+
notifyChange({ origin, loading, error }: Amity.LiveCollectionNotifyParams): void;
|
|
12
|
+
applyFilter(data: Amity.InternalPost[]): Amity.InternalPost<any>[];
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=LiveCollectionController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveCollectionController.d.ts","sourceRoot":"","sources":["../../../../src/feedRepository/observers/getUserFeed/LiveCollectionController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAEtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AA8B1F,qBAAa,gCAAiC,SAAQ,wBAAwB,CAC5E,MAAM,EACN,KAAK,CAAC,sBAAsB,EAC5B,KAAK,CAAC,IAAI,EACV,4BAA4B,CAC7B;IACC,OAAO,CAAC,qBAAqB,CAAgC;IAE7D,OAAO,CAAC,KAAK,CAA+B;gBAG1C,KAAK,EAAE,KAAK,CAAC,sBAAsB,EACnC,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;CAuBvC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import hash from 'object-hash';
|
|
2
|
+
import { pullFromCache, pushToCache } from '~/cache/api';
|
|
3
|
+
import { UserFeedPaginationController } from './PaginationController';
|
|
4
|
+
import { UserFeedQueryStreamController } from './QueryStreamController';
|
|
5
|
+
import { LiveCollectionController } from '~/core/liveCollection/LiveCollectionController';
|
|
6
|
+
import { onPostCreated, onPostUpdated, onPostDeleted, onPostFlagged, onPostUnflagged, onPostReactionAdded, onPostReactionRemoved, onPostApproved, onPostDeclined, } from '~/postRepository/events';
|
|
7
|
+
import { filterByPostDataTypes, filterByPropEquality, sortByFirstCreated, sortByLastCreated, } from '~/core/query';
|
|
8
|
+
import { isNonNullable } from '~/utils';
|
|
9
|
+
import { EnumPostActions } from '~/postRepository/observers/enums';
|
|
10
|
+
import { LinkedObject } from '~/utils/linkedObject';
|
|
11
|
+
import { preparePostPayload } from '~/postRepository/utils/payload';
|
|
12
|
+
import { convertEventPayload } from '~/utils/event';
|
|
13
|
+
import { onCommentCreated, onCommentDeleted } from '~/commentRepository';
|
|
14
|
+
import { getPost } from '~/postRepository/internalApi/getPost';
|
|
15
|
+
import { onPostUpdatedLocal } from '~/postRepository/events/onPostUpdatedLocal';
|
|
16
|
+
import { onLocalPostReactionAdded } from '~/postRepository/events/onLocalPostReactionAdded';
|
|
17
|
+
import { onLocalPostReactionRemoved } from '~/postRepository/events/onLocalPostReactionRemoved';
|
|
18
|
+
import { onLocalPostDeleted } from '~/postRepository/events/onLocalPostDeleted';
|
|
19
|
+
export class UserFeedLiveCollectionController extends LiveCollectionController {
|
|
20
|
+
constructor(query, callback) {
|
|
21
|
+
const queryStreamId = hash(query);
|
|
22
|
+
const cacheKey = ['userFeed', 'collection', queryStreamId];
|
|
23
|
+
const paginationController = new UserFeedPaginationController(query);
|
|
24
|
+
super(paginationController, queryStreamId, cacheKey, callback);
|
|
25
|
+
this.query = query;
|
|
26
|
+
this.queryStreamController = new UserFeedQueryStreamController(this.query, this.cacheKey, this.notifyChange.bind(this), preparePostPayload);
|
|
27
|
+
this.callback = callback.bind(this);
|
|
28
|
+
this.loadPage({ initial: true });
|
|
29
|
+
}
|
|
30
|
+
setup() {
|
|
31
|
+
var _a;
|
|
32
|
+
const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
33
|
+
if (!collection) {
|
|
34
|
+
pushToCache(this.cacheKey, {
|
|
35
|
+
data: [],
|
|
36
|
+
params: {},
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
async persistModel(queryPayload) {
|
|
41
|
+
await this.queryStreamController.saveToMainDB(queryPayload);
|
|
42
|
+
}
|
|
43
|
+
persistQueryStream({ response, direction, refresh, }) {
|
|
44
|
+
this.queryStreamController.appendToQueryStream(response, direction, refresh);
|
|
45
|
+
}
|
|
46
|
+
startSubscription() {
|
|
47
|
+
return this.queryStreamController.subscribeRTE([
|
|
48
|
+
{ fn: onPostCreated, action: EnumPostActions.OnPostCreated },
|
|
49
|
+
{ fn: onPostUpdated, action: EnumPostActions.OnPostUpdated },
|
|
50
|
+
{ fn: onPostUpdatedLocal, action: EnumPostActions.OnPostUpdated },
|
|
51
|
+
{ fn: onPostDeleted, action: EnumPostActions.OnPostDeleted },
|
|
52
|
+
{ fn: onPostFlagged, action: EnumPostActions.OnPostFlagged },
|
|
53
|
+
{ fn: onPostUnflagged, action: EnumPostActions.OnPostUnflagged },
|
|
54
|
+
{ fn: onPostApproved, action: EnumPostActions.OnPostApproved },
|
|
55
|
+
{ fn: onPostDeclined, action: EnumPostActions.OnPostDeclined },
|
|
56
|
+
{ fn: onPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
|
|
57
|
+
{ fn: onPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
|
|
58
|
+
{ fn: onLocalPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
|
|
59
|
+
{ fn: onLocalPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
|
|
60
|
+
{ fn: onLocalPostDeleted, action: EnumPostActions.OnPostDeleted },
|
|
61
|
+
{
|
|
62
|
+
fn: convertEventPayload((callback) => {
|
|
63
|
+
return onCommentCreated(async (comment) => {
|
|
64
|
+
var _a;
|
|
65
|
+
const currentCollection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
66
|
+
if (!currentCollection || currentCollection.data.includes(comment.referenceId))
|
|
67
|
+
return;
|
|
68
|
+
await getPost(comment.referenceId);
|
|
69
|
+
callback(comment);
|
|
70
|
+
});
|
|
71
|
+
}, 'referenceId', 'post'),
|
|
72
|
+
action: EnumPostActions.OnPostUpdated,
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
fn: convertEventPayload((callback) => {
|
|
76
|
+
return onCommentDeleted(async (comment) => {
|
|
77
|
+
var _a;
|
|
78
|
+
const currentCollection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
79
|
+
if (!currentCollection || currentCollection.data.includes(comment.referenceId))
|
|
80
|
+
return;
|
|
81
|
+
await getPost(comment.referenceId);
|
|
82
|
+
callback(comment);
|
|
83
|
+
});
|
|
84
|
+
}, 'referenceId', 'post'),
|
|
85
|
+
action: EnumPostActions.OnPostUpdated,
|
|
86
|
+
},
|
|
87
|
+
]);
|
|
88
|
+
}
|
|
89
|
+
notifyChange({ origin, loading, error }) {
|
|
90
|
+
var _a, _b;
|
|
91
|
+
const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
92
|
+
if (!collection)
|
|
93
|
+
return;
|
|
94
|
+
const data = this.applyFilter((_b = collection.data
|
|
95
|
+
.map(id => pullFromCache(['post', 'get', id]))
|
|
96
|
+
.filter(isNonNullable)
|
|
97
|
+
.map(({ data }) => data)) !== null && _b !== void 0 ? _b : []).map(LinkedObject.post);
|
|
98
|
+
if (!this.shouldNotify(data) && origin === 'event')
|
|
99
|
+
return;
|
|
100
|
+
this.callback({
|
|
101
|
+
onNextPage: () => this.loadPage({ direction: "next" /* Amity.LiveCollectionPageDirection.NEXT */ }),
|
|
102
|
+
data,
|
|
103
|
+
hasNextPage: !!this.paginationController.getNextToken(),
|
|
104
|
+
loading,
|
|
105
|
+
error,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
applyFilter(data) {
|
|
109
|
+
var _a;
|
|
110
|
+
let posts = data;
|
|
111
|
+
if (!this.query.includeDeleted) {
|
|
112
|
+
posts = filterByPropEquality(posts, 'isDeleted', false);
|
|
113
|
+
}
|
|
114
|
+
if ((_a = this.query.dataTypes) === null || _a === void 0 ? void 0 : _a.length) {
|
|
115
|
+
posts = filterByPostDataTypes(posts, this.query.dataTypes);
|
|
116
|
+
}
|
|
117
|
+
switch (this.query.sortBy) {
|
|
118
|
+
case 'firstCreated':
|
|
119
|
+
posts = posts.sort(sortByFirstCreated);
|
|
120
|
+
break;
|
|
121
|
+
case 'lastCreated':
|
|
122
|
+
default:
|
|
123
|
+
posts = posts.sort(sortByLastCreated);
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
return posts;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=LiveCollectionController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveCollectionController.js","sourceRoot":"","sources":["../../../../src/feedRepository/observers/getUserFeed/LiveCollectionController.ts"],"names":[],"mappings":"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","sourcesContent":["import hash from 'object-hash';\nimport { pullFromCache, pushToCache } from '~/cache/api';\nimport { UserFeedPaginationController } from './PaginationController';\nimport { UserFeedQueryStreamController } from './QueryStreamController';\nimport { LiveCollectionController } from '~/core/liveCollection/LiveCollectionController';\nimport {\n onPostCreated,\n onPostUpdated,\n onPostDeleted,\n onPostFlagged,\n onPostUnflagged,\n onPostReactionAdded,\n onPostReactionRemoved,\n onPostApproved,\n onPostDeclined,\n} from '~/postRepository/events';\nimport {\n filterByPostDataTypes,\n filterByPropEquality,\n sortByFirstCreated,\n sortByLastCreated,\n} from '~/core/query';\nimport { isNonNullable } from '~/utils';\nimport { EnumPostActions } from '~/postRepository/observers/enums';\nimport { LinkedObject } from '~/utils/linkedObject';\nimport { preparePostPayload } from '~/postRepository/utils/payload';\nimport { convertEventPayload } from '~/utils/event';\nimport { onCommentCreated, onCommentDeleted } from '~/commentRepository';\nimport { getPost } from '~/postRepository/internalApi/getPost';\nimport { onPostUpdatedLocal } from '~/postRepository/events/onPostUpdatedLocal';\nimport { onLocalPostReactionAdded } from '~/postRepository/events/onLocalPostReactionAdded';\nimport { onLocalPostReactionRemoved } from '~/postRepository/events/onLocalPostReactionRemoved';\nimport { onLocalPostDeleted } from '~/postRepository/events/onLocalPostDeleted';\n\nexport class UserFeedLiveCollectionController extends LiveCollectionController<\n 'post',\n Amity.UserFeedLiveCollection,\n Amity.Post,\n UserFeedPaginationController\n> {\n private queryStreamController: UserFeedQueryStreamController;\n\n private query: Amity.UserFeedLiveCollection;\n\n constructor(\n query: Amity.UserFeedLiveCollection,\n callback: Amity.LiveCollectionCallback<Amity.Post>,\n ) {\n const queryStreamId = hash(query);\n const cacheKey = ['userFeed', 'collection', queryStreamId];\n const paginationController = new UserFeedPaginationController(query);\n\n super(paginationController, queryStreamId, cacheKey, callback);\n\n this.query = query;\n this.queryStreamController = new UserFeedQueryStreamController(\n this.query,\n this.cacheKey,\n this.notifyChange.bind(this),\n preparePostPayload,\n );\n\n this.callback = callback.bind(this);\n this.loadPage({ initial: true });\n }\n\n protected setup() {\n const collection = pullFromCache<Amity.UserFeedLiveCollectionCache>(this.cacheKey)?.data;\n if (!collection) {\n pushToCache(this.cacheKey, {\n data: [],\n params: {},\n });\n }\n }\n\n protected async persistModel(queryPayload: Amity.PostPayload & Amity.Pagination) {\n await this.queryStreamController.saveToMainDB(queryPayload);\n }\n\n protected persistQueryStream({\n response,\n direction,\n refresh,\n }: Amity.LiveCollectionPersistQueryStreamParams<'post'>) {\n this.queryStreamController.appendToQueryStream(response, direction, refresh);\n }\n\n startSubscription() {\n return this.queryStreamController.subscribeRTE([\n { fn: onPostCreated, action: EnumPostActions.OnPostCreated },\n { fn: onPostUpdated, action: EnumPostActions.OnPostUpdated },\n { fn: onPostUpdatedLocal, action: EnumPostActions.OnPostUpdated },\n { fn: onPostDeleted, action: EnumPostActions.OnPostDeleted },\n { fn: onPostFlagged, action: EnumPostActions.OnPostFlagged },\n { fn: onPostUnflagged, action: EnumPostActions.OnPostUnflagged },\n { fn: onPostApproved, action: EnumPostActions.OnPostApproved },\n { fn: onPostDeclined, action: EnumPostActions.OnPostDeclined },\n { fn: onPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },\n { fn: onPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },\n { fn: onLocalPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },\n { fn: onLocalPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },\n { fn: onLocalPostDeleted, action: EnumPostActions.OnPostDeleted },\n {\n fn: convertEventPayload(\n (callback: Amity.Listener<Amity.InternalComment>) => {\n return onCommentCreated(async (comment: Amity.InternalComment) => {\n const currentCollection = pullFromCache<Amity.UserFeedLiveCollectionCache>(\n this.cacheKey,\n )?.data;\n\n if (!currentCollection || currentCollection.data.includes(comment.referenceId))\n return;\n\n await getPost(comment.referenceId);\n callback(comment);\n });\n },\n 'referenceId',\n 'post',\n ),\n action: EnumPostActions.OnPostUpdated,\n },\n {\n fn: convertEventPayload(\n (callback: Amity.Listener<Amity.InternalComment>) => {\n return onCommentDeleted(async (comment: Amity.InternalComment) => {\n const currentCollection = pullFromCache<Amity.UserFeedLiveCollectionCache>(\n this.cacheKey,\n )?.data;\n\n if (!currentCollection || currentCollection.data.includes(comment.referenceId))\n return;\n\n await getPost(comment.referenceId);\n callback(comment);\n });\n },\n 'referenceId',\n 'post',\n ),\n action: EnumPostActions.OnPostUpdated,\n },\n ]);\n }\n\n notifyChange({ origin, loading, error }: Amity.LiveCollectionNotifyParams) {\n const collection = pullFromCache<Amity.UserFeedLiveCollectionCache>(this.cacheKey)?.data;\n if (!collection) return;\n\n const data = this.applyFilter(\n collection.data\n .map(id => pullFromCache<Amity.InternalPost>(['post', 'get', id])!)\n .filter(isNonNullable)\n .map(({ data }) => data) ?? [],\n ).map(LinkedObject.post);\n\n if (!this.shouldNotify(data) && origin === 'event') return;\n\n this.callback({\n onNextPage: () => this.loadPage({ direction: Amity.LiveCollectionPageDirection.NEXT }),\n data,\n hasNextPage: !!this.paginationController.getNextToken(),\n loading,\n error,\n });\n }\n\n applyFilter(data: Amity.InternalPost[]) {\n let posts = data;\n\n if (!this.query.includeDeleted) {\n posts = filterByPropEquality(posts, 'isDeleted', false);\n }\n\n if (this.query.dataTypes?.length) {\n posts = filterByPostDataTypes(posts, this.query.dataTypes);\n }\n\n switch (this.query.sortBy) {\n case 'firstCreated':\n posts = posts.sort(sortByFirstCreated);\n break;\n case 'lastCreated':\n default:\n posts = posts.sort(sortByLastCreated);\n break;\n }\n\n return posts;\n }\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { PaginationController } from '~/core/liveCollection/PaginationController';
|
|
2
|
+
export declare class UserFeedPaginationController extends PaginationController<'post', Amity.UserFeedLiveCollection> {
|
|
3
|
+
getRequest(queryParams: Amity.UserFeedLiveCollection, token: string | undefined): Promise<Amity.PostPayload<any> & Amity.Pagination>;
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=PaginationController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaginationController.d.ts","sourceRoot":"","sources":["../../../../src/feedRepository/observers/getUserFeed/PaginationController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAIlF,qBAAa,4BAA6B,SAAQ,oBAAoB,CACpE,MAAM,EACN,KAAK,CAAC,sBAAsB,CAC7B;IACO,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS;CA4BtF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { __rest } from "tslib";
|
|
2
|
+
import { PaginationController } from '~/core/liveCollection/PaginationController';
|
|
3
|
+
import { COLLECTION_DEFAULT_PAGINATION_LIMIT } from '~/utils/constants';
|
|
4
|
+
import { inferIsDeleted } from '~/utils/inferIsDeleted';
|
|
5
|
+
export class UserFeedPaginationController extends PaginationController {
|
|
6
|
+
async getRequest(queryParams, token) {
|
|
7
|
+
const { userId, feedSources, dataTypes, includeDeleted, matchingOnlyParentPost, limit = COLLECTION_DEFAULT_PAGINATION_LIMIT } = queryParams, params = __rest(queryParams, ["userId", "feedSources", "dataTypes", "includeDeleted", "matchingOnlyParentPost", "limit"]);
|
|
8
|
+
const options = token ? { token } : { limit };
|
|
9
|
+
const { data: queryResponse } = await this.http.get(`/api/v4/user-feeds/${userId}`, {
|
|
10
|
+
params: Object.assign(Object.assign({}, params), { options, dataTypes: (dataTypes === null || dataTypes === void 0 ? void 0 : dataTypes.length) ? dataTypes : undefined, includePostedFeed: feedSources, isDeleted: inferIsDeleted(includeDeleted), matchingOnlyParentPost: matchingOnlyParentPost !== null && matchingOnlyParentPost !== void 0 ? matchingOnlyParentPost : !(dataTypes === null || dataTypes === void 0 ? void 0 : dataTypes.length) }),
|
|
11
|
+
});
|
|
12
|
+
return queryResponse;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=PaginationController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaginationController.js","sourceRoot":"","sources":["../../../../src/feedRepository/observers/getUserFeed/PaginationController.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,mCAAmC,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,OAAO,4BAA6B,SAAQ,oBAGjD;IACC,KAAK,CAAC,UAAU,CAAC,WAAyC,EAAE,KAAyB;QACnF,MAAM,EACJ,MAAM,EACN,WAAW,EACX,SAAS,EACT,cAAc,EACd,sBAAsB,EACtB,KAAK,GAAG,mCAAmC,KAEzC,WAAW,EADV,MAAM,UACP,WAAW,EART,2FAQL,CAAc,CAAC;QAEhB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QAE9C,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CACjD,sBAAsB,MAAM,EAAE,EAC9B;YACE,MAAM,kCACD,MAAM,KACT,OAAO,EACP,SAAS,EAAE,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,EAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACpD,iBAAiB,EAAE,WAAW,EAC9B,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC,EACzC,sBAAsB,EAAE,sBAAsB,aAAtB,sBAAsB,cAAtB,sBAAsB,GAAI,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,CAAA,GACrE;SACF,CACF,CAAC;QACF,OAAO,aAAa,CAAC;IACvB,CAAC;CACF","sourcesContent":["import { PaginationController } from '~/core/liveCollection/PaginationController';\nimport { COLLECTION_DEFAULT_PAGINATION_LIMIT } from '~/utils/constants';\nimport { inferIsDeleted } from '~/utils/inferIsDeleted';\n\nexport class UserFeedPaginationController extends PaginationController<\n 'post',\n Amity.UserFeedLiveCollection\n> {\n async getRequest(queryParams: Amity.UserFeedLiveCollection, token: string | undefined) {\n const {\n userId,\n feedSources,\n dataTypes,\n includeDeleted,\n matchingOnlyParentPost,\n limit = COLLECTION_DEFAULT_PAGINATION_LIMIT,\n ...params\n } = queryParams;\n\n const options = token ? { token } : { limit };\n\n const { data: queryResponse } = await this.http.get<Amity.PostPayload & Amity.Pagination>(\n `/api/v4/user-feeds/${userId}`,\n {\n params: {\n ...params,\n options,\n dataTypes: dataTypes?.length ? dataTypes : undefined,\n includePostedFeed: feedSources,\n isDeleted: inferIsDeleted(includeDeleted),\n matchingOnlyParentPost: matchingOnlyParentPost ?? !dataTypes?.length,\n },\n },\n );\n return queryResponse;\n }\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EnumPostActions } from '~/postRepository/observers/enums';
|
|
2
|
+
import { QueryStreamController } from '~/core/liveCollection/QueryStreamController';
|
|
3
|
+
export declare class UserFeedQueryStreamController extends QueryStreamController<Amity.PostPayload, Amity.UserFeedLiveCollection> {
|
|
4
|
+
private notifyChange;
|
|
5
|
+
private preparePayload;
|
|
6
|
+
constructor(query: Amity.UserFeedLiveCollection, cacheKey: string[], notifyChange: (params: Amity.LiveCollectionNotifyParams) => void, preparePayload: (response: Amity.PostPayload) => Amity.ProcessedPostPayload);
|
|
7
|
+
saveToMainDB(response: Amity.PostPayload): Promise<void>;
|
|
8
|
+
appendToQueryStream(response: Amity.PostPayload & Partial<Amity.Pagination>, direction: Amity.LiveCollectionPageDirection, refresh?: boolean): void;
|
|
9
|
+
reactor(action: EnumPostActions): (post: Amity.InternalPost) => void;
|
|
10
|
+
subscribeRTE(createSubscriber: {
|
|
11
|
+
fn: (reactor: (post: Amity.InternalPost) => void) => Amity.Unsubscriber;
|
|
12
|
+
action: EnumPostActions;
|
|
13
|
+
}[]): Amity.Unsubscriber[];
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=QueryStreamController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryStreamController.d.ts","sourceRoot":"","sources":["../../../../src/feedRepository/observers/getUserFeed/QueryStreamController.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAEpF,qBAAa,6BAA8B,SAAQ,qBAAqB,CACtE,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,sBAAsB,CAC7B;IACC,OAAO,CAAC,YAAY,CAAqD;IAEzE,OAAO,CAAC,cAAc,CAA8D;gBAGlF,KAAK,EAAE,KAAK,CAAC,sBAAsB,EACnC,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;IAmDlC,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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { getResolver } from '~/core/model';
|
|
2
|
+
import { getActiveClient } from '~/client';
|
|
3
|
+
import { pullFromCache, pushToCache } from '~/cache/api';
|
|
4
|
+
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
5
|
+
import { EnumPostActions } from '~/postRepository/observers/enums';
|
|
6
|
+
import { QueryStreamController } from '~/core/liveCollection/QueryStreamController';
|
|
7
|
+
export class UserFeedQueryStreamController extends QueryStreamController {
|
|
8
|
+
constructor(query, cacheKey, notifyChange, preparePayload) {
|
|
9
|
+
super(query, cacheKey);
|
|
10
|
+
this.notifyChange = notifyChange;
|
|
11
|
+
this.preparePayload = preparePayload;
|
|
12
|
+
}
|
|
13
|
+
async saveToMainDB(response) {
|
|
14
|
+
const processedPayload = await this.preparePayload(response);
|
|
15
|
+
const client = getActiveClient();
|
|
16
|
+
const cachedAt = client.cache && Date.now();
|
|
17
|
+
if (client.cache) {
|
|
18
|
+
ingestInCache(processedPayload, { cachedAt });
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
appendToQueryStream(response, direction, refresh = false) {
|
|
22
|
+
var _a, _b;
|
|
23
|
+
if (refresh) {
|
|
24
|
+
pushToCache(this.cacheKey, {
|
|
25
|
+
data: response.posts.map(getResolver('post')),
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
30
|
+
const posts = (_b = collection === null || collection === void 0 ? void 0 : collection.data) !== null && _b !== void 0 ? _b : [];
|
|
31
|
+
pushToCache(this.cacheKey, Object.assign(Object.assign({}, collection), { data: [...new Set([...posts, ...response.posts.map(getResolver('post'))])] }));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
reactor(action) {
|
|
35
|
+
return (post) => {
|
|
36
|
+
var _a, _b;
|
|
37
|
+
const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
38
|
+
if (!collection)
|
|
39
|
+
return;
|
|
40
|
+
// if the collection is parent post collection and
|
|
41
|
+
// post is not included in the collection or post is child post
|
|
42
|
+
if ((!this.query.dataTypes || this.query.dataTypes.length === 0) &&
|
|
43
|
+
!collection.data.includes(post.parentPostId ? post.parentPostId : post.postId))
|
|
44
|
+
return;
|
|
45
|
+
if (action === EnumPostActions.OnPostDeleted) {
|
|
46
|
+
collection.data = collection.data.filter(postId => postId !== post.postId);
|
|
47
|
+
}
|
|
48
|
+
if (post.parentPostId && post.isDeleted) {
|
|
49
|
+
const parentPost = (_b = pullFromCache([
|
|
50
|
+
'post',
|
|
51
|
+
'get',
|
|
52
|
+
post.parentPostId,
|
|
53
|
+
])) === null || _b === void 0 ? void 0 : _b.data;
|
|
54
|
+
if (!parentPost)
|
|
55
|
+
return;
|
|
56
|
+
parentPost.children = parentPost.children.filter(childId => childId !== post.postId);
|
|
57
|
+
pushToCache(['post', 'get', parentPost.postId], parentPost);
|
|
58
|
+
}
|
|
59
|
+
if (action === EnumPostActions.OnPostDeclined) {
|
|
60
|
+
collection.data = collection.data.filter(postId => postId !== post.postId);
|
|
61
|
+
}
|
|
62
|
+
if (action === EnumPostActions.OnPostCreated || action === EnumPostActions.OnPostApproved) {
|
|
63
|
+
if (this.query.dataTypes &&
|
|
64
|
+
this.query.dataTypes.length > 0 &&
|
|
65
|
+
!this.query.dataTypes.includes(post.dataType)) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
collection.data = [...new Set([post.postId, ...collection.data])];
|
|
69
|
+
}
|
|
70
|
+
pushToCache(this.cacheKey, collection);
|
|
71
|
+
this.notifyChange({ origin: "event" /* Amity.LiveDataOrigin.EVENT */, loading: false });
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
subscribeRTE(createSubscriber) {
|
|
75
|
+
return createSubscriber.map(subscriber => subscriber.fn(this.reactor(subscriber.action)));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=QueryStreamController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryStreamController.js","sourceRoot":"","sources":["../../../../src/feedRepository/observers/getUserFeed/QueryStreamController.ts"],"names":[],"mappings":"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","sourcesContent":["import { getResolver } from '~/core/model';\nimport { getActiveClient } from '~/client';\nimport { pullFromCache, pushToCache } from '~/cache/api';\nimport { ingestInCache } from '~/cache/api/ingestInCache';\nimport { EnumPostActions } from '~/postRepository/observers/enums';\nimport { QueryStreamController } from '~/core/liveCollection/QueryStreamController';\n\nexport class UserFeedQueryStreamController extends QueryStreamController<\n Amity.PostPayload,\n Amity.UserFeedLiveCollection\n> {\n private notifyChange: (params: Amity.LiveCollectionNotifyParams) => void;\n\n private preparePayload: (response: Amity.PostPayload) => Amity.ProcessedPostPayload;\n\n constructor(\n query: Amity.UserFeedLiveCollection,\n cacheKey: string[],\n notifyChange: (params: Amity.LiveCollectionNotifyParams) => void,\n preparePayload: (response: Amity.PostPayload) => Amity.ProcessedPostPayload,\n ) {\n super(query, cacheKey);\n this.notifyChange = notifyChange;\n this.preparePayload = preparePayload;\n }\n\n async saveToMainDB(response: Amity.PostPayload) {\n const processedPayload = await this.preparePayload(response);\n\n const client = getActiveClient();\n const cachedAt = client.cache && Date.now();\n\n if (client.cache) {\n ingestInCache(processedPayload, { cachedAt });\n }\n }\n\n appendToQueryStream(\n response: Amity.PostPayload & Partial<Amity.Pagination>,\n direction: Amity.LiveCollectionPageDirection,\n refresh = false,\n ) {\n if (refresh) {\n pushToCache(this.cacheKey, {\n data: response.posts.map(getResolver('post')),\n });\n } else {\n const collection = pullFromCache<Amity.UserFeedLiveCollectionCache>(this.cacheKey)?.data;\n\n const posts = collection?.data ?? [];\n\n pushToCache(this.cacheKey, {\n ...collection,\n data: [...new Set([...posts, ...response.posts.map(getResolver('post'))])],\n });\n }\n }\n\n reactor(action: EnumPostActions) {\n return (post: Amity.InternalPost) => {\n const collection = pullFromCache<Amity.UserFeedLiveCollectionCache>(this.cacheKey)?.data;\n\n if (!collection) return;\n\n // if the collection is parent post collection and\n // post is not included in the collection or post is child post\n if (\n (!this.query.dataTypes || this.query.dataTypes.length === 0) &&\n !collection.data.includes(post.parentPostId ? post.parentPostId : post.postId)\n )\n return;\n\n if (action === EnumPostActions.OnPostDeleted) {\n collection.data = collection.data.filter(postId => postId !== post.postId);\n }\n\n if (post.parentPostId && post.isDeleted) {\n const parentPost = pullFromCache<Amity.InternalPost>([\n 'post',\n 'get',\n post.parentPostId,\n ])?.data;\n\n if (!parentPost) return;\n\n parentPost.children = parentPost.children.filter(childId => childId !== post.postId);\n pushToCache(['post', 'get', parentPost.postId], parentPost);\n }\n\n if (action === EnumPostActions.OnPostDeclined) {\n collection.data = collection.data.filter(postId => postId !== post.postId);\n }\n\n if (action === EnumPostActions.OnPostCreated || action === EnumPostActions.OnPostApproved) {\n if (\n this.query.dataTypes &&\n this.query.dataTypes.length > 0 &&\n !this.query.dataTypes.includes(post.dataType)\n ) {\n return;\n }\n\n collection.data = [...new Set([post.postId, ...collection.data])];\n }\n\n pushToCache(this.cacheKey, collection);\n this.notifyChange({ origin: Amity.LiveDataOrigin.EVENT, loading: false });\n };\n }\n\n subscribeRTE(\n createSubscriber: {\n fn: (reactor: (post: Amity.InternalPost) => void) => Amity.Unsubscriber;\n action: EnumPostActions;\n }[],\n ) {\n return createSubscriber.map(subscriber => subscriber.fn(this.reactor(subscriber.action)));\n }\n}\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ```js
|
|
3
|
+
* import { FeedRepository } from '@amityco/ts-sdk'
|
|
4
|
+
*
|
|
5
|
+
* let posts = []
|
|
6
|
+
* const unsubscribe = FeedRepository.getUserFeed({
|
|
7
|
+
* userId: string,
|
|
8
|
+
* feedSources: ['user', 'community'],
|
|
9
|
+
* }, response => response => processResponse(response))
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* Observe all mutations on a list of {@link Amity.Post} for a given user and feedSources
|
|
13
|
+
*
|
|
14
|
+
* @param params.userId the ID of the user
|
|
15
|
+
* @param params.feedSources the sources of the feed
|
|
16
|
+
* @param callback the function to call when new data are available
|
|
17
|
+
* @param config
|
|
18
|
+
* @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the messages
|
|
19
|
+
*
|
|
20
|
+
* @category Posts Live Collection
|
|
21
|
+
*/
|
|
22
|
+
export declare const getUserFeed: (params: Amity.UserFeedLiveCollection, callback: Amity.LiveCollectionCallback<Amity.Post>, config?: Amity.LiveCollectionConfig) => Amity.Unsubscriber;
|
|
23
|
+
//# sourceMappingURL=getUserFeed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getUserFeed.d.ts","sourceRoot":"","sources":["../../../src/feedRepository/observers/getUserFeed.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,WAAW,WACd,MAAM,sBAAsB,YAC1B,MAAM,sBAAsB,CAAC,MAAM,IAAI,CAAC,WACzC,MAAM,oBAAoB,KAClC,MAAM,YAqBR,CAAC"}
|