UNPKG

@stackend/api

Version:

JS bindings to api.stackend.com

101 lines 3.5 kB
"use strict"; // @flow Object.defineProperty(exports, "__esModule", { value: true }); exports.getToplist = exports.setLike = exports.removeLike = exports.like = exports.getLikeData = exports.CONTEXT = exports.COMPONENT_NAME = void 0; var api_1 = require("../api"); exports.COMPONENT_NAME = 'like'; exports.CONTEXT = 'like'; /** * Get like data for an object given a likes object. * * @param likes * @param object * @return a like object, never null */ function getLikeData(likes, object) { if (likes && object && (object === null || object === void 0 ? void 0 : object.obfuscatedReference)) { var l = likes[object === null || object === void 0 ? void 0 : object.obfuscatedReference]; if (l) { return l; } } return { likes: 0, likedByCurrentUser: false }; } exports.getLikeData = getLikeData; /** * 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. */ function like(_a) { var obfuscatedReference = _a.obfuscatedReference, reference = _a.reference, _b = _a.context, context = _b === void 0 ? exports.CONTEXT : _b; return (0, api_1.post)({ url: '/like/like', parameters: { obfuscatedReference: obfuscatedReference, reference: reference }, componentName: exports.COMPONENT_NAME, context: context }); } exports.like = like; /** * Remove a like from an object. * * Supply one of the parameters reference or obfuscatedReference. * * The new number of likes will be returned. * */ function removeLike(_a) { var obfuscatedReference = _a.obfuscatedReference, reference = _a.reference, _b = _a.context, context = _b === void 0 ? exports.CONTEXT : _b; return (0, api_1.post)({ url: '/like/like', parameters: { obfuscatedReference: obfuscatedReference, reference: reference, remove: true }, componentName: exports.COMPONENT_NAME, context: context }); } exports.removeLike = removeLike; /** * Like or remove a like from an object. * * Supply one of the parameters reference or obfuscatedReference. * * The new number of likes will be returned. */ function setLike(_a) { var obfuscatedReference = _a.obfuscatedReference, reference = _a.reference, _b = _a.like, like = _b === void 0 ? true : _b, _c = _a.context, context = _c === void 0 ? exports.CONTEXT : _c; return (0, api_1.post)({ url: '/like/like', parameters: { obfuscatedReference: obfuscatedReference, reference: reference, remove: !like }, componentName: exports.COMPONENT_NAME, context: context }); } exports.setLike = setLike; /** * 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 */ function getToplist(_a) { var creatorUserId = _a.creatorUserId, objectCreatorUserId = _a.objectCreatorUserId, interval = _a.interval, objectType = _a.objectType, objectContext = _a.objectContext, p = _a.p, pageSize = _a.pageSize; return (0, api_1.getJson)({ url: '/like/toplist', parameters: arguments }); } exports.getToplist = getToplist; //# sourceMappingURL=index.js.map