actions
unknown
javascript
3 years ago
4.5 kB
5
Indexable
import axios from "axios"; import { SHOW_LOADING_OVERLAY, HIDE_LOADING_OVERLAY, GEOCODED_GPS_COORDINATES, CLEAR_GEOCODED_GPS_COORDINATES, GEOCODED_PLANT_GPS_COORDINATES, CLEAR_GEOCODED_PLANT_GPS_COORDINATES, SHOW_ERROR_MESSAGE } from "../types"; const URL = "/api/v1/geocodeAddress"; export const geocodeAddress = ({ province, city }) => async dispatch => { try { // Dispatch to Show Loading Overlay Spinner dispatch({ type: SHOW_LOADING_OVERLAY, payload: "Geocoding Address" }); // Initialize Form Data const formData = new FormData(); // Append Form Data formData.append("province", province); formData.append("city", city); // Make API Request to Geocode Address const { data } = await axios({ url: URL, method: "POST", data: formData, headers: { Accept: "application/json", "Content-Type": "multipart/form-data" } }); // Destructure Data const { lat, lon } = data[0]; // Create Payload Data const payload = [parseFloat(lat), parseFloat(lon)]; // Dispatch Geocoded GPS Coordinates dispatch({ type: GEOCODED_GPS_COORDINATES, payload }); // Dispatch to Hide Loading Overlay Spinner dispatch({ type: HIDE_LOADING_OVERLAY }); } catch (e) { // Dispatch to Hide Loading Overlay Spinner dispatch({ type: HIDE_LOADING_OVERLAY }); // Dispatch to Show Error Message dispatch({ type: SHOW_ERROR_MESSAGE }); } }; export const plantGeocodeAddress = ({ plantProvince, plantCity }) => async dispatch => { try { // Dispatch to Show Loading Overlay Spinner dispatch({ type: SHOW_LOADING_OVERLAY, payload: "Geocoding Plant Address" }); // Initialize Form Data const formData = new FormData(); // Append Form Data formData.append("province", plantProvince); formData.append("city", plantCity); // Make API Request to Geocode Address const { data } = await axios({ url: URL, method: "POST", data: formData, headers: { Accept: "application/json", "Content-Type": "multipart/form-data" } }); // Destructure Data const { lat, lon } = data[0]; // Create Payload Data const payload = [parseFloat(lat), parseFloat(lon)]; // Dispatch Geocoded GPS Coordinates dispatch({ type: GEOCODED_PLANT_GPS_COORDINATES, payload }); // Dispatch to Hide Loading Overlay Spinner dispatch({ type: HIDE_LOADING_OVERLAY }); return [parseFloat(lat), parseFloat(lon)]; } catch (e) { // Dispatch to Hide Loading Overlay Spinner dispatch({ type: HIDE_LOADING_OVERLAY }); // Dispatch to Show Error Message dispatch({ type: SHOW_ERROR_MESSAGE }); } }; export const warehouseGeocodeAddress = ({ province, city }) => async dispatch => { try { // Dispatch to Show Loading Overlay Spinner dispatch({ type: SHOW_LOADING_OVERLAY, payload: "Geocoding Address" }); // Initialize Form Data const formData = new FormData(); // Append Form Data formData.append("province", province); formData.append("city", city); // Make API Request to Geocode Address const { data } = await axios({ url: URL, method: "POST", data: formData, headers: { Accept: "application/json", "Content-Type": "multipart/form-data" } }); // Destructure Data const { lat, lon } = data[0]; // Dispatch to Hide Loading Overlay Spinner dispatch({ type: HIDE_LOADING_OVERLAY }); // Return GPS Coordinates return [parseFloat(lat), parseFloat(lon)]; } catch (e) { // Dispatch to Hide Loading Overlay Spinner dispatch({ type: HIDE_LOADING_OVERLAY }); // Dispatch to Show Error Message dispatch({ type: SHOW_ERROR_MESSAGE }); } }; export const clearGeocodedGPS = () => ({ type: CLEAR_GEOCODED_GPS_COORDINATES, CLEAR_GEOCODED_PLANT_GPS_COORDINATES });
Editor is loading...