@stackend/api
Version:
JS bindings to api.stackend.com
101 lines • 3.5 kB
JavaScript
;
// @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