@wenn/onb
Version:
onb-core
50 lines (45 loc) • 1.5 kB
JavaScript
import axios from 'axios';
import {
GET_PROVINCES_FETCHING,
GET_PROVINCES_SUCCESS,
GET_PROVINCES_FAILURE,
GET_REGIONS_FETCHING,
GET_REGIONS_SUCCESS,
GET_REGIONS_FAILURE } from '../constants';
const { REACT_APP_ENV } = process.env;
export function getProvinces(country_id) {
return (dispatch, getState) => {
dispatch({ type: GET_PROVINCES_FETCHING });
const apiLocations = getState().settings.utils.urls.geolocation;
const request = axios({
method: 'get',
url: `${
apiLocations[REACT_APP_ENV.toUpperCase() || 'dev']
}/provinces?countryId=${country_id}&fields=province,province_id`,
responseType: 'json'
});
request
.then(res =>
dispatch({ type: GET_PROVINCES_SUCCESS, payload: res.data })
)
.catch(error =>
dispatch({ type: GET_PROVINCES_FAILURE, error: error })
);
};
}
export function getRegions(provinceId) {
return (dispatch, getState) => {
dispatch({ type: GET_REGIONS_FETCHING });
const apiLocations = getState().settings.utils.urls.geolocation;
const request = axios({
method: 'get',
url: `${
apiLocations[REACT_APP_ENV.toUpperCase() || 'dev']
}/regions?provinceId=${provinceId}&fields=region`,
responseType: 'json'
});
request
.then(res => dispatch({ type: GET_REGIONS_SUCCESS, payload: res.data }))
.catch(error => dispatch({ type: GET_REGIONS_FAILURE, error: error }));
};
}