7968a50fed6d79438a4995a1e592944c1462e973
[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 _0x241f=['from','join','.id\x20=\x20','where','.dialCheckDuplicateType\x20IN\x20(','sequelize','query','spread','length','isNil','AdditionalPhones','push','all','catch','message','split','then','filter','CmContactHasItem','update','updated','create','PHONE','inserted','CmHopper','cm_contacts.phone','cm_contacts.scheduledat','cm_contacts.id','cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.priority','insert','cm_hopper','scheduledat','ListId','updatedAt','UserId','recallme','cm_contacts','cm_contacts.ListId\x20=\x20','.CmListId','.CmListId\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','\x22always\x22','\x22onlyIfOpen\x22','cm_contacts.ListId','into','cm_hopper_black','fromQuery','ContactId','createdAt','fields','cm_contacts.createdAt\x20=\x20?','ListId\x20=\x20?','toString','cm_hopper.id','cm_contact_has_items.updatedAt','cm_hopper_additional_phones','cm_contacts.id\x20=\x20cm_hopper.ContactId','cm_contacts.id\x20=\x20cm_contact_has_items.CmContactId','cm_hopper.ListId\x20=\x20?','concat',')\x20NOT\x20IN\x20?','id\x20IN\x20?','MIN(id)','min_id','info','error','exit','errors','main','stringify','send','start','binding','clone','socket_timestamp','server/files/tmp','.csv','body','ContactItemType','findAll','name','_description','keys','writeFileSync','parse','createReadStream','data','rows','find','hasOwnProperty','trim','replace','isValid','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','priority','isNumber','includes','agent\x20not\x20exists','email','email\x20wrong\x20format','dateOfBirth','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','firstName','\x20not\x20specified','itemTypeId','description','SystemRow','emit','contact:import:','abort','step','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','CIS\x20len','CompanyId',',\x20scheduledAt\x20=\x20NOW()','each','contact','contactTypeId','finish','affectedRows','unlink','complete','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','root','existsSync','file\x20doesn\x27t\x20exists','binding\x20doesn\x27t\x20exists','ListId\x20is\x20mandatory','body\x20id\x20mandatory','SIGINT','uncaughtException','path','lodash','util','moment','squel','ioredis','../../../mysqldb','../../../config/environment','../../../config/logger','redis','defaults','localhost','socket.io-emitter','format','YYYY-MM-DD\x20HH:mm:ss','cm_contacts_temp_','YYYYMMDDHHmmss','test','select','field','phone'];(function(_0x408e38,_0x23cda8){var _0x426b0e=function(_0x8f2898){while(--_0x8f2898){_0x408e38['push'](_0x408e38['shift']());}};_0x426b0e(++_0x23cda8);}(_0x241f,0x123));var _0xf241=function(_0x5e6cb8,_0x16cf56){_0x5e6cb8=_0x5e6cb8-0x0;var _0x3faeb3=_0x241f[_0x5e6cb8];return _0x3faeb3;};'use strict';var fs=require('fs');var path=require(_0xf241('0x0'));var _=require(_0xf241('0x1'));var Papa=require('papaparse');var util=require(_0xf241('0x2'));var BPromise=require('bluebird');var moment=require(_0xf241('0x3'));var squel=require(_0xf241('0x4'));var Redis=require(_0xf241('0x5'));var db=require(_0xf241('0x6'))['db'];var config=require(_0xf241('0x7'));var logger=require(_0xf241('0x8'))('import');config[_0xf241('0x9')]=_[_0xf241('0xa')](config[_0xf241('0x9')],{'host':_0xf241('0xb'),'port':0x18eb});var socket=require(_0xf241('0xc'))(new Redis(config[_0xf241('0x9')]));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()[_0xf241('0xd')](_0xf241('0xe'));var tempTableName=_0xf241('0xf')+moment()[_0xf241('0xd')](_0xf241('0x10'));var contactItemTypes=[];var phoneDescriptions=[];var hasAdditionalPhones=![];function isEmail(_0x3f37d2){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))*$/[_0xf241('0x11')](_0x3f37d2);}function selectNotIn(_0x37c847,_0x535b09,_0x1163da,_0x383282,_0x3586d8){return squel[_0xf241('0x12')]()[_0xf241('0x13')](_0xf241('0x14'))[_0xf241('0x15')](_0x383282)[_0xf241('0x16')](_0x535b09,null,_0x535b09+_0xf241('0x17')+_0x383282+'.'+_0x1163da)[_0xf241('0x18')](_0x383282+'.'+_0x1163da+'\x20=\x20'+_0x37c847+'.'+_0x1163da)['where'](_0x535b09+_0xf241('0x19')+_0x3586d8[_0xf241('0x16')]()+')');}function handleAdditionalPhones(){return new Promise(function(_0x135569,_0x5ae85e){promisesAdditionalPhones=[];promisesContact=[];return db[_0xf241('0x1a')][_0xf241('0x1b')]('select\x20*\x20from\x20'+tempTableName)[_0xf241('0x1c')](function(_0x26d295){if(_0x26d295!==null){var _0x2160d0=[];for(var _0x491793=0x0;_0x491793<_0x26d295[_0xf241('0x1d')];_0x491793++){var _0x4dedef=_0x26d295[_0x491793];if(!_[_0xf241('0x1e')](_0x4dedef[_0xf241('0x14')])){if(!_['isNil'](_0x4dedef[_0xf241('0x1f')]))_0x2160d0[_0xf241('0x20')](insertAdditionalPhones(_0x4dedef));promisesContact[_0xf241('0x20')]({'contact':_0x4dedef});}}}Promise[_0xf241('0x21')](_0x2160d0)['then'](function(){_0x135569({'val':0x1});});})[_0xf241('0x22')](function(_0x316baa){logger['error'](_0x316baa[_0xf241('0x23')]);});});}function insertAdditionalPhones(_0x32db99){return new Promise(function(_0x391574,_0x599763){var _0x55b267=_0x32db99[_0xf241('0x1f')];if(_[_0xf241('0x1e')](_0x55b267))_0x599763({'val':0x0});else{var _0x54e3a2=_0x55b267[_0xf241('0x24')](';');var _0xa92627=[];orderBy=0x0;for(var _0x5c10e8=0x0;_0x5c10e8<_0x54e3a2[_0xf241('0x1d')];_0x5c10e8++){_0xa92627[_0xf241('0x20')](splitAdditionalPhone(_0x32db99['id'],_0x54e3a2[_0x5c10e8]));}Promise[_0xf241('0x21')](_0xa92627)[_0xf241('0x25')](function(){_0x391574({'val':_0x54e3a2[_0xf241('0x1d')]});});}});}function splitAdditionalPhone(_0x3ccc35,_0x256629){return new Promise(function(_0x4f598e,_0x310425){var _0x5113d6=_0x256629[_0xf241('0x24')](':');var _0x14318f=_0x5113d6[0x0];var _0x5de606=_0x5113d6[0x1];if(_0x5de606!==''){var _0x1c1159=_0x5de606['split']('|');var _0x4cd4f5=[];for(var _0x2d6945=0x0;_0x2d6945<_0x1c1159[_0xf241('0x1d')];_0x2d6945++){if(_0x1c1159[_0x2d6945]!==''){var _0x1acfcd=_[_0xf241('0x26')](promisesAdditionalPhones,{'contactId':_0x3ccc35,'phone':_0x1c1159[_0x2d6945]});if(_0x1acfcd[_0xf241('0x1d')]==0x0){orderBy++;promisesAdditionalPhones[_0xf241('0x20')]({'contactId':_0x3ccc35,'contactTypeId':_0x14318f,'phone':_0x1c1159[_0x2d6945],'orderBy':orderBy});}}}_0x4f598e({'ok':0x1});}else _0x4f598e({'res':0x0});});}function createAdditionalPhone(_0x45ad84,_0x26a13f,_0x5e934e,_0x57c7d1){var _0x283388='';var _0x420e68='';var _0x243552=_0x5e934e[_0xf241('0x24')]('§');_0x283388=_0x243552[0x0];if(_0x243552[_0xf241('0x1d')]==0x2)_0x420e68=_0x243552[0x1];return new Promise(function(_0x5b3bcb,_0x5e7176){return db['CmContactHasItem']['findOne']({'where':{'CmContactId':_0x45ad84,'item':_0x283388}})['then'](function(_0x18d4cd){if(_0x18d4cd){return db[_0xf241('0x27')][_0xf241('0x28')]({'ItemTypeId':_0x26a13f,'description':_0x420e68,'OrderBy':_0x57c7d1},{'where':{'CmContactId':_0x45ad84,'item':_0x283388}})[_0xf241('0x25')](function(_0x16fc82){_0x5b3bcb({'res':_0xf241('0x29')});});}else{return db[_0xf241('0x27')][_0xf241('0x2a')]({'CmContactId':_0x45ad84,'item':_0x283388,'ItemTypeId':_0x26a13f,'description':_0x420e68,'OrderBy':_0x57c7d1,'ItemClass':_0xf241('0x2b')})[_0xf241('0x25')](function(_0x2d28d1){_0x5b3bcb({'res':_0xf241('0x2c')});});}});});}function updateContact(_0xc2333a){return new Promise(function(_0x3669c3,_0x1a59cb){var _0x39f8ab=_0xc2333a['id'];delete _0xc2333a['id'];return db['CmContact']['update'](_0xc2333a,{'where':{'id':_0x39f8ab}})[_0xf241('0x25')](function(_0x2543d3){updatedRows+=0x1;return db[_0xf241('0x2d')][_0xf241('0x28')]({'phone':_0xc2333a[_0xf241('0x14')]},{'where':{'ContactId':_0x39f8ab}})[_0xf241('0x25')](function(_0x39e841){_0x3669c3({'ret':'OK'});});});});}function insertCmHopper(_0x3e36bd,_0x53dfcf,_0x5a1e23,_0x3018ff,_0x5755bf){var _0x1a99ae=[_0xf241('0x2e'),_0xf241('0x2f'),_0xf241('0x30'),'cm_contacts.ListId',_0x53dfcf+'.'+_0x3018ff,_0xf241('0x31'),_0xf241('0x32'),_0xf241('0x33'),'cm_contacts.UserId','\x22'+_0x5755bf+'\x22'];return squel[_0xf241('0x34')]()['into'](_0xf241('0x35'))['fromQuery']([_0xf241('0x14'),_0xf241('0x36'),'ContactId',_0xf241('0x37'),_0x3018ff,'createdAt',_0xf241('0x38'),'priority',_0xf241('0x39'),_0xf241('0x3a')],squel[_0xf241('0x12')]()['fields'](_0x1a99ae)['from'](_0x53dfcf)[_0xf241('0x16')](_0xf241('0x3b'),null,_0xf241('0x3c')+_0x53dfcf+_0xf241('0x3d'))['join'](_0x5a1e23,null,_0x5a1e23+_0xf241('0x17')+_0x53dfcf+'.'+_0x3018ff)[_0xf241('0x18')](_0x53dfcf+_0xf241('0x3e'),_0x3e36bd)['where']('cm_contacts.createdAt\x20=\x20?',NOW)[_0xf241('0x18')](_0xf241('0x3f'),selectNotIn(_0x53dfcf,_0x5a1e23,_0x3018ff,_0xf241('0x35'),[_0xf241('0x40'),_0xf241('0x41')]))[_0xf241('0x18')](_0xf241('0x3f'),selectNotIn(_0x53dfcf,_0x5a1e23,_0x3018ff,_0xf241('0x35'),[_0xf241('0x40')])))['toString']();}function insertCmHopperBlack(_0x16ba9c,_0x1d74d2,_0x2c5184,_0x5ac369){var _0x39a9b6=['cm_contacts.phone',_0xf241('0x30'),_0xf241('0x42'),_0x1d74d2+'.'+_0x5ac369,_0xf241('0x31'),_0xf241('0x32')];return squel[_0xf241('0x34')]()[_0xf241('0x43')](_0xf241('0x44'))[_0xf241('0x45')](['phone',_0xf241('0x46'),_0xf241('0x37'),_0x5ac369,_0xf241('0x47'),'updatedAt'],squel[_0xf241('0x12')]()[_0xf241('0x48')](_0x39a9b6)[_0xf241('0x15')](_0x1d74d2)[_0xf241('0x16')](_0xf241('0x3b'),null,_0xf241('0x3c')+_0x1d74d2+_0xf241('0x3d'))[_0xf241('0x16')](_0x2c5184,null,_0x2c5184+_0xf241('0x17')+_0x1d74d2+'.'+_0x5ac369)[_0xf241('0x18')](_0x1d74d2+_0xf241('0x3e'),_0x16ba9c)[_0xf241('0x18')](_0xf241('0x49'),NOW)[_0xf241('0x18')](_0xf241('0x3f'),squel[_0xf241('0x12')]()[_0xf241('0x13')](_0xf241('0x14'))['from'](_0xf241('0x44'))['where'](_0xf241('0x4a'),_0x16ba9c)[_0xf241('0x18')](_0x5ac369+'\x20=\x20?',_0x1d74d2+'.'+_0x5ac369)))[_0xf241('0x4b')]();}function insertCmHopperAdditionalPhones(_0xda1fae){var _0x43f357=[_0xf241('0x4c'),'cm_contact_has_items.item','cm_contact_has_items.OrderBy','cm_contact_has_items.createdAt',_0xf241('0x4d')];return squel[_0xf241('0x34')]()[_0xf241('0x43')](_0xf241('0x4e'))['fromQuery'](['CmHopperId',_0xf241('0x14'),'OrderBy','createdAt',_0xf241('0x38')],squel[_0xf241('0x12')]()['fields'](_0x43f357)['from'](_0xf241('0x35'))[_0xf241('0x16')](_0xf241('0x3b'),null,_0xf241('0x4f'))[_0xf241('0x16')]('cm_contact_has_items',null,_0xf241('0x50'))[_0xf241('0x18')](_0xf241('0x51'),_0xda1fae)[_0xf241('0x18')](_0xf241('0x49'),NOW))['toString']();}function insertCmContact(_0x1817d7,_0x559138,_0x56e80a,_0x5cba9c){var _0x839361=_[_0xf241('0x52')](_['keys'](_0x5cba9c),['ListId','CompanyId',_0xf241('0x47'),_0xf241('0x38')]);return squel[_0xf241('0x34')]()[_0xf241('0x43')](_0xf241('0x3b'))[_0xf241('0x45')](_0x839361,squel[_0xf241('0x12')]()['fields'](_0x839361)[_0xf241('0x15')](_0x559138)[_0xf241('0x18')]('('+_0x56e80a[_0xf241('0x16')](',')+_0xf241('0x53'),squel[_0xf241('0x12')]()[_0xf241('0x48')](_0x56e80a)['from']('cm_contacts')['where']('ListId\x20=\x20?',_0x1817d7))['where'](_0xf241('0x54'),squel[_0xf241('0x12')]()[_0xf241('0x13')](_0xf241('0x55'),_0xf241('0x56'))[_0xf241('0x15')](_0x559138)['group'](_0x56e80a[_0xf241('0x16')](','))))['toString']();}function handleStop(){logger[_0xf241('0x57')]('Received\x20SIGINT');stopped=!![];}function handleUncaughtException(_0x59cf00){logger[_0xf241('0x58')](_0x59cf00['message']);process[_0xf241('0x59')](0x1);}function handleError(_0x513e4b,_0x3cf34c){stats[_0xf241('0x5a')]['push']({'name':_0x3cf34c['code'],'message':_0x3cf34c['message'],'row':_0x513e4b});}function handleQuery(_0xfb49ae){logger[_0xf241('0x57')](_0xfb49ae);return db[_0xf241('0x1a')][_0xf241('0x1b')](_0xfb49ae)['spread'](function(_0x225ed2){results['push'](_0x225ed2);})[_0xf241('0x22')](function(_0x3bb01e){logger[_0xf241('0x58')](_0x3bb01e[_0xf241('0x23')]);});}function main(_0x24034f,_0x48f09e,_0x5e6730,_0x5f163a){logger['info'](_0xf241('0x5b'),_0x24034f,JSON[_0xf241('0x5c')](_0x48f09e));process[_0xf241('0x5d')](_0xf241('0x5e'));var _0x1d2097=_0x48f09e[_0xf241('0x5f')];var _0x4c0134=_[_0xf241('0x60')](_0x1d2097);var _0x5afbc1=_0x48f09e[_0xf241('0x61')];var _0x2243cf=path[_0xf241('0x16')](config['root'],_0xf241('0x62'),_0x5afbc1+_0xf241('0x63'));logger[_0xf241('0x57')](_0xf241('0x64'),_0x48f09e);db[_0xf241('0x65')][_0xf241('0x66')]({'raw':!![],'attributes':['id',_0xf241('0x67')]})[_0xf241('0x25')](function(_0x288f52){for(var _0x280fbf=0x0;_0x280fbf<_0x288f52[_0xf241('0x1d')];_0x280fbf++){if(_0x288f52[_0x280fbf][_0xf241('0x67')]in _0x1d2097){contactItemTypes['push'](_0x288f52[_0x280fbf]);delete _0x4c0134[_0x288f52[_0x280fbf][_0xf241('0x67')]];hasAdditionalPhones=!![];}for(var _0x36ad81 in _0x1d2097){if(_0x288f52[_0x280fbf][_0xf241('0x67')]+_0xf241('0x68')===_0x36ad81){phoneDescriptions[_0xf241('0x20')]({'itemTypeId':_0x288f52[_0x280fbf]['id'],'description':_0x36ad81});delete _0x4c0134[_0x36ad81];}}}if(hasAdditionalPhones)_0x4c0134['AdditionalPhones']='';var _0x3e00cb=_[_0xf241('0x69')](_0x4c0134)[_0xf241('0x16')]();logger[_0xf241('0x57')]('header',_0x3e00cb);fs[_0xf241('0x6a')](_0x2243cf,_0x3e00cb+'\x0a');Papa[_0xf241('0x6b')](fs[_0xf241('0x6c')](_0x24034f),{'header':!![],'skipEmptyLines':!![],'step':function(_0xdbdf99,_0x30a8dd){try{for(var _0x407fec=0x0,_0x32a72d=[];_0x407fec<_0xdbdf99[_0xf241('0x6d')][_0xf241('0x1d')];_0x407fec++){stats[_0xf241('0x6e')]+=0x1;if(_0xdbdf99[_0xf241('0x5a')][_0x407fec]){handleError(_0xdbdf99[_0xf241('0x6d')][_0x407fec],_0xdbdf99[_0xf241('0x5a')][_0x407fec]);}else{var _0x541fdd=[];var _0x2621ba=[];var _0x1a111f={};for(var _0x56444b in _0x1d2097){let _0x431d85=contactItemTypes[_0xf241('0x6f')](_0x1b03c2=>_0x1b03c2['name']===_0x56444b);let _0x49e340=contactItemTypes[_0xf241('0x6f')](_0x455c89=>_0x455c89[_0xf241('0x67')]+_0xf241('0x68')===_0x56444b);if(_[_0xf241('0x1e')](_0x431d85)&&_[_0xf241('0x1e')](_0x49e340)){if(_0x1d2097[_0xf241('0x70')](_0x56444b)){if(_0xdbdf99[_0xf241('0x6d')][_0x407fec][_0x1d2097[_0x56444b]]){var _0x60f184=_[_0xf241('0x71')](_0xdbdf99[_0xf241('0x6d')][_0x407fec][_0x1d2097[_0x56444b]][_0xf241('0x72')](/"/g,'\x27'));switch(_0x56444b){case _0xf241('0x36'):var _0x495894=moment(_0x60f184,'YYYY-MM-DD\x20HH:mm:ss',!![]);if(_0x495894[_0xf241('0x73')]()){_0x32a72d[_0xf241('0x20')]('\x22'+_0x60f184+'\x22');}else{_0x541fdd[_0xf241('0x20')](_0xf241('0x74'));}break;case _0xf241('0x75'):var _0x380d25=parseInt(_0x60f184);_0x60f184=_['isNaN'](_0x380d25)||_0x380d25<0x0||_0x380d25>0x4?_0x5f163a?0x3:0x2:_0x380d25;_0x32a72d[_0xf241('0x20')]('\x22'+_0x60f184+'\x22');break;case _0xf241('0x39'):var _0x5bb557=parseInt(_0x60f184);if(_[_0xf241('0x76')](_0x5bb557)&&_[_0xf241('0x77')](_0x5e6730,_0x5bb557)){_0x32a72d[_0xf241('0x20')]('\x22'+_0x5bb557+'\x22');}else{_0x541fdd[_0xf241('0x20')](_0xf241('0x78'));}break;case _0xf241('0x79'):if(isEmail(_0x60f184)){_0x32a72d['push']('\x22'+_0x60f184+'\x22');}else{_0x541fdd[_0xf241('0x20')](_0xf241('0x7a'));}break;case _0xf241('0x7b'):var _0x5733fa=moment(_0x60f184,'YYYY-MM-DD',!![]);if(_0x5733fa[_0xf241('0x73')]()){_0x32a72d[_0xf241('0x20')]('\x22'+_0x60f184+'\x22');}else{_0x541fdd['push'](_0xf241('0x7c'));}break;default:_0x32a72d[_0xf241('0x20')]('\x22'+_0x60f184+'\x22');}}else{switch(_0x56444b){case _0xf241('0x7d'):case _0xf241('0x14'):_0x541fdd[_0xf241('0x20')](_0x56444b+_0xf241('0x7e'));break;default:_0x32a72d['push']('\x22\x22');}}}}else{var _0x2e2085='';if(!_['isNil'](_0x431d85)){if(!_0x1a111f[_0xf241('0x70')](_0x431d85['id'])){for(var _0x429b6b=0x0;_0x429b6b<_0x1d2097[_0x56444b]['length'];_0x429b6b++){var _0x60f184=_['trim'](_0xdbdf99['data'][_0x407fec][_0x1d2097[_0x56444b][_0x429b6b]][_0xf241('0x72')](/"/g,'\x27'));var _0x27b2ce=phoneDescriptions[_0xf241('0x6f')](_0x116b66=>_0x116b66[_0xf241('0x7f')]===_0x431d85['id']);if(!_[_0xf241('0x1e')](_0x27b2ce)){var _0x1c51a6=_[_0xf241('0x71')](_0xdbdf99[_0xf241('0x6d')][_0x407fec][_0x1d2097[_0x27b2ce[_0xf241('0x80')]][0x0]][_0xf241('0x72')](/"/g,'\x27'));if(!_[_0xf241('0x1e')](_0x1c51a6))_0x60f184=_0x60f184+'§'+_0x1c51a6;}if(_0x2e2085=='')_0x2e2085=_0x60f184;else _0x2e2085+='|'+_0x60f184;}_0x2621ba[_0xf241('0x20')](_0x431d85['id']+':'+_0x2e2085);_0x1a111f[_0x431d85['id']]=0x1;}}}}if(hasAdditionalPhones){_0x32a72d[_0xf241('0x20')]('\x22'+_0x2621ba[_0xf241('0x16')](';')+'\x22');}if(_0x541fdd[_0xf241('0x1d')]){handleError(_0xdbdf99['data'][_0x407fec],{'code':_0xf241('0x81'),'message':_0x541fdd[_0xf241('0x16')]()});}else{fs['appendFileSync'](_0x2243cf,_0x32a72d[_0xf241('0x16')]()+'\x0a');}_0x32a72d=[];}if(!(stats['rows']%0xc8)){socket[_0xf241('0x82')](_0xf241('0x83')+_0x5afbc1,stats);stats[_0xf241('0x5a')]=[];}}if(stopped){logger[_0xf241('0x57')]('Abort\x20parser');_0x30a8dd[_0xf241('0x84')]();}}catch(_0x493810){handleError(_0xdbdf99[_0xf241('0x6d')][_0x407fec],{'code':'SystemError','message':_0x493810[_0xf241('0x23')]});logger['error'](_0xf241('0x85'),_0x493810['message']);}},'complete':function(){try{var _0x4aee93=[];var _0x55f733=tempTableName;_0x4aee93['push'](_0xf241('0x86')+_0x55f733+_0xf241('0x87'));logger[_0xf241('0x57')](_0xf241('0x88'),contactItemTypes[_0xf241('0x1d')]);var _0x5bb13c=util['format']('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',_0x2243cf,_0x55f733,_0x3e00cb,_0x48f09e[_0xf241('0x37')],_0x48f09e[_0xf241('0x89')]||null,NOW,NOW);if(_[_0xf241('0x1e')](_0x1d2097[_0xf241('0x36')])){_0x5bb13c+=_0xf241('0x8a');}_0x4aee93['push'](_0x5bb13c);BPromise[_0xf241('0x8b')](_0x4aee93,handleQuery)[_0xf241('0x25')](function(_0x3d33ac){BPromise[_0xf241('0x21')]([handleAdditionalPhones()])[_0xf241('0x25')](function(){_0x4aee93=[];for(var _0x118ae2=0x0;_0x118ae2<promisesContact['length'];_0x118ae2++){_0x4aee93['push'](updateContact(promisesContact[_0x118ae2][_0xf241('0x8c')]));}BPromise[_0xf241('0x21')](_0x4aee93)[_0xf241('0x25')](function(){_0x4aee93=[];for(var _0x46eefe=0x0;_0x46eefe<promisesAdditionalPhones[_0xf241('0x1d')];_0x46eefe++){_0x4aee93[_0xf241('0x20')](createAdditionalPhone(promisesAdditionalPhones[_0x46eefe]['contactId'],promisesAdditionalPhones[_0x46eefe][_0xf241('0x8d')],promisesAdditionalPhones[_0x46eefe][_0xf241('0x14')],promisesAdditionalPhones[_0x46eefe]['orderBy']));}BPromise[_0xf241('0x21')](_0x4aee93)[_0xf241('0x25')](function(){_0x4aee93=[];_0x4aee93[_0xf241('0x20')](insertCmHopperAdditionalPhones(_0x48f09e[_0xf241('0x37')]));_0x4aee93[_0xf241('0x20')]('DROP\x20TABLE\x20'+_0x55f733+';');BPromise[_0xf241('0x8b')](_0x4aee93,handleQuery)[_0xf241('0x25')](function(_0xc94817){stats[_0xf241('0x8e')]=!![];stats[_0xf241('0x8f')]=updatedRows;socket['emit'](_0xf241('0x83')+_0x5afbc1,stats);fs[_0xf241('0x90')](_0x24034f);fs[_0xf241('0x90')](_0x2243cf);process[_0xf241('0x59')](0x0);})[_0xf241('0x22')](function(_0x15c2fc){logger['error'](_0x15c2fc[_0xf241('0x23')]);process[_0xf241('0x59')](0x1);});});});});})[_0xf241('0x22')](function(_0x5be534){logger[_0xf241('0x58')](_0x5be534[_0xf241('0x23')]);process['exit'](0x1);});}catch(_0x56d733){logger[_0xf241('0x58')](_0xf241('0x91'),_0x56d733[_0xf241('0x23')]);process['exit'](0x1);}},'error':function(_0x45ae25,_0xea64ee,_0x3924ed,_0xd7aff9){throw new Error(_0xd7aff9);}});});}function validate(){if(process[_0xf241('0x92')]&&process[_0xf241('0x92')]['length']<0x4){throw new Error(_0xf241('0x93'));}var _0x316247=path[_0xf241('0x16')](config[_0xf241('0x94')],_0xf241('0x62'),process[_0xf241('0x92')][0x2]);if(!fs[_0xf241('0x95')](_0x316247)){throw new Error(_0xf241('0x96'));}var _0x25da76={};try{_0x25da76=JSON[_0xf241('0x6b')](process['argv'][0x3]);if(!_0x25da76[_0xf241('0x5f')]){throw new Error(_0xf241('0x97'));}var _0x1b21bf=0x0;if(_0x25da76[_0xf241('0x5f')][_0xf241('0x39')]){_0x1b21bf=0x1;}if(!_0x25da76[_0xf241('0x37')]){throw new Error(_0xf241('0x98'));}}catch(_0x1fa6cf){throw new Error(_0xf241('0x99'));}var _0x49a869=[];try{_0x49a869=_['map'](JSON[_0xf241('0x6b')](process[_0xf241('0x92')][0x4]),'id');}catch(_0xbd3bae){logger[_0xf241('0x57')]('No\x20agent\x20available');}main(_0x316247,_0x25da76,_0x49a869,_0x1b21bf);}validate();process['on'](_0xf241('0x9a'),handleStop);process['on'](_0xf241('0x9b'),handleUncaughtException);