Viewing File: /home/ubuntu/route-and-root-frontend-base/src/components/store/sagas/OrdersSaga.jsx
import { call, select, put, takeLatest, all } from "redux-saga/effects";
import api from "../../Environment";
import {
getSuccessNotificationMessage,
getErrorNotificationMessage,
} from "../../Helper/ToastNotification";
import {
SAVE_ORDERS_DIRECT_START,
SAVE_ORDERS_CART_START,
ORDER_STATUS_START,
FETCH_ORDERS_LIST_START,
FETCH_ORDERS_DETAILS_START,
CANCEL_ORDERS_START,
INVOICE_ORDERS_START,
FETCH_MORE_ORDERS_LIST_START,
TRANSACTION_LIST_START,
MORE_TRANSACTION_LIST_START,
ORDERS_SEND_CANCEL_REQUEST_START,
ORDERS_SEND_RETURN_REQUEST_START,
ORDERS_CHECKOUT_START,
UPI_INITENT_CHECKOUT_START,
} from "../actions/ActionConstant";
import {
saveOrdersDirectSuccess,
saveOrdersDirectFailure,
saveOrdersCartSuccess,
saveOrdersCartFailure,
orderStatusSuccess,
orderStatusFailure,
fetchOrdersListStart,
fetchOrdersListSuccess,
fetchOrdersListFailure,
fetchOrdersDetailsSuccess,
fetchOrdersDetailsFailure,
cancelOrdersSuccess,
cancelOrdersFailure,
invoiceOrdersSuccess,
invoiceOrdersFailure,
transactionListSuccess,
transactionListFailure,
ordersSendCancelRequestSuccess,
ordersSendCancelRequestFailure,
ordersSendReturnRequestSuccess,
ordersSendReturnRequestFailure,
ordersCheckoutSuccess,
ordersCheckoutFailure,
upiIntentCheckoutSuccess,
upiIntentCheckoutFailure
} from "../actions/OrdersAction";
function* saveOrdersDirectAPI(action) {
try {
const response = yield api.postMethod("orders_direct_checkout", action.data);
if (response.data.success) {
yield put(saveOrdersDirectSuccess(response.data.data));
yield call(getSuccessNotificationMessage, response.message);
} else {
yield put(saveOrdersDirectFailure(response.data.error));
yield call(getErrorNotificationMessage, response.data.error);
}
} catch (error) {
yield put(saveOrdersDirectFailure(error));
yield call(getErrorNotificationMessage, error.message);
}
}
function* saveOrdersCartAPI(action) {
try {
const response = yield api.postMethod("orders_cart_checkout", action.data);
if (response.data.success) {
yield put(saveOrdersCartSuccess(response.data.data));
yield call(getSuccessNotificationMessage, response.message);
} else {
yield put(saveOrdersCartFailure(response.data.error));
yield call(getErrorNotificationMessage, response.data.error);
}
} catch (error) {
yield put(saveOrdersCartFailure(error));
yield call(getErrorNotificationMessage, error.message);
}
}
function* fetchOrdersListAPI(action) {
try {
const response = yield api.postMethod("orders_list", action.data);
if (response.data.success) {
yield put(fetchOrdersListSuccess(response.data.data));
} else {
yield put(fetchOrdersListFailure(response.data.error));
yield call(getErrorNotificationMessage, response.data.error);
}
} catch (error) {
yield put(fetchOrdersListFailure(error));
yield call(getErrorNotificationMessage, error.message);
}
}
function* fetchOrdersDetailsAPI(action) {
try {
const response = yield api.postMethod("orders_view", action.data);
if (response.data.success) {
yield put(fetchOrdersDetailsSuccess(response.data.data));
} else {
yield put(fetchOrdersDetailsFailure(response.data.error));
yield call(getErrorNotificationMessage, response.data.error);
}
} catch (error) {
yield put(fetchOrdersDetailsFailure(error));
yield call(getErrorNotificationMessage, error.message);
}
}
function* cancelOrdersAPI(action) {
try {
const response = yield api.postMethod("orders_cancel", action.data);
if (response.data.success) {
yield put(cancelOrdersSuccess(response.data.data));
} else {
yield put(cancelOrdersFailure(response.data.error));
yield call(getErrorNotificationMessage, response.data.error);
}
} catch (error) {
yield put(cancelOrdersFailure(error));
yield call(getErrorNotificationMessage, error.message);
}
}
function* invoiceOrdersAPI(action) {
try {
const response = yield api.postMethod("orders_invoice", action.data);
if (response.data.success) {
yield put(invoiceOrdersSuccess(response.data.data));
} else {
yield put(invoiceOrdersFailure(response.data.error));
yield call(getErrorNotificationMessage, response.data.error);
}
} catch (error) {
yield put(invoiceOrdersFailure(error));
yield call(getErrorNotificationMessage, error.message);
}
}
function* fetchtransactionListAPI(action) {
try {
const response = yield api.postMethod("order_payments_list", action.data);
if (response.data.success) {
yield put(transactionListSuccess(response.data.data));
} else {
yield put(transactionListFailure(response.data.error));
yield call(getErrorNotificationMessage, response.data.error);
}
} catch (error) {
yield put(transactionListFailure(error));
yield call(getErrorNotificationMessage, error.message);
}
}
function* ordersSendCancelRequestAPI(action) {
try {
const response = yield api.postMethod("orders_send_cancel_request", action.data);
if (response.data.success) {
yield put(ordersSendCancelRequestSuccess(response.data.data));
yield put(fetchOrdersDetailsSuccess(response.data.data));
yield call(getSuccessNotificationMessage, response.data.message);
} else {
yield put(ordersSendCancelRequestFailure(response.data.error));
yield call(getErrorNotificationMessage, response.data.error);
}
} catch (error) {
yield put(ordersSendCancelRequestFailure(error));
yield call(getErrorNotificationMessage, error.message);
}
}
function* ordersSendReturnRequestAPI(action) {
try {
const response = yield api.postMethod("orders_send_return_request", action.data);
if (response.data.success) {
yield put(ordersSendReturnRequestSuccess(response.data.data));
yield put(fetchOrdersDetailsSuccess(response.data.data));
} else {
yield put(ordersSendReturnRequestFailure(response.data.error));
yield call(getErrorNotificationMessage, response.data.error);
}
} catch (error) {
yield put(ordersSendReturnRequestFailure(error));
yield call(getErrorNotificationMessage, error.message);
}
}
function* ordersCheckoutAPI(action) {
try {
const jsonResponse = yield api.getLocation();
const response = yield api.postMethod("orders_checkout", {
...action.data,
country_code: jsonResponse.country,
state: jsonResponse.region,
});
if (response.data.success) {
yield put(ordersCheckoutSuccess(response.data.data));
} else {
yield put(ordersCheckoutFailure(response.data.error));
yield call(getErrorNotificationMessage, response.data.error);
}
} catch (error) {
yield put(ordersCheckoutFailure(error));
yield call(getErrorNotificationMessage, error.message);
}
}
function* upiIntentCheckoutAPI(action) {
try {
const response = yield api.postMethod("payment_payin", action.data);
if (response.data.success) {
yield put(upiIntentCheckoutSuccess(response.data.data));
} else {
yield put(upiIntentCheckoutFailure(response.data.error));
yield call(getErrorNotificationMessage, response.data.error);
}
} catch (error) {
yield put(upiIntentCheckoutFailure(error));
yield call(getErrorNotificationMessage, error.message);
}
}
function* orderStatusAPI(action) {
try {
const response = yield api.postMethod("payment_payin_status", action.data);
if (response.data.success) {
yield put(orderStatusSuccess(response.data.data));
yield call(getSuccessNotificationMessage, response.message);
} else {
yield put(orderStatusFailure(response.data.error));
yield call(getErrorNotificationMessage, response.data.error);
}
} catch (error) {
yield put(orderStatusFailure(error));
yield call(getErrorNotificationMessage, error.message);
}
}
export default function* pageSaga() {
yield all([
yield takeLatest(SAVE_ORDERS_DIRECT_START, saveOrdersDirectAPI),
yield takeLatest(SAVE_ORDERS_CART_START, saveOrdersCartAPI),
yield takeLatest(ORDER_STATUS_START, orderStatusAPI),
yield takeLatest(FETCH_ORDERS_LIST_START, fetchOrdersListAPI),
yield takeLatest(FETCH_MORE_ORDERS_LIST_START, fetchOrdersListAPI),
yield takeLatest(FETCH_ORDERS_DETAILS_START, fetchOrdersDetailsAPI),
yield takeLatest(CANCEL_ORDERS_START, cancelOrdersAPI),
yield takeLatest(INVOICE_ORDERS_START, invoiceOrdersAPI),
yield takeLatest(TRANSACTION_LIST_START, fetchtransactionListAPI),
yield takeLatest(MORE_TRANSACTION_LIST_START, fetchtransactionListAPI),
yield takeLatest(ORDERS_SEND_CANCEL_REQUEST_START, ordersSendCancelRequestAPI),
yield takeLatest(ORDERS_SEND_RETURN_REQUEST_START, ordersSendReturnRequestAPI),
yield takeLatest(ORDERS_CHECKOUT_START, ordersCheckoutAPI),
yield takeLatest(UPI_INITENT_CHECKOUT_START, upiIntentCheckoutAPI),
]);
}
Back to Directory
File Manager