diff --git a/backend/controllers/crmController.js b/backend/controllers/crmController.js index a9e60a2..5a57e2e 100644 --- a/backend/controllers/crmController.js +++ b/backend/controllers/crmController.js @@ -74,7 +74,7 @@ const callJournaling = async (req, res) => { if (operationStatus == "hangup") await journaling(companyId, operation, crmPhone, crmAgent, crmCallDuration, crmFirstName) - else if (operationStatus == "answered") { + else if (operationStatus == "update-answer") { await ticketCRM(companyId, crmPhone, crmAgent, crmFirstName) } diff --git a/backend/utils/createTicket.js b/backend/utils/createTicket.js index 319b01e..ed41382 100644 --- a/backend/utils/createTicket.js +++ b/backend/utils/createTicket.js @@ -7,9 +7,10 @@ const { URL } = require('url') const findProperty = require('./findProperty') const CRM = require('../models/CRM') const requestConfigHeader = require('./requestConfigHeader') -const sendMessageSocket = require('./sendMessageSocket') +const sendEventTicketCreatedToSocket = require('./sendEventTicketCreatedToSocket') -async function createTicket(companyId, rest, authentication, crmPhone, crmFirstName = 'unnamed', crmLastName = 'no surname', crmEmail = '', test = {}, crmContactId) { + +async function createTicket(companyId, rest, authentication, crmPhone, crmFirstName = 'unnamed', crmLastName = 'no surname', crmEmail = '', test = {}, crmContactId, crmAgent) { let { request, body, response } = findProperty(rest, 'createTicketRecord') @@ -73,7 +74,10 @@ async function createTicket(companyId, rest, authentication, crmPhone, crmFirstN const contact = await CRM_Contact.findOne({ companyId, crmBaseURL: new URL(url).hostname, phone: crmPhone }) const crm = await CRM.findOne({ companyId, crmBaseURL: new URL(url).hostname }) - await CRM_Ticket.create({ companyId, contact, ticketId: auxTicketId, crm}) + await CRM_Ticket.create({ companyId, contact, ticketId: auxTicketId, crm}) + + sendEventTicketCreatedToSocket({ companyId, extension: crmAgent, ticketUrl: `https://app.hubspot.com/contacts/44357029/ticket/${auxTicketId}` }) + } return { exist: true, ticketId: auxTicketId, phone: crmPhone } diff --git a/backend/utils/ticketCRM.js b/backend/utils/ticketCRM.js index fd8ae47..93339dc 100644 --- a/backend/utils/ticketCRM.js +++ b/backend/utils/ticketCRM.js @@ -56,13 +56,13 @@ async function ticketCRM(companyId, crmPhone, crmAgent, crmFirstName = 'unnamed' // refactor this for production. For now only working with hubspot where status new is equal 1 if ((auxTicketStatus && auxTicketStatus != '1') || (error && error == 404)) { await CRM_Ticket.deleteMany({ contact: obj_contact }) - crmFirstName = await _createTicket(rest, crmPhone, companyId, authentication, crmFirstName, contact) + crmFirstName = await _createTicket(rest, crmPhone, companyId, authentication, crmFirstName, contact, crmAgent) } } } else { - crmFirstName = await _createTicket(rest, crmPhone, companyId, authentication, crmFirstName, contact) + crmFirstName = await _createTicket(rest, crmPhone, companyId, authentication, crmFirstName, contact, crmAgent) } } @@ -74,7 +74,7 @@ async function ticketCRM(companyId, crmPhone, crmAgent, crmFirstName = 'unnamed' module.exports = ticketCRM -async function _createTicket(rest, crmPhone, companyId, authentication, crmFirstName, contact) { +async function _createTicket(rest, crmPhone, companyId, authentication, crmFirstName, contact, crmAgent) { let obj = findProperty(rest, 'createTicketRecord') if (obj) { @@ -91,7 +91,8 @@ async function _createTicket(rest, crmPhone, companyId, authentication, crmFirst crmLastName = '', crmEmail = '', test = { testing: false }, - crmContactId = contact.contactId + crmContactId = contact.contactId, + crmAgent ) } } diff --git a/frontend/src/components/UploadFile.js b/frontend/src/components/UploadFile.js index 7147179..0016a0c 100644 --- a/frontend/src/components/UploadFile.js +++ b/frontend/src/components/UploadFile.js @@ -34,7 +34,7 @@ const UploadFile = () => { const formData = new FormData() formData.append('crm', file) - formData.append('companyId', process.env.REACT_APP_COMPANY_ID) + formData.append('companyId', process.env.REACT_APP_COMPANY_ID) try { const response = await axios.post(`${process.env.REACT_APP_URL_API}/api/v1/crm/upload`, formData, { @@ -42,7 +42,7 @@ const UploadFile = () => { 'Content-Type': 'multipart/form-data', 'Authorization': 'Bearer 2ivck10D3o9qAZi0pkKudVDl9bdEVXY2s8gdxZ0jYgL1DZWTgDz6wDiIjlWgYmJtVOoqf0b42ZTLBRrfo8WoAaScRsujz3jQUNXdchSg0o43YilZGmVhheGJNAeIQRknHEll4nRJ7avcFgmDGoYbEey7TSC8EHS4Z3gzeufYYSfnKNDBwwzBURIQrTOxYFe3tBHsGOzwnuD2lU5tnEx7tr2XRO4zRNYeNY4lMBOFM0mRuyAe4kuqTrKXmJ8As200' }, - }) + }) if (response.status === 200) {