dd631609b773b27fd7ea46cf849cb29d01953ee7
[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 _0x126b=['cm_contacts.id','cm_contacts.updatedAt','cm_contacts.priority','cm_contacts.UserId','insert','into','fromQuery','scheduledat','ContactId','ListId','createdAt','updatedAt','priority','UserId','cm_contacts','cm_contacts.ListId\x20=\x20','.CmListId','.CmListId\x20=\x20?','cm_contacts.createdAt\x20=\x20?','cm_hopper','\x22always\x22','\x22onlyIfOpen\x22','cm_contacts.phone\x20NOT\x20IN\x20(?)','cm_contacts.ListId','cm_contacts.createdAt','cm_hopper_black','fields','toString','ListId\x20=\x20?','cm_hopper.id','cm_contact_has_items.item','cm_contact_has_items.OrderBy','cm_contact_has_items.createdAt','CmHopperId','OrderBy','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?','concat','keys','CompanyId','scheduledAt',')\x20NOT\x20IN\x20?','deletedAt\x20IS\x20NULL','id\x20IN\x20?','MIN(id)','min_id','group','info','Received\x20SIGINT','error','exit','code','message','sequelize','query','catch','campaigns.id','campaigns.dialTimezone','campaigns','campaigns.id\x20=\x20campaigns_has_cm_lists.CampaignId','spread','voice_queues','voice_queues_has_cm_lists','voice_queues.id\x20=\x20voice_queues_has_cm_lists.VoiceQueueId','voice_queues_has_cm_lists.CmListId=','timezones','isNil','set','offset','dialTimezone','stringify','binding','clone','socket_timestamp','root','server/files/tmp','includes','header','ContactItemType','findAll','name','_description','writeFileSync','parse','createReadStream','errors','find','hasOwnProperty','data','replace','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNaN','agent\x20not\x20exists','email','email\x20wrong\x20format','YYYY-MM-DD','isValid','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','utcOffset','firstName','\x20not\x20specified','trim','description','appendFileSync','rows','emit','contact:import:','Abort\x20parser','SystemError','step','duplicates','cm_contacts_','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','campaigns_','(id\x20int,dialTimezone\x20varchar(255),offset\x20int);','each','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',',\x20scheduledAt\x20=\x20NOW()','DROP\x20TABLE\x20','contactId','orderBy','VoiceQueueId','voice_queues_has_cm_blacklists','CampaignId','campaigns_has_cm_blacklists','campaigns_has_cm_lists','finish','affectedRows','unlink','complete','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','existsSync','file\x20doesn\x27t\x20exists','body\x20id\x20mandatory','No\x20agent\x20available','uncaughtException','path','lodash','papaparse','bluebird','moment','ioredis','../../../mysqldb','../../../config/environment','../../../config/environment/shared','../../../config/logger','redis','defaults','localhost','format','YYYY-MM-DD\x20HH:mm:ss','test','select','field','phone','from','.id\x20=\x20','where','\x20=\x20','.dialCheckDuplicateType\x20IN\x20(','join','CmContact','AdditionalPhones','then','length','push','split','all','filter','findOne','CmContactHasItem','update','create','PHONE','inserted','cm_contacts.phone','cm_contacts.scheduledat'];(function(_0x588df9,_0x569681){var _0x3f3b0b=function(_0x32f7a5){while(--_0x32f7a5){_0x588df9['push'](_0x588df9['shift']());}};_0x3f3b0b(++_0x569681);}(_0x126b,0x143));var _0xb126=function(_0xfd358f,_0x24e81c){_0xfd358f=_0xfd358f-0x0;var _0x5a2923=_0x126b[_0xfd358f];return _0x5a2923;};'use strict';var fs=require('fs');var path=require(_0xb126('0x0'));var _=require(_0xb126('0x1'));var Papa=require(_0xb126('0x2'));var util=require('util');var BPromise=require(_0xb126('0x3'));var moment=require(_0xb126('0x4'));var squel=require('squel');var Redis=require(_0xb126('0x5'));var db=require(_0xb126('0x6'))['db'];var config=require(_0xb126('0x7'));var shared=require(_0xb126('0x8'));var logger=require(_0xb126('0x9'))('import');config[_0xb126('0xa')]=_[_0xb126('0xb')](config['redis'],{'host':_0xb126('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xb126('0xa')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var promisesAdditionalPhones=[];var orderBy=0x0;var stopped=![];var NOW=moment()[_0xb126('0xd')](_0xb126('0xe'));var contactItemTypes=[];var phoneDescriptions=[];var hasAdditionalPhones=![];var tmp_voice_queues;var tmp_campaigns;var tzOffset=0x0;var hasTZ;var NOW=moment()[_0xb126('0xd')](_0xb126('0xe'));function isEmail(_0x2c7019){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))*$/[_0xb126('0xf')](_0x2c7019);}function selectNotIn(_0x1fee7d,_0x39cd7a,_0x481062,_0x1889ad,_0x6b0610){return squel[_0xb126('0x10')]()[_0xb126('0x11')](_0xb126('0x12'))[_0xb126('0x13')](_0x1889ad)['join'](_0x39cd7a,null,_0x39cd7a+_0xb126('0x14')+_0x1889ad+'.'+_0x481062)[_0xb126('0x15')](_0x1889ad+'.'+_0x481062+_0xb126('0x16')+_0x1fee7d+'.'+_0x481062)[_0xb126('0x15')](_0x39cd7a+_0xb126('0x17')+_0x6b0610[_0xb126('0x18')]()+')');}function handleAdditionalPhones(){return new Promise(function(_0x38351d,_0x32b5b9){promisesAdditionalPhones=[];return db[_0xb126('0x19')]['findAll']({'raw':!![],'attributes':['id',_0xb126('0x1a')],'where':{'createdAt':NOW,'AdditionalPhones':{'$ne':null}}})[_0xb126('0x1b')](function(_0x1c6ee0){if(_0x1c6ee0!==null){var _0x32a426=[];for(var _0x5d613b=0x0;_0x5d613b<_0x1c6ee0[_0xb126('0x1c')];_0x5d613b++){var _0x1e37d5=_0x1c6ee0[_0x5d613b];_0x32a426[_0xb126('0x1d')](insertAdditionalPhones(_0x1e37d5));}}Promise['all'](_0x32a426)[_0xb126('0x1b')](function(){_0x38351d({'val':0x1});});});});}function insertAdditionalPhones(_0x323cc4){return new Promise(function(_0x488142,_0x93ad85){var _0x2bcbac=_0x323cc4[_0xb126('0x1a')];var _0x3842b1=_0x2bcbac[_0xb126('0x1e')](';');var _0x56fc18=[];orderBy=0x0;for(var _0x4db18c=0x0;_0x4db18c<_0x3842b1[_0xb126('0x1c')];_0x4db18c++){_0x56fc18[_0xb126('0x1d')](splitAdditionalPhone(_0x323cc4['id'],_0x3842b1[_0x4db18c]));}Promise[_0xb126('0x1f')](_0x56fc18)[_0xb126('0x1b')](function(){_0x488142({'val':_0x3842b1['length']});});});}function splitAdditionalPhone(_0x16d94f,_0x30453d){return new Promise(function(_0x176e0c,_0x5bd240){var _0x1f3a0d=_0x30453d['split'](':');var _0x52de84=_0x1f3a0d[0x0];var _0x1d08f1=_0x1f3a0d[0x1];if(!_['isNil'](_0x1d08f1)){var _0x215c20=_0x1d08f1['split']('|');var _0x3d0dbb=[];for(var _0x61b8d0=0x0;_0x61b8d0<_0x215c20[_0xb126('0x1c')];_0x61b8d0++){if(_0x215c20[_0x61b8d0]!==''){var _0x25a1dc=_[_0xb126('0x20')](promisesAdditionalPhones,{'contactId':_0x16d94f,'phone':_0x215c20[_0x61b8d0]});if(_0x25a1dc['length']==0x0){orderBy++;promisesAdditionalPhones[_0xb126('0x1d')]({'contactId':_0x16d94f,'contactTypeId':_0x52de84,'phone':_0x215c20[_0x61b8d0],'orderBy':orderBy});}}}_0x176e0c({'ok':0x1});}else _0x176e0c({'res':0x0});});}function createAdditionalPhone(_0x2eecf4,_0x40c1a8,_0x41fcee,_0xe07099){var _0x5a0fa6='';var _0x212ea5='';var _0x49229b=_0x41fcee['split']('§');_0x5a0fa6=_0x49229b[0x0];if(_0x49229b['length']==0x2)_0x212ea5=_0x49229b[0x1];return new Promise(function(_0x2cf6f9,_0xfeaeb7){return db['CmContactHasItem'][_0xb126('0x21')]({'where':{'CmContactId':_0x2eecf4,'item':_0x5a0fa6}})[_0xb126('0x1b')](function(_0x320493){if(_0x320493){return db[_0xb126('0x22')][_0xb126('0x23')]({'ItemTypeId':_0x40c1a8,'description':_0x212ea5,'OrderBy':_0xe07099},{'where':{'CmContactId':_0x2eecf4,'item':_0x5a0fa6}})[_0xb126('0x1b')](function(_0x4bd0be){_0x2cf6f9({'res':'updated'});});}else{return db['CmContactHasItem'][_0xb126('0x24')]({'CmContactId':_0x2eecf4,'item':_0x5a0fa6,'description':_0x212ea5,'ItemTypeId':_0x40c1a8,'OrderBy':_0xe07099,'ItemClass':_0xb126('0x25')})[_0xb126('0x1b')](function(_0x32e96b){_0x2cf6f9({'res':_0xb126('0x26')});});}});});}function insertCmHopper(_0x56c4a7,_0x3d6ed7,_0x3d1f90,_0x34c69f,_0x5e2547){var _0x66b04=[_0xb126('0x27'),_0xb126('0x28'),_0xb126('0x29'),'cm_contacts.ListId',_0x3d6ed7+'.'+_0x34c69f,'cm_contacts.createdAt',_0xb126('0x2a'),_0xb126('0x2b'),_0xb126('0x2c'),'\x22'+_0x5e2547+'\x22'];return squel[_0xb126('0x2d')]()[_0xb126('0x2e')]('cm_hopper')[_0xb126('0x2f')](['phone',_0xb126('0x30'),_0xb126('0x31'),_0xb126('0x32'),_0x34c69f,_0xb126('0x33'),_0xb126('0x34'),_0xb126('0x35'),_0xb126('0x36'),'recallme'],squel[_0xb126('0x10')]()['fields'](_0x66b04)[_0xb126('0x13')](_0x3d6ed7)[_0xb126('0x18')](_0xb126('0x37'),null,_0xb126('0x38')+_0x3d6ed7+_0xb126('0x39'))[_0xb126('0x18')](_0x3d1f90,null,_0x3d1f90+_0xb126('0x14')+_0x3d6ed7+'.'+_0x34c69f)[_0xb126('0x15')](_0x3d6ed7+_0xb126('0x3a'),_0x56c4a7)['where'](_0xb126('0x3b'),NOW)[_0xb126('0x15')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x3d6ed7,_0x3d1f90,_0x34c69f,_0xb126('0x3c'),[_0xb126('0x3d'),_0xb126('0x3e')]))[_0xb126('0x15')](_0xb126('0x3f'),selectNotIn(_0x3d6ed7,_0x3d1f90,_0x34c69f,_0xb126('0x3c'),[_0xb126('0x3d')])))['toString']();}function insertCmHopperBlack(_0x30284b,_0xa6f67f,_0x54f99d,_0x2bd2ab){var _0x4ac5c0=['cm_contacts.phone','cm_contacts.id',_0xb126('0x40'),_0xa6f67f+'.'+_0x2bd2ab,_0xb126('0x41'),_0xb126('0x2a')];return squel['insert']()[_0xb126('0x2e')](_0xb126('0x42'))[_0xb126('0x2f')](['phone',_0xb126('0x31'),_0xb126('0x32'),_0x2bd2ab,_0xb126('0x33'),_0xb126('0x34')],squel[_0xb126('0x10')]()[_0xb126('0x43')](_0x4ac5c0)[_0xb126('0x13')](_0xa6f67f)[_0xb126('0x18')](_0xb126('0x37'),null,_0xb126('0x38')+_0xa6f67f+_0xb126('0x39'))[_0xb126('0x18')](_0x54f99d,null,_0x54f99d+_0xb126('0x14')+_0xa6f67f+'.'+_0x2bd2ab)[_0xb126('0x15')](_0xa6f67f+_0xb126('0x3a'),_0x30284b)[_0xb126('0x15')]('cm_contacts.createdAt\x20=\x20?',NOW)['where'](_0xb126('0x3f'),squel[_0xb126('0x10')]()[_0xb126('0x11')](_0xb126('0x12'))[_0xb126('0x13')](_0xb126('0x42'))[_0xb126('0x15')]('ListId\x20=\x20?',_0x30284b)[_0xb126('0x15')](_0x2bd2ab+_0xb126('0x16')+_0xa6f67f+'.'+_0x2bd2ab)))[_0xb126('0x44')]();}function insertTzCmHopper(_0x5495f9,_0x1fdaba,_0x45b70a,_0x2bc0e4,_0x199050,_0x4f8b89){var _0x608f8f=[_0xb126('0x27'),'date_add(cm_contacts.scheduledat,interval\x20'+_0x4f8b89+'.offset-cm_contacts.utcOffset\x20minute)',_0xb126('0x29'),_0xb126('0x40'),_0x1fdaba+'.'+_0x2bc0e4,'cm_contacts.createdAt',_0xb126('0x2a'),_0xb126('0x2b'),_0xb126('0x2c'),'\x22'+_0x199050+'\x22'];var _0x435d2c=squel['insert']()['into'](_0xb126('0x3c'))['fromQuery'](['phone','scheduledat',_0xb126('0x31'),_0xb126('0x32'),_0x2bc0e4,_0xb126('0x33'),_0xb126('0x34'),'priority',_0xb126('0x36'),'recallme'],squel['select']()[_0xb126('0x43')](_0x608f8f)['from'](_0x1fdaba)[_0xb126('0x18')](_0xb126('0x37'),null,'cm_contacts.ListId\x20=\x20'+_0x1fdaba+_0xb126('0x39'))[_0xb126('0x18')](_0x45b70a,null,_0x45b70a+'.id\x20=\x20'+_0x1fdaba+'.'+_0x2bc0e4)[_0xb126('0x18')](_0x4f8b89,null,_0x4f8b89+_0xb126('0x14')+_0x1fdaba+'.'+_0x2bc0e4)[_0xb126('0x15')](_0x1fdaba+'.CmListId\x20=\x20?',_0x5495f9)['where']('cm_contacts.createdAt\x20=\x20?',NOW)[_0xb126('0x15')](_0xb126('0x3f'),selectNotIn(_0x1fdaba,_0x45b70a,_0x2bc0e4,_0xb126('0x3c'),[_0xb126('0x3d'),_0xb126('0x3e')]))['where']('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x1fdaba,_0x45b70a,_0x2bc0e4,_0xb126('0x3c'),[_0xb126('0x3d')])))[_0xb126('0x44')]();return _0x435d2c;}function insertTzCmHopperBlack(_0x42c27f,_0x32cca9,_0x2d273c,_0x35e7cc){var _0x5d959a=[_0xb126('0x27'),_0xb126('0x29'),_0xb126('0x40'),_0x32cca9+'.'+_0x35e7cc,_0xb126('0x41'),_0xb126('0x2a')];return squel[_0xb126('0x2d')]()['into'](_0xb126('0x42'))[_0xb126('0x2f')]([_0xb126('0x12'),'ContactId','ListId',_0x35e7cc,'createdAt','updatedAt'],squel['select']()[_0xb126('0x43')](_0x5d959a)[_0xb126('0x13')](_0x32cca9)['join']('cm_contacts',null,'cm_contacts.ListId\x20=\x20'+_0x32cca9+'.CmListId')[_0xb126('0x18')](_0x2d273c,null,_0x2d273c+_0xb126('0x14')+_0x32cca9+'.'+_0x35e7cc)['where'](_0x32cca9+_0xb126('0x3a'),_0x42c27f)['where'](_0xb126('0x3b'),NOW)['where'](_0xb126('0x3f'),squel[_0xb126('0x10')]()[_0xb126('0x11')](_0xb126('0x12'))[_0xb126('0x13')](_0xb126('0x42'))[_0xb126('0x15')](_0xb126('0x45'),_0x42c27f)[_0xb126('0x15')](_0x35e7cc+_0xb126('0x16')+_0x32cca9+'.'+_0x35e7cc)))[_0xb126('0x44')]();}function insertCmHopperAdditionalPhones(_0x571212){var _0x32d162=[_0xb126('0x46'),_0xb126('0x47'),_0xb126('0x48'),_0xb126('0x49'),'cm_contact_has_items.updatedAt'];return squel[_0xb126('0x2d')]()[_0xb126('0x2e')]('cm_hopper_additional_phones')[_0xb126('0x2f')]([_0xb126('0x4a'),_0xb126('0x12'),_0xb126('0x4b'),'createdAt',_0xb126('0x34')],squel['select']()[_0xb126('0x43')](_0x32d162)['from'](_0xb126('0x3c'))[_0xb126('0x18')]('cm_contacts',null,_0xb126('0x4c'))[_0xb126('0x18')](_0xb126('0x4d'),null,_0xb126('0x4e'))['where'](_0xb126('0x4f'),_0x571212)['where'](_0xb126('0x3b'),NOW))[_0xb126('0x44')]();}function insertCmContact(_0x2fd8b0,_0x213ba9,_0x5f477f,_0x31cb05){var _0x1ff3df=_[_0xb126('0x50')](_[_0xb126('0x51')](_0x31cb05),['ListId',_0xb126('0x52'),_0xb126('0x33'),_0xb126('0x34'),_0xb126('0x53')]);return squel[_0xb126('0x2d')]()[_0xb126('0x2e')]('cm_contacts')[_0xb126('0x2f')](_0x1ff3df,squel[_0xb126('0x10')]()['fields'](_0x1ff3df)['from'](_0x213ba9)[_0xb126('0x15')]('('+_0x5f477f[_0xb126('0x18')](',')+_0xb126('0x54'),squel[_0xb126('0x10')]()[_0xb126('0x43')](_0x5f477f)['from'](_0xb126('0x37'))['where'](_0xb126('0x45'),_0x2fd8b0)['where'](_0xb126('0x55')))[_0xb126('0x15')](_0xb126('0x56'),squel[_0xb126('0x10')]()[_0xb126('0x11')](_0xb126('0x57'),_0xb126('0x58'))['from'](_0x213ba9)[_0xb126('0x59')](_0x5f477f[_0xb126('0x18')](','))))[_0xb126('0x44')]();}function handleStop(){logger[_0xb126('0x5a')](_0xb126('0x5b'));stopped=!![];}function handleUncaughtException(_0x2aabd7){logger[_0xb126('0x5c')](_0x2aabd7['message']);process[_0xb126('0x5d')](0x1);}function handleError(_0x4a54bd,_0x8a05c4){stats['errors'][_0xb126('0x1d')]({'name':_0x8a05c4[_0xb126('0x5e')],'message':_0x8a05c4[_0xb126('0x5f')],'row':_0x4a54bd});}function handleQuery(_0x3e94ea){logger[_0xb126('0x5a')](_0x3e94ea);return db[_0xb126('0x60')][_0xb126('0x61')](_0x3e94ea)['spread'](function(_0x729fb9){results[_0xb126('0x1d')](_0x729fb9);})[_0xb126('0x62')](function(_0x43a191){logger[_0xb126('0x5c')](_0x43a191[_0xb126('0x5f')]);});}function updateTzCampaigns(_0x12149c){return new Promise(function(_0x56eaf3,_0x53fc57){var _0x21d499=squel['select']()[_0xb126('0x43')]([_0xb126('0x63'),_0xb126('0x64')])[_0xb126('0x13')](_0xb126('0x65'))[_0xb126('0x18')]('campaigns_has_cm_lists',null,_0xb126('0x66'))['where']('campaigns_has_cm_lists.CmListId='+_0x12149c);db[_0xb126('0x60')][_0xb126('0x61')](_0x21d499[_0xb126('0x44')]())[_0xb126('0x67')](function(_0x1212a3){var _0x9f60dd=[];for(var _0x4565bb=0x0;_0x4565bb<_0x1212a3['length'];_0x4565bb++){_0x9f60dd[_0xb126('0x1d')](getTimezoneData(_0x1212a3[_0x4565bb],tmp_campaigns));}BPromise[_0xb126('0x1f')](_0x9f60dd)[_0xb126('0x1b')](function(){_0x56eaf3({'val':0x1});});})[_0xb126('0x62')](function(_0x58e8a4){logger['error'](_0x58e8a4['message']);_0x56eaf3({'val':0x0});});});}function updateTzVoiceQueues(_0x5ac639){return new Promise(function(_0x5fe341,_0x185566){var _0x218fcf=squel[_0xb126('0x10')]()['fields'](['voice_queues.id','voice_queues.dialTimezone'])[_0xb126('0x13')](_0xb126('0x68'))['join'](_0xb126('0x69'),null,_0xb126('0x6a'))[_0xb126('0x15')](_0xb126('0x6b')+_0x5ac639);db['sequelize'][_0xb126('0x61')](_0x218fcf[_0xb126('0x44')]())['spread'](function(_0x35bdd5){var _0x196f69=[];for(var _0x36fc64=0x0;_0x36fc64<_0x35bdd5[_0xb126('0x1c')];_0x36fc64++){_0x196f69[_0xb126('0x1d')](getTimezoneData(_0x35bdd5[_0x36fc64],tmp_voice_queues));}BPromise['all'](_0x196f69)[_0xb126('0x1b')](function(){_0x5fe341({'val':0x1});});})[_0xb126('0x62')](function(_0x20de9e){logger[_0xb126('0x5c')](_0x20de9e[_0xb126('0x5f')]);_0x5fe341({'val':0x0});});});}function getTimezoneData(_0x4c8cb7,_0xe51f15){return new Promise(function(_0x5408f6,_0x369876){var _0x525cd9=shared[_0xb126('0x6c')];var _0x3c851f=_0x525cd9[_0x4c8cb7['dialTimezone']];if(_[_0xb126('0x6d')](_0x3c851f)){_0x5408f6({'ret':0x1});}else{var _0x8eeb89=_0x3c851f['utcOffset'];var _0x5b55fc=squel[_0xb126('0x2d')]()[_0xb126('0x2e')](_0xe51f15)[_0xb126('0x6e')]('id',_0x4c8cb7['id'])['set'](_0xb126('0x6f'),_0x8eeb89)[_0xb126('0x6e')](_0xb126('0x70'),_0x4c8cb7[_0xb126('0x70')])['toString']();return db['sequelize'][_0xb126('0x61')](_0x5b55fc)['spread'](function(_0x1a232c){_0x5408f6({'ret':0x1});})[_0xb126('0x62')](function(_0x64e79b){logger[_0xb126('0x5c')](_0x64e79b[_0xb126('0x5f')]);_0x369876({'ret':0x1});});}});}function handleTZQuery(_0x367c5a){logger[_0xb126('0x5a')](_0x367c5a);return db['sequelize']['query'](_0x367c5a)[_0xb126('0x67')](function(_0x2047a0){})[_0xb126('0x62')](function(_0x304d29){logger[_0xb126('0x5c')](_0x304d29[_0xb126('0x5f')]);});}function main(_0x26b692,_0x513a15,_0x10d472,_0x2bcc07){logger['info']('main',_0x26b692,JSON[_0xb126('0x71')](_0x513a15));process['send']('start');var _0x24c859=_0x513a15[_0xb126('0x72')];var _0x191f7c=_[_0xb126('0x73')](_0x24c859);var _0x1eb696=_0x513a15[_0xb126('0x74')];var _0x592859=path['join'](config[_0xb126('0x75')],_0xb126('0x76'),_0x1eb696+'.csv');hasTZ=_[_0xb126('0x51')](_0x24c859)[_0xb126('0x77')](_0xb126('0x70'));var _0x143ad8=_[_0xb126('0x51')](_0x24c859)[_0xb126('0x18')]();logger[_0xb126('0x5a')](_0xb126('0x78'),_0x143ad8);db[_0xb126('0x79')][_0xb126('0x7a')]({'raw':!![],'attributes':['id','name']})[_0xb126('0x1b')](function(_0x3d496e){for(var _0x2651bd=0x0;_0x2651bd<_0x3d496e['length'];_0x2651bd++){if(_0x3d496e[_0x2651bd]['name']in _0x24c859){contactItemTypes[_0xb126('0x1d')](_0x3d496e[_0x2651bd]);delete _0x191f7c[_0x3d496e[_0x2651bd]['name']];hasAdditionalPhones=!![];}for(var _0x550b8a in _0x24c859){if(_0x3d496e[_0x2651bd][_0xb126('0x7b')]+_0xb126('0x7c')===_0x550b8a){phoneDescriptions[_0xb126('0x1d')]({'itemTypeId':_0x3d496e[_0x2651bd]['id'],'description':_0x550b8a});delete _0x191f7c[_0x550b8a];}}}if(hasAdditionalPhones)_0x191f7c['AdditionalPhones']='';var _0x442801=_[_0xb126('0x51')](_0x191f7c)['join']();logger[_0xb126('0x5a')]('header',_0x442801);fs[_0xb126('0x7d')](_0x592859,_0x442801+'\x0a');Papa[_0xb126('0x7e')](fs[_0xb126('0x7f')](_0x26b692),{'header':!![],'skipEmptyLines':!![],'step':function(_0x21808d,_0x426c58){try{for(var _0x199710=0x0,_0x30da73=[];_0x199710<_0x21808d['data'][_0xb126('0x1c')];_0x199710++){stats['rows']+=0x1;if(_0x21808d[_0xb126('0x80')][_0x199710]){handleError(_0x21808d['data'][_0x199710],_0x21808d[_0xb126('0x80')][_0x199710]);}else{var _0x342785=[];var _0x10f7eb=[];var _0x452c39={};for(var _0x4c2709 in _0x24c859){let _0x2a7624=contactItemTypes[_0xb126('0x81')](_0x1d404a=>_0x1d404a[_0xb126('0x7b')]===_0x4c2709);let _0x123b1a=contactItemTypes['find'](_0x306723=>_0x306723[_0xb126('0x7b')]+'_description'===_0x4c2709);if(_[_0xb126('0x6d')](_0x2a7624)&&_['isNil'](_0x123b1a)){if(_0x24c859[_0xb126('0x82')](_0x4c2709)){if(_0x21808d[_0xb126('0x83')][_0x199710][_0x24c859[_0x4c2709]]){var _0x1888ac=_['trim'](_0x21808d[_0xb126('0x83')][_0x199710][_0x24c859[_0x4c2709]][_0xb126('0x84')](/"/g,'\x27'));switch(_0x4c2709){case'scheduledat':var _0x224fe0=moment(_0x1888ac,_0xb126('0xe'),!![]);if(_0x224fe0['isValid']()){_0x30da73[_0xb126('0x1d')]('\x22'+_0x1888ac+'\x22');}else{_0x342785['push'](_0xb126('0x85'));}break;case _0xb126('0x35'):var _0x42444a=parseInt(_0x1888ac);_0x1888ac=_[_0xb126('0x86')](_0x42444a)||_0x42444a<0x0||_0x42444a>0x4?_0x2bcc07?0x3:0x2:_0x42444a;_0x30da73[_0xb126('0x1d')]('\x22'+_0x1888ac+'\x22');break;case _0xb126('0x36'):var _0xc5a42f=parseInt(_0x1888ac);if(_['isNumber'](_0xc5a42f)&&_['includes'](_0x10d472,_0xc5a42f)){_0x30da73[_0xb126('0x1d')]('\x22'+_0xc5a42f+'\x22');}else{_0x342785[_0xb126('0x1d')](_0xb126('0x87'));}break;case _0xb126('0x88'):if(isEmail(_0x1888ac)){_0x30da73[_0xb126('0x1d')]('\x22'+_0x1888ac+'\x22');}else{_0x342785['push'](_0xb126('0x89'));}break;case'dateOfBirth':var _0x415625=moment(_0x1888ac,_0xb126('0x8a'),!![]);if(_0x415625[_0xb126('0x8b')]()){_0x30da73[_0xb126('0x1d')]('\x22'+_0x1888ac+'\x22');}else{_0x342785[_0xb126('0x1d')](_0xb126('0x8c'));}break;case _0xb126('0x70'):var _0x138615=shared['timezones'];var _0x467e97=_0x138615[_0x1888ac];if(!_['isNil'](_0x467e97)){var _0x51695d=_0x467e97[_0xb126('0x8d')];_0x30da73[_0xb126('0x1d')]('\x22'+_0x1888ac+'\x22');_0x30da73[_0xb126('0x1d')]('\x22'+_0x51695d+'\x22');}break;default:_0x30da73[_0xb126('0x1d')]('\x22'+_0x1888ac+'\x22');}}else{switch(_0x4c2709){case _0xb126('0x8e'):case'phone':_0x342785[_0xb126('0x1d')](_0x4c2709+_0xb126('0x8f'));break;default:_0x30da73[_0xb126('0x1d')]('\x22\x22');}}}}else{var _0x2d680a='';if(!_[_0xb126('0x6d')](_0x2a7624)){if(!_0x452c39['hasOwnProperty'](_0x2a7624['id'])){if(!_['isNil'](_0x21808d[_0xb126('0x83')][_0x199710][_0x24c859[_0x4c2709]])){var _0x1888ac=_[_0xb126('0x90')](_0x21808d[_0xb126('0x83')][_0x199710][_0x24c859[_0x4c2709]]['replace'](/"/g,'\x27'));var _0x34d156=phoneDescriptions[_0xb126('0x81')](_0x11d54b=>_0x11d54b['itemTypeId']===_0x2a7624['id']);if(!_['isNil'](_0x34d156)){var _0x1f44cd=_[_0xb126('0x90')](_0x21808d['data'][_0x199710][_0x24c859[_0x34d156[_0xb126('0x91')]]][_0xb126('0x84')](/"/g,'\x27'));if(!_[_0xb126('0x6d')](_0x1f44cd))_0x1888ac=_0x1888ac+'§'+_0x1f44cd;}if(_0x2d680a=='')_0x2d680a=_0x1888ac;else _0x2d680a+='|'+_0x1888ac;}_0x10f7eb['push'](_0x2a7624['id']+':'+_0x2d680a);_0x452c39[_0x2a7624['id']]=0x1;}}}}if(hasAdditionalPhones){_0x30da73[_0xb126('0x1d')]('\x22'+_0x10f7eb['join'](';')+'\x22');}if(_0x342785[_0xb126('0x1c')]){handleError(_0x21808d[_0xb126('0x83')][_0x199710],{'code':'SystemRow','message':_0x342785['join']()});}else{fs[_0xb126('0x92')](_0x592859,_0x30da73[_0xb126('0x18')]()+'\x0a');}_0x30da73=[];}if(!(stats[_0xb126('0x93')]%0xc8)){socket[_0xb126('0x94')](_0xb126('0x95')+_0x1eb696,stats);stats[_0xb126('0x80')]=[];}}if(stopped){logger['info'](_0xb126('0x96'));_0x426c58['abort']();}}catch(_0x5582da){handleError(_0x21808d[_0xb126('0x83')][_0x199710],{'code':_0xb126('0x97'),'message':_0x5582da[_0xb126('0x5f')]});logger[_0xb126('0x5c')](_0xb126('0x98'),_0x5582da['message']);}},'complete':function(){try{var _0x470417=[];var _0x38d02a=[];var _0x2d82c6='cm_contacts';if(_0x513a15['duplicates']&&_0x513a15[_0xb126('0x99')][_0xb126('0x1c')]){_0x2d82c6=_0xb126('0x9a')+_0x1eb696;_0x470417[_0xb126('0x1d')](_0xb126('0x9b')+_0x2d82c6+_0xb126('0x9c'));}tmp_campaigns=_0xb126('0x9d')+_0x1eb696;tmp_voice_queues='voice_queues_'+_0x1eb696;_0x38d02a[_0xb126('0x1d')](_0xb126('0x9b')+tmp_campaigns+_0xb126('0x9e'));_0x38d02a['push']('CREATE\x20TABLE\x20'+tmp_voice_queues+_0xb126('0x9e'));BPromise[_0xb126('0x9f')](_0x38d02a,handleTZQuery)['then'](function(_0x11f36b){updateTzCampaigns(_0x513a15['ListId'])[_0xb126('0x1b')](function(_0x9f27b6){updateTzVoiceQueues(_0x513a15[_0xb126('0x32')])[_0xb126('0x1b')](function(_0x26398b){if(hasTZ)_0x442801=_0x442801[_0xb126('0x84')]('dialTimezone',_0xb126('0xa0'));var _0x86cb12=util[_0xb126('0xd')](_0xb126('0xa1'),_0x592859,_0x2d82c6,_0x442801,_0x513a15[_0xb126('0x32')],_0x513a15[_0xb126('0x52')]||null,NOW,NOW);if(_[_0xb126('0x6d')](_0x24c859['scheduledat'])){_0x86cb12+=_0xb126('0xa2');}_0x470417['push'](_0x86cb12);if(_0x513a15[_0xb126('0x99')]&&_0x513a15[_0xb126('0x99')][_0xb126('0x1c')]){_0x470417['push'](insertCmContact(_0x513a15[_0xb126('0x32')],_0x2d82c6,_0x513a15['duplicates'],_0x24c859));_0x470417[_0xb126('0x1d')](_0xb126('0xa3')+_0x2d82c6+';');}BPromise[_0xb126('0x9f')](_0x470417,handleQuery)['then'](function(_0x4c5d39){BPromise[_0xb126('0x1f')]([handleAdditionalPhones()])['then'](function(){_0x470417=[];for(var _0x135a07=0x0;_0x135a07<promisesAdditionalPhones[_0xb126('0x1c')];_0x135a07++){if(promisesAdditionalPhones[_0x135a07][_0xb126('0x12')]!='§'){_0x470417[_0xb126('0x1d')](createAdditionalPhone(promisesAdditionalPhones[_0x135a07][_0xb126('0xa4')],promisesAdditionalPhones[_0x135a07]['contactTypeId'],promisesAdditionalPhones[_0x135a07][_0xb126('0x12')],promisesAdditionalPhones[_0x135a07][_0xb126('0xa5')]));}}BPromise[_0xb126('0x1f')](_0x470417)[_0xb126('0x1b')](function(){_0x470417=[];if(hasTZ){_0x470417[_0xb126('0x1d')](insertTzCmHopper(_0x513a15[_0xb126('0x32')],_0xb126('0x69'),_0xb126('0x68'),_0xb126('0xa6'),_0x2bcc07,tmp_voice_queues));_0x470417[_0xb126('0x1d')](insertTzCmHopperBlack(_0x513a15[_0xb126('0x32')],_0xb126('0xa7'),_0xb126('0x68'),'VoiceQueueId'));_0x470417[_0xb126('0x1d')](insertTzCmHopper(_0x513a15['ListId'],'campaigns_has_cm_lists',_0xb126('0x65'),_0xb126('0xa8'),_0x2bcc07,tmp_campaigns));_0x470417[_0xb126('0x1d')](insertTzCmHopperBlack(_0x513a15[_0xb126('0x32')],_0xb126('0xa9'),_0xb126('0x65'),_0xb126('0xa8')));_0x470417[_0xb126('0x1d')](insertCmHopperAdditionalPhones(_0x513a15[_0xb126('0x32')]));}else{_0x470417[_0xb126('0x1d')](insertCmHopper(_0x513a15[_0xb126('0x32')],_0xb126('0x69'),_0xb126('0x68'),_0xb126('0xa6'),_0x2bcc07));_0x470417[_0xb126('0x1d')](insertCmHopperBlack(_0x513a15[_0xb126('0x32')],_0xb126('0xa7'),_0xb126('0x68'),_0xb126('0xa6')));_0x470417[_0xb126('0x1d')](insertCmHopper(_0x513a15['ListId'],_0xb126('0xaa'),'campaigns',_0xb126('0xa8'),_0x2bcc07));_0x470417[_0xb126('0x1d')](insertCmHopperBlack(_0x513a15['ListId'],'campaigns_has_cm_blacklists',_0xb126('0x65'),'CampaignId'));_0x470417[_0xb126('0x1d')](insertCmHopperAdditionalPhones(_0x513a15[_0xb126('0x32')]));}_0x470417['push']('DROP\x20TABLE\x20'+tmp_campaigns+';');_0x470417[_0xb126('0x1d')](_0xb126('0xa3')+tmp_voice_queues+';');BPromise[_0xb126('0x9f')](_0x470417,handleQuery)[_0xb126('0x1b')](function(_0x40ab14){stats[_0xb126('0xab')]=!![];stats[_0xb126('0xac')]=_0x513a15[_0xb126('0x99')]&&_0x513a15[_0xb126('0x99')]['length']?results[0x2][_0xb126('0xac')]:results[0x0]['affectedRows'];socket['emit'](_0xb126('0x95')+_0x1eb696,stats);fs[_0xb126('0xad')](_0x26b692);fs[_0xb126('0xad')](_0x592859);process['exit'](0x0);})[_0xb126('0x62')](function(_0x2306d6){logger[_0xb126('0x5c')](_0x2306d6[_0xb126('0x5f')]);process[_0xb126('0x5d')](0x1);});});});})[_0xb126('0x62')](function(_0x4a4243){logger['error'](_0x4a4243[_0xb126('0x5f')]);process['exit'](0x1);});});});});}catch(_0x5d4220){logger[_0xb126('0x5c')](_0xb126('0xae'),_0x5d4220['message']);process[_0xb126('0x5d')](0x1);}},'error':function(_0x77c069,_0x22dff0,_0x126d98,_0xad708){throw new Error(_0xad708);}});});}function validate(){if(process['argv']&&process[_0xb126('0xaf')]['length']<0x4){throw new Error(_0xb126('0xb0'));}var _0x42a94a=path[_0xb126('0x18')](config[_0xb126('0x75')],_0xb126('0x76'),process[_0xb126('0xaf')][0x2]);if(!fs[_0xb126('0xb1')](_0x42a94a)){throw new Error(_0xb126('0xb2'));}var _0x2756c6={};try{_0x2756c6=JSON[_0xb126('0x7e')](process[_0xb126('0xaf')][0x3]);if(!_0x2756c6[_0xb126('0x72')]){throw new Error('binding\x20doesn\x27t\x20exists');}if(!_0x2756c6[_0xb126('0x72')][_0xb126('0x12')]){throw new Error('phone\x20is\x20mandatory');}if(!_0x2756c6[_0xb126('0x72')][_0xb126('0x8e')]){throw new Error('firstName\x20is\x20mandatory');}var _0x1861f7=0x0;if(_0x2756c6[_0xb126('0x72')][_0xb126('0x36')]){_0x1861f7=0x1;}if(!_0x2756c6['ListId']){throw new Error('ListId\x20is\x20mandatory');}}catch(_0x5577ab){throw new Error(_0xb126('0xb3'));}var _0xebdfa5=[];try{_0xebdfa5=_['map'](JSON[_0xb126('0x7e')](process[_0xb126('0xaf')][0x4]),'id');}catch(_0x3bbd2e){logger[_0xb126('0x5a')](_0xb126('0xb4'));}main(_0x42a94a,_0x2756c6,_0xebdfa5,_0x1861f7);}validate();process['on']('SIGINT',handleStop);process['on'](_0xb126('0xb5'),handleUncaughtException);