// import fetchJsonp from 'fetch-jsonp' import * as types from '../types' // import { hashPath } from '../util' import { store } from '../store' import { post, preloadImage } from '../util' // import querystring from 'query-string' // urls const url = { upload: (dataset) => process.env.API_HOST + '/api/dataset/' + dataset + '/face', } export const publicUrl = { } // standard loading events const loading = (tag, offset) => ({ type: types.faceSearch.loading, tag, offset }) const loaded = (tag, data, offset = 0) => ({ type: types.faceSearch.loaded, tag, data, offset }) const error = (tag, err) => ({ type: types.faceSearch.error, tag, err }) // search UI functions export const updateOptions = opt => dispatch => { dispatch({ type: types.faceSearch.update_options, opt }) } // API functions export const upload = (payload, file) => dispatch => { // const { options } = store.getState().faceSearch const tag = 'result' const fd = new FormData() fd.append('query_img', file) // fd.append('limit', options.perPage) // if (!query) { dispatch(loading(tag)) // } post(url.upload(payload.dataset), fd) .then(data => { dispatch(loaded(tag, data)) }) .catch(err => dispatch(error(tag, err))) }