pubnub
Version:
Publish & Subscribe Real-time Messaging with PubNub
186 lines (146 loc) • 4.44 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 addMembers = incomingParams.addMembers,
updateMembers = incomingParams.updateMembers,
removeMembers = incomingParams.removeMembers,
users = incomingParams.users;
var payload = {};
if (addMembers && addMembers.length > 0) {
payload.add = [];
addMembers.forEach(function (addMember) {
var currentAdd = {
id: addMember.id
};
if (addMember.custom) {
currentAdd.custom = addMember.custom;
}
payload.add.push(currentAdd);
});
}
if (updateMembers && updateMembers.length > 0) {
payload.update = [];
updateMembers.forEach(function (updateMember) {
var currentUpdate = {
id: updateMember.id
};
if (updateMember.custom) {
currentUpdate.custom = updateMember.custom;
}
payload.update.push(currentUpdate);
});
}
if (users && users.length > 0) {
payload.update = payload.update || [];
users.forEach(function (updateMember) {
var currentUpdate = {
id: updateMember.id
};
if (updateMember.custom) {
currentUpdate.custom = updateMember.custom;
}
payload.update.push(currentUpdate);
});
}
if (removeMembers && removeMembers.length > 0) {
payload.remove = [];
removeMembers.forEach(function (removeMemberId) {
payload.remove.push({
id: removeMemberId
});
});
}
return payload;
}
function getOperation() {
return _operations["default"].PNUpdateMembersOperation;
}
function validateParams(modules, incomingParams) {
var spaceId = incomingParams.spaceId,
users = incomingParams.users;
if (!spaceId) return 'Missing spaceId';
if (!users) return 'Missing users';
}
function getURL(modules, incomingParams) {
var config = modules.config;
return "/v1/objects/".concat(config.subscribeKey, "/spaces/").concat(_utils["default"].encodeString(incomingParams.spaceId), "/users");
}
function patchURL(modules, incomingParams) {
var config = modules.config;
return "/v1/objects/".concat(config.subscribeKey, "/spaces/").concat(_utils["default"].encodeString(incomingParams.spaceId), "/users");
}
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('space', incomingParams.spaceId) || modules.tokenManager.getToken('space');
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, membersResponse) {
return membersResponse;
}
//# sourceMappingURL=update_members.js.map