pubnub
Version:
Publish & Subscribe Real-time Messaging with PubNub
186 lines (146 loc) • 4.57 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getOperation = getOperation;
exports.validateParams = validateParams;
exports.getURL = getURL;
exports.patchURL = patchURL;
exports.usePatch = usePatch;
exports.getRequestTimeout = getRequestTimeout;
exports.isAuthSupported = isAuthSupported;
exports.getAuthToken = getAuthToken;
exports.prepareParams = prepareParams;
exports.patchPayload = patchPayload;
exports.handleResponse = handleResponse;
var _flow_interfaces = require("../../flow_interfaces");
var _operations = _interopRequireDefault(require("../../constants/operations"));
var _utils = _interopRequireDefault(require("../../utils"));
function prepareMessagePayload(modules, incomingParams) {
var addMemberships = incomingParams.addMemberships,
updateMemberships = incomingParams.updateMemberships,
removeMemberships = incomingParams.removeMemberships,
spaces = incomingParams.spaces;
var payload = {};
if (addMemberships && addMemberships.length > 0) {
payload.add = [];
addMemberships.forEach(function (addMembership) {
var currentAdd = {
id: addMembership.id
};
if (addMembership.custom) {
currentAdd.custom = addMembership.custom;
}
payload.add.push(currentAdd);
});
}
if (updateMemberships && updateMemberships.length > 0) {
payload.update = [];
updateMemberships.forEach(function (updateMembership) {
var currentUpdate = {
id: updateMembership.id
};
if (updateMembership.custom) {
currentUpdate.custom = updateMembership.custom;
}
payload.update.push(currentUpdate);
});
}
if (spaces && spaces.length > 0) {
payload.update = payload.update || [];
spaces.forEach(function (updateMembership) {
var currentUpdate = {
id: updateMembership.id
};
if (updateMembership.custom) {
currentUpdate.custom = updateMembership.custom;
}
payload.update.push(currentUpdate);
});
}
if (removeMemberships && removeMemberships.length > 0) {
payload.remove = [];
removeMemberships.forEach(function (removeMembershipId) {
payload.remove.push({
id: removeMembershipId
});
});
}
return payload;
}
function getOperation() {
return _operations["default"].PNUpdateMembershipsOperation;
}
function validateParams(modules, incomingParams) {
var userId = incomingParams.userId,
spaces = incomingParams.spaces;
if (!userId) return 'Missing userId';
if (!spaces) return 'Missing spaces';
}
function getURL(modules, incomingParams) {
var config = modules.config;
return "/v1/objects/".concat(config.subscribeKey, "/users/").concat(_utils["default"].encodeString(incomingParams.userId), "/spaces");
}
function patchURL(modules, incomingParams) {
var config = modules.config;
return "/v1/objects/".concat(config.subscribeKey, "/users/").concat(_utils["default"].encodeString(incomingParams.userId), "/spaces");
}
function usePatch() {
return true;
}
function getRequestTimeout(_ref) {
var config = _ref.config;
return config.getTransactionTimeout();
}
function isAuthSupported() {
return true;
}
function getAuthToken(modules, incomingParams) {
var token = modules.tokenManager.getToken('user', incomingParams.userId) || modules.tokenManager.getToken('user');
return token;
}
function prepareParams(modules, incomingParams) {
var include = incomingParams.include,
limit = incomingParams.limit,
page = incomingParams.page;
var params = {};
if (limit) {
params.limit = limit;
}
if (include) {
var includes = [];
if (include.totalCount) {
params.count = true;
}
if (include.customFields) {
includes.push('custom');
}
if (include.spaceFields) {
includes.push('space');
}
if (include.customSpaceFields) {
includes.push('space.custom');
}
var includesString = includes.join(',');
if (includesString.length > 0) {
params.include = includesString;
}
}
if (page) {
if (page.next) {
params.start = page.next;
}
if (page.prev) {
params.end = page.prev;
}
}
return params;
}
function patchPayload(modules, incomingParams) {
return prepareMessagePayload(modules, incomingParams);
}
function handleResponse(modules, membershipsResponse) {
return membershipsResponse;
}
//# sourceMappingURL=update_memberships.js.map