evoleasing-account/actions/invoicesActions.js
2023-11-03 17:14:01 +03:00

112 lines
2.5 KiB
JavaScript

import axios from 'axios';
import fileDownload from 'js-file-download';
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 getContractInvoices = ({ dispatch, number }) =>
{
return new Promise((resolve, reject) =>
{
axios.post(`${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/contract/invoices`, { number },
{
withCredentials: true,
})
.then(async (response) =>
{
console.log("getContractInvoices", { response: response.data });
dispatch({ type: actionTypes.INVOICES_LIST, data: { number, invoices: response.data } });
resolve();
})
.catch((error) =>
{
console.error(error);
reject();
});
});
}
export const downloadInvoiceFile = ({ payload, filename }) =>
{
const url = `${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/contract/invoice/download`;
return new Promise((resolve, reject) =>
{
axios.get(url, {
params: payload,
responseType: 'blob',
})
.then((response) =>
{
fileDownload(response.data, filename);
resolve();
})
.catch((error) =>
{
console.error("ACTION", "sign", "downloadInvoiceFile()", "ERROR");
console.error(error);
const eventMessage = new CustomEvent("_message", { detail: { type: "error", title: "Ошибка", content: "Ошибка при вызове метода GetWMDoc" } });
window.dispatchEvent(eventMessage);
reject(error.data);
});
});
}
export const getInvoiceKASKO = ({ number }) =>
{
return new Promise((resolve, reject) =>
{
axios.post(`${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/contract/invoice/kasko`, { number },
{
withCredentials: true,
})
.then(async (response) =>
{
console.log("getInvoiceKASKO", { response: response.data });
resolve(response.data);
})
.catch((error) =>
{
console.error(error);
reject();
});
});
}
export const getInvoiceFinGap = ({ number }) =>
{
return new Promise((resolve, reject) =>
{
axios.post(`${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/contract/invoice/fingap`, { number },
{
withCredentials: true,
})
.then(async (response) =>
{
console.log("getInvoiceFinGap", { response: response.data });
resolve(response.data);
})
.catch((error) =>
{
console.error(error);
reject();
});
});
}