@reactivehub/cli
Version:
232 lines (194 loc) • 8.05 kB
JavaScript
;
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