fansunited-sdk-esm 1.48.0 → 1.49.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/Core/Global/Models/FansUnitedSDKModel.d.ts +2 -0
  2. package/Core/Global/Types/GlobalTypes.d.ts +2 -1
  3. package/Core/Https/ClientHttps.d.ts +2 -1
  4. package/Core/Https/DiscussionsHttps.d.ts +20 -0
  5. package/Core/Namespaces/Activity/Models/RequestBody/Context/ContextModel.d.ts +2 -2
  6. package/Core/Namespaces/Discussions/Discussions.d.ts +20 -0
  7. package/Core/Namespaces/Discussions/Facade/DiscussionsFacade.d.ts +29 -0
  8. package/Core/Namespaces/Discussions/Factory/DiscussionsFactory.d.ts +5 -0
  9. package/Core/Namespaces/Discussions/Models/ClientFeatures/AutomaticModerationModel.d.ts +8 -0
  10. package/Core/Namespaces/Discussions/Models/ClientFeatures/DictionaryModel.d.ts +4 -0
  11. package/Core/Namespaces/Discussions/Models/ClientFeatures/DiscussionsConfigModel.d.ts +6 -0
  12. package/Core/Namespaces/Discussions/Models/CreatePostParamBody.d.ts +6 -0
  13. package/Core/Namespaces/Discussions/Models/DiscussionModel.d.ts +15 -0
  14. package/Core/Namespaces/Discussions/Models/Filters/DiscussionsFilters.d.ts +8 -0
  15. package/Core/Namespaces/Discussions/Models/PostByIdBasicModel.d.ts +26 -0
  16. package/Core/Namespaces/Discussions/Models/PostByIdFullModel.d.ts +5 -0
  17. package/Core/Namespaces/Discussions/Models/PostCreateModel.d.ts +6 -0
  18. package/Core/Namespaces/Discussions/Models/PostsDiscussionBasicModel.d.ts +6 -0
  19. package/Core/Namespaces/Discussions/Models/PostsFullModel.d.ts +6 -0
  20. package/Core/Namespaces/Discussions/Models/PostsMetaModel.d.ts +9 -0
  21. package/Core/Namespaces/Discussions/Models/PostsModel.d.ts +6 -0
  22. package/Core/Namespaces/Discussions/Models/ReactionModel.d.ts +5 -0
  23. package/Core/Namespaces/Discussions/Models/Remapper/DiscussionRemapper.d.ts +19 -0
  24. package/Core/Namespaces/Discussions/Models/ReportModel.d.ts +6 -0
  25. package/Core/Namespaces/Discussions/Models/VersionsModel.d.ts +4 -0
  26. package/Core/Namespaces/Discussions/Service/DiscussionsService.d.ts +8 -0
  27. package/Core/Namespaces/Discussions/Types/types.d.ts +2 -0
  28. package/Core/Namespaces/Predictor/Models/Config/FeatureConfigRemapper.d.ts +5 -2
  29. package/index.js +3 -3
  30. package/index.js.map +4 -4
  31. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  import Activity from "../../Namespaces/Activity/Activity";
2
+ import Discussions from "../../Namespaces/Discussions/Discussions";
2
3
  import Football from "../../Namespaces/Football/Football";
3
4
  import Loyalty from "../../Namespaces/Loyalty/Loyalty";
4
5
  import MatchQuiz from "../../Namespaces/MatchQuiz/MatchQuiz";
@@ -15,4 +16,5 @@ export default class FansUnitedSDKModel {
15
16
  matchQuiz: MatchQuiz;
16
17
  activity: Activity;
17
18
  miniGames: MiniGames;
19
+ discussions: Discussions;
18
20
  }
@@ -2,7 +2,8 @@ import LoyaltyConfigModel from "../../Namespaces/Loyalty/Models/ClientFeatures/L
2
2
  import MatchQuizConfigModel from "../../Namespaces/MatchQuiz/Models/Config/MatchQuizConfigModel";
3
3
  import TopXConfigModel from "../../Namespaces/TopX/Models/Config/TopXConfigModel";
4
4
  import PredictorConfigModel from "../../Namespaces/Predictor/Models/Config/PredictorConfigModel";
5
- export type FeaturesConfigModels = PredictorConfigModel | TopXConfigModel | MatchQuizConfigModel | LoyaltyConfigModel;
5
+ import DiscussionsConfigModel from "../../Namespaces/Discussions/Models/ClientFeatures/DiscussionsConfigModel";
6
+ export type FeaturesConfigModels = PredictorConfigModel | TopXConfigModel | MatchQuizConfigModel | LoyaltyConfigModel | DiscussionsConfigModel;
6
7
  export type FilterCase = "user" | "current" | "past" | "matches";
