b4ec6ba7077565ae01b1377419461e3418e58707
[motion2.git] / server / components / import / cm / csv.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 _0xbc3f=['firstName\x20not\x20specified!','phone\x20not\x20specified!','birthDate','YYYY-MM-DD','isValid','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','email\x20format\x20is\x20not\x20valid!','ListId','CompanyId','Duplicate\x20Contact','create','keys','then','pick','Error\x20while\x20creating\x20contact:\x20','stringify','cmContact','checkHopper','inspect','insert','into','cm_hopper','fromQuery','phone','scheduledAt','ContactId','createdAt','updatedAt','select','field','NOW()','toString','from','cm_contacts','where','deletedAt\x20IS\x20NULL','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','\x20=\x20?','ListId\x20=\x20?','id\x20IN\x20?','str','cm_hopper_final','cm_hopper_black','VoiceQueue','findAll','outbound','dialCheckDuplicateType','CmList','Lists','get','push','sequelize','VoiceQueueId','catch','query','all','always','CampaignId','onlyIfOpen','Campaign','BlackLists','generalCheckHopper','Error\x20processing\x20rows\x20block:','finally','contact:csv_','resume','emit','unlinkSync','exit','SIGINT','info','CSV\x20import\x20process\x20stopped!','resolve','CmContact','createReadStream','parse','duplicate','pause','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','bluebird','util','squel','papaparse','ioredis','../../../mysqldb','../../../config/logger','api','redis','defaults','localhost','register','argv','undefined','null','zipObject','split','Missing\x20socket_timestamp\x20parameter!','error','contact','index','test','isNil','errors','length','map','message','join','hasOwnProperty','data','firstName'];(function(_0x217f7e,_0x7ea43b){var _0x4ce5b7=function(_0x3089af){while(--_0x3089af){_0x217f7e['push'](_0x217f7e['shift']());}};_0x4ce5b7(++_0x7ea43b);}(_0xbc3f,0xc3));var _0xfbc3=function(_0x122096,_0x60c295){_0x122096=_0x122096-0x0;var _0x3d1966=_0xbc3f[_0x122096];return _0x3d1966;};'use strict';var BPromise=require(_0xfbc3('0x0'));var util=require(_0xfbc3('0x1'));var _=require('lodash');var fs=require('fs');var squel=require(_0xfbc3('0x2'));var Papa=require(_0xfbc3('0x3'));var Redis=require(_0xfbc3('0x4'));var db=require(_0xfbc3('0x5'))['db'];var config=require('../../../config/environment');var logger=require(_0xfbc3('0x6'))(_0xfbc3('0x7'));config[_0xfbc3('0x8')]=_[_0xfbc3('0x9')](config[_0xfbc3('0x8')],{'host':_0xfbc3('0xa'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xfbc3('0x8')]));require('../../../api/cmContact/cmContact.socket')[_0xfbc3('0xb')](socket);try{if(!process[_0xfbc3('0xc')][0x2]||process[_0xfbc3('0xc')][0x2]===_0xfbc3('0xd')||process['argv'][0x2]===_0xfbc3('0xe')){throw new Error('Missing\x20filepath\x20parameter!');}var FILEPATH=process[_0xfbc3('0xc')][0x2];if(!process[_0xfbc3('0xc')][0x3]||process[_0xfbc3('0xc')][0x3]===_0xfbc3('0xd')||process[_0xfbc3('0xc')][0x3]===_0xfbc3('0xe')||!process[_0xfbc3('0xc')][0x4]||process[_0xfbc3('0xc')][0x4]===_0xfbc3('0xd')||process[_0xfbc3('0xc')][0x4]===_0xfbc3('0xe')){throw new Error('Missing\x20binding\x20parameters!');}var FIELDS=_[_0xfbc3('0xf')](process[_0xfbc3('0xc')][0x3][_0xfbc3('0x10')](','),process['argv'][0x4][_0xfbc3('0x10')](','));if(!process[_0xfbc3('0xc')][0x5]||process[_0xfbc3('0xc')][0x5]==='undefined'||process[_0xfbc3('0xc')][0x5]===_0xfbc3('0xe')){throw new Error('Missing\x20ListId\x20parameter!');}var LISTID=process[_0xfbc3('0xc')][0x5];var COMPANYID=process[_0xfbc3('0xc')][0x6]&&process[_0xfbc3('0xc')][0x6]!==_0xfbc3('0xd')&&process[_0xfbc3('0xc')][0x6]!==_0xfbc3('0xe')?process['argv'][0x6]:null;var DUPLICATES=process['argv'][0x7]&&process['argv'][0x7]!==_0xfbc3('0xd')&&process[_0xfbc3('0xc')][0x7]!==_0xfbc3('0xe')?process[_0xfbc3('0xc')][0x7]:null;if(!process[_0xfbc3('0xc')][0x8]||process[_0xfbc3('0xc')][0x8]===_0xfbc3('0xd')||process[_0xfbc3('0xc')][0x8]===_0xfbc3('0xe')){throw new Error(_0xfbc3('0x11'));}var SOCKET_TIMESTAMP=process['argv'][0x8];}catch(_0x3f03ab){logger[_0xfbc3('0x12')](_0x3f03ab);endCsv();}var total=0x0;var pTotal=0x0;var success=0x0;var errors=0x0;var duplicates=0x0;var rows=[];var hopperContacts='';var promises=[];var index=0x0;var alreadyInvalid=![];function handleCheckRowError(_0x5298b8,_0x22dd5b,_0x4d5c15,_0x2307fe){var _0x23fbd5={'message':_0x22dd5b};_0x23fbd5[_0x5298b8]=!![];if(_0x4d5c15){_0x23fbd5[_0xfbc3('0x13')]=_0x4d5c15;}if(_0x2307fe){_0x23fbd5[_0xfbc3('0x14')]=_0x2307fe;}return _0x23fbd5;}function isEmail(_0x1ef780){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))*$/[_0xfbc3('0x15')](_0x1ef780);}function checkRow(_0x5dc390,_0x1b683c,_0x4954ea){return new BPromise(function(_0x37a2a9,_0x96f11a){if(_[_0xfbc3('0x16')](_0x5dc390)){return _0x96f11a(handleCheckRowError(_0xfbc3('0x12'),'The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!',null,_0x4954ea));}if(_0x5dc390[_0xfbc3('0x17')]&&_0x5dc390[_0xfbc3('0x17')][_0xfbc3('0x18')]){var _0x42f58c=_[_0xfbc3('0x19')](_0x5dc390[_0xfbc3('0x17')],_0xfbc3('0x1a'))[_0xfbc3('0x1b')](';');return _0x96f11a(handleCheckRowError(_0xfbc3('0x12'),_0x42f58c,null,_0x4954ea));}var _0x14ec47={};for(var _0x1d7340 in FIELDS){if(FIELDS[_0xfbc3('0x1c')](_0x1d7340)&&FIELDS[_0x1d7340]){_0x14ec47[_0x1d7340]=_0x5dc390[_0xfbc3('0x1d')][0x0][FIELDS[_0x1d7340]]||_0x5dc390['data'][0x0]['\ufeff'+FIELDS[_0x1d7340]];}}if(!_0x14ec47[_0xfbc3('0x1e')]){return _0x96f11a(handleCheckRowError(_0xfbc3('0x12'),_0xfbc3('0x1f'),null,_0x4954ea));}if(!_0x14ec47['phone']){return _0x96f11a(handleCheckRowError('error',_0xfbc3('0x20'),null,_0x4954ea));}if(_0x14ec47[_0xfbc3('0x21')]){var _0x2d34c2=moment(_0x14ec47[_0xfbc3('0x21')],_0xfbc3('0x22'));if(!_0x2d34c2[_0xfbc3('0x23')]()){return _0x96f11a(handleCheckRowError(_0xfbc3('0x12'),_0xfbc3('0x24'),null,_0x4954ea));}}if(_0x14ec47[_0xfbc3('0x25')]){if(!isEmail(_0x14ec47[_0xfbc3('0x25')])){return _0x96f11a(handleCheckRowError(_0xfbc3('0x12'),_0xfbc3('0x26'),null,_0x4954ea));}}_0x14ec47[_0xfbc3('0x27')]=LISTID;_0x14ec47[_0xfbc3('0x28')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES['length']&&_0x1b683c){var _0x33a046={};for(var _0x686f03=0x0,_0x36bb53=DUPLICATES[_0xfbc3('0x18')];_0x686f03<_0x36bb53;_0x686f03+=0x1){_0x33a046[DUPLICATES[_0x686f03]]=_0x14ec47[DUPLICATES[_0x686f03]];}var _0x29514b=_['find'](_0x1b683c,_0x33a046);if(_0x29514b){return _0x96f11a(handleCheckRowError('duplicate',_0xfbc3('0x29'),_0x29514b,_0x4954ea));}}return db['CmContact'][_0xfbc3('0x2a')](_0x14ec47,{'raw':!![],'hooks':![],'fields':_[_0xfbc3('0x2b')](_0x14ec47)})[_0xfbc3('0x2c')](function(_0x3c24aa){if(DUPLICATES&&DUPLICATES[_0xfbc3('0x18')]&&_0x1b683c){_0x1b683c['push'](_[_0xfbc3('0x2d')](_0x14ec47,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x3c24aa['id'];return _0x37a2a9();})['catch'](function(_0x920e45){return _0x96f11a(handleCheckRowError(_0xfbc3('0x12'),_0xfbc3('0x2e')+(_0x920e45[_0xfbc3('0x1a')]||JSON[_0xfbc3('0x2f')](_0x920e45)),null,_0x4954ea));});});}function checkHopper(){function _0x587054(){return function(_0x323031){logger[_0xfbc3('0x12')](_0xfbc3('0x30'),_0xfbc3('0x31'),util[_0xfbc3('0x32')](_0x323031,{'showHidden':![],'depth':null}));};}var _0x557b86=function(_0x2b52f1,_0x36f642){var _0x247d60=squel[_0xfbc3('0x33')]()[_0xfbc3('0x34')](_0xfbc3('0x35'))[_0xfbc3('0x36')]([_0xfbc3('0x37'),_0xfbc3('0x38'),_0xfbc3('0x39'),_0xfbc3('0x27'),_0x36f642,_0xfbc3('0x3a'),_0xfbc3('0x3b')],squel[_0xfbc3('0x3c')]()[_0xfbc3('0x3d')]('phone',_0xfbc3('0x37'))[_0xfbc3('0x3d')](_0xfbc3('0x3e'),_0xfbc3('0x38'))[_0xfbc3('0x3d')]('id','ContactId')[_0xfbc3('0x3d')](LISTID['toString'](),_0xfbc3('0x27'))['field'](_0x2b52f1['id'][_0xfbc3('0x3f')](),_0x36f642)['field'](_0xfbc3('0x3e'),_0xfbc3('0x3a'))[_0xfbc3('0x3d')](_0xfbc3('0x3e'),_0xfbc3('0x3b'))[_0xfbc3('0x40')](_0xfbc3('0x41'))[_0xfbc3('0x42')](_0xfbc3('0x43'))[_0xfbc3('0x42')]('ListId\x20=\x20?',LISTID[_0xfbc3('0x3f')]())[_0xfbc3('0x42')](_0xfbc3('0x44'))[_0xfbc3('0x42')](_0xfbc3('0x45'),squel['select']()[_0xfbc3('0x3d')](_0xfbc3('0x37'))[_0xfbc3('0x40')](_0xfbc3('0x35'))[_0xfbc3('0x42')](_0x36f642+_0xfbc3('0x46'),_0x2b52f1['id'][_0xfbc3('0x3f')]())))[_0xfbc3('0x3f')]();return _0x247d60;};var _0x4acf3d=function(_0x4fa39d,_0x58e492){var _0x1316cb=squel[_0xfbc3('0x33')]()[_0xfbc3('0x34')]('cm_hopper')['fromQuery']([_0xfbc3('0x37'),_0xfbc3('0x38'),_0xfbc3('0x39'),'ListId',_0x58e492,_0xfbc3('0x3a'),'updatedAt'],squel[_0xfbc3('0x3c')]()[_0xfbc3('0x3d')](_0xfbc3('0x37'),_0xfbc3('0x37'))['field']('NOW()',_0xfbc3('0x38'))['field']('id',_0xfbc3('0x39'))[_0xfbc3('0x3d')](LISTID[_0xfbc3('0x3f')](),_0xfbc3('0x27'))[_0xfbc3('0x3d')](_0x4fa39d['id'][_0xfbc3('0x3f')](),_0x58e492)[_0xfbc3('0x3d')](_0xfbc3('0x3e'),_0xfbc3('0x3a'))[_0xfbc3('0x3d')]('NOW()',_0xfbc3('0x3b'))[_0xfbc3('0x40')](_0xfbc3('0x41'))[_0xfbc3('0x42')]('deletedAt\x20IS\x20NULL')[_0xfbc3('0x42')](_0xfbc3('0x47'),LISTID[_0xfbc3('0x3f')]())['where'](_0xfbc3('0x48'),squel[_0xfbc3('0x49')](hopperContacts))[_0xfbc3('0x42')](_0xfbc3('0x44'))['where'](_0xfbc3('0x45'),squel[_0xfbc3('0x3c')]()[_0xfbc3('0x3d')]('calleridnum')[_0xfbc3('0x40')](_0xfbc3('0x4a'))[_0xfbc3('0x42')](_0x58e492+_0xfbc3('0x46'),_0x4fa39d['id'][_0xfbc3('0x3f')]()))['where'](_0xfbc3('0x45'),squel[_0xfbc3('0x3c')]()[_0xfbc3('0x3d')](_0xfbc3('0x37'))[_0xfbc3('0x40')](_0xfbc3('0x35'))[_0xfbc3('0x42')](_0x58e492+_0xfbc3('0x46'),_0x4fa39d['id'][_0xfbc3('0x3f')]())))['toString']();return _0x1316cb;};function _0x57fbba(_0x24df1f,_0xa2bacb){var _0x575334=squel[_0xfbc3('0x33')]()['into'](_0xfbc3('0x35'))[_0xfbc3('0x36')]([_0xfbc3('0x37'),_0xfbc3('0x38'),_0xfbc3('0x39'),_0xfbc3('0x27'),_0xa2bacb,_0xfbc3('0x3a'),_0xfbc3('0x3b')],squel[_0xfbc3('0x3c')]()[_0xfbc3('0x3d')]('phone','phone')[_0xfbc3('0x3d')](_0xfbc3('0x3e'),_0xfbc3('0x38'))['field']('id',_0xfbc3('0x39'))[_0xfbc3('0x3d')](LISTID[_0xfbc3('0x3f')](),_0xfbc3('0x27'))[_0xfbc3('0x3d')](_0x24df1f['id']['toString'](),_0xa2bacb)[_0xfbc3('0x3d')](_0xfbc3('0x3e'),_0xfbc3('0x3a'))[_0xfbc3('0x3d')](_0xfbc3('0x3e'),_0xfbc3('0x3b'))[_0xfbc3('0x40')](_0xfbc3('0x41'))[_0xfbc3('0x42')]('deletedAt\x20IS\x20NULL')[_0xfbc3('0x42')](_0xfbc3('0x47'),LISTID[_0xfbc3('0x3f')]())['where'](_0xfbc3('0x48'),squel[_0xfbc3('0x49')](hopperContacts))[_0xfbc3('0x42')](_0xfbc3('0x44')))[_0xfbc3('0x3f')]();return _0x575334;}function _0x5e69b3(_0x2b1b64,_0x4e3f87){var _0x2aad15=squel[_0xfbc3('0x33')]()[_0xfbc3('0x34')](_0xfbc3('0x4b'))[_0xfbc3('0x36')](['phone',_0xfbc3('0x39'),_0xfbc3('0x27'),_0x4e3f87,'createdAt',_0xfbc3('0x3b')],squel[_0xfbc3('0x3c')]()[_0xfbc3('0x3d')](_0xfbc3('0x37'),_0xfbc3('0x37'))[_0xfbc3('0x3d')]('id',_0xfbc3('0x39'))[_0xfbc3('0x3d')](LISTID[_0xfbc3('0x3f')](),_0xfbc3('0x27'))[_0xfbc3('0x3d')](_0x2b1b64['id'][_0xfbc3('0x3f')](),_0x4e3f87)[_0xfbc3('0x3d')](_0xfbc3('0x3e'),_0xfbc3('0x3a'))[_0xfbc3('0x3d')]('NOW()',_0xfbc3('0x3b'))[_0xfbc3('0x40')]('cm_contacts')[_0xfbc3('0x42')](_0xfbc3('0x43'))[_0xfbc3('0x42')](_0xfbc3('0x47'),LISTID[_0xfbc3('0x3f')]())[_0xfbc3('0x42')](_0xfbc3('0x48'),squel[_0xfbc3('0x49')](hopperContacts))[_0xfbc3('0x42')](_0xfbc3('0x44')))[_0xfbc3('0x3f')]();return _0x2aad15;}return db[_0xfbc3('0x4c')][_0xfbc3('0x4d')]({'where':{'type':_0xfbc3('0x4e')},'attributes':['id',_0xfbc3('0x4f')],'include':[{'model':db[_0xfbc3('0x50')],'as':_0xfbc3('0x51'),'where':{'id':LISTID}}]})['then'](function(_0x18317b){var _0x4c434b=[];if(_0x18317b){var _0x29029b;for(var _0x45a16c=0x0,_0xdd941c;_0x45a16c<_0x18317b[_0xfbc3('0x18')];_0x45a16c+=0x1){_0xdd941c=_0x18317b[_0x45a16c][_0xfbc3('0x52')]({'plain':!![]});switch(_0xdd941c[_0xfbc3('0x4f')]){case'always':_0x4c434b[_0xfbc3('0x53')](db[_0xfbc3('0x54')]['query'](_0x4acf3d(_0xdd941c,_0xfbc3('0x55')))[_0xfbc3('0x2c')](function(){})[_0xfbc3('0x56')](_0x587054()));break;case'onlyIfOpen':_0x4c434b[_0xfbc3('0x53')](db['sequelize'][_0xfbc3('0x57')](_0x557b86(_0xdd941c,_0xfbc3('0x55')))[_0xfbc3('0x2c')](function(){})[_0xfbc3('0x56')](_0x587054()));break;default:_0x4c434b[_0xfbc3('0x53')](db[_0xfbc3('0x54')][_0xfbc3('0x57')](_0x57fbba(_0xdd941c,_0xfbc3('0x55')))[_0xfbc3('0x2c')](function(){})['catch'](_0x587054()));}}}return _0x4c434b;})[_0xfbc3('0x58')]()[_0xfbc3('0x2c')](function(){return db[_0xfbc3('0x4c')][_0xfbc3('0x4d')]({'where':{'type':_0xfbc3('0x4e')},'attributes':['id'],'include':[{'model':db[_0xfbc3('0x50')],'as':'BlackLists','where':{'id':LISTID}}]})[_0xfbc3('0x2c')](function(_0x5eff58){var _0x47c236=[];if(_0x5eff58){var _0x392110;for(var _0xe1c9b4=0x0,_0x445d88;_0xe1c9b4<_0x5eff58[_0xfbc3('0x18')];_0xe1c9b4+=0x1){_0x445d88=_0x5eff58[_0xe1c9b4][_0xfbc3('0x52')]({'plain':!![]});_0x47c236[_0xfbc3('0x53')](db['sequelize']['query'](_0x5e69b3(_0x445d88,_0xfbc3('0x55')))['then'](function(){})['catch'](_0x587054()));}}return _0x47c236;})[_0xfbc3('0x58')]();})['then'](function(){return db['Campaign'][_0xfbc3('0x4d')]({'attributes':['id',_0xfbc3('0x4f')],'include':[{'model':db[_0xfbc3('0x50')],'as':_0xfbc3('0x51'),'where':{'id':LISTID}}]})[_0xfbc3('0x2c')](function(_0x220595){var _0x156715=[];if(_0x220595){for(var _0x27b71f=0x0,_0x143cac;_0x27b71f<_0x220595['length'];_0x27b71f+=0x1){_0x143cac=_0x220595[_0x27b71f][_0xfbc3('0x52')]({'plain':!![]});switch(_0x143cac['dialCheckDuplicateType']){case _0xfbc3('0x59'):_0x156715['push'](db['sequelize'][_0xfbc3('0x57')](_0x4acf3d(_0x143cac,_0xfbc3('0x5a')))[_0xfbc3('0x2c')](function(){})[_0xfbc3('0x56')](_0x587054()));break;case _0xfbc3('0x5b'):_0x156715[_0xfbc3('0x53')](db[_0xfbc3('0x54')]['query'](_0x557b86(_0x143cac,_0xfbc3('0x5a')))[_0xfbc3('0x2c')](function(){})[_0xfbc3('0x56')](_0x587054()));break;default:_0x156715[_0xfbc3('0x53')](db[_0xfbc3('0x54')][_0xfbc3('0x57')](_0x57fbba(_0x143cac,_0xfbc3('0x5a')))[_0xfbc3('0x2c')](function(){})[_0xfbc3('0x56')](_0x587054()));}}}return _0x156715;})[_0xfbc3('0x58')]();})[_0xfbc3('0x2c')](function(){return db[_0xfbc3('0x5c')]['findAll']({'attributes':['id'],'include':[{'model':db[_0xfbc3('0x50')],'as':_0xfbc3('0x5d'),'where':{'id':LISTID}}]})['then'](function(_0xafa451){var _0x32f9f5=[];if(_0xafa451){for(var _0x164976=0x0,_0x212fcc;_0x164976<_0xafa451[_0xfbc3('0x18')];_0x164976+=0x1){_0x212fcc=_0xafa451[_0x164976][_0xfbc3('0x52')]({'plain':!![]});_0x32f9f5[_0xfbc3('0x53')](db[_0xfbc3('0x54')][_0xfbc3('0x57')](_0x5e69b3(_0x212fcc,_0xfbc3('0x5a')))['then'](function(){})[_0xfbc3('0x56')](_0x587054()));}}return _0x32f9f5;})[_0xfbc3('0x58')]();})[_0xfbc3('0x56')](function(_0x20b3f9){logger['error']('cmContact,\x20%s,\x20%s',_0xfbc3('0x5e'),_0x20b3f9['message']);});}var processPromises=function(_0x764b1){return BPromise[_0xfbc3('0x58')](promises)[_0xfbc3('0x2c')](function(_0x2a5511){})['catch'](function(_0x3a971f){logger[_0xfbc3('0x12')](_0xfbc3('0x5f'),JSON[_0xfbc3('0x2f')](_0x3a971f));})[_0xfbc3('0x60')](function(){socket['emit'](_0xfbc3('0x61')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x764b1){return _0x764b1[_0xfbc3('0x62')]();}});};var endCsv=function(){return BPromise['resolve']()['then'](function(){if(hopperContacts){return checkHopper();}})['then'](function(){socket[_0xfbc3('0x63')]('contact:csv_'+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0xfbc3('0x64')](FILEPATH);}catch(_0x25c2c4){logger[_0xfbc3('0x12')]('Unable\x20to\x20delete\x20temp\x20file:',JSON[_0xfbc3('0x2f')](_0x25c2c4));}finally{process[_0xfbc3('0x65')](0x0);}});};process['on'](_0xfbc3('0x66'),function(){logger[_0xfbc3('0x67')](_0xfbc3('0x68'));endCsv();});function main(){return BPromise[_0xfbc3('0x69')]()['then'](function(){if(DUPLICATES){DUPLICATES=DUPLICATES['split'](',');return db[_0xfbc3('0x6a')]['findAll']({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0xfbc3('0x2c')](function(_0x141421){var _0x436456=fs[_0xfbc3('0x6b')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0xfbc3('0x6c')](_0x436456,{'header':!![],'skipEmptyLines':!![],'step':function(_0x4dbdd8,_0x8ec295){total+=0x1;var _0xa45c6=total;promises[_0xfbc3('0x53')](checkRow(_0x4dbdd8,_0x141421,_0xa45c6)[_0xfbc3('0x2c')](function(){success+=0x1;})[_0xfbc3('0x56')](function(_0x370ff0){if(_0x370ff0[_0xfbc3('0x12')]){errors+=0x1;delete _0x370ff0[_0xfbc3('0x12')];}else if(_0x370ff0[_0xfbc3('0x6d')]){duplicates+=0x1;delete _0x370ff0['duplicate'];}rows[_0xfbc3('0x53')](_0x370ff0);}));if(total%0xc8===0x0){_0x8ec295[_0xfbc3('0x6e')]();return processPromises(_0x8ec295);}},'complete':function(){return processPromises()[_0xfbc3('0x2c')](function(){logger[_0xfbc3('0x67')]('CSV\x20parsed\x20correctly!');endCsv();});},'error':function(_0x41b916,_0x5d8da2){logger[_0xfbc3('0x67')](_0xfbc3('0x6f'),JSON[_0xfbc3('0x2f')](_0x41b916));endCsv();}});})[_0xfbc3('0x56')](function(_0x43bce4){logger[_0xfbc3('0x12')](_0xfbc3('0x70'),JSON[_0xfbc3('0x2f')](_0x43bce4));});}main();