UNPKG

@stackend/api

Version:

JS bindings to api.stackend.com

138 lines 4.73 kB
import { XcapJsonResult, Thunk } from '../api'; import { ModerationStatus, ModerationStatusCodes } from '../api/ModerationStatus'; import { Order } from '../api/Order'; import ModerationVisibility from '../api/ModerationVisibility'; import { User } from '../user'; import { PaginatedCollection } from '../api/PaginatedCollection'; import XcapObject from '../api/XcapObject'; /** * Result of a single content filter */ export interface ContentFilterResult { /** Name of the content filter */ filterName: string; /** Resulting moderation status */ modStatus: ModerationStatusCodes; /** Optional values indicating why a filter modified the modStatus, for example SPOOF: 3 */ keyValues: { [key: string]: string | number; }; /** Labels assigned, for example keywords when scanning text or images */ labels: Array<string>; } /** * Result of content filtering */ export interface ContentFilterResults { /** Over all resulting moderation status (most restrictive of all filters) */ modStatus: ModerationStatusCodes; /** Results from individual content filtering plugins */ results: Array<ContentFilterResult>; } /** * Get the most restrictive ModerationStatus status * @param m1 * @param m2 * @returns {string} */ export declare function getMostRestrictiveModerationStatus(m1: ModerationStatus, m2: ModerationStatus): ModerationStatus; /** * Get the most restrictive mod status * @param m1 * @param m2 * @returns {number} */ export declare function getMostRestrictiveModStatus(m1: number, m2: number): ModerationStatusCodes; /** * Combine all content filter results to a single result * @param results */ export declare function combineContentFilterResults(results: Array<ContentFilterResult>): ContentFilterResult; /** * Check if a an object is visible * @param object * @returns {boolean} */ export declare function isVisible(object: XcapObject): boolean; export declare enum OrderBy { SCORE = "SCORE", CREATED_DATE = "CREATED_DATE", VIEWS = "VIEWS", VOTE_AVERAGE = "VOTE_AVERAGE" } export interface Search { q: string; type: string; author: any; groupId: number; /** Find objects with abuse reports */ hasAbuseReports?: boolean; moderationVisibility: ModerationVisibility; orderBy: OrderBy; order: Order; p: number; communityPermalink: string; } export interface SearchResult extends XcapJsonResult { /** Results */ results: PaginatedCollection<XcapObject>; /** Number of abuse reports */ nAbuseReports: number; /** Number of objects awaiting moderation */ nAwaitingModeration: number; /** Number of objects where moderation has expired */ nModerationExpired: number; /** Maps from community user id to stackend user */ adminUserMapping: { [id: number]: User; }; /** Maps from obfuscatedReference to result from content filtering results */ contentFilterResults: { [obfuscatedReference: string]: ContentFilterResults; }; /** Stop words found in the result. Maps from obfuscatedReference to word */ stopWords: { [obfuscatedReference: string]: string; }; } /** * Search for objects to moderate. * * This search can find all objects in the system. The default is to only show objects that requires moderation. * * @param q {String} Search expression * @param p {number} Page number * @param type {String} all|article|comment|group|... * @param groupIds {number} * @param moderationVisibility {moderationVisibility} Default: ModerationVisibility.MODERATION_PENDING * @param orderBy {orderBy} Default: CREATED_DATE * @param order {order} Default: ASCENDING * @param communityPermalink type {String} * @return {Promise} */ export declare function search({ q, type, author, groupId, moderationVisibility, orderBy, order, communityPermalink, p }: Search): Thunk<Promise<SearchResult>>; export declare type SetModStatus = { obfuscatedReference: string; approved: boolean; }; /** * Change moderation status for a single object. * * @param {String} obfuscatedReference * @param {Boolean} approved * @return {Promise} */ export declare function setModStatus({ obfuscatedReference, approved }: SetModStatus): Thunk<Promise<XcapJsonResult>>; export declare type SetModStatuses = { obfuscatedReferences: Array<string>; approved: boolean; }; /** * Change moderation status for multiple objects. * * @param obfuscatedReferences {Array} A list of obfuscatedReference * @param approved {Boolean} * @return {Promise} */ export declare function setModStatuses({ obfuscatedReferences, approved }: SetModStatuses): Thunk<Promise<XcapJsonResult>>; //# sourceMappingURL=index.d.ts.map