IO-3239 Add integration log statements on QBO.

This commit is contained in:
Patrick Fic
2025-05-19 11:10:02 -07:00
parent b8841e3ded
commit b014744940
6 changed files with 229 additions and 107 deletions

View File

@@ -29,7 +29,6 @@ exports.default = async (req, res) => {
clientSecret: process.env.QBO_SECRET,
environment: process.env.NODE_ENV === "production" ? "production" : "sandbox",
redirectUri: process.env.QBO_REDIRECT_URI,
logging: true
});
try {
//Fetch the API Access Tokens & Set them for the session.
@@ -227,20 +226,20 @@ async function InsertPayment(oauthClient, qbo_realmId, req, payment, parentRef,
PaymentRefNum: payment.transactionid,
...(invoices && invoices.length === 1 && invoices[0]
? {
Line: [
{
Amount: Dinero({
amount: Math.round(payment.amount * 100)
}).toFormat(DineroQbFormat),
LinkedTxn: [
{
TxnId: invoices[0].Id,
TxnType: "Invoice"
}
]
}
]
}
Line: [
{
Amount: Dinero({
amount: Math.round(payment.amount * 100)
}).toFormat(DineroQbFormat),
LinkedTxn: [
{
TxnId: invoices[0].Id,
TxnType: "Invoice"
}
]
}
]
}
: {})
};
logger.log("qbo-payments-objectlog", "DEBUG", req.user.email, payment.id, {
@@ -255,6 +254,15 @@ async function InsertPayment(oauthClient, qbo_realmId, req, payment, parentRef,
},
body: JSON.stringify(paymentQbo)
});
logger.LogIntegrationCall({
platform: "QBO",
methodType: "POST",
methodName: "InsertPayment",
paymentid: payment.id,
statusCode: result.status,
bodyshopid: req.user.bodyshopid,
email: req.user.email
})
setNewRefreshToken(req.user.email, result);
return result && result.Bill;
} catch (error) {
@@ -274,7 +282,15 @@ async function QueryMetaData(oauthClient, qbo_realmId, req, ro_number, isCreditM
"Content-Type": "application/json"
}
});
logger.LogIntegrationCall({
platform: "QBO",
methodType: "POST",
methodName: "QueryInvoice",
statusCode: invoice.status,
bodyshopid: req.user.bodyshopid,
email: req.user.email
})
const paymentMethods = await oauthClient.makeApiCall({
url: urlBuilder(qbo_realmId, "query", `select * From PaymentMethod`),
method: "POST",
@@ -282,6 +298,14 @@ async function QueryMetaData(oauthClient, qbo_realmId, req, ro_number, isCreditM
"Content-Type": "application/json"
}
});
logger.LogIntegrationCall({
platform: "QBO",
methodType: "POST",
methodName: "QueryPaymentMethod",
statusCode: paymentMethods.status,
bodyshopid: req.user.bodyshopid,
email: req.user.email
})
setNewRefreshToken(req.user.email, paymentMethods);
// const classes = await oauthClient.makeApiCall({
@@ -325,6 +349,15 @@ async function QueryMetaData(oauthClient, qbo_realmId, req, ro_number, isCreditM
"Content-Type": "application/json"
}
});
logger.LogIntegrationCall({
platform: "QBO",
methodType: "POST",
methodName: "QueryTaxCode",
statusCode: taxCodes.status,
bodyshopid: req.user.bodyshopid,
email: req.user.email
})
const items = await oauthClient.makeApiCall({
url: urlBuilder(qbo_realmId, "query", `select * From Item`),
method: "POST",
@@ -332,6 +365,14 @@ async function QueryMetaData(oauthClient, qbo_realmId, req, ro_number, isCreditM
"Content-Type": "application/json"
}
});
logger.LogIntegrationCall({
platform: "QBO",
methodType: "POST",
methodName: "QueryItems",
statusCode: items.status,
bodyshopid: req.user.bodyshopid,
email: req.user.email
})
setNewRefreshToken(req.user.email, items);
const itemMapping = {};
@@ -406,14 +447,14 @@ async function InsertCreditMemo(oauthClient, qbo_realmId, req, payment, parentRe
TaxCodeRef: {
value:
taxCodes[
findTaxCode(
{
local: false,
federal: false,
state: false
},
payment.job.bodyshop.md_responsibility_centers.sales_tax_codes
)
findTaxCode(
{
local: false,
federal: false,
state: false
},
payment.job.bodyshop.md_responsibility_centers.sales_tax_codes
)
]
}
}
@@ -432,6 +473,15 @@ async function InsertCreditMemo(oauthClient, qbo_realmId, req, payment, parentRe
},
body: JSON.stringify(paymentQbo)
});
logger.LogIntegrationCall({
platform: "QBO",
methodType: "POST",
methodName: "InsertCreditMemo",
paymentid: payment.id,
statusCode: result.status,
bodyshopid: req.user.bodyshopid,
email: req.user.email
})
setNewRefreshToken(req.user.email, result);
return result && result.Bill;
} catch (error) {