summaryrefslogtreecommitdiff
path: root/client/nameSearch/nameSearch.actions.js
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-12-18 01:03:10 +0100
committerJules Laplace <julescarbon@gmail.com>2018-12-18 01:03:10 +0100
commit7b8e6f9a7d3eb36b72b53d5e754b9c7916b98ed7 (patch)
treee0445a2709ecf07e770a9b0ddecb8eeb3d168931 /client/nameSearch/nameSearch.actions.js
parentd3be915bc5725a36dee867b07404725177783460 (diff)
namesearchg
Diffstat (limited to 'client/nameSearch/nameSearch.actions.js')
-rw-r--r--client/nameSearch/nameSearch.actions.js52
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)))
+}