UNPKG

fetch-ckan

Version:
96 lines (72 loc) 2.77 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.fetchRecords = exports.fetchApi = undefined; var _stringify = require('babel-runtime/core-js/json/stringify'); var _stringify2 = _interopRequireDefault(_stringify); var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties'); var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); var _keys = require('babel-runtime/core-js/object/keys'); var _keys2 = _interopRequireDefault(_keys); var _getIterator2 = require('babel-runtime/core-js/get-iterator'); var _getIterator3 = _interopRequireDefault(_getIterator2); var _nodeFetch = require('node-fetch'); var _nodeFetch2 = _interopRequireDefault(_nodeFetch); var _querystring = require('querystring'); var _querystring2 = _interopRequireDefault(_querystring); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var withoutUndefined = function withoutUndefined(obj) { var dest = {}; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = (0, _getIterator3.default)((0, _keys2.default)(obj)), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var key = _step.value; var val = obj[key]; if (val !== undefined) { dest[key] = val; } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } return dest; }; // http://docs.ckan.org/en/latest/maintaining/datastore.html // https://inventory.data.gov/dataset/032e19b4-5a90-41dc-83ff-6e4cd234f565/resource/38625c3d-5388-4c16-a30f-d105432553a4?filters=OPEID%3A100200 var fetchApi = function fetchApi(endpoint, _ref) { var filters = _ref.filters; var rest = (0, _objectWithoutProperties3.default)(_ref, ['filters']); var query = withoutUndefined(rest); if (filters && (0, _keys2.default)(filters).length) { query.filters = (0, _stringify2.default)(filters); } var qs = _querystring2.default.stringify(query); return (0, _nodeFetch2.default)(endpoint + '?' + qs).then(function (res) { return res.json(); }); }; var fetchRecords = function fetchRecords() { return fetchApi.apply(undefined, arguments).then(function (response) { return response.success ? response.result.records : []; }); }; exports.fetchApi = fetchApi; exports.fetchRecords = fetchRecords; exports.default = { fetchApi: fetchApi, fetchRecords: fetchRecords };