From 2c00e5ee79ca4d0eb2d125bf79d3232ab0b0708d Mon Sep 17 00:00:00 2001 From: Patrick Fic <> Date: Wed, 27 Oct 2021 11:36:40 -0700 Subject: [PATCH] IO-256 Resolve QBO Aposstroph Issues --- server/accounting/qbo/qbo-payables.js | 5 ++++- server/accounting/qbo/qbo-receivables.js | 10 ++++++++-- server/accounting/qbo/qbo.js | 5 +++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/server/accounting/qbo/qbo-payables.js b/server/accounting/qbo/qbo-payables.js index 7d03f4172..9f75a5a9a 100644 --- a/server/accounting/qbo/qbo-payables.js +++ b/server/accounting/qbo/qbo-payables.js @@ -1,4 +1,5 @@ const urlBuilder = require("./qbo").urlBuilder; +const StandardizeName = require("./qbo").StandardizeName; const path = require("path"); require("dotenv").config({ path: path.resolve( @@ -114,7 +115,9 @@ async function QueryVendorRecord(oauthClient, qbo_realmId, req, bill) { url: urlBuilder( qbo_realmId, "query", - `select * From vendor where DisplayName = '${bill.vendor.name}'` + `select * From vendor where DisplayName = '${StandardizeName( + bill.vendor.name + )}'` ), method: "POST", headers: { diff --git a/server/accounting/qbo/qbo-receivables.js b/server/accounting/qbo/qbo-receivables.js index 7f2991234..e2b16c569 100644 --- a/server/accounting/qbo/qbo-receivables.js +++ b/server/accounting/qbo/qbo-receivables.js @@ -1,4 +1,6 @@ const urlBuilder = require("./qbo").urlBuilder; +const StandardizeName = require("./qbo").StandardizeName; + const path = require("path"); require("dotenv").config({ path: path.resolve( @@ -166,7 +168,9 @@ async function QueryInsuranceCo(oauthClient, qbo_realmId, req, job) { url: urlBuilder( qbo_realmId, "query", - `select * From Customer where DisplayName = '${job.ins_co_nm}'` + `select * From Customer where DisplayName = '${StandardizeName( + job.ins_co_nm + )}'` ), method: "POST", headers: { @@ -228,7 +232,9 @@ async function QueryOwner(oauthClient, qbo_realmId, req, job) { url: urlBuilder( qbo_realmId, "query", - `select * From Customer where DisplayName = '${ownerName}'` + `select * From Customer where DisplayName = '${StandardizeName( + ownerName + )}'` ), method: "POST", headers: { diff --git a/server/accounting/qbo/qbo.js b/server/accounting/qbo/qbo.js index 2d081c6bf..12f49f033 100644 --- a/server/accounting/qbo/qbo.js +++ b/server/accounting/qbo/qbo.js @@ -14,7 +14,12 @@ function urlBuilder(realmId, object, query = null) { }`; } +function StandardizeName(str) { + return str.replace(new RegExp(/'/g), "\\'"); +} + exports.urlBuilder = urlBuilder; +exports.StandardizeName = StandardizeName; exports.callback = require("./qbo-callback").default; exports.authorize = require("./qbo-authorize").default; exports.refresh = require("./qbo-callback").refresh;