UNPKG

@reactivehub/cli

Version:
232 lines (194 loc) 8.05 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.sendDeploy = exports.sendActionCommand = exports.sendAddEventCommand = exports.sendLoginCommand = exports.getEventModel = exports.getEventIds = exports.getListenerModel = exports.isAvailableQuerySerivce = exports.getAvailableListenerTypes = exports.getServiceAccounts = exports.sendAction = exports.issueToken = exports.sendEventFilter = exports.sendQuery = exports.sendListenerTrigger = exports.sendListener = exports.sendEvent = undefined; var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _axios = require('axios'); var _axios2 = _interopRequireDefault(_axios); var _auth = require('../core/auth'); var _auth2 = _interopRequireDefault(_auth); var _apiConfig = require('./apiConfig'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const namespace = _auth2.default.getNamespace(); const loggedEmail = _auth2.default.getEmail(); /** * @typedef ServiceReturn * @property {Boolean} status * @property {String} message */ const bearer = _auth2.default.getAuthToken() && `Bearer ${_auth2.default.getAuthToken()}`; const sendPost = (() => { var _ref = (0, _asyncToGenerator3.default)(function* (url, payload, { token } = {}) { const Authorization = token && `Bearer ${token}` || bearer; const headers = Authorization ? { Authorization } : {}; return _axios2.default.post(url, payload, { headers }).then(function (r) { return r.data; }).catch(function ({ response: { data } = {} } = {}) { return data; }); }); return function sendPost(_x, _x2) { return _ref.apply(this, arguments); }; })(); const doGet = (() => { var _ref2 = (0, _asyncToGenerator3.default)(function* (url) { const headers = bearer ? { Authorization: bearer } : {}; return _axios2.default.get(url, { headers }).then(function (r) { return r.data; }).catch(function (err) { return err.response; }); }); return function doGet(_x3) { return _ref2.apply(this, arguments); }; })(); /** * @param {*} payload * @returns {Promise.<ServiceReturn>} */ const sendEvent = exports.sendEvent = (() => { var _ref3 = (0, _asyncToGenerator3.default)(function* (payload) { return sendPost(_apiConfig.paths.event(_apiConfig.eventTypes.NEW_EVENT), payload); }); return function sendEvent(_x4) { return _ref3.apply(this, arguments); }; })(); const sendListener = exports.sendListener = (() => { var _ref4 = (0, _asyncToGenerator3.default)(function* (payload) { return sendPost(_apiConfig.paths.event(_apiConfig.eventTypes.NEW_LISTENER), payload); }); return function sendListener(_x5) { return _ref4.apply(this, arguments); }; })(); const sendListenerTrigger = exports.sendListenerTrigger = (() => { var _ref5 = (0, _asyncToGenerator3.default)(function* (payload) { return sendPost(_apiConfig.paths.event(_apiConfig.eventTypes.NEW_LISTENER_TRIGGER), payload); }); return function sendListenerTrigger(_x6) { return _ref5.apply(this, arguments); }; })(); const sendQuery = exports.sendQuery = (() => { var _ref6 = (0, _asyncToGenerator3.default)(function* (payload) { return sendPost(_apiConfig.paths.event(_apiConfig.eventTypes.NAMED_QUERY), payload); }); return function sendQuery(_x7) { return _ref6.apply(this, arguments); }; })(); /** * @param {*} payload * @returns {Promise.<ServiceReturn>} */ const sendEventFilter = exports.sendEventFilter = (() => { var _ref7 = (0, _asyncToGenerator3.default)(function* (payload) { return sendPost(_apiConfig.paths.event(_apiConfig.eventTypes.NEW_EVENT_RULE), payload); }); return function sendEventFilter(_x8) { return _ref7.apply(this, arguments); }; })(); const issueToken = exports.issueToken = (() => { var _ref8 = (0, _asyncToGenerator3.default)(function* (payload) { return sendPost(_apiConfig.paths.cli(_apiConfig.eventTypes.ISSUE_CLI_TOKEN), payload).catch(function ({ message }) { return message; }); }); return function issueToken(_x9) { return _ref8.apply(this, arguments); }; })(); /** * @param {*} eventInfo * @param {*} param1 * @returns {Promise.<ServiceReturn>} */ const sendAction = exports.sendAction = (() => { var _ref9 = (0, _asyncToGenerator3.default)(function* (eventInfo, { id, serviceAccountId, serviceAction, template = {}, onSuccess, onFailure } = {}) { const payload = (0, _extends3.default)({}, eventInfo, { action: { id, name: id, serviceAccountId, serviceAction, config: template }, onSuccess, onFailure }); const messagePayload = yield sendPost(_apiConfig.paths.event(_apiConfig.eventTypes.ADD_ACTION_RULE), payload); if (id === 'create-grow-plan-stripe') { /* console.log('create-grow-plan-stripe') console.log(payload) const u = require('util') console.log(u.inspect(messagePayload, false, null)) */ } return messagePayload; }); return function sendAction(_x10) { return _ref9.apply(this, arguments); }; })(); const getServiceAccounts = exports.getServiceAccounts = type => { const params = `?namespace=${namespace}&type=${type}`; const url = _apiConfig.paths.namedQuery('service-accounts-by-type', params); return doGet(url).then(r => r.data); }; const getAvailableListenerTypes = exports.getAvailableListenerTypes = type => { const params = `?type=${type}`; const url = _apiConfig.paths.namedQuery('list-available-listener-types', params); return doGet(url).then(r => r.data); }; const isAvailableQuerySerivce = exports.isAvailableQuerySerivce = type => { const params = `?type=${type}`; const url = _apiConfig.paths.namedQuery('list-available-query-services', params); return doGet(url).then(({ data = [{}] }) => data.shift().type === type); }; const getListenerModel = exports.getListenerModel = (type, trigger) => { const params = `?type=${type}&trigger=${trigger}`; const url = _apiConfig.paths.namedQuery('get-listener-model', params); return doGet(url).then(r => r.data.shift().model); }; const getEventIds = exports.getEventIds = () => { const params = `?namespace=${namespace}`; const url = _apiConfig.paths.namedQuery('list-event-ids', params); return doGet(url).then(({ data = [] }) => data.length > 0 && data || null); }; const getEventModel = exports.getEventModel = eventId => { const params = `?namespace=${namespace}&eventId=${eventId}`; const url = _apiConfig.paths.namedQuery('get-event-model', params); return doGet(url).then(({ data = [] }) => data.shift().model); }; const sendLoginCommand = exports.sendLoginCommand = ({ namespace: team, code, email, token }) => { const payload = { namespace: team, code, email, date: new Date().toISOString() }; return sendPost(_apiConfig.paths.event(_apiConfig.eventTypes.CLI_LOGIN), payload, { token }).catch(() => false); }; const sendAddEventCommand = exports.sendAddEventCommand = ({ id }) => { const payload = { namespace, email: loggedEmail, id, date: new Date().toISOString() }; return sendPost(_apiConfig.paths.event(_apiConfig.eventTypes.CLI_ADD_EVENT), payload).catch(() => true); }; const sendActionCommand = exports.sendActionCommand = ({ id, eventId, type, action }) => { const payload = { id, eventId, type, action, namespace, date: new Date().toISOString() }; return sendPost(_apiConfig.paths.event(_apiConfig.eventTypes.CLI_ADD_ACTION), payload).catch(() => true); }; const sendDeploy = exports.sendDeploy = ({ command }) => { const payload = { command, namespace, email: loggedEmail, date: new Date().toISOString() }; return sendPost(_apiConfig.paths.event(_apiConfig.eventTypes.CLI_DEPLOY), payload).catch(() => true); }; //# sourceMappingURL=api.js.map