UNPKG

flowai-js

Version:

The flow.ai Javascript SDK

112 lines (82 loc) 3.47 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug); var _querystring = require('querystring'); var _querystring2 = _interopRequireDefault(_querystring); var _fetchEverywhere = require('fetch-everywhere'); var _fetchEverywhere2 = _interopRequireDefault(_fetchEverywhere); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } (0, _debug2.default)('flowai:rest'); // Private class var Rest = function () { function Rest(endpoint) { _classCallCheck(this, Rest); (0, _debug2.default)('Creating a new REST service with endpoint \'' + endpoint + '\''); this._endpoint = endpoint; } _createClass(Rest, [{ key: 'get', value: function get(options) { var path = options.path, token = options.token, queryParams = options.queryParams; var url = this._endpoint + '/' + path, headers = this._createHeaders(token); (0, _debug2.default)('GET call to url \'' + url + '\' with headers and queryParams', headers, queryParams); return this._call(url, { headers: headers }, queryParams); } }, { key: 'post', value: function post(options) { var path = options.path, token = options.token, payload = options.payload, queryParams = options.queryParams; var url = this._endpoint + '/' + path, headers = this._createHeaders(token); var enveloppe = { headers: headers, method: 'POST', body: JSON.stringify(payload || {}) }; (0, _debug2.default)('POST call to url \'' + url + '\' with headers and enveloppe', headers, enveloppe); return this._call(url, enveloppe, queryParams); } }, { key: '_createHeaders', value: function _createHeaders(token) { var headers = { 'Content-Type': 'application/json' }; if (token) { headers = Object.assign(headers, { Authorization: 'Bearer ' + token }); } return headers; } }, { key: '_call', value: function _call(url, enveloppe, queryParams) { return new Promise(function (resolve, reject) { if (queryParams) { url = url + '?' + _querystring2.default.stringify(queryParams); } (0, _debug2.default)('Calling URL \'' + url + '\''); (0, _fetchEverywhere2.default)(url, enveloppe).then(function (response) { resolve(response.json()); }).catch(function (err) { (0, _debug2.default)('Failed with error', err); reject(err); }); }); } }]); return Rest; }(); exports.default = Rest;