strapi-plugin-comments
Version:
843 lines (842 loc) • 29.3 kB
TypeScript
import { Params } from '@strapi/database/dist/entity-manager/types';
import { UID } from '@strapi/strapi';
import { Id, PathValue, StrapiContext } from '../@types';
import { CommentsPluginConfig } from '../config';
import { client as clientValidator } from '../validators/api';
import { Comment, CommentRelated, CommentWithRelated } from '../validators/repositories';
import { Pagination } from '../validators/repositories/utils';
type ParsedRelation = {
uid: UID.ContentType;
relatedId: string;
};
declare const commonService: ({ strapi }: StrapiContext) => {
getConfig<T extends string>(prop?: T, defaultValue?: PathValue<CommentsPluginConfig, T>, useLocal?: boolean): Promise<PathValue<CommentsPluginConfig, T>>;
parseRelationString(relation: `${string}::${string}.${string}:${string}` | string): ParsedRelation;
isValidUserContext<T_1 extends {
id?: string | number;
}>(user?: T_1): boolean;
sanitizeCommentEntity(entity: Comment | CommentWithRelated, blockedAuthors: string[], omitProps?: Array<keyof Comment>, populate?: any): Comment;
findAllFlat({ fields, limit, skip, sort, populate, omit: baseOmit, isAdmin, pagination, filters, locale, }: clientValidator.FindAllFlatSchema, relatedEntity?: any): Promise<{
data: Array<CommentWithRelated | Comment>;
pagination?: Pagination;
}>;
getCommentsChildren({ filters, populate, sort, fields, isAdmin, omit, locale, limit, }: clientValidator.FindAllInHierarchyValidatorSchema, entry: Comment | CommentWithRelated, relatedEntity?: any, dropBlockedThreads?: boolean, blockNestedThreads?: boolean): any;
findAllInHierarchy({ filters, populate, sort, fields, startingFromId, dropBlockedThreads, isAdmin, omit, locale, limit, pagination, }: clientValidator.FindAllInHierarchyValidatorSchema, relatedEntity?: any): Promise<any[]>;
findOne(criteria: Partial<Params['where']>): Promise<{
id?: number;
documentId?: string;
content?: string;
blocked?: boolean;
blockedThread?: boolean;
blockReason?: string;
isAdminComment?: boolean;
removed?: boolean;
approvalStatus?: string;
related?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
authorId?: string;
authorName?: string;
authorEmail?: string;
authorAvatar?: string;
authorUser?: string | {
id?: number;
username?: string;
email?: string;
avatar?: {
url?: string;
name?: string;
hash?: string;
id?: number;
formats?: {
small?: {
url?: string;
name?: string;
hash?: string;
};
thumbnail?: {
url?: string;
name?: string;
hash?: string;
};
medium?: {
url?: string;
name?: string;
hash?: string;
};
large?: {
url?: string;
name?: string;
hash?: string;
};
};
};
};
locale?: string;
gotThread?: boolean;
threadFirstItemId?: number;
reports?: {
id?: number;
documentId?: string;
content?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
locale?: string;
reason?: string;
resolved?: boolean;
}[];
author?: any;
threadOf?: number | {
id?: number;
documentId?: string;
content?: string;
blocked?: boolean;
blockedThread?: boolean;
blockReason?: string;
isAdminComment?: boolean;
removed?: boolean;
approvalStatus?: string;
related?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
authorId?: string;
authorName?: string;
authorEmail?: string;
authorAvatar?: string;
authorUser?: string | {
id?: number;
username?: string;
email?: string;
avatar?: {
url?: string;
name?: string;
hash?: string;
id?: number;
formats?: {
small?: {
url?: string;
name?: string;
hash?: string;
};
thumbnail?: {
url?: string;
name?: string;
hash?: string;
};
medium?: {
url?: string;
name?: string;
hash?: string;
};
large?: {
url?: string;
name?: string;
hash?: string;
};
};
};
};
locale?: string;
gotThread?: boolean;
threadFirstItemId?: number;
reports?: {
id?: number;
documentId?: string;
content?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
locale?: string;
reason?: string;
resolved?: boolean;
}[];
author?: any;
};
}>;
findMany(criteria: Params): Promise<{
id?: number;
documentId?: string;
content?: string;
blocked?: boolean;
blockedThread?: boolean;
blockReason?: string;
isAdminComment?: boolean;
removed?: boolean;
approvalStatus?: string;
related?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
authorId?: string;
authorName?: string;
authorEmail?: string;
authorAvatar?: string;
authorUser?: string | {
id?: number;
username?: string;
email?: string;
avatar?: {
url?: string;
name?: string;
hash?: string;
id?: number;
formats?: {
small?: {
url?: string;
name?: string;
hash?: string;
};
thumbnail?: {
url?: string;
name?: string;
hash?: string;
};
medium?: {
url?: string;
name?: string;
hash?: string;
};
large?: {
url?: string;
name?: string;
hash?: string;
};
};
};
};
locale?: string;
gotThread?: boolean;
threadFirstItemId?: number;
reports?: {
id?: number;
documentId?: string;
content?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
locale?: string;
reason?: string;
resolved?: boolean;
}[];
author?: any;
threadOf?: number | {
id?: number;
documentId?: string;
content?: string;
blocked?: boolean;
blockedThread?: boolean;
blockReason?: string;
isAdminComment?: boolean;
removed?: boolean;
approvalStatus?: string;
related?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
authorId?: string;
authorName?: string;
authorEmail?: string;
authorAvatar?: string;
authorUser?: string | {
id?: number;
username?: string;
email?: string;
avatar?: {
url?: string;
name?: string;
hash?: string;
id?: number;
formats?: {
small?: {
url?: string;
name?: string;
hash?: string;
};
thumbnail?: {
url?: string;
name?: string;
hash?: string;
};
medium?: {
url?: string;
name?: string;
hash?: string;
};
large?: {
url?: string;
name?: string;
hash?: string;
};
};
};
};
locale?: string;
gotThread?: boolean;
threadFirstItemId?: number;
reports?: {
id?: number;
documentId?: string;
content?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
locale?: string;
reason?: string;
resolved?: boolean;
}[];
author?: any;
};
}[]>;
updateComment(criteria: Partial<Params['where']>, data: Partial<Comment>): Promise<{
id?: number;
documentId?: string;
content?: string;
blocked?: boolean;
blockedThread?: boolean;
blockReason?: string;
isAdminComment?: boolean;
removed?: boolean;
approvalStatus?: string;
related?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
authorId?: string;
authorName?: string;
authorEmail?: string;
authorAvatar?: string;
authorUser?: string | {
id?: number;
username?: string;
email?: string;
avatar?: {
url?: string;
name?: string;
hash?: string;
id?: number;
formats?: {
small?: {
url?: string;
name?: string;
hash?: string;
};
thumbnail?: {
url?: string;
name?: string;
hash?: string;
};
medium?: {
url?: string;
name?: string;
hash?: string;
};
large?: {
url?: string;
name?: string;
hash?: string;
};
};
};
};
locale?: string;
gotThread?: boolean;
threadFirstItemId?: number;
reports?: {
id?: number;
documentId?: string;
content?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
locale?: string;
reason?: string;
resolved?: boolean;
}[];
author?: any;
threadOf?: number | {
id?: number;
documentId?: string;
content?: string;
blocked?: boolean;
blockedThread?: boolean;
blockReason?: string;
isAdminComment?: boolean;
removed?: boolean;
approvalStatus?: string;
related?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
authorId?: string;
authorName?: string;
authorEmail?: string;
authorAvatar?: string;
authorUser?: string | {
id?: number;
username?: string;
email?: string;
avatar?: {
url?: string;
name?: string;
hash?: string;
id?: number;
formats?: {
small?: {
url?: string;
name?: string;
hash?: string;
};
thumbnail?: {
url?: string;
name?: string;
hash?: string;
};
medium?: {
url?: string;
name?: string;
hash?: string;
};
large?: {
url?: string;
name?: string;
hash?: string;
};
};
};
};
locale?: string;
gotThread?: boolean;
threadFirstItemId?: number;
reports?: {
id?: number;
documentId?: string;
content?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
locale?: string;
reason?: string;
resolved?: boolean;
}[];
author?: any;
};
}>;
findAllPerAuthor({ filters, populate, pagination, sort, fields, isAdmin, authorId, }: clientValidator.FindAllPerAuthorValidatorSchema, isStrapiAuthor?: boolean): Promise<{
data: ({
id?: number;
documentId?: string;
content?: string;
blocked?: boolean;
blockedThread?: boolean;
blockReason?: string;
isAdminComment?: boolean;
removed?: boolean;
approvalStatus?: string;
related?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
authorId?: string;
authorName?: string;
authorEmail?: string;
authorAvatar?: string;
authorUser?: string | {
id?: number;
username?: string;
email?: string;
avatar?: {
url?: string;
name?: string;
hash?: string;
id?: number;
formats?: {
small?: {
url?: string;
name?: string;
hash?: string;
};
thumbnail?: {
url?: string;
name?: string;
hash?: string;
};
medium?: {
url?: string;
name?: string;
hash?: string;
};
large?: {
url?: string;
name?: string;
hash?: string;
};
};
};
};
locale?: string;
gotThread?: boolean;
threadFirstItemId?: number;
reports?: {
id?: number;
documentId?: string;
content?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
locale?: string;
reason?: string;
resolved?: boolean;
}[];
threadOf?: number | {
id?: number;
documentId?: string;
content?: string;
blocked?: boolean;
blockedThread?: boolean;
blockReason?: string;
isAdminComment?: boolean;
removed?: boolean;
approvalStatus?: string;
related?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
authorId?: string;
authorName?: string;
authorEmail?: string;
authorAvatar?: string;
authorUser?: string | {
id?: number;
username?: string;
email?: string;
avatar?: {
url?: string;
name?: string;
hash?: string;
id?: number;
formats?: {
small?: {
url?: string;
name?: string;
hash?: string;
};
thumbnail?: {
url?: string;
name?: string;
hash?: string;
};
medium?: {
url?: string;
name?: string;
hash?: string;
};
large?: {
url?: string;
name?: string;
hash?: string;
};
};
};
};
locale?: string;
gotThread?: boolean;
threadFirstItemId?: number;
reports?: {
id?: number;
documentId?: string;
content?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
locale?: string;
reason?: string;
resolved?: boolean;
}[];
author?: any;
};
} | {
id?: number;
documentId?: string;
content?: string;
blocked?: boolean;
blockedThread?: boolean;
blockReason?: string;
isAdminComment?: boolean;
removed?: boolean;
approvalStatus?: string;
related?: {
id?: number;
documentId?: string;
locale?: string;
uid?: string;
requireCommentsApproval?: boolean;
};
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
authorId?: string;
authorName?: string;
authorEmail?: string;
authorAvatar?: string;
authorUser?: string | {
id?: number;
username?: string;
email?: string;
avatar?: {
url?: string;
name?: string;
hash?: string;
id?: number;
formats?: {
small?: {
url?: string;
name?: string;
hash?: string;
};
thumbnail?: {
url?: string;
name?: string;
hash?: string;
};
medium?: {
url?: string;
name?: string;
hash?: string;
};
large?: {
url?: string;
name?: string;
hash?: string;
};
};
};
};
locale?: string;
gotThread?: boolean;
threadFirstItemId?: number;
reports?: {
id?: number;
documentId?: string;
content?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
locale?: string;
reason?: string;
resolved?: boolean;
}[];
threadOf?: number | {
id?: number;
documentId?: string;
content?: string;
blocked?: boolean;
blockedThread?: boolean;
blockReason?: string;
isAdminComment?: boolean;
removed?: boolean;
approvalStatus?: string;
related?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
authorId?: string;
authorName?: string;
authorEmail?: string;
authorAvatar?: string;
authorUser?: string | {
id?: number;
username?: string;
email?: string;
avatar?: {
url?: string;
name?: string;
hash?: string;
id?: number;
formats?: {
small?: {
url?: string;
name?: string;
hash?: string;
};
thumbnail?: {
url?: string;
name?: string;
hash?: string;
};
medium?: {
url?: string;
name?: string;
hash?: string;
};
large?: {
url?: string;
name?: string;
hash?: string;
};
};
};
};
locale?: string;
gotThread?: boolean;
threadFirstItemId?: number;
reports?: {
id?: number;
documentId?: string;
content?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
locale?: string;
reason?: string;
resolved?: boolean;
}[];
author?: any;
};
})[];
pagination?: Pagination;
}>;
findRelatedEntitiesFor(entries: Array<Comment>): Promise<Array<CommentRelated>>;
mergeRelatedEntityTo(entity: Comment, relatedEntities?: Array<CommentRelated>): CommentWithRelated;
modifiedNestedNestedComments<T_2 extends "id" | "documentId" | "content" | "blocked" | "blockedThread" | "blockReason" | "isAdminComment" | "removed" | "approvalStatus" | "related" | "createdAt" | "updatedAt" | "publishedAt" | "authorId" | "authorName" | "authorEmail" | "authorAvatar" | "authorUser" | "locale" | "gotThread" | "threadFirstItemId" | "reports" | "author" | "threadOf">(id: Id, fieldName: T_2, value: {
id?: number;
documentId?: string;
content?: string;
blocked?: boolean;
blockedThread?: boolean;
blockReason?: string;
isAdminComment?: boolean;
removed?: boolean;
approvalStatus?: string;
related?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
authorId?: string;
authorName?: string;
authorEmail?: string;
authorAvatar?: string;
authorUser?: string | {
id?: number;
username?: string;
email?: string;
avatar?: {
url?: string;
name?: string;
hash?: string;
id?: number;
formats?: {
small?: {
url?: string;
name?: string;
hash?: string;
};
thumbnail?: {
url?: string;
name?: string;
hash?: string;
};
medium?: {
url?: string;
name?: string;
hash?: string;
};
large?: {
url?: string;
name?: string;
hash?: string;
};
};
};
};
locale?: string;
gotThread?: boolean;
threadFirstItemId?: number;
reports?: {
id?: number;
documentId?: string;
content?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
locale?: string;
reason?: string;
resolved?: boolean;
}[];
author?: any;
threadOf?: number | {
id?: number;
documentId?: string;
content?: string;
blocked?: boolean;
blockedThread?: boolean;
blockReason?: string;
isAdminComment?: boolean;
removed?: boolean;
approvalStatus?: string;
related?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
authorId?: string;
authorName?: string;
authorEmail?: string;
authorAvatar?: string;
authorUser?: string | {
id?: number;
username?: string;
email?: string;
avatar?: {
url?: string;
name?: string;
hash?: string;
id?: number;
formats?: {
small?: {
url?: string;
name?: string;
hash?: string;
};
thumbnail?: {
url?: string;
name?: string;
hash?: string;
};
medium?: {
url?: string;
name?: string;
hash?: string;
};
large?: {
url?: string;
name?: string;
hash?: string;
};
};
};
};
locale?: string;
gotThread?: boolean;
threadFirstItemId?: number;
reports?: {
id?: number;
documentId?: string;
content?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
locale?: string;
reason?: string;
resolved?: boolean;
}[];
author?: any;
};
}[T_2], deepLimit?: number): Promise<boolean>;
checkBadWords(content: string): Promise<string>;
perRemove(related: string, locale?: string): Promise<import("@strapi/database/dist/types").CountResult>;
registerLifecycleHook(): void;
runLifecycleHook(): Promise<void>;
};
export default commonService;