strapi-plugin-comments
Version:
1,046 lines (1,045 loc) • 32.9 kB
TypeScript
import { Id, RequestContext, StrapiContext } from '../@types';
import { PluginServices } from '../services';
import { admin as adminValidator } from '../validators/api';
type RequestContextWithId<T = object> = RequestContext<T, {
id: string;
}>;
declare const controllers: ({ strapi }: StrapiContext) => {
getService<T extends "gql" | "client" | "admin" | "common" | "settings">(name: T): PluginServices[T];
findAll(ctx: RequestContext): Promise<{
pagination: {
page?: number;
pageSize?: number;
pageCount?: number;
total?: number;
};
result: {
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;
email?: 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;
email?: 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;
};
}[];
}>;
findReports(ctx: RequestContext): Promise<{
result: {
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;
email?: 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;
email?: 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: {
page?: number;
pageSize?: number;
pageCount?: number;
total?: number;
};
}>;
findOne(ctx: RequestContextWithId): Promise<{
entity: {
uid: import("@strapi/types/dist/uid").ContentType;
documentId: string;
id: number;
};
selected: {
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;
email?: 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;
email?: 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;
};
};
level: {
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;
email?: 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;
email?: 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;
};
}[];
}>;
blockComment(ctx: RequestContextWithId): 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;
email?: 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;
email?: 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;
};
}>;
unblockComment(ctx: RequestContextWithId): 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;
email?: 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;
email?: 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;
};
}>;
deleteComment(ctx: RequestContextWithId): 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;
email?: 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;
email?: 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;
};
}>;
blockCommentThread(ctx: RequestContextWithId): 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;
email?: 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;
email?: 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;
};
}>;
unblockCommentThread(ctx: RequestContextWithId): 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;
email?: 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;
email?: 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;
};
}>;
resolveAbuseReport(ctx: RequestContext<object, {
id: string;
reportId: string;
}>): Promise<{
id?: number;
documentId?: string;
content?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
locale?: string;
reason?: string;
resolved?: boolean;
}>;
resolveCommentMultipleAbuseReports(ctx: RequestContextWithId<Array<Id>>): Promise<import("@strapi/database/dist/types").CountResult>;
resolveAllAbuseReportsForComment(ctx: RequestContextWithId): Promise<import("@strapi/database/dist/types").CountResult>;
resolveAllAbuseReportsForThread(ctx: RequestContextWithId): Promise<import("@strapi/database/dist/types").CountResult>;
resolveMultipleAbuseReports(ctx: RequestContext<Array<Id>>): Promise<import("@strapi/database/dist/types").CountResult>;
postComment(ctx: RequestContext<Omit<adminValidator.CommentPostValidatorSchema, 'id'>, Pick<adminValidator.CommentPostValidatorSchema, 'id'>>): 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;
email?: 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;
email?: 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(ctx: RequestContext<Omit<adminValidator.CommentPostValidatorSchema, 'id'>, Pick<adminValidator.CommentPostValidatorSchema, 'id'>>): 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;
email?: 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;
email?: 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;
};
}>;
approveComment(ctx: RequestContext<object, adminValidator.IdValidatorSchema>): 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;
email?: 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;
email?: 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;
};
}>;
rejectComment(ctx: RequestContext<object, adminValidator.IdValidatorSchema>): 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;
email?: 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;
email?: 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;
};
}>;
};
export default controllers;