168 lines
4.8 KiB
JavaScript
168 lines
4.8 KiB
JavaScript
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();
|
|
});
|
|
|
|
});
|
|
} |