import axios from "axios"; import I18n from 'react-native-i18n'; import { fetchCreateGroupError, fetchCreateGroupPending, fetchCreateGroupReset, fetchCreateGroupSuccess, fetchTreatDemandsGroupPending, fetchTreatDemandsGroupSuccess, fetchTreatDemandsGroupError, fetchTreatDemandsGroupReset, fetchJoinGroupPending, fetchJoinGroupSuccess, fetchJoinGroupError, fetchJoinGroupReset, fetchAskNanoCreditPending, fetchAskNanoCreditSuccess, fetchAskNanoCreditError, fetchAskNanoCreditReset, fetchGetNanoCreditDemandDurationPending, fetchGetNanoCreditDemandDurationSuccess, fetchGetNanoCreditDemandDurationError, fetchGetNanoCreditDemandDurationReset } from "../redux/actions/NanoCreditAction"; import { store } from "../redux/store"; import { groupUrl, getNanoCreditDemandDureationUrl, treatDemandUrl, joinGroupUrl, cancelDemandUrl, askNanoCreditUrl } from "./IlinkConstants"; import AskNanoCreditReducer from "../redux/reducers/AskNanoCreditReducer"; /** * * @param {*} data * @param {*} isToMofidy | 0-> CREATE 1->MODIFY 2->DELETE */ export const createGroupAction = (data, isToMofidy) => { const auth = store.getState().authKeyReducer; const authKey = auth !== null ? `${auth.authKey.token_type} ${auth.authKey.access_token}` : ''; return dispatch => { dispatch(fetchCreateGroupPending()); axios({ url: `${groupUrl}`, method: isToMofidy === 0 ? 'POST' : isToMofidy === 1 ? 'PUT' : 'DELETE', data, headers: { 'Authorization': authKey, 'X-Localization': I18n.currentLocale() } }) .then(response => { console.log(response); dispatch(fetchCreateGroupSuccess(response)); }) .catch(error => { if (error.response) dispatch(fetchCreateGroupError(error.response)); else if (error.request) dispatch(fetchCreateGroupError(error.request)) else dispatch(fetchCreateGroupError(error.message)) }); } } export const createGroupReset = () => { return dispatch => { dispatch(fetchCreateGroupReset()); } } export const treatDemandGroupAction = (data) => { const auth = store.getState().authKeyReducer; const authKey = auth !== null ? `${auth.authKey.token_type} ${auth.authKey.access_token}` : ''; return dispatch => { dispatch(fetchTreatDemandsGroupPending()); axios({ url: `${treatDemandUrl}`, method: 'POST', data, headers: { 'Authorization': authKey, 'X-Localization': I18n.currentLocale() } }) .then(response => { console.log(response); dispatch(fetchTreatDemandsGroupSuccess(response)); }) .catch(error => { if (error.response) dispatch(fetchTreatDemandsGroupError(error.response)); else if (error.request) dispatch(fetchTreatDemandsGroupError(error.request)) else dispatch(fetchTreatDemandsGroupError(error.message)) }); } } export const cancelDemandGroupAction = (data) => { const auth = store.getState().authKeyReducer; const authKey = auth !== null ? `${auth.authKey.token_type} ${auth.authKey.access_token}` : ''; return dispatch => { dispatch(fetchTreatDemandsGroupPending()); axios({ url: `${cancelDemandUrl}`, method: 'POST', data, headers: { 'Authorization': authKey, 'X-Localization': I18n.currentLocale() } }) .then(response => { console.log(response); dispatch(fetchTreatDemandsGroupSuccess(response)); }) .catch(error => { if (error.response) dispatch(fetchTreatDemandsGroupError(error.response)); else if (error.request) dispatch(fetchTreatDemandsGroupError(error.request)) else dispatch(fetchTreatDemandsGroupError(error.message)) }); } } export const treatDemandGroupReset = () => { return dispatch => { dispatch(fetchTreatDemandsGroupReset()); } } export const joinGroupAction = (data) => { const auth = store.getState().authKeyReducer; const authKey = auth !== null ? `${auth.authKey.token_type} ${auth.authKey.access_token}` : ''; return dispatch => { dispatch(fetchJoinGroupPending()); axios({ url: `${joinGroupUrl}`, method: 'POST', data, headers: { 'Authorization': authKey, 'X-Localization': I18n.currentLocale() } }) .then(response => { console.log(response); dispatch(fetchJoinGroupSuccess(response)); }) .catch(error => { if (error.response) dispatch(fetchJoinGroupError(error.response)); else if (error.request) dispatch(fetchJoinGroupError(error.request)) else dispatch(fetchJoinGroupError(error.message)) }); } } export const joinGroupReset = () => { return dispatch => { dispatch(fetchJoinGroupReset()); } } export const askNanoCreditAction = (data) => { const auth = store.getState().authKeyReducer; const authKey = auth !== null ? `${auth.authKey.token_type} ${auth.authKey.access_token}` : ''; return dispatch => { dispatch(fetchAskNanoCreditPending()); axios({ url: `${askNanoCreditUrl}`, method: 'POST', data, headers: { 'Authorization': authKey, 'X-Localization': I18n.currentLocale() } }) .then(response => { console.log(response); dispatch(fetchAskNanoCreditSuccess(response)); }) .catch(error => { if (error.response) dispatch(fetchAskNanoCreditError(error.response)); else if (error.request) dispatch(fetchAskNanoCreditError(error.request)) else dispatch(fetchAskNanoCreditError(error.message)) }); } } export const askNanoCreditReset = () => { return dispatch => { dispatch(fetchAskNanoCreditReset()); } } export const getNanoCreditDemandDurationAction = (id) => { const auth = store.getState().authKeyReducer; const authKey = auth !== null ? `${auth.authKey.token_type} ${auth.authKey.access_token}` : ''; return dispatch => { dispatch(fetchGetNanoCreditDemandDurationPending()); axios({ url: `${getNanoCreditDemandDureationUrl}/${id}`, method: 'GET', headers: { 'Authorization': authKey, 'X-Localization': I18n.currentLocale() } }) .then(response => { console.log(response); dispatch(fetchGetNanoCreditDemandDurationSuccess(response)); }) .catch(error => { if (error.response) dispatch(fetchGetNanoCreditDemandDurationError(error.response)); else if (error.request) dispatch(fetchGetNanoCreditDemandDurationError(error.request)) else dispatch(fetchGetNanoCreditDemandDurationError(error.message)) }); } } export const getNanoCreditDemandDurationReset = () => { return dispatch => { dispatch(fetchGetNanoCreditDemandDurationReset()); } }