Merge remote-tracking branch 'remotes/dartandrevinsky/private-event-sourcing-examples-38' into private-event-sourcing-examples-38
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -36,6 +36,7 @@ webpackJsonp([0,3],{
|
||||
* Created by andrew on 12/02/16.
|
||||
*/
|
||||
if (process.env.NODE_ENV !== "production") {
|
||||
var reactRoot = window.document.getElementById("root");
|
||||
if (!reactRoot.firstChild || !reactRoot.firstChild.attributes || !reactRoot.firstChild.attributes["data-react-checksum"]) {
|
||||
console.error("Server-side React render was discarded. Make sure that your initial render does not contain any client-side code.");
|
||||
}
|
||||
@@ -2243,7 +2244,7 @@ webpackJsonp([0,3],{
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.apiRetrieveUsers = exports.apiDeleteAccount = exports.apiRetrieveAccount = exports.apiRetrieveTransfers = exports.apiRetrieveAccounts = exports.apiMakeTransfer = exports.apiCreateRefAccount = exports.apiCreateAccount = exports.apiGetCurrentUser = exports.apiSignUp = exports.apiSignIn = undefined;
|
||||
exports.apiRetrieveUsers = exports.apiDeleteRefAccount = exports.apiDeleteAccount = exports.apiRetrieveAccount = exports.apiRetrieveTransfers = exports.apiRetrieveAccounts = exports.apiMakeTransfer = exports.apiCreateRefAccount = exports.apiCreateAccount = exports.apiGetCurrentUser = exports.apiSignUp = exports.apiSignIn = undefined;
|
||||
|
||||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /**
|
||||
* Created by andrew on 12/03/16.
|
||||
@@ -2292,19 +2293,19 @@ webpackJsonp([0,3],{
|
||||
};
|
||||
|
||||
var apiSignIn = exports.apiSignIn = function apiSignIn(body) {
|
||||
return fetch(ENDPOINTS.emailSignInPath(), _extends({}, METHODS.POST, {
|
||||
return fetch(ENDPOINTS.emailSignIn(), _extends({}, METHODS.POST, {
|
||||
body: _root2.default.JSON.stringify(body)
|
||||
}));
|
||||
};
|
||||
|
||||
var apiSignUp = exports.apiSignUp = function apiSignUp(body) {
|
||||
return fetch(ENDPOINTS.emailSignUpUrl(), _extends({}, METHODS.POST, {
|
||||
return fetch(ENDPOINTS.emailSignUp(), _extends({}, METHODS.POST, {
|
||||
body: _root2.default.JSON.stringify(body)
|
||||
}));
|
||||
};
|
||||
|
||||
var apiGetCurrentUser = exports.apiGetCurrentUser = function apiGetCurrentUser() {
|
||||
return fetch(ENDPOINTS.currentUserPath(), _extends({}, METHODS.GET));
|
||||
return fetch(ENDPOINTS.currentUser(), _extends({}, METHODS.GET));
|
||||
};
|
||||
|
||||
var apiCreateAccount = exports.apiCreateAccount = function apiCreateAccount(customerId, _ref) {
|
||||
@@ -2325,7 +2326,7 @@ webpackJsonp([0,3],{
|
||||
var accountId = _ref2.account;
|
||||
var title = _ref2.title;
|
||||
var description = _ref2.description;
|
||||
return fetch(ENDPOINTS.toAccounts(customerId), _extends({}, METHODS.POST, {
|
||||
return fetch(ENDPOINTS.refAccounts(customerId), _extends({}, METHODS.POST, {
|
||||
body: _root2.default.JSON.stringify({
|
||||
owner: owner,
|
||||
id: accountId,
|
||||
@@ -2338,7 +2339,7 @@ webpackJsonp([0,3],{
|
||||
var account = _ref3.account;
|
||||
var amount = _ref3.amount;
|
||||
var description = _ref3.description;
|
||||
return fetch(ENDPOINTS.transfersUrl(), _extends({}, METHODS.POST, {
|
||||
return fetch(ENDPOINTS.transfers(), _extends({}, METHODS.POST, {
|
||||
body: _root2.default.JSON.stringify({
|
||||
amount: amount,
|
||||
fromAccountId: fromAccountId,
|
||||
@@ -2361,7 +2362,11 @@ webpackJsonp([0,3],{
|
||||
};
|
||||
|
||||
var apiDeleteAccount = exports.apiDeleteAccount = function apiDeleteAccount(customerId, accountId) {
|
||||
return fetch(ENDPOINTS.customersAccount(customerId, accountId), _extends({}, METHODS.DELETE));
|
||||
return fetch(ENDPOINTS.account(accountId), _extends({}, METHODS.DELETE));
|
||||
};
|
||||
|
||||
var apiDeleteRefAccount = exports.apiDeleteRefAccount = function apiDeleteRefAccount(customerId, accountId) {
|
||||
return fetch(ENDPOINTS.refAccount(customerId, accountId), _extends({}, METHODS.DELETE));
|
||||
};
|
||||
|
||||
var apiRetrieveUsers = exports.apiRetrieveUsers = function apiRetrieveUsers(email) {
|
||||
@@ -2488,16 +2493,13 @@ webpackJsonp([0,3],{
|
||||
*/
|
||||
var API_ROOT = '/api';
|
||||
|
||||
var emailSignInPath = exports.emailSignInPath = function emailSignInPath() {
|
||||
var emailSignIn = exports.emailSignIn = function emailSignIn() {
|
||||
return API_ROOT + '/login';
|
||||
};
|
||||
var emailSignUpUrl = exports.emailSignUpUrl = function emailSignUpUrl() {
|
||||
var emailSignUp = exports.emailSignUp = function emailSignUp() {
|
||||
return API_ROOT + '/customers';
|
||||
};
|
||||
var customersPath = exports.customersPath = function customersPath() {
|
||||
return API_ROOT + '/customers';
|
||||
};
|
||||
var currentUserPath = exports.currentUserPath = function currentUserPath() {
|
||||
var currentUser = exports.currentUser = function currentUser() {
|
||||
return API_ROOT + '/user';
|
||||
};
|
||||
var accountsPath = exports.accountsPath = function accountsPath() {
|
||||
@@ -2509,19 +2511,19 @@ webpackJsonp([0,3],{
|
||||
var customersAccounts = exports.customersAccounts = function customersAccounts(customerId) {
|
||||
return API_ROOT + '/customers/' + customerId + '/accounts';
|
||||
};
|
||||
var customersAccount = exports.customersAccount = function customersAccount(customerId, accountId) {
|
||||
return API_ROOT + '/customers/' + customerId + '/accounts/' + accountId;
|
||||
};
|
||||
var toAccounts = exports.toAccounts = function toAccounts(customerId) {
|
||||
var refAccounts = exports.refAccounts = function refAccounts(customerId) {
|
||||
return API_ROOT + '/customers/' + customerId + '/toaccounts';
|
||||
};
|
||||
var refAccount = exports.refAccount = function refAccount(customerId, accountId) {
|
||||
return API_ROOT + '/customers/' + customerId + '/toaccounts/' + accountId;
|
||||
};
|
||||
var account = exports.account = function account(accountId) {
|
||||
return API_ROOT + '/accounts/' + accountId;
|
||||
};
|
||||
var history = exports.history = function history(accountId) {
|
||||
return API_ROOT + '/accounts/' + accountId + '/history';
|
||||
};
|
||||
var transfersUrl = exports.transfersUrl = function transfersUrl() {
|
||||
var transfers = exports.transfers = function transfers() {
|
||||
return API_ROOT + '/transfers';
|
||||
};
|
||||
|
||||
@@ -2680,7 +2682,6 @@ webpackJsonp([0,3],{
|
||||
var _this = this;
|
||||
|
||||
var initialDataFlat = _root2.default['JSON'].stringify(initialData);
|
||||
debugger;
|
||||
return new Promise(function (rs, rj) {
|
||||
setTimeout(function () {
|
||||
api.apiRetrieveAccounts(customerId).then(function (data) {
|
||||
@@ -2766,14 +2767,17 @@ webpackJsonp([0,3],{
|
||||
var deleteAccountComplete = exports.deleteAccountComplete = (0, _actions.makeActionCreator)(_ACTION_TYPES2.default.ACCOUNT.DELETE_COMPLETE);
|
||||
var deleteAccountError = exports.deleteAccountError = (0, _actions.makeActionCreator)(_ACTION_TYPES2.default.ACCOUNT.DELETE_ERROR);
|
||||
|
||||
function deleteAccount(customerId, accountId) {
|
||||
function deleteAccount(customerId, accountId, isRef) {
|
||||
return function (dispatch) {
|
||||
dispatch(deleteAccountRequested());
|
||||
return api.apiDeleteAccount(customerId, accountId).then(function (data) {
|
||||
|
||||
var deleteApiAction = isRef ? api.apiDeleteRefAccount(customerId, accountId) : api.apiDeleteAccount(customerId, accountId);
|
||||
|
||||
return deleteApiAction.then(function (data) {
|
||||
dispatch(deleteAccountComplete(data));
|
||||
return Promise.resolve(data);
|
||||
}).catch(function (err) {
|
||||
dispatch(deleteAccountError());
|
||||
dispatch(deleteAccountError(err));
|
||||
return Promise.reject(err);
|
||||
});
|
||||
};
|
||||
@@ -3746,14 +3750,17 @@ webpackJsonp([0,3],{
|
||||
}
|
||||
}, {
|
||||
key: "remove3rdPartyAccountModalConfirmed",
|
||||
value: function remove3rdPartyAccountModalConfirmed(accountId) {
|
||||
value: function remove3rdPartyAccountModalConfirmed(account) {
|
||||
var _this4 = this;
|
||||
|
||||
var accountId = account.id || account.accountId;
|
||||
var isRef = typeof account.balance == 'undefined';
|
||||
|
||||
var _props = this.props;
|
||||
var customerId = _props.customerId;
|
||||
var dispatch = _props.dispatch;
|
||||
|
||||
dispatch(A.deleteAccount(customerId, accountId)).then(function () {
|
||||
dispatch(A.deleteAccount(customerId, accountId, isRef)).then(function () {
|
||||
_this4.close();
|
||||
setTimeout(function () {
|
||||
return Promise.all([dispatch(AU.authenticate(true)), dispatch(A.fetchOwnAccounts(customerId))]);
|
||||
@@ -3812,7 +3819,7 @@ webpackJsonp([0,3],{
|
||||
_react2.default.createElement(
|
||||
"strong",
|
||||
null,
|
||||
error
|
||||
JSON.stringify(error.errors || error)
|
||||
)
|
||||
) : [];
|
||||
|
||||
@@ -5167,17 +5174,12 @@ webpackJsonp([0,3],{
|
||||
key: "handleAction",
|
||||
value: function handleAction(evt) {
|
||||
evt.preventDefault();
|
||||
var action = this.props.action;
|
||||
var account = this.props.account;
|
||||
|
||||
var _ref = account || {};
|
||||
|
||||
var id = _ref.id;
|
||||
var accountId = _ref.accountId;
|
||||
|
||||
var _props = this.props;
|
||||
var action = _props.action;
|
||||
var account = _props.account;
|
||||
|
||||
if (action) {
|
||||
action(id || accountId);
|
||||
action(account);
|
||||
}
|
||||
}
|
||||
}, {
|
||||
@@ -5185,13 +5187,13 @@ webpackJsonp([0,3],{
|
||||
value: function render() {
|
||||
var account = this.props.account;
|
||||
|
||||
var _ref2 = account || {};
|
||||
var _ref = account || {};
|
||||
|
||||
var titleRaw = _ref2.title;
|
||||
var descriptionRaw = _ref2.description;
|
||||
var balanceRaw = _ref2.balance;
|
||||
var id = _ref2.id;
|
||||
var accountId = _ref2.accountId;
|
||||
var titleRaw = _ref.title;
|
||||
var descriptionRaw = _ref.description;
|
||||
var balanceRaw = _ref.balance;
|
||||
var id = _ref.id;
|
||||
var accountId = _ref.accountId;
|
||||
|
||||
|
||||
var entityId = id || accountId;
|
||||
@@ -5576,18 +5578,6 @@ webpackJsonp([0,3],{
|
||||
this.ensureAccounts(nextProps);
|
||||
this.ensureTransfers(nextProps);
|
||||
}
|
||||
}, {
|
||||
key: "createAccountModal",
|
||||
value: function createAccountModal() {
|
||||
this.setState({
|
||||
showAccountModal: true
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "createAccountModalConfirmed",
|
||||
value: function createAccountModalConfirmed() {
|
||||
// debugger;
|
||||
}
|
||||
}, {
|
||||
key: "close",
|
||||
value: function close() {
|
||||
@@ -5720,7 +5710,7 @@ webpackJsonp([0,3],{
|
||||
null,
|
||||
_react2.default.createElement(
|
||||
_reactBootstrap.Button,
|
||||
{ bsStyle: "link", onClick: this.createAccountModal.bind(this) },
|
||||
{ bsStyle: "link", onClick: null, disabled: true },
|
||||
"Edit"
|
||||
)
|
||||
)
|
||||
@@ -5878,7 +5868,7 @@ webpackJsonp([0,3],{
|
||||
),
|
||||
_react2.default.createElement(_TransfersTable.TransfersTable, { forAccount: accountId, transfers: this.props.transfers[accountId] }),
|
||||
_react2.default.createElement(Modals.NewAccountModal, { show: showAccountModal,
|
||||
action: this.createAccountModalConfirmed.bind(this),
|
||||
action: null,
|
||||
account: { loading: true },
|
||||
onHide: this.close.bind(this),
|
||||
key: 0 })
|
||||
@@ -7125,4 +7115,4 @@ webpackJsonp([0,3],{
|
||||
/***/ }
|
||||
|
||||
});
|
||||
//# sourceMappingURL=app.30bd94eeaf3cbe7d3133.js.map
|
||||
//# sourceMappingURL=app.d2fd5066a9f7115b01b3.js.map
|
||||
1
js-frontend/build/app.d2fd5066a9f7115b01b3.js.map
Normal file
1
js-frontend/build/app.d2fd5066a9f7115b01b3.js.map
Normal file
File diff suppressed because one or more lines are too long
@@ -13,7 +13,7 @@
|
||||
|
||||
<!-- Optional theme -->
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/latest/css/bootstrap-theme.min.css"><link href="/style.b588c60da106277d78c8.css" rel="stylesheet"></head>
|
||||
<body><div id="root"></div><script src="/manifest.02fd442c32e31abaf744.js"></script><script src="/vendor.85781b28c9410377534e.js"></script><script src="/style.b588c60da106277d78c8.js"></script><script src="/app.30bd94eeaf3cbe7d3133.js"></script><script>
|
||||
<body><div id="root"></div><script src="/manifest.7e5f85c8a08963380597.js"></script><script src="/vendor.85781b28c9410377534e.js"></script><script src="/style.b588c60da106277d78c8.js"></script><script src="/app.d2fd5066a9f7115b01b3.js"></script><script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
@@ -27,5 +27,5 @@
|
||||
|
||||
ga('send', 'pageview');
|
||||
|
||||
</script><!--{"files":{"publicPath":"/","chunks":{"manifest":{"size":0,"entry":"/manifest.02fd442c32e31abaf744.js","hash":"02fd442c32e31abaf744","css":[]},"vendor":{"size":1654379,"entry":"/vendor.85781b28c9410377534e.js","hash":"85781b28c9410377534e","css":[]},"style":{"size":122,"entry":"/style.b588c60da106277d78c8.js","hash":"b588c60da106277d78c8","css":["/style.b588c60da106277d78c8.css"]},"app":{"size":349495,"entry":"/app.30bd94eeaf3cbe7d3133.js","hash":"30bd94eeaf3cbe7d3133","css":[]}},"js":["/manifest.02fd442c32e31abaf744.js","/vendor.85781b28c9410377534e.js","/style.b588c60da106277d78c8.js","/app.30bd94eeaf3cbe7d3133.js"],"css":["/style.b588c60da106277d78c8.css"]},"options":{"template":"/Users/andrew/dev/clients/ES/code/event-sourcing-examples/js-frontend/node_modules/html-webpack-plugin/lib/loader.js!/Users/andrew/dev/clients/ES/code/event-sourcing-examples/js-frontend/public/index.ejs","filename":"index.html","hash":false,"inject":false,"compile":true,"favicon":false,"minify":false,"cache":true,"showErrors":true,"chunks":"all","excludeChunks":[],"title":"Money Transfer App","xhtml":false,"description":"ES Money Transfer App","appMountId":"root","googleAnalytics":{"trackingId":"UA-XXXX-XX","pageViewOnLoad":true},"mobile":true}}--></body>
|
||||
</script><!--{"files":{"publicPath":"/","chunks":{"manifest":{"size":0,"entry":"/manifest.7e5f85c8a08963380597.js","hash":"7e5f85c8a08963380597","css":[]},"vendor":{"size":1654379,"entry":"/vendor.85781b28c9410377534e.js","hash":"85781b28c9410377534e","css":[]},"style":{"size":122,"entry":"/style.b588c60da106277d78c8.js","hash":"b588c60da106277d78c8","css":["/style.b588c60da106277d78c8.css"]},"app":{"size":349426,"entry":"/app.d2fd5066a9f7115b01b3.js","hash":"d2fd5066a9f7115b01b3","css":[]}},"js":["/manifest.7e5f85c8a08963380597.js","/vendor.85781b28c9410377534e.js","/style.b588c60da106277d78c8.js","/app.d2fd5066a9f7115b01b3.js"],"css":["/style.b588c60da106277d78c8.css"]},"options":{"template":"/Users/andrew/dev/clients/ES/code/event-sourcing-examples/js-frontend/node_modules/html-webpack-plugin/lib/loader.js!/Users/andrew/dev/clients/ES/code/event-sourcing-examples/js-frontend/public/index.ejs","filename":"index.html","hash":false,"inject":false,"compile":true,"favicon":false,"minify":false,"cache":true,"showErrors":true,"chunks":"all","excludeChunks":[],"title":"Money Transfer App","xhtml":false,"description":"ES Money Transfer App","appMountId":"root","googleAnalytics":{"trackingId":"UA-XXXX-XX","pageViewOnLoad":true},"mobile":true}}--></body>
|
||||
</html>
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
/******/ script.charset = 'utf-8';
|
||||
/******/ script.async = true;
|
||||
/******/
|
||||
/******/ script.src = __webpack_require__.p + "" + {"0":"30bd94eeaf3cbe7d3133","1":"b588c60da106277d78c8","2":"85781b28c9410377534e"}[chunkId] + ".js";
|
||||
/******/ script.src = __webpack_require__.p + "" + {"0":"d2fd5066a9f7115b01b3","1":"b588c60da106277d78c8","2":"85781b28c9410377534e"}[chunkId] + ".js";
|
||||
/******/ head.appendChild(script);
|
||||
/******/ }
|
||||
/******/ };
|
||||
@@ -92,4 +92,4 @@
|
||||
/******/ })
|
||||
/************************************************************************/
|
||||
/******/ ([]);
|
||||
//# sourceMappingURL=manifest.02fd442c32e31abaf744.js.map
|
||||
//# sourceMappingURL=manifest.7e5f85c8a08963380597.js.map
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"sources":["webpack:///webpack/bootstrap a170b0c0e7e1bb98aa38?"],"names":[],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAQ,oBAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAA+C,iFAAiF;AAChI;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA","file":"manifest.02fd442c32e31abaf744.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n \t\twhile(callbacks.length)\n \t\t\tcallbacks.shift().call(null, __webpack_require__);\n \t\tif(moreModules[0]) {\n \t\t\tinstalledModules[0] = 0;\n \t\t\treturn __webpack_require__(0);\n \t\t}\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// \"0\" means \"already loaded\"\n \t// Array means \"loading\", array contains callbacks\n \tvar installedChunks = {\n \t\t3:0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n \t\t// \"0\" is the signal for \"already loaded\"\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn callback.call(null, __webpack_require__);\n\n \t\t// an array means \"currently loading\".\n \t\tif(installedChunks[chunkId] !== undefined) {\n \t\t\tinstalledChunks[chunkId].push(callback);\n \t\t} else {\n \t\t\t// start chunk loading\n \t\t\tinstalledChunks[chunkId] = [callback];\n \t\t\tvar head = document.getElementsByTagName('head')[0];\n \t\t\tvar script = document.createElement('script');\n \t\t\tscript.type = 'text/javascript';\n \t\t\tscript.charset = 'utf-8';\n \t\t\tscript.async = true;\n\n \t\t\tscript.src = __webpack_require__.p + \"\" + {\"0\":\"30bd94eeaf3cbe7d3133\",\"1\":\"b588c60da106277d78c8\",\"2\":\"85781b28c9410377534e\"}[chunkId] + \".js\";\n \t\t\thead.appendChild(script);\n \t\t}\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap a170b0c0e7e1bb98aa38\n **/"],"sourceRoot":""}
|
||||
{"version":3,"sources":["webpack:///webpack/bootstrap b0451df0d1f510adc177?"],"names":[],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAQ,oBAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAA+C,iFAAiF;AAChI;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA","file":"manifest.7e5f85c8a08963380597.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n \t\twhile(callbacks.length)\n \t\t\tcallbacks.shift().call(null, __webpack_require__);\n \t\tif(moreModules[0]) {\n \t\t\tinstalledModules[0] = 0;\n \t\t\treturn __webpack_require__(0);\n \t\t}\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// \"0\" means \"already loaded\"\n \t// Array means \"loading\", array contains callbacks\n \tvar installedChunks = {\n \t\t3:0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n \t\t// \"0\" is the signal for \"already loaded\"\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn callback.call(null, __webpack_require__);\n\n \t\t// an array means \"currently loading\".\n \t\tif(installedChunks[chunkId] !== undefined) {\n \t\t\tinstalledChunks[chunkId].push(callback);\n \t\t} else {\n \t\t\t// start chunk loading\n \t\t\tinstalledChunks[chunkId] = [callback];\n \t\t\tvar head = document.getElementsByTagName('head')[0];\n \t\t\tvar script = document.createElement('script');\n \t\t\tscript.type = 'text/javascript';\n \t\t\tscript.charset = 'utf-8';\n \t\t\tscript.async = true;\n\n \t\t\tscript.src = __webpack_require__.p + \"\" + {\"0\":\"d2fd5066a9f7115b01b3\",\"1\":\"b588c60da106277d78c8\",\"2\":\"85781b28c9410377534e\"}[chunkId] + \".js\";\n \t\t\thead.appendChild(script);\n \t\t}\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap b0451df0d1f510adc177\n **/"],"sourceRoot":""}
|
||||
@@ -47,7 +47,6 @@ export function accountsList(customerId) {
|
||||
|
||||
function readUntilChanged(initialData, customerId) {
|
||||
const initialDataFlat = root['JSON'].stringify(initialData);
|
||||
debugger;
|
||||
return new Promise((rs, rj) => {
|
||||
setTimeout(() => {
|
||||
api.apiRetrieveAccounts(customerId)
|
||||
@@ -145,16 +144,21 @@ export const deleteAccountRequested = makeActionCreator(T.ACCOUNT.DELETE_START);
|
||||
export const deleteAccountComplete = makeActionCreator(T.ACCOUNT.DELETE_COMPLETE);
|
||||
export const deleteAccountError = makeActionCreator(T.ACCOUNT.DELETE_ERROR);
|
||||
|
||||
export function deleteAccount(customerId, accountId) {
|
||||
export function deleteAccount(customerId, accountId, isRef) {
|
||||
return dispatch => {
|
||||
dispatch(deleteAccountRequested());
|
||||
return api.apiDeleteAccount(customerId, accountId)
|
||||
|
||||
const deleteApiAction = (isRef ?
|
||||
api.apiDeleteRefAccount(customerId, accountId) :
|
||||
api.apiDeleteAccount(customerId, accountId));
|
||||
|
||||
return deleteApiAction
|
||||
.then(data => {
|
||||
dispatch(deleteAccountComplete(data));
|
||||
return Promise.resolve(data);
|
||||
})
|
||||
.catch(err => {
|
||||
dispatch(deleteAccountError());
|
||||
dispatch(deleteAccountError(err));
|
||||
return Promise.reject(err);
|
||||
})
|
||||
};
|
||||
|
||||
@@ -17,6 +17,7 @@ initialize().then(({ provider }) => {
|
||||
* Detect whether the server-side render has been discarded due to an invalid checksum.
|
||||
*/
|
||||
if (process.env.NODE_ENV !== "production") {
|
||||
const reactRoot = window.document.getElementById("root");
|
||||
if (!reactRoot.firstChild || !reactRoot.firstChild.attributes ||
|
||||
!reactRoot.firstChild.attributes["data-react-checksum"]) {
|
||||
console.error("Server-side React render was discarded. Make sure that your initial render does not contain any client-side code.");
|
||||
|
||||
@@ -30,17 +30,17 @@ const METHODS = {
|
||||
|
||||
const fetch = (...args) => authedFetch(...args).then(parseResponse);
|
||||
|
||||
export const apiSignIn = (body) => fetch(ENDPOINTS.emailSignInPath(), {
|
||||
export const apiSignIn = (body) => fetch(ENDPOINTS.emailSignIn(), {
|
||||
...METHODS.POST,
|
||||
body: root.JSON.stringify(body)
|
||||
});
|
||||
|
||||
export const apiSignUp = (body) => fetch(ENDPOINTS.emailSignUpUrl(), {
|
||||
export const apiSignUp = (body) => fetch(ENDPOINTS.emailSignUp(), {
|
||||
...METHODS.POST,
|
||||
body: root.JSON.stringify(body)
|
||||
});
|
||||
|
||||
export const apiGetCurrentUser = () => fetch(ENDPOINTS.currentUserPath(), {
|
||||
export const apiGetCurrentUser = () => fetch(ENDPOINTS.currentUser(), {
|
||||
...METHODS.GET
|
||||
});
|
||||
|
||||
@@ -57,7 +57,7 @@ export const apiCreateAccount = (customerId, {
|
||||
});
|
||||
|
||||
export const apiCreateRefAccount = (customerId, {
|
||||
owner, account: accountId, title, description }) => fetch(ENDPOINTS.toAccounts(customerId), {
|
||||
owner, account: accountId, title, description }) => fetch(ENDPOINTS.refAccounts(customerId), {
|
||||
...METHODS.POST,
|
||||
body: root.JSON.stringify({
|
||||
owner,
|
||||
@@ -67,7 +67,7 @@ export const apiCreateRefAccount = (customerId, {
|
||||
});
|
||||
|
||||
export const apiMakeTransfer = (fromAccountId, {
|
||||
account, amount, description }) => fetch(ENDPOINTS.transfersUrl(), {
|
||||
account, amount, description }) => fetch(ENDPOINTS.transfers(), {
|
||||
...METHODS.POST,
|
||||
body: root.JSON.stringify({
|
||||
amount,
|
||||
@@ -89,7 +89,11 @@ export const apiRetrieveAccount = (accountId) => fetch(ENDPOINTS.account(account
|
||||
...METHODS.GET
|
||||
});
|
||||
|
||||
export const apiDeleteAccount = (customerId, accountId) => fetch(ENDPOINTS.customersAccount(customerId, accountId), {
|
||||
export const apiDeleteAccount = (customerId, accountId) => fetch(ENDPOINTS.account(accountId), {
|
||||
...METHODS.DELETE
|
||||
});
|
||||
|
||||
export const apiDeleteRefAccount = (customerId, accountId) => fetch(ENDPOINTS.refAccount(customerId, accountId), {
|
||||
...METHODS.DELETE
|
||||
});
|
||||
|
||||
|
||||
@@ -3,19 +3,20 @@
|
||||
*/
|
||||
const API_ROOT = '/api';
|
||||
|
||||
export const emailSignInPath = () => API_ROOT + '/login';
|
||||
export const emailSignUpUrl = () => API_ROOT + '/customers';
|
||||
export const customersPath = () => API_ROOT + '/customers';
|
||||
export const currentUserPath = () => API_ROOT + '/user';
|
||||
export const emailSignIn = () => API_ROOT + '/login';
|
||||
export const emailSignUp = () => API_ROOT + '/customers';
|
||||
export const currentUser = () => API_ROOT + '/user';
|
||||
export const accountsPath = () => API_ROOT + '/accounts';
|
||||
export const customersLookup = (lookup) => `${API_ROOT}/customers?${ makeQuery(lookup) }`;
|
||||
export const customersAccounts = (customerId) => `${API_ROOT}/customers/${customerId}/accounts`;
|
||||
export const customersAccount = (customerId, accountId) => `${API_ROOT}/customers/${customerId}/accounts/${accountId}`;
|
||||
export const toAccounts = (customerId) => `${API_ROOT}/customers/${customerId}/toaccounts`;
|
||||
export const refAccounts = (customerId) => `${API_ROOT}/customers/${customerId}/toaccounts`;
|
||||
export const refAccount = (customerId, accountId) => `${API_ROOT}/customers/${customerId}/toaccounts/${accountId}`;
|
||||
export const account = (accountId) => `${API_ROOT}/accounts/${accountId}`;
|
||||
export const history = (accountId) => `${API_ROOT}/accounts/${accountId}/history`;
|
||||
export const transfersUrl = () => API_ROOT + '/transfers';
|
||||
export const transfers = () => API_ROOT + '/transfers';
|
||||
|
||||
function makeQuery(params) {
|
||||
return Object.keys(params).map(key => [encodeURIComponent(key), encodeURIComponent(params[key])].join('=')).join('&');
|
||||
return Object.keys(params)
|
||||
.map(key => [ encodeURIComponent(key), encodeURIComponent(params[key]) ].join('='))
|
||||
.join('&');
|
||||
}
|
||||
|
||||
@@ -105,16 +105,6 @@ export class Account extends React.Component {
|
||||
this.ensureTransfers(nextProps);
|
||||
}
|
||||
|
||||
createAccountModal() {
|
||||
this.setState({
|
||||
showAccountModal: true
|
||||
});
|
||||
}
|
||||
|
||||
createAccountModalConfirmed() {
|
||||
// debugger;
|
||||
}
|
||||
|
||||
|
||||
close() {
|
||||
this.setState({
|
||||
@@ -201,7 +191,7 @@ export class Account extends React.Component {
|
||||
Account
|
||||
<Nav pullRight={true}>
|
||||
<ButtonGroup>
|
||||
<Button bsStyle={"link"} onClick={this.createAccountModal.bind(this)}>Edit</Button>
|
||||
<Button bsStyle="link" onClick={ null } disabled={true}>Edit</Button>
|
||||
</ButtonGroup>
|
||||
</Nav>
|
||||
</PageHeader>
|
||||
@@ -288,7 +278,7 @@ export class Account extends React.Component {
|
||||
<TransfersTable forAccount={accountId} transfers={ this.props.transfers[accountId] } />
|
||||
|
||||
<Modals.NewAccountModal show={showAccountModal}
|
||||
action={this.createAccountModalConfirmed.bind(this)}
|
||||
action={ null }
|
||||
account={{ loading: true }}
|
||||
onHide={this.close.bind(this)}
|
||||
key={0} />
|
||||
|
||||
@@ -101,9 +101,12 @@ class MyAccounts extends React.Component {
|
||||
});
|
||||
}
|
||||
|
||||
remove3rdPartyAccountModalConfirmed(accountId) {
|
||||
remove3rdPartyAccountModalConfirmed(account) {
|
||||
const accountId = account.id || account.accountId;
|
||||
const isRef = typeof account.balance == 'undefined';
|
||||
|
||||
const { customerId, dispatch } = this.props;
|
||||
dispatch(A.deleteAccount(customerId, accountId))
|
||||
dispatch(A.deleteAccount(customerId, accountId, isRef))
|
||||
.then(() => {
|
||||
this.close();
|
||||
setTimeout(() => {
|
||||
@@ -160,7 +163,7 @@ class MyAccounts extends React.Component {
|
||||
const { accountToRemove = null} = this.state;
|
||||
|
||||
const { error } = this.props;
|
||||
const errorLine = error ? (<BS.Panel bsStyle="danger"><strong>{ error }</strong></BS.Panel>) : [];
|
||||
const errorLine = error ? (<BS.Panel bsStyle="danger"><strong>{ JSON.stringify(error.errors || error) }</strong></BS.Panel>) : [];
|
||||
|
||||
const ownAccountsData = this.props.app.accounts.own || [];
|
||||
|
||||
|
||||
@@ -15,15 +15,9 @@ export class RemoveAccountBookmarkModal extends React.Component {
|
||||
|
||||
handleAction(evt) {
|
||||
evt.preventDefault();
|
||||
const { action } = this.props;
|
||||
const { account } = this.props;
|
||||
const {
|
||||
id,
|
||||
accountId
|
||||
} = account || {};
|
||||
|
||||
const { action, account } = this.props;
|
||||
if (action) {
|
||||
action(id || accountId);
|
||||
action(account);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user