UNPKG

@darwino/darwino-react

Version:

A set of Javascript classes and utilities

196 lines (170 loc) 6.3 kB
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } /* * (c) Copyright Darwino Inc. 2014-2017. */ import queryString from 'query-string'; import { DEV_OPTIONS, JstoreCursor } from '@darwino/darwino'; var LOAD_ENTRIES = "LOAD_ENTRIES"; var LOAD_DOCUMENT = "LOAD_DOCUMENT"; var NEW_DOCUMENT = "NEW_DOCUMENT"; var CREATE_DOCUMENT = "CREATE_DOCUMENT"; var UPDATE_DOCUMENT = "UPDATE_DOCUMENT"; var DELETE_DOCUMENT = "DELETE_DOCUMENT"; var DELETEALL_DOCUMENTS = "DELETEALL_DOCUMENTS"; var REMOVE_DOCUMENT = "REMOVE_DOCUMENT"; function darwinoToStoreKey(database, store, query) { return database + store + (query ? query : ''); } // // Cursor Actions // var loadStoreEntries = (database, store, params) => ({ type: LOAD_ENTRIES, payload: new JstoreCursor().database(database).store(store).queryParams(params).fetch(), meta: { database, store, params } }); // // Document Actions // // Remove document from the store var removeDocument = (database, store, unid) => ({ type: REMOVE_DOCUMENT, meta: { database, store, unid } }); // Document New function dispatchNew(doc, docEvents) { if (docEvents && docEvents.initialize) { docEvents.initialize(doc, true); } return doc; } var newDocument = (database, store, unid, serverInit, docEvents) => ({ type: NEW_DOCUMENT, payload: serverInit ? fetch("".concat(DEV_OPTIONS.serverPrefix, "$darwino-jstore/databases/").concat(encodeURIComponent(database), "/stores/").concat(encodeURIComponent(store), "/newdocument").concat(unid ? '/' + encodeURIComponent(unid) : ''), { credentials: DEV_OPTIONS.credentials }).then(response => response.json()).then(json => dispatchNew(json, docEvents)) : dispatchNew({ unid, store, id: 0, json: {} }, docEvents), meta: { database, store, unid } }); // Document Load function dispatchLoad(doc, docEvents) { if (docEvents && docEvents.initialize) { docEvents.initialize(doc, false); } return doc; } var loadDocument = (database, store, unid, docEvents) => ({ type: LOAD_DOCUMENT, payload: fetch("".concat(DEV_OPTIONS.serverPrefix, "$darwino-jstore/databases/").concat(encodeURIComponent(database), "/stores/").concat(encodeURIComponent(store), "/documents/").concat(encodeURIComponent(unid)), { credentials: DEV_OPTIONS.credentials }).then(response => response.json()).then(json => dispatchLoad(json, docEvents)), meta: { database, store, unid } }); // Document Save function dispatchSave(content, docEvents) { if (docEvents && docEvents.prepareForSave) { content = _objectSpread({}, content); docEvents.prepareForSave(content); } return content; } var createDocument = (database, store, unid, content, attachments, properties, docEvents) => ({ type: CREATE_DOCUMENT, payload: fetch("".concat(DEV_OPTIONS.serverPrefix, "$darwino-jstore/databases/").concat(encodeURIComponent(database), "/stores/").concat(encodeURIComponent(store), "/documents").concat(unid ? '/' + encodeURIComponent(unid) : ''), { credentials: DEV_OPTIONS.credentials, method: 'POST', body: JSON.stringify({ json: dispatchSave(content, docEvents), properties, attachments }) }).then(response => response.json()).then(json => dispatchLoad(json, docEvents)), meta: { database, store, unid } }); var updateDocument = (database, store, unid, content, attachments, properties, docEvents) => ({ type: UPDATE_DOCUMENT, payload: fetch("".concat(DEV_OPTIONS.serverPrefix, "$darwino-jstore/databases/").concat(encodeURIComponent(database), "/stores/").concat(encodeURIComponent(store), "/documents/").concat(encodeURIComponent(unid)), { credentials: DEV_OPTIONS.credentials, method: 'PUT', body: JSON.stringify({ json: dispatchSave(content, docEvents), properties: properties, attachments }) }).then(response => response.json()).then(json => dispatchLoad(json, docEvents)), meta: { database, store, unid } }); // Document Delete function dispatchDelete(docEvents) { if (docEvents && docEvents.initialize) { docEvents.delete(); } } var deleteDocument = (database, store, unid, docEvents) => ({ type: DELETE_DOCUMENT, payload: fetch("".concat(DEV_OPTIONS.serverPrefix, "$darwino-jstore/databases/").concat(encodeURIComponent(database), "/stores/").concat(encodeURIComponent(store), "/documents/").concat(encodeURIComponent(unid)), { credentials: DEV_OPTIONS.credentials, method: 'DELETE' }).then(() => dispatchDelete(docEvents)), meta: { database, store, unid } }); var deleteAllDocuments = (database, store, docEvents) => ({ type: DELETEALL_DOCUMENTS, payload: fetch("".concat(DEV_OPTIONS.serverPrefix, "$darwino-jstore/databases/").concat(encodeURIComponent(database), "/stores/").concat(encodeURIComponent(store), "/documents"), { credentials: DEV_OPTIONS.credentials, method: 'DELETE' }), meta: { database, store } }); var StoreActions = { LOAD_ENTRIES, LOAD_DOCUMENT, NEW_DOCUMENT, CREATE_DOCUMENT, UPDATE_DOCUMENT, DELETE_DOCUMENT, DELETEALL_DOCUMENTS, REMOVE_DOCUMENT, darwinoToStoreKey, loadStoreEntries, removeDocument, newDocument, loadDocument, createDocument, updateDocument, deleteDocument, deleteAllDocuments }; export default StoreActions; //# sourceMappingURL=StoreActions.js.map