UNPKG

@dabblelab/autopilot-core

Version:

Core functionality for the Twilio Autopilot CLI and the Twilio Autopilot Plugin for the Twilio CLI.

51 lines (36 loc) 1.4 kB
const fs = require('fs'), FieldValues = require('./lib/field-values'), csvParser = require('./lib/csv-parser'); const uploadFieldValues = async (twilioClient, assistantSid, fieldTypeSid, csvFile) => { if (!fs.existsSync(csvFile)) { throw new Error(`The file ${csvFile} was not be found.`); } return await Promise.resolve() .then( async () => { const parsedDatas = await csvParser(csvFile); for(let parsedData of parsedDatas){ const fieldValues = parsedData.filter((item, index)=> parsedData.indexOf(item) === index).filter(Boolean); let synonymOf = ''; for(let [index, value] of fieldValues.entries()){ const params = { "language": "en-US", "value": value.trim(), "synonymOf": synonymOf }; try{ await FieldValues.create(twilioClient, assistantSid, fieldTypeSid, params); }catch(error){ if(!error.message.includes('FieldValue already in use')) throw error; } if(index === 0) synonymOf = value.trim(); } } return fieldTypeSid; }) .catch(err => { throw err; }) } module.exports = uploadFieldValues;