7b563c63f066b38e858a609629092b67f42b397d
[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 _0x8aac=['cm_contacts.id','cm_contacts.ListId','cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.priority','cm_contacts.UserId','fromQuery','ContactId','ListId','priority','UserId','recallme','fields','cm_contacts.ListId\x20=\x20','.CmListId','.CmListId\x20=\x20?','cm_contacts.createdAt\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','cm_hopper','\x22always\x22','toString','cm_contacts.phone','insert','cm_hopper_black','updatedAt','cm_contacts','ListId\x20=\x20?','\x20=\x20?','cm_hopper.id','cm_contact_has_items.item','cm_contact_has_items.OrderBy','cm_contact_has_items.updatedAt','into','cm_hopper_additional_phones','CmHopperId','createdAt','cm_contacts.id\x20=\x20cm_hopper.ContactId','cm_contact_has_items','cm_hopper.ListId\x20=\x20?','concat','keys','CompanyId',')\x20NOT\x20IN\x20?','id\x20IN\x20?','min_id','group','info','Received\x20SIGINT','message','errors','query','send','binding','clone','socket_timestamp','root','server/files/tmp','body','findAll','name','header','writeFileSync','createReadStream','rows','data','hasOwnProperty','trim','replace','YYYY-MM-DD\x20HH:mm:ss','isValid','isNaN','isNumber','agent\x20not\x20exists','email','email\x20wrong\x20format','dateOfBirth','YYYY-MM-DD','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','\x20not\x20specified','SystemRow','appendFileSync','emit','contact:import:','Abort\x20parser','abort','SystemError','step','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','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','scheduledat',',\x20scheduledAt\x20=\x20NOW()','each','contactTypeId','orderBy','affectedRows','unlink','exit','complete','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','existsSync','file\x20doesn\x27t\x20exists','parse','binding\x20doesn\x27t\x20exists','body\x20id\x20mandatory','No\x20agent\x20available','SIGINT','path','lodash','papaparse','util','bluebird','moment','../../../mysqldb','../../../config/environment','defaults','localhost','redis','format','cm_contacts_temp_','test','select','field','from','.id\x20=\x20','where','\x20=\x20','.dialCheckDuplicateType\x20IN\x20(','join','sequelize','select\x20*\x20from\x20','spread','length','isNil','phone','AdditionalPhones','push','all','then','catch','error','split','filter','findOne','update','CmContactHasItem','create','PHONE','inserted','CmContact','CmHopper','cm_contacts.scheduledat'];(function(_0x468985,_0x44c060){var _0x1855d4=function(_0x148af8){while(--_0x148af8){_0x468985['push'](_0x468985['shift']());}};_0x1855d4(++_0x44c060);}(_0x8aac,0x6c));var _0xc8aa=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8aac[_0x3dd15e];return _0x231fd0;};'use strict';var fs=require('fs');var path=require(_0xc8aa('0x0'));var _=require(_0xc8aa('0x1'));var Papa=require(_0xc8aa('0x2'));var util=require(_0xc8aa('0x3'));var BPromise=require(_0xc8aa('0x4'));var moment=require(_0xc8aa('0x5'));var squel=require('squel');var Redis=require('ioredis');var db=require(_0xc8aa('0x6'))['db'];var config=require(_0xc8aa('0x7'));var logger=require('../../../config/logger')('import');config['redis']=_[_0xc8aa('0x8')](config['redis'],{'host':_0xc8aa('0x9'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc8aa('0xa')]));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()[_0xc8aa('0xb')]('YYYY-MM-DD\x20HH:mm:ss');var tempTableName=_0xc8aa('0xc')+moment()['format']('YYYYMMDDHHmmss');var contactItemTypes=[];var hasAdditionalPhones=![];function isEmail(_0x5b813b){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))*$/[_0xc8aa('0xd')](_0x5b813b);}function selectNotIn(_0x2c3054,_0x2c6bb5,_0x5721be,_0x443f4c,_0x486d4f){return squel[_0xc8aa('0xe')]()[_0xc8aa('0xf')]('phone')[_0xc8aa('0x10')](_0x443f4c)['join'](_0x2c6bb5,null,_0x2c6bb5+_0xc8aa('0x11')+_0x443f4c+'.'+_0x5721be)[_0xc8aa('0x12')](_0x443f4c+'.'+_0x5721be+_0xc8aa('0x13')+_0x2c3054+'.'+_0x5721be)[_0xc8aa('0x12')](_0x2c6bb5+_0xc8aa('0x14')+_0x486d4f[_0xc8aa('0x15')]()+')');}function handleAdditionalPhones(){return new Promise(function(_0xb4ad1f,_0x33bb31){promisesAdditionalPhones=[];promisesContact=[];return db[_0xc8aa('0x16')]['query'](_0xc8aa('0x17')+tempTableName)[_0xc8aa('0x18')](function(_0x322011){if(_0x322011!==null){var _0xef6045=[];for(var _0x14ade7=0x0;_0x14ade7<_0x322011[_0xc8aa('0x19')];_0x14ade7++){var _0x55ff94=_0x322011[_0x14ade7];if(!_[_0xc8aa('0x1a')](_0x55ff94[_0xc8aa('0x1b')])){if(!_[_0xc8aa('0x1a')](_0x55ff94[_0xc8aa('0x1c')]))_0xef6045[_0xc8aa('0x1d')](insertAdditionalPhones(_0x55ff94));promisesContact['push']({'contact':_0x55ff94});}}}Promise[_0xc8aa('0x1e')](_0xef6045)[_0xc8aa('0x1f')](function(){_0xb4ad1f({'val':0x1});});})[_0xc8aa('0x20')](function(_0x35c4bc){logger[_0xc8aa('0x21')](_0x35c4bc['message']);});});}function insertAdditionalPhones(_0x563ad7){return new Promise(function(_0x4e0abe,_0x290c5c){var _0x4ab4e8=_0x563ad7['AdditionalPhones'];if(_[_0xc8aa('0x1a')](_0x4ab4e8))_0x290c5c({'val':0x0});else{var _0x31a629=_0x4ab4e8['split'](';');var _0x186c95=[];orderBy=0x0;for(var _0x37f782=0x0;_0x37f782<_0x31a629['length'];_0x37f782++){_0x186c95[_0xc8aa('0x1d')](splitAdditionalPhone(_0x563ad7['id'],_0x31a629[_0x37f782]));}Promise[_0xc8aa('0x1e')](_0x186c95)[_0xc8aa('0x1f')](function(){_0x4e0abe({'val':_0x31a629[_0xc8aa('0x19')]});});}});}function splitAdditionalPhone(_0x42d3c7,_0x1fd677){return new Promise(function(_0x48a884,_0x539ab0){var _0x9856eb=_0x1fd677[_0xc8aa('0x22')](':');var _0x262a9b=_0x9856eb[0x0];var _0x49dce4=_0x9856eb[0x1];if(_0x49dce4!==''){var _0x56e89a=_0x49dce4[_0xc8aa('0x22')]('|');var _0x31bfc1=[];for(var _0x22a807=0x0;_0x22a807<_0x56e89a['length'];_0x22a807++){if(_0x56e89a[_0x22a807]!==''){var _0x4c7048=_[_0xc8aa('0x23')](promisesAdditionalPhones,{'contactId':_0x42d3c7,'phone':_0x56e89a[_0x22a807]});if(_0x4c7048[_0xc8aa('0x19')]==0x0){orderBy++;promisesAdditionalPhones[_0xc8aa('0x1d')]({'contactId':_0x42d3c7,'contactTypeId':_0x262a9b,'phone':_0x56e89a[_0x22a807],'orderBy':orderBy});}}}_0x48a884({'ok':0x1});}else _0x48a884({'res':0x0});});}function createAdditionalPhone(_0x15e365,_0xb8cb6f,_0xe1c2d8,_0x45464b){return new Promise(function(_0x3333fc,_0x570265){return db['CmContactHasItem'][_0xc8aa('0x24')]({'where':{'CmContactId':_0x15e365,'item':_0xe1c2d8}})['then'](function(_0x29af41){if(_0x29af41){return db['CmContactHasItem'][_0xc8aa('0x25')]({'ItemTypeId':_0xb8cb6f,'OrderBy':_0x45464b},{'where':{'CmContactId':_0x15e365,'item':_0xe1c2d8}})['then'](function(_0x3cf68d){_0x3333fc({'res':'updated'});});}else{return db[_0xc8aa('0x26')][_0xc8aa('0x27')]({'CmContactId':_0x15e365,'item':_0xe1c2d8,'ItemTypeId':_0xb8cb6f,'OrderBy':_0x45464b,'ItemClass':_0xc8aa('0x28')})[_0xc8aa('0x1f')](function(_0x3cb109){_0x3333fc({'res':_0xc8aa('0x29')});});}});});}function updateContact(_0x2b383d){return new Promise(function(_0x3c57d1,_0x1e985e){var _0x566070=_0x2b383d['id'];delete _0x2b383d['id'];return db[_0xc8aa('0x2a')][_0xc8aa('0x25')](_0x2b383d,{'where':{'id':_0x566070}})[_0xc8aa('0x1f')](function(_0x5a0caf){updatedRows+=0x1;return db[_0xc8aa('0x2b')][_0xc8aa('0x25')]({'phone':_0x2b383d[_0xc8aa('0x1b')]},{'where':{'ContactId':_0x566070}})[_0xc8aa('0x1f')](function(_0x11ac68){_0x3c57d1({'ret':'OK'});});});});}function insertCmHopper(_0x47682c,_0x32a9bc,_0x17717b,_0x29c694,_0x4bade3){var _0x1afcf6=['cm_contacts.phone',_0xc8aa('0x2c'),_0xc8aa('0x2d'),_0xc8aa('0x2e'),_0x32a9bc+'.'+_0x29c694,_0xc8aa('0x2f'),_0xc8aa('0x30'),_0xc8aa('0x31'),_0xc8aa('0x32'),'\x22'+_0x4bade3+'\x22'];return squel['insert']()['into']('cm_hopper')[_0xc8aa('0x33')]([_0xc8aa('0x1b'),'scheduledat',_0xc8aa('0x34'),_0xc8aa('0x35'),_0x29c694,'createdAt','updatedAt',_0xc8aa('0x36'),_0xc8aa('0x37'),_0xc8aa('0x38')],squel[_0xc8aa('0xe')]()[_0xc8aa('0x39')](_0x1afcf6)[_0xc8aa('0x10')](_0x32a9bc)['join']('cm_contacts',null,_0xc8aa('0x3a')+_0x32a9bc+_0xc8aa('0x3b'))[_0xc8aa('0x15')](_0x17717b,null,_0x17717b+_0xc8aa('0x11')+_0x32a9bc+'.'+_0x29c694)[_0xc8aa('0x12')](_0x32a9bc+_0xc8aa('0x3c'),_0x47682c)[_0xc8aa('0x12')](_0xc8aa('0x3d'),NOW)[_0xc8aa('0x12')](_0xc8aa('0x3e'),selectNotIn(_0x32a9bc,_0x17717b,_0x29c694,_0xc8aa('0x3f'),[_0xc8aa('0x40'),'\x22onlyIfOpen\x22']))['where'](_0xc8aa('0x3e'),selectNotIn(_0x32a9bc,_0x17717b,_0x29c694,_0xc8aa('0x3f'),[_0xc8aa('0x40')])))[_0xc8aa('0x41')]();}function insertCmHopperBlack(_0x50e6a5,_0x474f7e,_0x34deaa,_0x20019e){var _0x397f21=[_0xc8aa('0x42'),_0xc8aa('0x2d'),_0xc8aa('0x2e'),_0x474f7e+'.'+_0x20019e,_0xc8aa('0x2f'),_0xc8aa('0x30')];return squel[_0xc8aa('0x43')]()['into'](_0xc8aa('0x44'))['fromQuery']([_0xc8aa('0x1b'),_0xc8aa('0x34'),_0xc8aa('0x35'),_0x20019e,'createdAt',_0xc8aa('0x45')],squel['select']()['fields'](_0x397f21)[_0xc8aa('0x10')](_0x474f7e)['join'](_0xc8aa('0x46'),null,_0xc8aa('0x3a')+_0x474f7e+_0xc8aa('0x3b'))['join'](_0x34deaa,null,_0x34deaa+'.id\x20=\x20'+_0x474f7e+'.'+_0x20019e)['where'](_0x474f7e+_0xc8aa('0x3c'),_0x50e6a5)[_0xc8aa('0x12')](_0xc8aa('0x3d'),NOW)[_0xc8aa('0x12')](_0xc8aa('0x3e'),squel['select']()[_0xc8aa('0xf')](_0xc8aa('0x1b'))['from'](_0xc8aa('0x44'))['where'](_0xc8aa('0x47'),_0x50e6a5)[_0xc8aa('0x12')](_0x20019e+_0xc8aa('0x48'),_0x474f7e+'.'+_0x20019e)))[_0xc8aa('0x41')]();}function insertCmHopperAdditionalPhones(_0x547ae9){var _0x1e0897=[_0xc8aa('0x49'),_0xc8aa('0x4a'),_0xc8aa('0x4b'),'cm_contact_has_items.createdAt',_0xc8aa('0x4c')];return squel['insert']()[_0xc8aa('0x4d')](_0xc8aa('0x4e'))['fromQuery']([_0xc8aa('0x4f'),_0xc8aa('0x1b'),'OrderBy',_0xc8aa('0x50'),_0xc8aa('0x45')],squel[_0xc8aa('0xe')]()[_0xc8aa('0x39')](_0x1e0897)[_0xc8aa('0x10')](_0xc8aa('0x3f'))[_0xc8aa('0x15')](_0xc8aa('0x46'),null,_0xc8aa('0x51'))[_0xc8aa('0x15')](_0xc8aa('0x52'),null,'cm_contacts.id\x20=\x20cm_contact_has_items.CmContactId')[_0xc8aa('0x12')](_0xc8aa('0x53'),_0x547ae9)[_0xc8aa('0x12')](_0xc8aa('0x3d'),NOW))[_0xc8aa('0x41')]();}function insertCmContact(_0x4347a2,_0x48f0f2,_0x5f418f,_0x595c24){var _0x5d9f57=_[_0xc8aa('0x54')](_[_0xc8aa('0x55')](_0x595c24),[_0xc8aa('0x35'),_0xc8aa('0x56'),'createdAt',_0xc8aa('0x45')]);return squel[_0xc8aa('0x43')]()[_0xc8aa('0x4d')](_0xc8aa('0x46'))[_0xc8aa('0x33')](_0x5d9f57,squel[_0xc8aa('0xe')]()[_0xc8aa('0x39')](_0x5d9f57)[_0xc8aa('0x10')](_0x48f0f2)['where']('('+_0x5f418f['join'](',')+_0xc8aa('0x57'),squel[_0xc8aa('0xe')]()[_0xc8aa('0x39')](_0x5f418f)[_0xc8aa('0x10')](_0xc8aa('0x46'))['where'](_0xc8aa('0x47'),_0x4347a2))['where'](_0xc8aa('0x58'),squel[_0xc8aa('0xe')]()['field']('MIN(id)',_0xc8aa('0x59'))['from'](_0x48f0f2)[_0xc8aa('0x5a')](_0x5f418f[_0xc8aa('0x15')](','))))['toString']();}function handleStop(){logger[_0xc8aa('0x5b')](_0xc8aa('0x5c'));stopped=!![];}function handleUncaughtException(_0x573bbe){logger['error'](_0x573bbe[_0xc8aa('0x5d')]);process['exit'](0x1);}function handleError(_0x3b6ab5,_0x1519a7){stats[_0xc8aa('0x5e')][_0xc8aa('0x1d')]({'name':_0x1519a7['code'],'message':_0x1519a7[_0xc8aa('0x5d')],'row':_0x3b6ab5});}function handleQuery(_0x3b0c53){logger[_0xc8aa('0x5b')](_0x3b0c53);return db[_0xc8aa('0x16')][_0xc8aa('0x5f')](_0x3b0c53)[_0xc8aa('0x18')](function(_0x504076){results[_0xc8aa('0x1d')](_0x504076);})[_0xc8aa('0x20')](function(_0xa991ac){logger[_0xc8aa('0x21')](_0xa991ac['message']);});}function main(_0x204b08,_0x475169,_0x1c5091,_0x4addb2){logger['info']('main',_0x204b08,JSON['stringify'](_0x475169));process[_0xc8aa('0x60')]('start');var _0x3ce4e7=_0x475169[_0xc8aa('0x61')];var _0x40d6c4=_[_0xc8aa('0x62')](_0x3ce4e7);var _0x4a7aa8=_0x475169[_0xc8aa('0x63')];var _0x2c6679=path[_0xc8aa('0x15')](config[_0xc8aa('0x64')],_0xc8aa('0x65'),_0x4a7aa8+'.csv');logger[_0xc8aa('0x5b')](_0xc8aa('0x66'),_0x475169);db['ContactItemType'][_0xc8aa('0x67')]({'raw':!![],'attributes':['id',_0xc8aa('0x68')]})[_0xc8aa('0x1f')](function(_0x18e2e3){for(var _0x55e3c8=0x0;_0x55e3c8<_0x18e2e3[_0xc8aa('0x19')];_0x55e3c8++){if(_0x18e2e3[_0x55e3c8][_0xc8aa('0x68')]in _0x3ce4e7){contactItemTypes['push'](_0x18e2e3[_0x55e3c8]);delete _0x40d6c4[_0x18e2e3[_0x55e3c8][_0xc8aa('0x68')]];hasAdditionalPhones=!![];}else{}}if(hasAdditionalPhones)_0x40d6c4[_0xc8aa('0x1c')]='';var _0x23a43e=_[_0xc8aa('0x55')](_0x40d6c4)[_0xc8aa('0x15')]();logger[_0xc8aa('0x5b')](_0xc8aa('0x69'),_0x23a43e);fs[_0xc8aa('0x6a')](_0x2c6679,_0x23a43e+'\x0a');Papa['parse'](fs[_0xc8aa('0x6b')](_0x204b08),{'header':!![],'skipEmptyLines':!![],'step':function(_0x13f414,_0x196ed3){try{for(var _0x238414=0x0,_0x445b10=[];_0x238414<_0x13f414['data'][_0xc8aa('0x19')];_0x238414++){stats[_0xc8aa('0x6c')]+=0x1;if(_0x13f414[_0xc8aa('0x5e')][_0x238414]){handleError(_0x13f414[_0xc8aa('0x6d')][_0x238414],_0x13f414['errors'][_0x238414]);}else{var _0x381285=[];var _0x396b4b=[];for(var _0x1e4665 in _0x3ce4e7){let _0x4ca5de=contactItemTypes['find'](_0x4ce319=>_0x4ce319[_0xc8aa('0x68')]===_0x1e4665);if(_['isNil'](_0x4ca5de)){if(_0x3ce4e7[_0xc8aa('0x6e')](_0x1e4665)){if(_0x13f414[_0xc8aa('0x6d')][_0x238414][_0x3ce4e7[_0x1e4665]]){var _0x1fddc1=_[_0xc8aa('0x6f')](_0x13f414[_0xc8aa('0x6d')][_0x238414][_0x3ce4e7[_0x1e4665]][_0xc8aa('0x70')](/"/g,'\x27'));switch(_0x1e4665){case'scheduledat':var _0x137ce1=moment(_0x1fddc1,_0xc8aa('0x71'),!![]);if(_0x137ce1[_0xc8aa('0x72')]()){_0x445b10[_0xc8aa('0x1d')]('\x22'+_0x1fddc1+'\x22');}else{_0x381285[_0xc8aa('0x1d')]('scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)');}break;case'priority':var _0x2c0c3=parseInt(_0x1fddc1);_0x1fddc1=_[_0xc8aa('0x73')](_0x2c0c3)||_0x2c0c3<0x0||_0x2c0c3>0x4?_0x4addb2?0x3:0x2:_0x2c0c3;_0x445b10[_0xc8aa('0x1d')]('\x22'+_0x1fddc1+'\x22');break;case'UserId':var _0x55120a=parseInt(_0x1fddc1);if(_[_0xc8aa('0x74')](_0x55120a)&&_['includes'](_0x1c5091,_0x55120a)){_0x445b10[_0xc8aa('0x1d')]('\x22'+_0x55120a+'\x22');}else{_0x381285['push'](_0xc8aa('0x75'));}break;case _0xc8aa('0x76'):if(isEmail(_0x1fddc1)){_0x445b10[_0xc8aa('0x1d')]('\x22'+_0x1fddc1+'\x22');}else{_0x381285[_0xc8aa('0x1d')](_0xc8aa('0x77'));}break;case _0xc8aa('0x78'):var _0x2971a2=moment(_0x1fddc1,_0xc8aa('0x79'),!![]);if(_0x2971a2[_0xc8aa('0x72')]()){_0x445b10['push']('\x22'+_0x1fddc1+'\x22');}else{_0x381285['push'](_0xc8aa('0x7a'));}break;default:_0x445b10[_0xc8aa('0x1d')]('\x22'+_0x1fddc1+'\x22');}}else{switch(_0x1e4665){case'firstName':case _0xc8aa('0x1b'):_0x381285['push'](_0x1e4665+_0xc8aa('0x7b'));break;default:_0x445b10[_0xc8aa('0x1d')]('\x22\x22');}}}}else{var _0x367fd6='';for(var _0x369b42=0x0;_0x369b42<_0x3ce4e7[_0x1e4665][_0xc8aa('0x19')];_0x369b42++){var _0x1fddc1=_[_0xc8aa('0x6f')](_0x13f414[_0xc8aa('0x6d')][_0x238414][_0x3ce4e7[_0x1e4665][_0x369b42]]['replace'](/"/g,'\x27'));if(_0x367fd6=='')_0x367fd6=_0x1fddc1;else _0x367fd6+='|'+_0x1fddc1;}_0x396b4b[_0xc8aa('0x1d')](_0x4ca5de['id']+':'+_0x367fd6);}}if(hasAdditionalPhones){_0x445b10[_0xc8aa('0x1d')]('\x22'+_0x396b4b[_0xc8aa('0x15')](';')+'\x22');}if(_0x381285[_0xc8aa('0x19')]){handleError(_0x13f414[_0xc8aa('0x6d')][_0x238414],{'code':_0xc8aa('0x7c'),'message':_0x381285[_0xc8aa('0x15')]()});}else{fs[_0xc8aa('0x7d')](_0x2c6679,_0x445b10[_0xc8aa('0x15')]()+'\x0a');}_0x445b10=[];}if(!(stats[_0xc8aa('0x6c')]%0xc8)){socket[_0xc8aa('0x7e')](_0xc8aa('0x7f')+_0x4a7aa8,stats);stats[_0xc8aa('0x5e')]=[];}}if(stopped){logger[_0xc8aa('0x5b')](_0xc8aa('0x80'));_0x196ed3[_0xc8aa('0x81')]();}}catch(_0x2bec96){handleError(_0x13f414[_0xc8aa('0x6d')][_0x238414],{'code':_0xc8aa('0x82'),'message':_0x2bec96[_0xc8aa('0x5d')]});logger[_0xc8aa('0x21')](_0xc8aa('0x83'),_0x2bec96[_0xc8aa('0x5d')]);}},'complete':function(){try{var _0x2a891e=[];var _0x1fa4fc=tempTableName;_0x2a891e[_0xc8aa('0x1d')](_0xc8aa('0x84')+_0x1fa4fc+_0xc8aa('0x85'));logger[_0xc8aa('0x5b')]('CIS\x20len',contactItemTypes['length']);var _0x45e34d=util['format'](_0xc8aa('0x86'),_0x2c6679,_0x1fa4fc,_0x23a43e,_0x475169[_0xc8aa('0x35')],_0x475169[_0xc8aa('0x56')]||null,NOW,NOW);if(_['isNil'](_0x3ce4e7[_0xc8aa('0x87')])){_0x45e34d+=_0xc8aa('0x88');}_0x2a891e[_0xc8aa('0x1d')](_0x45e34d);BPromise[_0xc8aa('0x89')](_0x2a891e,handleQuery)[_0xc8aa('0x1f')](function(_0x4a3480){BPromise[_0xc8aa('0x1e')]([handleAdditionalPhones()])[_0xc8aa('0x1f')](function(){_0x2a891e=[];for(var _0x5aba44=0x0;_0x5aba44<promisesContact[_0xc8aa('0x19')];_0x5aba44++){_0x2a891e['push'](updateContact(promisesContact[_0x5aba44]['contact']));}BPromise[_0xc8aa('0x1e')](_0x2a891e)[_0xc8aa('0x1f')](function(){_0x2a891e=[];for(var _0x24debf=0x0;_0x24debf<promisesAdditionalPhones[_0xc8aa('0x19')];_0x24debf++){_0x2a891e[_0xc8aa('0x1d')](createAdditionalPhone(promisesAdditionalPhones[_0x24debf]['contactId'],promisesAdditionalPhones[_0x24debf][_0xc8aa('0x8a')],promisesAdditionalPhones[_0x24debf][_0xc8aa('0x1b')],promisesAdditionalPhones[_0x24debf][_0xc8aa('0x8b')]));}BPromise[_0xc8aa('0x1e')](_0x2a891e)[_0xc8aa('0x1f')](function(){_0x2a891e=[];_0x2a891e['push'](insertCmHopperAdditionalPhones(_0x475169[_0xc8aa('0x35')]));_0x2a891e[_0xc8aa('0x1d')]('DROP\x20TABLE\x20'+_0x1fa4fc+';');BPromise[_0xc8aa('0x89')](_0x2a891e,handleQuery)[_0xc8aa('0x1f')](function(_0x106e76){stats['finish']=!![];stats[_0xc8aa('0x8c')]=updatedRows;socket[_0xc8aa('0x7e')](_0xc8aa('0x7f')+_0x4a7aa8,stats);fs[_0xc8aa('0x8d')](_0x204b08);fs['unlink'](_0x2c6679);process[_0xc8aa('0x8e')](0x0);})[_0xc8aa('0x20')](function(_0x11939e){logger[_0xc8aa('0x21')](_0x11939e['message']);process[_0xc8aa('0x8e')](0x1);});});});});})[_0xc8aa('0x20')](function(_0x4b98d5){logger[_0xc8aa('0x21')](_0x4b98d5['message']);process[_0xc8aa('0x8e')](0x1);});}catch(_0x3dc119){logger['error'](_0xc8aa('0x8f'),_0x3dc119[_0xc8aa('0x5d')]);process[_0xc8aa('0x8e')](0x1);}},'error':function(_0xbce6c7,_0xe2c9dc,_0x3437ff,_0x31c06a){throw new Error(_0x31c06a);}});});}function validate(){if(process['argv']&&process[_0xc8aa('0x90')][_0xc8aa('0x19')]<0x4){throw new Error(_0xc8aa('0x91'));}var _0x5e6ade=path[_0xc8aa('0x15')](config['root'],_0xc8aa('0x65'),process[_0xc8aa('0x90')][0x2]);if(!fs[_0xc8aa('0x92')](_0x5e6ade)){throw new Error(_0xc8aa('0x93'));}var _0xcae6a8={};try{_0xcae6a8=JSON[_0xc8aa('0x94')](process[_0xc8aa('0x90')][0x3]);if(!_0xcae6a8[_0xc8aa('0x61')]){throw new Error(_0xc8aa('0x95'));}var _0x49c261=0x0;if(_0xcae6a8[_0xc8aa('0x61')][_0xc8aa('0x37')]){_0x49c261=0x1;}if(!_0xcae6a8[_0xc8aa('0x35')]){throw new Error('ListId\x20is\x20mandatory');}}catch(_0x29b339){throw new Error(_0xc8aa('0x96'));}var _0x41b1a0=[];try{_0x41b1a0=_['map'](JSON[_0xc8aa('0x94')](process[_0xc8aa('0x90')][0x4]),'id');}catch(_0x3f4a1f){logger[_0xc8aa('0x5b')](_0xc8aa('0x97'));}main(_0x5e6ade,_0xcae6a8,_0x41b1a0,_0x49c261);}validate();process['on'](_0xc8aa('0x98'),handleStop);process['on']('uncaughtException',handleUncaughtException);