UNPKG

@contentstack/management

Version:

The Content Management API is used to manage the content of your Contentstack account

599 lines (598 loc) 25.5 kB
"use strict"; var _interopRequireDefault3 = require("@babel/runtime/helpers/interopRequireDefault"); var _interopRequireDefault2 = _interopRequireDefault3(require("@babel/runtime/helpers/interopRequireDefault")); Object.defineProperty(exports, "__esModule", { value: true }); exports.move = exports.fetchAll = exports.fetch = exports.deleteEntity = exports.update = exports.query = exports.create = exports.upload = exports.publishUnpublish = exports.unpublish = exports.publish = undefined; var _typeof2 = require("@babel/runtime/helpers/typeof"); var _typeof3 = (0, _interopRequireDefault2["default"])(_typeof2); var _defineProperty2 = require("@babel/runtime/helpers/defineProperty"); var _defineProperty3 = (0, _interopRequireDefault2["default"])(_defineProperty2); var _asyncToGenerator2 = require("@babel/runtime/helpers/asyncToGenerator"); var _asyncToGenerator3 = (0, _interopRequireDefault2["default"])(_asyncToGenerator2); exports.parseData = parseData; exports.get = get; exports.cleanAssets = cleanAssets; var _regenerator = require("@babel/runtime/regenerator"); var _regenerator2 = (0, _interopRequireDefault2["default"])(_regenerator); var _contentstackError = require("./core/contentstackError"); var _contentstackError2 = (0, _interopRequireDefault2["default"])(_contentstackError); var _cloneDeep = require("lodash/cloneDeep"); var _cloneDeep2 = (0, _interopRequireDefault2["default"])(_cloneDeep); var _index = require("./query/index"); var _index2 = (0, _interopRequireDefault2["default"])(_index); var _contentstackCollection = require("./contentstackCollection"); var _contentstackCollection2 = (0, _interopRequireDefault2["default"])(_contentstackCollection); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty3["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var publish = exports.publish = function publish(http, type) { return /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator3["default"])(/*#__PURE__*/_regenerator2["default"].mark(function _callee(_ref) { var publishDetails, _ref$locale, locale, _ref$version, version, _ref$scheduledAt, scheduledAt, url, headers, httpBody; return _regenerator2["default"].wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: publishDetails = _ref.publishDetails, _ref$locale = _ref.locale, locale = _ref$locale === void 0 ? null : _ref$locale, _ref$version = _ref.version, version = _ref$version === void 0 ? null : _ref$version, _ref$scheduledAt = _ref.scheduledAt, scheduledAt = _ref$scheduledAt === void 0 ? null : _ref$scheduledAt; url = this.urlPath + '/publish'; headers = { headers: _objectSpread({}, (0, _cloneDeep2["default"])(this.stackHeaders)) } || {}; httpBody = {}; httpBody[type] = (0, _cloneDeep2["default"])(publishDetails); return _context.abrupt("return", publishUnpublish(http, url, httpBody, headers, locale, version, scheduledAt)); case 1: case "end": return _context.stop(); } }, _callee, this); })); return function (_x) { return _ref2.apply(this, arguments); }; }(); }; var unpublish = exports.unpublish = function unpublish(http, type) { return /*#__PURE__*/function () { var _ref4 = (0, _asyncToGenerator3["default"])(/*#__PURE__*/_regenerator2["default"].mark(function _callee2(_ref3) { var publishDetails, _ref3$locale, locale, _ref3$version, version, _ref3$scheduledAt, scheduledAt, url, headers, httpBody; return _regenerator2["default"].wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: publishDetails = _ref3.publishDetails, _ref3$locale = _ref3.locale, locale = _ref3$locale === void 0 ? null : _ref3$locale, _ref3$version = _ref3.version, version = _ref3$version === void 0 ? null : _ref3$version, _ref3$scheduledAt = _ref3.scheduledAt, scheduledAt = _ref3$scheduledAt === void 0 ? null : _ref3$scheduledAt; url = this.urlPath + '/unpublish'; headers = { headers: _objectSpread({}, (0, _cloneDeep2["default"])(this.stackHeaders)) } || {}; httpBody = {}; httpBody[type] = (0, _cloneDeep2["default"])(publishDetails); return _context2.abrupt("return", publishUnpublish(http, url, httpBody, headers, locale, version, scheduledAt)); case 1: case "end": return _context2.stop(); } }, _callee2, this); })); return function (_x2) { return _ref4.apply(this, arguments); }; }(); }; var publishUnpublish = /*#__PURE__*/exports.publishUnpublish = function () { var _ref5 = (0, _asyncToGenerator3["default"])(/*#__PURE__*/_regenerator2["default"].mark(function _callee3(http, url, httpBody, headers) { var locale, version, scheduledAt, response, _http$httpClientParam, _http$httpClientParam2, data, _args3 = arguments, _t; return _regenerator2["default"].wrap(function (_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: locale = _args3.length > 4 && _args3[4] !== undefined ? _args3[4] : null; version = _args3.length > 5 && _args3[5] !== undefined ? _args3[5] : null; scheduledAt = _args3.length > 6 && _args3[6] !== undefined ? _args3[6] : null; if (locale !== null) { httpBody.locale = locale; } if (version !== null) { httpBody.version = version; } if (scheduledAt !== null) { httpBody.scheduled_at = scheduledAt; } _context3.prev = 1; _context3.next = 2; return http.post(url, httpBody, headers); case 2: response = _context3.sent; if (!response.data) { _context3.next = 3; break; } data = response.data || {}; if (http !== null && http !== void 0 && (_http$httpClientParam = http.httpClientParams) !== null && _http$httpClientParam !== void 0 && (_http$httpClientParam = _http$httpClientParam.headers) !== null && _http$httpClientParam !== void 0 && _http$httpClientParam.api_version) { delete http.httpClientParams.headers.api_version; } if (headers !== null && headers !== void 0 && headers.api_version) { delete headers.api_version; } if (headers) { data.stackHeaders = headers; } if ((http === null || http === void 0 || (_http$httpClientParam2 = http.httpClientParams) === null || _http$httpClientParam2 === void 0 || (_http$httpClientParam2 = _http$httpClientParam2.headers) === null || _http$httpClientParam2 === void 0 ? void 0 : _http$httpClientParam2.includeResHeaders) === true) { data.stackHeaders = _objectSpread(_objectSpread({}, data.stackHeaders), {}, { responseHeaders: response.headers }); } return _context3.abrupt("return", data); case 3: throw (0, _contentstackError2["default"])(response); case 4: _context3.next = 6; break; case 5: _context3.prev = 5; _t = _context3["catch"](1); throw (0, _contentstackError2["default"])(_t); case 6: case "end": return _context3.stop(); } }, _callee3, null, [[1, 5]]); })); return function publishUnpublish(_x3, _x4, _x5, _x6) { return _ref5.apply(this, arguments); }; }(); var upload = /*#__PURE__*/exports.upload = function () { var _ref7 = (0, _asyncToGenerator3["default"])(/*#__PURE__*/_regenerator2["default"].mark(function _callee4(_ref6) { var http, urlPath, stackHeaders, formData, params, _ref6$method, method, headers; return _regenerator2["default"].wrap(function (_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: http = _ref6.http, urlPath = _ref6.urlPath, stackHeaders = _ref6.stackHeaders, formData = _ref6.formData, params = _ref6.params, _ref6$method = _ref6.method, method = _ref6$method === void 0 ? 'POST' : _ref6$method; headers = { headers: _objectSpread({}, (0, _cloneDeep2["default"])(stackHeaders)), params: _objectSpread({}, (0, _cloneDeep2["default"])(params)) } || {}; if (!(method === 'POST')) { _context4.next = 1; break; } return _context4.abrupt("return", http.post(urlPath, formData, headers)); case 1: return _context4.abrupt("return", http.put(urlPath, formData, headers)); case 2: case "end": return _context4.stop(); } }, _callee4); })); return function upload(_x7) { return _ref7.apply(this, arguments); }; }(); var create = exports.create = function create(_ref8) { var http = _ref8.http, params = _ref8.params; return /*#__PURE__*/function () { var _ref9 = (0, _asyncToGenerator3["default"])(/*#__PURE__*/_regenerator2["default"].mark(function _callee5(data, param) { var headers, response, _t2; return _regenerator2["default"].wrap(function (_context5) { while (1) switch (_context5.prev = _context5.next) { case 0: this.stackHeaders = _objectSpread({}, this.stackHeaders); headers = { headers: _objectSpread(_objectSpread({}, (0, _cloneDeep2["default"])(params)), (0, _cloneDeep2["default"])(this.stackHeaders)), params: _objectSpread({}, (0, _cloneDeep2["default"])(param)) } || {}; _context5.prev = 1; _context5.next = 2; return http.post(this.urlPath, data, headers); case 2: response = _context5.sent; if (!response.data) { _context5.next = 3; break; } return _context5.abrupt("return", new this.constructor(http, parseData(response, this.stackHeaders, this.content_type_uid, this.taxonomy_uid, http))); case 3: if (!(response.status >= 200 && response.status < 300)) { _context5.next = 4; break; } return _context5.abrupt("return", { status: response.status, statusText: response.statusText }); case 4: throw (0, _contentstackError2["default"])(response); case 5: _context5.next = 7; break; case 6: _context5.prev = 6; _t2 = _context5["catch"](1); throw (0, _contentstackError2["default"])(_t2); case 7: case "end": return _context5.stop(); } }, _callee5, this, [[1, 6]]); })); return function (_x8, _x9) { return _ref9.apply(this, arguments); }; }(); }; var query = exports.query = function query(_ref0) { var http = _ref0.http, wrapperCollection = _ref0.wrapperCollection, apiVersion = _ref0.apiVersion; return function () { var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var headers = _objectSpread(_objectSpread({}, (0, _cloneDeep2["default"])(this.stackHeaders)), apiVersion != null ? { api_version: apiVersion } : {}); if (this.organization_uid) { headers.organization_uid = this.organization_uid; if (!params.query) { params.query = {}; } params.query['org_uid'] = this.organization_uid; } if (this.content_type_uid) { params.content_type_uid = this.content_type_uid; } return (0, _index2["default"])(http, this.urlPath, params, headers, wrapperCollection); }; }; var update = exports.update = function update(http, type) { var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; return /*#__PURE__*/(0, _asyncToGenerator3["default"])(/*#__PURE__*/_regenerator2["default"].mark(function _callee6() { var param, updateData, json, response, _args6 = arguments, _t3; return _regenerator2["default"].wrap(function (_context6) { while (1) switch (_context6.prev = _context6.next) { case 0: param = _args6.length > 0 && _args6[0] !== undefined ? _args6[0] : {}; updateData = {}; json = (0, _cloneDeep2["default"])(this); delete json.stackHeaders; delete json.urlPath; delete json.uid; delete json.org_uid; delete json.api_key; delete json.created_at; delete json.created_by; delete json.deleted_at; delete json.updated_at; delete json.updated_by; if (type) { updateData[type] = json; if (type === 'entry') updateData[type] = cleanAssets(updateData[type]); } else { updateData = json; } _context6.prev = 1; _context6.next = 2; return http.put(this.urlPath, updateData, { headers: _objectSpread(_objectSpread({}, (0, _cloneDeep2["default"])(this.stackHeaders)), (0, _cloneDeep2["default"])(params)), params: _objectSpread({}, (0, _cloneDeep2["default"])(param)) }); case 2: response = _context6.sent; if (!response.data) { _context6.next = 3; break; } return _context6.abrupt("return", new this.constructor(http, parseData(response, this.stackHeaders, this.content_type_uid, this.taxonomy_uid, http))); case 3: throw (0, _contentstackError2["default"])(response); case 4: _context6.next = 6; break; case 5: _context6.prev = 5; _t3 = _context6["catch"](1); throw (0, _contentstackError2["default"])(_t3); case 6: case "end": return _context6.stop(); } }, _callee6, this, [[1, 5]]); })); }; var deleteEntity = exports.deleteEntity = function deleteEntity(http) { var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; return /*#__PURE__*/(0, _asyncToGenerator3["default"])(/*#__PURE__*/_regenerator2["default"].mark(function _callee7() { var param, headers, response, _args7 = arguments, _t4; return _regenerator2["default"].wrap(function (_context7) { while (1) switch (_context7.prev = _context7.next) { case 0: param = _args7.length > 0 && _args7[0] !== undefined ? _args7[0] : {}; _context7.prev = 1; headers = { headers: _objectSpread(_objectSpread({}, (0, _cloneDeep2["default"])(this.stackHeaders)), (0, _cloneDeep2["default"])(params)), params: _objectSpread({}, (0, _cloneDeep2["default"])(param)) } || {}; if (force === true) { headers.params.force = true; } _context7.next = 2; return http["delete"](this.urlPath, headers); case 2: response = _context7.sent; if (!response.data) { _context7.next = 3; break; } return _context7.abrupt("return", response.data); case 3: if (!(response.status >= 200 && response.status < 300)) { _context7.next = 4; break; } return _context7.abrupt("return", { status: response.status, statusText: response.statusText }); case 4: throw (0, _contentstackError2["default"])(response); case 5: _context7.next = 7; break; case 6: _context7.prev = 6; _t4 = _context7["catch"](1); throw (0, _contentstackError2["default"])(_t4); case 7: case "end": return _context7.stop(); } }, _callee7, this, [[1, 6]]); })); }; var fetch = exports.fetch = function fetch(http, type) { var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; return /*#__PURE__*/(0, _asyncToGenerator3["default"])(/*#__PURE__*/_regenerator2["default"].mark(function _callee8() { var param, headers, response, _args8 = arguments, _t5; return _regenerator2["default"].wrap(function (_context8) { while (1) switch (_context8.prev = _context8.next) { case 0: param = _args8.length > 0 && _args8[0] !== undefined ? _args8[0] : {}; _context8.prev = 1; headers = { headers: _objectSpread(_objectSpread({}, (0, _cloneDeep2["default"])(this.stackHeaders)), (0, _cloneDeep2["default"])(params)), params: _objectSpread({}, (0, _cloneDeep2["default"])(param)) } || {}; if (this.organization_uid) { headers.headers.organization_uid = this.organization_uid; } _context8.next = 2; return http.get(this.urlPath, headers); case 2: response = _context8.sent; if (!response.data) { _context8.next = 3; break; } if (type === 'entry') { response.data[type]['content_type'] = response.data['content_type']; response.data[type]['schema'] = response.data['schema']; } return _context8.abrupt("return", new this.constructor(http, parseData(response, this.stackHeaders, this.content_type_uid, this.taxonomy_uid, http))); case 3: throw (0, _contentstackError2["default"])(response); case 4: _context8.next = 6; break; case 5: _context8.prev = 5; _t5 = _context8["catch"](1); throw (0, _contentstackError2["default"])(_t5); case 6: case "end": return _context8.stop(); } }, _callee8, this, [[1, 5]]); })); }; var fetchAll = exports.fetchAll = function fetchAll(http, wrapperCollection) { var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; return /*#__PURE__*/(0, _asyncToGenerator3["default"])(/*#__PURE__*/_regenerator2["default"].mark(function _callee9() { var param, headers, response, _args9 = arguments, _t6; return _regenerator2["default"].wrap(function (_context9) { while (1) switch (_context9.prev = _context9.next) { case 0: param = _args9.length > 0 && _args9[0] !== undefined ? _args9[0] : {}; headers = { headers: _objectSpread(_objectSpread({}, (0, _cloneDeep2["default"])(this.stackHeaders)), (0, _cloneDeep2["default"])(params)), params: _objectSpread({}, (0, _cloneDeep2["default"])(param)) } || {}; _context9.prev = 1; _context9.next = 2; return http.get(this.urlPath, headers); case 2: response = _context9.sent; if (!response.data) { _context9.next = 3; break; } return _context9.abrupt("return", new _contentstackCollection2["default"](response, http, this.stackHeaders, wrapperCollection)); case 3: throw (0, _contentstackError2["default"])(response); case 4: _context9.next = 6; break; case 5: _context9.prev = 5; _t6 = _context9["catch"](1); throw (0, _contentstackError2["default"])(_t6); case 6: case "end": return _context9.stop(); } }, _callee9, this, [[1, 5]]); })); }; function parseData(response, stackHeaders, contentTypeUID, taxonomyUid, http) { var _http$httpClientParam3; var data = response.data || {}; if (stackHeaders && 'api_version' in stackHeaders) { delete stackHeaders.api_version; } if (stackHeaders) { data.stackHeaders = stackHeaders; } if (contentTypeUID) { data.content_type_uid = contentTypeUID; } if (taxonomyUid) { data.taxonomy_uid = taxonomyUid; } if ((http === null || http === void 0 || (_http$httpClientParam3 = http.httpClientParams) === null || _http$httpClientParam3 === void 0 || (_http$httpClientParam3 = _http$httpClientParam3.headers) === null || _http$httpClientParam3 === void 0 ? void 0 : _http$httpClientParam3.includeResHeaders) === true) { data.stackHeaders = _objectSpread(_objectSpread({}, data.stackHeaders), {}, { responseHeaders: response.headers }); } return data; } function get(_x0, _x1, _x10, _x11) { return _get.apply(this, arguments); } function _get() { _get = (0, _asyncToGenerator3["default"])(/*#__PURE__*/_regenerator2["default"].mark(function _callee1(http, url, params, data) { var headers, response, _t8; return _regenerator2["default"].wrap(function (_context1) { while (1) switch (_context1.prev = _context1.next) { case 0: headers = { params: _objectSpread(_objectSpread({}, (0, _cloneDeep2["default"])(data.branches)), (0, _cloneDeep2["default"])(params)), headers: _objectSpread({}, (0, _cloneDeep2["default"])(data.stackHeaders)) } || {}; _context1.prev = 1; _context1.next = 2; return http.get(url, headers); case 2: response = _context1.sent; if (!response.data) { _context1.next = 3; break; } return _context1.abrupt("return", response.data); case 3: throw (0, _contentstackError2["default"])(response); case 4: _context1.next = 6; break; case 5: _context1.prev = 5; _t8 = _context1["catch"](1); throw (0, _contentstackError2["default"])(_t8); case 6: case "end": return _context1.stop(); } }, _callee1, null, [[1, 5]]); })); return _get.apply(this, arguments); } var move = exports.move = function move(http, type) { var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; var params = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; return /*#__PURE__*/(0, _asyncToGenerator3["default"])(/*#__PURE__*/_regenerator2["default"].mark(function _callee0() { var param, updateData, json, headers, response, _args0 = arguments, _t7; return _regenerator2["default"].wrap(function (_context0) { while (1) switch (_context0.prev = _context0.next) { case 0: param = _args0.length > 0 && _args0[0] !== undefined ? _args0[0] : {}; _context0.prev = 1; updateData = {}; json = (0, _cloneDeep2["default"])(this); if (type) { updateData[type] = json; } else { updateData = json; } headers = { headers: _objectSpread(_objectSpread({}, (0, _cloneDeep2["default"])(this.stackHeaders)), (0, _cloneDeep2["default"])(params)), params: _objectSpread({}, (0, _cloneDeep2["default"])(param)) } || {}; if (force === true) { headers.params.force = true; } _context0.next = 2; return http.put("".concat(this.urlPath, "/move"), param, headers); case 2: response = _context0.sent; if (!response.data) { _context0.next = 3; break; } return _context0.abrupt("return", new this.constructor(http, parseData(response, this.stackHeaders, this.content_type_uid, this.taxonomy_uid, http))); case 3: throw (0, _contentstackError2["default"])(response); case 4: _context0.next = 6; break; case 5: _context0.prev = 5; _t7 = _context0["catch"](1); throw (0, _contentstackError2["default"])(_t7); case 6: case "end": return _context0.stop(); } }, _callee0, this, [[1, 5]]); })); }; function isAsset(data) { var element = Array.isArray(data) && data.length > 0 ? data[0] : data; return (!!element.file_size || !!element.content_type) && !!element.uid; } function cleanAssets(data) { if (data && (0, _typeof3["default"])(data) === 'object') { var keys = Object.keys(data); for (var _i = 0, _keys = keys; _i < _keys.length; _i++) { var key = _keys[_i]; if (data[key] !== null && data[key] !== undefined && (0, _typeof3["default"])(data[key]) === 'object') { if (isAsset(data[key])) { data[key] = Array.isArray(data[key]) ? data[key].map(function (element) { return element.uid; }) : data[key].uid; } else { cleanAssets(data[key]); } } } } return data; }