UNPKG

@stackend/api

Version:

JS bindings to api.stackend.com

157 lines 4.65 kB
import { Config, XcapJsonResult, Thunk, XcapOptionalParameters } from '../api'; import * as qnaApi from '../qna'; import { Request } from '../request'; import { PaginatedCollection } from '../api/PaginatedCollection'; import { LikeDataMap } from '../like'; import XcapObject from '../api/XcapObject'; /** * Search functionality * * @since 13 mar 2017 */ export declare enum OrderBy { SCORE = "SCORE", CREATED_DATE = "CREATED_DATE", VOTE_AVERAGE = "VOTE_AVERAGE", VIEWS = "VIEWS", SOLVED_DATE = "SOLVED_DATE", ANSWERS = "ANSWERS", DUPLICATES = "DUPLICATES", HAVE_QUESTION_TOO = "HAVE_QUESTION_TOO" } export declare enum Order { UNORDERED = "UNORDERED", ASCENDING = "ASCENDING", DESCENDING = "DESCENDING" } /** * Searchable types */ export declare enum SearchAbleType { ALL = "all", USER = "user", ARTICLE = "article", GROUP = "group", COMMENT = "comment", ABUSE = "abuse", QUESTION = "question", ANSWER = "answer", CMS = "cms", BLOG_GROUP = "blog-group", BLOG_ARTICLE = "blog-article", FORUM_THREADS = "forumthreads" } interface GetActiveSearchTypes { qna?: boolean; group?: boolean; forum?: boolean; blog?: boolean; } export declare function getActiveSearchTypes({ qna, blog, group, forum }: GetActiveSearchTypes): Array<SearchAbleType>; export declare const searchableTypeNameConverter: { all: string; group: string; user: string; article: string; faq: string; question: string; 'blog-article': string; forumthreads: string; }; export declare const searchType = "/search/search"; export declare function getSearchBaseUrl({ request }: { request: Request; }): string; declare type GetSearchUrl = { request: Request; type?: SearchAbleType; searchType?: qnaApi.QnaSearchType; filter?: string; urlArguments?: string; }; export declare function getSearchUrl({ request, type, searchType, filter, urlArguments }: GetSearchUrl): string; export declare type Search = { q?: string; order?: Order; orderBy?: OrderBy; pageSize?: number; trendingBoost?: boolean; type?: SearchAbleType; categoryId?: number; community?: string; excludeCurrentUser?: boolean; } & XcapOptionalParameters; export interface SearchResult extends XcapJsonResult { results: PaginatedCollection<XcapObject>; likes: LikeDataMap; } /** * Search * @param community * @param urlArguments * @returns {Thunk.<*>} */ export declare function search({ community, ...urlArguments }: Search): Thunk<Promise<SearchResult>>; /** * Get the url to the search api * @param xcap * @param type * @param urlArguments * @returns {string} */ export declare function getSearchApiUrl({ config, community, type, urlArguments }: { config: Config; community: any; type: string; urlArguments: any; } & XcapOptionalParameters): string; /** * Get statistics. * * @param types {String} Comma separated string of xcap object class names. * @param facetCount {String} * @param createdStartDate {Date} Iso date format (yyyy-MM-dd) * @param createdEndDate {Date} Iso date format (yyyy-MM-dd) * @param aggregateToDays {boolean} * @param moderationVisibility {boolean} * @param pageSize {Number} * @param page {Number} * @return {Promise} */ export declare function getStatistics({ facetCount, createdStartDate, createdEndDate, aggregateToDays, moderationVisibility, pageSize, page }: { facetCount?: string; createdStartDate?: string; createdEndDate?: string; aggregateToDays?: boolean; moderationVisibility?: boolean; pageSize?: number; page?: number; } & XcapOptionalParameters): Thunk<Promise<XcapJsonResult>>; /** * The available search index populators * {@see populateSearchIndex} */ export declare const SEARCH_INDEX_POPULATORS: Array<{ name: string; className: string; }>; export interface PopulateSearchIndexResult extends XcapJsonResult { /** Number of objects added/updated to the index */ nIndexed: number; /** Execution time in ms */ executeTime: number; } /** * Populate the search index * * Requires admin privs. * * @param modifiedSince Update only objects modified since this date. Otherwise all. ISO Date format (2006-04-07) * @param populator String array of populator class names to run. {@see SEARCH_INDEX_POPULATORS}. */ export declare function populateSearchIndex({ modifiedSince, populator }: { modifiedSince: string | null; populator: Array<string> | null; } & XcapOptionalParameters): Thunk<Promise<PopulateSearchIndexResult>>; export {}; //# sourceMappingURL=index.d.ts.map