diff options
Diffstat (limited to 'frontend/api/crud.actions.js')
| -rw-r--r-- | frontend/api/crud.actions.js | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/frontend/api/crud.actions.js b/frontend/api/crud.actions.js deleted file mode 100644 index 25027a5..0000000 --- a/frontend/api/crud.actions.js +++ /dev/null @@ -1,51 +0,0 @@ -import { crud_fetch } from './crud.fetch' -import { as_type } from './crud.types' -import { upload_action } from './crud.upload' -import { store } from '../store' - -export function crud_actions(type) { - const fetch_type = crud_fetch(type) - return [ - 'index', - 'show', - 'create', - 'update', - 'destroy', - ].reduce((lookup, param) => { - lookup[param] = crud_action(type, param, (q) => fetch_type[param](q)) - return lookup - }, { - action: (method, fn) => crud_action(type, method, fn), - upload: (fd) => upload_action(type, fd), - updateOption: (key, value) => dispatch => { - dispatch({ type: as_type(type, 'update_option'), key, value }) - }, - updateOptions: opt => dispatch => { - dispatch({ type: as_type(type, 'update_options'), opt }) - }, - }) -} - -export const crud_action = (type, method, fn) => (q, load_more) => dispatch => { - return new Promise ((resolve, reject) => { - if (method === 'index') { - if (store.getState()[type].index.loading) { - return resolve({}) - } - } - dispatch({ type: as_type(type, method + '_loading'), load_more }) - fn(q).then(data => { - if (data.status === 'ok') { - dispatch({ type: as_type(type, method), data, load_more }) - resolve(data) - } else { - dispatch({ type: as_type(type, method + '_error'), error: data.error }) - reject(data) - } - }).catch(e => { - console.log(e) - dispatch({ type: as_type(type, method + '_error') }) - reject(e) - }) - }) -} |
