- Finish cleanup

Signed-off-by: Dave Richer <dave@imexsystems.ca>
This commit is contained in:
Dave Richer
2024-01-23 00:02:18 -05:00
parent a162b275a3
commit 52f8eabd2b
22 changed files with 1033 additions and 1045 deletions

View File

@@ -18,10 +18,10 @@ const {
} = require("./qbo-callback"); } = 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 findTaxCode = require("../qb-receivables-lines").findTaxCode; const findTaxCode = require("../qb-receivables-lines").findTaxCode;
exports.default = async (req, res) => { exports.default = async (req, res) => {
const oauthClient = new OAuthClient({ const oauthClient = new OAuthClient({
clientId: process.env.QBO_CLIENT_ID, clientId: process.env.QBO_CLIENT_ID,
clientSecret: process.env.QBO_SECRET, clientSecret: process.env.QBO_SECRET,
@@ -30,29 +30,31 @@ exports.default = async (req, res) => {
redirectUri: process.env.QBO_REDIRECT_URI, redirectUri: process.env.QBO_REDIRECT_URI,
logging: true, logging: true,
}); });
try { try {
//Fetch the API Access Tokens & Set them for the session. //Fetch the API Access Tokens & Set them for the session.
const response = await apiGqlClient.request(queries.GET_QBO_AUTH, { const response = await apiGqlClient.request(queries.GET_QBO_AUTH, {
email: req.user.email, email: req.user.email,
}); });
const { qbo_realmId } = response.associations[0]; const { qbo_realmId } = response.associations[0];
oauthClient.setToken(response.associations[0].qbo_auth); oauthClient.setToken(response.associations[0].qbo_auth);
if (!qbo_realmId) { if (!qbo_realmId) {
res.status(401).json({ error: "No company associated." }); res.status(401).json({ error: "No company associated." });
return; return;
} }
await refreshOauthToken(oauthClient, req); await refreshOauthToken(oauthClient, req);
const BearerToken = req.headers.authorization;
const { bills: billsToQuery, elgen } = req.body; const { bills: billsToQuery, elgen } = req.body;
//Query Job Info
const client = new GraphQLClient(process.env.GRAPHQL_ENDPOINT, { const BearerToken = req.BearerToken;
headers: { const client = req.userGraphQLClient;
Authorization: BearerToken,
},
});
logger.log("qbo-payable-create", "DEBUG", req.user.email, billsToQuery); logger.log("qbo-payable-create", "DEBUG", req.user.email, billsToQuery);
const result = await client const result = await client
.setHeaders({ Authorization: BearerToken }) .setHeaders({ Authorization: BearerToken })
.request(queries.QUERY_BILLS_FOR_PAYABLES_EXPORT, { .request(queries.QUERY_BILLS_FOR_PAYABLES_EXPORT, {

View File

@@ -51,15 +51,13 @@ exports.default = async (req, res) => {
} }
await refreshOauthToken(oauthClient, req); await refreshOauthToken(oauthClient, req);
const BearerToken = req.headers.authorization;
const { payments: paymentsToQuery, elgen } = req.body; const { payments: paymentsToQuery, elgen } = req.body;
//Query Job Info
const client = new GraphQLClient(process.env.GRAPHQL_ENDPOINT, { const BearerToken = req.BearerToken;
headers: { const client = req.userGraphQLClient;
Authorization: BearerToken,
},
});
logger.log("qbo-payment-create", "DEBUG", req.user.email, paymentsToQuery); logger.log("qbo-payment-create", "DEBUG", req.user.email, paymentsToQuery);
const result = await client const result = await client
.setHeaders({ Authorization: BearerToken }) .setHeaders({ Authorization: BearerToken })
.request(queries.QUERY_PAYMENTS_FOR_EXPORT, { .request(queries.QUERY_PAYMENTS_FOR_EXPORT, {

View File

@@ -18,8 +18,6 @@ const {
const OAuthClient = require("intuit-oauth"); const OAuthClient = require("intuit-oauth");
const CreateInvoiceLines = require("../qb-receivables-lines").default; const CreateInvoiceLines = require("../qb-receivables-lines").default;
const moment = require("moment-timezone"); const moment = require("moment-timezone");
const GraphQLClient = require("graphql-request").GraphQLClient;
const { generateOwnerTier } = require("../qbxml/qbxml-utils"); const { generateOwnerTier } = require("../qbxml/qbxml-utils");
const { createMultiQbPayerLines } = require("../qb-receivables-lines"); const { createMultiQbPayerLines } = require("../qb-receivables-lines");
@@ -46,15 +44,14 @@ exports.default = async (req, res) => {
await refreshOauthToken(oauthClient, req); await refreshOauthToken(oauthClient, req);
const BearerToken = req.headers.authorization;
const { jobIds, elgen } = req.body; const { jobIds, elgen } = req.body;
//Query Job Info //Query Job Info
const client = new GraphQLClient(process.env.GRAPHQL_ENDPOINT, {
headers: { const BearerToken = req.BearerToken;
Authorization: BearerToken, const client = req.userGraphQLClient;
},
});
logger.log("qbo-receivable-create", "DEBUG", req.user.email, jobIds); logger.log("qbo-receivable-create", "DEBUG", req.user.email, jobIds);
const result = await client const result = await client
.setHeaders({ Authorization: BearerToken }) .setHeaders({ Authorization: BearerToken })
.request(queries.QUERY_JOBS_FOR_RECEIVABLES_EXPORT, { .request(queries.QUERY_JOBS_FOR_RECEIVABLES_EXPORT, {

View File

@@ -3,10 +3,11 @@ const path = require("path");
const DineroQbFormat = require("../accounting-constants").DineroQbFormat; const DineroQbFormat = require("../accounting-constants").DineroQbFormat;
const queries = require("../../graphql-client/queries"); const queries = require("../../graphql-client/queries");
const Dinero = require("dinero.js"); const Dinero = require("dinero.js");
var builder = require("xmlbuilder2"); const builder = require("xmlbuilder2");
const QbXmlUtils = require("./qbxml-utils"); const QbXmlUtils = require("./qbxml-utils");
const moment = require("moment-timezone"); const moment = require("moment-timezone");
const logger = require("../../utils/logger"); const logger = require('../../utils/logger');
require("dotenv").config({ require("dotenv").config({
path: path.resolve( path: path.resolve(
process.cwd(), process.cwd(),
@@ -15,14 +16,10 @@ require("dotenv").config({
}); });
exports.default = async (req, res) => { exports.default = async (req, res) => {
const BearerToken = req.headers.authorization;
const { bills: billsToQuery } = req.body; const { bills: billsToQuery } = req.body;
const client = new GraphQLClient(process.env.GRAPHQL_ENDPOINT, { const BearerToken = req.BearerToken;
headers: { const client = req.userGraphQLClient;
Authorization: BearerToken,
},
});
try { try {
logger.log( logger.log(

View File

@@ -1,13 +1,12 @@
const GraphQLClient = require("graphql-request").GraphQLClient;
const path = require("path"); const path = require("path");
const DineroQbFormat = require("../accounting-constants").DineroQbFormat; const DineroQbFormat = require("../accounting-constants").DineroQbFormat;
const queries = require("../../graphql-client/queries"); const queries = require("../../graphql-client/queries");
const Dinero = require("dinero.js"); const Dinero = require("dinero.js");
var builder = require("xmlbuilder2"); const builder = require("xmlbuilder2");
const moment = require("moment-timezone"); const moment = require("moment-timezone");
const QbXmlUtils = require("./qbxml-utils"); const QbXmlUtils = require("./qbxml-utils");
const QbxmlReceivables = require("./qbxml-receivables"); const QbxmlReceivables = require("./qbxml-receivables");
const logger = require("../../utils/logger"); const logger = require('../../utils/logger');
require("dotenv").config({ require("dotenv").config({
path: path.resolve( path: path.resolve(
@@ -19,14 +18,10 @@ require("dotenv").config({
const { generateJobTier, generateOwnerTier, generateSourceTier } = QbXmlUtils; const { generateJobTier, generateOwnerTier, generateSourceTier } = QbXmlUtils;
exports.default = async (req, res) => { exports.default = async (req, res) => {
const BearerToken = req.headers.authorization;
const { payments: paymentsToQuery } = req.body; const { payments: paymentsToQuery } = req.body;
const client = new GraphQLClient(process.env.GRAPHQL_ENDPOINT, { const BearerToken = req.BearerToken;
headers: { const client = req.userGraphQLClient;
Authorization: BearerToken,
},
});
try { try {
logger.log( logger.log(

View File

@@ -1,13 +1,12 @@
const GraphQLClient = require("graphql-request").GraphQLClient;
const path = require("path"); const path = require("path");
const DineroQbFormat = require("../accounting-constants").DineroQbFormat; const DineroQbFormat = require("../accounting-constants").DineroQbFormat;
const queries = require("../../graphql-client/queries"); const queries = require("../../graphql-client/queries");
const Dinero = require("dinero.js"); const Dinero = require("dinero.js");
const moment = require("moment-timezone"); const moment = require("moment-timezone");
var builder = require("xmlbuilder2"); const builder = require("xmlbuilder2");
const QbXmlUtils = require("./qbxml-utils"); const QbXmlUtils = require("./qbxml-utils");
const logger = require("../../utils/logger");
const CreateInvoiceLines = require("../qb-receivables-lines").default; const CreateInvoiceLines = require("../qb-receivables-lines").default;
const logger = require('../../utils/logger');
require("dotenv").config({ require("dotenv").config({
path: path.resolve( path: path.resolve(
@@ -20,14 +19,10 @@ Dinero.globalRoundingMode = "HALF_EVEN";
const { generateJobTier, generateOwnerTier, generateSourceTier } = QbXmlUtils; const { generateJobTier, generateOwnerTier, generateSourceTier } = QbXmlUtils;
exports.default = async (req, res) => { exports.default = async (req, res) => {
const BearerToken = req.headers.authorization;
const { jobIds } = req.body; const { jobIds } = req.body;
const client = new GraphQLClient(process.env.GRAPHQL_ENDPOINT, { const BearerToken = req.BearerToken;
headers: { const client = req.userGraphQLClient;
Authorization: BearerToken,
},
});
try { try {
logger.log( logger.log(

View File

@@ -5,7 +5,6 @@ require("dotenv").config({
`.env.${process.env.NODE_ENV || "development"}` `.env.${process.env.NODE_ENV || "development"}`
), ),
}); });
const GraphQLClient = require("graphql-request").GraphQLClient;
const soap = require("soap"); const soap = require("soap");
const queries = require("../graphql-client/queries"); const queries = require("../graphql-client/queries");
@@ -34,16 +33,11 @@ const { CDK_CREDENTIALS, CheckCdkResponseForError } = require("./cdk-wsdl");
exports.default = async function ReloadCdkMakes(req, res) { exports.default = async function ReloadCdkMakes(req, res) {
const { bodyshopid, cdk_dealerid } = req.body; const { bodyshopid, cdk_dealerid } = req.body;
try { try {
const BearerToken = req.headers.authorization;
//Query all CDK Models //Query all CDK Models
const newList = await GetCdkMakes(req, cdk_dealerid); const newList = await GetCdkMakes(req, cdk_dealerid);
//Clear out the existing records const BearerToken = req.BearerToken;
const client = new GraphQLClient(process.env.GRAPHQL_ENDPOINT, { const client = req.userGraphQLClient;
headers: {
Authorization: BearerToken,
},
});
const deleteResult = await client const deleteResult = await client
.setHeaders({ Authorization: BearerToken }) .setHeaders({ Authorization: BearerToken })

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,7 @@
const _ = require("lodash"); const _ = require("lodash");
const jobLifecycle = (req, res) => { const jobLifecycle = (req, res) => {
const {jobids} = req.body; const {jobids} = req.body;
return _.isArray(jobids) ? return _.isArray(jobids) ?
handleMultipleJobs(jobids, req, res) : handleMultipleJobs(jobids, req, res) :
handleSingleJob(jobids, req, res); handleSingleJob(jobids, req, res);
@@ -11,6 +12,9 @@ const handleMultipleJobs = (jobIDs, req, res) => {
} }
const handleSingleJob = (req, res) => { const handleSingleJob = (req, res) => {
const client = req.userGraphQLClient;
return res.status(200).send(req.body); return res.status(200).send(req.body);
} }

View File

@@ -1,20 +1,18 @@
const Dinero = require("dinero.js"); const Dinero = require("dinero.js");
const queries = require("../graphql-client/queries"); const queries = require("../graphql-client/queries");
const GraphQLClient = require("graphql-request").GraphQLClient; const logger = require('../utils/logger');
const logger = require("../utils/logger");
// Dinero.defaultCurrency = "USD"; // Dinero.defaultCurrency = "USD";
// Dinero.globalLocale = "en-CA"; // Dinero.globalLocale = "en-CA";
Dinero.globalRoundingMode = "HALF_EVEN"; Dinero.globalRoundingMode = "HALF_EVEN";
exports.totalsSsu = async function (req, res) { exports.totalsSsu = async function (req, res) {
const BearerToken = req.headers.authorization;
const { id } = req.body; const { id } = req.body;
const BearerToken = req.BearerToken;
const client = req.userGraphQLClient;
logger.log("job-totals-ssu", "DEBUG", req.user.email, id, null); logger.log("job-totals-ssu", "DEBUG", req.user.email, id, null);
const client = new GraphQLClient(process.env.GRAPHQL_ENDPOINT, {
headers: {
Authorization: BearerToken,
},
});
try { try {
const job = await client const job = await client
@@ -75,21 +73,19 @@ async function TotalsServerSide(req, res) {
} }
async function Totals(req, res) { async function Totals(req, res) {
const { job } = req.body; const { job, id } = req.body;
const logger = req.logger;
const client = req.userGraphQLClient;
logger.log("job-totals", "DEBUG", req.user.email, job.id, { logger.log("job-totals", "DEBUG", req.user.email, job.id, {
jobid: job.id, jobid: job.id,
}); });
const BearerToken = req.headers.authorization;
const { id } = req.body;
logger.log("job-totals-ssu", "DEBUG", req.user.email, id, null); logger.log("job-totals-ssu", "DEBUG", req.user.email, id, null);
const client = new GraphQLClient(process.env.GRAPHQL_ENDPOINT, {
headers: {
Authorization: BearerToken,
},
});
await AutoAddAtsIfRequired({ job, client }); await AutoAddAtsIfRequired({ job, client });
try { try {
let ret = { let ret = {
parts: CalculatePartsTotals(job.joblines), parts: CalculatePartsTotals(job.joblines),

View File

@@ -0,0 +1,24 @@
const {GraphQLClient} = require("graphql-request");
/**
* Middleware to add a GraphQL Client to the request object
* Adds the following to the request object:
* req.userGraphQLClient - GraphQL Client with user Bearer Token
* req.BearerToken - Bearer Token
* @param req
* @param res
* @param next
*/
const withUserGraphQLClientMiddleware = (req, res, next) => {
const BearerToken = req.headers.authorization;
req.userGraphQLClient = new GraphQLClient(process.env.GRAPHQL_ENDPOINT, {
headers: {
Authorization: BearerToken,
},
});
req.BearerToken = BearerToken;
next();
};
module.exports = withUserGraphQLClientMiddleware;

View File

@@ -1,9 +1,8 @@
const path = require("path"); const path = require("path");
const _ = require("lodash"); const _ = require("lodash");
const logger = require("../utils/logger");
const xml2js = require("xml2js"); const xml2js = require("xml2js");
const GraphQLClient = require("graphql-request").GraphQLClient;
const queries = require("../graphql-client/queries"); const queries = require("../graphql-client/queries");
const logger = require('../utils/logger');
require("dotenv").config({ require("dotenv").config({
path: path.resolve( path: path.resolve(
@@ -15,13 +14,10 @@ require("dotenv").config({
exports.mixdataUpload = async (req, res) => { exports.mixdataUpload = async (req, res) => {
const { bodyshopid } = req.body; const { bodyshopid } = req.body;
const BearerToken = req.headers.authorization; const client = req.userGraphQLClient;
logger.log("job-mixdata-upload", "DEBUG", req.user.email, null, null); logger.log("job-mixdata-upload", "DEBUG", req.user.email, null, null);
const client = new GraphQLClient(process.env.GRAPHQL_ENDPOINT, {
headers: {
Authorization: BearerToken,
},
});
try { try {
for (const element of req.files) { for (const element of req.files) {

View File

@@ -5,7 +5,6 @@ require("dotenv").config({
), ),
}); });
const GraphQLClient = require("graphql-request").GraphQLClient;
//const client = require("../graphql-client/graphql-client").client; //const client = require("../graphql-client/graphql-client").client;
const logger = require("../utils/logger"); const logger = require("../utils/logger");
const queries = require("../graphql-client/queries"); const queries = require("../graphql-client/queries");
@@ -182,12 +181,8 @@ async function OpenSearchSearchHandler(req, res) {
search, search,
}); });
const BearerToken = req.headers.authorization; const BearerToken = req.BearerToken;
const client = new GraphQLClient(process.env.GRAPHQL_ENDPOINT, { const client = req.userGraphQLClient;
headers: {
Authorization: BearerToken,
},
});
const assocs = await client const assocs = await client
.setHeaders({Authorization: BearerToken}) .setHeaders({Authorization: BearerToken})

View File

@@ -1,21 +1,19 @@
const Dinero = require("dinero.js"); const Dinero = require("dinero.js");
const queries = require("../graphql-client/queries"); const queries = require("../graphql-client/queries");
const logger = require('../utils/logger');
const { job } = require("../scheduling/scheduling-job"); const { job } = require("../scheduling/scheduling-job");
const GraphQLClient = require("graphql-request").GraphQLClient;
const logger = require("../utils/logger");
const _ = require("lodash"); const _ = require("lodash");
// Dinero.defaultCurrency = "USD"; // Dinero.defaultCurrency = "USD";
// Dinero.globalLocale = "en-CA"; // Dinero.globalLocale = "en-CA";
exports.partsScan = async function (req, res) { exports.partsScan = async function (req, res) {
const BearerToken = req.headers.authorization;
const { jobid } = req.body; const { jobid } = req.body;
const BearerToken = req.BearerToken;
const client = req.userGraphQLClient;
logger.log("job-parts-scan", "DEBUG", req.user?.email, jobid, null); logger.log("job-parts-scan", "DEBUG", req.user?.email, jobid, null);
const client = new GraphQLClient(process.env.GRAPHQL_ENDPOINT, {
headers: {
Authorization: BearerToken,
},
});
try { try {
//Query all jobline data using the user's authorization. //Query all jobline data using the user's authorization.

View File

@@ -2,11 +2,12 @@ const express = require('express');
const router = express.Router(); const router = express.Router();
const validateFirebaseIdTokenMiddleware = require("../middleware/validateFirebaseIdTokenMiddleware"); const validateFirebaseIdTokenMiddleware = require("../middleware/validateFirebaseIdTokenMiddleware");
const {payments, payables, receivables} = require("../accounting/qbxml/qbxml"); const {payments, payables, receivables} = require("../accounting/qbxml/qbxml");
const withUserGraphQLClientMiddleware = require("../middleware/withUserGraphQLClientMiddleware");
router.use(validateFirebaseIdTokenMiddleware); router.use(validateFirebaseIdTokenMiddleware);
router.post('/qbxml/receivables', receivables); router.post('/qbxml/receivables', withUserGraphQLClientMiddleware, receivables);
router.post('/qbxml/payables', payables); router.post('/qbxml/payables', withUserGraphQLClientMiddleware, payables);
router.post('/qbxml/payments', payments); router.post('/qbxml/payments', withUserGraphQLClientMiddleware, payments);
module.exports = router; module.exports = router;

View File

@@ -2,9 +2,10 @@ const express = require('express');
const router = express.Router(); const router = express.Router();
const cdkGetMake = require('../cdk/cdk-get-makes'); const cdkGetMake = require('../cdk/cdk-get-makes');
const validateFirebaseIdTokenMiddleware = require("../middleware/validateFirebaseIdTokenMiddleware"); const validateFirebaseIdTokenMiddleware = require("../middleware/validateFirebaseIdTokenMiddleware");
const withUserGraphQLClientMiddleware = require("../middleware/withUserGraphQLClientMiddleware");
router.use(validateFirebaseIdTokenMiddleware); router.use(validateFirebaseIdTokenMiddleware);
router.post('/getvehicles', cdkGetMake.default); router.post('/getvehicles', withUserGraphQLClientMiddleware, cdkGetMake.default);
module.exports = router; module.exports = router;

View File

@@ -5,15 +5,16 @@ const {partsScan} = require('../parts-scan/parts-scan');
const eventAuthorizationMiddleware = require('../middleware/eventAuthorizationMIddleware'); const eventAuthorizationMiddleware = require('../middleware/eventAuthorizationMIddleware');
const validateFirebaseIdTokenMiddleware = require("../middleware/validateFirebaseIdTokenMiddleware"); const validateFirebaseIdTokenMiddleware = require("../middleware/validateFirebaseIdTokenMiddleware");
const {totals, statustransition, totalsSsu, costing, lifecycle, costingmulti} = require("../job/job"); const {totals, statustransition, totalsSsu, costing, lifecycle, costingmulti} = require("../job/job");
const withUserGraphQLClientMiddleware = require("../middleware/withUserGraphQLClientMiddleware");
router.use(validateFirebaseIdTokenMiddleware); router.use(validateFirebaseIdTokenMiddleware);
router.post('/totals', totals); router.post('/totals', withUserGraphQLClientMiddleware, totals);
router.post('/statustransition', eventAuthorizationMiddleware, statustransition); router.post('/statustransition', eventAuthorizationMiddleware, statustransition);
router.post('/totalsssu', totalsSsu); router.post('/totalsssu', withUserGraphQLClientMiddleware,totalsSsu);
router.post('/costing', costing); router.post('/costing', withUserGraphQLClientMiddleware,costing);
router.get('/lifecycle', lifecycle); router.get('/lifecycle', withUserGraphQLClientMiddleware, lifecycle);
router.post('/costingmulti', costingmulti); router.post('/costingmulti', withUserGraphQLClientMiddleware, costingmulti);
router.post('/partsscan', partsScan); router.post('/partsscan', withUserGraphQLClientMiddleware, partsScan);
module.exports = router; module.exports = router;

View File

@@ -9,6 +9,7 @@ const taskHandler = require("../tasks/tasks");
const os = require("../opensearch/os-handler"); const os = require("../opensearch/os-handler");
const eventAuthorizationMiddleware = require("../middleware/eventAuthorizationMIddleware"); const eventAuthorizationMiddleware = require("../middleware/eventAuthorizationMIddleware");
const validateFirebaseIdTokenMiddleware = require("../middleware/validateFirebaseIdTokenMiddleware"); const validateFirebaseIdTokenMiddleware = require("../middleware/validateFirebaseIdTokenMiddleware");
const withUserGraphQLClientMiddleware = require("../middleware/withUserGraphQLClientMiddleware");
//Test route to ensure Express is responding. //Test route to ensure Express is responding.
router.get("/test", async function (req, res) { router.get("/test", async function (req, res) {
@@ -18,7 +19,7 @@ router.get("/test", async function (req, res) {
// console.log(app.get('trust proxy')); // console.log(app.get('trust proxy'));
// console.log("remoteAddress", req.socket.remoteAddress); // console.log("remoteAddress", req.socket.remoteAddress);
// console.log("X-Forwarded-For", req.header('x-forwarded-for')); // console.log("X-Forwarded-For", req.header('x-forwarded-for'));
logger.log("test-api-status", "DEBUG", "api", { commit }); logger.log("test-api-status", "DEBUG", "api", {commit});
// sendEmail.sendServerEmail({ // sendEmail.sendServerEmail({
// subject: `API Check - ${process.env.NODE_ENV}`, // subject: `API Check - ${process.env.NODE_ENV}`,
// text: `Server API check has come in. Remote IP: ${req.socket.remoteAddress}, X-Forwarded-For: ${req.header('x-forwarded-for')}`, // text: `Server API check has come in. Remote IP: ${req.socket.remoteAddress}, X-Forwarded-For: ${req.header('x-forwarded-for')}`,
@@ -31,7 +32,7 @@ router.get("/test", async function (req, res) {
}); });
// Search // Search
router.post("/search", validateFirebaseIdTokenMiddleware, os.search); router.post("/search", validateFirebaseIdTokenMiddleware, withUserGraphQLClientMiddleware, os.search);
router.post("/opensearch", eventAuthorizationMiddleware, os.handler); router.post("/opensearch", eventAuthorizationMiddleware, os.handler);

View File

@@ -4,7 +4,8 @@ const multer = require('multer');
const upload = multer(); const upload = multer();
const {mixdataUpload} = require('../mixdata/mixdata'); const {mixdataUpload} = require('../mixdata/mixdata');
const validateFirebaseIdTokenMiddleware = require("../middleware/validateFirebaseIdTokenMiddleware"); const validateFirebaseIdTokenMiddleware = require("../middleware/validateFirebaseIdTokenMiddleware");
const withUserGraphQLClientMiddleware = require("../middleware/withUserGraphQLClientMiddleware");
router.post('/upload', validateFirebaseIdTokenMiddleware, upload.any(), mixdataUpload); router.post('/upload', validateFirebaseIdTokenMiddleware, withUserGraphQLClientMiddleware, upload.any(), mixdataUpload);
module.exports = router; module.exports = router;

View File

@@ -1,13 +1,14 @@
const express = require('express'); const express = require('express');
const router = express.Router(); const router = express.Router();
const {authorize, callback, receivables, payables, payments} = require('../accounting/qbo/qbo'); const {authorize, callback, receivables, payables, payments} = require('../accounting/qbo/qbo');
const validateFirebaseIdTokenMiddleware = require("../middleware/validateFirebaseIdTokenMiddleware"); // Assuming you have a qbo module for handling QuickBooks Online related functionalities const validateFirebaseIdTokenMiddleware = require("../middleware/validateFirebaseIdTokenMiddleware");
const withUserGraphQLClientMiddleware = require("../middleware/withUserGraphQLClientMiddleware"); // Assuming you have a qbo module for handling QuickBooks Online related functionalities
// Define the routes for QuickBooks Online // Define the routes for QuickBooks Online
router.post('/authorize', validateFirebaseIdTokenMiddleware, authorize); router.post('/authorize', validateFirebaseIdTokenMiddleware, authorize);
router.get('/callback', callback); router.get('/callback', callback);
router.post('/receivables', validateFirebaseIdTokenMiddleware, receivables); router.post('/receivables', validateFirebaseIdTokenMiddleware, withUserGraphQLClientMiddleware, receivables);
router.post('/payables', validateFirebaseIdTokenMiddleware, payables); router.post('/payables', validateFirebaseIdTokenMiddleware, withUserGraphQLClientMiddleware, payables);
router.post('/payments', validateFirebaseIdTokenMiddleware, payments); router.post('/payments', validateFirebaseIdTokenMiddleware, withUserGraphQLClientMiddleware, payments);
module.exports = router; module.exports = router;

View File

@@ -2,7 +2,8 @@ const express = require('express');
const router = express.Router(); const router = express.Router();
const {job} = require('../scheduling/scheduling-job'); const {job} = require('../scheduling/scheduling-job');
const validateFirebaseIdTokenMiddleware = require("../middleware/validateFirebaseIdTokenMiddleware"); const validateFirebaseIdTokenMiddleware = require("../middleware/validateFirebaseIdTokenMiddleware");
const withUserGraphQLClientMiddleware = require("../middleware/withUserGraphQLClientMiddleware");
router.post('/job', validateFirebaseIdTokenMiddleware, job); router.post('/job', validateFirebaseIdTokenMiddleware, withUserGraphQLClientMiddleware, job);
module.exports = router; module.exports = router;

View File

@@ -1,4 +1,3 @@
const GraphQLClient = require("graphql-request").GraphQLClient;
const path = require("path"); const path = require("path");
const queries = require("../graphql-client/queries"); const queries = require("../graphql-client/queries");
const Dinero = require("dinero.js"); const Dinero = require("dinero.js");
@@ -14,17 +13,14 @@ require("dotenv").config({
}); });
exports.job = async (req, res) => { exports.job = async (req, res) => {
const BearerToken = req.headers.authorization;
const { jobId } = req.body; const { jobId } = req.body;
const BearerToken = req.BearerToken;
const client = req.userGraphQLClient;
try { try {
logger.log("smart-scheduling-start", "DEBUG", req.user.email, jobId, null); logger.log("smart-scheduling-start", "DEBUG", req.user.email, jobId, null);
const client = new GraphQLClient(process.env.GRAPHQL_ENDPOINT, {
headers: {
Authorization: BearerToken,
},
});
const result = await client const result = await client
.setHeaders({ Authorization: BearerToken }) .setHeaders({ Authorization: BearerToken })
.request(queries.QUERY_UPCOMING_APPOINTMENTS, { .request(queries.QUERY_UPCOMING_APPOINTMENTS, {