UNPKG

@stackend/api

Version:

JS bindings to api.stackend.com

119 lines 3.61 kB
import { XcapJsonResult, Thunk, XcapOptionalParameters } from '../api'; import type { PaginatedCollection } from '../api/PaginatedCollection'; export declare const COMPONENT_NAME = "like"; export declare const CONTEXT = "like"; /** * Xcap Like API constants and methods. * * @since 20 feb 2017 */ export interface LikeData { likes: number; likedByCurrentUser: boolean; } /** * Maps from id to boolean if the current user likes this id */ export declare type LikesByCurrentUser = { [id: string]: boolean; }; /** * Like data map. * Maps from obfuscated reference to like data. */ export declare type LikeDataMap = { [obfuscatedReference: string]: LikeData; }; /** * Get like data for an object given a likes object. * * @param likes * @param object * @return a like object, never null */ export declare function getLikeData(likes: LikeDataMap, object: unknown): LikeData; export interface LikeResult extends XcapJsonResult { obfuscatedReference: string; reference: string; numberOfLikes: number; } /** * Like an object. * * Supply one of the parameters reference or obfuscatedReference. * * The new number of likes will be returned. * * Only authorized users may like an object. */ export declare function like({ obfuscatedReference, reference, context }: { obfuscatedReference?: string; reference?: string; context: string; } & XcapOptionalParameters): Thunk<Promise<LikeResult>>; /** * Remove a like from an object. * * Supply one of the parameters reference or obfuscatedReference. * * The new number of likes will be returned. * */ export declare function removeLike({ obfuscatedReference, reference, context }: { obfuscatedReference?: string; reference?: string; context: string; } & XcapOptionalParameters): Thunk<Promise<XcapJsonResult>>; /** * Like or remove a like from an object. * * Supply one of the parameters reference or obfuscatedReference. * * The new number of likes will be returned. */ export declare function setLike({ obfuscatedReference, reference, like, context }: { obfuscatedReference?: string; reference?: string; like: boolean; context?: string; } & XcapOptionalParameters): Thunk<Promise<XcapJsonResult>>; export interface LikeObjectAndCount { object: any; likes: number; } export interface GetLikeToplistResult extends XcapJsonResult { /** Toplist of liked objects */ toplist: PaginatedCollection<LikeObjectAndCount>; /** Maps from obfuscated reference like data */ likes: LikeDataMap; /** Actual interval used */ interval: string; /** Like creator user id */ creatorUserId: number; /** Object context */ objectContext: string | null; /** Object creator user id */ objectCreatorUserId: number; } export interface GetToplist extends XcapOptionalParameters { creatorUserId?: number; objectCreatorUserId?: number; interval?: string; objectType?: string; objectContext?: string; p?: number; pageSize?: number; } /** * Get a toplist of liked objects. * * @param creatorUserId get likes by this user * @param objectCreatorUserId get likes for objects created by this user * @param interval Time interval (default: 4weeks) * @param objectType Object class name * @param objectContext Object context (in current community) * @param p Page number * @param pageSize Page size */ export declare function getToplist({ creatorUserId, objectCreatorUserId, interval, objectType, objectContext, p, pageSize }: GetToplist): Thunk<Promise<GetLikeToplistResult>>; //# sourceMappingURL=index.d.ts.map