crm-api-template-generator/backend/utils/journaling.js

35 lines
1.0 KiB
JavaScript
Raw Normal View History

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')
async function journaling(companyId, operation, crmPhone, crmAgent, crmCallDuration = 0, crmFirstName ='unnamed') {
2023-11-29 20:05:48 +00:00
const crmFiles = await loadCRM(companyId)
for (const crmConfig of crmFiles) {
const { crmRest: rest, authentication } = crmConfig.crm
let contact = await lookupContactByPhone(rest, authentication, crmPhone, companyId)
if (!contact.exist) {
contact = await createContact(companyId, rest, authentication, crmPhone, crmFirstName)
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