net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.customers.CustomerController.createCustomer(net.chrisrichardson.eventstore.javaexamples.banking.common.customers.CustomerInfo), with 3 error(s): [Field error in object 'customerInfo' on field 'ssn': rejected value [null]; codes [NotNull.customerInfo.ssn,NotNull.ssn,NotNull.java.lang.String,NotNull]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [customerInfo.ssn,ssn]; arguments []; default message [ssn]]; default message [may not be null]] [Field error in object 'customerInfo' on field 'email': rejected value [null]; codes [NotNull.customerInfo.email,NotNull.email,NotNull.java.lang.String,NotNull]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [customerInfo.email,email]; arguments []; default message [email]]; default message [may not be null]] [Field error in object 'customerInfo' on field 'phoneNumber': rejected value [null]; codes [NotNull.customerInfo.phoneNumber,NotNull.phoneNumber,NotNull.java.lang.String,NotNull]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [customerInfo.phoneNumber,phoneNumber]; arguments []; default message [phoneNumber]]; default message [may not be null]] \"\n //path: \"/customers\"\n //status: 400\n //timestamp: 1458002123103\n\n return json.then(({ message, ...rest }) => {\n if (!message) {\n return rest;\n }\n const jvmPattern = /\\[Field error in object '\\w+' on field '(\\w+)'/gm;\n let errors = {};\n message.replace(jvmPattern, (m, name) => {\n errors[name] = ['Required'];\n });\n\n if (Object.keys(errors).length) {\n return { errors };\n }\n return { errors: message };\n }).then(err => Promise.reject(err));\n }\n}\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/handleFetchResponse.js\n **/","/**\n * Created by andrew on 27/02/16.\n */\nimport T from '../constants/ACTION_TYPES';\nimport { makeActionCreator } from '../utils/actions';\nimport * as api from '../utils/api';\nimport { authenticate } from './authenticate';\nimport root from '../utils/root';\n\nexport const entityRequested = makeActionCreator(T.ENTITIES.REQUESTED, 'id');\nexport const entityReceived = makeActionCreator(T.ENTITIES.RECEIVED, 'id', 'entity');\n\nexport const accountsListRequested = makeActionCreator(T.ACCOUNTS.LIST_START);\nexport const accountsListReceived = makeActionCreator(T.ACCOUNTS.LIST_COMPLETE, 'payload');\nexport const accountsListError = makeActionCreator(T.ACCOUNTS.LIST_ERROR, 'error');\n\nexport const accountsRefListReceived = makeActionCreator(T.ACCOUNTS.LIST_REF_COMPLETE, 'payload');\n\nexport const accountCreateStart = makeActionCreator(T.ACCOUNTS.CREATE_START);\nexport const accountCreateComplete = makeActionCreator(T.ACCOUNTS.CREATE_COMPLETE, 'payload');\nexport const accountCreateError = makeActionCreator(T.ACCOUNTS.CREATE_ERROR, 'error');\nexport const accountCreateFormUpdate = makeActionCreator(T.ACCOUNTS.CREATE_FORM_UPDATE, 'key', 'value');\n\nexport const accountRefCreateStart = makeActionCreator(T.ACCOUNTS.CREATE_REF_START);\nexport const accountRefCreateComplete = makeActionCreator(T.ACCOUNTS.CREATE_REF_COMPLETE, 'payload');\nexport const accountRefCreateError = makeActionCreator(T.ACCOUNTS.CREATE_REF_ERROR, 'error');\nexport const accountRefCreateFormUpdate = makeActionCreator(T.ACCOUNTS.CREATE_REF_FORM_UPDATE, 'key', 'value');\n\nexport const accountRequested = makeActionCreator(T.ACCOUNT.SINGLE_START, 'id');\nexport const accountComplete = makeActionCreator(T.ACCOUNT.SINGLE_COMPLETE, 'id', 'payload');\nexport const accountError = makeActionCreator(T.ACCOUNT.SINGLE_ERROR, 'id', 'error');\n\n\nexport function accountsList(customerId) {\n return dispatch => {\n dispatch(accountsListRequested());\n return api.apiRetrieveAccounts(customerId)\n .then(({ accounts = []}) => {\n dispatch(accountsListReceived(accounts));\n })\n .catch(err => {\n dispatch(accountsListError(err));\n return Promise.resolve({ error: err });\n })\n };\n}\n\nfunction readUntilChanged(initialData, promisedFn, leftCalls) {\n if (!leftCalls) {\n return Promise.reject('Data not changed')\n }\n const initialDataFlat = root['JSON'].stringify(initialData);\n return new Promise((rs, rj) => {\n setTimeout(() => {\n promisedFn()\n .then(data => {\n debugger;\n if (initialDataFlat == root['JSON'].stringify(data)) {\n return readUntilChanged.call(this, data, promisedFn, leftCalls - 1).then(rs, rj); // Promise\n }\n rs(data);\n })\n .catch(rj)\n }, 500 * Math.pow(2, 4 - leftCalls));\n })\n}\n\nexport function accountCreate(customerId, payload) {\n return dispatch => {\n dispatch(accountCreateStart());\n return api.apiCreateAccount(customerId, payload)\n .then(data => {\n if (data.accountId) {\n const { accountId } = data;\n dispatch(accountCreateComplete({\n id: accountId,\n ...payload\n }));\n // dispatch(entityReceived(accountId, payload));\n dispatch(authenticate(true));\n return accountId;\n } else {\n return readUntilChanged(data, () => api.apiRetrieveAccounts(customerId), 4)\n .then(() => {\n debugger;\n dispatch(accountCreateComplete({\n id: ''\n }));\n dispatch(authenticate(true));\n });\n }\n })\n .catch(err => {\n debugger;\n dispatch(accountCreateError(err));\n // return Promise.resolve({ error: err });\n });\n };\n}\n\nexport function accountRefCreate(customerId, payload) {\n return dispatch => {\n dispatch(accountRefCreateStart());\n return api.apiCreateRefAccount(customerId, payload)\n .then(({ id }) => {\n dispatch(accountRefCreateComplete({\n ...payload,\n id\n }));\n dispatch(entityReceived(id, payload));\n return dispatch(authenticate(true));\n })\n .catch(err => {\n debugger;\n dispatch(accountRefCreateError(err));\n return Promise.resolve({ error: err });\n })\n };\n}\n\n\n\n\nexport function fetchOwnAccounts(customerId) {\n return dispatch => {\n //dispatch(accountsListRequested());\n return api.apiRetrieveAccounts(customerId)\n .then(data => {\n dispatch(accountsListReceived(data.accounts));\n });\n };\n}\n\nexport function fetchAccount(accountId) {\n return dispatch => {\n dispatch(accountRequested(accountId));\n return api.apiRetrieveAccount(accountId)\n .then(data => {\n dispatch(accountComplete(accountId, data));\n })\n .catch(err => {\n dispatch(accountError(accountId, err));\n });\n };\n}\n\nexport const deleteAccountRequested = makeActionCreator(T.ACCOUNT.DELETE_START);\nexport const deleteAccountComplete = makeActionCreator(T.ACCOUNT.DELETE_COMPLETE);\nexport const deleteAccountError = makeActionCreator(T.ACCOUNT.DELETE_ERROR);\n\nexport function deleteAccount(customerId, accountId, isRef) {\n return dispatch => {\n dispatch(deleteAccountRequested());\n\n const deleteApiAction = (isRef ?\n api.apiDeleteRefAccount(customerId, accountId) :\n api.apiDeleteAccount(customerId, accountId));\n\n return deleteApiAction\n .then(data => {\n dispatch(deleteAccountComplete(data));\n return Promise.resolve(data);\n })\n .catch(err => {\n dispatch(deleteAccountError(err));\n return Promise.reject(err);\n })\n };\n}\n\nexport const errorMessageStart = makeActionCreator(T.ERROR.START, 'payload');\nexport const errorMessageStop = makeActionCreator(T.ERROR.STOP);\n\nexport function errorMessageTimedOut(error, timeout) {\n return dispatch => {\n dispatch(errorMessageStart(error));\n setTimeout(() => {\n dispatch(errorMessageStop());\n }, timeout || 5000);\n };\n}\n\nexport const createRefOwnerLookupStart = makeActionCreator(T.ACCOUNTS.CREATE_REF_OWNER_LOOKUP_START, 'payload');\nexport const createRefOwnerLookupComplete = makeActionCreator(T.ACCOUNTS.CREATE_REF_OWNER_LOOKUP_COMPLETE, 'payload');\n\nexport const createRefAccountLookupStart = makeActionCreator(T.ACCOUNTS.CREATE_REF_ACCOUNT_LOOKUP_START, 'payload');\nexport const createRefAccountLookupComplete = makeActionCreator(T.ACCOUNTS.CREATE_REF_ACCOUNT_LOOKUP_COMPLETE, 'payload');\n\nexport const createRefOwnerLookup = lookup => {\n return dispatch => {\n dispatch(createRefOwnerLookupStart(lookup));\n return api.apiRetrieveUsers(lookup)\n .then(data => {\n\n const { customers = [] } = data || {};\n\n const arr = customers.map(c => {\n const { id, name, email } = c;\n const fullName = ([name.firstName, name.lastName]).filter(i => i).join(' ');\n const label = email ? `${ fullName } (${ email })` : fullName;\n return {\n value: id,\n label\n };\n });\n dispatch(createRefOwnerLookupComplete(arr));\n return { options: arr };\n })\n .catch(err => {\n dispatch(createRefOwnerLookupComplete([]));\n return { options: [] };\n });\n };\n};\n\nexport const createRefAccountLookup = customerId => {\n return dispatch => {\n dispatch(createRefAccountLookupStart(customerId));\n return api.apiRetrieveAccounts(customerId)\n .then(({ accounts }) => {\n const arr = accounts.map(({ accountId, title }) => ({\n value: accountId,\n label: title\n }));\n dispatch(createRefAccountLookupComplete(arr));\n return { options: arr };\n })\n .catch(err => {\n dispatch(createRefAccountLookupComplete([]));\n return { options: [] };\n });\n };\n};\n\n\nexport const makeTransferRequested = makeActionCreator(T.TRANSFERS.MAKE_START);\nexport const makeTransferComplete = makeActionCreator(T.TRANSFERS.MAKE_COMPLETE, 'payload');\nexport const makeTransferError = makeActionCreator(T.TRANSFERS.MAKE_ERROR, 'error');\nexport const makeTransferFormUpdate = makeActionCreator(T.TRANSFERS.MAKE_FORM_UPDATE, 'key', 'value');\n\nexport const makeTransfer = (accountId, payload) => {\n return dispatch => {\n dispatch(makeTransferRequested());\n return api.apiMakeTransfer(accountId, payload)\n .then(data => {\n const { moneyTransferId } = data;\n dispatch(makeTransferComplete(data));\n return moneyTransferId;\n })\n .catch(err => {\n dispatch(makeTransferError(err));\n return err;\n });\n };\n};\n\nexport const getTransfersRequested = makeActionCreator(T.TRANSFERS.LIST_START, 'id');\nexport const getTransfersComplete = makeActionCreator(T.TRANSFERS.LIST_COMPLETE, 'id', 'payload');\nexport const getTransfersError = makeActionCreator(T.TRANSFERS.LIST_ERROR, 'id', 'error');\n\nexport const getTransfers = (accountId) => {\n return dispatch => {\n dispatch(getTransfersRequested(accountId));\n return api.apiRetrieveTransfers(accountId)\n .then(data => {\n dispatch(getTransfersComplete(accountId, data['transactionsHistory']));\n return data;\n })\n .catch(err => {\n dispatch(getTransfersError(accountId, err));\n return err;\n });\n };\n};\n\n\n/** WEBPACK FOOTER **\n ** ./src/actions/entities.js\n **/","/**\n * Created by andrew on 26/02/16.\n */\n\nimport * as C from \"./constants\";\nimport parseEndpointConfig from \"./parseEndpointConfig\";\nimport { setEndpointKeys } from \"../actions/configure\";\n\nimport {\n setCurrentSettings,\n getInitialEndpointKey,\n setDefaultEndpointKey,\n setCurrentEndpoint,\n setCurrentEndpointKey,\n retrieveData,\n destroySession\n} from \"./sessionStorage\";\n\nconst defaultSettings = {\n forceHardRedirect: false,\n storage: \"cookies\",\n cookieExpiry: 14,\n cookiePath: \"/\",\n initialCredentials: null,\n\n tokenFormat: {\n \"access-token\": \"{{ access-token }}\"\n }\n};\n\n\n// save session configuration\nexport function applyConfig({ dispatch, endpoint={}, settings={}, reset=false } = {}) {\n\n if (settings.currentLocation && settings.currentLocation.match(/blank=true/)) {\n return Promise.resolve({blank: true});\n }\n\n let currentEndpointKey;\n\n if (reset) {\n resetConfig();\n }\n\n if (settings.initialCredentials) {\n currentEndpointKey = settings.initialCredentials.currentEndpointKey;\n }\n\n setCurrentSettings({ ...defaultSettings, ...settings });\n\n const currentHeaders = retrieveData(C.SAVED_CREDS_KEY) || {};\n\n const accessToken = currentHeaders[\"access-token\"];\n\n //if (authRedirectHeaders && authRedirectHeaders[\"access-token\"]) {\n if (!accessToken) {\n destroySession();\n }\n\n\n let { defaultEndpointKey, currentEndpoint } = parseEndpointConfig(\n endpoint, getInitialEndpointKey()\n );\n\n if (!currentEndpointKey) {\n currentEndpointKey = defaultEndpointKey;\n }\n\n // persist default config key with session storage\n setDefaultEndpointKey(defaultEndpointKey);\n setCurrentEndpoint(currentEndpoint);\n\n dispatch(setEndpointKeys(\n Object.keys(currentEndpoint),\n currentEndpointKey,\n defaultEndpointKey));\n\n setCurrentEndpointKey(currentEndpointKey);\n\n return Promise.resolve();\n\n}\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/clientSettings.js\n **/","/**\n * Created by andrew on 26/02/16.\n */\nimport * as C from \"./constants\";\n\n// base endpoint that other endpoints extend from\nconst defaultEndpoint = {\n apiUrl: \"/api\",\n signOutPath: \"/auth/sign_out\",\n emailSignInPath: \"/auth/sign_in\",\n emailRegistrationPath: \"/auth\",\n accountUpdatePath: \"/auth\",\n accountDeletePath: \"/auth\",\n passwordResetPath: \"/auth/password\",\n passwordUpdatePath: \"/auth/password\",\n tokenValidationPath: \"/auth/validate_token\",\n\n authProviderPaths: {\n github: \"/auth/github\",\n facebook: \"/auth/facebook\",\n google: \"/auth/google_oauth2\"\n }\n};\n\nfunction getFirstObjectKey (obj) {\n for (var key in obj) {\n return key;\n }\n}\n\nexport default function parseEndpointConfig(endpoint, defaultEndpointKey = null) {\n // normalize so opts is always an array of objects\n if (endpoint.constructor !== Array) {\n // single config will always be called 'default' unless set\n // by previous session\n defaultEndpointKey = C.INITIAL_CONFIG_KEY;\n\n // config should look like {default: {...}}\n var defaultConfig = {};\n defaultConfig[defaultEndpointKey] = endpoint;\n\n // endpoint should look like [{default: {...}}]\n endpoint = [defaultConfig];\n }\n\n let currentEndpoint = {};\n\n // iterate over config items, extend each from defaults\n for (var i = 0; i < endpoint.length; i++) {\n var configName = getFirstObjectKey(endpoint[i]);\n\n // set first as default config\n if (!defaultEndpointKey) {\n defaultEndpointKey = configName;\n }\n\n // save config to `configs` hash\n currentEndpoint[configName] = {\n ...defaultEndpoint,\n ...endpoint[i][configName]\n };\n }\n\n return { defaultEndpointKey, currentEndpoint };\n}\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/parseEndpointConfig.js\n **/","/**\n * Created by andrew on 26/02/16.\n */\nimport T from '../constants/ACTION_TYPES';\nimport { makeActionCreator } from '../utils/actions';\n\nexport const visitLocation = makeActionCreator(T.LOCATION.ENTER, 'location');\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/actions/navigate.js\n **/","/**\n * Created by andrew on 21/02/16.\n */\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { pushState } from 'redux-router';\nimport read from '../utils/readProp';\n\nexport function requireAuthentication(Component) {\n\n class AuthComponent extends React.Component {\n\n checkRedirect(props) {\n if (!props.isAuthenticated) {\n // redirect to login and add next param so we can redirect again after login\n const redirectAfterLogin = props.location.pathname;\n props.dispatch(pushState(null, `/signin?next=${redirectAfterLogin}`));\n }\n }\n\n componentWillMount() {\n this.checkRedirect(this.props);\n }\n\n componentWillReceiveProps(nextProps) {\n this.checkRedirect(nextProps);\n }\n\n render() {\n\n const { isAuthenticated = false } = this.props;\n\n if (isAuthenticated) {\n // render the component that requires auth (passed to this wrapper)\n return (\n \n )\n }\n\n return (\n
No anonymous access!
\n );\n\n }\n }\n\n const mapStateToProps =\n (state) => {\n return ({\n isAuthenticated: read(state, 'app.auth.user.isSignedIn', false)\n })\n };\n\n return connect(mapStateToProps)(AuthComponent);\n\n}\n\n\n/** WEBPACK FOOTER **\n ** ./src/components/AuthComponent.js\n **/","/**\n * Created by andrew on 11/03/16.\n */\nexport default function read(src, path = '', defaultVal = null) {\n const [pathItem = null, ...rest] = path.split('.');\n\n if (pathItem === null ) {\n return src || defaultVal;\n } else if (rest.length === 0) {\n if (!src) { return defaultVal; }\n return src[pathItem] || defaultVal;\n }\n\n if (!src) { return defaultVal; }\n return read(src[pathItem], rest.join('.'), defaultVal);\n}\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/readProp.js\n **/","/**\n * Created by andrew on 17/02/16.\n */\nimport React, { PropTypes } from \"react\";\nimport { Grid, Col, Navbar, NavItem, Nav, NavbarBrand, Footer } from \"react-bootstrap\";\nimport { LinkContainer } from \"react-router-bootstrap\";\nimport HeaderLinks from '../HeaderLinks';\n\nexport class Container extends React.Component {\n static propTypes = {\n children: PropTypes.node\n };\n\n render () {\n return (\n \n
\n \n Money Transfer\n \n \n \n \n
\n \n\n
\n {this.props.children}\n \n\n
\n © 2016 Eventuate.io\n \n Terms | \n Policy | \n Contact | \n About\n \n \n
\n );\n }\n}\n\nexport default Container;\n\n\n/** WEBPACK FOOTER **\n ** ./src/components/partials/Container.js\n **/","/**\n * Created by andrew on 11/03/16.\n */\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { LinkContainer } from \"react-router-bootstrap\";\nimport * as BS from \"react-bootstrap\";\nimport read from '../utils/readProp';\nimport { signOut } from '../actions/signOut';\n\n\nexport class HeaderLinks extends React.Component {\n\n signOut(evt, key) {\n this.props.dispatch(signOut());\n }\n\n render() {\n\n let buttonSet = null;\n const isSignedIn = read(this.props.auth, 'user.isSignedIn', false);\n const { location } = this.props.router;\n const isRegister = location.pathname == '/register';\n const isLogin = location.pathname == '/signin';\n\n const condition = isSignedIn ? 2 : (isRegister ? 1 : 0);\n \n switch (condition) {\n case 0:\n buttonSet = (\n Register\n );\n break;\n case 1:\n buttonSet = (\n Log In\n );\n break;\n case 2:\n buttonSet = (Sign Out);\n break;\n }\n\n return (\n \n { buttonSet }\n \n );\n }\n}\n\nexport default connect(({\n //dispatch,\n router,\n app\n }) => ({\n //dispatch,\n router,\n auth: app.auth\n}))(HeaderLinks);\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/components/HeaderLinks.js\n **/","/**\n * Created by andrew on 11/03/16.\n */\nimport T from '../constants/ACTION_TYPES';\nimport { makeActionCreator } from '../utils/actions';\nimport { destroySession } from \"../utils/sessionStorage\";\n\nexport const signOutStart = makeActionCreator(T.AUTH.SIGN_OUT_START);\nexport const signOutComplete = makeActionCreator(T.AUTH.SIGN_OUT_COMPLETE);\n\nexport const signOut = () =>\n dispatch => {\n dispatch(signOutStart());\n\n destroySession();\n\n dispatch(signOutComplete());\n };\n\n\n/** WEBPACK FOOTER **\n ** ./src/actions/signOut.js\n **/","/**\n * Created by andrew on 17/02/16.\n */\nimport React from \"react\";\nimport { PageHeader, Col, Row, Nav, ButtonGroup, Button, Table } from \"react-bootstrap\";\nimport * as BS from \"react-bootstrap\";\nimport { connect } from \"react-redux\";\nimport AccountInfo from '../components/AccountInfo';\nimport * as M from './modals';\nimport IndexPanel from \"./../components/partials/IndexPanel\";\nimport * as A from '../actions/entities';\nimport * as AU from '../actions/authenticate';\nimport read from '../utils/readProp';\nimport { Money } from '../components/Money';\n\nconst resetModals = {\n showAccountModal: false,\n show3rdPartyAccountModal: false,\n showDeleteAccountModal: false\n};\n\nclass MyAccounts extends React.Component {\n\n constructor(...args) {\n super(...args);\n this.state = { ...resetModals };\n }\n\n componentWillMount() {\n const {\n id: customerId\n } = this.props.auth.user.attributes;\n this.props.dispatch(A.fetchOwnAccounts(customerId));\n }\n\n createAccountModal() {\n this.setState({\n showAccountModal: true\n });\n }\n\n createAccountModalConfirmed(payload) {\n\n const {\n id: customerId\n } = this.props.auth.user.attributes;\n\n this.props.dispatch(A.accountCreate(customerId, payload))\n .then((accountId) => {\n this.close();\n // return new Promise((rs, rj) => {\n setTimeout(() => {\n this.props.dispatch(A.fetchOwnAccounts(customerId)); //.then(rs, rj);\n }, 1500);\n // });\n })\n .catch(err => {\n // debugger;\n this.props.dispatch(A.accountCreateError(err));\n });\n }\n\n create3rdPartyAccountModal() {\n this.setState({\n show3rdPartyAccountModal: true\n });\n }\n\n create3rdPartyAccountModalConfirmed(payload) {\n const {\n id: customerId\n } = this.props.auth.user.attributes;\n\n const {\n dispatch\n } = this.props;\n\n dispatch(A.accountRefCreate(customerId, payload))\n .then(() => {\n this.close();\n return new Promise((rs, rj) => {\n setTimeout(() => {\n Promise.all([\n dispatch(AU.authenticate(true)),\n dispatch(A.fetchOwnAccounts(customerId))\n ]).then(rs, rj);\n }, 1500);\n })\n })\n .catch(err => {\n // debugger;\n this.props.dispatch(A.accountRefCreateError(err));\n });\n }\n\n remove3rdPartyAccountModal(accountId, evt) {\n const account = this.props.app.entities[accountId];\n this.setState({\n accountToRemove: account,\n showDeleteAccountModal: true\n });\n }\n\n remove3rdPartyAccountModalConfirmed(account) {\n const accountId = account.id || account.accountId;\n const isRef = typeof account.balance == 'undefined';\n\n const { customerId, dispatch } = this.props;\n dispatch(A.deleteAccount(customerId, accountId, isRef))\n .then(() => {\n this.close();\n setTimeout(() => {\n return Promise.all([\n dispatch(AU.authenticate(true)),\n dispatch(A.fetchOwnAccounts(customerId))\n ]);\n }, 1500);\n },\n err => {\n dispatch(A.errorMessageTimedOut(err && err.message || err));\n this.close();\n });\n }\n\n close() {\n this.setState({\n ...resetModals\n });\n }\n\n render () {\n\n //const deployTooltip = (\n // Create a new instance of this demo on your own Heroku server.\n //);\n const user = this.props.auth.user.attributes;\n const {\n id: customerId,\n email = '',\n ssn = '',\n name = {},\n phoneNumber = '',\n address,\n toAccounts\n } = user;\n\n const firstName = name.firstName || '';\n const lastName = name.lastName || '';\n\n const {\n city,\n state,\n street1,\n street2,\n zipCode\n } = address;\n\n const {\n showAccountModal,\n show3rdPartyAccountModal,\n showDeleteAccountModal } = this.state;\n\n const { accountToRemove = null} = this.state;\n\n const { error } = this.props;\n const errorLine = error ? ({ JSON.stringify(error.errors || error) }) : [];\n\n const ownAccountsData = this.props.app.accounts.own || [];\n\n //accountId: \"000001537c2cf075-a250093f26850000\"\n //balance: 0\n //description: null\n //title: \"Sample\"\n\n const ownAccounts = ownAccountsData.map(({\n accountId, balance, description = '', title\n }, idx) => (\n \n {\n (description) ? [\n ( ),\n { description }\n ]: null\n } | \n | \n | \n
\n ));\n\n const refAccountsData = this.props.app.accounts.other || [];\n const refAccounts = refAccountsData.map(({\n title,\n description = '',\n id\n }, idx) => (\n \n {\n (description) ? [\n ( ),\n { description }\n ]: null\n }\n | \n | \n \n | \n
\n ));\n\n const accounts = (!!(ownAccounts.length + refAccounts.length)) ? [].concat(ownAccounts, refAccounts) : (\n | No account exists: or | \n
);\n\n return (\n \n
\n My Accounts\n \n \n\n { errorLine }\n\n
\n \n\n \n Customer:\n { `${firstName} ${lastName}` }\n
\n\n \n Email:\n { email }\n
\n\n \n Phone:\n { phoneNumber }\n
\n\n \n SSN:\n { ssn }\n
\n\n\n \n\n
\n\n
\n \n \n | Account Title | \n Balance | \n | \n
\n \n \n { accounts }\n \n
\n\n\n
\n\n
\n\n
\n\n
\n );\n }\n}\n\nexport default connect(({ app }) => {\n return ({\n auth: app.auth,\n app: app.data,\n customerId: read(app, 'auth.user.isSignedIn', false) ? read(app, 'auth.user.attributes.id', null): null,\n error: app.ui.error\n })\n})(MyAccounts);\n\n\n/** WEBPACK FOOTER **\n ** ./src/views/MyAccounts.js\n **/","/**\n * Created by andrew on 3/22/16.\n */\nimport React from \"react\";\nimport { connect } from 'react-redux';\nimport Spinner from \"react-loader\";\nimport * as BS from \"react-bootstrap\";\nimport * as A from '../actions/entities';\nimport read from '../utils/readProp';\nimport { Route, IndexRoute, Link, IndexLink } from \"react-router\";\n\nexport class AccountInfo extends React.Component {\n componentWillMount() {\n this.ensureData(this.props);\n }\n\n componentWillReceiveProps(nextProps) {\n this.ensureData(nextProps);\n }\n\n ensureData({ dispatch, entities, accountId }) {\n if (entities[accountId]) {\n return;\n }\n dispatch(A.fetchAccount(accountId));\n }\n\n render() {\n const { entities, accountId, customerId } = this.props;\n\n const account = entities[accountId];\n\n if (!account || !accountId) {\n return (Loading..
);\n }\n\n const { errors } = account;\n if (errors) {\n return ({ errors }
);\n }\n\n const { title, owner } = account;\n\n if ((typeof owner !== 'undefined') && (customerId !== owner)) {\n return ({ title });\n } else {\n return ({ title });\n }\n }\n}\n\nexport default connect(({ app }) => ({\n entities: app.data.entities,\n customerId: read(app, 'auth.user.isSignedIn', false) ? read(app, 'auth.user.attributes.id', null): null,\n}))(AccountInfo);\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/components/AccountInfo.js\n **/","/**\n * Created by andrew on 20/02/16.\n */\nexport { default as Add3rdPartyAccountModal } from './Add3rdPartyAccountModal';\nexport { default as NewAccountModal } from './NewAccountModal';\nexport { default as RemoveAccountBookmarkModal } from './RemoveAccountModal';\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/views/modals/index.js\n **/","/**\n * Created by andrew on 20/02/16.\n */\nimport React from \"react\";\n// import { PageHeader, OverlayTrigger, Modal, Tooltip, Grid, Col, Row, Nav, NavItem, ButtonGroup, Button, Table } from \"react-bootstrap\";\nimport * as BS from \"react-bootstrap\";\nimport ButtonLoader from \"../../controls/bootstrap/ButtonLoader\";\nimport Input from \"../../controls/bootstrap/Input\";\nimport AuxErrorLabel from \"../../controls/bootstrap/AuxErrorLabel\";\nimport read from '../../utils/readProp';\n\nimport { Link, IndexLink} from \"react-router\";\nimport { connect } from \"react-redux\";\nimport Select from \"react-select\";\n\nimport * as A from '../../actions/entities';\n\nconst formValidation = (payload) => ['owner', 'account', 'title', 'description'].reduce((memo, prop) => {\n let result = [];\n const value = (payload[prop] || '').replace(/(^\\s+)|(\\s+$)/g, '');\n\n switch (prop) {\n case 'owner':\n case 'account':\n case 'title':\n if (/^$/.test(value)) {\n result.push('required');\n }\n }\n\n switch (prop) {\n case 'description':\n if (value.length > 400) {\n result.push('need to less than 400 symbols long');\n }\n }\n\n if (result.length) {\n memo[prop] = result;\n memo.hasErrors = true;\n }\n return memo;\n}, {});\n\n\nexport class Add3rdPartyAccountModal extends React.Component {\n\n handleInput(key, value) {\n this.props.dispatch(A.accountRefCreateFormUpdate(key, value));\n switch(key) {\n case 'owner':\n if (value) {\n this.props.dispatch(A.createRefAccountLookup(value));\n } else {\n this.props.dispatch(A.createRefAccountLookupComplete([]));\n }\n }\n }\n\n handleSubmit(evt) {\n evt.preventDefault();\n\n const payload = { ...this.props.data.form };\n\n const validationErrors = formValidation(payload);\n if (validationErrors.hasErrors) {\n this.props.dispatch(A.accountRefCreateError(validationErrors));\n return;\n }\n\n const { action } = this.props;\n\n if (action) {\n action(payload);\n }\n }\n\n onHide() {\n this.props.dispatch(A.accountRefCreateComplete({}));\n if (this.props.onHide) {\n this.props.onHide();\n }\n }\n\n getOwnersOptions(input) {\n if (!input) {\n return Promise.resolve({ options: [] });\n }\n return this.props.dispatch(A.createRefOwnerLookup(input));\n }\n\n render() {\n const disabled = read(this.props.data, 'loading', false);\n\n const ownersLoading = read(this.props.data, 'ownersLookup.loading', false);\n\n const formErrors = read(this.props.data, 'errors.errors', '');\n\n return (\n \n \n Add 3rd Party Account\n \n \n \n \n \n Cancel\n }\n disabled={disabled}\n onClick={this.handleSubmit.bind(this)}>\n Add\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ app }) => ({\n ui: app.ui.bookmarkAccount,\n data: app.data.bookmarkAccount\n});\n\nexport default connect(mapStateToProps)(Add3rdPartyAccountModal);\n\n\n/** WEBPACK FOOTER **\n ** ./src/views/modals/Add3rdPartyAccountModal.js\n **/","/**\n * Created by andrew on 15/02/16.\n */\nimport React, { PropTypes } from \"react\";\nimport { Button, Glyphicon } from \"react-bootstrap\";\nimport Spinner from \"react-loader\";\n\nclass ButtonLoader extends React.Component {\n static propTypes = {\n icon: PropTypes.node,\n loading: PropTypes.bool,\n spinConfig: PropTypes.object,\n spinColorDark: PropTypes.string,\n spinColorLight: PropTypes.string,\n children: PropTypes.node,\n onClick: PropTypes.func.isRequired,\n style: PropTypes.object\n };\n\n static defaultProps = {\n icon: ,\n loading: false,\n spinConfig: {\n lines: 10,\n length: 4,\n width: 2,\n radius: 3\n },\n spinColorDark: \"#444\",\n spinColorLight: \"#fff\",\n children: Submit,\n style: {}\n };\n\n renderIcon () {\n let icon;\n\n if (this.props.loading) {\n let spinColor = (!this.props.bsStyle || this.props.bsStyle === \"default\")\n ? this.props.spinColorDark\n : this.props.spinColorLight;\n\n icon = ;\n } else {\n icon = this.props.icon;\n }\n\n return (\n \n {icon}\n
\n );\n }\n\n render () {\n return (\n \n );\n }\n}\n\nexport default ButtonLoader;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/controls/bootstrap/ButtonLoader.js\n **/","/**\n * Created by andrew on 15/02/16.\n */\nimport React, { PropTypes } from \"react\";\nimport { Input, Glyphicon } from \"react-bootstrap\";\n\nclass AuthInput extends React.Component {\n static propTypes = {\n label: PropTypes.string,\n value: PropTypes.string,\n errors: PropTypes.array\n };\n\n static defaultProps = {\n label: '',\n value: null,\n errors: []\n };\n\n handleInput (ev) {\n this.props.onChange(ev.target.value);\n }\n\n renderErrorList () {\n\n if (this.props.errors.length) {\n return (\n \n {this.props.errors.map((err, i) => {\n return (\n
\n\n {this.props.label} {err}\n
\n );\n })}\n
\n );\n } else {\n return ;\n }\n }\n\n render () {\n return (\n \n \n {this.renderErrorList()}\n
\n );\n }\n}\n\nexport default AuthInput;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/controls/bootstrap/Input.js\n **/","/**\n * Created by andrew on 15/02/16.\n */\nimport React, { PropTypes } from \"react\";\nimport { Glyphicon } from \"react-bootstrap\";\n\nclass AuxErrorLabel extends React.Component {\n\n static propTypes = {\n label: PropTypes.string,\n errors: PropTypes.array\n };\n\n static defaultProps = {\n label: '',\n errors: []\n };\n \n render () {\n const { errors } = this.props;\n\n if (errors.length) {\n return (\n \n { errors.map((err, i) => {\n return (\n
\n\n {this.props.label} {err}\n
\n );\n })}\n
\n );\n } else {\n return ;\n }\n }\n}\n\nexport default AuxErrorLabel;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/controls/bootstrap/AuxErrorLabel.js\n **/","/**\n * Created by andrew on 20/02/16.\n */\nimport React, { PropTypes } from \"react\";\nimport { connect } from \"react-redux\";\n\nimport * as BS from \"react-bootstrap\";\nimport Input from \"../../controls/bootstrap/Input\";\nimport ButtonLoader from \"../../controls/bootstrap/ButtonLoader\";\n//import { PageHeader, OverlayTrigger, Modal, Tooltip, Grid, Col, Row, Nav, NavItem, ButtonGroup, Button, Table } from \"react-bootstrap\";\n\nimport { Link, IndexLink} from \"react-router\";\nimport read from '../../utils/readProp';\n\nimport { accountCreateFormUpdate, accountCreateError } from '../../actions/entities';\n\nconst formValidation = (payload) => ['title', 'balance', 'description'].reduce((memo, prop) => {\n let result = [];\n const value = (payload[prop] || '').replace(/(^\\s+)|(\\s+$)/g, '');\n\n switch (prop) {\n case 'title':\n case 'balance':\n if (/^$/.test(value)) {\n result.push('required');\n }\n }\n\n switch (prop) {\n case 'balance':\n if (!/\\d+/.test(value)) {\n result.push('need to be a number');\n }\n }\n\n switch (prop) {\n case 'description':\n if (value.length > 400) {\n result.push('need to less than 400 symbols long');\n }\n\n }\n if (result.length) {\n memo[prop] = result;\n memo.hasErrors = true;\n }\n return memo;\n}, {});\n\nexport class NewAccountModal extends React.Component {\n\n static propTypes = {\n action: PropTypes.func,\n account: PropTypes.object.isRequired\n };\n \n handleSubmit(event) {\n event.preventDefault();\n\n const payload = { ...this.props.account.form };\n\n const validationErrors = formValidation(payload);\n if (validationErrors.hasErrors) {\n this.props.dispatch(accountCreateError(validationErrors));\n return;\n }\n\n const { action } = this.props;\n\n if (action) {\n action(payload);\n }\n }\n\n handleInput(key, val) {\n this.props.dispatch(accountCreateFormUpdate(key, val));\n }\n\n render() {\n\n const disabled = (\n this.props.account.loading\n );\n\n const actionLabel = 'Create';\n\n return (\n \n New Account\n \n \n \n\n \n \n Cancel\n }\n disabled={disabled}\n onClick={this.handleSubmit.bind(this)}\n >\n {actionLabel}\n \n \n );\n }\n}\n\nexport default connect()(NewAccountModal);\n\n\n/** WEBPACK FOOTER **\n ** ./src/views/modals/NewAccountModal.js\n **/","/**\n * Created by andrew on 20/02/16.\n */\nimport React, { PropTypes } from \"react\";\nimport * as BS from 'react-bootstrap';\nimport { PageHeader, OverlayTrigger, Modal, Tooltip, Grid, Col, Row, Nav, NavItem, ButtonGroup, Button, Table } from \"react-bootstrap\";\nimport { moneyText } from '../../components/Money';\n\nexport class RemoveAccountBookmarkModal extends React.Component {\n\n static propTypes = {\n action: PropTypes.func,\n account: PropTypes.object\n };\n\n handleAction(evt) {\n evt.preventDefault();\n const { action, account } = this.props;\n if (action) {\n action(account);\n }\n }\n\n render() {\n const { account } = this.props;\n\n const { title: titleRaw,\n description: descriptionRaw,\n balance: balanceRaw,\n id,\n accountId } = account || {};\n\n const entityId = id || accountId;\n\n const title = titleRaw || '—';\n const balance = moneyText(balanceRaw);\n const description = descriptionRaw || '—';\n\n return (\n \n Remove Account Bookmark\n \n \n\n \n\n \n \n \n \n \n );\n }\n}\n\nexport default RemoveAccountBookmarkModal;\n\n\n/** WEBPACK FOOTER **\n ** ./src/views/modals/RemoveAccountModal.js\n **/","/**\n * Created by andrew on 3/22/16.\n */\nimport React from 'react';\n\nexport const moneyText = (amount) => {\n\n if (Number.isNaN(Number(amount))) {\n return '—';\n }\n const absNum = Math.abs(Number(amount) / 100);\n if (absNum < 0) {\n return `$(${absNum.toFixed(2)})`;\n }\n return `$${absNum.toFixed(2)}`;\n};\n\nexport const Money = ({ amount }) => {\n\n if (Number.isNaN(Number(amount))) {\n return ();\n }\n const absNum = Math.abs(Number(amount) / 100);\n if (absNum < 0) {\n return (($${ absNum.toFixed(2) }))\n }\n return (${ absNum.toFixed(2) });\n};\n\n\n/** WEBPACK FOOTER **\n ** ./src/components/Money.js\n **/","/**\n * Created by andrew on 17/02/16.\n */\nimport React, { PropTypes } from \"react\";\nimport { Panel, Col } from \"react-bootstrap\";\n\nexport class IndexPanel extends React.Component {\n static propTypes = {\n bsStyle: PropTypes.string,\n header: PropTypes.string,\n children: PropTypes.node\n };\n\n static defaultProps = {\n bsStyle: \"info\",\n children: \n };\n\n render () {\n return (\n \n \n \n );\n }\n}\n\nexport default IndexPanel;\n\n\n/** WEBPACK FOOTER **\n ** ./src/components/partials/IndexPanel.js\n **/","/**\n * Created by andrew on 12/02/16.\n */\nimport React from \"react\";\nimport { connect } from \"react-redux\";\n\nimport { PageHeader, OverlayTrigger, Tooltip, Grid, Col, Row, Nav, NavItem, ButtonGroup, Button, Table } from \"react-bootstrap\";\nimport * as BS from \"react-bootstrap\";\n// import Spinner from \"react-loader\";\nimport Select from \"react-select\";\nimport Input from \"../controls/bootstrap/Input\";\nimport { Money, moneyText } from '../components/Money';\nimport { TransfersTable } from '../components/TransfersTable';\n\nimport { Link, IndexLink } from \"react-router\";\n\nimport IndexPanel from \"./../components/partials/IndexPanel\";\nimport * as Modals from './modals';\nimport * as A from '../actions/entities';\nimport read from '../utils/readProp';\nimport { blocked } from '../utils/blockedExecution';\n\nconst resetModals = {\n showAccountModal: false,\n unsaved: false\n};\n\nexport class Account extends React.Component {\n constructor(...args) {\n super(...args);\n this.state = { ...resetModals };\n\n const ensureTransfers = this.ensureTransfers.bind(this);\n const ensureAccounts = this.ensureAccounts.bind(this);\n\n this.ensureTransfers = blocked(ensureTransfers, true);\n this.ensureAccounts = blocked(ensureAccounts, true);\n }\n\n ensureTransfers(props, cb) {\n const forceFetch = !cb;\n if (forceFetch) {\n cb = props;\n props = this.props;\n }\n\n const { dispatch, params, transfers } = props;\n\n if (!forceFetch && !params) {\n return cb();\n }\n\n const { accountId } = params;\n if (!forceFetch && (!accountId || transfers[accountId])) {\n return cb();\n }\n\n dispatch(A.getTransfers(accountId)).then(cb, cb);\n }\n\n ensureAccounts(props, cb) {\n const forceFetch = !cb;\n if (forceFetch) {\n cb = props;\n props = this.props;\n }\n\n const { dispatch, params, data } = props;\n\n if (!forceFetch && (!params || !data || !data.accounts)) {\n return cb();\n }\n\n const { accountId } = params;\n\n if (!forceFetch && data.accounts.own && data.accounts.own.length && data.entities[accountId]) {\n return cb();\n }\n\n if (!forceFetch && (!props.auth || !props.auth.user || !props.auth.user.attributes)) {\n return cb();\n }\n\n const {\n id: customerId\n } = props.auth.user.attributes;\n\n Promise.all([\n dispatch(A.fetchOwnAccounts(customerId)),\n dispatch(A.fetchAccount(accountId)),\n ]).then(cb, cb);\n }\n\n // shouldComponentUpdate(nextProps) {\n // return (nextProps.params.accountId !== this.props.params.accountId) || (nextProps.app !== this.props.app);\n // }\n\n componentWillMount() {\n this.ensureAccounts(this.props);\n this.ensureTransfers(this.props);\n }\n\n componentWillReceiveProps(nextProps) {\n this.ensureAccounts(nextProps);\n this.ensureTransfers(nextProps);\n }\n\n\n close() {\n this.setState({\n ...resetModals\n });\n }\n\n handleInput(key, value) {\n this.props.dispatch(A.makeTransferFormUpdate(key, value));\n }\n\n initiateTransfer(){\n const { dispatch, params, transfer } = this.props;\n const { accountId } = params;\n dispatch(A.makeTransfer(accountId, transfer.form ))\n .then(() => new Promise((rs) => {\n setTimeout(() => {\n this.ensureAccounts();\n this.ensureTransfers();\n rs();\n }, 1500);\n })\n );\n }\n\n render () {\n\n const { showAccountModal } = this.state;\n const { params } = this.props;\n const { loading, errors } = this.props.ui;\n const { entities, accounts } = this.props.data;\n const { accountId } = params;\n\n const account = entities[accountId];\n\n const spinnerResult = (Loading..
);\n\n if (loading) {\n return spinnerResult;\n }\n\n if (!account) {\n if (errors.length) {\n return (\n
Error loading specified account
\n
Return Home to pick another
\n
);\n } else {\n return spinnerResult;\n }\n }\n\n const transferTo = [].concat(accounts.own.reduce((memo, item, idx) => {\n const { balance, title, accountId: itemAccountId } = item;\n\n if (itemAccountId != accountId) {\n memo.push({\n value: itemAccountId ,\n label: `${title}: ${ moneyText(balance) }`\n });\n }\n return memo;\n }, []),\n accounts.other.reduce((memo, item, idx) => {\n if (!((item.id == accountId) || (item.accountId == accountId))) {\n memo.push({\n value: item.accountId || item.id,\n label: `${item.title}${ item.description ? ': ' + item.description.substr(0, 10): '' }`\n });\n }\n return memo;\n }, []));\n\n const { title: titleRaw, description: descriptionRaw, balance } = account;\n\n const title = titleRaw || '—';\n const description = descriptionRaw || '—';\n\n const transferDisabled = this.props.transfer.loading;\n\n return (\n \n
\n Account\n \n \n\n
\n \n\n \n Title:\n { title }\n
\n\n \n Balance:\n \n
\n\n \n Description:\n { description }\n
\n\n \n\n
\n
\n \n You can transfer money to accounts:
\n \n
\n
\n \n \n \n \n \n )\n }\n addonAfter=\".00\"\n disabled={transferDisabled}\n value={read(this.props.transfer, 'form.amount', '')}\n errors={read(this.props.transfer, 'errors.amount', []) || []}\n onChange={this.handleInput.bind(this, 'amount')}\n />\n \n \n \n \n \n
\n \n \n
\n\n
\n \n Transfer History:
\n \n
\n\n
\n\n
\n\n\n
\n\n );\n }\n}\n\nexport default connect(({\n app,\n router\n }) => ({\n app,\n auth: app.auth,\n data: app.data,\n transfers: app.data.transfers,\n ui: app.ui.account,\n transfer: app.ui.transfersMake,\n router\n}))(Account);\n\n\n/** WEBPACK FOOTER **\n ** ./src/views/Account.js\n **/","/**\n * Created by andrew on 3/22/16.\n */\nimport React from \"react\";\nimport Spinner from \"react-loader\";\nimport * as BS from \"react-bootstrap\";\nimport TimeAgo from 'react-timeago';\n\nimport { Money } from './Money';\nimport AccountInfo from './AccountInfo';\n\nexport class TransfersTable extends React.Component {\n\n preprocessItems(input, currentAccountId) {\n return input\n .sort((a, b) => ((a.date - b.date)))\n .filter(({ entryType, toAccountId, fromAccountId}) => ((entryType !=='transaction') || (fromAccountId === currentAccountId) || (toAccountId === currentAccountId)))\n .reduce(({\n items, balance\n }, v) => {\n if (v.entryType == 'account') {\n balance = v.initialBalance;\n } else if (v.entryType == 'transaction' && (v.status !== 'FAILED_DUE_TO_INSUFFICIENT_FUNDS')) {\n const isOriginating = v.fromAccountId == currentAccountId;\n balance += (isOriginating ? -1 : 1) * v.amount;\n }\n v.balance = balance;\n items.push(v);\n return { items, balance };\n }, {\n items: [],\n balance: 0\n }).items\n .sort((a, b) => (-(a.date - b.date)))\n }\n\n render() {\n const { transfers, forAccount } = this.props;\n const { loading, data, errors } = transfers || {};\n \n if (!transfers || loading) {\n return ( Loading..
);\n }\n\n if (Object.keys(errors).length) {\n return (Errors..
);\n }\n\n const currentAccountId = forAccount;\n\n const transfersMarkup = data.length ?\n this.preprocessItems(data, currentAccountId)\n .map(({\n entryType,\n amount,\n fromAccountId,\n toAccountId,\n transactionId,\n description = '—',\n date = null,\n status = '—',\n balance,\n initialBalance = null\n }) => {\n\n const transferTimestamp = new Date(date);\n const timeAgoTitle = transferTimestamp.toLocaleDateString() + ' ' + transferTimestamp.toLocaleTimeString();\n\n if (entryType == 'account') {\n return (\n | \n Account created | \n | \n { description } | \n { status || '—' } | \n
);\n }\n\n const isOriginating = fromAccountId == currentAccountId;\n const directionMarkup = isOriginating ? 'Debit' : 'Credit';\n const counterAccountMarkup = isOriginating ?\n :\n ;\n\n return (\n | \n { directionMarkup } | \n { counterAccountMarkup } | \n | \n | \n { description || '—' } | \n { status || '—' } | \n
);\n }) : (\n | No transfers for this account just yet. | \n
);\n\n return (\n \n \n \n | Date | \n Type | \n Other Account | \n Amount | \n Balance | \n Description | \n Status | \n
\n \n \n { transfersMarkup }\n \n \n );\n }\n}\n\n\n/** WEBPACK FOOTER **\n ** ./src/components/TransfersTable.js\n **/","/**\n * Created by andrew on 8/17/16.\n */\n\nexport const blocked = (fn, useCb) => {\n let isBlocked = false;\n return (...args) => {\n if (isBlocked) {\n return;\n }\n //noinspection JSUnusedAssignment\n isBlocked = true;\n const cb = () => {\n isBlocked = false;\n };\n const result = useCb ? fn(...(args.concat([cb]))) : fn(...args);\n if (!useCb) {\n cb();\n }\n return result;\n };\n};\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/blockedExecution.js\n **/","/**\n * Created by andrew on 12/02/16.\n */\nimport React from \"react\";\nimport { PageHeader } from \"react-bootstrap\";\nimport { connect } from \"react-redux\";\nimport * as BS from \"react-bootstrap\";\nimport { pushState } from \"redux-router\";\nimport { EmailSignInForm } from \"../controls/bootstrap/EmailSignInForm\";\nimport read from '../utils/readProp';\n\nexport class SignIn extends React.Component {\n\n checkRedirect(props) {\n\n const isSignedIn = read(props.auth, 'user.isSignedIn');\n if (isSignedIn) {\n\n const nextLocation = read(props.location, 'query.next');\n props.dispatch(pushState(null, nextLocation));\n\n //// redirect to login and add next param so we can redirect again after login\n //const redirectAfterLogin = this.props.location.pathname;\n //this.props.dispatch(pushState(null, `/signin?next=${redirectAfterLogin}`));\n }\n }\n componentWillMount() {\n this.checkRedirect(this.props);\n }\n\n componentWillReceiveProps(nextProps) {\n this.checkRedirect(nextProps);\n\n }\n\n render () {\n\n return (\n \n Sign In\n \n \n );\n }\n}\nexport default connect(({\n //dispatch,\n routes,\n app\n }) => ({\n //dispatch,\n routes,\n auth: app.auth\n}))(SignIn);\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/views/SignIn.js\n **/","/**\n * Created by andrew on 15/02/16.\n */\nimport React, {PropTypes} from \"react\";\nimport * as BS from \"react-bootstrap\";\nimport read from '../../utils/readProp';\nimport Input from \"./Input\";\nimport ButtonLoader from \"./ButtonLoader\";\nimport AuxErrorLabel from './AuxErrorLabel';\nimport * as AS from \"../../actions/signIn\";\n\nconst formValidation = (payload) => [\n 'email',\n 'password'\n].reduce((memo, prop) => {\n let result = [];\n const value = (payload[prop] || '').replace(/(^\\s+)|(\\s+$)/g, '');\n\n switch (prop) {\n case 'email':\n case 'password':\n if (/^$/.test(value)) {\n result.push('required');\n }\n }\n\n if (result.length) {\n memo[prop] = result;\n memo.hasErrors = true;\n }\n return memo;\n}, {});\n\nexport class EmailSignInForm extends React.Component {\n\n handleInput (key, val) {\n this.props.dispatch(AS.emailSignInFormUpdate(key, val));\n }\n\n handleSubmit (event) {\n event.preventDefault();\n\n const formData = read(this.props.auth, 'signIn.form');\n\n const validationErrors = formValidation(formData);\n if (validationErrors.hasErrors) {\n this.props.dispatch(AS.emailSignInError(validationErrors));\n return;\n }\n\n this.props.dispatch(AS.emailSignIn(formData));\n }\n\n render () {\n\n try {\n const disabled = (\n this.props.auth.user.isSignedIn ||\n this.props.auth.signIn.loading\n );\n\n //const error = read(this.props.auth, 'signIn.errors.email', null);\n const formErrors = read(this.props.auth, 'signIn.errors.errors', '');\n\n return (\n \n );\n } catch (ex){\n console.error('Render exception: ', ex);\n return [' ERROR '];\n }\n }\n}\n\nEmailSignInForm.propTypes = {\n endpoint: PropTypes.string,\n inputProps: PropTypes.shape({\n email: PropTypes.object,\n password: PropTypes.object,\n submit: PropTypes.object\n })\n};\n\nEmailSignInForm.defaultProps = {\n inputProps: {\n email: {},\n password: {},\n submit: {}\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/controls/bootstrap/EmailSignInForm.js\n **/","/**\n * Created by andrew on 26/02/16.\n */\nimport T from '../constants/ACTION_TYPES';\nimport { makeActionCreator } from '../utils/actions';\nimport { persistUserData } from \"../utils/sessionStorage\";\nimport { entityReceived } from './entities';\nimport { apiSignIn } from '../utils/api';\n\nexport const emailSignInFormUpdate = makeActionCreator(T.AUTH.SIGN_IN_FORM_UPDATE, 'key', 'value');\nexport const emailSignInStart = makeActionCreator(T.AUTH.SIGN_IN_START);\nexport const emailSignInComplete = makeActionCreator(T.AUTH.SIGN_IN_COMPLETE, 'user');\nexport const emailSignInError = makeActionCreator(T.AUTH.SIGN_IN_ERROR, 'error');\n\nexport function emailSignIn(body) {\n return dispatch => {\n\n dispatch(emailSignInStart());\n\n return apiSignIn(body)\n .then(function(data = {}) {\n const { id } = data;\n if (id ) {\n dispatch(entityReceived(id, data));\n }\n return data;\n })\n .then((user) => {\n persistUserData(user);\n dispatch(emailSignInComplete(user));\n })\n .catch((errors) => {\n // revert endpoint key to what it was before failed request\n //setCurrentEndpointKey(prevEndpointKey);\n //dispatch(storeCurrentEndpointKey(prevEndpointKey));\n return dispatch(emailSignInError(errors));\n });\n };\n}\n\n\n/** WEBPACK FOOTER **\n ** ./src/actions/signIn.js\n **/","/**\n * Created by andrew on 12/02/16.\n */\nimport React from \"react\";\n//import { PageHeader } from \"react-bootstrap\";\nimport { connect } from \"react-redux\";\nimport { pushState } from 'redux-router';\nimport read from '../utils/readProp';\n\nimport { PageHeader, OverlayTrigger, Tooltip, Row, ButtonGroup, Table } from \"react-bootstrap\";\nimport * as BS from \"react-bootstrap\";\nimport { Link, IndexLink} from \"react-router\";\n\n//import { EmailSignUpForm } from \"redux-auth/bootstrap-theme\"\nimport EmailSignUpForm from \"../controls/bootstrap/EmailSignUpForm\";\n\nexport class SignUp extends React.Component {\n\n checkRedirect(props) {\n if (props.isAuthenticated) {\n // redirect to login and add next param so we can redirect again after login\n // const redirectAfterLogin = props.location.pathname;\n props.dispatch(pushState(null, `/`));\n }\n }\n\n componentWillMount() {\n this.checkRedirect(this.props);\n }\n\n componentWillReceiveProps(nextProps) {\n this.checkRedirect(nextProps);\n }\n\n render () {\n return (\n \n Register\n \n \n );\n\n }\n}\nexport default connect(({\n routes,\n app\n}) => ({routes,\n isAuthenticated: read(app, 'auth.user.isSignedIn', false)\n}))(SignUp);\n\n\n/** WEBPACK FOOTER **\n ** ./src/views/SignUp.js\n **/","/**\n * Created by andrew on 15/02/16.\n */\nimport React, {PropTypes} from \"react\";\nimport { connect } from \"react-redux\";\nimport { Glyphicon } from \"react-bootstrap\";\nimport Input from \"./Input\";\nimport ButtonLoader from \"./ButtonLoader\";\nimport IndexPanel from \"./../../components/partials/IndexPanel\";\nimport AuxErrorLabel from './AuxErrorLabel';\nimport { customerInfoMap } from '../../entities/formToPayloadMappers';\nimport read from '../../utils/readProp';\nimport * as AS from '../../actions/signUp';\n\nconst formValidation = (payload) => [\n 'fname',\n 'lname',\n 'email',\n 'password',\n 'passwordConfirm',\n 'ssn',\n 'phoneNumber',\n 'address1',\n 'address2',\n 'city',\n 'state',\n 'zip'\n].reduce((memo, prop) => {\n let result = [];\n const value = (payload[prop] || '').replace(/(^\\s+)|(\\s+$)/g, '');\n\n switch (prop) {\n case 'fname':\n case 'lname':\n case 'email':\n case 'ssn':\n case 'password':\n case 'passwordConfirm':\n if (/^$/.test(value)) {\n result.push('required');\n }\n }\n\n switch (prop) {\n case 'passwordConfirm':\n if (value != payload['password']) {\n result.push('need to be equal to password');\n }\n }\n\n if (result.length) {\n memo[prop] = result;\n memo.hasErrors = true;\n }\n return memo;\n}, {});\n\n\nclass EmailSignUpForm extends React.Component {\n\n handleInput (key, val) {\n this.props.dispatch(AS.emailSignUpFormUpdate(key, val));\n }\n\n handleSubmit (event) {\n event.preventDefault();\n\n const formData = read(this.props.auth, 'signUp.form');\n const validationErrors = formValidation(formData);\n if (validationErrors.hasErrors) {\n this.props.dispatch(AS.emailSignUpError(validationErrors));\n return;\n }\n\n this.props.dispatch(AS.emailSignUp(customerInfoMap(formData)));\n }\n\n render () {\n\n const disabled = (\n this.props.auth.user.isSignedIn ||\n this.props.auth.signUp.loading\n );\n\n const formErrors = read(this.props.auth, 'signUp.errors.errors', '');\n\n return (\n \n );\n\n }\n}\n\nexport default connect(({app}) => ({auth: app.auth}))(EmailSignUpForm);\n\n\n/** WEBPACK FOOTER **\n ** ./src/controls/bootstrap/EmailSignUpForm.js\n **/","/**\n * Created by andrew on 21/02/16.\n */\nexport const customerInfoMap = ({\n ssn,\n password,\n address1,\n address2,\n city, //: \"Moscow\"\n email, //: \"arevinsky@gmail.com\"\n fname, //: \"Andrew\"\n lname, //: \"Revinsky\"\n phoneNumber, //: \"+79031570864\"\n state, //: \"Kentucky\"\n zip //: \"125315\"\n }) => ({\n \"name\": {\n \"firstName\": fname,\n \"lastName\": lname\n },\n password,\n email,\n ssn,\n \"phoneNumber\": phoneNumber,\n \"address\": {\n \"street1\": address1,\n \"street2\": address2,\n city,\n state,\n \"zipCode\": zip\n }\n});\n\n\n/** WEBPACK FOOTER **\n ** ./src/entities/formToPayloadMappers.js\n **/","/**\n * Created by andrew on 11/03/16.\n */\nimport { push } from 'redux-router';\nimport T from '../constants/ACTION_TYPES';\nimport { makeActionCreator } from '../utils/actions';\nimport { apiSignUp } from \"../utils/api\";\nimport { emailSignInFormUpdate } from './signIn';\n\nexport const emailSignUpFormUpdate = makeActionCreator(T.AUTH.SIGN_UP_FORM_UPDATE, 'key', 'value');\nexport const emailSignUpStart = makeActionCreator(T.AUTH.SIGN_UP_START);\nexport const emailSignUpComplete = makeActionCreator(T.AUTH.SIGN_UP_COMPLETE, 'user');\nexport const emailSignUpError = makeActionCreator(T.AUTH.SIGN_UP_ERROR, 'error');\n\n\nexport function emailSignUp(body) {\n return dispatch => {\n dispatch(emailSignUpStart());\n\n return apiSignUp(body)\n .then(({ data }) => {\n dispatch(emailSignUpComplete(data));\n const { email } = body;\n dispatch(emailSignInFormUpdate('email', email));\n dispatch(push('/signin'));\n })\n .catch(({ errors }) => {\n dispatch(emailSignUpError({\n errors\n }))\n });\n\n };\n}\n\n\n/** WEBPACK FOOTER **\n ** ./src/actions/signUp.js\n **/"],"sourceRoot":""}
\ No newline at end of file
diff --git a/js-frontend/build/app.497ed0e9fa8411cbbf1d.js.map b/js-frontend/build/app.497ed0e9fa8411cbbf1d.js.map
deleted file mode 100644
index bfb6db7..0000000
--- a/js-frontend/build/app.497ed0e9fa8411cbbf1d.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["webpack:///./src/client.js?","webpack:///./src/app.js?","webpack:///./~/redux-router/server.js?","webpack:///./~/redux-router/lib/server.js?","webpack:///./~/redux-router/lib/matchMiddleware.js?","webpack:///./src/reducers/index.js?","webpack:///./src/reducers/auth/index.js?","webpack:///./src/reducers/auth/configure.js?","webpack:///./src/constants/ACTION_TYPES.js?","webpack:///./src/utils/defineActionTypes.js?","webpack:///./src/reducers/createDataReducer.js?","webpack:///./src/reducers/auth/authenticate.js?","webpack:///./src/reducers/auth/signin.js?","webpack:///./src/reducers/createFormReducer.js?","webpack:///./src/reducers/auth/signup.js?","webpack:///./src/reducers/auth/signout.js?","webpack:///./src/reducers/auth/user.js?","webpack:///./src/reducers/data/index.js?","webpack:///./src/reducers/data/accounts.js?","webpack:///./src/reducers/data/transfers.js?","webpack:///./src/reducers/data/entities.js?","webpack:///./src/reducers/data/bookmarkAccount.js?","webpack:///./src/reducers/ui/index.js?","webpack:///./src/reducers/ui/account.js?","webpack:///./src/reducers/ui/errors.js?","webpack:///./src/reducers/ui/bookmarkAccount.js?","webpack:///./src/reducers/ui/transfersMake.js?","webpack:///./src/actions/configure.js?","webpack:///./src/actions/authenticate.js?","webpack:///./src/utils/actions.js?","webpack:///./src/utils/sessionStorage.js?","webpack:///./src/utils/constants.js?","webpack:///./src/utils/root.js?","webpack:///./src/utils/api.js?","webpack:///./src/utils/fetch.js?","webpack:///./src/utils/apiEndpoints.js?","webpack:///./src/utils/handleFetchResponse.js?","webpack:///./src/actions/entities.js?","webpack:///./src/utils/clientSettings.js?","webpack:///./src/utils/parseEndpointConfig.js?","webpack:///./src/actions/navigate.js?","webpack:///./src/components/AuthComponent.js?","webpack:///./src/utils/readProp.js?","webpack:///./src/components/partials/Container.js?","webpack:///./src/components/HeaderLinks.js?","webpack:///./src/actions/signOut.js?","webpack:///./src/views/MyAccounts.js?","webpack:///./src/components/AccountInfo.js?","webpack:///./src/views/modals/index.js?","webpack:///./src/views/modals/Add3rdPartyAccountModal.js?","webpack:///./src/controls/bootstrap/ButtonLoader.js?","webpack:///./src/controls/bootstrap/Input.js?","webpack:///./src/controls/bootstrap/AuxErrorLabel.js?","webpack:///./src/views/modals/NewAccountModal.js?","webpack:///./src/views/modals/RemoveAccountModal.js?","webpack:///./src/components/Money.js?","webpack:///./src/components/partials/IndexPanel.js?","webpack:///./src/views/Account.js?","webpack:///./src/components/TransfersTable.js?","webpack:///./src/utils/blockedExecution.js?","webpack:///./src/views/SignIn.js?","webpack:///./src/controls/bootstrap/EmailSignInForm.js?","webpack:///./src/actions/signIn.js?","webpack:///./src/views/SignUp.js?","webpack:///./src/controls/bootstrap/EmailSignUpForm.js?","webpack:///./src/entities/formToPayloadMappers.js?","webpack:///./src/actions/signUp.js?"],"names":["then","provider","reactRoot","window","document","getElementById","render","process","env","NODE_ENV","firstChild","attributes","console","error","initialize","App","props","children","Component","cookies","isServer","currentLocation","userAgent","reducer","app","router","dispatch","onEnter","nextState","location","routes","reduxReactRouter","createHistoryMethod","store","createHistory","default","emailSignInPath","customersPath","currentUserPath","accountsPath","transfersPath","storage","tokenFormat","handleLoginResponse","resp","data","handleAccountUpdateResponse","handleTokenValidationResponse","redirectPath","blank","global","navigator","log","mainReducer","auth","ui","authStateReducer","configure","signIn","signUp","signOut","authentication","user","configReducer","AUTH","CONFIGURE_START","CONFIGURE_COMPLETE","CONFIGURE_ERROR","c","LOCATION","ENTER","AUTHENTICATE_START","AUTHENTICATE_COMPLETE","AUTHENTICATE_ERROR","SIGN_IN_START","SIGN_IN_COMPLETE","SIGN_IN_ERROR","SIGN_IN_FORM_UPDATE","SIGN_UP_START","SIGN_UP_COMPLETE","SIGN_UP_ERROR","SIGN_UP_FORM_UPDATE","SIGN_OUT_START","SIGN_OUT_COMPLETE","ENTITIES","REQUESTED","RECEIVED","RECEIVED_LIST","ACCOUNTS","LIST_START","LIST_COMPLETE","LIST_ERROR","LIST_REF_START","LIST_REF_COMPLETE","LIST_REF_ERROR","CREATE_START","CREATE_COMPLETE","CREATE_ERROR","CREATE_FORM_UPDATE","EDIT_START","EDIT_COMPLETE","EDIT_ERROR","EDIT_FORM_UPDATE","CREATE_REF_START","CREATE_REF_COMPLETE","CREATE_REF_ERROR","CREATE_REF_FORM_UPDATE","CREATE_REF_OWNER_LOOKUP_START","CREATE_REF_OWNER_LOOKUP_COMPLETE","CREATE_REF_ACCOUNT_LOOKUP_START","CREATE_REF_ACCOUNT_LOOKUP_COMPLETE","ACCOUNT","SINGLE_START","SINGLE_COMPLETE","SINGLE_ERROR","DELETE_START","DELETE_COMPLETE","DELETE_ERROR","TRANSFERS","MAKE_START","MAKE_COMPLETE","MAKE_ERROR","MAKE_FORM_UPDATE","ERROR","START","STOP","defineActionTypes","TODO_DEFINE","Symbol","defineActionType","obj","result","Object","keys","reduce","memo","namespace","value","types","namespaceTypes","trim","split","filter","key","test","Set","size","length","forEach","t","entries","type","createByIdDataReducer","next","KEY_REQUEST","KEY_SUCCESS","KEY_ERROR","state","action","id","errors","createDataReducer","payloadActionNameProp","payloadStateNameProp","payloadAssignFn","k","initialState","loading","formReducer","payload","isSealed","aggregate","valid","authReducer","internalSignInReducer","signInReducer","pathname","createFormReducer","KEY_UPDATE","form","internalSignUpReducer","signUpReducer","signOutInitialState","signOutReducer","initalState","isSignedIn","userReducer","dataReducer","transfers","entities","accounts","bookmarkAccount","ownAccountsReducer","otherAccountsReducer","toAccounts","map","createAccountReducer","editAccountReducer","own","other","create","edit","selectedEvents","nodeInitialState","entity","hashMap","item","accountId","isError","isStart","isLoading","optionsLoaderInitialState","options","accountsDisabled","ownersLookup","accountsLookup","optionsLoaderReducer","isOwnerSetBlank","isOwnerSelected","nextAccountsDisabled","nextForm","account","nextErrors","uiReducer","transfersMake","setEndpointKeys","SET_ENDPOINT_KEYS","endpoints","currentEndpointKey","defaultEndpointKey","endpoint","settings","authenticate","U","authenticateStart","authenticateComplete","authenticateError","forceReread","savedUserPromise","Promise","rs","rj","currentHeaders","retrieveHeaders","accessToken","reason","savedUser","retrieveUserData","userData","persistUserData","err","catch","resolve","makeActionCreator","argNames","args","arg","index","setCurrentSettings","setCurrentEndpoint","setCurrentEndpointKey","setDefaultEndpointKey","getDefaultEndpointKey","resetConfig","destroySession","getInitialEndpointKey","isApiRequest","getTokenFormat","persistData","retrieveData","C","authState","currentSettings","currentEndpoint","memoryStorage","clean","s","e","SAVED_CONFIG_KEY","DEFAULT_CONFIG_KEY","SAVED_CREDS_KEY","SAVED_USER_INFO","localStorage","removeItem","remove","path","cookiePath","unescapeQuotes","val","replace","get","getItem","url","JSON","stringify","setItem","set","expires","cookieExpiry","parse","INITIAL_CONFIG_KEY","Function","eval","ENDPOINTS","JSON_HEADERS","headers","METHODS","DELETE","method","GET","POST","fetch","apiSignIn","body","emailSignIn","apiSignUp","emailSignUp","apiGetCurrentUser","currentUser","apiCreateAccount","customerId","title","initialBalance","balance","description","apiCreateRefAccount","owner","refAccounts","apiMakeTransfer","fromAccountId","amount","apiRetrieveAccounts","customersAccounts","apiRetrieveTransfers","history","apiRetrieveAccount","apiDeleteAccount","apiDeleteRefAccount","refAccount","apiRetrieveUsers","email","customersLookup","getAuthHeaders","updateAuthCredentials","nextHeaders","newHeaders","blankHeaders","API_ROOT","lookup","makeQuery","params","encodeURIComponent","join","parseResponse","response","json","status","message","rest","jvmPattern","m","name","reject","accountsList","accountCreate","accountRefCreate","fetchOwnAccounts","fetchAccount","deleteAccount","errorMessageTimedOut","api","entityRequested","entityReceived","accountsListRequested","accountsListReceived","accountsListError","accountsRefListReceived","accountCreateStart","accountCreateComplete","accountCreateError","accountCreateFormUpdate","accountRefCreateStart","accountRefCreateComplete","accountRefCreateError","accountRefCreateFormUpdate","accountRequested","accountComplete","accountError","readUntilChanged","initialData","promisedFn","leftCalls","initialDataFlat","setTimeout","call","Math","pow","deleteAccountRequested","deleteAccountComplete","deleteAccountError","isRef","deleteApiAction","errorMessageStart","errorMessageStop","timeout","createRefOwnerLookupStart","createRefOwnerLookupComplete","createRefAccountLookupStart","createRefAccountLookupComplete","createRefOwnerLookup","customers","arr","fullName","firstName","lastName","i","label","createRefAccountLookup","makeTransferRequested","makeTransferComplete","makeTransferError","makeTransferFormUpdate","makeTransfer","moneyTransferId","getTransfersRequested","getTransfersComplete","getTransfersError","getTransfers","applyConfig","defaultSettings","forceHardRedirect","initialCredentials","reset","match","parseEndpointConfig","defaultEndpoint","apiUrl","signOutPath","emailRegistrationPath","accountUpdatePath","accountDeletePath","passwordResetPath","passwordUpdatePath","tokenValidationPath","authProviderPaths","github","facebook","google","getFirstObjectKey","constructor","Array","defaultConfig","configName","visitLocation","requireAuthentication","AuthComponent","isAuthenticated","redirectAfterLogin","checkRedirect","nextProps","mapStateToProps","read","src","defaultVal","pathItem","Container","propTypes","node","BS","HeaderLinks","evt","buttonSet","isRegister","isLogin","condition","bind","signOutStart","signOutComplete","M","A","AU","resetModals","showAccountModal","show3rdPartyAccountModal","showDeleteAccountModal","MyAccounts","setState","close","all","accountToRemove","ssn","phoneNumber","address","city","street1","street2","zipCode","errorLine","ownAccountsData","ownAccounts","idx","remove3rdPartyAccountModal","refAccountsData","concat","createAccountModal","create3rdPartyAccountModal","createAccountModalConfirmed","create3rdPartyAccountModalConfirmed","remove3rdPartyAccountModalConfirmed","AccountInfo","ensureData","padding","formValidation","prop","push","hasErrors","Add3rdPartyAccountModal","preventDefault","validationErrors","onHide","input","disabled","ownersLoading","formErrors","show","display","getOwnersOptions","handleInput","handleSubmit","ButtonLoader","icon","spinColor","bsStyle","spinColorDark","spinColorLight","spinConfig","position","marginRight","width","height","top","onClick","className","style","bsSize","renderIcon","bool","object","string","func","isRequired","defaultProps","lines","radius","AuthInput","ev","onChange","target","paddingLeft","marginBottom","left","renderErrorList","array","AuxErrorLabel","NewAccountModal","event","actionLabel","RemoveAccountBookmarkModal","titleRaw","descriptionRaw","balanceRaw","entityId","handleAction","moneyText","Number","isNaN","absNum","abs","toFixed","Money","IndexPanel","header","Modals","unsaved","Account","ensureTransfers","ensureAccounts","cb","forceFetch","transfer","spinnerResult","transferTo","itemAccountId","substr","transferDisabled","initiateTransfer","TransfersTable","currentAccountId","sort","a","b","date","entryType","toAccountId","v","items","isOriginating","forAccount","transfersMarkup","preprocessItems","transactionId","transferTimestamp","Date","timeAgoTitle","toLocaleDateString","toLocaleTimeString","directionMarkup","counterAccountMarkup","blocked","fn","useCb","isBlocked","SignIn","nextLocation","AS","EmailSignInForm","emailSignInFormUpdate","formData","emailSignInError","inputProps","password","submit","ex","shape","emailSignInStart","emailSignInComplete","SignUp","EmailSignUpForm","emailSignUpFormUpdate","emailSignUpError","customerInfoMap","address1","address2","fname","lname","zip","emailSignUpStart","emailSignUpComplete"],"mappings":"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","file":"app.497ed0e9fa8411cbbf1d.js","sourcesContent":["/**\n * Created by andrew on 12/02/16.\n */\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { initialize } from \"./app\";\n/**\n * Fire-up React Router.\n */\ninitialize().then(({ provider }) => {\n const reactRoot = window.document.getElementById(\"root\");\n ReactDOM.render(provider, reactRoot);\n});\n\n\n/**\n * Detect whether the server-side render has been discarded due to an invalid checksum.\n */\nif (process.env.NODE_ENV !== \"production\") {\n const reactRoot = window.document.getElementById(\"root\");\n if (!reactRoot.firstChild || !reactRoot.firstChild.attributes ||\n !reactRoot.firstChild.attributes[\"data-react-checksum\"]) {\n console.error(\"Server-side React render was discarded. Make sure that your initial render does not contain any client-side code.\");\n }\n}\n\n\n/** WEBPACK FOOTER **\n ** ./src/client.js\n **/","/**\n * Created by andrew on 12/02/16.\n */\n\nimport React from \"react\";\nimport { createStore, compose, applyMiddleware, combineReducers} from \"redux\";\nimport { Provider, connect} from \"react-redux\";\nimport thunk from \"redux-thunk\";\nimport createLogger from 'redux-logger';\nimport { Route, IndexRoute, Link, IndexLink } from \"react-router\";\nimport { RouterContext } from 'react-router';\nimport { ReduxRouter} from \"redux-router\";\nimport { createHistory, createHashHistory, createMemoryHistory } from \"history\";\nimport { pushState, routerStateReducer, reduxReactRouter as clientRouter} from \"redux-router\";\nimport { reduxReactRouter as serverRouter } from \"redux-router/server\";\n\nimport mainReducer from './reducers';\n\nimport { configure as endpointsConfig } from './actions/configure';\nimport { visitLocation } from './actions/navigate';\nimport { requireAuthentication } from './components/AuthComponent';\nimport Container from \"./components/partials/Container\";\nimport MyAccounts from \"./views/MyAccounts\";\nimport Account from \"./views/Account\";\nimport SignIn from \"./views/SignIn\";\nimport SignUp from \"./views/SignUp\";\n\nclass App extends React.Component {\n render() {\n return (\n \n {this.props.children}\n );\n }\n}\n\nexport function initialize({cookies, isServer, currentLocation, userAgent} = {}) {\n\n const reducer = combineReducers({\n app: mainReducer,\n router: routerStateReducer\n });\n\n let dispatch = null;\n\n const onEnter = (nextState) => {\n const { location } = nextState;\n dispatch && dispatch(visitLocation(location));\n };\n\n const routes = (\n \n \n \n \n \n \n );\n\n // these methods will differ from server to client\n const reduxReactRouter = isServer ? serverRouter : clientRouter;\n const createHistoryMethod = isServer ? createMemoryHistory : createHashHistory;\n\n // create the redux store\n const store = compose(\n applyMiddleware(thunk, createLogger()),\n reduxReactRouter({\n routes,\n createHistory: createHistoryMethod\n })\n )(createStore)(reducer);\n\n dispatch = store.dispatch;\n\n /**\n * The React Router 1.0 routes for both the server and the client.\n */\n return store.dispatch(endpointsConfig([\n {\n default: {\n //apiUrl: '/',\n emailSignInPath: '/api/login',\n customersPath: '/api/customers',\n currentUserPath: '/api/user',\n accountsPath: '/api/accounts',\n transfersPath: '/api/transfers'\n }\n }\n ], {\n cookies,\n isServer,\n currentLocation,\n storage: 'localStorage',\n tokenFormat: {\n \"access-token\": \"{{ access-token }}\"\n },\n handleLoginResponse: function(resp) {\n debugger;\n return resp.data;\n },\n\n handleAccountUpdateResponse: function(resp) {\n debugger;\n return resp.data;\n },\n\n handleTokenValidationResponse: function(resp) {\n debugger;\n return resp.data;\n }\n })).then(({ redirectPath, blank } = {}) => {\n // hack for material-ui server-side rendering.\n // see https://github.com/callemall/material-ui/pull/2007\n if (userAgent) {\n global.navigator = {userAgent};\n }\n\n if (blank) {\n // if `blank` is true, this is an OAuth redirect and should not\n // be rendered\n return ;\n }\n\n console.log(`redirect path: ${redirectPath}`);\n\n return ({\n blank,\n store,\n redirectPath,\n provider: (\n \n \n \n )\n });\n });\n}\n\n\n/** WEBPACK FOOTER **\n ** ./src/app.js\n **/","// This file is copied to the root of the project to allow\n'use strict';\n\nexports.__esModule = true;\n\nvar _libServer = require('./lib/server');\n\nexports.reduxReactRouter = _libServer.reduxReactRouter;\nexports.match = _libServer.match;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/redux-router/server.js\n ** module id = 289\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports.match = match;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _redux = require('redux');\n\nvar _reduxReactRouter = require('./reduxReactRouter');\n\nvar _reduxReactRouter2 = _interopRequireDefault(_reduxReactRouter);\n\nvar _useDefaults = require('./useDefaults');\n\nvar _useDefaults2 = _interopRequireDefault(_useDefaults);\n\nvar _routeReplacement = require('./routeReplacement');\n\nvar _routeReplacement2 = _interopRequireDefault(_routeReplacement);\n\nvar _matchMiddleware = require('./matchMiddleware');\n\nvar _matchMiddleware2 = _interopRequireDefault(_matchMiddleware);\n\nvar _constants = require('./constants');\n\nfunction serverInvariants(next) {\n return function (options) {\n return function (createStore) {\n if (!options || !(options.routes || options.getRoutes)) {\n throw new Error('When rendering on the server, routes must be passed to the ' + 'reduxReactRouter() store enhancer; routes as a prop or as children of ' + ' is not supported. To deal with circular dependencies ' + 'between routes and the store, use the option getRoutes(store).');\n }\n if (!options || !options.createHistory) {\n throw new Error('When rendering on the server, createHistory must be passed to the ' + 'reduxReactRouter() store enhancer');\n }\n\n return next(options)(createStore);\n };\n };\n}\n\nfunction matching(next) {\n return function (options) {\n return function (createStore) {\n return function (reducer, initialState) {\n var store = _redux.compose(_redux.applyMiddleware(_matchMiddleware2['default'](function (url, callback) {\n var location = store.history.createLocation(url);\n\n store.history.match(location, callback);\n })), next(options))(createStore)(reducer, initialState);\n return store;\n };\n };\n };\n}\n\nfunction match(url, callback) {\n return {\n type: _constants.MATCH,\n payload: {\n url: url,\n callback: callback\n }\n };\n}\n\nvar reduxReactRouter = _redux.compose(serverInvariants, _useDefaults2['default'], _routeReplacement2['default'], matching)(_reduxReactRouter2['default']);\nexports.reduxReactRouter = reduxReactRouter;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/redux-router/lib/server.js\n ** module id = 290\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports['default'] = matchMiddleware;\n\nvar _actionCreators = require('./actionCreators');\n\nvar _constants = require('./constants');\n\nfunction matchMiddleware(match) {\n return function (_ref) {\n var dispatch = _ref.dispatch;\n return function (next) {\n return function (action) {\n if (action.type === _constants.MATCH) {\n (function () {\n var _action$payload = action.payload;\n var url = _action$payload.url;\n var callback = _action$payload.callback;\n\n match(url, function (error, redirectLocation, routerState) {\n if (!error && !redirectLocation && routerState) {\n dispatch(_actionCreators.routerDidChange(routerState));\n }\n callback(error, redirectLocation, routerState);\n });\n })();\n }\n return next(action);\n };\n };\n };\n}\n\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/redux-router/lib/matchMiddleware.js\n ** module id = 291\n ** module chunks = 0\n **/","/**\n * Created by andrew on 18/03/16.\n */\nimport { combineReducers } from 'redux';\n\nimport authStateReducer from './auth';\nimport appStateReducer from './data'\nimport uiReducer from './ui'\n\nconst mainReducer = combineReducers({\n auth: authStateReducer,\n data: appStateReducer,\n ui: uiReducer\n});\n\nexport default mainReducer;\n\n\n/** WEBPACK FOOTER **\n ** ./src/reducers/index.js\n **/","/**\n * Created by andrew on 25/02/16.\n */\nimport { combineReducers } from 'redux';\n\nimport { configReducer } from './configure';\nimport { authReducer } from './authenticate';\nimport { signInReducer } from './signin';\nimport { signUpReducer } from './signup';\nimport { signOutReducer } from './signout';\nimport { userReducer } from './user';\n\nconst authStateReducer = combineReducers({\n configure: configReducer,\n signIn: signInReducer,\n signUp: signUpReducer,\n signOut: signOutReducer,\n authentication: authReducer,\n user: userReducer\n});\n\nexport default authStateReducer;\n\n\n/** WEBPACK FOOTER **\n ** ./src/reducers/auth/index.js\n **/","/**\n * Created by andrew on 25/02/16.\n */\nimport T from '../../constants/ACTION_TYPES';\nimport createDataReducer from '../createDataReducer';\n\nexport const configReducer = createDataReducer([\n T.AUTH.CONFIGURE_START,\n T.AUTH.CONFIGURE_COMPLETE,\n T.AUTH.CONFIGURE_ERROR\n],\n 'config',\n 'config',\n (c = {}) => ({ ...c })\n);\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/reducers/auth/configure.js\n **/","import { TODO_DEFINE, defineActionType } from '../utils/defineActionTypes'\n\nexport default defineActionType({\n\n LOCATION: {\n ENTER: TODO_DEFINE\n },\n /*\n * View model\n */\n AUTH: {\n CONFIGURE_START: TODO_DEFINE,\n CONFIGURE_COMPLETE: TODO_DEFINE,\n CONFIGURE_ERROR: TODO_DEFINE,\n AUTHENTICATE_START: TODO_DEFINE,\n AUTHENTICATE_COMPLETE: TODO_DEFINE,\n AUTHENTICATE_ERROR: TODO_DEFINE,\n SIGN_IN_START: TODO_DEFINE,\n SIGN_IN_COMPLETE: TODO_DEFINE,\n SIGN_IN_ERROR: TODO_DEFINE,\n SIGN_IN_FORM_UPDATE: TODO_DEFINE,\n SIGN_UP_START: TODO_DEFINE,\n SIGN_UP_COMPLETE: TODO_DEFINE,\n SIGN_UP_ERROR: TODO_DEFINE,\n SIGN_UP_FORM_UPDATE: TODO_DEFINE,\n SIGN_OUT_START: TODO_DEFINE,\n SIGN_OUT_COMPLETE: TODO_DEFINE\n },\n\n ENTITIES: {\n REQUESTED: TODO_DEFINE,\n RECEIVED: TODO_DEFINE,\n RECEIVED_LIST: TODO_DEFINE\n },\n\n ACCOUNTS: {\n LIST_START: TODO_DEFINE,\n LIST_COMPLETE: TODO_DEFINE,\n LIST_ERROR: TODO_DEFINE,\n LIST_REF_START: TODO_DEFINE,\n LIST_REF_COMPLETE: TODO_DEFINE,\n LIST_REF_ERROR: TODO_DEFINE,\n CREATE_START: TODO_DEFINE,\n CREATE_COMPLETE: TODO_DEFINE,\n CREATE_ERROR: TODO_DEFINE,\n CREATE_FORM_UPDATE: TODO_DEFINE,\n EDIT_START: TODO_DEFINE,\n EDIT_COMPLETE: TODO_DEFINE,\n EDIT_ERROR: TODO_DEFINE,\n EDIT_FORM_UPDATE: TODO_DEFINE,\n CREATE_REF_START: TODO_DEFINE,\n CREATE_REF_COMPLETE: TODO_DEFINE,\n CREATE_REF_ERROR: TODO_DEFINE,\n CREATE_REF_FORM_UPDATE: TODO_DEFINE,\n CREATE_REF_OWNER_LOOKUP_START: TODO_DEFINE,\n CREATE_REF_OWNER_LOOKUP_COMPLETE: TODO_DEFINE,\n CREATE_REF_ACCOUNT_LOOKUP_START: TODO_DEFINE,\n CREATE_REF_ACCOUNT_LOOKUP_COMPLETE: TODO_DEFINE\n },\n\n ACCOUNT: {\n SINGLE_START: TODO_DEFINE,\n SINGLE_COMPLETE: TODO_DEFINE,\n SINGLE_ERROR: TODO_DEFINE,\n DELETE_START: TODO_DEFINE,\n DELETE_COMPLETE: TODO_DEFINE,\n DELETE_ERROR: TODO_DEFINE\n },\n \n TRANSFERS: {\n MAKE_START: TODO_DEFINE,\n MAKE_COMPLETE: TODO_DEFINE,\n MAKE_ERROR: TODO_DEFINE,\n MAKE_FORM_UPDATE: TODO_DEFINE,\n LIST_START: TODO_DEFINE,\n LIST_COMPLETE: TODO_DEFINE,\n LIST_ERROR: TODO_DEFINE\n },\n\n ERROR: {\n START:TODO_DEFINE,\n STOP:TODO_DEFINE\n }\n\n})\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/constants/ACTION_TYPES.js\n **/","import invariant from 'invariant'\n\nexport const TODO_DEFINE = Symbol('Define property');\n\nexport const defineActionType = (obj) => {\n const result = Object.keys(obj).reduce((memo, namespace) => {\n const value = obj[namespace];\n let types = [];\n const namespaceTypes = {};\n\n if (typeof value == 'string') {\n types = value.trim().split(/\\s+/);\n } else {\n types = Object.keys(value)\n .filter((key) => value[key] === TODO_DEFINE);\n }\n\n invariant(\n /^[A-Z][A-Z0-9_]*$/.test(namespace),\n \"Namespace names must start with a capital letter, and be composed entirely of capital letters, numbers, and the underscore character.\"\n );\n\n invariant(\n (new Set(types)).size == types.length,\n \"There must be no repeated action types passed to defineActionTypes\"\n );\n\n types.forEach(t => {\n invariant(\n /^[A-Z][A-Z0-9_]*$/.test(t),\n \"Types must start with a capital letter, and be composed entirely of capital letters, numbers, and the underscore character.\"\n );\n namespaceTypes[t] = `@@app/${namespace}/${t}`;\n });\n\n memo[namespace] = namespaceTypes;\n\n return memo;\n }, {});\n\n return result;\n\n};\n\nexport default function defineActionTypes(obj) {\n const result = {}\n\n for (let [namespace, value] of Object.entries(obj)) {\n let types = value.trim().split(/\\s+/)\n const namespaceTypes = {}\n\n invariant(\n /^[A-Z][A-Z0-9_]*$/.test(namespace),\n \"Namespace names must start with a capital letter, and be composed entirely of capital letters, numbers, and the underscore character.\"\n )\n invariant(\n (new Set(types)).size == types.length,\n \"There must be no repeated action types passed to defineActionTypes\"\n )\n\n for (let type of types) {\n invariant(\n /^[A-Z][A-Z0-9_]*$/.test(type),\n \"Types must start with a capital letter, and be composed entirely of capital letters, numbers, and the underscore character.\"\n )\n\n namespaceTypes[type] = `@@app/${namespace}/${type}`\n }\n\n result[namespace] = namespaceTypes\n }\n\n return result\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/defineActionTypes.js\n **/","/**\n * Created by andrew on 3/22/16.\n */\n\nexport const createByIdDataReducer = ([KEY_REQUEST, KEY_SUCCESS, KEY_ERROR], next) => (state = {}, action) => {\n switch (action.type) {\n case KEY_REQUEST:\n case KEY_SUCCESS:\n case KEY_ERROR: {\n if (!action.id) {\n debugger;\n }\n if (state.errors) {\n debugger;\n }\n return {\n ...state,\n [action.id]: next(state, action)\n };\n }\n default:\n return state;\n }\n};\n\nconst createDataReducer = ([KEY_REQUEST, KEY_SUCCESS, KEY_ERROR], payloadActionNameProp = 'payload', payloadStateNameProp = 'data', payloadAssignFn = (k = []) => [...k]) => {\n\n const initialState = {\n loading: false,\n errors: {},\n [payloadStateNameProp]: payloadAssignFn()\n };\n\n return function formReducer(state = {...initialState}, action) {\n switch(action.type) {\n case KEY_REQUEST: {\n return {\n ...state,\n loading: true\n }\n }\n case KEY_SUCCESS: {\n const payload = action[payloadActionNameProp];\n return {\n ...initialState,\n [payloadStateNameProp]: payloadAssignFn(payload)\n };\n }\n case KEY_ERROR:\n {\n const {error} = action;\n return {\n ...state,\n loading: false,\n errors: Object.isSealed(error) ? {aggregate: error} : {...error}\n }\n }\n\n default:\n return state;\n }\n };\n};\n\nexport default createDataReducer;\n\n\n/** WEBPACK FOOTER **\n ** ./src/reducers/createDataReducer.js\n **/","/**\n * Created by andrew on 25/02/16.\n */\nimport T from '../../constants/ACTION_TYPES';\n\nconst initialState = {\n loading: false,\n valid: false,\n errors: null\n};\n\nexport const authReducer = (state = {...initialState}, action) => {\n switch(action.type) {\n case T.AUTH.AUTHENTICATE_START:\n return {\n ...state,\n loading: true\n };\n\n case T.AUTH.AUTHENTICATE_COMPLETE:\n return {\n ...state,\n loading: false,\n errors: null,\n valid: true\n };\n\n case T.AUTH.AUTHENTICATE_ERROR:\n return {\n ...state,\n loading: false,\n errors: \"Invalid token\",\n valid: false\n };\n\n default: return state;\n }\n};\n\n\n/** WEBPACK FOOTER **\n ** ./src/reducers/auth/authenticate.js\n **/","/**\n * Created by andrew on 25/02/16.\n */\nimport T from '../../constants/ACTION_TYPES';\nimport createFormReducer from '../createFormReducer';\n\nconst internalSignInReducer = createFormReducer([\n T.AUTH.SIGN_IN_START,\n T.AUTH.SIGN_IN_COMPLETE,\n T.AUTH.SIGN_IN_ERROR,\n T.AUTH.SIGN_IN_FORM_UPDATE\n]);\n\nexport const signInReducer = (state, action) => {\n switch (action.type) {\n case T.LOCATION.ENTER: {\n const { location } = action;\n const { pathname } = location;\n if (pathname == '/signin') {\n return internalSignInReducer(state, {\n type: T.AUTH.SIGN_IN_ERROR,\n error: null\n });\n }\n return state;\n }\n\n default: {\n return internalSignInReducer(state, action);\n }\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/reducers/auth/signin.js\n **/","/**\n * Created by andrew on 3/22/16.\n */\n\nconst createFormReducer = ([KEY_REQUEST, KEY_SUCCESS, KEY_ERROR, KEY_UPDATE]) => {\n\n const initialState = {\n loading: false,\n form: {},\n errors: {}\n };\n\n return function formReducer(state = {...initialState}, action) {\n switch(action.type) {\n case KEY_REQUEST: {\n return {\n ...state,\n loading: true\n }\n }\n case KEY_ERROR: {\n const { error } = action;\n return {\n ...state,\n loading: false,\n errors: error\n }\n }\n case KEY_SUCCESS: {\n return {\n ...initialState\n }\n }\n case KEY_UPDATE: {\n const { key, value } = action;\n return {\n ...state,\n form: {\n ...state.form,\n [key]: value\n },\n errors: {\n ...state.errors,\n aggregate: null,\n [key]: null\n }\n }\n }\n\n default:\n return state;\n }\n };\n};\n\nexport default createFormReducer;\n\n\n/** WEBPACK FOOTER **\n ** ./src/reducers/createFormReducer.js\n **/","/**\n * Created by andrew on 25/02/16.\n */\nimport T from '../../constants/ACTION_TYPES';\nimport createFormReducer from '../createFormReducer';\n\nexport const internalSignUpReducer = createFormReducer([\n T.AUTH.SIGN_UP_START,\n T.AUTH.SIGN_UP_COMPLETE,\n T.AUTH.SIGN_UP_ERROR,\n T.AUTH.SIGN_UP_FORM_UPDATE\n]);\n\n\nexport const signUpReducer = (state, action) => {\n switch (action.type) {\n case T.LOCATION.ENTER: {\n const { location } = action;\n const { pathname } = location;\n if (pathname == '/register') {\n return internalSignUpReducer(state, {\n type: T.AUTH.SIGN_UP_ERROR,\n error: null\n });\n }\n return state;\n }\n\n default: {\n return internalSignUpReducer(state, action);\n }\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/reducers/auth/signup.js\n **/","/**\n * Created by andrew on 25/02/16.\n */\nimport T from '../../constants/ACTION_TYPES';\n\nconst signOutInitialState = {\n loading: false,\n errors: null\n};\n\nexport const signOutReducer = (state = {...signOutInitialState}, action) => {\n switch(action.type) {\n case T.AUTH.SIGN_OUT_START:\n return {\n ...state,\n loading: true\n };\n case T.AUTH.SIGN_OUT_COMPLETE:\n return {\n ...state,\n loading: false,\n errors: null\n };\n default: return state;\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/reducers/auth/signout.js\n **/","/**\n * Created by andrew on 25/02/16.\n */\nimport T from '../../constants/ACTION_TYPES';\n\nconst initalState = {\n attributes: null,\n isSignedIn: false\n};\n\nexport const userReducer = (state = {...initalState}, action) => {\n switch(action.type) {\n case T.AUTH.AUTHENTICATE_COMPLETE:\n case T.AUTH.SIGN_IN_COMPLETE: {\n const { user } = action;\n return {...state,\n attributes: user,\n isSignedIn: !!user\n };\n }\n case T.AUTH.SIGN_OUT_COMPLETE:\n case T.AUTH.AUTHENTICATE_ERROR:\n return {\n ...initalState\n };\n default: return state;\n }\n};\n\n\n/** WEBPACK FOOTER **\n ** ./src/reducers/auth/user.js\n **/","/**\n * Created by andrew on 15/03/16.\n */\nimport { combineReducers } from 'redux';\n\nimport { accounts } from './accounts';\nimport { transfers } from './transfers';\nimport { entities } from './entities';\nimport { bookmarkAccount } from './bookmarkAccount';\n\nconst dataReducer = combineReducers({\n transfers,\n entities,\n accounts,\n bookmarkAccount\n});\n\nexport default dataReducer;\n\n\n/** WEBPACK FOOTER **\n ** ./src/reducers/data/index.js\n **/","/**\n * Created by andrew on 15/03/16.\n */\n/**\n * Created by andrew on 15/03/16.\n */\nimport T from '../../constants/ACTION_TYPES';\nimport { combineReducers } from 'redux';\nimport createFormReducer from '../createFormReducer';\n\nconst ownAccountsReducer = (state = [], action ) => {\n switch (action.type) {\n case T.ACCOUNTS.LIST_COMPLETE: {\n const { payload = [] } = action;\n //const accounts = Object.keys(payload).map(key => payload[key]);\n return [\n ...payload\n ];\n }\n default: return state;\n }\n};\n\nconst otherAccountsReducer = (state = [], action ) => {\n switch (action.type) {\n case T.AUTH.AUTHENTICATE_COMPLETE:\n case T.AUTH.SIGN_IN_COMPLETE: {\n const { user } = action;\n const { toAccounts = [] } = user;\n return otherAccountsReducer(state, {\n type: T.ACCOUNTS.LIST_REF_COMPLETE,\n payload: toAccounts\n });\n }\n\n case T.ACCOUNTS.LIST_REF_COMPLETE: {\n const { payload = {} } = action;\n const accounts = Object.keys(payload).map(key => payload[key]);\n return [\n ...accounts\n ];\n }\n\n default: return state;\n }\n};\n\n\nconst createAccountReducer = createFormReducer([\n T.ACCOUNTS.CREATE_START,\n T.ACCOUNTS.CREATE_COMPLETE,\n T.ACCOUNTS.CREATE_ERROR,\n T.ACCOUNTS.CREATE_FORM_UPDATE\n]);\n\nconst editAccountReducer = createFormReducer([\n T.ACCOUNTS.EDIT_START,\n T.ACCOUNTS.EDIT_COMPLETE,\n T.ACCOUNTS.EDIT_ERROR,\n T.ACCOUNTS.EDIT_FORM_UPDATE\n]);\n\nexport const accounts = combineReducers({\n own: ownAccountsReducer,\n other: otherAccountsReducer,\n create: createAccountReducer,\n edit: editAccountReducer\n});\n\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/reducers/data/accounts.js\n **/","/**\n * Created by andrew on 15/03/16.\n */\n/**\n * Created by andrew on 15/03/16.\n */\nimport T from '../../constants/ACTION_TYPES';\nimport createListReducer from '../createDataReducer';\nimport {createByIdDataReducer } from '../createDataReducer';\n\nconst selectedEvents = [\n T.TRANSFERS.LIST_START,\n T.TRANSFERS.LIST_COMPLETE,\n T.TRANSFERS.LIST_ERROR\n];\n\nexport const transfers = createByIdDataReducer(selectedEvents, createListReducer(selectedEvents));\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/reducers/data/transfers.js\n **/","/**\n * Created by andrew on 15/03/16.\n */\nimport T from '../../constants/ACTION_TYPES';\n\nconst initialState = {\n};\n\nconst nodeInitialState = {\n loading: false,\n data: {}\n};\n\nexport const entities = (state = {...initialState}, action) => {\n if (typeof action.length !== 'undefined') {\n debugger;\n }\n switch(action.type) {\n case T.ENTITIES.REQUESTED: {\n const { id } = action;\n return {\n ...state,\n [id]: null\n }\n }\n case T.ENTITIES.RECEIVED: {\n const { id, entity = {} } = action;\n return {\n ...state,\n [id]: {\n ...entity\n }\n }\n }\n\n case T.AUTH.AUTHENTICATE_COMPLETE:\n case T.AUTH.SIGN_IN_COMPLETE:\n {\n const { user } = action;\n const { toAccounts = [] } = user;\n return {\n ...state,\n ...toAccounts\n };\n\n }\n case T.ACCOUNTS.LIST_COMPLETE: {\n const { payload } = action;\n const hashMap = payload.reduce((memo, item) => {\n memo[item.accountId] = item;\n return memo;\n }, {});\n return {\n ...state,\n ...hashMap\n };\n }\n\n\n case T.ACCOUNT.SINGLE_START:\n case T.ACCOUNT.SINGLE_COMPLETE:\n case T.ACCOUNT.SINGLE_ERROR: {\n const { id, payload = {}, error } = action;\n // const { accountId } = payload;\n const isError = ((action.type) == T.ACCOUNT.SINGLE_ERROR);\n const isStart = ((action.type) == T.ACCOUNT.SINGLE_START);\n\n return {\n ...state,\n [id]: isStart ? { isLoading: true, 'title': 'Loading' } : (isError ? error : payload)\n };\n }\n case T.ENTITIES.RECEIVED_LIST:\n default:\n return state;\n }\n};\n\n\n/** WEBPACK FOOTER **\n ** ./src/reducers/data/entities.js\n **/","/**\n * Created by andrew on 18/03/16.\n */\nimport T from '../../constants/ACTION_TYPES';\n\nconst optionsLoaderInitialState = {\n loading: false,\n options: [],\n value: ''\n};\n\nconst initialState = {\n loading: false,\n form: {},\n errors: {},\n accountsDisabled: true,\n\n ownersLookup: {\n ...optionsLoaderInitialState\n },\n accountsLookup: {\n ...optionsLoaderInitialState\n }\n};\n\nconst optionsLoaderReducer = (state = {...optionsLoaderInitialState}, action) => {\n switch (action.type) {\n case T.ACCOUNTS.CREATE_REF_OWNER_LOOKUP_START:\n case T.ACCOUNTS.CREATE_REF_ACCOUNT_LOOKUP_START: {\n const value = action.payload;\n return {\n ...state,\n loading: true,\n value\n };\n }\n\n case T.ACCOUNTS.CREATE_REF_OWNER_LOOKUP_COMPLETE:\n case T.ACCOUNTS.CREATE_REF_ACCOUNT_LOOKUP_COMPLETE: {\n const { payload } = action;\n return {\n ...state,\n loading: false,\n options: payload === null ? state.options : payload\n };\n }\n\n default:\n return state;\n }\n};\n\nexport const bookmarkAccount = (state = {...initialState}, action) => {\n switch (action.type) {\n case T.ACCOUNTS.CREATE_REF_START: {\n return {\n ...state,\n loading: true\n };\n }\n case T.ACCOUNTS.CREATE_REF_COMPLETE:{\n return {\n ...initialState\n };\n }\n case T.ACCOUNTS.CREATE_REF_ERROR: {\n const { error } = action;\n return {\n ...state,\n loading: false,\n errors: error\n };\n }\n case T.ACCOUNTS.CREATE_REF_FORM_UPDATE:{\n const { key, value } = action;\n const isOwnerSetBlank = ((key == 'owner') && !value);\n const isOwnerSelected = ((key == 'owner') && value);\n const nextAccountsDisabled = isOwnerSelected ? false : state.accountsDisabled;\n\n const nextForm = isOwnerSetBlank ? {\n ...state.form,\n account: null,\n [key]: value\n } : {\n ...state.form,\n [key]: value\n };\n\n const nextErrors = {\n ...state.errors,\n [key]: null\n };\n return {\n ...state,\n accountsDisabled: nextAccountsDisabled,\n form: nextForm,\n errors: nextErrors\n };\n }\n case T.ACCOUNTS.CREATE_REF_OWNER_LOOKUP_START:\n case T.ACCOUNTS.CREATE_REF_OWNER_LOOKUP_COMPLETE: {\n return {\n ...state,\n ownersLookup:\n optionsLoaderReducer(state.ownersLookup, action)\n };\n }\n case T.ACCOUNTS.CREATE_REF_ACCOUNT_LOOKUP_START:\n case T.ACCOUNTS.CREATE_REF_ACCOUNT_LOOKUP_COMPLETE: {\n return {\n ...state,\n accountsLookup:\n optionsLoaderReducer(state.accountsLookup, action)\n };\n }\n default:\n return state;\n }\n};\n\n\n/** WEBPACK FOOTER **\n ** ./src/reducers/data/bookmarkAccount.js\n **/","/**\n * Created by andrew on 15/03/16.\n */\n/**\n * Created by andrew on 25/02/16.\n */\nimport { combineReducers } from 'redux';\n\nimport { account } from './account';\nimport { error } from './errors';\nimport { bookmarkAccount } from './bookmarkAccount';\nimport { transfersMake } from './transfersMake';\n\n\nconst uiReducer = combineReducers({\n account,\n error,\n bookmarkAccount,\n transfersMake\n});\n\nexport default uiReducer;\n\n\n/** WEBPACK FOOTER **\n ** ./src/reducers/ui/index.js\n **/","/**\n * Created by andrew on 15/03/16.\n */\n/**\n * Created by andrew on 15/03/16.\n */\nimport T from '../../constants/ACTION_TYPES';\nimport { combineReducers } from 'redux';\n\n\nconst initialState = {\n loading: false,\n errors: []\n};\n\nexport const account = (state = { ...initialState }, action ) => {\n switch(action.type) {\n case T.ACCOUNT.SINGLE_START: {\n return {\n ...state,\n loading: true\n };\n }\n case T.ACCOUNT.SINGLE_COMPLETE: {\n return {\n ...initialState\n };\n }\n case T.ACCOUNT.SINGLE_ERROR: {\n const { error } = action;\n return {\n ...state,\n loading: false,\n errors: [ error ]\n };\n\n }\n\n default:\n return state;\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/reducers/ui/account.js\n **/","/**\n * Created by andrew on 18/03/16.\n */\n\nimport T from '../../constants/ACTION_TYPES';\n\nexport const error = (state = null, action ) => {\n switch (action.type) {\n case T.ERROR.STOP: {\n return null;\n }\n case T.ERROR.START:\n return action.payload;\n \n default:\n return state;\n }\n};\n\n\n/** WEBPACK FOOTER **\n ** ./src/reducers/ui/errors.js\n **/","/**\n * Created by andrew on 18/03/16.\n */\nexport const bookmarkAccount = (state = {}, action) => {\n switch (action.type) {\n default:\n return state;\n }\n};\n\n\n/** WEBPACK FOOTER **\n ** ./src/reducers/ui/bookmarkAccount.js\n **/","/**\n * Created by andrew on 15/03/16.\n */\n/**\n * Created by andrew on 15/03/16.\n */\nimport T from '../../constants/ACTION_TYPES';\nimport createFormReducer from '../createFormReducer';\n\nexport const transfersMake = createFormReducer([\n T.TRANSFERS.MAKE_START,\n T.TRANSFERS.MAKE_COMPLETE,\n T.TRANSFERS.MAKE_ERROR,\n T.TRANSFERS.MAKE_FORM_UPDATE\n]);\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/reducers/ui/transfersMake.js\n **/","/**\n * Created by andrew on 26/02/16.\n */\nimport { authenticate } from \"./authenticate\";\nimport { applyConfig } from \"../utils/clientSettings\";\n\nexport const SET_ENDPOINT_KEYS = \"SET_ENDPOINT_KEYS\";\n\nexport function setEndpointKeys(endpoints, currentEndpointKey, defaultEndpointKey) {\n return {\n type: SET_ENDPOINT_KEYS,\n endpoints,\n currentEndpointKey,\n defaultEndpointKey\n };\n}\n\nexport function configure(endpoint={}, settings={}) {\n\n return dispatch => {\n\n return applyConfig({ dispatch, endpoint, settings })\n .then(() => {\n return dispatch(authenticate());\n });\n\n };\n}\n\n\n/** WEBPACK FOOTER **\n ** ./src/actions/configure.js\n **/","/**\n * Created by andrew on 26/02/16.\n */\nimport T from '../constants/ACTION_TYPES';\nimport { makeActionCreator } from '../utils/actions';\nimport * as U from '../utils/sessionStorage';\nimport { apiGetCurrentUser } from '../utils/api';\nimport { entityReceived } from './entities';\n\nexport const authenticateStart = makeActionCreator(T.AUTH.AUTHENTICATE_START);\nexport const authenticateComplete = makeActionCreator(T.AUTH.AUTHENTICATE_COMPLETE, 'user');\nexport const authenticateError = makeActionCreator(T.AUTH.AUTHENTICATE_ERROR, 'errors');\n\nexport function authenticate(forceReread) {\n return (dispatch) => {\n\n dispatch(authenticateStart());\n\n const savedUserPromise = new Promise((rs, rj) => {\n\n const currentHeaders = U.retrieveHeaders();\n const accessToken = currentHeaders[\"access-token\"];\n\n if (!accessToken) {\n return rj({ reason: 'no token'});\n }\n\n const savedUser = U.retrieveUserData();\n\n if (savedUser && !forceReread) {\n return rs(savedUser);\n }\n\n return apiGetCurrentUser().then((userData) => {\n U.persistUserData(userData);\n dispatch(entityReceived(userData.id, userData));\n rs(userData);\n }, (err) => {\n rj(err);\n });\n\n });\n\n\n return savedUserPromise\n .then(user => {\n\n dispatch(authenticateComplete(user));\n\n return user;\n })\n .catch(({reason} = {}) => {\n\n dispatch(authenticateError([reason]));\n\n return Promise.resolve({reason});\n });\n\n\n };\n}\n\n\n/** WEBPACK FOOTER **\n ** ./src/actions/authenticate.js\n **/","/**\n * Created by andrew on 15/03/16.\n */\nexport function makeActionCreator(type, ...argNames) {\n return function(...args) {\n return argNames.reduce((action, arg, index) => {\n action[arg] = args[index];\n return action;\n }, { type });\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/actions.js\n **/","/**\n * Created by andrew on 26/02/16.\n */\nimport Cookies from 'js-cookie';\nimport * as C from \"./constants\";\nimport root from './root';\n\n// stateful variables that persist throughout session\nconst authState = {\n currentSettings: {},\n currentEndpoint: {},\n defaultEndpointKey: 'default'\n};\n\nconst memoryStorage = {};\n\nfunction clean(obj) {\n Object.keys(obj).forEach(k => {\n delete obj[k];\n });\n return obj;\n}\n\nexport function setCurrentSettings (s) {\n authState.currentSettings = s;\n}\n\nexport function setCurrentEndpoint (e) {\n authState.currentEndpoint = e;\n}\n\n\n/**\n * @deprecated\n * @param k\n */\nexport function setCurrentEndpointKey (k) {\n persistData(C.SAVED_CONFIG_KEY, k || getDefaultEndpointKey());\n}\n\n/**\n * @deprecated\n * @param k\n */\nexport function setDefaultEndpointKey (k) {\n persistData(C.DEFAULT_CONFIG_KEY, k);\n}\n\nexport function getDefaultEndpointKey () {\n return retrieveData(C.DEFAULT_CONFIG_KEY);\n}\n\n// reset stateful variables\nexport function resetConfig () {\n clean(authState);\n authState.currentSettings = {};\n authState.currentEndpoint = {};\n destroySession();\n}\n\n\nexport function destroySession () {\n\n ([\n C.SAVED_CREDS_KEY,\n C.SAVED_CONFIG_KEY,\n C.SAVED_USER_INFO\n ]).forEach(key => {\n // kill all local storage keys\n if (root.localStorage) {\n root.localStorage.removeItem(key);\n }\n\n // remove from base path in case config is not specified\n Cookies.remove(key, {\n path: authState.currentSettings.cookiePath || \"/\"\n });\n });\n\n clean(memoryStorage);\n}\n\nfunction unescapeQuotes (val) {\n return val && val.replace(/(\"|')/g, \"\");\n}\n\nexport function getInitialEndpointKey () {\n return unescapeQuotes(\n Cookies.get(C.SAVED_CONFIG_KEY) ||\n (root.localStorage && root.localStorage.getItem(C.SAVED_CONFIG_KEY))\n );\n}\n\nexport function isApiRequest(url) {\n return true;\n}\n\nexport function getTokenFormat() {\n return authState.currentSettings.tokenFormat;\n}\n\nexport const persistUserData = (user) => {\n memoryStorage[C.SAVED_USER_INFO] = user;\n};\n\nexport const retrieveUserData = () =>{\n return memoryStorage[C.SAVED_USER_INFO];\n};\n\nexport function retrieveHeaders() {\n return retrieveData(C.SAVED_CREDS_KEY) || {};\n}\n\nexport function persistData (key, val) {\n val = root.JSON.stringify(val);\n\n switch (authState.currentSettings.storage) {\n case \"localStorage\":\n root.localStorage.setItem(key, val);\n break;\n\n default:\n Cookies.set(key, val, {\n expires: authState.currentSettings.cookieExpiry,\n path: authState.currentSettings.cookiePath\n });\n break;\n }\n}\n\nexport function retrieveData (key) {\n let val = null;\n\n switch (authState.currentSettings.storage) {\n\n case \"localStorage\":\n val = root.localStorage && root.localStorage.getItem(key);\n break;\n\n default:\n val = Cookies.get(key);\n break;\n }\n\n // if value is a simple string, the parser will fail. in that case, simply\n // unescape the quotes and return the string.\n try {\n // return parsed json response\n return JSON.parse(val);\n } catch (err) {\n // unescape quotes\n return unescapeQuotes(val);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/sessionStorage.js\n **/","/**\n * Created by andrew on 26/02/16.\n */\nexport const INITIAL_CONFIG_KEY = \"default\";\nexport const DEFAULT_CONFIG_KEY = \"defaultConfigKey\";\nexport const SAVED_CONFIG_KEY = \"currentConfigName\";\nexport const SAVED_CREDS_KEY = \"authHeaders\";\nexport const SAVED_USER_INFO = \"user-info\";\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/constants.js\n **/","/**\n * Created by andrew on 27/02/16.\n */\n// even though this code shouldn't be used server-side, node will throw\n// errors if \"window\" is used\nexport default Function(\"return this\")() || (42, eval)(\"this\");\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/root.js\n **/","/**\n * Created by andrew on 12/03/16.\n */\nimport authedFetch from './fetch';\nimport * as ENDPOINTS from './apiEndpoints';\nimport root from './root';\nimport { parseResponse } from \"./handleFetchResponse\";\n\nconst JSON_HEADERS = {\n headers: {\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n }\n};\n\nconst METHODS = {\n DELETE: {\n ...JSON_HEADERS,\n method: \"delete\"\n },\n GET: {\n ...JSON_HEADERS,\n method: \"get\"\n },\n POST: {\n ...JSON_HEADERS,\n method: \"post\"\n }\n};\n\nconst fetch = (...args) => authedFetch(...args).then(parseResponse);\n\nexport const apiSignIn = (body) => fetch(ENDPOINTS.emailSignIn(), {\n ...METHODS.POST,\n body: root.JSON.stringify(body)\n});\n\nexport const apiSignUp = (body) => fetch(ENDPOINTS.emailSignUp(), {\n ...METHODS.POST,\n body: root.JSON.stringify(body)\n});\n\nexport const apiGetCurrentUser = () => fetch(ENDPOINTS.currentUser(), {\n ...METHODS.GET\n});\n\nexport const apiCreateAccount = (customerId, {\n title,\n balance: initialBalance,\n description }) => fetch(ENDPOINTS.accountsPath(), {\n ...METHODS.POST,\n body: root.JSON.stringify({\n customerId,\n title,\n initialBalance,\n description })\n});\n\nexport const apiCreateRefAccount = (customerId, {\n owner, account: accountId, title, description }) => fetch(ENDPOINTS.refAccounts(customerId), {\n ...METHODS.POST,\n body: root.JSON.stringify({\n owner,\n id: accountId,\n title,\n description })\n});\n\nexport const apiMakeTransfer = (fromAccountId, {\n account, amount, description }) => fetch(ENDPOINTS.transfers(), {\n ...METHODS.POST,\n body: root.JSON.stringify({\n amount,\n fromAccountId,\n \"toAccountId\": account,\n description\n })\n});\n\nexport const apiRetrieveAccounts = (customerId) => fetch(ENDPOINTS.customersAccounts(customerId), {\n ...METHODS.GET\n});\n\nexport const apiRetrieveTransfers = (accountId) => fetch(ENDPOINTS.history(accountId), {\n ...METHODS.GET\n});\n\nexport const apiRetrieveAccount = (accountId) => fetch(ENDPOINTS.account(accountId), {\n ...METHODS.GET\n});\n\nexport const apiDeleteAccount = (customerId, accountId) => fetch(ENDPOINTS.account(accountId), {\n ...METHODS.DELETE\n});\n\nexport const apiDeleteRefAccount = (customerId, accountId) => fetch(ENDPOINTS.refAccount(customerId, accountId), {\n ...METHODS.DELETE\n});\n\nexport const apiRetrieveUsers = (email) => fetch(ENDPOINTS.customersLookup({ email }), {\n ...METHODS.GET\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/api.js\n **/","/**\n * Created by andrew on 26/02/16.\n */\nimport originalFetch from \"isomorphic-fetch\";\nimport * as C from \"./constants\";\n\nimport {\n retrieveData,\n persistData,\n getTokenFormat,\n isApiRequest\n} from \"./sessionStorage\";\n\n\nfunction getAuthHeaders(url) {\n if (isApiRequest(url)) {\n // fetch current auth headers from storage\n let currentHeaders = retrieveData(C.SAVED_CREDS_KEY) || {},\n nextHeaders = {};\n\n if (currentHeaders === 'undefined') {\n currentHeaders = {};\n }\n // bust IE cache\n nextHeaders[\"If-Modified-Since\"] = \"Mon, 26 Jul 1997 05:00:00 GMT\";\n\n // set header for each key in `tokenFormat` config\n for (var key in getTokenFormat()) {\n if (key in currentHeaders) {\n nextHeaders[key] = currentHeaders[key];\n }\n }\n\n return nextHeaders;\n } else {\n return {};\n }\n}\n\nfunction updateAuthCredentials(resp) {\n\n // set header for each key in `tokenFormat` config\n const newHeaders = {};\n\n // set flag to ensure that we don't accidentally nuke the headers\n // if the response tokens aren't sent back from the API\n let blankHeaders = true;\n\n // set header key + val for each key in `tokenFormat` config\n for (let key in getTokenFormat()) {\n newHeaders[key] = resp.headers.get(key);\n\n if (newHeaders[key]) {\n blankHeaders = false;\n }\n }\n\n // persist headers for next request\n if (!blankHeaders) {\n persistData(C.SAVED_CREDS_KEY, newHeaders);\n }\n\n return resp;\n}\n\nexport default function (url, options = {}) {\n\n if (!options.headers) {\n options.headers = {}\n }\n\n options.headers = {\n ...options.headers,\n ...getAuthHeaders(url)\n };\n\n //extend(options.headers, getAuthHeaders(url));\n return originalFetch(url, options)\n .then(resp => updateAuthCredentials(resp));\n}\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/fetch.js\n **/","/**\n * Created by andrew on 9/16/16.\n */\nconst API_ROOT = '/api';\n\nexport const emailSignIn = () => API_ROOT + '/login';\nexport const emailSignUp = () => API_ROOT + '/customers';\nexport const currentUser = () => API_ROOT + '/user';\nexport const accountsPath = () => API_ROOT + '/accounts';\nexport const customersLookup = (lookup) => `${API_ROOT}/customers?${ makeQuery(lookup) }`;\nexport const customersAccounts = (customerId) => `${API_ROOT}/customers/${customerId}/accounts`;\nexport const refAccounts = (customerId) => `${API_ROOT}/customers/${customerId}/toaccounts`;\nexport const refAccount = (customerId, accountId) => `${API_ROOT}/customers/${customerId}/toaccounts/${accountId}`;\nexport const account = (accountId) => `${API_ROOT}/accounts/${accountId}`;\nexport const history = (accountId) => `${API_ROOT}/accounts/${accountId}/history`;\nexport const transfers = () => API_ROOT + '/transfers';\n\nfunction makeQuery(params) {\n return Object.keys(params)\n .map(key => [ encodeURIComponent(key), encodeURIComponent(params[key]) ].join('='))\n .join('&');\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/apiEndpoints.js\n **/","/**\n * Created by andrew on 26/02/16.\n */\nexport function parseResponse (response) {\n let json = response.json();\n if (response.status >= 200 && response.status < 300) {\n return json;\n } else {\n\n //error: \"Bad Request\"\n //exception: \"org.springframework.web.bind.MethodArgumentNotValidException\"\n //message: \"Validation failed for argument at index 0 in method: public rx.Observable net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.customers.CustomerController.createCustomer(net.chrisrichardson.eventstore.javaexamples.banking.common.customers.CustomerInfo), with 3 error(s): [Field error in object 'customerInfo' on field 'ssn': rejected value [null]; codes [NotNull.customerInfo.ssn,NotNull.ssn,NotNull.java.lang.String,NotNull]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [customerInfo.ssn,ssn]; arguments []; default message [ssn]]; default message [may not be null]] [Field error in object 'customerInfo' on field 'email': rejected value [null]; codes [NotNull.customerInfo.email,NotNull.email,NotNull.java.lang.String,NotNull]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [customerInfo.email,email]; arguments []; default message [email]]; default message [may not be null]] [Field error in object 'customerInfo' on field 'phoneNumber': rejected value [null]; codes [NotNull.customerInfo.phoneNumber,NotNull.phoneNumber,NotNull.java.lang.String,NotNull]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [customerInfo.phoneNumber,phoneNumber]; arguments []; default message [phoneNumber]]; default message [may not be null]] \"\n //path: \"/customers\"\n //status: 400\n //timestamp: 1458002123103\n\n return json.then(({ message, ...rest }) => {\n if (!message) {\n return rest;\n }\n const jvmPattern = /\\[Field error in object '\\w+' on field '(\\w+)'/gm;\n let errors = {};\n message.replace(jvmPattern, (m, name) => {\n errors[name] = ['Required'];\n });\n\n if (Object.keys(errors).length) {\n return { errors };\n }\n return { errors: message };\n }).then(err => Promise.reject(err));\n }\n}\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/handleFetchResponse.js\n **/","/**\n * Created by andrew on 27/02/16.\n */\nimport T from '../constants/ACTION_TYPES';\nimport { makeActionCreator } from '../utils/actions';\nimport * as api from '../utils/api';\nimport { authenticate } from './authenticate';\nimport root from '../utils/root';\n\nexport const entityRequested = makeActionCreator(T.ENTITIES.REQUESTED, 'id');\nexport const entityReceived = makeActionCreator(T.ENTITIES.RECEIVED, 'id', 'entity');\n\nexport const accountsListRequested = makeActionCreator(T.ACCOUNTS.LIST_START);\nexport const accountsListReceived = makeActionCreator(T.ACCOUNTS.LIST_COMPLETE, 'payload');\nexport const accountsListError = makeActionCreator(T.ACCOUNTS.LIST_ERROR, 'error');\n\nexport const accountsRefListReceived = makeActionCreator(T.ACCOUNTS.LIST_REF_COMPLETE, 'payload');\n\nexport const accountCreateStart = makeActionCreator(T.ACCOUNTS.CREATE_START);\nexport const accountCreateComplete = makeActionCreator(T.ACCOUNTS.CREATE_COMPLETE, 'payload');\nexport const accountCreateError = makeActionCreator(T.ACCOUNTS.CREATE_ERROR, 'error');\nexport const accountCreateFormUpdate = makeActionCreator(T.ACCOUNTS.CREATE_FORM_UPDATE, 'key', 'value');\n\nexport const accountRefCreateStart = makeActionCreator(T.ACCOUNTS.CREATE_REF_START);\nexport const accountRefCreateComplete = makeActionCreator(T.ACCOUNTS.CREATE_REF_COMPLETE, 'payload');\nexport const accountRefCreateError = makeActionCreator(T.ACCOUNTS.CREATE_REF_ERROR, 'error');\nexport const accountRefCreateFormUpdate = makeActionCreator(T.ACCOUNTS.CREATE_REF_FORM_UPDATE, 'key', 'value');\n\nexport const accountRequested = makeActionCreator(T.ACCOUNT.SINGLE_START, 'id');\nexport const accountComplete = makeActionCreator(T.ACCOUNT.SINGLE_COMPLETE, 'id', 'payload');\nexport const accountError = makeActionCreator(T.ACCOUNT.SINGLE_ERROR, 'id', 'error');\n\n\nexport function accountsList(customerId) {\n return dispatch => {\n dispatch(accountsListRequested());\n return api.apiRetrieveAccounts(customerId)\n .then(({ accounts = []}) => {\n dispatch(accountsListReceived(accounts));\n })\n .catch(err => {\n dispatch(accountsListError(err));\n return Promise.resolve({ error: err });\n })\n };\n}\n\nfunction readUntilChanged(initialData, promisedFn, leftCalls) {\n if (!leftCalls) {\n return Promise.reject('Data not changed')\n }\n const initialDataFlat = root['JSON'].stringify(initialData);\n return new Promise((rs, rj) => {\n setTimeout(() => {\n promisedFn()\n .then(data => {\n debugger;\n if (initialDataFlat == root['JSON'].stringify(data)) {\n return readUntilChanged.call(this, data, promisedFn, leftCalls - 1).then(rs, rj); // Promise\n }\n rs(data);\n })\n .catch(rj)\n }, 500 * Math.pow(2, 4 - leftCalls));\n })\n}\n\nexport function accountCreate(customerId, payload) {\n return dispatch => {\n dispatch(accountCreateStart());\n return api.apiCreateAccount(customerId, payload)\n .then(data => {\n if (data.accountId) {\n const { accountId } = data;\n dispatch(accountCreateComplete({\n id: accountId,\n ...payload\n }));\n // dispatch(entityReceived(accountId, payload));\n dispatch(authenticate(true));\n return accountId;\n } else {\n return readUntilChanged(data, () => api.apiRetrieveAccounts(customerId), 4)\n .then(() => {\n debugger;\n dispatch(accountCreateComplete({\n id: ''\n }));\n dispatch(authenticate(true));\n });\n }\n })\n .catch(err => {\n debugger;\n dispatch(accountCreateError(err));\n // return Promise.resolve({ error: err });\n });\n };\n}\n\nexport function accountRefCreate(customerId, payload) {\n return dispatch => {\n dispatch(accountRefCreateStart());\n return api.apiCreateRefAccount(customerId, payload)\n .then(({ id }) => {\n dispatch(accountRefCreateComplete({\n ...payload,\n id\n }));\n dispatch(entityReceived(id, payload));\n return dispatch(authenticate(true));\n })\n .catch(err => {\n debugger;\n dispatch(accountRefCreateError(err));\n return Promise.resolve({ error: err });\n })\n };\n}\n\n\n\n\nexport function fetchOwnAccounts(customerId) {\n return dispatch => {\n //dispatch(accountsListRequested());\n return api.apiRetrieveAccounts(customerId)\n .then(data => {\n dispatch(accountsListReceived(data.accounts));\n });\n };\n}\n\nexport function fetchAccount(accountId) {\n return dispatch => {\n dispatch(accountRequested(accountId));\n return api.apiRetrieveAccount(accountId)\n .then(data => {\n dispatch(accountComplete(accountId, data));\n })\n .catch(err => {\n dispatch(accountError(accountId, err));\n });\n };\n}\n\nexport const deleteAccountRequested = makeActionCreator(T.ACCOUNT.DELETE_START);\nexport const deleteAccountComplete = makeActionCreator(T.ACCOUNT.DELETE_COMPLETE);\nexport const deleteAccountError = makeActionCreator(T.ACCOUNT.DELETE_ERROR);\n\nexport function deleteAccount(customerId, accountId, isRef) {\n return dispatch => {\n dispatch(deleteAccountRequested());\n\n const deleteApiAction = (isRef ?\n api.apiDeleteRefAccount(customerId, accountId) :\n api.apiDeleteAccount(customerId, accountId));\n\n return deleteApiAction\n .then(data => {\n dispatch(deleteAccountComplete(data));\n return Promise.resolve(data);\n })\n .catch(err => {\n dispatch(deleteAccountError(err));\n return Promise.reject(err);\n })\n };\n}\n\nexport const errorMessageStart = makeActionCreator(T.ERROR.START, 'payload');\nexport const errorMessageStop = makeActionCreator(T.ERROR.STOP);\n\nexport function errorMessageTimedOut(error, timeout) {\n return dispatch => {\n dispatch(errorMessageStart(error));\n setTimeout(() => {\n dispatch(errorMessageStop());\n }, timeout || 5000);\n };\n}\n\nexport const createRefOwnerLookupStart = makeActionCreator(T.ACCOUNTS.CREATE_REF_OWNER_LOOKUP_START, 'payload');\nexport const createRefOwnerLookupComplete = makeActionCreator(T.ACCOUNTS.CREATE_REF_OWNER_LOOKUP_COMPLETE, 'payload');\n\nexport const createRefAccountLookupStart = makeActionCreator(T.ACCOUNTS.CREATE_REF_ACCOUNT_LOOKUP_START, 'payload');\nexport const createRefAccountLookupComplete = makeActionCreator(T.ACCOUNTS.CREATE_REF_ACCOUNT_LOOKUP_COMPLETE, 'payload');\n\nexport const createRefOwnerLookup = lookup => {\n return dispatch => {\n dispatch(createRefOwnerLookupStart(lookup));\n return api.apiRetrieveUsers(lookup)\n .then(data => {\n\n const { customers = [] } = data || {};\n\n const arr = customers.map(c => {\n const { id, name, email } = c;\n const fullName = ([name.firstName, name.lastName]).filter(i => i).join(' ');\n const label = email ? `${ fullName } (${ email })` : fullName;\n return {\n value: id,\n label\n };\n });\n dispatch(createRefOwnerLookupComplete(arr));\n return { options: arr };\n })\n .catch(err => {\n dispatch(createRefOwnerLookupComplete([]));\n return { options: [] };\n });\n };\n};\n\nexport const createRefAccountLookup = customerId => {\n return dispatch => {\n dispatch(createRefAccountLookupStart(customerId));\n return api.apiRetrieveAccounts(customerId)\n .then(({ accounts }) => {\n const arr = accounts.map(({ accountId, title }) => ({\n value: accountId,\n label: title\n }));\n dispatch(createRefAccountLookupComplete(arr));\n return { options: arr };\n })\n .catch(err => {\n dispatch(createRefAccountLookupComplete([]));\n return { options: [] };\n });\n };\n};\n\n\nexport const makeTransferRequested = makeActionCreator(T.TRANSFERS.MAKE_START);\nexport const makeTransferComplete = makeActionCreator(T.TRANSFERS.MAKE_COMPLETE, 'payload');\nexport const makeTransferError = makeActionCreator(T.TRANSFERS.MAKE_ERROR, 'error');\nexport const makeTransferFormUpdate = makeActionCreator(T.TRANSFERS.MAKE_FORM_UPDATE, 'key', 'value');\n\nexport const makeTransfer = (accountId, payload) => {\n return dispatch => {\n dispatch(makeTransferRequested());\n return api.apiMakeTransfer(accountId, payload)\n .then(data => {\n const { moneyTransferId } = data;\n dispatch(makeTransferComplete(data));\n return moneyTransferId;\n })\n .catch(err => {\n dispatch(makeTransferError(err));\n return err;\n });\n };\n};\n\nexport const getTransfersRequested = makeActionCreator(T.TRANSFERS.LIST_START, 'id');\nexport const getTransfersComplete = makeActionCreator(T.TRANSFERS.LIST_COMPLETE, 'id', 'payload');\nexport const getTransfersError = makeActionCreator(T.TRANSFERS.LIST_ERROR, 'id', 'error');\n\nexport const getTransfers = (accountId) => {\n return dispatch => {\n dispatch(getTransfersRequested(accountId));\n return api.apiRetrieveTransfers(accountId)\n .then(data => {\n dispatch(getTransfersComplete(accountId, data['transactionsHistory']));\n return data;\n })\n .catch(err => {\n dispatch(getTransfersError(accountId, err));\n return err;\n });\n };\n};\n\n\n/** WEBPACK FOOTER **\n ** ./src/actions/entities.js\n **/","/**\n * Created by andrew on 26/02/16.\n */\n\nimport * as C from \"./constants\";\nimport parseEndpointConfig from \"./parseEndpointConfig\";\nimport { setEndpointKeys } from \"../actions/configure\";\n\nimport {\n setCurrentSettings,\n getInitialEndpointKey,\n setDefaultEndpointKey,\n setCurrentEndpoint,\n setCurrentEndpointKey,\n retrieveData,\n destroySession\n} from \"./sessionStorage\";\n\nconst defaultSettings = {\n forceHardRedirect: false,\n storage: \"cookies\",\n cookieExpiry: 14,\n cookiePath: \"/\",\n initialCredentials: null,\n\n tokenFormat: {\n \"access-token\": \"{{ access-token }}\"\n }\n};\n\n\n// save session configuration\nexport function applyConfig({ dispatch, endpoint={}, settings={}, reset=false } = {}) {\n\n if (settings.currentLocation && settings.currentLocation.match(/blank=true/)) {\n return Promise.resolve({blank: true});\n }\n\n let currentEndpointKey;\n\n if (reset) {\n resetConfig();\n }\n\n if (settings.initialCredentials) {\n currentEndpointKey = settings.initialCredentials.currentEndpointKey;\n }\n\n setCurrentSettings({ ...defaultSettings, ...settings });\n\n const currentHeaders = retrieveData(C.SAVED_CREDS_KEY) || {};\n\n const accessToken = currentHeaders[\"access-token\"];\n\n //if (authRedirectHeaders && authRedirectHeaders[\"access-token\"]) {\n if (!accessToken) {\n destroySession();\n }\n\n\n let { defaultEndpointKey, currentEndpoint } = parseEndpointConfig(\n endpoint, getInitialEndpointKey()\n );\n\n if (!currentEndpointKey) {\n currentEndpointKey = defaultEndpointKey;\n }\n\n // persist default config key with session storage\n setDefaultEndpointKey(defaultEndpointKey);\n setCurrentEndpoint(currentEndpoint);\n\n dispatch(setEndpointKeys(\n Object.keys(currentEndpoint),\n currentEndpointKey,\n defaultEndpointKey));\n\n setCurrentEndpointKey(currentEndpointKey);\n\n return Promise.resolve();\n\n}\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/clientSettings.js\n **/","/**\n * Created by andrew on 26/02/16.\n */\nimport * as C from \"./constants\";\n\n// base endpoint that other endpoints extend from\nconst defaultEndpoint = {\n apiUrl: \"/api\",\n signOutPath: \"/auth/sign_out\",\n emailSignInPath: \"/auth/sign_in\",\n emailRegistrationPath: \"/auth\",\n accountUpdatePath: \"/auth\",\n accountDeletePath: \"/auth\",\n passwordResetPath: \"/auth/password\",\n passwordUpdatePath: \"/auth/password\",\n tokenValidationPath: \"/auth/validate_token\",\n\n authProviderPaths: {\n github: \"/auth/github\",\n facebook: \"/auth/facebook\",\n google: \"/auth/google_oauth2\"\n }\n};\n\nfunction getFirstObjectKey (obj) {\n for (var key in obj) {\n return key;\n }\n}\n\nexport default function parseEndpointConfig(endpoint, defaultEndpointKey = null) {\n // normalize so opts is always an array of objects\n if (endpoint.constructor !== Array) {\n // single config will always be called 'default' unless set\n // by previous session\n defaultEndpointKey = C.INITIAL_CONFIG_KEY;\n\n // config should look like {default: {...}}\n var defaultConfig = {};\n defaultConfig[defaultEndpointKey] = endpoint;\n\n // endpoint should look like [{default: {...}}]\n endpoint = [defaultConfig];\n }\n\n let currentEndpoint = {};\n\n // iterate over config items, extend each from defaults\n for (var i = 0; i < endpoint.length; i++) {\n var configName = getFirstObjectKey(endpoint[i]);\n\n // set first as default config\n if (!defaultEndpointKey) {\n defaultEndpointKey = configName;\n }\n\n // save config to `configs` hash\n currentEndpoint[configName] = {\n ...defaultEndpoint,\n ...endpoint[i][configName]\n };\n }\n\n return { defaultEndpointKey, currentEndpoint };\n}\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/parseEndpointConfig.js\n **/","/**\n * Created by andrew on 26/02/16.\n */\nimport T from '../constants/ACTION_TYPES';\nimport { makeActionCreator } from '../utils/actions';\n\nexport const visitLocation = makeActionCreator(T.LOCATION.ENTER, 'location');\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/actions/navigate.js\n **/","/**\n * Created by andrew on 21/02/16.\n */\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { pushState } from 'redux-router';\nimport read from '../utils/readProp';\n\nexport function requireAuthentication(Component) {\n\n class AuthComponent extends React.Component {\n\n checkRedirect(props) {\n if (!props.isAuthenticated) {\n // redirect to login and add next param so we can redirect again after login\n const redirectAfterLogin = props.location.pathname;\n props.dispatch(pushState(null, `/signin?next=${redirectAfterLogin}`));\n }\n }\n\n componentWillMount() {\n this.checkRedirect(this.props);\n }\n\n componentWillReceiveProps(nextProps) {\n this.checkRedirect(nextProps);\n }\n\n render() {\n\n const { isAuthenticated = false } = this.props;\n\n if (isAuthenticated) {\n // render the component that requires auth (passed to this wrapper)\n return (\n \n )\n }\n\n return (\n
No anonymous access!
\n );\n\n }\n }\n\n const mapStateToProps =\n (state) => {\n return ({\n isAuthenticated: read(state, 'app.auth.user.isSignedIn', false)\n })\n };\n\n return connect(mapStateToProps)(AuthComponent);\n\n}\n\n\n/** WEBPACK FOOTER **\n ** ./src/components/AuthComponent.js\n **/","/**\n * Created by andrew on 11/03/16.\n */\nexport default function read(src, path = '', defaultVal = null) {\n const [pathItem = null, ...rest] = path.split('.');\n\n if (pathItem === null ) {\n return src || defaultVal;\n } else if (rest.length === 0) {\n if (!src) { return defaultVal; }\n return src[pathItem] || defaultVal;\n }\n\n if (!src) { return defaultVal; }\n return read(src[pathItem], rest.join('.'), defaultVal);\n}\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/readProp.js\n **/","/**\n * Created by andrew on 17/02/16.\n */\nimport React, { PropTypes } from \"react\";\nimport { Grid, Col, Navbar, NavItem, Nav, NavbarBrand, Footer } from \"react-bootstrap\";\nimport { LinkContainer } from \"react-router-bootstrap\";\nimport HeaderLinks from '../HeaderLinks';\n\nexport class Container extends React.Component {\n static propTypes = {\n children: PropTypes.node\n };\n\n render () {\n return (\n \n
\n \n Money Transfer\n \n \n \n \n
\n \n\n
\n {this.props.children}\n \n\n
\n © 2016 Eventuate.io\n \n Terms | \n Policy | \n Contact | \n About\n \n \n
\n );\n }\n}\n\nexport default Container;\n\n\n/** WEBPACK FOOTER **\n ** ./src/components/partials/Container.js\n **/","/**\n * Created by andrew on 11/03/16.\n */\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { LinkContainer } from \"react-router-bootstrap\";\nimport * as BS from \"react-bootstrap\";\nimport read from '../utils/readProp';\nimport { signOut } from '../actions/signOut';\n\n\nexport class HeaderLinks extends React.Component {\n\n signOut(evt, key) {\n this.props.dispatch(signOut());\n }\n\n render() {\n\n let buttonSet = null;\n const isSignedIn = read(this.props.auth, 'user.isSignedIn', false);\n const { location } = this.props.router;\n const isRegister = location.pathname == '/register';\n const isLogin = location.pathname == '/signin';\n\n const condition = isSignedIn ? 2 : (isRegister ? 1 : 0);\n \n switch (condition) {\n case 0:\n buttonSet = (\n Register\n );\n break;\n case 1:\n buttonSet = (\n Log In\n );\n break;\n case 2:\n buttonSet = (Sign Out);\n break;\n }\n\n return (\n \n { buttonSet }\n \n );\n }\n}\n\nexport default connect(({\n //dispatch,\n router,\n app\n }) => ({\n //dispatch,\n router,\n auth: app.auth\n}))(HeaderLinks);\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/components/HeaderLinks.js\n **/","/**\n * Created by andrew on 11/03/16.\n */\nimport T from '../constants/ACTION_TYPES';\nimport { makeActionCreator } from '../utils/actions';\nimport { destroySession } from \"../utils/sessionStorage\";\n\nexport const signOutStart = makeActionCreator(T.AUTH.SIGN_OUT_START);\nexport const signOutComplete = makeActionCreator(T.AUTH.SIGN_OUT_COMPLETE);\n\nexport const signOut = () =>\n dispatch => {\n dispatch(signOutStart());\n\n destroySession();\n\n dispatch(signOutComplete());\n };\n\n\n/** WEBPACK FOOTER **\n ** ./src/actions/signOut.js\n **/","/**\n * Created by andrew on 17/02/16.\n */\nimport React from \"react\";\nimport { PageHeader, Col, Row, Nav, ButtonGroup, Button, Table } from \"react-bootstrap\";\nimport * as BS from \"react-bootstrap\";\nimport { connect } from \"react-redux\";\nimport AccountInfo from '../components/AccountInfo';\nimport * as M from './modals';\nimport IndexPanel from \"./../components/partials/IndexPanel\";\nimport * as A from '../actions/entities';\nimport * as AU from '../actions/authenticate';\nimport read from '../utils/readProp';\nimport { Money } from '../components/Money';\n\nconst resetModals = {\n showAccountModal: false,\n show3rdPartyAccountModal: false,\n showDeleteAccountModal: false\n};\n\nclass MyAccounts extends React.Component {\n\n constructor(...args) {\n super(...args);\n this.state = { ...resetModals };\n }\n\n componentWillMount() {\n const {\n id: customerId\n } = this.props.auth.user.attributes;\n this.props.dispatch(A.fetchOwnAccounts(customerId));\n }\n\n createAccountModal() {\n this.setState({\n showAccountModal: true\n });\n }\n\n createAccountModalConfirmed(payload) {\n\n const {\n id: customerId\n } = this.props.auth.user.attributes;\n\n this.props.dispatch(A.accountCreate(customerId, payload))\n .then((accountId) => {\n this.close();\n // return new Promise((rs, rj) => {\n setTimeout(() => {\n this.props.dispatch(A.fetchOwnAccounts(customerId)); //.then(rs, rj);\n }, 1500);\n // });\n })\n .catch(err => {\n // debugger;\n this.props.dispatch(A.accountCreateError(err));\n });\n }\n\n create3rdPartyAccountModal() {\n this.setState({\n show3rdPartyAccountModal: true\n });\n }\n\n create3rdPartyAccountModalConfirmed(payload) {\n const {\n id: customerId\n } = this.props.auth.user.attributes;\n\n const {\n dispatch\n } = this.props;\n\n dispatch(A.accountRefCreate(customerId, payload))\n .then(() => {\n this.close();\n return new Promise((rs, rj) => {\n setTimeout(() => {\n Promise.all([\n dispatch(AU.authenticate(true)),\n dispatch(A.fetchOwnAccounts(customerId))\n ]).then(rs, rj);\n }, 1500);\n })\n })\n .catch(err => {\n // debugger;\n this.props.dispatch(A.accountRefCreateError(err));\n });\n }\n\n remove3rdPartyAccountModal(accountId, evt) {\n const account = this.props.app.entities[accountId];\n this.setState({\n accountToRemove: account,\n showDeleteAccountModal: true\n });\n }\n\n remove3rdPartyAccountModalConfirmed(account) {\n const accountId = account.id || account.accountId;\n const isRef = typeof account.balance == 'undefined';\n\n const { customerId, dispatch } = this.props;\n dispatch(A.deleteAccount(customerId, accountId, isRef))\n .then(() => {\n this.close();\n setTimeout(() => {\n return Promise.all([\n dispatch(AU.authenticate(true)),\n dispatch(A.fetchOwnAccounts(customerId))\n ]);\n }, 1500);\n },\n err => {\n dispatch(A.errorMessageTimedOut(err && err.message || err));\n this.close();\n });\n }\n\n close() {\n this.setState({\n ...resetModals\n });\n }\n\n render () {\n\n //const deployTooltip = (\n // Create a new instance of this demo on your own Heroku server.\n //);\n const user = this.props.auth.user.attributes;\n const {\n id: customerId,\n email = '',\n ssn = '',\n name = {},\n phoneNumber = '',\n address,\n toAccounts\n } = user;\n\n const firstName = name.firstName || '';\n const lastName = name.lastName || '';\n\n const {\n city,\n state,\n street1,\n street2,\n zipCode\n } = address;\n\n const {\n showAccountModal,\n show3rdPartyAccountModal,\n showDeleteAccountModal } = this.state;\n\n const { accountToRemove = null} = this.state;\n\n const { error } = this.props;\n const errorLine = error ? ({ JSON.stringify(error.errors || error) }) : [];\n\n const ownAccountsData = this.props.app.accounts.own || [];\n\n //accountId: \"000001537c2cf075-a250093f26850000\"\n //balance: 0\n //description: null\n //title: \"Sample\"\n\n const ownAccounts = ownAccountsData.map(({\n accountId, balance, description = '', title\n }, idx) => (\n \n {\n (description) ? [\n ( ),\n { description }\n ]: null\n } | \n | \n | \n
\n ));\n\n const refAccountsData = this.props.app.accounts.other || [];\n const refAccounts = refAccountsData.map(({\n title,\n description = '',\n id\n }, idx) => (\n \n {\n (description) ? [\n ( ),\n { description }\n ]: null\n }\n | \n | \n \n | \n
\n ));\n\n const accounts = (!!(ownAccounts.length + refAccounts.length)) ? [].concat(ownAccounts, refAccounts) : (\n | No account exists: or | \n
);\n\n return (\n \n
\n My Accounts\n \n \n\n { errorLine }\n\n
\n \n\n \n Customer:\n { `${firstName} ${lastName}` }\n
\n\n \n Email:\n { email }\n
\n\n \n Phone:\n { phoneNumber }\n
\n\n \n SSN:\n { ssn }\n
\n\n\n \n\n
\n\n
\n \n \n | Account Title | \n Balance | \n | \n
\n \n \n { accounts }\n \n
\n\n\n
\n\n
\n\n
\n\n
\n );\n }\n}\n\nexport default connect(({ app }) => {\n return ({\n auth: app.auth,\n app: app.data,\n customerId: read(app, 'auth.user.isSignedIn', false) ? read(app, 'auth.user.attributes.id', null): null,\n error: app.ui.error\n })\n})(MyAccounts);\n\n\n/** WEBPACK FOOTER **\n ** ./src/views/MyAccounts.js\n **/","/**\n * Created by andrew on 3/22/16.\n */\nimport React from \"react\";\nimport { connect } from 'react-redux';\nimport Spinner from \"react-loader\";\nimport * as BS from \"react-bootstrap\";\nimport * as A from '../actions/entities';\nimport read from '../utils/readProp';\nimport { Route, IndexRoute, Link, IndexLink } from \"react-router\";\n\nexport class AccountInfo extends React.Component {\n componentWillMount() {\n this.ensureData(this.props);\n }\n\n componentWillReceiveProps(nextProps) {\n this.ensureData(nextProps);\n }\n\n ensureData({ dispatch, entities, accountId }) {\n if (entities[accountId]) {\n return;\n }\n dispatch(A.fetchAccount(accountId));\n }\n\n render() {\n const { entities, accountId, customerId } = this.props;\n\n const account = entities[accountId];\n\n if (!account || !accountId) {\n return (Loading..
);\n }\n\n const { errors } = account;\n if (errors) {\n return ({ errors }
);\n }\n\n const { title, owner } = account;\n\n if ((typeof owner !== 'undefined') && (customerId !== owner)) {\n return ({ title });\n } else {\n return ({ title });\n }\n }\n}\n\nexport default connect(({ app }) => ({\n entities: app.data.entities,\n customerId: read(app, 'auth.user.isSignedIn', false) ? read(app, 'auth.user.attributes.id', null): null,\n}))(AccountInfo);\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/components/AccountInfo.js\n **/","/**\n * Created by andrew on 20/02/16.\n */\nexport { default as Add3rdPartyAccountModal } from './Add3rdPartyAccountModal';\nexport { default as NewAccountModal } from './NewAccountModal';\nexport { default as RemoveAccountBookmarkModal } from './RemoveAccountModal';\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/views/modals/index.js\n **/","/**\n * Created by andrew on 20/02/16.\n */\nimport React from \"react\";\n// import { PageHeader, OverlayTrigger, Modal, Tooltip, Grid, Col, Row, Nav, NavItem, ButtonGroup, Button, Table } from \"react-bootstrap\";\nimport * as BS from \"react-bootstrap\";\nimport ButtonLoader from \"../../controls/bootstrap/ButtonLoader\";\nimport Input from \"../../controls/bootstrap/Input\";\nimport AuxErrorLabel from \"../../controls/bootstrap/AuxErrorLabel\";\nimport read from '../../utils/readProp';\n\nimport { Link, IndexLink} from \"react-router\";\nimport { connect } from \"react-redux\";\nimport Select from \"react-select\";\n\nimport * as A from '../../actions/entities';\n\nconst formValidation = (payload) => ['owner', 'account', 'title', 'description'].reduce((memo, prop) => {\n let result = [];\n const value = (payload[prop] || '').replace(/(^\\s+)|(\\s+$)/g, '');\n\n switch (prop) {\n case 'owner':\n case 'account':\n case 'title':\n if (/^$/.test(value)) {\n result.push('required');\n }\n }\n\n switch (prop) {\n case 'description':\n if (value.length > 400) {\n result.push('need to less than 400 symbols long');\n }\n }\n\n if (result.length) {\n memo[prop] = result;\n memo.hasErrors = true;\n }\n return memo;\n}, {});\n\n\nexport class Add3rdPartyAccountModal extends React.Component {\n\n handleInput(key, value) {\n this.props.dispatch(A.accountRefCreateFormUpdate(key, value));\n switch(key) {\n case 'owner':\n if (value) {\n this.props.dispatch(A.createRefAccountLookup(value));\n } else {\n this.props.dispatch(A.createRefAccountLookupComplete([]));\n }\n }\n }\n\n handleSubmit(evt) {\n evt.preventDefault();\n\n const payload = { ...this.props.data.form };\n\n const validationErrors = formValidation(payload);\n if (validationErrors.hasErrors) {\n this.props.dispatch(A.accountRefCreateError(validationErrors));\n return;\n }\n\n const { action } = this.props;\n\n if (action) {\n action(payload);\n }\n }\n\n onHide() {\n this.props.dispatch(A.accountRefCreateComplete({}));\n if (this.props.onHide) {\n this.props.onHide();\n }\n }\n\n getOwnersOptions(input) {\n if (!input) {\n return Promise.resolve({ options: [] });\n }\n return this.props.dispatch(A.createRefOwnerLookup(input));\n }\n\n render() {\n const disabled = read(this.props.data, 'loading', false);\n\n const ownersLoading = read(this.props.data, 'ownersLookup.loading', false);\n\n const formErrors = read(this.props.data, 'errors.errors', '');\n\n return (\n \n \n Add 3rd Party Account\n \n \n \n \n \n Cancel\n }\n disabled={disabled}\n onClick={this.handleSubmit.bind(this)}>\n Add\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ app }) => ({\n ui: app.ui.bookmarkAccount,\n data: app.data.bookmarkAccount\n});\n\nexport default connect(mapStateToProps)(Add3rdPartyAccountModal);\n\n\n/** WEBPACK FOOTER **\n ** ./src/views/modals/Add3rdPartyAccountModal.js\n **/","/**\n * Created by andrew on 15/02/16.\n */\nimport React, { PropTypes } from \"react\";\nimport { Button, Glyphicon } from \"react-bootstrap\";\nimport Spinner from \"react-loader\";\n\nclass ButtonLoader extends React.Component {\n static propTypes = {\n icon: PropTypes.node,\n loading: PropTypes.bool,\n spinConfig: PropTypes.object,\n spinColorDark: PropTypes.string,\n spinColorLight: PropTypes.string,\n children: PropTypes.node,\n onClick: PropTypes.func.isRequired,\n style: PropTypes.object\n };\n\n static defaultProps = {\n icon: ,\n loading: false,\n spinConfig: {\n lines: 10,\n length: 4,\n width: 2,\n radius: 3\n },\n spinColorDark: \"#444\",\n spinColorLight: \"#fff\",\n children: Submit,\n style: {}\n };\n\n renderIcon () {\n let icon;\n\n if (this.props.loading) {\n let spinColor = (!this.props.bsStyle || this.props.bsStyle === \"default\")\n ? this.props.spinColorDark\n : this.props.spinColorLight;\n\n icon = ;\n } else {\n icon = this.props.icon;\n }\n\n return (\n \n {icon}\n
\n );\n }\n\n render () {\n return (\n \n );\n }\n}\n\nexport default ButtonLoader;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/controls/bootstrap/ButtonLoader.js\n **/","/**\n * Created by andrew on 15/02/16.\n */\nimport React, { PropTypes } from \"react\";\nimport { Input, Glyphicon } from \"react-bootstrap\";\n\nclass AuthInput extends React.Component {\n static propTypes = {\n label: PropTypes.string,\n value: PropTypes.string,\n errors: PropTypes.array\n };\n\n static defaultProps = {\n label: '',\n value: null,\n errors: []\n };\n\n handleInput (ev) {\n this.props.onChange(ev.target.value);\n }\n\n renderErrorList () {\n\n if (this.props.errors.length) {\n return (\n \n {this.props.errors.map((err, i) => {\n return (\n
\n\n {this.props.label} {err}\n
\n );\n })}\n
\n );\n } else {\n return ;\n }\n }\n\n render () {\n return (\n \n \n {this.renderErrorList()}\n
\n );\n }\n}\n\nexport default AuthInput;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/controls/bootstrap/Input.js\n **/","/**\n * Created by andrew on 15/02/16.\n */\nimport React, { PropTypes } from \"react\";\nimport { Glyphicon } from \"react-bootstrap\";\n\nclass AuxErrorLabel extends React.Component {\n\n static propTypes = {\n label: PropTypes.string,\n errors: PropTypes.array\n };\n\n static defaultProps = {\n label: '',\n errors: []\n };\n \n render () {\n const { errors } = this.props;\n\n if (errors.length) {\n return (\n \n { errors.map((err, i) => {\n return (\n
\n\n {this.props.label} {err}\n
\n );\n })}\n
\n );\n } else {\n return ;\n }\n }\n}\n\nexport default AuxErrorLabel;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/controls/bootstrap/AuxErrorLabel.js\n **/","/**\n * Created by andrew on 20/02/16.\n */\nimport React, { PropTypes } from \"react\";\nimport { connect } from \"react-redux\";\n\nimport * as BS from \"react-bootstrap\";\nimport Input from \"../../controls/bootstrap/Input\";\nimport ButtonLoader from \"../../controls/bootstrap/ButtonLoader\";\n//import { PageHeader, OverlayTrigger, Modal, Tooltip, Grid, Col, Row, Nav, NavItem, ButtonGroup, Button, Table } from \"react-bootstrap\";\n\nimport { Link, IndexLink} from \"react-router\";\nimport read from '../../utils/readProp';\n\nimport { accountCreateFormUpdate, accountCreateError } from '../../actions/entities';\n\nconst formValidation = (payload) => ['title', 'balance', 'description'].reduce((memo, prop) => {\n let result = [];\n const value = (payload[prop] || '').replace(/(^\\s+)|(\\s+$)/g, '');\n\n switch (prop) {\n case 'title':\n case 'balance':\n if (/^$/.test(value)) {\n result.push('required');\n }\n }\n\n switch (prop) {\n case 'balance':\n if (!/\\d+/.test(value)) {\n result.push('need to be a number');\n }\n }\n\n switch (prop) {\n case 'description':\n if (value.length > 400) {\n result.push('need to less than 400 symbols long');\n }\n\n }\n if (result.length) {\n memo[prop] = result;\n memo.hasErrors = true;\n }\n return memo;\n}, {});\n\nexport class NewAccountModal extends React.Component {\n\n static propTypes = {\n action: PropTypes.func,\n account: PropTypes.object.isRequired\n };\n \n handleSubmit(event) {\n event.preventDefault();\n\n const payload = { ...this.props.account.form };\n\n const validationErrors = formValidation(payload);\n if (validationErrors.hasErrors) {\n this.props.dispatch(accountCreateError(validationErrors));\n return;\n }\n\n const { action } = this.props;\n\n if (action) {\n action(payload);\n }\n }\n\n handleInput(key, val) {\n this.props.dispatch(accountCreateFormUpdate(key, val));\n }\n\n render() {\n\n const disabled = (\n this.props.account.loading\n );\n\n const actionLabel = 'Create';\n\n return (\n \n New Account\n \n \n \n\n \n \n Cancel\n }\n disabled={disabled}\n onClick={this.handleSubmit.bind(this)}\n >\n {actionLabel}\n \n \n );\n }\n}\n\nexport default connect()(NewAccountModal);\n\n\n/** WEBPACK FOOTER **\n ** ./src/views/modals/NewAccountModal.js\n **/","/**\n * Created by andrew on 20/02/16.\n */\nimport React, { PropTypes } from \"react\";\nimport * as BS from 'react-bootstrap';\nimport { PageHeader, OverlayTrigger, Modal, Tooltip, Grid, Col, Row, Nav, NavItem, ButtonGroup, Button, Table } from \"react-bootstrap\";\nimport { moneyText } from '../../components/Money';\n\nexport class RemoveAccountBookmarkModal extends React.Component {\n\n static propTypes = {\n action: PropTypes.func,\n account: PropTypes.object\n };\n\n handleAction(evt) {\n evt.preventDefault();\n const { action, account } = this.props;\n if (action) {\n action(account);\n }\n }\n\n render() {\n const { account } = this.props;\n\n const { title: titleRaw,\n description: descriptionRaw,\n balance: balanceRaw,\n id,\n accountId } = account || {};\n\n const entityId = id || accountId;\n\n const title = titleRaw || '—';\n const balance = moneyText(balanceRaw);\n const description = descriptionRaw || '—';\n\n return (\n \n Remove Account Bookmark\n \n \n\n \n\n \n \n \n \n \n );\n }\n}\n\nexport default RemoveAccountBookmarkModal;\n\n\n/** WEBPACK FOOTER **\n ** ./src/views/modals/RemoveAccountModal.js\n **/","/**\n * Created by andrew on 3/22/16.\n */\nimport React from 'react';\n\nexport const moneyText = (amount) => {\n\n if (Number.isNaN(Number(amount))) {\n return '—';\n }\n const absNum = Math.abs(Number(amount) / 100);\n if (absNum < 0) {\n return `$(${absNum.toFixed(2)})`;\n }\n return `$${absNum.toFixed(2)}`;\n};\n\nexport const Money = ({ amount }) => {\n\n if (Number.isNaN(Number(amount))) {\n return ();\n }\n const absNum = Math.abs(Number(amount) / 100);\n if (absNum < 0) {\n return (($${ absNum.toFixed(2) }))\n }\n return (${ absNum.toFixed(2) });\n};\n\n\n/** WEBPACK FOOTER **\n ** ./src/components/Money.js\n **/","/**\n * Created by andrew on 17/02/16.\n */\nimport React, { PropTypes } from \"react\";\nimport { Panel, Col } from \"react-bootstrap\";\n\nexport class IndexPanel extends React.Component {\n static propTypes = {\n bsStyle: PropTypes.string,\n header: PropTypes.string,\n children: PropTypes.node\n };\n\n static defaultProps = {\n bsStyle: \"info\",\n children: \n };\n\n render () {\n return (\n \n \n \n );\n }\n}\n\nexport default IndexPanel;\n\n\n/** WEBPACK FOOTER **\n ** ./src/components/partials/IndexPanel.js\n **/","/**\n * Created by andrew on 12/02/16.\n */\nimport React from \"react\";\nimport { connect } from \"react-redux\";\n\nimport { PageHeader, OverlayTrigger, Tooltip, Grid, Col, Row, Nav, NavItem, ButtonGroup, Button, Table } from \"react-bootstrap\";\nimport * as BS from \"react-bootstrap\";\n// import Spinner from \"react-loader\";\nimport Select from \"react-select\";\nimport Input from \"../controls/bootstrap/Input\";\nimport { Money, moneyText } from '../components/Money';\nimport { TransfersTable } from '../components/TransfersTable';\n\nimport { Link, IndexLink } from \"react-router\";\n\nimport IndexPanel from \"./../components/partials/IndexPanel\";\nimport * as Modals from './modals';\nimport * as A from '../actions/entities';\nimport read from '../utils/readProp';\nimport { blocked } from '../utils/blockedExecution';\n\nconst resetModals = {\n showAccountModal: false,\n unsaved: false\n};\n\nexport class Account extends React.Component {\n constructor(...args) {\n super(...args);\n this.state = { ...resetModals };\n\n const ensureTransfers = this.ensureTransfers.bind(this);\n const ensureAccounts = this.ensureAccounts.bind(this);\n\n this.ensureTransfers = blocked(ensureTransfers, true);\n this.ensureAccounts = blocked(ensureAccounts, true);\n }\n\n ensureTransfers(props, cb) {\n const forceFetch = !cb;\n if (forceFetch) {\n cb = props;\n props = this.props;\n }\n\n const { dispatch, params, transfers } = props;\n\n if (!forceFetch && !params) {\n return cb();\n }\n\n const { accountId } = params;\n if (!forceFetch && (!accountId || transfers[accountId])) {\n return cb();\n }\n\n dispatch(A.getTransfers(accountId)).then(cb, cb);\n }\n\n ensureAccounts(props, cb) {\n const forceFetch = !cb;\n if (forceFetch) {\n cb = props;\n props = this.props;\n }\n\n const { dispatch, params, data } = props;\n\n if (!forceFetch && (!params || !data || !data.accounts)) {\n return cb();\n }\n\n const { accountId } = params;\n\n if (!forceFetch && data.accounts.own && data.accounts.own.length && data.entities[accountId]) {\n return cb();\n }\n\n if (!forceFetch && (!props.auth || !props.auth.user || !props.auth.user.attributes)) {\n return cb();\n }\n\n const {\n id: customerId\n } = props.auth.user.attributes;\n\n Promise.all([\n dispatch(A.fetchOwnAccounts(customerId)),\n dispatch(A.fetchAccount(accountId)),\n ]).then(cb, cb);\n }\n\n // shouldComponentUpdate(nextProps) {\n // return (nextProps.params.accountId !== this.props.params.accountId) || (nextProps.app !== this.props.app);\n // }\n\n componentWillMount() {\n this.ensureAccounts(this.props);\n this.ensureTransfers(this.props);\n }\n\n componentWillReceiveProps(nextProps) {\n this.ensureAccounts(nextProps);\n this.ensureTransfers(nextProps);\n }\n\n\n close() {\n this.setState({\n ...resetModals\n });\n }\n\n handleInput(key, value) {\n this.props.dispatch(A.makeTransferFormUpdate(key, value));\n }\n\n initiateTransfer(){\n const { dispatch, params, transfer } = this.props;\n const { accountId } = params;\n dispatch(A.makeTransfer(accountId, transfer.form ))\n .then(() => new Promise((rs) => {\n setTimeout(() => {\n this.ensureAccounts();\n this.ensureTransfers();\n rs();\n }, 1500);\n })\n );\n }\n\n render () {\n\n const { showAccountModal } = this.state;\n const { params } = this.props;\n const { loading, errors } = this.props.ui;\n const { entities, accounts } = this.props.data;\n const { accountId } = params;\n\n const account = entities[accountId];\n\n const spinnerResult = (Loading..
);\n\n if (loading) {\n return spinnerResult;\n }\n\n if (!account) {\n if (errors.length) {\n return (\n
Error loading specified account
\n
Return Home to pick another
\n
);\n } else {\n return spinnerResult;\n }\n }\n\n const transferTo = [].concat(accounts.own.reduce((memo, item, idx) => {\n const { balance, title, accountId: itemAccountId } = item;\n\n if (itemAccountId != accountId) {\n memo.push({\n value: itemAccountId ,\n label: `${title}: ${ moneyText(balance) }`\n });\n }\n return memo;\n }, []),\n accounts.other.reduce((memo, item, idx) => {\n if (!((item.id == accountId) || (item.accountId == accountId))) {\n memo.push({\n value: item.accountId || item.id,\n label: `${item.title}${ item.description ? ': ' + item.description.substr(0, 10): '' }`\n });\n }\n return memo;\n }, []));\n\n const { title: titleRaw, description: descriptionRaw, balance } = account;\n\n const title = titleRaw || '—';\n const description = descriptionRaw || '—';\n\n const transferDisabled = this.props.transfer.loading;\n\n return (\n \n
\n Account\n \n \n\n
\n \n\n \n Title:\n { title }\n
\n\n \n Balance:\n \n
\n\n \n Description:\n { description }\n
\n\n \n\n
\n
\n \n You can transfer money to accounts:
\n \n
\n
\n \n \n \n \n \n )\n }\n addonAfter=\".00\"\n disabled={transferDisabled}\n value={read(this.props.transfer, 'form.amount', '')}\n errors={read(this.props.transfer, 'errors.amount', []) || []}\n onChange={this.handleInput.bind(this, 'amount')}\n />\n \n \n \n \n \n
\n \n \n
\n\n
\n \n Transfer History:
\n \n
\n\n
\n\n
\n\n\n
\n\n );\n }\n}\n\nexport default connect(({\n app,\n router\n }) => ({\n app,\n auth: app.auth,\n data: app.data,\n transfers: app.data.transfers,\n ui: app.ui.account,\n transfer: app.ui.transfersMake,\n router\n}))(Account);\n\n\n/** WEBPACK FOOTER **\n ** ./src/views/Account.js\n **/","/**\n * Created by andrew on 3/22/16.\n */\nimport React from \"react\";\nimport Spinner from \"react-loader\";\nimport * as BS from \"react-bootstrap\";\nimport TimeAgo from 'react-timeago';\n\nimport { Money } from './Money';\nimport AccountInfo from './AccountInfo';\n\nexport class TransfersTable extends React.Component {\n\n preprocessItems(input, currentAccountId) {\n return input\n .sort((a, b) => ((a.date - b.date)))\n .filter(({ entryType, toAccountId, fromAccountId}) => ((entryType !=='transaction') || (fromAccountId === currentAccountId) || (toAccountId === currentAccountId)))\n .reduce(({\n items, balance\n }, v) => {\n if (v.entryType == 'account') {\n balance = v.initialBalance;\n } else if (v.entryType == 'transaction' && (v.status !== 'FAILED_DUE_TO_INSUFFICIENT_FUNDS')) {\n const isOriginating = v.fromAccountId == currentAccountId;\n balance += (isOriginating ? -1 : 1) * v.amount;\n }\n v.balance = balance;\n items.push(v);\n return { items, balance };\n }, {\n items: [],\n balance: 0\n }).items\n .sort((a, b) => (-(a.date - b.date)))\n }\n\n render() {\n const { transfers, forAccount } = this.props;\n const { loading, data, errors } = transfers || {};\n \n if (!transfers || loading) {\n return ( Loading..
);\n }\n\n if (Object.keys(errors).length) {\n return (Errors..
);\n }\n\n const currentAccountId = forAccount;\n\n const transfersMarkup = data.length ?\n this.preprocessItems(data, currentAccountId)\n .map(({\n entryType,\n amount,\n fromAccountId,\n toAccountId,\n transactionId,\n description = '—',\n date = null,\n status = '—',\n balance,\n initialBalance = null\n }) => {\n\n const transferTimestamp = new Date(date);\n const timeAgoTitle = transferTimestamp.toLocaleDateString() + ' ' + transferTimestamp.toLocaleTimeString();\n\n if (entryType == 'account') {\n return (\n | \n Account created | \n | \n { description } | \n { status || '—' } | \n
);\n }\n\n const isOriginating = fromAccountId == currentAccountId;\n const directionMarkup = isOriginating ? 'Debit' : 'Credit';\n const counterAccountMarkup = isOriginating ?\n :\n ;\n\n return (\n | \n { directionMarkup } | \n { counterAccountMarkup } | \n | \n | \n { description || '—' } | \n { status || '—' } | \n
);\n }) : (\n | No transfers for this account just yet. | \n
);\n\n return (\n \n \n \n | Date | \n Type | \n Other Account | \n Amount | \n Balance | \n Description | \n Status | \n
\n \n \n { transfersMarkup }\n \n \n );\n }\n}\n\n\n/** WEBPACK FOOTER **\n ** ./src/components/TransfersTable.js\n **/","/**\n * Created by andrew on 8/17/16.\n */\n\nexport const blocked = (fn, useCb) => {\n let isBlocked = false;\n return (...args) => {\n if (isBlocked) {\n return;\n }\n //noinspection JSUnusedAssignment\n isBlocked = true;\n const cb = () => {\n isBlocked = false;\n };\n const result = useCb ? fn(...(args.concat([cb]))) : fn(...args);\n if (!useCb) {\n cb();\n }\n return result;\n };\n};\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/blockedExecution.js\n **/","/**\n * Created by andrew on 12/02/16.\n */\nimport React from \"react\";\nimport { PageHeader } from \"react-bootstrap\";\nimport { connect } from \"react-redux\";\nimport * as BS from \"react-bootstrap\";\nimport { pushState } from \"redux-router\";\nimport { EmailSignInForm } from \"../controls/bootstrap/EmailSignInForm\";\nimport read from '../utils/readProp';\n\nexport class SignIn extends React.Component {\n\n checkRedirect(props) {\n\n const isSignedIn = read(props.auth, 'user.isSignedIn');\n if (isSignedIn) {\n\n const nextLocation = read(props.location, 'query.next');\n props.dispatch(pushState(null, nextLocation));\n\n //// redirect to login and add next param so we can redirect again after login\n //const redirectAfterLogin = this.props.location.pathname;\n //this.props.dispatch(pushState(null, `/signin?next=${redirectAfterLogin}`));\n }\n }\n componentWillMount() {\n this.checkRedirect(this.props);\n }\n\n componentWillReceiveProps(nextProps) {\n this.checkRedirect(nextProps);\n\n }\n\n render () {\n\n return (\n \n Sign In\n \n \n );\n }\n}\nexport default connect(({\n //dispatch,\n routes,\n app\n }) => ({\n //dispatch,\n routes,\n auth: app.auth\n}))(SignIn);\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/views/SignIn.js\n **/","/**\n * Created by andrew on 15/02/16.\n */\nimport React, {PropTypes} from \"react\";\nimport * as BS from \"react-bootstrap\";\nimport read from '../../utils/readProp';\nimport Input from \"./Input\";\nimport ButtonLoader from \"./ButtonLoader\";\nimport AuxErrorLabel from './AuxErrorLabel';\nimport * as AS from \"../../actions/signIn\";\n\nconst formValidation = (payload) => [\n 'email',\n 'password'\n].reduce((memo, prop) => {\n let result = [];\n const value = (payload[prop] || '').replace(/(^\\s+)|(\\s+$)/g, '');\n\n switch (prop) {\n case 'email':\n case 'password':\n if (/^$/.test(value)) {\n result.push('required');\n }\n }\n\n if (result.length) {\n memo[prop] = result;\n memo.hasErrors = true;\n }\n return memo;\n}, {});\n\nexport class EmailSignInForm extends React.Component {\n\n handleInput (key, val) {\n this.props.dispatch(AS.emailSignInFormUpdate(key, val));\n }\n\n handleSubmit (event) {\n event.preventDefault();\n\n const formData = read(this.props.auth, 'signIn.form');\n\n const validationErrors = formValidation(formData);\n if (validationErrors.hasErrors) {\n this.props.dispatch(AS.emailSignInError(validationErrors));\n return;\n }\n\n this.props.dispatch(AS.emailSignIn(formData));\n }\n\n render () {\n\n try {\n const disabled = (\n this.props.auth.user.isSignedIn ||\n this.props.auth.signIn.loading\n );\n\n //const error = read(this.props.auth, 'signIn.errors.email', null);\n const formErrors = read(this.props.auth, 'signIn.errors.errors', '');\n\n return (\n \n );\n } catch (ex){\n console.error('Render exception: ', ex);\n return [' ERROR '];\n }\n }\n}\n\nEmailSignInForm.propTypes = {\n endpoint: PropTypes.string,\n inputProps: PropTypes.shape({\n email: PropTypes.object,\n password: PropTypes.object,\n submit: PropTypes.object\n })\n};\n\nEmailSignInForm.defaultProps = {\n inputProps: {\n email: {},\n password: {},\n submit: {}\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/controls/bootstrap/EmailSignInForm.js\n **/","/**\n * Created by andrew on 26/02/16.\n */\nimport T from '../constants/ACTION_TYPES';\nimport { makeActionCreator } from '../utils/actions';\nimport { persistUserData } from \"../utils/sessionStorage\";\nimport { entityReceived } from './entities';\nimport { apiSignIn } from '../utils/api';\n\nexport const emailSignInFormUpdate = makeActionCreator(T.AUTH.SIGN_IN_FORM_UPDATE, 'key', 'value');\nexport const emailSignInStart = makeActionCreator(T.AUTH.SIGN_IN_START);\nexport const emailSignInComplete = makeActionCreator(T.AUTH.SIGN_IN_COMPLETE, 'user');\nexport const emailSignInError = makeActionCreator(T.AUTH.SIGN_IN_ERROR, 'error');\n\nexport function emailSignIn(body) {\n return dispatch => {\n\n dispatch(emailSignInStart());\n\n return apiSignIn(body)\n .then(function(data = {}) {\n const { id } = data;\n if (id ) {\n dispatch(entityReceived(id, data));\n }\n return data;\n })\n .then((user) => {\n persistUserData(user);\n dispatch(emailSignInComplete(user));\n })\n .catch((errors) => {\n // revert endpoint key to what it was before failed request\n //setCurrentEndpointKey(prevEndpointKey);\n //dispatch(storeCurrentEndpointKey(prevEndpointKey));\n return dispatch(emailSignInError(errors));\n });\n };\n}\n\n\n/** WEBPACK FOOTER **\n ** ./src/actions/signIn.js\n **/","/**\n * Created by andrew on 12/02/16.\n */\nimport React from \"react\";\n//import { PageHeader } from \"react-bootstrap\";\nimport { connect } from \"react-redux\";\nimport { pushState } from 'redux-router';\nimport read from '../utils/readProp';\n\nimport { PageHeader, OverlayTrigger, Tooltip, Row, ButtonGroup, Table } from \"react-bootstrap\";\nimport * as BS from \"react-bootstrap\";\nimport { Link, IndexLink} from \"react-router\";\n\n//import { EmailSignUpForm } from \"redux-auth/bootstrap-theme\"\nimport EmailSignUpForm from \"../controls/bootstrap/EmailSignUpForm\";\n\nexport class SignUp extends React.Component {\n\n checkRedirect(props) {\n if (props.isAuthenticated) {\n // redirect to login and add next param so we can redirect again after login\n // const redirectAfterLogin = props.location.pathname;\n props.dispatch(pushState(null, `/`));\n }\n }\n\n componentWillMount() {\n this.checkRedirect(this.props);\n }\n\n componentWillReceiveProps(nextProps) {\n this.checkRedirect(nextProps);\n }\n\n render () {\n return (\n \n Register\n \n \n );\n\n }\n}\nexport default connect(({\n routes,\n app\n}) => ({routes,\n isAuthenticated: read(app, 'auth.user.isSignedIn', false)\n}))(SignUp);\n\n\n/** WEBPACK FOOTER **\n ** ./src/views/SignUp.js\n **/","/**\n * Created by andrew on 15/02/16.\n */\nimport React, {PropTypes} from \"react\";\nimport { connect } from \"react-redux\";\nimport { Glyphicon } from \"react-bootstrap\";\nimport Input from \"./Input\";\nimport ButtonLoader from \"./ButtonLoader\";\nimport IndexPanel from \"./../../components/partials/IndexPanel\";\nimport AuxErrorLabel from './AuxErrorLabel';\nimport { customerInfoMap } from '../../entities/formToPayloadMappers';\nimport read from '../../utils/readProp';\nimport * as AS from '../../actions/signUp';\n\nconst formValidation = (payload) => [\n 'fname',\n 'lname',\n 'email',\n 'password',\n 'passwordConfirm',\n 'ssn',\n 'phoneNumber',\n 'address1',\n 'address2',\n 'city',\n 'state',\n 'zip'\n].reduce((memo, prop) => {\n let result = [];\n const value = (payload[prop] || '').replace(/(^\\s+)|(\\s+$)/g, '');\n\n switch (prop) {\n case 'fname':\n case 'lname':\n case 'email':\n case 'ssn':\n case 'password':\n case 'passwordConfirm':\n if (/^$/.test(value)) {\n result.push('required');\n }\n }\n\n switch (prop) {\n case 'passwordConfirm':\n if (value != payload['password']) {\n result.push('need to be equal to password');\n }\n }\n\n if (result.length) {\n memo[prop] = result;\n memo.hasErrors = true;\n }\n return memo;\n}, {});\n\n\nclass EmailSignUpForm extends React.Component {\n\n handleInput (key, val) {\n this.props.dispatch(AS.emailSignUpFormUpdate(key, val));\n }\n\n handleSubmit (event) {\n event.preventDefault();\n\n const formData = read(this.props.auth, 'signUp.form');\n const validationErrors = formValidation(formData);\n if (validationErrors.hasErrors) {\n this.props.dispatch(AS.emailSignUpError(validationErrors));\n return;\n }\n\n this.props.dispatch(AS.emailSignUp(customerInfoMap(formData)));\n }\n\n render () {\n\n const disabled = (\n this.props.auth.user.isSignedIn ||\n this.props.auth.signUp.loading\n );\n\n const formErrors = read(this.props.auth, 'signUp.errors.errors', '');\n\n return (\n \n );\n\n }\n}\n\nexport default connect(({app}) => ({auth: app.auth}))(EmailSignUpForm);\n\n\n/** WEBPACK FOOTER **\n ** ./src/controls/bootstrap/EmailSignUpForm.js\n **/","/**\n * Created by andrew on 21/02/16.\n */\nexport const customerInfoMap = ({\n ssn,\n password,\n address1,\n address2,\n city, //: \"Moscow\"\n email, //: \"arevinsky@gmail.com\"\n fname, //: \"Andrew\"\n lname, //: \"Revinsky\"\n phoneNumber, //: \"+79031570864\"\n state, //: \"Kentucky\"\n zip //: \"125315\"\n }) => ({\n \"name\": {\n \"firstName\": fname,\n \"lastName\": lname\n },\n password,\n email,\n ssn,\n \"phoneNumber\": phoneNumber,\n \"address\": {\n \"street1\": address1,\n \"street2\": address2,\n city,\n state,\n \"zipCode\": zip\n }\n});\n\n\n/** WEBPACK FOOTER **\n ** ./src/entities/formToPayloadMappers.js\n **/","/**\n * Created by andrew on 11/03/16.\n */\nimport { push } from 'redux-router';\nimport T from '../constants/ACTION_TYPES';\nimport { makeActionCreator } from '../utils/actions';\nimport { apiSignUp } from \"../utils/api\";\nimport { emailSignInFormUpdate } from './signIn';\n\nexport const emailSignUpFormUpdate = makeActionCreator(T.AUTH.SIGN_UP_FORM_UPDATE, 'key', 'value');\nexport const emailSignUpStart = makeActionCreator(T.AUTH.SIGN_UP_START);\nexport const emailSignUpComplete = makeActionCreator(T.AUTH.SIGN_UP_COMPLETE, 'user');\nexport const emailSignUpError = makeActionCreator(T.AUTH.SIGN_UP_ERROR, 'error');\n\n\nexport function emailSignUp(body) {\n return dispatch => {\n dispatch(emailSignUpStart());\n\n return apiSignUp(body)\n .then(({ data }) => {\n dispatch(emailSignUpComplete(data));\n const { email } = body;\n dispatch(emailSignInFormUpdate('email', email));\n dispatch(push('/signin'));\n })\n .catch(({ errors }) => {\n dispatch(emailSignUpError({\n errors\n }))\n });\n\n };\n}\n\n\n/** WEBPACK FOOTER **\n ** ./src/actions/signUp.js\n **/"],"sourceRoot":""}
\ No newline at end of file
diff --git a/js-frontend/build/index.html b/js-frontend/build/index.html
index 2d2c9f2..e1706d8 100644
--- a/js-frontend/build/index.html
+++ b/js-frontend/build/index.html
@@ -13,7 +13,7 @@
-
+