pubnub
Version:
Publish & Subscribe Real-time Messaging with PubNub
124 lines (99 loc) • 3.58 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getOperation = getOperation;
exports.validateParams = validateParams;
exports.usePost = usePost;
exports.getURL = getURL;
exports.postURL = postURL;
exports.getRequestTimeout = getRequestTimeout;
exports.isAuthSupported = isAuthSupported;
exports.postPayload = postPayload;
exports.prepareParams = prepareParams;
exports.handleResponse = handleResponse;
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _flow_interfaces = require("../flow_interfaces");
var _operations = _interopRequireDefault(require("../constants/operations"));
var _utils = _interopRequireDefault(require("../utils"));
function prepareMessagePayload(modules, messagePayload) {
var crypto = modules.crypto,
config = modules.config;
var stringifiedPayload = JSON.stringify(messagePayload);
if (config.cipherKey) {
stringifiedPayload = crypto.encrypt(stringifiedPayload);
stringifiedPayload = JSON.stringify(stringifiedPayload);
}
return stringifiedPayload;
}
function getOperation() {
return _operations["default"].PNPublishOperation;
}
function validateParams(_ref, incomingParams) {
var config = _ref.config;
var message = incomingParams.message,
channel = incomingParams.channel;
if (!channel) return 'Missing Channel';
if (!message) return 'Missing Message';
if (!config.subscribeKey) return 'Missing Subscribe Key';
}
function usePost(modules, incomingParams) {
var _incomingParams$sendB = incomingParams.sendByPost,
sendByPost = _incomingParams$sendB === void 0 ? false : _incomingParams$sendB;
return sendByPost;
}
function getURL(modules, incomingParams) {
var config = modules.config;
var channel = incomingParams.channel,
message = incomingParams.message;
var stringifiedPayload = prepareMessagePayload(modules, message);
return "/publish/".concat(config.publishKey, "/").concat(config.subscribeKey, "/0/").concat(_utils["default"].encodeString(channel), "/0/").concat(_utils["default"].encodeString(stringifiedPayload));
}
function postURL(modules, incomingParams) {
var config = modules.config;
var channel = incomingParams.channel;
return "/publish/".concat(config.publishKey, "/").concat(config.subscribeKey, "/0/").concat(_utils["default"].encodeString(channel), "/0");
}
function getRequestTimeout(_ref2) {
var config = _ref2.config;
return config.getTransactionTimeout();
}
function isAuthSupported() {
return true;
}
function postPayload(modules, incomingParams) {
var message = incomingParams.message;
return prepareMessagePayload(modules, message);
}
function prepareParams(modules, incomingParams) {
var meta = incomingParams.meta,
_incomingParams$repli = incomingParams.replicate,
replicate = _incomingParams$repli === void 0 ? true : _incomingParams$repli,
storeInHistory = incomingParams.storeInHistory,
ttl = incomingParams.ttl;
var params = {};
if (storeInHistory != null) {
if (storeInHistory) {
params.store = '1';
} else {
params.store = '0';
}
}
if (ttl) {
params.ttl = ttl;
}
if (replicate === false) {
params.norep = 'true';
}
if (meta && (0, _typeof2["default"])(meta) === 'object') {
params.meta = JSON.stringify(meta);
}
return params;
}
function handleResponse(modules, serverResponse) {
return {
timetoken: serverResponse[2]
};
}
//# sourceMappingURL=publish.js.map