From 0cea41ea04c10a3a8c61a1a9d5d0fb9d312da987 Mon Sep 17 00:00:00 2001 From: DBS Date: Mon, 30 Jun 2025 13:55:07 -0300 Subject: [PATCH] feat: add getClientAccessToken endpoint to retrieve access token for companyId and clientId --- backend/controllers/crmController.js | 21 ++++++++++++++++++--- backend/routes/crmRoute.js | 3 ++- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/backend/controllers/crmController.js b/backend/controllers/crmController.js index ecf3595..d4064be 100644 --- a/backend/controllers/crmController.js +++ b/backend/controllers/crmController.js @@ -17,7 +17,7 @@ const { createCRMContact, const fs = require("fs") const { URL } = require('url') const { oauth2 } = require('../utils') -const { exchangeForTokens } = oauth2 +const { exchangeForTokens, getAccessToken } = oauth2 const Company = require('../models/Company') const CRM = require('../models/CRM') const CustomError = require('../errors') @@ -591,6 +591,22 @@ const webhook_crm = async (req, res) => { } return res.set('Content-Type', 'text/xml').status(StatusCodes.OK).send(responseXml) +} + +const getClientAccessToken = async (req, res) => { + const { companyId, clientId } = req.body; + console.log('========> getClientAccessToken companyId: ', companyId, ' clientId: ', clientId); + + mustContainProperties(req, ['companyId', 'clientId']); + + const accessToken = await getAccessToken(companyId, clientId); + + if (!accessToken) { + console.error(`Access token not found for companyId: ${companyId} and clientId: ${clientId}`); + return res.status(StatusCodes.NOT_FOUND).send({ msg: "Access token not found!" }); + } + + return res.status(StatusCodes.OK).json({ accessToken }); } module.exports = { @@ -608,8 +624,7 @@ module.exports = { sfCreateCase, sfUpdateCase, createTicket, - checkContact, - contactActivity + getClientAccessToken } diff --git a/backend/routes/crmRoute.js b/backend/routes/crmRoute.js index 4f45cdb..80a0cef 100644 --- a/backend/routes/crmRoute.js +++ b/backend/routes/crmRoute.js @@ -1,7 +1,7 @@ const express = require('express') const router = express.Router() const { authorization, } = require('../middleware/authentication') -const { contactCreate, contactActivity, checkContact, sfCreateCase, sfUpdateCase, createTicket, testTemplate, webhook_crm, uploadCrmConfig, callJournaling, oauthCallBack, install, deleteCrm, deleteCompany, getCrms, webhook } = require('../controllers/crmController') +const { contactCreate, contactActivity, checkContact, sfCreateCase, sfUpdateCase, createTicket, testTemplate, webhook_crm, uploadCrmConfig, callJournaling, oauthCallBack, install, deleteCrm, deleteCompany, getCrms, webhook, getClientAccessToken } = require('../controllers/crmController') const { fileUpload } = require("../utils") router.route('/create-contact').post(authorization, contactCreate) @@ -22,6 +22,7 @@ router.route('/test').post(testTemplate) router.route('/webhook').post(webhook) router.route('/webhook-crm').post(webhook_crm) router.route('/:companyId').get(authorization, getCrms) +router.route('/:companyId/access-token').get(authorization, getClientAccessToken) module.exports = router