IO-256 QBO Authorization Flow.

This commit is contained in:
Patrick Fic
2021-08-26 15:48:10 -07:00
parent db4e5d48af
commit 724c097d52
16 changed files with 673 additions and 73 deletions

View File

@@ -0,0 +1,43 @@
const path = require("path");
require("dotenv").config({
path: path.resolve(
process.cwd(),
`.env.${process.env.NODE_ENV || "development"}`
),
});
const OAuthClient = require("intuit-oauth");
const oauthClient = new OAuthClient({
clientId: process.env.QBO_CLIENT_ID,
clientSecret: process.env.QBO_SECRET,
environment: process.env.NODE_ENV === "production" ? "production" : "sandbox",
redirectUri: process.env.QBO_REDIRECT_URI,
});
exports.default = async (req, res) => {
try {
oauthClient.setToken(req.cookies.qbo_access_token);
var qbo = new QuickBooks(
process.env.QBO_CLIENT_ID,
process.env.QBO_SECRET,
req.cookies.qbo_access_token,
false, // no token secret for oAuth 2.0
req.cookies.qbo_realmId,
process.env.NODE_ENV !== "production", // use the sandbox?, // use the sandbox?
true, // enable debugging?
null, // set minorversion, or null for the latest version
"2.0", //oAuth version
req.cookies.qbo_refresh_token
);
qbo.findInvoices({ fetchAll: true }, (errors, invoices) =>
console.log(errors, invoices)
);
res.send({});
} catch (error) {
console.log(error);
res.sendStatus(500);
}
};