diff options
| author | adamhrv <adam@ahprojects.com> | 2018-12-18 01:15:48 +0100 |
|---|---|---|
| committer | adamhrv <adam@ahprojects.com> | 2018-12-18 01:15:48 +0100 |
| commit | 162246a0f1931428c85ab9a31ba42de9ef34dae3 (patch) | |
| tree | a7a80b9836025400269fcb7623a934deb37bbc39 /client/nameSearch/nameSearch.actions.js | |
| parent | 994d74feae29f2577bc04e10dd4bafbfb3dc8e83 (diff) | |
| parent | bf3dd1399e4ef1db5fb8830004827fe603f73b2e (diff) | |
Merge branch 'master' of github.com:adamhrv/megapixels_dev
Diffstat (limited to 'client/nameSearch/nameSearch.actions.js')
| -rw-r--r-- | client/nameSearch/nameSearch.actions.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/client/nameSearch/nameSearch.actions.js b/client/nameSearch/nameSearch.actions.js new file mode 100644 index 00000000..290ee38d --- /dev/null +++ b/client/nameSearch/nameSearch.actions.js @@ -0,0 +1,52 @@ +// import fetchJsonp from 'fetch-jsonp' +import * as types from '../types' +// import { hashPath } from '../util' +import { post } from '../util' +// import querystring from 'query-string' + +// urls + +const url = { + search: (dataset, q) => process.env.API_HOST + '/api/dataset/' + dataset + '/name?q=' + encodeURIComponent(q), +} +export const publicUrl = { +} + +// standard loading events + +const loading = (tag, offset) => ({ + type: types.nameSearch.loading, + tag, + offset +}) +const loaded = (tag, data, offset = 0) => ({ + type: types.nameSearch.loaded, + tag, + data, + offset +}) +const error = (tag, err) => ({ + type: types.nameSearch.error, + tag, + err +}) + +// search UI functions + +export const updateOptions = opt => dispatch => { + dispatch({ type: types.nameSearch.update_options, opt }) +} + +// API functions + +export const search = (payload, q) => dispatch => { + const tag = 'result' + const fd = new FormData() + fd.append('q', q) + dispatch(loading(tag)) + post(url.search(payload.dataset, q), fd) + .then(data => { + dispatch(loaded(tag, data)) + }) + .catch(err => dispatch(error(tag, err))) +} |
