@stackend/api
Version:
JS bindings to api.stackend.com
138 lines • 4.73 kB
TypeScript
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