UNPKG

pubnub

Version:

Publish & Subscribe Real-time Messaging with PubNub

124 lines (99 loc) 3.58 kB
"use strict"; 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