summaryrefslogtreecommitdiff
path: root/frontend/api/crud.actions.js
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/api/crud.actions.js')
-rw-r--r--frontend/api/crud.actions.js51
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)
- })
- })
-}