Built motion from commit f25620e4.|2.6.30
[motion2.git] / server / components / import / cm / csv2.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xf6da=['dateOfBirth','YYYY-MM-DD','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','firstName','\x20not\x20specified','description','SystemRow','appendFileSync','contact:import:','Abort\x20parser','abort','SystemError','step','duplicates','cm_contacts_','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','campaigns_','voice_queues_','(id\x20int,dialTimezone\x20varchar(255),offset\x20int);','dialTimezone,utcOffset','LOAD\x20DATA\x20LOCAL\x20INFILE\x20\x27%s\x27\x20INTO\x20TABLE\x20%s\x20CHARACTER\x20SET\x20UTF8\x20FIELDS\x20TERMINATED\x20BY\x20\x27,\x27\x20ENCLOSED\x20BY\x20\x27\x22\x27\x20LINES\x20TERMINATED\x20BY\x20\x27\x0a\x27\x20IGNORE\x201\x20ROWS\x20(%s)\x20SET\x20id\x20=\x20NULL,\x20ListId\x20=\x20%s,\x20CompanyId\x20=\x20%s,\x20createdAt\x20=\x20\x27%s\x27,\x20updatedAt\x20=\x20\x27%s\x27','DROP\x20TABLE\x20','each','contactId','contactTypeId','orderBy','VoiceQueueId','voice_queues_has_cm_blacklists','campaigns','CampaignId','campaigns_has_cm_blacklists','voice_queues_has_cm_lists','finish','affectedRows','unlink','complete','arguments\x20<filename>\x20<parameters>\x20<agents>','argv','existsSync','file\x20doesn\x27t\x20exists','parse','binding\x20doesn\x27t\x20exists','phone\x20is\x20mandatory','firstName\x20is\x20mandatory','ListId\x20is\x20mandatory','map','No\x20agent\x20available','SIGINT','uncaughtException','path','papaparse','squel','../../../config/environment/shared','../../../config/logger','localhost','socket.io-emitter','YYYY-MM-DD\x20HH:mm:ss','format','test','select','phone','from','join','.id\x20=\x20','where','.dialCheckDuplicateType\x20IN\x20(','CmContact','findAll','AdditionalPhones','length','then','split','push','all','isNil','filter','CmContactHasItem','findOne','update','updated','create','inserted','cm_contacts.phone','cm_contacts.id','cm_contacts.ListId','cm_contacts.updatedAt','cm_contacts.UserId','insert','into','cm_hopper','scheduledat','ContactId','ListId','createdAt','UserId','recallme','fields','cm_contacts','cm_contacts.ListId\x20=\x20','.CmListId','cm_contacts.createdAt\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','\x22onlyIfOpen\x22','\x22always\x22','cm_contacts.createdAt','cm_hopper_black','fromQuery','updatedAt','field','ListId\x20=\x20?','\x20=\x20','toString','cm_contacts.priority','priority','.CmListId\x20=\x20?','cm_hopper.id','cm_contact_has_items.createdAt','cm_hopper_additional_phones','CmHopperId','cm_contacts.id\x20=\x20cm_hopper.ContactId','cm_contact_has_items','cm_contacts.id\x20=\x20cm_contact_has_items.CmContactId','cm_hopper.ListId\x20=\x20?','CompanyId','scheduledAt',')\x20NOT\x20IN\x20?','id\x20IN\x20?','min_id','info','Received\x20SIGINT','error','exit','errors','code','message','spread','catch','campaigns.id','campaigns.dialTimezone','campaigns_has_cm_lists','campaigns.id\x20=\x20campaigns_has_cm_lists.CampaignId','campaigns_has_cm_lists.CmListId=','voice_queues.id','voice_queues.dialTimezone','voice_queues','voice_queues.id\x20=\x20voice_queues_has_cm_lists.VoiceQueueId','voice_queues_has_cm_lists.CmListId=','sequelize','query','timezones','dialTimezone','utcOffset','set','main','stringify','send','start','binding','socket_timestamp','root','server/files/tmp','.csv','includes','keys','ContactItemType','name','_description','header','writeFileSync','createReadStream','data','rows','find','hasOwnProperty','trim','replace','isValid','isNaN','isNumber','agent\x20not\x20exists','email','email\x20wrong\x20format'];(function(_0x51a8d9,_0x303cbb){var _0x1820a5=function(_0x222796){while(--_0x222796){_0x51a8d9['push'](_0x51a8d9['shift']());}};_0x1820a5(++_0x303cbb);}(_0xf6da,0xe9));var _0xaf6d=function(_0x5a9126,_0xc1c87e){_0x5a9126=_0x5a9126-0x0;var _0x1134ed=_0xf6da[_0x5a9126];return _0x1134ed;};'use strict';var fs=require('fs');var path=require(_0xaf6d('0x0'));var _=require('lodash');var Papa=require(_0xaf6d('0x1'));var util=require('util');var BPromise=require('bluebird');var moment=require('moment');var squel=require(_0xaf6d('0x2'));var Redis=require('ioredis');var db=require('../../../mysqldb')['db'];var config=require('../../../config/environment');var shared=require(_0xaf6d('0x3'));var logger=require(_0xaf6d('0x4'))('import');config['redis']=_['defaults'](config['redis'],{'host':_0xaf6d('0x5'),'port':0x18eb});var socket=require(_0xaf6d('0x6'))(new Redis(config['redis']));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var promisesAdditionalPhones=[];var orderBy=0x0;var stopped=![];var NOW=moment()['format'](_0xaf6d('0x7'));var contactItemTypes=[];var phoneDescriptions=[];var hasAdditionalPhones=![];var tmp_voice_queues;var tmp_campaigns;var tzOffset=0x0;var hasTZ;var NOW=moment()[_0xaf6d('0x8')](_0xaf6d('0x7'));function isEmail(_0x712cd9){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/[_0xaf6d('0x9')](_0x712cd9);}function selectNotIn(_0x22bf38,_0x3b4973,_0x3784d3,_0x12a890,_0x4a3fce){return squel[_0xaf6d('0xa')]()['field'](_0xaf6d('0xb'))[_0xaf6d('0xc')](_0x12a890)[_0xaf6d('0xd')](_0x3b4973,null,_0x3b4973+_0xaf6d('0xe')+_0x12a890+'.'+_0x3784d3)[_0xaf6d('0xf')](_0x12a890+'.'+_0x3784d3+'\x20=\x20'+_0x22bf38+'.'+_0x3784d3)[_0xaf6d('0xf')](_0x3b4973+_0xaf6d('0x10')+_0x4a3fce[_0xaf6d('0xd')]()+')');}function handleAdditionalPhones(){return new Promise(function(_0xad9a29,_0x1b001b){promisesAdditionalPhones=[];return db[_0xaf6d('0x11')][_0xaf6d('0x12')]({'raw':!![],'attributes':['id',_0xaf6d('0x13')],'where':{'createdAt':NOW,'AdditionalPhones':{'$ne':null}}})['then'](function(_0xf541d3){if(_0xf541d3!==null){var _0x438969=[];for(var _0x5ea2c7=0x0;_0x5ea2c7<_0xf541d3[_0xaf6d('0x14')];_0x5ea2c7++){var _0x5ca38d=_0xf541d3[_0x5ea2c7];_0x438969['push'](insertAdditionalPhones(_0x5ca38d));}}Promise['all'](_0x438969)[_0xaf6d('0x15')](function(){_0xad9a29({'val':0x1});});});});}function insertAdditionalPhones(_0x39ad89){return new Promise(function(_0x1317c5,_0x1c1e8c){var _0x3c4f55=_0x39ad89['AdditionalPhones'];var _0x24486f=_0x3c4f55[_0xaf6d('0x16')](';');var _0x146c62=[];orderBy=0x0;for(var _0x3fbfe9=0x0;_0x3fbfe9<_0x24486f[_0xaf6d('0x14')];_0x3fbfe9++){_0x146c62[_0xaf6d('0x17')](splitAdditionalPhone(_0x39ad89['id'],_0x24486f[_0x3fbfe9]));}Promise[_0xaf6d('0x18')](_0x146c62)[_0xaf6d('0x15')](function(){_0x1317c5({'val':_0x24486f[_0xaf6d('0x14')]});});});}function splitAdditionalPhone(_0x1bc04c,_0x31332e){return new Promise(function(_0x10c0a4,_0x52b4ae){var _0x2cbcce=_0x31332e[_0xaf6d('0x16')](':');var _0x3614df=_0x2cbcce[0x0];var _0x330240=_0x2cbcce[0x1];if(!_[_0xaf6d('0x19')](_0x330240)){var _0x3b4064=_0x330240['split']('|');var _0x13257e=[];for(var _0x442f95=0x0;_0x442f95<_0x3b4064[_0xaf6d('0x14')];_0x442f95++){if(_0x3b4064[_0x442f95]!==''){var _0x2691a4=_[_0xaf6d('0x1a')](promisesAdditionalPhones,{'contactId':_0x1bc04c,'phone':_0x3b4064[_0x442f95]});if(_0x2691a4['length']==0x0){orderBy++;promisesAdditionalPhones[_0xaf6d('0x17')]({'contactId':_0x1bc04c,'contactTypeId':_0x3614df,'phone':_0x3b4064[_0x442f95],'orderBy':orderBy});}}}_0x10c0a4({'ok':0x1});}else _0x10c0a4({'res':0x0});});}function createAdditionalPhone(_0x2fed00,_0x290d2b,_0x21b6ed,_0x57730e){var _0x20143c='';var _0x5e3fd5='';var _0x151eab=_0x21b6ed[_0xaf6d('0x16')]('§');_0x20143c=_0x151eab[0x0];if(_0x151eab[_0xaf6d('0x14')]==0x2)_0x5e3fd5=_0x151eab[0x1];return new Promise(function(_0x488885,_0x11ece2){return db[_0xaf6d('0x1b')][_0xaf6d('0x1c')]({'where':{'CmContactId':_0x2fed00,'item':_0x20143c}})[_0xaf6d('0x15')](function(_0x1887b6){if(_0x1887b6){return db[_0xaf6d('0x1b')][_0xaf6d('0x1d')]({'ItemTypeId':_0x290d2b,'description':_0x5e3fd5,'OrderBy':_0x57730e},{'where':{'CmContactId':_0x2fed00,'item':_0x20143c}})[_0xaf6d('0x15')](function(_0xa412a5){_0x488885({'res':_0xaf6d('0x1e')});});}else{return db[_0xaf6d('0x1b')][_0xaf6d('0x1f')]({'CmContactId':_0x2fed00,'item':_0x20143c,'description':_0x5e3fd5,'ItemTypeId':_0x290d2b,'OrderBy':_0x57730e,'ItemClass':'PHONE'})[_0xaf6d('0x15')](function(_0x54b120){_0x488885({'res':_0xaf6d('0x20')});});}});});}function insertCmHopper(_0x35c10e,_0x192b99,_0x479998,_0x4350fc,_0x2bda1a){var _0x4f0164=[_0xaf6d('0x21'),'cm_contacts.scheduledat',_0xaf6d('0x22'),_0xaf6d('0x23'),_0x192b99+'.'+_0x4350fc,'cm_contacts.createdAt',_0xaf6d('0x24'),'cm_contacts.priority',_0xaf6d('0x25'),'\x22'+_0x2bda1a+'\x22'];return squel[_0xaf6d('0x26')]()[_0xaf6d('0x27')](_0xaf6d('0x28'))['fromQuery']([_0xaf6d('0xb'),_0xaf6d('0x29'),_0xaf6d('0x2a'),_0xaf6d('0x2b'),_0x4350fc,_0xaf6d('0x2c'),'updatedAt','priority',_0xaf6d('0x2d'),_0xaf6d('0x2e')],squel[_0xaf6d('0xa')]()[_0xaf6d('0x2f')](_0x4f0164)[_0xaf6d('0xc')](_0x192b99)[_0xaf6d('0xd')](_0xaf6d('0x30'),null,_0xaf6d('0x31')+_0x192b99+_0xaf6d('0x32'))[_0xaf6d('0xd')](_0x479998,null,_0x479998+_0xaf6d('0xe')+_0x192b99+'.'+_0x4350fc)[_0xaf6d('0xf')](_0x192b99+'.CmListId\x20=\x20?',_0x35c10e)[_0xaf6d('0xf')](_0xaf6d('0x33'),NOW)[_0xaf6d('0xf')](_0xaf6d('0x34'),selectNotIn(_0x192b99,_0x479998,_0x4350fc,'cm_hopper',['\x22always\x22',_0xaf6d('0x35')]))[_0xaf6d('0xf')](_0xaf6d('0x34'),selectNotIn(_0x192b99,_0x479998,_0x4350fc,_0xaf6d('0x28'),[_0xaf6d('0x36')])))['toString']();}function insertCmHopperBlack(_0x13a777,_0x2b5f4e,_0x3457b1,_0x1266d4){var _0x5d84d7=[_0xaf6d('0x21'),_0xaf6d('0x22'),'cm_contacts.ListId',_0x2b5f4e+'.'+_0x1266d4,_0xaf6d('0x37'),_0xaf6d('0x24')];return squel[_0xaf6d('0x26')]()['into'](_0xaf6d('0x38'))[_0xaf6d('0x39')](['phone','ContactId',_0xaf6d('0x2b'),_0x1266d4,_0xaf6d('0x2c'),_0xaf6d('0x3a')],squel[_0xaf6d('0xa')]()[_0xaf6d('0x2f')](_0x5d84d7)[_0xaf6d('0xc')](_0x2b5f4e)[_0xaf6d('0xd')](_0xaf6d('0x30'),null,_0xaf6d('0x31')+_0x2b5f4e+'.CmListId')[_0xaf6d('0xd')](_0x3457b1,null,_0x3457b1+_0xaf6d('0xe')+_0x2b5f4e+'.'+_0x1266d4)[_0xaf6d('0xf')](_0x2b5f4e+'.CmListId\x20=\x20?',_0x13a777)[_0xaf6d('0xf')]('cm_contacts.createdAt\x20=\x20?',NOW)['where']('cm_contacts.phone\x20NOT\x20IN\x20(?)',squel[_0xaf6d('0xa')]()[_0xaf6d('0x3b')](_0xaf6d('0xb'))['from'](_0xaf6d('0x38'))[_0xaf6d('0xf')](_0xaf6d('0x3c'),_0x13a777)[_0xaf6d('0xf')](_0x1266d4+_0xaf6d('0x3d')+_0x2b5f4e+'.'+_0x1266d4)))[_0xaf6d('0x3e')]();}function insertTzCmHopper(_0x15aecc,_0x4eb69d,_0x23c985,_0x21f53b,_0x2484ef,_0x370c93){var _0x40648b=[_0xaf6d('0x21'),'date_add(cm_contacts.scheduledat,interval\x20'+_0x370c93+'.offset-cm_contacts.utcOffset\x20minute)',_0xaf6d('0x22'),_0xaf6d('0x23'),_0x4eb69d+'.'+_0x21f53b,_0xaf6d('0x37'),_0xaf6d('0x24'),_0xaf6d('0x3f'),_0xaf6d('0x25'),'\x22'+_0x2484ef+'\x22'];var _0xffd7b0=squel[_0xaf6d('0x26')]()[_0xaf6d('0x27')](_0xaf6d('0x28'))[_0xaf6d('0x39')]([_0xaf6d('0xb'),_0xaf6d('0x29'),_0xaf6d('0x2a'),_0xaf6d('0x2b'),_0x21f53b,'createdAt','updatedAt',_0xaf6d('0x40'),'UserId',_0xaf6d('0x2e')],squel['select']()[_0xaf6d('0x2f')](_0x40648b)[_0xaf6d('0xc')](_0x4eb69d)[_0xaf6d('0xd')](_0xaf6d('0x30'),null,_0xaf6d('0x31')+_0x4eb69d+'.CmListId')[_0xaf6d('0xd')](_0x23c985,null,_0x23c985+_0xaf6d('0xe')+_0x4eb69d+'.'+_0x21f53b)[_0xaf6d('0xd')](_0x370c93,null,_0x370c93+_0xaf6d('0xe')+_0x4eb69d+'.'+_0x21f53b)[_0xaf6d('0xf')](_0x4eb69d+_0xaf6d('0x41'),_0x15aecc)[_0xaf6d('0xf')](_0xaf6d('0x33'),NOW)[_0xaf6d('0xf')](_0xaf6d('0x34'),selectNotIn(_0x4eb69d,_0x23c985,_0x21f53b,_0xaf6d('0x28'),[_0xaf6d('0x36'),_0xaf6d('0x35')]))[_0xaf6d('0xf')](_0xaf6d('0x34'),selectNotIn(_0x4eb69d,_0x23c985,_0x21f53b,_0xaf6d('0x28'),[_0xaf6d('0x36')])))[_0xaf6d('0x3e')]();return _0xffd7b0;}function insertTzCmHopperBlack(_0x333789,_0x2167c0,_0x36e485,_0x262497){var _0x435afa=[_0xaf6d('0x21'),_0xaf6d('0x22'),'cm_contacts.ListId',_0x2167c0+'.'+_0x262497,_0xaf6d('0x37'),_0xaf6d('0x24')];return squel[_0xaf6d('0x26')]()[_0xaf6d('0x27')](_0xaf6d('0x38'))[_0xaf6d('0x39')](['phone',_0xaf6d('0x2a'),_0xaf6d('0x2b'),_0x262497,_0xaf6d('0x2c'),'updatedAt'],squel[_0xaf6d('0xa')]()[_0xaf6d('0x2f')](_0x435afa)[_0xaf6d('0xc')](_0x2167c0)[_0xaf6d('0xd')](_0xaf6d('0x30'),null,_0xaf6d('0x31')+_0x2167c0+_0xaf6d('0x32'))[_0xaf6d('0xd')](_0x36e485,null,_0x36e485+_0xaf6d('0xe')+_0x2167c0+'.'+_0x262497)[_0xaf6d('0xf')](_0x2167c0+'.CmListId\x20=\x20?',_0x333789)['where'](_0xaf6d('0x33'),NOW)[_0xaf6d('0xf')](_0xaf6d('0x34'),squel['select']()[_0xaf6d('0x3b')](_0xaf6d('0xb'))[_0xaf6d('0xc')]('cm_hopper_black')['where'](_0xaf6d('0x3c'),_0x333789)['where'](_0x262497+_0xaf6d('0x3d')+_0x2167c0+'.'+_0x262497)))[_0xaf6d('0x3e')]();}function insertCmHopperAdditionalPhones(_0x33569d){var _0x33bd3b=[_0xaf6d('0x42'),'cm_contact_has_items.item','cm_contact_has_items.OrderBy',_0xaf6d('0x43'),'cm_contact_has_items.updatedAt'];return squel[_0xaf6d('0x26')]()[_0xaf6d('0x27')](_0xaf6d('0x44'))['fromQuery']([_0xaf6d('0x45'),_0xaf6d('0xb'),'OrderBy',_0xaf6d('0x2c'),_0xaf6d('0x3a')],squel[_0xaf6d('0xa')]()[_0xaf6d('0x2f')](_0x33bd3b)[_0xaf6d('0xc')](_0xaf6d('0x28'))[_0xaf6d('0xd')](_0xaf6d('0x30'),null,_0xaf6d('0x46'))[_0xaf6d('0xd')](_0xaf6d('0x47'),null,_0xaf6d('0x48'))[_0xaf6d('0xf')](_0xaf6d('0x49'),_0x33569d)[_0xaf6d('0xf')](_0xaf6d('0x33'),NOW))['toString']();}function insertCmContact(_0x433492,_0x4732e0,_0x10ec6f,_0x429019){var _0x14b7b1=_['concat'](_['keys'](_0x429019),[_0xaf6d('0x2b'),_0xaf6d('0x4a'),_0xaf6d('0x2c'),_0xaf6d('0x3a'),_0xaf6d('0x4b')]);return squel['insert']()[_0xaf6d('0x27')](_0xaf6d('0x30'))[_0xaf6d('0x39')](_0x14b7b1,squel[_0xaf6d('0xa')]()[_0xaf6d('0x2f')](_0x14b7b1)[_0xaf6d('0xc')](_0x4732e0)['where']('('+_0x10ec6f['join'](',')+_0xaf6d('0x4c'),squel['select']()['fields'](_0x10ec6f)[_0xaf6d('0xc')](_0xaf6d('0x30'))[_0xaf6d('0xf')]('ListId\x20=\x20?',_0x433492)[_0xaf6d('0xf')]('deletedAt\x20IS\x20NULL'))[_0xaf6d('0xf')](_0xaf6d('0x4d'),squel[_0xaf6d('0xa')]()['field']('MIN(id)',_0xaf6d('0x4e'))['from'](_0x4732e0)['group'](_0x10ec6f[_0xaf6d('0xd')](','))))[_0xaf6d('0x3e')]();}function handleStop(){logger[_0xaf6d('0x4f')](_0xaf6d('0x50'));stopped=!![];}function handleUncaughtException(_0x171d7f){logger[_0xaf6d('0x51')](_0x171d7f['message']);process[_0xaf6d('0x52')](0x1);}function handleError(_0x20aa09,_0x308606){stats[_0xaf6d('0x53')][_0xaf6d('0x17')]({'name':_0x308606[_0xaf6d('0x54')],'message':_0x308606[_0xaf6d('0x55')],'row':_0x20aa09});}function handleQuery(_0x1ffc71){logger['info'](_0x1ffc71);return db['sequelize']['query'](_0x1ffc71)[_0xaf6d('0x56')](function(_0x4cb278){results[_0xaf6d('0x17')](_0x4cb278);})[_0xaf6d('0x57')](function(_0x19c4c7){logger['error'](_0x19c4c7['message']);});}function updateTzCampaigns(_0x46d22e){return new Promise(function(_0xf70286,_0x28c86e){var _0x48a9a8=squel['select']()['fields']([_0xaf6d('0x58'),_0xaf6d('0x59')])['from']('campaigns')[_0xaf6d('0xd')](_0xaf6d('0x5a'),null,_0xaf6d('0x5b'))[_0xaf6d('0xf')](_0xaf6d('0x5c')+_0x46d22e);db['sequelize']['query'](_0x48a9a8['toString']())['spread'](function(_0x398258){var _0xe472ef=[];for(var _0x114dec=0x0;_0x114dec<_0x398258['length'];_0x114dec++){_0xe472ef[_0xaf6d('0x17')](getTimezoneData(_0x398258[_0x114dec],tmp_campaigns));}BPromise['all'](_0xe472ef)[_0xaf6d('0x15')](function(){_0xf70286({'val':0x1});});})[_0xaf6d('0x57')](function(_0x268fba){logger[_0xaf6d('0x51')](_0x268fba['message']);_0xf70286({'val':0x0});});});}function updateTzVoiceQueues(_0x67f311){return new Promise(function(_0x68e5bd,_0x42ed04){var _0x45c741=squel[_0xaf6d('0xa')]()['fields']([_0xaf6d('0x5d'),_0xaf6d('0x5e')])[_0xaf6d('0xc')](_0xaf6d('0x5f'))[_0xaf6d('0xd')]('voice_queues_has_cm_lists',null,_0xaf6d('0x60'))['where'](_0xaf6d('0x61')+_0x67f311);db[_0xaf6d('0x62')][_0xaf6d('0x63')](_0x45c741[_0xaf6d('0x3e')]())[_0xaf6d('0x56')](function(_0x22a5d5){var _0x289837=[];for(var _0x2f44da=0x0;_0x2f44da<_0x22a5d5[_0xaf6d('0x14')];_0x2f44da++){_0x289837[_0xaf6d('0x17')](getTimezoneData(_0x22a5d5[_0x2f44da],tmp_voice_queues));}BPromise[_0xaf6d('0x18')](_0x289837)[_0xaf6d('0x15')](function(){_0x68e5bd({'val':0x1});});})[_0xaf6d('0x57')](function(_0x5c258f){logger['error'](_0x5c258f[_0xaf6d('0x55')]);_0x68e5bd({'val':0x0});});});}function getTimezoneData(_0x33f064,_0x269b0e){return new Promise(function(_0x13ef16,_0x12f1a4){var _0xa23b7b=shared[_0xaf6d('0x64')];var _0x534fe6=_0xa23b7b[_0x33f064[_0xaf6d('0x65')]];if(_['isNil'](_0x534fe6)){_0x13ef16({'ret':0x1});}else{var _0x4f06e4=_0x534fe6[_0xaf6d('0x66')];var _0x3b688d=squel[_0xaf6d('0x26')]()[_0xaf6d('0x27')](_0x269b0e)[_0xaf6d('0x67')]('id',_0x33f064['id'])['set']('offset',_0x4f06e4)[_0xaf6d('0x67')](_0xaf6d('0x65'),_0x33f064[_0xaf6d('0x65')])[_0xaf6d('0x3e')]();return db[_0xaf6d('0x62')][_0xaf6d('0x63')](_0x3b688d)[_0xaf6d('0x56')](function(_0x3d7b76){_0x13ef16({'ret':0x1});})[_0xaf6d('0x57')](function(_0x262d3c){logger[_0xaf6d('0x51')](_0x262d3c[_0xaf6d('0x55')]);_0x12f1a4({'ret':0x1});});}});}function handleTZQuery(_0x185ceb){logger[_0xaf6d('0x4f')](_0x185ceb);return db[_0xaf6d('0x62')][_0xaf6d('0x63')](_0x185ceb)[_0xaf6d('0x56')](function(_0x281a12){})[_0xaf6d('0x57')](function(_0x887004){logger['error'](_0x887004['message']);});}function main(_0x25a8e3,_0x468d0b,_0x15a14b,_0x17167c){logger[_0xaf6d('0x4f')](_0xaf6d('0x68'),_0x25a8e3,JSON[_0xaf6d('0x69')](_0x468d0b));process[_0xaf6d('0x6a')](_0xaf6d('0x6b'));var _0x30e6d0=_0x468d0b[_0xaf6d('0x6c')];var _0x16e189=_['clone'](_0x30e6d0);var _0x3e3c84=_0x468d0b[_0xaf6d('0x6d')];var _0x28ac0d=path[_0xaf6d('0xd')](config[_0xaf6d('0x6e')],_0xaf6d('0x6f'),_0x3e3c84+_0xaf6d('0x70'));hasTZ=_['keys'](_0x30e6d0)[_0xaf6d('0x71')](_0xaf6d('0x65'));var _0x34b2cc=_[_0xaf6d('0x72')](_0x30e6d0)[_0xaf6d('0xd')]();logger[_0xaf6d('0x4f')]('header',_0x34b2cc);db[_0xaf6d('0x73')][_0xaf6d('0x12')]({'raw':!![],'attributes':['id','name']})[_0xaf6d('0x15')](function(_0x3f1912){for(var _0x36f4c3=0x0;_0x36f4c3<_0x3f1912[_0xaf6d('0x14')];_0x36f4c3++){if(_0x3f1912[_0x36f4c3][_0xaf6d('0x74')]in _0x30e6d0){contactItemTypes[_0xaf6d('0x17')](_0x3f1912[_0x36f4c3]);delete _0x16e189[_0x3f1912[_0x36f4c3]['name']];hasAdditionalPhones=!![];}for(var _0x5bb812 in _0x30e6d0){if(_0x3f1912[_0x36f4c3]['name']+_0xaf6d('0x75')===_0x5bb812){phoneDescriptions[_0xaf6d('0x17')]({'itemTypeId':_0x3f1912[_0x36f4c3]['id'],'description':_0x5bb812});delete _0x16e189[_0x5bb812];}}}if(hasAdditionalPhones)_0x16e189[_0xaf6d('0x13')]='';var _0x1ae492=_[_0xaf6d('0x72')](_0x16e189)[_0xaf6d('0xd')]();logger[_0xaf6d('0x4f')](_0xaf6d('0x76'),_0x1ae492);fs[_0xaf6d('0x77')](_0x28ac0d,_0x1ae492+'\x0a');Papa['parse'](fs[_0xaf6d('0x78')](_0x25a8e3),{'header':!![],'skipEmptyLines':!![],'step':function(_0x4e923d,_0x5bab63){try{for(var _0x5284ac=0x0,_0x4578f9=[];_0x5284ac<_0x4e923d[_0xaf6d('0x79')][_0xaf6d('0x14')];_0x5284ac++){stats[_0xaf6d('0x7a')]+=0x1;if(_0x4e923d[_0xaf6d('0x53')][_0x5284ac]){handleError(_0x4e923d['data'][_0x5284ac],_0x4e923d[_0xaf6d('0x53')][_0x5284ac]);}else{var _0x3088db=[];var _0x2f6d17=[];var _0x490c18={};for(var _0x1e77dc in _0x30e6d0){let _0x37bfd6=contactItemTypes[_0xaf6d('0x7b')](_0x47a2b7=>_0x47a2b7[_0xaf6d('0x74')]===_0x1e77dc);let _0x352692=contactItemTypes['find'](_0x1ac606=>_0x1ac606[_0xaf6d('0x74')]+_0xaf6d('0x75')===_0x1e77dc);if(_['isNil'](_0x37bfd6)&&_['isNil'](_0x352692)){if(_0x30e6d0[_0xaf6d('0x7c')](_0x1e77dc)){if(_0x4e923d[_0xaf6d('0x79')][_0x5284ac][_0x30e6d0[_0x1e77dc]]){var _0x3f4959=_[_0xaf6d('0x7d')](_0x4e923d[_0xaf6d('0x79')][_0x5284ac][_0x30e6d0[_0x1e77dc]][_0xaf6d('0x7e')](/"/g,'\x27'));switch(_0x1e77dc){case _0xaf6d('0x29'):var _0x31bb39=moment(_0x3f4959,_0xaf6d('0x7'),!![]);if(_0x31bb39[_0xaf6d('0x7f')]()){_0x4578f9[_0xaf6d('0x17')]('\x22'+_0x3f4959+'\x22');}else{_0x3088db['push']('scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)');}break;case'priority':var _0x3226b9=parseInt(_0x3f4959);_0x3f4959=_[_0xaf6d('0x80')](_0x3226b9)||_0x3226b9<0x0||_0x3226b9>0x4?_0x17167c?0x3:0x2:_0x3226b9;_0x4578f9[_0xaf6d('0x17')]('\x22'+_0x3f4959+'\x22');break;case _0xaf6d('0x2d'):var _0x52fdd9=parseInt(_0x3f4959);if(_[_0xaf6d('0x81')](_0x52fdd9)&&_[_0xaf6d('0x71')](_0x15a14b,_0x52fdd9)){_0x4578f9[_0xaf6d('0x17')]('\x22'+_0x52fdd9+'\x22');}else{_0x3088db['push'](_0xaf6d('0x82'));}break;case _0xaf6d('0x83'):if(isEmail(_0x3f4959)){_0x4578f9[_0xaf6d('0x17')]('\x22'+_0x3f4959+'\x22');}else{_0x3088db[_0xaf6d('0x17')](_0xaf6d('0x84'));}break;case _0xaf6d('0x85'):var _0x4ed9d0=moment(_0x3f4959,_0xaf6d('0x86'),!![]);if(_0x4ed9d0['isValid']()){_0x4578f9[_0xaf6d('0x17')]('\x22'+_0x3f4959+'\x22');}else{_0x3088db['push'](_0xaf6d('0x87'));}break;case'dialTimezone':var _0xdd3c78=shared[_0xaf6d('0x64')];var _0x210049=_0xdd3c78[_0x3f4959];if(!_[_0xaf6d('0x19')](_0x210049)){var _0x4e59a2=_0x210049[_0xaf6d('0x66')];_0x4578f9[_0xaf6d('0x17')]('\x22'+_0x3f4959+'\x22');_0x4578f9[_0xaf6d('0x17')]('\x22'+_0x4e59a2+'\x22');}break;default:_0x4578f9[_0xaf6d('0x17')]('\x22'+_0x3f4959+'\x22');}}else{switch(_0x1e77dc){case _0xaf6d('0x88'):case _0xaf6d('0xb'):_0x3088db[_0xaf6d('0x17')](_0x1e77dc+_0xaf6d('0x89'));break;default:_0x4578f9[_0xaf6d('0x17')]('\x22\x22');}}}}else{var _0x2625f9='';if(!_[_0xaf6d('0x19')](_0x37bfd6)){if(!_0x490c18[_0xaf6d('0x7c')](_0x37bfd6['id'])){if(!_[_0xaf6d('0x19')](_0x4e923d[_0xaf6d('0x79')][_0x5284ac][_0x30e6d0[_0x1e77dc]])){var _0x3f4959=_['trim'](_0x4e923d[_0xaf6d('0x79')][_0x5284ac][_0x30e6d0[_0x1e77dc]]['replace'](/"/g,'\x27'));var _0x597d0e=phoneDescriptions[_0xaf6d('0x7b')](_0x3a38a5=>_0x3a38a5['itemTypeId']===_0x37bfd6['id']);if(!_[_0xaf6d('0x19')](_0x597d0e)){var _0x21c5de=_['trim'](_0x4e923d['data'][_0x5284ac][_0x30e6d0[_0x597d0e[_0xaf6d('0x8a')]]][_0xaf6d('0x7e')](/"/g,'\x27'));if(!_[_0xaf6d('0x19')](_0x21c5de))_0x3f4959=_0x3f4959+'§'+_0x21c5de;}if(_0x2625f9=='')_0x2625f9=_0x3f4959;else _0x2625f9+='|'+_0x3f4959;}_0x2f6d17[_0xaf6d('0x17')](_0x37bfd6['id']+':'+_0x2625f9);_0x490c18[_0x37bfd6['id']]=0x1;}}}}if(hasAdditionalPhones){_0x4578f9[_0xaf6d('0x17')]('\x22'+_0x2f6d17['join'](';')+'\x22');}if(_0x3088db[_0xaf6d('0x14')]){handleError(_0x4e923d[_0xaf6d('0x79')][_0x5284ac],{'code':_0xaf6d('0x8b'),'message':_0x3088db[_0xaf6d('0xd')]()});}else{fs[_0xaf6d('0x8c')](_0x28ac0d,_0x4578f9[_0xaf6d('0xd')]()+'\x0a');}_0x4578f9=[];}if(!(stats[_0xaf6d('0x7a')]%0xc8)){socket['emit'](_0xaf6d('0x8d')+_0x3e3c84,stats);stats['errors']=[];}}if(stopped){logger[_0xaf6d('0x4f')](_0xaf6d('0x8e'));_0x5bab63[_0xaf6d('0x8f')]();}}catch(_0x351128){handleError(_0x4e923d['data'][_0x5284ac],{'code':_0xaf6d('0x90'),'message':_0x351128[_0xaf6d('0x55')]});logger[_0xaf6d('0x51')](_0xaf6d('0x91'),_0x351128['message']);}},'complete':function(){try{var _0x5db945=[];var _0x20b629=[];var _0x7c8cfe=_0xaf6d('0x30');if(_0x468d0b[_0xaf6d('0x92')]&&_0x468d0b['duplicates']['length']){_0x7c8cfe=_0xaf6d('0x93')+_0x3e3c84;_0x5db945[_0xaf6d('0x17')](_0xaf6d('0x94')+_0x7c8cfe+_0xaf6d('0x95'));}tmp_campaigns=_0xaf6d('0x96')+_0x3e3c84;tmp_voice_queues=_0xaf6d('0x97')+_0x3e3c84;_0x20b629[_0xaf6d('0x17')](_0xaf6d('0x94')+tmp_campaigns+_0xaf6d('0x98'));_0x20b629[_0xaf6d('0x17')](_0xaf6d('0x94')+tmp_voice_queues+_0xaf6d('0x98'));BPromise['each'](_0x20b629,handleTZQuery)[_0xaf6d('0x15')](function(_0xdbbb79){updateTzCampaigns(_0x468d0b[_0xaf6d('0x2b')])[_0xaf6d('0x15')](function(_0x4ca0a5){updateTzVoiceQueues(_0x468d0b['ListId'])[_0xaf6d('0x15')](function(_0x1b6e1d){if(hasTZ)_0x1ae492=_0x1ae492['replace'](_0xaf6d('0x65'),_0xaf6d('0x99'));var _0x52c9d9=util[_0xaf6d('0x8')](_0xaf6d('0x9a'),_0x28ac0d,_0x7c8cfe,_0x1ae492,_0x468d0b['ListId'],_0x468d0b['CompanyId']||null,NOW,NOW);if(_[_0xaf6d('0x19')](_0x30e6d0[_0xaf6d('0x29')])){_0x52c9d9+=',\x20scheduledAt\x20=\x20NOW()';}_0x5db945[_0xaf6d('0x17')](_0x52c9d9);if(_0x468d0b['duplicates']&&_0x468d0b[_0xaf6d('0x92')][_0xaf6d('0x14')]){_0x5db945[_0xaf6d('0x17')](insertCmContact(_0x468d0b[_0xaf6d('0x2b')],_0x7c8cfe,_0x468d0b['duplicates'],_0x30e6d0));_0x5db945['push'](_0xaf6d('0x9b')+_0x7c8cfe+';');}BPromise[_0xaf6d('0x9c')](_0x5db945,handleQuery)[_0xaf6d('0x15')](function(_0x29e0ef){BPromise[_0xaf6d('0x18')]([handleAdditionalPhones()])[_0xaf6d('0x15')](function(){_0x5db945=[];for(var _0x160f18=0x0;_0x160f18<promisesAdditionalPhones['length'];_0x160f18++){if(promisesAdditionalPhones[_0x160f18][_0xaf6d('0xb')]!='§'){_0x5db945[_0xaf6d('0x17')](createAdditionalPhone(promisesAdditionalPhones[_0x160f18][_0xaf6d('0x9d')],promisesAdditionalPhones[_0x160f18][_0xaf6d('0x9e')],promisesAdditionalPhones[_0x160f18][_0xaf6d('0xb')],promisesAdditionalPhones[_0x160f18][_0xaf6d('0x9f')]));}}BPromise[_0xaf6d('0x18')](_0x5db945)[_0xaf6d('0x15')](function(){_0x5db945=[];if(hasTZ){_0x5db945['push'](insertTzCmHopper(_0x468d0b['ListId'],'voice_queues_has_cm_lists',_0xaf6d('0x5f'),_0xaf6d('0xa0'),_0x17167c,tmp_voice_queues));_0x5db945[_0xaf6d('0x17')](insertTzCmHopperBlack(_0x468d0b[_0xaf6d('0x2b')],_0xaf6d('0xa1'),_0xaf6d('0x5f'),_0xaf6d('0xa0')));_0x5db945[_0xaf6d('0x17')](insertTzCmHopper(_0x468d0b['ListId'],'campaigns_has_cm_lists',_0xaf6d('0xa2'),_0xaf6d('0xa3'),_0x17167c,tmp_campaigns));_0x5db945[_0xaf6d('0x17')](insertTzCmHopperBlack(_0x468d0b[_0xaf6d('0x2b')],_0xaf6d('0xa4'),'campaigns',_0xaf6d('0xa3')));_0x5db945[_0xaf6d('0x17')](insertCmHopperAdditionalPhones(_0x468d0b[_0xaf6d('0x2b')]));}else{_0x5db945['push'](insertCmHopper(_0x468d0b[_0xaf6d('0x2b')],_0xaf6d('0xa5'),_0xaf6d('0x5f'),_0xaf6d('0xa0'),_0x17167c));_0x5db945[_0xaf6d('0x17')](insertCmHopperBlack(_0x468d0b[_0xaf6d('0x2b')],_0xaf6d('0xa1'),_0xaf6d('0x5f'),_0xaf6d('0xa0')));_0x5db945['push'](insertCmHopper(_0x468d0b[_0xaf6d('0x2b')],_0xaf6d('0x5a'),'campaigns',_0xaf6d('0xa3'),_0x17167c));_0x5db945[_0xaf6d('0x17')](insertCmHopperBlack(_0x468d0b['ListId'],'campaigns_has_cm_blacklists',_0xaf6d('0xa2'),_0xaf6d('0xa3')));_0x5db945[_0xaf6d('0x17')](insertCmHopperAdditionalPhones(_0x468d0b[_0xaf6d('0x2b')]));}_0x5db945[_0xaf6d('0x17')]('DROP\x20TABLE\x20'+tmp_campaigns+';');_0x5db945[_0xaf6d('0x17')](_0xaf6d('0x9b')+tmp_voice_queues+';');BPromise[_0xaf6d('0x9c')](_0x5db945,handleQuery)[_0xaf6d('0x15')](function(_0x30767b){stats[_0xaf6d('0xa6')]=!![];stats[_0xaf6d('0xa7')]=_0x468d0b['duplicates']&&_0x468d0b['duplicates'][_0xaf6d('0x14')]?results[0x2][_0xaf6d('0xa7')]:results[0x0]['affectedRows'];socket['emit'](_0xaf6d('0x8d')+_0x3e3c84,stats);fs[_0xaf6d('0xa8')](_0x25a8e3);fs[_0xaf6d('0xa8')](_0x28ac0d);process[_0xaf6d('0x52')](0x0);})[_0xaf6d('0x57')](function(_0x5bc658){logger[_0xaf6d('0x51')](_0x5bc658['message']);process[_0xaf6d('0x52')](0x1);});});});})['catch'](function(_0x320af1){logger['error'](_0x320af1[_0xaf6d('0x55')]);process['exit'](0x1);});});});});}catch(_0xc1c6f9){logger[_0xaf6d('0x51')](_0xaf6d('0xa9'),_0xc1c6f9[_0xaf6d('0x55')]);process['exit'](0x1);}},'error':function(_0x1d61a9,_0x45f665,_0xb2c23b,_0x90fcb9){throw new Error(_0x90fcb9);}});});}function validate(){if(process['argv']&&process['argv'][_0xaf6d('0x14')]<0x4){throw new Error(_0xaf6d('0xaa'));}var _0x2babe8=path[_0xaf6d('0xd')](config[_0xaf6d('0x6e')],_0xaf6d('0x6f'),process[_0xaf6d('0xab')][0x2]);if(!fs[_0xaf6d('0xac')](_0x2babe8)){throw new Error(_0xaf6d('0xad'));}var _0x310825={};try{_0x310825=JSON[_0xaf6d('0xae')](process[_0xaf6d('0xab')][0x3]);if(!_0x310825[_0xaf6d('0x6c')]){throw new Error(_0xaf6d('0xaf'));}if(!_0x310825[_0xaf6d('0x6c')][_0xaf6d('0xb')]){throw new Error(_0xaf6d('0xb0'));}if(!_0x310825['binding'][_0xaf6d('0x88')]){throw new Error(_0xaf6d('0xb1'));}var _0x4d3c3d=0x0;if(_0x310825[_0xaf6d('0x6c')][_0xaf6d('0x2d')]){_0x4d3c3d=0x1;}if(!_0x310825[_0xaf6d('0x2b')]){throw new Error(_0xaf6d('0xb2'));}}catch(_0xf7f774){throw new Error('body\x20id\x20mandatory');}var _0x3cb576=[];try{_0x3cb576=_[_0xaf6d('0xb3')](JSON[_0xaf6d('0xae')](process[_0xaf6d('0xab')][0x4]),'id');}catch(_0x19355a){logger['info'](_0xaf6d('0xb4'));}main(_0x2babe8,_0x310825,_0x3cb576,_0x4d3c3d);}validate();process['on'](_0xaf6d('0xb5'),handleStop);process['on'](_0xaf6d('0xb6'),handleUncaughtException);