Merged in feature/IO-3335-QBO-Payment-Logging (pull request #2470)
IO-3335 QBO Payment Logging Approved-by: Dave Richer
This commit is contained in:
@@ -10,7 +10,6 @@ const queries = require("../../graphql-client/queries");
|
|||||||
const { refresh: refreshOauthToken, setNewRefreshToken } = require("./qbo-callback");
|
const { refresh: refreshOauthToken, setNewRefreshToken } = require("./qbo-callback");
|
||||||
const OAuthClient = require("intuit-oauth");
|
const OAuthClient = require("intuit-oauth");
|
||||||
const moment = require("moment-timezone");
|
const moment = require("moment-timezone");
|
||||||
const GraphQLClient = require("graphql-request").GraphQLClient;
|
|
||||||
const {
|
const {
|
||||||
QueryInsuranceCo,
|
QueryInsuranceCo,
|
||||||
InsertInsuranceCo,
|
InsertInsuranceCo,
|
||||||
@@ -28,7 +27,7 @@ exports.default = async (req, res) => {
|
|||||||
clientId: process.env.QBO_CLIENT_ID,
|
clientId: process.env.QBO_CLIENT_ID,
|
||||||
clientSecret: process.env.QBO_SECRET,
|
clientSecret: process.env.QBO_SECRET,
|
||||||
environment: process.env.NODE_ENV === "production" ? "production" : "sandbox",
|
environment: process.env.NODE_ENV === "production" ? "production" : "sandbox",
|
||||||
redirectUri: process.env.QBO_REDIRECT_URI,
|
redirectUri: process.env.QBO_REDIRECT_URI
|
||||||
});
|
});
|
||||||
try {
|
try {
|
||||||
//Fetch the API Access Tokens & Set them for the session.
|
//Fetch the API Access Tokens & Set them for the session.
|
||||||
@@ -131,9 +130,7 @@ exports.default = async (req, res) => {
|
|||||||
|
|
||||||
// //No error. Mark the payment exported & insert export log.
|
// //No error. Mark the payment exported & insert export log.
|
||||||
if (elgen) {
|
if (elgen) {
|
||||||
const result = await client
|
await client.setHeaders({ Authorization: BearerToken }).request(queries.QBO_MARK_PAYMENT_EXPORTED, {
|
||||||
.setHeaders({ Authorization: BearerToken })
|
|
||||||
.request(queries.QBO_MARK_PAYMENT_EXPORTED, {
|
|
||||||
paymentId: payment.id,
|
paymentId: payment.id,
|
||||||
payment: {
|
payment: {
|
||||||
exportedat: moment().tz(bodyshop.timezone)
|
exportedat: moment().tz(bodyshop.timezone)
|
||||||
@@ -156,7 +153,7 @@ exports.default = async (req, res) => {
|
|||||||
});
|
});
|
||||||
//Add the export log error.
|
//Add the export log error.
|
||||||
if (elgen) {
|
if (elgen) {
|
||||||
const result = await client.setHeaders({ Authorization: BearerToken }).request(queries.INSERT_EXPORT_LOG, {
|
await client.setHeaders({ Authorization: BearerToken }).request(queries.INSERT_EXPORT_LOG, {
|
||||||
logs: [
|
logs: [
|
||||||
{
|
{
|
||||||
bodyshopid: bodyshop.id,
|
bodyshopid: bodyshop.id,
|
||||||
@@ -190,7 +187,7 @@ exports.default = async (req, res) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
async function InsertPayment(oauthClient, qbo_realmId, req, payment, parentRef, bodyshop) {
|
async function InsertPayment(oauthClient, qbo_realmId, req, payment, parentRef) {
|
||||||
const { paymentMethods, invoices } = await QueryMetaData(
|
const { paymentMethods, invoices } = await QueryMetaData(
|
||||||
oauthClient,
|
oauthClient,
|
||||||
qbo_realmId,
|
qbo_realmId,
|
||||||
@@ -263,7 +260,7 @@ async function InsertPayment(oauthClient, qbo_realmId, req, payment, parentRef,
|
|||||||
status: result.response?.status,
|
status: result.response?.status,
|
||||||
bodyshopid: payment.job.shopid,
|
bodyshopid: payment.job.shopid,
|
||||||
email: req.user.email
|
email: req.user.email
|
||||||
})
|
});
|
||||||
setNewRefreshToken(req.user.email, result);
|
setNewRefreshToken(req.user.email, result);
|
||||||
return result && result.Bill;
|
return result && result.Bill;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -291,7 +288,7 @@ async function QueryMetaData(oauthClient, qbo_realmId, req, ro_number, isCreditM
|
|||||||
status: invoice.response?.status,
|
status: invoice.response?.status,
|
||||||
bodyshopid,
|
bodyshopid,
|
||||||
email: req.user.email
|
email: req.user.email
|
||||||
})
|
});
|
||||||
const paymentMethods = await oauthClient.makeApiCall({
|
const paymentMethods = await oauthClient.makeApiCall({
|
||||||
url: urlBuilder(qbo_realmId, "query", `select * From PaymentMethod`),
|
url: urlBuilder(qbo_realmId, "query", `select * From PaymentMethod`),
|
||||||
method: "POST",
|
method: "POST",
|
||||||
@@ -306,7 +303,7 @@ async function QueryMetaData(oauthClient, qbo_realmId, req, ro_number, isCreditM
|
|||||||
status: paymentMethods.response?.status,
|
status: paymentMethods.response?.status,
|
||||||
bodyshopid,
|
bodyshopid,
|
||||||
email: req.user.email
|
email: req.user.email
|
||||||
})
|
});
|
||||||
setNewRefreshToken(req.user.email, paymentMethods);
|
setNewRefreshToken(req.user.email, paymentMethods);
|
||||||
|
|
||||||
// const classes = await oauthClient.makeApiCall({
|
// const classes = await oauthClient.makeApiCall({
|
||||||
@@ -358,7 +355,7 @@ async function QueryMetaData(oauthClient, qbo_realmId, req, ro_number, isCreditM
|
|||||||
status: taxCodes.response?.status,
|
status: taxCodes.response?.status,
|
||||||
bodyshopid,
|
bodyshopid,
|
||||||
email: req.user.email
|
email: req.user.email
|
||||||
})
|
});
|
||||||
const items = await oauthClient.makeApiCall({
|
const items = await oauthClient.makeApiCall({
|
||||||
url: urlBuilder(qbo_realmId, "query", `select * From Item`),
|
url: urlBuilder(qbo_realmId, "query", `select * From Item`),
|
||||||
method: "POST",
|
method: "POST",
|
||||||
@@ -373,7 +370,7 @@ async function QueryMetaData(oauthClient, qbo_realmId, req, ro_number, isCreditM
|
|||||||
status: items.response?.status,
|
status: items.response?.status,
|
||||||
bodyshopid,
|
bodyshopid,
|
||||||
email: req.user.email
|
email: req.user.email
|
||||||
})
|
});
|
||||||
setNewRefreshToken(req.user.email, items);
|
setNewRefreshToken(req.user.email, items);
|
||||||
|
|
||||||
const itemMapping = {};
|
const itemMapping = {};
|
||||||
@@ -412,8 +409,8 @@ async function QueryMetaData(oauthClient, qbo_realmId, req, ro_number, isCreditM
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
async function InsertCreditMemo(oauthClient, qbo_realmId, req, payment, parentRef, bodyshop) {
|
async function InsertCreditMemo(oauthClient, qbo_realmId, req, payment, parentRef) {
|
||||||
const { paymentMethods, invoices, items, taxCodes } = await QueryMetaData(
|
const { invoices, items, taxCodes } = await QueryMetaData(
|
||||||
oauthClient,
|
oauthClient,
|
||||||
qbo_realmId,
|
qbo_realmId,
|
||||||
req,
|
req,
|
||||||
@@ -483,12 +480,14 @@ async function InsertCreditMemo(oauthClient, qbo_realmId, req, payment, parentRe
|
|||||||
status: result.response?.status,
|
status: result.response?.status,
|
||||||
bodyshopid: req.user.bodyshopid,
|
bodyshopid: req.user.bodyshopid,
|
||||||
email: req.user.email
|
email: req.user.email
|
||||||
})
|
});
|
||||||
setNewRefreshToken(req.user.email, result);
|
setNewRefreshToken(req.user.email, result);
|
||||||
return result && result.Bill;
|
return result && result.Bill;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.log("qbo-payables-error", "DEBUG", req.user.email, payment.id, {
|
logger.log("qbo-payables-error", "DEBUG", req.user.email, payment.id, {
|
||||||
error: error && error.message,
|
error: error,
|
||||||
|
validationError: JSON.stringify(error?.response?.data),
|
||||||
|
accountmeta: JSON.stringify({ items, taxCodes }),
|
||||||
method: "InsertCreditMemo"
|
method: "InsertCreditMemo"
|
||||||
});
|
});
|
||||||
throw error;
|
throw error;
|
||||||
|
|||||||
Reference in New Issue
Block a user