import axios from 'axios'; import * as actionTypes from '../constants/actionTypes'; import * as currentState from '../reducers/initialState'; if(process.browser) { FormData.prototype.appendObject = function(obj, namespace) { let keyName; for (var key in obj) { if (obj.hasOwnProperty(key)) { keyName = [namespace, '[', key, ']'].join(''); this.append(keyName, obj[key]); } } }; } export const setAppealsRead = ({ dispatch, appeals }) => { return new Promise((resolve, reject) => { axios.post(`${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/support/read`, { appeals }, { withCredentials: true, }) .then((response) => { dispatch({ type: actionTypes.SUPPORT_APPEALS, data: { appeals: { new: 0, } } }); resolve(); }) .catch((error) => { console.log("error"); console.error(error); reject(); }); }); } export const getAppeals = ({ dispatch }) => { console.log("ACTION", "support", "getAppeals", `${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/support/appeals`); return new Promise((resolve, reject) => { axios.post(`${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/support/appeals`, {}, { withCredentials: true, }) .then((response) => { console.log("getEvents", "response", response.data); const events = response.data; const filtered_events = []; console.log("events"); console.log(events); dispatch({ type: actionTypes.SUPPORT_APPEALS, data: { appeals: { list: response.data.appeals, new: response.data.new, } } }); resolve(); }) .catch((error) => { console.log("error"); console.error(error); reject(); }); }); } export const getSupportThemes = ({ dispatch, query, }) => { console.log("ACTION", "support", "getSupportThemes", { query }); return new Promise((resolve, reject) => { axios.post(`${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/support/themes`, { query }, { withCredentials: true, }) .then(async (response) => { console.log("getContractRules", "response.data", response.data); dispatch({ type: actionTypes.SUPPORT_THEMES, data: { themes: response.data.themes } }); resolve(); }) .catch((error) => { console.error(error); reject(); }); }); } export const sendNewAppeal = ({ name, phone, email, company }) => { return new Promise((resolve, reject) => { var formData = new FormData(); formData.append("form", "FORM_LEASING_REQUESTS"); formData.append("FORM_FIELD_FIO", name); formData.append("FORM_FIELD_PHONE", phone); formData.append("FORM_FIELD_EMAIL", email); formData.append("FORM_FIELD_COMPANY", company); formData.append("FORM_FIELD_PAGE_NAME", document.title); formData.append("FORM_FIELD_PAGE_URL", window.location.href); axios.post(`${ process.env.NEXT_PUBLIC_API_HOST }/api/forms/`, formData) .then((response) => { if(response.data.status === "complete") { resolve(); } else { reject(); } }) .catch((error) => { console.error(error); reject(); }); }); }