2023-11-29 20:05:48 +00:00
|
|
|
const loadCRM = require('./loadCRM')
|
|
|
|
const lookupContactByPhone = require('./lookupCRMContactByPhone')
|
|
|
|
const createContact = require('./createContact')
|
|
|
|
const findProperty = require('./findProperty')
|
|
|
|
|
|
|
|
const journalingRequest = require('./journalingRequest')
|
|
|
|
|
2024-07-19 00:41:03 +00:00
|
|
|
async function journaling(companyId, operation, crmPhone, crmAgent, crmCallDuration = 0, crmFirstName ='unnamed') {
|
2024-09-24 12:10:18 +00:00
|
|
|
|
|
|
|
const crmFiles = await loadCRM(companyId)
|
2023-11-29 20:05:48 +00:00
|
|
|
|
|
|
|
for (const crmConfig of crmFiles) {
|
|
|
|
|
|
|
|
const { crmRest: rest, authentication } = crmConfig.crm
|
|
|
|
|
2024-09-24 12:10:18 +00:00
|
|
|
let contact = await lookupContactByPhone(rest, authentication, crmPhone, companyId)
|
|
|
|
|
2023-11-29 20:05:48 +00:00
|
|
|
if (!contact.exist) {
|
2024-07-19 00:41:03 +00:00
|
|
|
contact = await createContact(companyId, rest, authentication, crmPhone, crmFirstName)
|
2024-09-24 12:10:18 +00:00
|
|
|
}
|
2023-11-29 20:05:48 +00:00
|
|
|
|
|
|
|
let { request, calls, response } = findProperty(rest, 'callJournaling')
|
|
|
|
|
|
|
|
let body = findProperty(calls, operation)
|
|
|
|
|
|
|
|
await journalingRequest(request, body, crmCallDuration, contact, crmAgent, crmPhone, authentication, rest)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = journaling
|
|
|
|
|
|
|
|
|