dfed9eb530852e12983acad5b27bba9051ecac28
[motion2.git] / server / components / import / cm / csvUpdates.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 _0x7461=['errors','code','main','stringify','binding','clone','root','server/files/tmp','.csv','body','ContactItemType','findAll','name','header','writeFileSync','parse','data','rows','find','_description','trim','replace','YYYY-MM-DD\x20HH:mm:ss','isNaN','isNumber','agent\x20not\x20exists','email','email\x20wrong\x20format','dateOfBirth','isValid','firstName','\x20not\x20specified','hasOwnProperty','description','SystemRow','appendFileSync','contact:import:','Abort\x20parser','SystemError','step','CREATE\x20TABLE\x20','CompanyId','each','contact','contactId','contactTypeId','orderBy','DROP\x20TABLE\x20','finish','emit','unlink','complete','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','existsSync','file\x20doesn\x27t\x20exists','binding\x20doesn\x27t\x20exists','ListId\x20is\x20mandatory','body\x20id\x20mandatory','No\x20agent\x20available','SIGINT','uncaughtException','path','lodash','papaparse','util','bluebird','../../../config/environment','../../../config/logger','import','redis','defaults','localhost','socket.io-emitter','format','cm_contacts_temp_','YYYYMMDDHHmmss','test','select','field','phone','from','join','.id\x20=\x20','where','\x20=\x20','.dialCheckDuplicateType\x20IN\x20(','sequelize','query','select\x20*\x20from\x20','spread','length','isNil','AdditionalPhones','push','all','catch','error','message','split','CmContactHasItem','then','update','updated','create','PHONE','inserted','CmContact','cm_contacts.phone','cm_contacts.scheduledat','cm_contacts.id','cm_contacts.ListId','cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.priority','insert','into','cm_hopper','fromQuery','scheduledat','ContactId','ListId','createdAt','priority','UserId','recallme','fields','cm_contacts.ListId\x20=\x20','.CmListId','.CmListId\x20=\x20?','cm_contacts.createdAt\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','\x22always\x22','\x22onlyIfOpen\x22','toString','updatedAt','cm_contacts','cm_hopper_black','ListId\x20=\x20?','\x20=\x20?','cm_hopper.id','cm_contact_has_items.OrderBy','cm_contact_has_items.updatedAt','cm_hopper_additional_phones','CmHopperId','OrderBy','cm_contacts.id\x20=\x20cm_hopper.ContactId','cm_contacts.id\x20=\x20cm_contact_has_items.CmContactId','cm_hopper.ListId\x20=\x20?','concat','keys',')\x20NOT\x20IN\x20?','id\x20IN\x20?','min_id','info','Received\x20SIGINT','exit'];(function(_0x1afa27,_0x5797fb){var _0xc82207=function(_0x138720){while(--_0x138720){_0x1afa27['push'](_0x1afa27['shift']());}};_0xc82207(++_0x5797fb);}(_0x7461,0xdb));var _0x1746=function(_0x6a2228,_0x4a1d8b){_0x6a2228=_0x6a2228-0x0;var _0x2d7c81=_0x7461[_0x6a2228];return _0x2d7c81;};'use strict';var fs=require('fs');var path=require(_0x1746('0x0'));var _=require(_0x1746('0x1'));var Papa=require(_0x1746('0x2'));var util=require(_0x1746('0x3'));var BPromise=require(_0x1746('0x4'));var moment=require('moment');var squel=require('squel');var Redis=require('ioredis');var db=require('../../../mysqldb')['db'];var config=require(_0x1746('0x5'));var logger=require(_0x1746('0x6'))(_0x1746('0x7'));config[_0x1746('0x8')]=_[_0x1746('0x9')](config[_0x1746('0x8')],{'host':_0x1746('0xa'),'port':0x18eb});var socket=require(_0x1746('0xb'))(new Redis(config[_0x1746('0x8')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var promisesAdditionalPhones=[];var promisesContact=[];var orderBy=0x0;var updatedRows=0x0;var stopped=![];var NOW=moment()[_0x1746('0xc')]('YYYY-MM-DD\x20HH:mm:ss');var tempTableName=_0x1746('0xd')+moment()['format'](_0x1746('0xe'));var contactItemTypes=[];var phoneDescriptions=[];var hasAdditionalPhones=![];function isEmail(_0x310338){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))*$/[_0x1746('0xf')](_0x310338);}function selectNotIn(_0x42494a,_0x31a21d,_0x25f943,_0x13afc1,_0x3c92a8){return squel[_0x1746('0x10')]()[_0x1746('0x11')](_0x1746('0x12'))[_0x1746('0x13')](_0x13afc1)[_0x1746('0x14')](_0x31a21d,null,_0x31a21d+_0x1746('0x15')+_0x13afc1+'.'+_0x25f943)[_0x1746('0x16')](_0x13afc1+'.'+_0x25f943+_0x1746('0x17')+_0x42494a+'.'+_0x25f943)[_0x1746('0x16')](_0x31a21d+_0x1746('0x18')+_0x3c92a8[_0x1746('0x14')]()+')');}function handleAdditionalPhones(){return new Promise(function(_0x5654d7,_0x3b3ee8){promisesAdditionalPhones=[];promisesContact=[];return db[_0x1746('0x19')][_0x1746('0x1a')](_0x1746('0x1b')+tempTableName)[_0x1746('0x1c')](function(_0x32e67f){if(_0x32e67f!==null){var _0x4a0343=[];for(var _0x25d32c=0x0;_0x25d32c<_0x32e67f[_0x1746('0x1d')];_0x25d32c++){var _0x132b69=_0x32e67f[_0x25d32c];if(!_[_0x1746('0x1e')](_0x132b69[_0x1746('0x12')])){if(!_['isNil'](_0x132b69[_0x1746('0x1f')]))_0x4a0343[_0x1746('0x20')](insertAdditionalPhones(_0x132b69));promisesContact[_0x1746('0x20')]({'contact':_0x132b69});}}}Promise[_0x1746('0x21')](_0x4a0343)['then'](function(){_0x5654d7({'val':0x1});});})[_0x1746('0x22')](function(_0x1726f3){logger[_0x1746('0x23')](_0x1726f3[_0x1746('0x24')]);});});}function insertAdditionalPhones(_0x1e6772){return new Promise(function(_0xab2a5a,_0x28ecc0){var _0xe02594=_0x1e6772[_0x1746('0x1f')];if(_[_0x1746('0x1e')](_0xe02594))_0x28ecc0({'val':0x0});else{var _0x3a2141=_0xe02594[_0x1746('0x25')](';');var _0xb87d6e=[];orderBy=0x0;for(var _0x4b737b=0x0;_0x4b737b<_0x3a2141[_0x1746('0x1d')];_0x4b737b++){_0xb87d6e['push'](splitAdditionalPhone(_0x1e6772['id'],_0x3a2141[_0x4b737b]));}Promise[_0x1746('0x21')](_0xb87d6e)['then'](function(){_0xab2a5a({'val':_0x3a2141[_0x1746('0x1d')]});});}});}function splitAdditionalPhone(_0x4b9ab2,_0x5b7977){return new Promise(function(_0x11df41,_0x188e64){var _0x8127cc=_0x5b7977['split'](':');var _0x4e8f88=_0x8127cc[0x0];var _0x2b67c3=_0x8127cc[0x1];if(_0x2b67c3!==''){var _0xfc5924=_0x2b67c3[_0x1746('0x25')]('|');var _0x4e43c6=[];for(var _0x53f993=0x0;_0x53f993<_0xfc5924[_0x1746('0x1d')];_0x53f993++){if(_0xfc5924[_0x53f993]!==''){var _0x513e31=_['filter'](promisesAdditionalPhones,{'contactId':_0x4b9ab2,'phone':_0xfc5924[_0x53f993]});if(_0x513e31[_0x1746('0x1d')]==0x0){orderBy++;promisesAdditionalPhones[_0x1746('0x20')]({'contactId':_0x4b9ab2,'contactTypeId':_0x4e8f88,'phone':_0xfc5924[_0x53f993],'orderBy':orderBy});}}}_0x11df41({'ok':0x1});}else _0x11df41({'res':0x0});});}function createAdditionalPhone(_0x20dc43,_0x1c4d47,_0x2124f3,_0x41ed0d){var _0xacdd8='';var _0x232fd9='';var _0x585e1c=_0x2124f3[_0x1746('0x25')]('§');_0xacdd8=_0x585e1c[0x0];if(_0x585e1c['length']==0x2)_0x232fd9=_0x585e1c[0x1];return new Promise(function(_0x191c96,_0xaea714){return db[_0x1746('0x26')]['findOne']({'where':{'CmContactId':_0x20dc43,'item':_0xacdd8}})[_0x1746('0x27')](function(_0x21a2d0){if(_0x21a2d0){return db[_0x1746('0x26')][_0x1746('0x28')]({'ItemTypeId':_0x1c4d47,'description':_0x232fd9,'OrderBy':_0x41ed0d},{'where':{'CmContactId':_0x20dc43,'item':_0xacdd8}})[_0x1746('0x27')](function(_0x382c28){_0x191c96({'res':_0x1746('0x29')});});}else{return db[_0x1746('0x26')][_0x1746('0x2a')]({'CmContactId':_0x20dc43,'item':_0xacdd8,'ItemTypeId':_0x1c4d47,'description':_0x232fd9,'OrderBy':_0x41ed0d,'ItemClass':_0x1746('0x2b')})[_0x1746('0x27')](function(_0x5455c9){_0x191c96({'res':_0x1746('0x2c')});});}});});}function updateContact(_0x848c82){return new Promise(function(_0x588fd8,_0x371562){var _0x4120fe=_0x848c82['id'];delete _0x848c82['id'];return db[_0x1746('0x2d')][_0x1746('0x28')](_0x848c82,{'where':{'id':_0x4120fe}})['then'](function(_0x4e590d){updatedRows+=0x1;return db['CmHopper'][_0x1746('0x28')]({'phone':_0x848c82['phone']},{'where':{'ContactId':_0x4120fe}})['then'](function(_0x5c6ee5){_0x588fd8({'ret':'OK'});});});});}function insertCmHopper(_0x3c309e,_0x59eeae,_0x5f3e67,_0x1fceed,_0x24fc19){var _0x5cba9b=[_0x1746('0x2e'),_0x1746('0x2f'),_0x1746('0x30'),_0x1746('0x31'),_0x59eeae+'.'+_0x1fceed,_0x1746('0x32'),_0x1746('0x33'),_0x1746('0x34'),'cm_contacts.UserId','\x22'+_0x24fc19+'\x22'];return squel[_0x1746('0x35')]()[_0x1746('0x36')](_0x1746('0x37'))[_0x1746('0x38')]([_0x1746('0x12'),_0x1746('0x39'),_0x1746('0x3a'),_0x1746('0x3b'),_0x1fceed,_0x1746('0x3c'),'updatedAt',_0x1746('0x3d'),_0x1746('0x3e'),_0x1746('0x3f')],squel['select']()[_0x1746('0x40')](_0x5cba9b)[_0x1746('0x13')](_0x59eeae)[_0x1746('0x14')]('cm_contacts',null,_0x1746('0x41')+_0x59eeae+_0x1746('0x42'))[_0x1746('0x14')](_0x5f3e67,null,_0x5f3e67+_0x1746('0x15')+_0x59eeae+'.'+_0x1fceed)['where'](_0x59eeae+_0x1746('0x43'),_0x3c309e)[_0x1746('0x16')](_0x1746('0x44'),NOW)[_0x1746('0x16')](_0x1746('0x45'),selectNotIn(_0x59eeae,_0x5f3e67,_0x1fceed,'cm_hopper',[_0x1746('0x46'),_0x1746('0x47')]))[_0x1746('0x16')](_0x1746('0x45'),selectNotIn(_0x59eeae,_0x5f3e67,_0x1fceed,_0x1746('0x37'),[_0x1746('0x46')])))[_0x1746('0x48')]();}function insertCmHopperBlack(_0x3f3eaf,_0xa9de16,_0x507ef6,_0x1589bd){var _0x197617=['cm_contacts.phone',_0x1746('0x30'),'cm_contacts.ListId',_0xa9de16+'.'+_0x1589bd,'cm_contacts.createdAt',_0x1746('0x33')];return squel[_0x1746('0x35')]()[_0x1746('0x36')]('cm_hopper_black')['fromQuery'](['phone','ContactId',_0x1746('0x3b'),_0x1589bd,_0x1746('0x3c'),_0x1746('0x49')],squel[_0x1746('0x10')]()[_0x1746('0x40')](_0x197617)[_0x1746('0x13')](_0xa9de16)[_0x1746('0x14')](_0x1746('0x4a'),null,'cm_contacts.ListId\x20=\x20'+_0xa9de16+'.CmListId')[_0x1746('0x14')](_0x507ef6,null,_0x507ef6+_0x1746('0x15')+_0xa9de16+'.'+_0x1589bd)['where'](_0xa9de16+_0x1746('0x43'),_0x3f3eaf)['where'](_0x1746('0x44'),NOW)[_0x1746('0x16')](_0x1746('0x45'),squel[_0x1746('0x10')]()[_0x1746('0x11')](_0x1746('0x12'))[_0x1746('0x13')](_0x1746('0x4b'))['where'](_0x1746('0x4c'),_0x3f3eaf)['where'](_0x1589bd+_0x1746('0x4d'),_0xa9de16+'.'+_0x1589bd)))[_0x1746('0x48')]();}function insertCmHopperAdditionalPhones(_0x4e587e){var _0x54ce4e=[_0x1746('0x4e'),'cm_contact_has_items.item',_0x1746('0x4f'),'cm_contact_has_items.createdAt',_0x1746('0x50')];return squel[_0x1746('0x35')]()['into'](_0x1746('0x51'))[_0x1746('0x38')]([_0x1746('0x52'),'phone',_0x1746('0x53'),_0x1746('0x3c'),_0x1746('0x49')],squel[_0x1746('0x10')]()[_0x1746('0x40')](_0x54ce4e)['from'](_0x1746('0x37'))[_0x1746('0x14')](_0x1746('0x4a'),null,_0x1746('0x54'))['join']('cm_contact_has_items',null,_0x1746('0x55'))[_0x1746('0x16')](_0x1746('0x56'),_0x4e587e)[_0x1746('0x16')](_0x1746('0x44'),NOW))[_0x1746('0x48')]();}function insertCmContact(_0x4a3971,_0x3dd234,_0x12175a,_0x35546a){var _0x236c98=_[_0x1746('0x57')](_[_0x1746('0x58')](_0x35546a),[_0x1746('0x3b'),'CompanyId',_0x1746('0x3c'),_0x1746('0x49')]);return squel['insert']()[_0x1746('0x36')]('cm_contacts')[_0x1746('0x38')](_0x236c98,squel['select']()[_0x1746('0x40')](_0x236c98)[_0x1746('0x13')](_0x3dd234)[_0x1746('0x16')]('('+_0x12175a['join'](',')+_0x1746('0x59'),squel[_0x1746('0x10')]()[_0x1746('0x40')](_0x12175a)[_0x1746('0x13')](_0x1746('0x4a'))[_0x1746('0x16')](_0x1746('0x4c'),_0x4a3971))[_0x1746('0x16')](_0x1746('0x5a'),squel['select']()[_0x1746('0x11')]('MIN(id)',_0x1746('0x5b'))[_0x1746('0x13')](_0x3dd234)['group'](_0x12175a[_0x1746('0x14')](','))))[_0x1746('0x48')]();}function handleStop(){logger[_0x1746('0x5c')](_0x1746('0x5d'));stopped=!![];}function handleUncaughtException(_0x1bd5a3){logger[_0x1746('0x23')](_0x1bd5a3[_0x1746('0x24')]);process[_0x1746('0x5e')](0x1);}function handleError(_0x5de38b,_0x29da42){stats[_0x1746('0x5f')][_0x1746('0x20')]({'name':_0x29da42[_0x1746('0x60')],'message':_0x29da42['message'],'row':_0x5de38b});}function handleQuery(_0xb861){logger[_0x1746('0x5c')](_0xb861);return db[_0x1746('0x19')]['query'](_0xb861)['spread'](function(_0x248654){results[_0x1746('0x20')](_0x248654);})[_0x1746('0x22')](function(_0x5ac626){logger[_0x1746('0x23')](_0x5ac626[_0x1746('0x24')]);});}function main(_0x46b111,_0x38616d,_0x3b591a,_0x1d0de6){logger[_0x1746('0x5c')](_0x1746('0x61'),_0x46b111,JSON[_0x1746('0x62')](_0x38616d));process['send']('start');var _0x513e23=_0x38616d[_0x1746('0x63')];var _0x464031=_[_0x1746('0x64')](_0x513e23);var _0x1eb804=_0x38616d['socket_timestamp'];var _0x283ad4=path['join'](config[_0x1746('0x65')],_0x1746('0x66'),_0x1eb804+_0x1746('0x67'));logger['info'](_0x1746('0x68'),_0x38616d);db[_0x1746('0x69')][_0x1746('0x6a')]({'raw':!![],'attributes':['id','name']})[_0x1746('0x27')](function(_0x4d4461){for(var _0x11276a=0x0;_0x11276a<_0x4d4461['length'];_0x11276a++){if(_0x4d4461[_0x11276a][_0x1746('0x6b')]in _0x513e23){contactItemTypes[_0x1746('0x20')](_0x4d4461[_0x11276a]);delete _0x464031[_0x4d4461[_0x11276a][_0x1746('0x6b')]];hasAdditionalPhones=!![];}for(var _0x1e7ebd in _0x513e23){if(_0x4d4461[_0x11276a][_0x1746('0x6b')]+'_description'===_0x1e7ebd){phoneDescriptions[_0x1746('0x20')]({'itemTypeId':_0x4d4461[_0x11276a]['id'],'description':_0x1e7ebd});delete _0x464031[_0x1e7ebd];}}}if(hasAdditionalPhones)_0x464031['AdditionalPhones']='';var _0x3bd692=_[_0x1746('0x58')](_0x464031)[_0x1746('0x14')]();logger[_0x1746('0x5c')](_0x1746('0x6c'),_0x3bd692);fs[_0x1746('0x6d')](_0x283ad4,_0x3bd692+'\x0a');Papa[_0x1746('0x6e')](fs['createReadStream'](_0x46b111),{'header':!![],'skipEmptyLines':!![],'step':function(_0x376bf0,_0x353336){try{for(var _0x797f0f=0x0,_0x221782=[];_0x797f0f<_0x376bf0[_0x1746('0x6f')][_0x1746('0x1d')];_0x797f0f++){stats[_0x1746('0x70')]+=0x1;if(_0x376bf0[_0x1746('0x5f')][_0x797f0f]){handleError(_0x376bf0[_0x1746('0x6f')][_0x797f0f],_0x376bf0[_0x1746('0x5f')][_0x797f0f]);}else{var _0x145c23=[];var _0x5dcba9=[];var _0x3bf108={};for(var _0x380c35 in _0x513e23){let _0x30ae67=contactItemTypes[_0x1746('0x71')](_0x70ca60=>_0x70ca60[_0x1746('0x6b')]===_0x380c35);let _0x3a6916=contactItemTypes[_0x1746('0x71')](_0x2f3688=>_0x2f3688[_0x1746('0x6b')]+_0x1746('0x72')===_0x380c35);if(_['isNil'](_0x30ae67)&&_['isNil'](_0x3a6916)){if(_0x513e23['hasOwnProperty'](_0x380c35)){if(_0x376bf0[_0x1746('0x6f')][_0x797f0f][_0x513e23[_0x380c35]]){var _0x14f8bb=_[_0x1746('0x73')](_0x376bf0[_0x1746('0x6f')][_0x797f0f][_0x513e23[_0x380c35]][_0x1746('0x74')](/"/g,'\x27'));switch(_0x380c35){case _0x1746('0x39'):var _0x4ecc2c=moment(_0x14f8bb,_0x1746('0x75'),!![]);if(_0x4ecc2c['isValid']()){_0x221782[_0x1746('0x20')]('\x22'+_0x14f8bb+'\x22');}else{_0x145c23[_0x1746('0x20')]('scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)');}break;case'priority':var _0x520e2a=parseInt(_0x14f8bb);_0x14f8bb=_[_0x1746('0x76')](_0x520e2a)||_0x520e2a<0x0||_0x520e2a>0x4?_0x1d0de6?0x3:0x2:_0x520e2a;_0x221782[_0x1746('0x20')]('\x22'+_0x14f8bb+'\x22');break;case _0x1746('0x3e'):var _0x41bcb1=parseInt(_0x14f8bb);if(_[_0x1746('0x77')](_0x41bcb1)&&_['includes'](_0x3b591a,_0x41bcb1)){_0x221782[_0x1746('0x20')]('\x22'+_0x41bcb1+'\x22');}else{_0x145c23[_0x1746('0x20')](_0x1746('0x78'));}break;case _0x1746('0x79'):if(isEmail(_0x14f8bb)){_0x221782[_0x1746('0x20')]('\x22'+_0x14f8bb+'\x22');}else{_0x145c23['push'](_0x1746('0x7a'));}break;case _0x1746('0x7b'):var _0x219ac5=moment(_0x14f8bb,'YYYY-MM-DD',!![]);if(_0x219ac5[_0x1746('0x7c')]()){_0x221782[_0x1746('0x20')]('\x22'+_0x14f8bb+'\x22');}else{_0x145c23['push']('dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)');}break;default:_0x221782[_0x1746('0x20')]('\x22'+_0x14f8bb+'\x22');}}else{switch(_0x380c35){case _0x1746('0x7d'):case _0x1746('0x12'):_0x145c23[_0x1746('0x20')](_0x380c35+_0x1746('0x7e'));break;default:_0x221782[_0x1746('0x20')]('\x22\x22');}}}}else{var _0x78dc='';if(!_[_0x1746('0x1e')](_0x30ae67)){if(!_0x3bf108[_0x1746('0x7f')](_0x30ae67['id'])){for(var _0x336b84=0x0;_0x336b84<_0x513e23[_0x380c35][_0x1746('0x1d')];_0x336b84++){var _0x14f8bb=_[_0x1746('0x73')](_0x376bf0[_0x1746('0x6f')][_0x797f0f][_0x513e23[_0x380c35][_0x336b84]][_0x1746('0x74')](/"/g,'\x27'));var _0x3a2720=phoneDescriptions['find'](_0x2ccc65=>_0x2ccc65['itemTypeId']===_0x30ae67['id']);if(!_[_0x1746('0x1e')](_0x3a2720)){var _0x16b3c6=_[_0x1746('0x73')](_0x376bf0['data'][_0x797f0f][_0x513e23[_0x3a2720[_0x1746('0x80')]][0x0]][_0x1746('0x74')](/"/g,'\x27'));if(!_[_0x1746('0x1e')](_0x16b3c6))_0x14f8bb=_0x14f8bb+'§'+_0x16b3c6;}if(_0x78dc=='')_0x78dc=_0x14f8bb;else _0x78dc+='|'+_0x14f8bb;}_0x5dcba9[_0x1746('0x20')](_0x30ae67['id']+':'+_0x78dc);_0x3bf108[_0x30ae67['id']]=0x1;}}}}if(hasAdditionalPhones){_0x221782['push']('\x22'+_0x5dcba9[_0x1746('0x14')](';')+'\x22');}if(_0x145c23[_0x1746('0x1d')]){handleError(_0x376bf0['data'][_0x797f0f],{'code':_0x1746('0x81'),'message':_0x145c23[_0x1746('0x14')]()});}else{fs[_0x1746('0x82')](_0x283ad4,_0x221782[_0x1746('0x14')]()+'\x0a');}_0x221782=[];}if(!(stats[_0x1746('0x70')]%0xc8)){socket['emit'](_0x1746('0x83')+_0x1eb804,stats);stats['errors']=[];}}if(stopped){logger[_0x1746('0x5c')](_0x1746('0x84'));_0x353336['abort']();}}catch(_0xed7bf9){handleError(_0x376bf0[_0x1746('0x6f')][_0x797f0f],{'code':_0x1746('0x85'),'message':_0xed7bf9[_0x1746('0x24')]});logger[_0x1746('0x23')](_0x1746('0x86'),_0xed7bf9['message']);}},'complete':function(){try{var _0x1f7b34=[];var _0x4b1c19=tempTableName;_0x1f7b34[_0x1746('0x20')](_0x1746('0x87')+_0x4b1c19+'\x20LIKE\x20cm_contacts;');logger['info']('CIS\x20len',contactItemTypes['length']);var _0x3f35e1=util[_0x1746('0xc')]('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\x20ListId\x20=\x20%s,\x20CompanyId\x20=\x20%s,\x20createdAt\x20=\x20\x27%s\x27,\x20updatedAt\x20=\x20\x27%s\x27',_0x283ad4,_0x4b1c19,_0x3bd692,_0x38616d[_0x1746('0x3b')],_0x38616d[_0x1746('0x88')]||null,NOW,NOW);if(_[_0x1746('0x1e')](_0x513e23[_0x1746('0x39')])){_0x3f35e1+=',\x20scheduledAt\x20=\x20NOW()';}_0x1f7b34[_0x1746('0x20')](_0x3f35e1);BPromise[_0x1746('0x89')](_0x1f7b34,handleQuery)[_0x1746('0x27')](function(_0x176225){BPromise['all']([handleAdditionalPhones()])[_0x1746('0x27')](function(){_0x1f7b34=[];for(var _0x43a1f9=0x0;_0x43a1f9<promisesContact['length'];_0x43a1f9++){_0x1f7b34[_0x1746('0x20')](updateContact(promisesContact[_0x43a1f9][_0x1746('0x8a')]));}BPromise[_0x1746('0x21')](_0x1f7b34)['then'](function(){_0x1f7b34=[];for(var _0x59a986=0x0;_0x59a986<promisesAdditionalPhones['length'];_0x59a986++){_0x1f7b34[_0x1746('0x20')](createAdditionalPhone(promisesAdditionalPhones[_0x59a986][_0x1746('0x8b')],promisesAdditionalPhones[_0x59a986][_0x1746('0x8c')],promisesAdditionalPhones[_0x59a986][_0x1746('0x12')],promisesAdditionalPhones[_0x59a986][_0x1746('0x8d')]));}BPromise[_0x1746('0x21')](_0x1f7b34)['then'](function(){_0x1f7b34=[];_0x1f7b34['push'](insertCmHopperAdditionalPhones(_0x38616d[_0x1746('0x3b')]));_0x1f7b34[_0x1746('0x20')](_0x1746('0x8e')+_0x4b1c19+';');BPromise['each'](_0x1f7b34,handleQuery)['then'](function(_0x5d7d78){stats[_0x1746('0x8f')]=!![];stats['affectedRows']=updatedRows;socket[_0x1746('0x90')](_0x1746('0x83')+_0x1eb804,stats);fs[_0x1746('0x91')](_0x46b111);fs['unlink'](_0x283ad4);process[_0x1746('0x5e')](0x0);})[_0x1746('0x22')](function(_0x203017){logger[_0x1746('0x23')](_0x203017[_0x1746('0x24')]);process['exit'](0x1);});});});});})[_0x1746('0x22')](function(_0x583731){logger[_0x1746('0x23')](_0x583731[_0x1746('0x24')]);process[_0x1746('0x5e')](0x1);});}catch(_0x22f0eb){logger[_0x1746('0x23')](_0x1746('0x92'),_0x22f0eb[_0x1746('0x24')]);process['exit'](0x1);}},'error':function(_0x174c93,_0x144277,_0x13cc25,_0x5f097b){throw new Error(_0x5f097b);}});});}function validate(){if(process[_0x1746('0x93')]&&process['argv'][_0x1746('0x1d')]<0x4){throw new Error(_0x1746('0x94'));}var _0x3568d7=path[_0x1746('0x14')](config[_0x1746('0x65')],_0x1746('0x66'),process['argv'][0x2]);if(!fs[_0x1746('0x95')](_0x3568d7)){throw new Error(_0x1746('0x96'));}var _0x5c5828={};try{_0x5c5828=JSON['parse'](process[_0x1746('0x93')][0x3]);if(!_0x5c5828[_0x1746('0x63')]){throw new Error(_0x1746('0x97'));}var _0xbaba90=0x0;if(_0x5c5828[_0x1746('0x63')][_0x1746('0x3e')]){_0xbaba90=0x1;}if(!_0x5c5828[_0x1746('0x3b')]){throw new Error(_0x1746('0x98'));}}catch(_0x4efbed){throw new Error(_0x1746('0x99'));}var _0x505ac7=[];try{_0x505ac7=_['map'](JSON[_0x1746('0x6e')](process[_0x1746('0x93')][0x4]),'id');}catch(_0x5dfa9d){logger[_0x1746('0x5c')](_0x1746('0x9a'));}main(_0x3568d7,_0x5c5828,_0x505ac7,_0xbaba90);}validate();process['on'](_0x1746('0x9b'),handleStop);process['on'](_0x1746('0x9c'),handleUncaughtException);