Built motion from commit 85328c08.|2.5.50
[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 _0xf5f7=['squel','papaparse','ioredis','../../../mysqldb','../../../config/environment','../../../config/logger','redis','defaults','localhost','register','argv','undefined','null','Missing\x20filepath\x20parameter!','Missing\x20binding\x20parameters!','split','Missing\x20ListId\x20parameter!','error','contact','index','test','isNil','errors','length','map','message','join','data','firstName','firstName\x20not\x20specified!','phone','birthDate','YYYY-MM-DD','isValid','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','email\x20format\x20is\x20not\x20valid!','ListId','CompanyId','find','duplicate','CmContact','create','keys','then','push','catch','Error\x20while\x20creating\x20contact:\x20','stringify','cmContact','checkHopper','inspect','into','cm_hopper','fromQuery','scheduledAt','ContactId','updatedAt','select','field','NOW()','toString','from','where','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','\x20=\x20?','insert','createdAt','cm_contacts','id\x20IN\x20?','str','VoiceQueue','findAll','dialCheckDuplicateType','Lists','get','always','sequelize','query','onlyIfOpen','VoiceQueueId','all','outbound','CmList','Campaign','CampaignId','BlackLists','cmContact,\x20%s,\x20%s','generalCheckHopper','contact:csv_','resume','resolve','emit','Unable\x20to\x20delete\x20temp\x20file:','exit','SIGINT','info','CSV\x20import\x20process\x20stopped!','createReadStream','parse','pause','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','bluebird','util','lodash'];(function(_0xe4b9a8,_0x149fac){var _0x2c5904=function(_0x2c091a){while(--_0x2c091a){_0xe4b9a8['push'](_0xe4b9a8['shift']());}};_0x2c5904(++_0x149fac);}(_0xf5f7,0x6a));var _0x7f5f=function(_0x3e3725,_0x574046){_0x3e3725=_0x3e3725-0x0;var _0x57d8dd=_0xf5f7[_0x3e3725];return _0x57d8dd;};'use strict';var BPromise=require(_0x7f5f('0x0'));var util=require(_0x7f5f('0x1'));var _=require(_0x7f5f('0x2'));var fs=require('fs');var squel=require(_0x7f5f('0x3'));var Papa=require(_0x7f5f('0x4'));var Redis=require(_0x7f5f('0x5'));var db=require(_0x7f5f('0x6'))['db'];var config=require(_0x7f5f('0x7'));var logger=require(_0x7f5f('0x8'))('api');config[_0x7f5f('0x9')]=_[_0x7f5f('0xa')](config[_0x7f5f('0x9')],{'host':_0x7f5f('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require('../../../api/cmContact/cmContact.socket')[_0x7f5f('0xc')](socket);try{if(!process['argv'][0x2]||process[_0x7f5f('0xd')][0x2]===_0x7f5f('0xe')||process[_0x7f5f('0xd')][0x2]===_0x7f5f('0xf')){throw new Error(_0x7f5f('0x10'));}var FILEPATH=process['argv'][0x2];if(!process[_0x7f5f('0xd')][0x3]||process[_0x7f5f('0xd')][0x3]===_0x7f5f('0xe')||process[_0x7f5f('0xd')][0x3]===_0x7f5f('0xf')||!process[_0x7f5f('0xd')][0x4]||process[_0x7f5f('0xd')][0x4]==='undefined'||process['argv'][0x4]===_0x7f5f('0xf')){throw new Error(_0x7f5f('0x11'));}var FIELDS=_['zipObject'](process[_0x7f5f('0xd')][0x3][_0x7f5f('0x12')](','),process[_0x7f5f('0xd')][0x4]['split'](','));if(!process[_0x7f5f('0xd')][0x5]||process[_0x7f5f('0xd')][0x5]===_0x7f5f('0xe')||process[_0x7f5f('0xd')][0x5]===_0x7f5f('0xf')){throw new Error(_0x7f5f('0x13'));}var LISTID=process[_0x7f5f('0xd')][0x5];var COMPANYID=process[_0x7f5f('0xd')][0x6]&&process[_0x7f5f('0xd')][0x6]!=='undefined'&&process[_0x7f5f('0xd')][0x6]!==_0x7f5f('0xf')?process['argv'][0x6]:null;var DUPLICATES=process[_0x7f5f('0xd')][0x7]&&process['argv'][0x7]!==_0x7f5f('0xe')&&process[_0x7f5f('0xd')][0x7]!==_0x7f5f('0xf')?process['argv'][0x7]:null;if(!process['argv'][0x8]||process['argv'][0x8]==='undefined'||process[_0x7f5f('0xd')][0x8]==='null'){throw new Error('Missing\x20socket_timestamp\x20parameter!');}var SOCKET_TIMESTAMP=process['argv'][0x8];}catch(_0x5756c7){logger[_0x7f5f('0x14')](_0x5756c7);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(_0x384072,_0x10bd6b,_0x117b4b,_0x1f9751){var _0x238c2b={'message':_0x10bd6b};_0x238c2b[_0x384072]=!![];if(_0x117b4b){_0x238c2b[_0x7f5f('0x15')]=_0x117b4b;}if(_0x1f9751){_0x238c2b[_0x7f5f('0x16')]=_0x1f9751;}return _0x238c2b;}function isEmail(_0x11c7ff){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))*$/[_0x7f5f('0x17')](_0x11c7ff);}function checkRow(_0xa1cee7,_0x5b4f16,_0x621ceb){return new BPromise(function(_0x32752d,_0x2d6f4e){if(_[_0x7f5f('0x18')](_0xa1cee7)){return _0x2d6f4e(handleCheckRowError('error','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!',null,_0x621ceb));}if(_0xa1cee7[_0x7f5f('0x19')]&&_0xa1cee7['errors'][_0x7f5f('0x1a')]){var _0x41b49b=_[_0x7f5f('0x1b')](_0xa1cee7[_0x7f5f('0x19')],_0x7f5f('0x1c'))[_0x7f5f('0x1d')](';');return _0x2d6f4e(handleCheckRowError('error',_0x41b49b,null,_0x621ceb));}var _0x33fec3={};for(var _0x109852 in FIELDS){if(FIELDS['hasOwnProperty'](_0x109852)&&FIELDS[_0x109852]){_0x33fec3[_0x109852]=_0xa1cee7['data'][0x0][FIELDS[_0x109852]]||_0xa1cee7[_0x7f5f('0x1e')][0x0]['\ufeff'+FIELDS[_0x109852]];}}if(!_0x33fec3[_0x7f5f('0x1f')]){return _0x2d6f4e(handleCheckRowError('error',_0x7f5f('0x20'),null,_0x621ceb));}if(!_0x33fec3[_0x7f5f('0x21')]){return _0x2d6f4e(handleCheckRowError(_0x7f5f('0x14'),'phone\x20not\x20specified!',null,_0x621ceb));}if(_0x33fec3[_0x7f5f('0x22')]){var _0x51735d=moment(_0x33fec3['birthDate'],_0x7f5f('0x23'));if(!_0x51735d[_0x7f5f('0x24')]()){return _0x2d6f4e(handleCheckRowError(_0x7f5f('0x14'),_0x7f5f('0x25'),null,_0x621ceb));}}if(_0x33fec3[_0x7f5f('0x26')]){if(!isEmail(_0x33fec3['email'])){return _0x2d6f4e(handleCheckRowError(_0x7f5f('0x14'),_0x7f5f('0x27'),null,_0x621ceb));}}_0x33fec3[_0x7f5f('0x28')]=LISTID;_0x33fec3[_0x7f5f('0x29')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES['length']&&_0x5b4f16){var _0xe235e6={};for(var _0x29ac24=0x0,_0x36c357=DUPLICATES['length'];_0x29ac24<_0x36c357;_0x29ac24+=0x1){_0xe235e6[DUPLICATES[_0x29ac24]]=_0x33fec3[DUPLICATES[_0x29ac24]];}var _0x295f09=_[_0x7f5f('0x2a')](_0x5b4f16,_0xe235e6);if(_0x295f09){return _0x2d6f4e(handleCheckRowError(_0x7f5f('0x2b'),'Duplicate\x20Contact',_0x295f09,_0x621ceb));}}return db[_0x7f5f('0x2c')][_0x7f5f('0x2d')](_0x33fec3,{'raw':!![],'hooks':![],'fields':_[_0x7f5f('0x2e')](_0x33fec3)})[_0x7f5f('0x2f')](function(_0x1c5957){if(DUPLICATES&&DUPLICATES['length']&&_0x5b4f16){_0x5b4f16[_0x7f5f('0x30')](_['pick'](_0x33fec3,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x1c5957['id'];return _0x32752d();})[_0x7f5f('0x31')](function(_0x362aa7){return _0x2d6f4e(handleCheckRowError(_0x7f5f('0x14'),_0x7f5f('0x32')+(_0x362aa7[_0x7f5f('0x1c')]||JSON[_0x7f5f('0x33')](_0x362aa7)),null,_0x621ceb));});});}function checkHopper(){function _0x1d21c8(){return function(_0x386042){logger[_0x7f5f('0x14')](_0x7f5f('0x34'),_0x7f5f('0x35'),util[_0x7f5f('0x36')](_0x386042,{'showHidden':![],'depth':null}));};}var _0x4c1d1f=function(_0x1c3b73,_0x3d0ca9){var _0x171f0c=squel['insert']()[_0x7f5f('0x37')](_0x7f5f('0x38'))[_0x7f5f('0x39')]([_0x7f5f('0x21'),_0x7f5f('0x3a'),_0x7f5f('0x3b'),_0x7f5f('0x28'),_0x3d0ca9,'createdAt',_0x7f5f('0x3c')],squel[_0x7f5f('0x3d')]()[_0x7f5f('0x3e')](_0x7f5f('0x21'),'phone')['field'](_0x7f5f('0x3f'),_0x7f5f('0x3a'))[_0x7f5f('0x3e')]('id',_0x7f5f('0x3b'))['field'](LISTID['toString'](),_0x7f5f('0x28'))[_0x7f5f('0x3e')](_0x1c3b73['id'][_0x7f5f('0x40')](),_0x3d0ca9)[_0x7f5f('0x3e')]('NOW()','createdAt')[_0x7f5f('0x3e')](_0x7f5f('0x3f'),_0x7f5f('0x3c'))[_0x7f5f('0x41')]('cm_contacts')[_0x7f5f('0x42')](_0x7f5f('0x43'))[_0x7f5f('0x42')](_0x7f5f('0x44'),LISTID[_0x7f5f('0x40')]())[_0x7f5f('0x42')](_0x7f5f('0x45'))[_0x7f5f('0x42')](_0x7f5f('0x46'),squel[_0x7f5f('0x3d')]()[_0x7f5f('0x3e')]('phone')['from'](_0x7f5f('0x38'))['where'](_0x3d0ca9+_0x7f5f('0x47'),_0x1c3b73['id'][_0x7f5f('0x40')]())))[_0x7f5f('0x40')]();return _0x171f0c;};var _0x1f1760=function(_0x93f4f,_0x4ad7ac){var _0x47cd60=squel[_0x7f5f('0x48')]()[_0x7f5f('0x37')]('cm_hopper')['fromQuery']([_0x7f5f('0x21'),'scheduledAt',_0x7f5f('0x3b'),_0x7f5f('0x28'),_0x4ad7ac,_0x7f5f('0x49'),_0x7f5f('0x3c')],squel[_0x7f5f('0x3d')]()[_0x7f5f('0x3e')](_0x7f5f('0x21'),'phone')['field'](_0x7f5f('0x3f'),'scheduledAt')[_0x7f5f('0x3e')]('id',_0x7f5f('0x3b'))[_0x7f5f('0x3e')](LISTID[_0x7f5f('0x40')](),_0x7f5f('0x28'))[_0x7f5f('0x3e')](_0x93f4f['id'][_0x7f5f('0x40')](),_0x4ad7ac)[_0x7f5f('0x3e')](_0x7f5f('0x3f'),_0x7f5f('0x49'))[_0x7f5f('0x3e')](_0x7f5f('0x3f'),_0x7f5f('0x3c'))[_0x7f5f('0x41')](_0x7f5f('0x4a'))['where'](_0x7f5f('0x43'))[_0x7f5f('0x42')]('ListId\x20=\x20?',LISTID[_0x7f5f('0x40')]())[_0x7f5f('0x42')](_0x7f5f('0x4b'),squel[_0x7f5f('0x4c')](hopperContacts))[_0x7f5f('0x42')](_0x7f5f('0x45'))['where'](_0x7f5f('0x46'),squel[_0x7f5f('0x3d')]()[_0x7f5f('0x3e')]('calleridnum')[_0x7f5f('0x41')]('cm_hopper_final')['where'](_0x4ad7ac+_0x7f5f('0x47'),_0x93f4f['id'][_0x7f5f('0x40')]()))[_0x7f5f('0x42')](_0x7f5f('0x46'),squel[_0x7f5f('0x3d')]()[_0x7f5f('0x3e')]('phone')[_0x7f5f('0x41')](_0x7f5f('0x38'))['where'](_0x4ad7ac+_0x7f5f('0x47'),_0x93f4f['id'][_0x7f5f('0x40')]())))[_0x7f5f('0x40')]();return _0x47cd60;};function _0x282163(_0x4c77e5,_0x117238){var _0x2546a0=squel[_0x7f5f('0x48')]()[_0x7f5f('0x37')](_0x7f5f('0x38'))[_0x7f5f('0x39')](['phone','scheduledAt',_0x7f5f('0x3b'),_0x7f5f('0x28'),_0x117238,'createdAt',_0x7f5f('0x3c')],squel[_0x7f5f('0x3d')]()[_0x7f5f('0x3e')](_0x7f5f('0x21'),_0x7f5f('0x21'))[_0x7f5f('0x3e')]('NOW()','scheduledAt')['field']('id',_0x7f5f('0x3b'))[_0x7f5f('0x3e')](LISTID[_0x7f5f('0x40')](),'ListId')['field'](_0x4c77e5['id'][_0x7f5f('0x40')](),_0x117238)[_0x7f5f('0x3e')](_0x7f5f('0x3f'),_0x7f5f('0x49'))[_0x7f5f('0x3e')](_0x7f5f('0x3f'),_0x7f5f('0x3c'))['from']('cm_contacts')[_0x7f5f('0x42')](_0x7f5f('0x43'))[_0x7f5f('0x42')](_0x7f5f('0x44'),LISTID[_0x7f5f('0x40')]())[_0x7f5f('0x42')]('id\x20IN\x20?',squel[_0x7f5f('0x4c')](hopperContacts))[_0x7f5f('0x42')](_0x7f5f('0x45')))[_0x7f5f('0x40')]();return _0x2546a0;}function _0x56af9c(_0x5ec11b,_0x17b3f1){var _0xf240b2=squel[_0x7f5f('0x48')]()[_0x7f5f('0x37')]('cm_hopper_black')[_0x7f5f('0x39')]([_0x7f5f('0x21'),_0x7f5f('0x3b'),_0x7f5f('0x28'),_0x17b3f1,_0x7f5f('0x49'),_0x7f5f('0x3c')],squel['select']()[_0x7f5f('0x3e')](_0x7f5f('0x21'),_0x7f5f('0x21'))[_0x7f5f('0x3e')]('id','ContactId')[_0x7f5f('0x3e')](LISTID[_0x7f5f('0x40')](),_0x7f5f('0x28'))[_0x7f5f('0x3e')](_0x5ec11b['id'][_0x7f5f('0x40')](),_0x17b3f1)[_0x7f5f('0x3e')](_0x7f5f('0x3f'),'createdAt')['field'](_0x7f5f('0x3f'),_0x7f5f('0x3c'))[_0x7f5f('0x41')](_0x7f5f('0x4a'))[_0x7f5f('0x42')](_0x7f5f('0x43'))['where'](_0x7f5f('0x44'),LISTID[_0x7f5f('0x40')]())['where'](_0x7f5f('0x4b'),squel[_0x7f5f('0x4c')](hopperContacts))['where'](_0x7f5f('0x45')))[_0x7f5f('0x40')]();return _0xf240b2;}return db[_0x7f5f('0x4d')][_0x7f5f('0x4e')]({'where':{'type':'outbound'},'attributes':['id',_0x7f5f('0x4f')],'include':[{'model':db['CmList'],'as':_0x7f5f('0x50'),'where':{'id':LISTID}}]})[_0x7f5f('0x2f')](function(_0x10943d){var _0x3767fa=[];if(_0x10943d){var _0x162ce1;for(var _0x2330f7=0x0,_0x599cdb;_0x2330f7<_0x10943d[_0x7f5f('0x1a')];_0x2330f7+=0x1){_0x599cdb=_0x10943d[_0x2330f7][_0x7f5f('0x51')]({'plain':!![]});switch(_0x599cdb[_0x7f5f('0x4f')]){case _0x7f5f('0x52'):_0x3767fa[_0x7f5f('0x30')](db[_0x7f5f('0x53')][_0x7f5f('0x54')](_0x1f1760(_0x599cdb,'VoiceQueueId'))[_0x7f5f('0x2f')](function(){})[_0x7f5f('0x31')](_0x1d21c8()));break;case _0x7f5f('0x55'):_0x3767fa[_0x7f5f('0x30')](db[_0x7f5f('0x53')]['query'](_0x4c1d1f(_0x599cdb,_0x7f5f('0x56')))['then'](function(){})[_0x7f5f('0x31')](_0x1d21c8()));break;default:_0x3767fa[_0x7f5f('0x30')](db[_0x7f5f('0x53')][_0x7f5f('0x54')](_0x282163(_0x599cdb,_0x7f5f('0x56')))[_0x7f5f('0x2f')](function(){})['catch'](_0x1d21c8()));}}}return _0x3767fa;})[_0x7f5f('0x57')]()['then'](function(){return db[_0x7f5f('0x4d')][_0x7f5f('0x4e')]({'where':{'type':_0x7f5f('0x58')},'attributes':['id'],'include':[{'model':db[_0x7f5f('0x59')],'as':'BlackLists','where':{'id':LISTID}}]})[_0x7f5f('0x2f')](function(_0x24647a){var _0x34308b=[];if(_0x24647a){var _0x496ce6;for(var _0x554c54=0x0,_0x4a0086;_0x554c54<_0x24647a[_0x7f5f('0x1a')];_0x554c54+=0x1){_0x4a0086=_0x24647a[_0x554c54][_0x7f5f('0x51')]({'plain':!![]});_0x34308b[_0x7f5f('0x30')](db[_0x7f5f('0x53')][_0x7f5f('0x54')](_0x56af9c(_0x4a0086,'VoiceQueueId'))[_0x7f5f('0x2f')](function(){})[_0x7f5f('0x31')](_0x1d21c8()));}}return _0x34308b;})['all']();})['then'](function(){return db[_0x7f5f('0x5a')]['findAll']({'attributes':['id',_0x7f5f('0x4f')],'include':[{'model':db[_0x7f5f('0x59')],'as':_0x7f5f('0x50'),'where':{'id':LISTID}}]})['then'](function(_0x4a0634){var _0x3fba38=[];if(_0x4a0634){for(var _0x50b4fb=0x0,_0x2225b7;_0x50b4fb<_0x4a0634[_0x7f5f('0x1a')];_0x50b4fb+=0x1){_0x2225b7=_0x4a0634[_0x50b4fb]['get']({'plain':!![]});switch(_0x2225b7['dialCheckDuplicateType']){case _0x7f5f('0x52'):_0x3fba38[_0x7f5f('0x30')](db['sequelize'][_0x7f5f('0x54')](_0x1f1760(_0x2225b7,_0x7f5f('0x5b')))[_0x7f5f('0x2f')](function(){})[_0x7f5f('0x31')](_0x1d21c8()));break;case _0x7f5f('0x55'):_0x3fba38[_0x7f5f('0x30')](db[_0x7f5f('0x53')]['query'](_0x4c1d1f(_0x2225b7,'CampaignId'))[_0x7f5f('0x2f')](function(){})[_0x7f5f('0x31')](_0x1d21c8()));break;default:_0x3fba38[_0x7f5f('0x30')](db['sequelize'][_0x7f5f('0x54')](_0x282163(_0x2225b7,'CampaignId'))['then'](function(){})['catch'](_0x1d21c8()));}}}return _0x3fba38;})['all']();})[_0x7f5f('0x2f')](function(){return db[_0x7f5f('0x5a')][_0x7f5f('0x4e')]({'attributes':['id'],'include':[{'model':db[_0x7f5f('0x59')],'as':_0x7f5f('0x5c'),'where':{'id':LISTID}}]})[_0x7f5f('0x2f')](function(_0x2bd6d7){var _0x4a8b74=[];if(_0x2bd6d7){for(var _0x768102=0x0,_0x262324;_0x768102<_0x2bd6d7['length'];_0x768102+=0x1){_0x262324=_0x2bd6d7[_0x768102]['get']({'plain':!![]});_0x4a8b74[_0x7f5f('0x30')](db[_0x7f5f('0x53')][_0x7f5f('0x54')](_0x56af9c(_0x262324,_0x7f5f('0x5b')))[_0x7f5f('0x2f')](function(){})['catch'](_0x1d21c8()));}}return _0x4a8b74;})['all']();})['catch'](function(_0x5e84d6){logger[_0x7f5f('0x14')](_0x7f5f('0x5d'),_0x7f5f('0x5e'),_0x5e84d6[_0x7f5f('0x1c')]);});}var processPromises=function(_0x1824f1){return BPromise['all'](promises)[_0x7f5f('0x2f')](function(_0x5973fe){})['catch'](function(_0x3b327f){logger[_0x7f5f('0x14')]('Error\x20processing\x20rows\x20block:',JSON[_0x7f5f('0x33')](_0x3b327f));})['finally'](function(){socket['emit'](_0x7f5f('0x5f')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x1824f1){return _0x1824f1[_0x7f5f('0x60')]();}});};var endCsv=function(){return BPromise[_0x7f5f('0x61')]()[_0x7f5f('0x2f')](function(){if(hopperContacts){return checkHopper();}})[_0x7f5f('0x2f')](function(){socket[_0x7f5f('0x62')]('contact:csv_'+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs['unlinkSync'](FILEPATH);}catch(_0x3ba9e3){logger[_0x7f5f('0x14')](_0x7f5f('0x63'),JSON['stringify'](_0x3ba9e3));}finally{process[_0x7f5f('0x64')](0x0);}});};process['on'](_0x7f5f('0x65'),function(){logger[_0x7f5f('0x66')](_0x7f5f('0x67'));endCsv();});function main(){return BPromise[_0x7f5f('0x61')]()[_0x7f5f('0x2f')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0x7f5f('0x12')](',');return db[_0x7f5f('0x2c')][_0x7f5f('0x4e')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0x7f5f('0x2f')](function(_0x5e6533){var _0x73f5fe=fs[_0x7f5f('0x68')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0x7f5f('0x69')](_0x73f5fe,{'header':!![],'skipEmptyLines':!![],'step':function(_0x112424,_0x3f4238){total+=0x1;var _0x5d9b1b=total;promises[_0x7f5f('0x30')](checkRow(_0x112424,_0x5e6533,_0x5d9b1b)[_0x7f5f('0x2f')](function(){success+=0x1;})[_0x7f5f('0x31')](function(_0x3e65e2){if(_0x3e65e2[_0x7f5f('0x14')]){errors+=0x1;delete _0x3e65e2[_0x7f5f('0x14')];}else if(_0x3e65e2[_0x7f5f('0x2b')]){duplicates+=0x1;delete _0x3e65e2[_0x7f5f('0x2b')];}rows['push'](_0x3e65e2);}));if(total%0xc8===0x0){_0x3f4238[_0x7f5f('0x6a')]();return processPromises(_0x3f4238);}},'complete':function(){return processPromises()[_0x7f5f('0x2f')](function(){logger[_0x7f5f('0x66')]('CSV\x20parsed\x20correctly!');endCsv();});},'error':function(_0x58b87a,_0x36abc6){logger['info'](_0x7f5f('0x6b'),JSON[_0x7f5f('0x33')](_0x58b87a));endCsv();}});})[_0x7f5f('0x31')](function(_0x1f8883){logger[_0x7f5f('0x14')](_0x7f5f('0x6c'),JSON[_0x7f5f('0x33')](_0x1f8883));});}main();