import axios from 'axios'; import { Cookies } from 'react-cookie'; import Router from 'next/router'; import moment from 'moment'; import { nSQL } from "@nano-sql/core"; import fileDownload from 'js-file-download'; import { eachSeries, each } from "async"; import * as actionTypes from '../constants/actionTypes'; 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 getQuestionnaire = ({ dispatch }) => { console.log("ACTION", "support", "getAppeals()", `${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/questionnaire/get`); return new Promise((resolve, reject) => { axios.get(`${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/questionnaire/get`) .then((response) => { console.log("ACTION", "questionnaire", "getQuestionnaire()", "response", response.data); const questionnaire = JSON.parse(JSON.stringify(global.store.getState().questionnaire)); questionnaire.main.title = response.data.title; questionnaire.main.inn = response.data.inn; questionnaire.main.kpp = response.data.kpp; questionnaire.main.telephone = response.data.telephone; questionnaire.main.email = response.data.email; questionnaire.main.websiteurl = response.data.websiteurl !== null ? response.data.websiteurl : ""; questionnaire.main.financial_loan = response.data.financial_loan !== null ? response.data.financial_loan : ""; questionnaire.contacts.fact_address = response.data.fact_address; questionnaire.contacts.postal_address = response.data.postal_address; questionnaire.contacts.legal_address = response.data.legal_address; console.log("questionnairequestionnairequestionnaire FROM JSON", questionnaire); updateQuestionnaire({ dispatch, questionnaire }) .then(() => {}) .catch(() => {}); //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 updateQuestionnaire = ({ dispatch, questionnaire }) => { console.log("ACTION", "questionnaireActions", "updateQuestionnaire()", { questionnaire }); return new Promise((resolve, reject) => { dispatch({ type: actionTypes.QUESTIONNAIRE_UPDATE, data: { questionnaire, } }); /* setTimeout(() => { console.log("ACTION", "questionnaireActions", "updateQuestionnaire", global.store.getState(), { dispatch: dispatch }); resolve(); }, 500); */ }); } export const uploadAttachmentFile = (file) => { console.log("ACTION", "questionnaireActions", "uploadAttachmentFile()", { file }); return new Promise((resolve, reject) => { let data = new FormData(); data.append('file', file); axios.post(`${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/questionnaire/file/upload`, data, { headers: { "Content-Type": "multipart/form-data", }, withCredentials: true, }) .then(async (response) => { console.log("questionnaireActions", "uploadAttachmentFile()", "response.data", response.data); resolve(response.data); }) .catch((error) => { console.error(error); reject(); }); }); } export const downloadQuestionnaire = (download = true) => { console.log("ACTION", "questionnaireActions", "downloadQuestionnaire()", ); //{ questionnaire } //questionnaire return new Promise((resolve, reject) => { let cookies = new Cookies(); let cookies_list = cookies.getAll(); const { questionnaire } = global.store.getState(); console.log("questionnaire", questionnaire); const { main, contacts, signatory_person, founded_persons, head_person, non_profit, } = questionnaire; const playload = { main, contacts, signatory_person, founded_persons, head_person, non_profit, }; console.log({ playload }); /* axios.post(`${ process.env.NEXT_PUBLIC_INT_API_HOST }/questionnaire/download`, { questionnaire: playload }, { headers: { "Authorization": `Bearer ${ cookies_list.jwt }`, }, }) */ axios.post(`${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/questionnaire/download`, { questionnaire: playload }, { headers: { 'Content-Type': 'application/json', 'Accept': 'application/pdf' }, responseType: 'arraybuffer', }) .then((response) => { if(download) { console.log("downloadQuestionnaire", "response.data"); fileDownload(response.data, response.headers.filename); resolve(); } else { resolve({ file: response.data, filename: response.headers.filename }); } //dispatch({ type: actionTypes.SUPPORT_APPEALS, data: { appeals: { list: response.data.appeals, new: response.data.new, } } }); }) .catch((error) => { console.log("error"); console.error(error); reject(); }); }); }