Skip to content

Instantly share code, notes, and snippets.

@kwekuboateng
Created September 18, 2017 10:42
Show Gist options
  • Save kwekuboateng/57315abe2064a346732d867b83e8ca03 to your computer and use it in GitHub Desktop.
Save kwekuboateng/57315abe2064a346732d867b83e8ca03 to your computer and use it in GitHub Desktop.
import axios from 'axios';
import * as actionType from './actionTypes/orderActionTypes';
import setAuthorizationToken from '../Utils/setAuthorizationToken';
import localforage from 'localforage';
axios.defaults.baseURL = `https://api.aidahbot.com`;
/**
* PLAIN JAVASCRIPT ACTIONS
*/
export function orderAddNew(order) {
return {
type: actionType.ORDER_ADD_NEW,
payload: order
}
}
export function orderIsLoading(bool) {
return {
type: actionType.ORDER_IS_LOADING,
payload: bool
}
}
export function orderStatusChange(bool) {
return {
type: actionType.ORDER_STATUS_CHANGE,
payload: bool
}
}
export function orderFetchSuccess(bool) {
return{
type: actionType.ORDER_FETCH_SUCCESS,
payload: bool
}
}
export function editOrder(status, show) {
return {
type: actionType.EDIT_ORDER,
payload: {
...status,
show: show
}
}
}
export function orderDelete(ref) {
return {
type: actionType.DELETE_ORDER,
payload: ref
}
}
export function orderFetch(order) {
return {
type: actionType.FETCH_ORDER,
payload: order
}
}
/**
* ACTION CREATORS
*/
// export function addNewOrder(store_name) {
// return (dispatch) => {
// let token = localStorage.getItem('jwtToken');
// setAuthorizationToken(token);
// const serverResponse = axios.post(`merchant/${store_name}/order`);
// serverResponse.then((response) => {
// dispatch(orderAddNew(response.data));
// dispatch(orderSave(true));
// alert('New order');
// }).catch((error) => {
// dispatch(orderSave(false));
// dispatch((error.response.data))
// })
// }
// }
export function updateOrder(store_name, id) {
return (dispatch) => {
let token = localStorage.getItem('jwtToken');
setAuthorizationToken(token);
const serverResponse = axios.put(`/merchant/${store_name}/product/${id}`);
serverResponse.then((response) => {
console.log(response.data, 'this is put');
dispatch(orderAddNew(response.data.orders));
// dispatch(orderSave(true));
}).catch((error) => {
console.log('ERROR: ',error.response.data)
})
}
}
export function fetchOrders() {
return (dispatch) => {
const token = localforage.getItem('jwtToken').then(token => {
setAuthorizationToken(token);
})
localforage.getItem('reduxPersist:Account').then(function (value) {
let user = JSON.parse(value);
return axios.get(`/merchant/${user.user.store_name}/order`);
dispatch(orderIsLoading(true));
}).then(response => {
dispatch(orderIsLoading(false));
dispatch(orderFetch(response.data.orders))
console.log("new orders",response.data.orders)
dispatch(orderFetchSuccess(true));
}).
catch(function (err) {
console.log('Err: ', err);
});
}
}
export function deleteOrder(store_name, ref) {
return (dispatch) => {
let token = localStorage.getItem('jwtToken');
setAuthorizationToken(token);
const serverResponse = axios.delete(`/merchant/${store_name}/order/${ref}`);
serverResponse.then((response) => {
dispatch(orderDelete(ref));
alert('Order: '+ ref + ' deleted successfully');
console.log(response);
}).catch(()=> {
alert('Failed to delete order: '+ ref);
})
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment