UNPKG

@contentstack/management

Version:

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

580 lines (579 loc) 23.3 kB
import _typeof from "@babel/runtime/helpers/typeof"; import _defineProperty from "@babel/runtime/helpers/defineProperty"; import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator"; import _regeneratorRuntime from "@babel/runtime/regenerator"; 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) { _defineProperty(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; } import error from './core/contentstackError'; import cloneDeep from 'lodash/cloneDeep'; import Query from './query/index'; import ContentstackCollection from './contentstackCollection'; export var publish = function publish(http, type) { return /*#__PURE__*/function () { var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) { var publishDetails, _ref$locale, locale, _ref$version, version, _ref$scheduledAt, scheduledAt, url, headers, httpBody; return _regeneratorRuntime.wrap(function _callee$(_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({}, cloneDeep(this.stackHeaders)) } || {}; httpBody = {}; httpBody[type] = cloneDeep(publishDetails); return _context.abrupt("return", publishUnpublish(http, url, httpBody, headers, locale, version, scheduledAt)); case 6: case "end": return _context.stop(); } }, _callee, this); })); return function (_x) { return _ref2.apply(this, arguments); }; }(); }; export var unpublish = function unpublish(http, type) { return /*#__PURE__*/function () { var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref3) { var publishDetails, _ref3$locale, locale, _ref3$version, version, _ref3$scheduledAt, scheduledAt, url, headers, httpBody; return _regeneratorRuntime.wrap(function _callee2$(_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({}, cloneDeep(this.stackHeaders)) } || {}; httpBody = {}; httpBody[type] = cloneDeep(publishDetails); return _context2.abrupt("return", publishUnpublish(http, url, httpBody, headers, locale, version, scheduledAt)); case 6: case "end": return _context2.stop(); } }, _callee2, this); })); return function (_x2) { return _ref4.apply(this, arguments); }; }(); }; export var publishUnpublish = /*#__PURE__*/function () { var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(http, url, httpBody, headers) { var locale, version, scheduledAt, response, _http$httpClientParam, _http$httpClientParam2, data, _args3 = arguments; return _regeneratorRuntime.wrap(function _callee3$(_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 = 6; _context3.next = 9; return http.post(url, httpBody, headers); case 9: response = _context3.sent; if (!response.data) { _context3.next = 19; 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 19: throw error(response); case 20: _context3.next = 25; break; case 22: _context3.prev = 22; _context3.t0 = _context3["catch"](6); throw error(_context3.t0); case 25: case "end": return _context3.stop(); } }, _callee3, null, [[6, 22]]); })); return function publishUnpublish(_x3, _x4, _x5, _x6) { return _ref5.apply(this, arguments); }; }(); export var upload = /*#__PURE__*/function () { var _ref7 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref6) { var http, urlPath, stackHeaders, formData, params, _ref6$method, method, headers; return _regeneratorRuntime.wrap(function _callee4$(_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({}, cloneDeep(stackHeaders)), params: _objectSpread({}, cloneDeep(params)) } || {}; if (!(method === 'POST')) { _context4.next = 6; break; } return _context4.abrupt("return", http.post(urlPath, formData, headers)); case 6: return _context4.abrupt("return", http.put(urlPath, formData, headers)); case 7: case "end": return _context4.stop(); } }, _callee4); })); return function upload(_x7) { return _ref7.apply(this, arguments); }; }(); export var create = function create(_ref8) { var http = _ref8.http, params = _ref8.params; return /*#__PURE__*/function () { var _ref9 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(data, param) { var headers, response; return _regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) switch (_context5.prev = _context5.next) { case 0: this.stackHeaders = _objectSpread({}, this.stackHeaders); headers = { headers: _objectSpread(_objectSpread({}, cloneDeep(params)), cloneDeep(this.stackHeaders)), params: _objectSpread({}, cloneDeep(param)) } || {}; _context5.prev = 2; _context5.next = 5; return http.post(this.urlPath, data, headers); case 5: response = _context5.sent; if (!response.data) { _context5.next = 10; break; } return _context5.abrupt("return", new this.constructor(http, parseData(response, this.stackHeaders, this.content_type_uid, this.taxonomy_uid, http))); case 10: if (!(response.status >= 200 && response.status < 300)) { _context5.next = 14; break; } return _context5.abrupt("return", { status: response.status, statusText: response.statusText }); case 14: throw error(response); case 15: _context5.next = 20; break; case 17: _context5.prev = 17; _context5.t0 = _context5["catch"](2); throw error(_context5.t0); case 20: case "end": return _context5.stop(); } }, _callee5, this, [[2, 17]]); })); return function (_x8, _x9) { return _ref9.apply(this, arguments); }; }(); }; export var query = function query(_ref10) { var http = _ref10.http, wrapperCollection = _ref10.wrapperCollection, apiVersion = _ref10.apiVersion; return function () { var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var headers = _objectSpread(_objectSpread({}, cloneDeep(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 Query(http, this.urlPath, params, headers, wrapperCollection); }; }; export var update = function update(http, type) { var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; return /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6() { var param, updateData, json, response, _args6 = arguments; return _regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) switch (_context6.prev = _context6.next) { case 0: param = _args6.length > 0 && _args6[0] !== undefined ? _args6[0] : {}; updateData = {}; json = cloneDeep(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 param has data for this entity type, merge it with the json object if (param && param[type]) { Object.assign(json, param[type]); } if (type) { updateData[type] = json; if (type === 'entry') updateData[type] = cleanAssets(updateData[type]); } else { updateData = json; } _context6.prev = 15; _context6.next = 18; return http.put(this.urlPath, updateData, { headers: _objectSpread(_objectSpread({}, cloneDeep(this.stackHeaders)), cloneDeep(params)), params: _objectSpread({}, cloneDeep(param)) }); case 18: response = _context6.sent; if (!response.data) { _context6.next = 23; break; } return _context6.abrupt("return", new this.constructor(http, parseData(response, this.stackHeaders, this.content_type_uid, this.taxonomy_uid, http))); case 23: throw error(response); case 24: _context6.next = 29; break; case 26: _context6.prev = 26; _context6.t0 = _context6["catch"](15); throw error(_context6.t0); case 29: case "end": return _context6.stop(); } }, _callee6, this, [[15, 26]]); })); }; export var 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__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7() { var param, headers, response, _args7 = arguments; return _regeneratorRuntime.wrap(function _callee7$(_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({}, cloneDeep(this.stackHeaders)), cloneDeep(params)), params: _objectSpread({}, cloneDeep(param)) } || {}; if (force === true) { headers.params.force = true; } _context7.next = 6; return http["delete"](this.urlPath, headers); case 6: response = _context7.sent; if (!response.data) { _context7.next = 11; break; } return _context7.abrupt("return", response.data); case 11: if (!(response.status >= 200 && response.status < 300)) { _context7.next = 15; break; } return _context7.abrupt("return", { status: response.status, statusText: response.statusText }); case 15: throw error(response); case 16: _context7.next = 21; break; case 18: _context7.prev = 18; _context7.t0 = _context7["catch"](1); throw error(_context7.t0); case 21: case "end": return _context7.stop(); } }, _callee7, this, [[1, 18]]); })); }; export var fetch = function fetch(http, type) { var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; return /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee8() { var param, headers, response, _args8 = arguments; return _regeneratorRuntime.wrap(function _callee8$(_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({}, cloneDeep(this.stackHeaders)), cloneDeep(params)), params: _objectSpread({}, cloneDeep(param)) } || {}; if (this.organization_uid) { headers.headers.organization_uid = this.organization_uid; } _context8.next = 6; return http.get(this.urlPath, headers); case 6: response = _context8.sent; if (!response.data) { _context8.next = 12; 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 12: throw error(response); case 13: _context8.next = 18; break; case 15: _context8.prev = 15; _context8.t0 = _context8["catch"](1); throw error(_context8.t0); case 18: case "end": return _context8.stop(); } }, _callee8, this, [[1, 15]]); })); }; export var fetchAll = function fetchAll(http, wrapperCollection) { var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; return /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee9() { var param, headers, response, _args9 = arguments; return _regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) switch (_context9.prev = _context9.next) { case 0: param = _args9.length > 0 && _args9[0] !== undefined ? _args9[0] : {}; headers = { headers: _objectSpread(_objectSpread({}, cloneDeep(this.stackHeaders)), cloneDeep(params)), params: _objectSpread({}, cloneDeep(param)) } || {}; _context9.prev = 2; _context9.next = 5; return http.get(this.urlPath, headers); case 5: response = _context9.sent; if (!response.data) { _context9.next = 10; break; } return _context9.abrupt("return", new ContentstackCollection(response, http, this.stackHeaders, wrapperCollection)); case 10: throw error(response); case 11: _context9.next = 16; break; case 13: _context9.prev = 13; _context9.t0 = _context9["catch"](2); throw error(_context9.t0); case 16: case "end": return _context9.stop(); } }, _callee9, this, [[2, 13]]); })); }; export 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; } export function get(_x10, _x11, _x12, _x13) { return _get.apply(this, arguments); } function _get() { _get = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee11(http, url, params, data) { var headers, response; return _regeneratorRuntime.wrap(function _callee11$(_context11) { while (1) switch (_context11.prev = _context11.next) { case 0: headers = { params: _objectSpread(_objectSpread({}, cloneDeep(data.branches)), cloneDeep(params)), headers: _objectSpread({}, cloneDeep(data.stackHeaders)) } || {}; _context11.prev = 1; _context11.next = 4; return http.get(url, headers); case 4: response = _context11.sent; if (!response.data) { _context11.next = 9; break; } return _context11.abrupt("return", response.data); case 9: throw error(response); case 10: _context11.next = 15; break; case 12: _context11.prev = 12; _context11.t0 = _context11["catch"](1); throw error(_context11.t0); case 15: case "end": return _context11.stop(); } }, _callee11, null, [[1, 12]]); })); return _get.apply(this, arguments); } export var 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__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee10() { var param, updateData, json, headers, response, _args10 = arguments; return _regeneratorRuntime.wrap(function _callee10$(_context10) { while (1) switch (_context10.prev = _context10.next) { case 0: param = _args10.length > 0 && _args10[0] !== undefined ? _args10[0] : {}; _context10.prev = 1; updateData = {}; json = cloneDeep(this); delete json.parent_uid; if (type) { updateData[type] = json; } else { updateData = json; } headers = { headers: _objectSpread(_objectSpread({}, cloneDeep(this.stackHeaders)), cloneDeep(params)), params: _objectSpread({}, cloneDeep(param)) } || {}; if (force === true) { headers.params.force = true; } _context10.next = 10; return http.put("".concat(this.urlPath, "/move"), updateData, headers); case 10: response = _context10.sent; if (!response.data) { _context10.next = 15; break; } return _context10.abrupt("return", new this.constructor(http, parseData(response, this.stackHeaders, this.content_type_uid, this.taxonomy_uid, http))); case 15: throw error(response); case 16: _context10.next = 21; break; case 18: _context10.prev = 18; _context10.t0 = _context10["catch"](1); throw error(_context10.t0); case 21: case "end": return _context10.stop(); } }, _callee10, this, [[1, 18]]); })); }; function isAsset(data) { var element = Array.isArray(data) && data.length > 0 ? data[0] : data; return (!!element.file_size || !!element.content_type) && !!element.uid; } export function cleanAssets(data) { if (data && _typeof(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 && _typeof(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; }