7
8
  export type IdEntities = {
8
9
  competition?: string[];
@@ -5,7 +5,8 @@ export declare enum FeatureConfigType {
5
5
  PREDICTOR = "predictor",
6
6
  TOP_X = "topX",
7
7
  MATCH_QUIZ = "matchQuiz",
8
- LOYALTY = "loyalty"
8
+ LOYALTY = "loyalty",
9
+ DISCUSSIONS = "discussions"
9
10
  }
10
11
  export default class ClientHttps extends Https {
11
12
  private featureConfigRemapper;
@@ -0,0 +1,20 @@
1
+ import SDKConfiguraitonModel from "../Configurator/Models/SDKConfiguraitonModel";
2
+ import DiscussionsFilters from "../Namespaces/Discussions/Models/Filters/DiscussionsFilters";
3
+ import PostCreateModel from "../Namespaces/Discussions/Models/PostCreateModel";
4
+ import { ReactionPostType, ReportReasonType } from "../Namespaces/Discussions/Types/types";
5
+ import Https from "./Https";
6
+ export default class DiscussionsHttps extends Https {
7
+ private remapper;
8
+ constructor(config: SDKConfiguraitonModel);
9
+ getById: (discussionId: string) => Promise<import("../Namespaces/Discussions/Models/DiscussionModel").default>;
10
+ createPost: (discussionId: string, requestBody: PostCreateModel) => Promise<import("../Namespaces/Discussions/Models/PostByIdBasicModel").default>;
11
+ getPostById: (postId: string) => Promise<import("../Namespaces/Discussions/Models/PostByIdFullModel").default>;
12
+ updatePost: (postId: string, content: string) => Promise<import("../Namespaces/Discussions/Models/PostByIdBasicModel").default>;
13
+ reactToPost: (postId: string, reaction: ReactionPostType) => Promise<import("../Namespaces/Discussions/Models/PostByIdBasicModel").default>;
14
+ deletePost: (postId: string) => Promise<boolean>;
15
+ getPosts: (discussionId: string, filters?: DiscussionsFilters) => Promise<import("../Namespaces/Discussions/Models/PostsDiscussionBasicModel").default | import("../Namespaces/Discussions/Models/PostsFullModel").default>;
16
+ getPostReplies: (postId: string, filters?: DiscussionsFilters) => Promise<import("../Namespaces/Discussions/Models/PostsDiscussionBasicModel").default | import("../Namespaces/Discussions/Models/PostsFullModel").default>;
17
+ reportPost: (postId: string, reason: ReportReasonType, reasonDetails: string) => Promise<import("../Namespaces/Discussions/Models/PostByIdBasicModel").default>;
18
+ getOwnPosts: (filters?: DiscussionsFilters) => Promise<import("../Namespaces/Discussions/Models/PostsModel").default>;
19
+ getUserPosts: (userId: string, filters?: DiscussionsFilters, disableCache?: boolean) => Promise<import("../Namespaces/Discussions/Models/PostsModel").default>;
20
+ }
@@ -2,7 +2,7 @@ import CampaignModel from "./CampaignModel";
2
2
  import ContentModel from "./ContentModel";
3
3
  import TagsModel from "./TagsModel";
4
4
  export default class ContextModel {
5
- content?: ContentModel;
5
+ content?: ContentModel | null;
6
6
  tags: TagsModel[];
7
- campaign?: CampaignModel;
7
+ campaign?: CampaignModel | null;
8
8
  }
@@ -0,0 +1,20 @@
1
+ import SDKConfigurationModel from "../../Configurator/Models/SDKConfiguraitonModel";
2
+ import CreatePostParamBody from "./Models/CreatePostParamBody";
3
+ import DiscussionsFilters from "./Models/Filters/DiscussionsFilters";
4
+ import { ReactionPostType, ReportReasonType } from "./Types/types";
5
+ export default class Discussions {
6
+ private facade;
7
+ constructor(config: SDKConfigurationModel);
8
+ getById: (discussionId: string) => Promise<import("./Models/DiscussionModel").default>;
9
+ createPost: (discussionId: string, body: CreatePostParamBody) => Promise<import("./Models/PostByIdBasicModel").default>;
10
+ getPostById: (postId: string) => Promise<import("./Models/PostByIdFullModel").default>;
11
+ updatePost: (postId: string, content: string) => Promise<import("./Models/PostByIdBasicModel").default>;
12
+ deletePost: (postId: string) => Promise<boolean>;
13
+ getPosts: (discussionId: string, filters?: DiscussionsFilters) => Promise<import("./Models/PostsDiscussionBasicModel").default | import("./Models/PostsFullModel").default>;
14
+ getPostReplies: (postId: string, filters?: DiscussionsFilters) => Promise<import("./Models/PostsDiscussionBasicModel").default | import("./Models/PostsFullModel").default>;
15
+ react: (postId: string, reaction: ReactionPostType) => Promise<import("./Models/PostByIdBasicModel").default>;
16
+ reportPost: (postId: string, reason: ReportReasonType, reasonDetails?: string) => Promise<import("./Models/PostByIdBasicModel").default>;
17
+ getOwnPosts: (filters?: DiscussionsFilters) => Promise<import("./Models/PostsModel").default>;
18
+ getUserPosts: (userId: string, filters?: DiscussionsFilters, disableCache?: boolean) => Promise<import("./Models/PostsModel").default>;
19
+ getConfig: () => Promise<import("./Models/ClientFeatures/DiscussionsConfigModel").default>;
20
+ }
@@ -0,0 +1,29 @@
1
+ import SDKConfigurationModel from "../../../Configurator/Models/SDKConfiguraitonModel";
2
+ import DiscussionsConfigModel from "../Models/ClientFeatures/DiscussionsConfigModel";
3
+ import CreatePostParamBody from "../Models/CreatePostParamBody";
4
+ import DiscussionModel from "../Models/DiscussionModel";
5
+ import DiscussionsFilters from "../Models/Filters/DiscussionsFilters";
6
+ import PostByIdFullModel from "../Models/PostByIdFullModel";
7
+ import { ReactionPostType, ReportReasonType } from "../Types/types";
8
+ export default class DiscussionsFacade {
9
+ private idSchema;
10
+ private https;
11
+ private clientHttps;
12
+ private activityService;
13
+ private service;
14
+ private factory;
15
+ constructor(config: SDKConfigurationModel);
16
+ getById: (discussionId: string) => Promise<DiscussionModel>;
17
+ createPost: (discussionId: string, body: CreatePostParamBody) => Promise<import("../Models/PostByIdBasicModel").default>;
18
+ getPostById: (postId: string) => Promise<PostByIdFullModel>;
19
+ updatePost: (postId: string, content: string) => Promise<import("../Models/PostByIdBasicModel").default>;
20
+ deletePost: (postId: string) => Promise<boolean>;
21
+ getPosts: (discussionId: string, filters?: DiscussionsFilters) => Promise<import("../Models/PostsDiscussionBasicModel").default | import("../Models/PostsFullModel").default>;
22
+ getPostReplies: (postId: string, filters?: DiscussionsFilters) => Promise<import("../Models/PostsDiscussionBasicModel").default | import("../Models/PostsFullModel").default>;
23
+ reactToPost: (postId: string, reaction: ReactionPostType) => Promise<import("../Models/PostByIdBasicModel").default>;
24
+ reportPost: (postId: string, reason: ReportReasonType, reasonDetails: string) => Promise<import("../Models/PostByIdBasicModel").default>;
25
+ getOwnPosts: (filters?: DiscussionsFilters) => Promise<import("../Models/PostsModel").default>;
26
+ getUserPosts: (userId: string, filters?: DiscussionsFilters, disableCache?: boolean) => Promise<import("../Models/PostsModel").default>;
27
+ getConfig: () => Promise<DiscussionsConfigModel>;
28
+ private remapTags;
29
+ }
@@ -0,0 +1,5 @@
1
+ import CreatePostParamBody from "../Models/CreatePostParamBody";
2
+ import PostCreateModel from "../Models/PostCreateModel";
3
+ export default class DiscussionsFactory {
4
+ createRequestBodyFromParam: (param: CreatePostParamBody) => PostCreateModel;
5
+ }
@@ -0,0 +1,8 @@
1
+ import DictionaryModel from "./DictionaryModel";
2
+ export default class AutomaticModerationModel {
3
+ enabled: boolean;
4
+ moderateLinks: boolean;
5
+ linksWhitelist: string[];
6
+ moderatorProfileId: string;
7
+ dictionary: DictionaryModel;
8
+ }
@@ -0,0 +1,4 @@
1
+ export default class DictionaryModel {
2
+ reason: string;
3
+ words: string[];
4
+ }
@@ -0,0 +1,6 @@
1
+ import AutomaticModerationModel from "./AutomaticModerationModel";
2
+ export default class DiscussionsConfigModel {
3
+ enabled: boolean;
4
+ clientId: string;
5
+ automaticModeration: AutomaticModerationModel;
6
+ }
@@ -0,0 +1,6 @@
1
+ import ContextModel from "../../Activity/Models/RequestBody/Context/ContextModel";
2
+ export default class CreatePostParamBody {
3
+ content: string;
4
+ replyId: string | null;
5
+ context: ContextModel;
6
+ }
@@ -0,0 +1,15 @@
1
+ import ContextModel from "../../Activity/Models/RequestBody/Context/ContextModel";
2
+ export type DiscussionType = "LEAGUE" | "COMMENT_SECTION";
3
+ export type ModerationType = "USER" | "STAFF";
4
+ export default class DiscussionModel {
5
+ id: string;
6
+ label: string;
7
+ discussionType: DiscussionType;
8
+ moderationType: ModerationType;
9
+ postsCount: number;
10
+ pinnedPosts: string[];
11
+ lastPostId: string;
12
+ context: ContextModel;
13
+ createdAt: string;
14
+ updatedAt: string;
15
+ }
@@ -0,0 +1,8 @@
1
+ import MainFiltersBQ from "../../../../Global/Models/Filters/MainFiltersBQ";
2
+ export type DiscussionsSortTypes = "OLDEST" | "LATEST" | "INTERACTED" | "POPULAR";
3
+ export default class DiscussionsFilters extends MainFiltersBQ {
4
+ skipDeleted?: boolean;
5
+ sort?: DiscussionsSortTypes;
6
+ constructor(filters: any);
7
+ constructMainFiltersUrl?(): string;
8
+ }
@@ -0,0 +1,26 @@
1
+ import ReactionModel from "./ReactionModel";
2
+ import ReportModel from "./ReportModel";
3
+ import VersionsModel from "./VersionsModel";
4
+ export default class PostByIdBasicModel {
5
+ id: string;
6
+ userId: string;
7
+ discussionId: string;
8
+ content: string;
9
+ repliesCount: number;
10
+ replyId: string;
11
+ reactions: ReactionModel[];
12
+ reactionsCount: number;
13
+ reports: ReportModel[];
14
+ reportsCount: number;
15
+ versions: VersionsModel[];
16
+ privatePost: boolean;
17
+ deleted: boolean;
18
+ deletedAt: string;
19
+ deletedBy: string;
20
+ moderated: boolean;
21
+ moderatedAt: string;
22
+ moderatedBy: string;
23
+ moderatedReason: string;
24
+ createdAt: string;
25
+ updatedAt: string;
26
+ }
@@ -0,0 +1,5 @@
1
+ import PostByIdBasicModel from "./PostByIdBasicModel";
2
+ import ProfileModel from "../../Profile/Models/ProfileModel";
3
+ export default class PostByIdFullModel extends PostByIdBasicModel {
4
+ userModel: ProfileModel;
5
+ }
@@ -0,0 +1,6 @@
1
+ import ContextModel from "../../Activity/Models/RequestBody/Context/ContextModel";
2
+ export default class PostCreateModel {
3
+ content: string;
4
+ reply_id: string | null;
5
+ context: ContextModel;
6
+ }
@@ -0,0 +1,6 @@
1
+ import PostsMetaModel from "./PostsMetaModel";
2
+ import PostByIdBasicModel from "./PostByIdBasicModel";
3
+ export default class PostsDiscussionBasicModel {
4
+ meta: PostsMetaModel;
5
+ data: PostByIdBasicModel[];
6
+ }
@@ -0,0 +1,6 @@
1
+ import PostsMetaModel from "./PostsMetaModel";
2
+ import PostByIdFullModel from "./PostByIdFullModel";
3
+ export default class PostsFullModel {
4
+ meta: PostsMetaModel;
5
+ data: PostByIdFullModel[];
6
+ }
@@ -0,0 +1,9 @@
1
+ interface IPostsPagination {
2
+ totalItems: number;
3
+ nextPageStartsAfter: string;
4
+ lastCommentCreateTimestamp: string;
5
+ }
6
+ export default class PostsMetaModel {
7
+ pagination: IPostsPagination;
8
+ }
9
+ export {};
@@ -0,0 +1,6 @@
1
+ import MetaModel from "../../../Global/Models/Pagination/MetaModel";
2
+ import PostByIdBasicModel from "./PostByIdBasicModel";
3
+ export default class PostsModel {
4
+ meta: MetaModel;
5
+ data: PostByIdBasicModel[];
6
+ }
@@ -0,0 +1,5 @@
1
+ export default class ReactionModel {
2
+ type: string;
3
+ userIds: string[];
4
+ reactionCount: number;
5
+ }
@@ -0,0 +1,19 @@
1
+ import DiscussionModel from "../DiscussionModel";
2
+ import PostsMetaModel from "../PostsMetaModel";
3
+ import PostByIdBasicModel from "../PostByIdBasicModel";
4
+ import PostsDiscussionBasicModel from "../PostsDiscussionBasicModel";
5
+ import PostByIdFullModel from "../PostByIdFullModel";
6
+ import PostsFullModel from "../PostsFullModel";
7
+ import PostsModel from "../PostsModel";
8
+ export default class DiscussionRemapper {
9
+ remapToDiscussionById: (response: any) => DiscussionModel;
10
+ remapToPostsForDiscussion: (response: any, typeModel: "basic" | "full") => PostsDiscussionBasicModel | PostsFullModel;
11
+ remapToPosts: (response: any) => PostsModel;
12
+ remapToPostMeta: (meta: any) => PostsMetaModel;
13
+ private remapToMeta;
14
+ remapToPostByIdBasic: (response: any) => PostByIdBasicModel;
15
+ remapToPostByIdFull: (response: any) => PostByIdFullModel;
16
+ private remapReactionsPost;
17
+ private remapVersionsPost;
18
+ private remapReportPost;
19
+ }
@@ -0,0 +1,6 @@
1
+ import { ReportReasonType } from "../Types/types";
2
+ export default class ReportModel {
3
+ userId: string;
4
+ reason: ReportReasonType;
5
+ reasonDetails: string;
6
+ }
@@ -0,0 +1,4 @@
1
+ export default class VersionsModel {
2
+ updatedAt: string;
3
+ content: string;
4
+ }
@@ -0,0 +1,8 @@
1
+ import SDKConfigurationModel from "../../../Configurator/Models/SDKConfiguraitonModel";
2
+ import PostByIdFullModel from "../Models/PostByIdFullModel";
3
+ export default class DiscussionsService {
4
+ private readonly profile;
5
+ constructor(config: SDKConfigurationModel);
6
+ finalizePostFullModel: (posts: PostByIdFullModel[]) => Promise<PostByIdFullModel[]>;
7
+ private extractModelById;
8
+ }
@@ -0,0 +1,2 @@
1
+ export type ReactionPostType = "LIKE" | "DISLIKE" | "LOVE" | "LAUGH" | "CARE" | "WOW" | "SAD" | "ANGRY";
2
+ export type ReportReasonType = "SPAM" | "NOT_ON_THE_SUBJECT" | "AD" | "COPYRIGHT" | "EXPLICIT_SEXUAL_CONTENT" | "HATEFUL_SPEECH" | "INSULT" | "OTHER";
@@ -1,3 +1,4 @@
1
+ import DiscussionsConfigModel from "../../../Discussions/Models/ClientFeatures/DiscussionsConfigModel";
1
2
  import LoyaltyConfigModel from "../../../Loyalty/Models/ClientFeatures/LoyaltyConfigModel";
2
3
  import MatchQuizConfigModel from "../../../MatchQuiz/Models/Config/MatchQuizConfigModel";
3
4
  import TopXConfigModel from "../../../TopX/Models/Config/TopXConfigModel";
@@ -7,12 +8,14 @@ export default class FeatureConfigRemapper {
7
8
  remapTopXConfig: (response: any) => TopXConfigModel;
8
9
  remapMatchQuizConfig: (response: any) => MatchQuizConfigModel;
9
10
  remapLoyaltyConfig: (response: any) => LoyaltyConfigModel;
11
+ remapDiscussionsConfig: (response: any) => DiscussionsConfigModel;
12
+ private remapAutomaticModeration;
10
13
  private remapRewards;
11
14
  private remapPoints;
12
15
  private remapBadges;
13
16
  private remapBadgeValues;
14
- private remapGeneralBadgeValues;
15
17
  private remapRequirements;
16
- private remapGeneralRequirements;
17
18
  private remapUserDataConfig;
19
+ private remapGeneralBadgeValues;
20
+ private remapGeneralRequirements;
18
21
  }