2017-05-16 13:34:00 +02:00
|
|
|
|
|
|
|
/*
|
2017-06-26 15:35:54 +02:00
|
|
|
* Prefix lookup actions
|
2017-05-16 13:34:00 +02:00
|
|
|
*/
|
|
|
|
|
2017-06-26 15:35:54 +02:00
|
|
|
import axios from 'axios'
|
2017-05-16 13:34:00 +02:00
|
|
|
|
2018-10-23 19:40:36 +02:00
|
|
|
import {filtersUrlEncode} from 'components/filters/encoding'
|
2018-10-18 16:22:19 +02:00
|
|
|
|
2018-09-17 15:35:46 +02:00
|
|
|
export const SET_LOOKUP_QUERY_VALUE = '@lookup/SET_LOOKUP_QUERY_VALUE';
|
|
|
|
|
2017-06-26 15:35:54 +02:00
|
|
|
export const LOAD_RESULTS_REQUEST = '@lookup/LOAD_RESULTS_REQUEST';
|
|
|
|
export const LOAD_RESULTS_SUCCESS = '@lookup/LOAD_RESULTS_SUCCESS';
|
|
|
|
export const LOAD_RESULTS_ERROR = '@lookup/LOAD_RESULTS_ERROR';
|
2017-05-16 13:34:00 +02:00
|
|
|
|
2018-09-17 16:26:42 +02:00
|
|
|
export const RESET = "@lookup/RESET";
|
|
|
|
|
2017-06-26 15:35:54 +02:00
|
|
|
// Action creators
|
2018-09-17 15:35:46 +02:00
|
|
|
export function setLookupQueryValue(value) {
|
|
|
|
return {
|
|
|
|
type: SET_LOOKUP_QUERY_VALUE,
|
|
|
|
payload: {
|
|
|
|
value: value,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2017-06-26 15:35:54 +02:00
|
|
|
export function loadResultsRequest(query) {
|
|
|
|
return {
|
|
|
|
type: LOAD_RESULTS_REQUEST,
|
|
|
|
payload: {
|
|
|
|
query: query
|
2017-05-16 13:34:00 +02:00
|
|
|
}
|
2017-06-26 15:35:54 +02:00
|
|
|
}
|
2017-05-16 13:34:00 +02:00
|
|
|
}
|
|
|
|
|
2017-06-26 15:35:54 +02:00
|
|
|
export function loadResultsSuccess(query, results) {
|
|
|
|
return {
|
|
|
|
type: LOAD_RESULTS_SUCCESS,
|
|
|
|
payload: {
|
|
|
|
query: query,
|
|
|
|
results: results
|
2017-05-16 13:34:00 +02:00
|
|
|
}
|
2017-06-26 15:35:54 +02:00
|
|
|
}
|
2017-05-16 13:34:00 +02:00
|
|
|
}
|
|
|
|
|
2017-06-26 15:35:54 +02:00
|
|
|
export function loadResultsError(query, error) {
|
|
|
|
return {
|
|
|
|
type: LOAD_RESULTS_ERROR,
|
|
|
|
payload: {
|
|
|
|
query: query,
|
|
|
|
error: error
|
2017-05-16 13:34:00 +02:00
|
|
|
}
|
2017-06-26 15:35:54 +02:00
|
|
|
}
|
2017-05-16 13:34:00 +02:00
|
|
|
}
|
|
|
|
|
2018-10-18 16:22:19 +02:00
|
|
|
export function loadResults(query, filters, pageImported=0, pageFiltered=0) {
|
2017-06-26 15:35:54 +02:00
|
|
|
return (dispatch) => {
|
|
|
|
dispatch(loadResultsRequest(query));
|
2017-05-16 13:34:00 +02:00
|
|
|
|
2018-09-25 22:13:03 +02:00
|
|
|
// Build querystring
|
2018-10-18 16:22:19 +02:00
|
|
|
const q = `q=${query}&page_filtered=${pageFiltered}&page_imported=${pageImported}`;
|
2018-10-23 23:10:57 +02:00
|
|
|
const f = filtersUrlEncode(filters);
|
2018-10-18 16:22:19 +02:00
|
|
|
axios.get(`/api/v1/lookup/prefix?${q}${f}`)
|
2018-10-18 11:46:59 +02:00
|
|
|
.then(
|
|
|
|
(res) => {
|
|
|
|
dispatch(loadResultsSuccess(query, res.data));
|
|
|
|
},
|
|
|
|
(error) => {
|
|
|
|
dispatch(loadResultsError(query, error));
|
|
|
|
});
|
2017-06-26 15:35:54 +02:00
|
|
|
}
|
2017-05-16 13:34:00 +02:00
|
|
|
}
|
|
|
|
|
2018-09-17 16:26:42 +02:00
|
|
|
export function reset() {
|
|
|
|
return {
|
|
|
|
type: RESET,
|
|
|
|
payload: {}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-05-16 13:34:00 +02:00
|
|
|
|