fa3f5deb30b3067e97096cb67cd7c93820747a7c
[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 _0x0eb6=['resolve','Unable\x20to\x20delete\x20temp\x20file:','exit','SIGINT','info','CSV\x20import\x20process\x20stopped!','createReadStream','parse','CSV\x20parsed\x20correctly!','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','bluebird','util','squel','papaparse','../../../mysqldb','../../../config/environment','../../../config/logger','redis','defaults','localhost','socket.io-emitter','../../../api/cmContact/cmContact.socket','argv','null','Missing\x20filepath\x20parameter!','undefined','zipObject','split','Missing\x20ListId\x20parameter!','Missing\x20socket_timestamp\x20parameter!','contact','index','test','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','length','map','error','hasOwnProperty','data','firstName','firstName\x20not\x20specified!','phone','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','duplicate','Duplicate\x20Contact','CmContact','keys','push','pick','Error\x20while\x20creating\x20contact:\x20','message','stringify','cmContact','checkHopper','inspect','into','cm_hopper','fromQuery','scheduledAt','ContactId','updatedAt','select','field','NOW()','toString','createdAt','from','cm_contacts','where','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','insert','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','id\x20IN\x20?','str','calleridnum','cm_hopper_final','\x20=\x20?','cm_hopper_black','VoiceQueue','findAll','outbound','CmList','Lists','then','get','dialCheckDuplicateType','always','sequelize','query','VoiceQueueId','onlyIfOpen','catch','all','CampaignId','BlackLists','cmContact,\x20%s,\x20%s','generalCheckHopper','Error\x20processing\x20rows\x20block:','finally','emit','contact:csv_','resume'];(function(_0x790bd2,_0x236fa2){var _0x3549b3=function(_0x414761){while(--_0x414761){_0x790bd2['push'](_0x790bd2['shift']());}};_0x3549b3(++_0x236fa2);}(_0x0eb6,0x15e));var _0x60eb=function(_0x36d703,_0x55b354){_0x36d703=_0x36d703-0x0;var _0x12c909=_0x0eb6[_0x36d703];return _0x12c909;};'use strict';var BPromise=require(_0x60eb('0x0'));var util=require(_0x60eb('0x1'));var _=require('lodash');var fs=require('fs');var squel=require(_0x60eb('0x2'));var Papa=require(_0x60eb('0x3'));var Redis=require('ioredis');var db=require(_0x60eb('0x4'))['db'];var config=require(_0x60eb('0x5'));var logger=require(_0x60eb('0x6'))('api');config[_0x60eb('0x7')]=_[_0x60eb('0x8')](config[_0x60eb('0x7')],{'host':_0x60eb('0x9'),'port':0x18eb});var socket=require(_0x60eb('0xa'))(new Redis(config[_0x60eb('0x7')]));require(_0x60eb('0xb'))['register'](socket);try{if(!process[_0x60eb('0xc')][0x2]||process[_0x60eb('0xc')][0x2]==='undefined'||process[_0x60eb('0xc')][0x2]===_0x60eb('0xd')){throw new Error(_0x60eb('0xe'));}var FILEPATH=process[_0x60eb('0xc')][0x2];if(!process['argv'][0x3]||process['argv'][0x3]==='undefined'||process[_0x60eb('0xc')][0x3]===_0x60eb('0xd')||!process['argv'][0x4]||process['argv'][0x4]===_0x60eb('0xf')||process[_0x60eb('0xc')][0x4]===_0x60eb('0xd')){throw new Error('Missing\x20binding\x20parameters!');}var FIELDS=_[_0x60eb('0x10')](process[_0x60eb('0xc')][0x3][_0x60eb('0x11')](','),process[_0x60eb('0xc')][0x4][_0x60eb('0x11')](','));if(!process['argv'][0x5]||process[_0x60eb('0xc')][0x5]==='undefined'||process[_0x60eb('0xc')][0x5]===_0x60eb('0xd')){throw new Error(_0x60eb('0x12'));}var LISTID=process['argv'][0x5];var COMPANYID=process[_0x60eb('0xc')][0x6]&&process['argv'][0x6]!==_0x60eb('0xf')&&process[_0x60eb('0xc')][0x6]!=='null'?process[_0x60eb('0xc')][0x6]:null;var DUPLICATES=process[_0x60eb('0xc')][0x7]&&process[_0x60eb('0xc')][0x7]!==_0x60eb('0xf')&&process[_0x60eb('0xc')][0x7]!=='null'?process[_0x60eb('0xc')][0x7]:null;if(!process[_0x60eb('0xc')][0x8]||process[_0x60eb('0xc')][0x8]==='undefined'||process['argv'][0x8]===_0x60eb('0xd')){throw new Error(_0x60eb('0x13'));}var SOCKET_TIMESTAMP=process['argv'][0x8];}catch(_0x5efb8a){logger['error'](_0x5efb8a);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(_0x6755d4,_0x2cbb3d,_0x58d3b4,_0xe36f1b){var _0x4039ce={'message':_0x2cbb3d};_0x4039ce[_0x6755d4]=!![];if(_0x58d3b4){_0x4039ce[_0x60eb('0x14')]=_0x58d3b4;}if(_0xe36f1b){_0x4039ce[_0x60eb('0x15')]=_0xe36f1b;}return _0x4039ce;}function isEmail(_0x35c8a3){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))*$/[_0x60eb('0x16')](_0x35c8a3);}function checkRow(_0x4f3b7a,_0x22ca90,_0x314eb9){return new BPromise(function(_0x422596,_0x12dd07){if(_['isNil'](_0x4f3b7a)){return _0x12dd07(handleCheckRowError('error',_0x60eb('0x17'),null,_0x314eb9));}if(_0x4f3b7a['errors']&&_0x4f3b7a[_0x60eb('0x18')][_0x60eb('0x19')]){var _0x177a8e=_[_0x60eb('0x1a')](_0x4f3b7a[_0x60eb('0x18')],'message')['join'](';');return _0x12dd07(handleCheckRowError(_0x60eb('0x1b'),_0x177a8e,null,_0x314eb9));}var _0x5a8b6c={};for(var _0x8f5541 in FIELDS){if(FIELDS[_0x60eb('0x1c')](_0x8f5541)&&FIELDS[_0x8f5541]){_0x5a8b6c[_0x8f5541]=_0x4f3b7a[_0x60eb('0x1d')][0x0][FIELDS[_0x8f5541]]||_0x4f3b7a[_0x60eb('0x1d')][0x0]['\ufeff'+FIELDS[_0x8f5541]];}}if(!_0x5a8b6c[_0x60eb('0x1e')]){return _0x12dd07(handleCheckRowError(_0x60eb('0x1b'),_0x60eb('0x1f'),null,_0x314eb9));}if(!_0x5a8b6c[_0x60eb('0x20')]){return _0x12dd07(handleCheckRowError(_0x60eb('0x1b'),_0x60eb('0x21'),null,_0x314eb9));}if(_0x5a8b6c['birthDate']){var _0xd9dbb4=moment(_0x5a8b6c[_0x60eb('0x22')],_0x60eb('0x23'));if(!_0xd9dbb4[_0x60eb('0x24')]()){return _0x12dd07(handleCheckRowError('error',_0x60eb('0x25'),null,_0x314eb9));}}if(_0x5a8b6c[_0x60eb('0x26')]){if(!isEmail(_0x5a8b6c[_0x60eb('0x26')])){return _0x12dd07(handleCheckRowError(_0x60eb('0x1b'),_0x60eb('0x27'),null,_0x314eb9));}}_0x5a8b6c[_0x60eb('0x28')]=LISTID;_0x5a8b6c['CompanyId']=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0x60eb('0x19')]&&_0x22ca90){var _0x5dfa86={};for(var _0x255ce2=0x0,_0x4a981b=DUPLICATES[_0x60eb('0x19')];_0x255ce2<_0x4a981b;_0x255ce2+=0x1){_0x5dfa86[DUPLICATES[_0x255ce2]]=_0x5a8b6c[DUPLICATES[_0x255ce2]];}var _0x2064c8=_['find'](_0x22ca90,_0x5dfa86);if(_0x2064c8){return _0x12dd07(handleCheckRowError(_0x60eb('0x29'),_0x60eb('0x2a'),_0x2064c8,_0x314eb9));}}return db[_0x60eb('0x2b')]['create'](_0x5a8b6c,{'raw':!![],'hooks':![],'fields':_[_0x60eb('0x2c')](_0x5a8b6c)})['then'](function(_0x385370){if(DUPLICATES&&DUPLICATES[_0x60eb('0x19')]&&_0x22ca90){_0x22ca90[_0x60eb('0x2d')](_[_0x60eb('0x2e')](_0x5a8b6c,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x385370['id'];return _0x422596();})['catch'](function(_0xcfb02b){return _0x12dd07(handleCheckRowError(_0x60eb('0x1b'),_0x60eb('0x2f')+(_0xcfb02b[_0x60eb('0x30')]||JSON[_0x60eb('0x31')](_0xcfb02b)),null,_0x314eb9));});});}function checkHopper(){function _0x2bf514(){return function(_0x304a1d){logger[_0x60eb('0x1b')](_0x60eb('0x32'),_0x60eb('0x33'),util[_0x60eb('0x34')](_0x304a1d,{'showHidden':![],'depth':null}));};}var _0x45ea2b=function(_0x4fb7e4,_0x2d9595){var _0x429ad8=squel['insert']()[_0x60eb('0x35')](_0x60eb('0x36'))[_0x60eb('0x37')](['phone',_0x60eb('0x38'),_0x60eb('0x39'),_0x60eb('0x28'),_0x2d9595,'createdAt',_0x60eb('0x3a')],squel[_0x60eb('0x3b')]()[_0x60eb('0x3c')](_0x60eb('0x20'),'phone')['field'](_0x60eb('0x3d'),_0x60eb('0x38'))[_0x60eb('0x3c')]('id',_0x60eb('0x39'))[_0x60eb('0x3c')](LISTID['toString'](),_0x60eb('0x28'))['field'](_0x4fb7e4['id'][_0x60eb('0x3e')](),_0x2d9595)[_0x60eb('0x3c')]('NOW()',_0x60eb('0x3f'))[_0x60eb('0x3c')](_0x60eb('0x3d'),_0x60eb('0x3a'))[_0x60eb('0x40')](_0x60eb('0x41'))['where']('deletedAt\x20IS\x20NULL')[_0x60eb('0x42')]('ListId\x20=\x20?',LISTID[_0x60eb('0x3e')]())['where'](_0x60eb('0x43'))[_0x60eb('0x42')](_0x60eb('0x44'),squel['select']()[_0x60eb('0x3c')](_0x60eb('0x20'))[_0x60eb('0x40')](_0x60eb('0x36'))[_0x60eb('0x42')](_0x2d9595+'\x20=\x20?',_0x4fb7e4['id'][_0x60eb('0x3e')]())))[_0x60eb('0x3e')]();return _0x429ad8;};var _0x438e42=function(_0x4b917d,_0x5b80ad){var _0x9e80ed=squel[_0x60eb('0x45')]()['into'](_0x60eb('0x36'))[_0x60eb('0x37')](['phone',_0x60eb('0x38'),_0x60eb('0x39'),'ListId',_0x5b80ad,_0x60eb('0x3f'),'updatedAt'],squel[_0x60eb('0x3b')]()[_0x60eb('0x3c')](_0x60eb('0x20'),_0x60eb('0x20'))[_0x60eb('0x3c')](_0x60eb('0x3d'),_0x60eb('0x38'))[_0x60eb('0x3c')]('id','ContactId')[_0x60eb('0x3c')](LISTID[_0x60eb('0x3e')](),_0x60eb('0x28'))[_0x60eb('0x3c')](_0x4b917d['id'][_0x60eb('0x3e')](),_0x5b80ad)[_0x60eb('0x3c')]('NOW()','createdAt')[_0x60eb('0x3c')](_0x60eb('0x3d'),_0x60eb('0x3a'))[_0x60eb('0x40')](_0x60eb('0x41'))[_0x60eb('0x42')](_0x60eb('0x46'))[_0x60eb('0x42')](_0x60eb('0x47'),LISTID[_0x60eb('0x3e')]())[_0x60eb('0x42')](_0x60eb('0x48'),squel[_0x60eb('0x49')](hopperContacts))[_0x60eb('0x42')](_0x60eb('0x43'))[_0x60eb('0x42')](_0x60eb('0x44'),squel[_0x60eb('0x3b')]()[_0x60eb('0x3c')](_0x60eb('0x4a'))[_0x60eb('0x40')](_0x60eb('0x4b'))['where'](_0x5b80ad+_0x60eb('0x4c'),_0x4b917d['id'][_0x60eb('0x3e')]()))[_0x60eb('0x42')](_0x60eb('0x44'),squel[_0x60eb('0x3b')]()[_0x60eb('0x3c')](_0x60eb('0x20'))['from'](_0x60eb('0x36'))[_0x60eb('0x42')](_0x5b80ad+_0x60eb('0x4c'),_0x4b917d['id'][_0x60eb('0x3e')]())))[_0x60eb('0x3e')]();return _0x9e80ed;};function _0x2ca631(_0x5b0be5,_0x50f569){var _0x5c2caa=squel[_0x60eb('0x45')]()[_0x60eb('0x35')](_0x60eb('0x36'))[_0x60eb('0x37')]([_0x60eb('0x20'),_0x60eb('0x38'),'ContactId',_0x60eb('0x28'),_0x50f569,_0x60eb('0x3f'),_0x60eb('0x3a')],squel['select']()['field']('phone',_0x60eb('0x20'))[_0x60eb('0x3c')](_0x60eb('0x3d'),'scheduledAt')['field']('id',_0x60eb('0x39'))[_0x60eb('0x3c')](LISTID[_0x60eb('0x3e')](),_0x60eb('0x28'))[_0x60eb('0x3c')](_0x5b0be5['id'][_0x60eb('0x3e')](),_0x50f569)[_0x60eb('0x3c')](_0x60eb('0x3d'),_0x60eb('0x3f'))[_0x60eb('0x3c')](_0x60eb('0x3d'),_0x60eb('0x3a'))[_0x60eb('0x40')]('cm_contacts')['where'](_0x60eb('0x46'))[_0x60eb('0x42')](_0x60eb('0x47'),LISTID[_0x60eb('0x3e')]())[_0x60eb('0x42')](_0x60eb('0x48'),squel[_0x60eb('0x49')](hopperContacts))[_0x60eb('0x42')](_0x60eb('0x43')))[_0x60eb('0x3e')]();return _0x5c2caa;}function _0x3a4c6c(_0x5eea0b,_0x515076){var _0x2071ee=squel[_0x60eb('0x45')]()[_0x60eb('0x35')](_0x60eb('0x4d'))[_0x60eb('0x37')](['phone',_0x60eb('0x39'),_0x60eb('0x28'),_0x515076,_0x60eb('0x3f'),_0x60eb('0x3a')],squel[_0x60eb('0x3b')]()[_0x60eb('0x3c')](_0x60eb('0x20'),_0x60eb('0x20'))[_0x60eb('0x3c')]('id',_0x60eb('0x39'))[_0x60eb('0x3c')](LISTID[_0x60eb('0x3e')](),_0x60eb('0x28'))[_0x60eb('0x3c')](_0x5eea0b['id'][_0x60eb('0x3e')](),_0x515076)[_0x60eb('0x3c')](_0x60eb('0x3d'),_0x60eb('0x3f'))[_0x60eb('0x3c')](_0x60eb('0x3d'),_0x60eb('0x3a'))[_0x60eb('0x40')](_0x60eb('0x41'))[_0x60eb('0x42')](_0x60eb('0x46'))[_0x60eb('0x42')](_0x60eb('0x47'),LISTID[_0x60eb('0x3e')]())[_0x60eb('0x42')](_0x60eb('0x48'),squel['str'](hopperContacts))[_0x60eb('0x42')](_0x60eb('0x43')))[_0x60eb('0x3e')]();return _0x2071ee;}return db[_0x60eb('0x4e')][_0x60eb('0x4f')]({'where':{'type':_0x60eb('0x50')},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db[_0x60eb('0x51')],'as':_0x60eb('0x52'),'where':{'id':LISTID}}]})[_0x60eb('0x53')](function(_0x57e761){var _0x5ecbb7=[];if(_0x57e761){var _0x4fcf68;for(var _0xb3d4da=0x0,_0x3ad8c6;_0xb3d4da<_0x57e761[_0x60eb('0x19')];_0xb3d4da+=0x1){_0x3ad8c6=_0x57e761[_0xb3d4da][_0x60eb('0x54')]({'plain':!![]});switch(_0x3ad8c6[_0x60eb('0x55')]){case _0x60eb('0x56'):_0x5ecbb7['push'](db[_0x60eb('0x57')][_0x60eb('0x58')](_0x438e42(_0x3ad8c6,_0x60eb('0x59')))[_0x60eb('0x53')](function(){})['catch'](_0x2bf514()));break;case _0x60eb('0x5a'):_0x5ecbb7[_0x60eb('0x2d')](db[_0x60eb('0x57')][_0x60eb('0x58')](_0x45ea2b(_0x3ad8c6,'VoiceQueueId'))[_0x60eb('0x53')](function(){})[_0x60eb('0x5b')](_0x2bf514()));break;default:_0x5ecbb7[_0x60eb('0x2d')](db[_0x60eb('0x57')][_0x60eb('0x58')](_0x2ca631(_0x3ad8c6,_0x60eb('0x59')))['then'](function(){})['catch'](_0x2bf514()));}}}return _0x5ecbb7;})[_0x60eb('0x5c')]()[_0x60eb('0x53')](function(){return db[_0x60eb('0x4e')][_0x60eb('0x4f')]({'where':{'type':_0x60eb('0x50')},'attributes':['id'],'include':[{'model':db['CmList'],'as':'BlackLists','where':{'id':LISTID}}]})[_0x60eb('0x53')](function(_0x17132f){var _0x178bcf=[];if(_0x17132f){var _0x133f6d;for(var _0x539789=0x0,_0x5c79a4;_0x539789<_0x17132f[_0x60eb('0x19')];_0x539789+=0x1){_0x5c79a4=_0x17132f[_0x539789][_0x60eb('0x54')]({'plain':!![]});_0x178bcf[_0x60eb('0x2d')](db['sequelize'][_0x60eb('0x58')](_0x3a4c6c(_0x5c79a4,_0x60eb('0x59')))[_0x60eb('0x53')](function(){})['catch'](_0x2bf514()));}}return _0x178bcf;})[_0x60eb('0x5c')]();})[_0x60eb('0x53')](function(){return db['Campaign'][_0x60eb('0x4f')]({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db[_0x60eb('0x51')],'as':_0x60eb('0x52'),'where':{'id':LISTID}}]})[_0x60eb('0x53')](function(_0xa0af9b){var _0x3123af=[];if(_0xa0af9b){for(var _0x7e41fe=0x0,_0x121c1c;_0x7e41fe<_0xa0af9b['length'];_0x7e41fe+=0x1){_0x121c1c=_0xa0af9b[_0x7e41fe][_0x60eb('0x54')]({'plain':!![]});switch(_0x121c1c[_0x60eb('0x55')]){case _0x60eb('0x56'):_0x3123af['push'](db['sequelize'][_0x60eb('0x58')](_0x438e42(_0x121c1c,_0x60eb('0x5d')))['then'](function(){})[_0x60eb('0x5b')](_0x2bf514()));break;case _0x60eb('0x5a'):_0x3123af['push'](db[_0x60eb('0x57')][_0x60eb('0x58')](_0x45ea2b(_0x121c1c,'CampaignId'))[_0x60eb('0x53')](function(){})[_0x60eb('0x5b')](_0x2bf514()));break;default:_0x3123af[_0x60eb('0x2d')](db['sequelize'][_0x60eb('0x58')](_0x2ca631(_0x121c1c,_0x60eb('0x5d')))['then'](function(){})[_0x60eb('0x5b')](_0x2bf514()));}}}return _0x3123af;})[_0x60eb('0x5c')]();})['then'](function(){return db['Campaign']['findAll']({'attributes':['id'],'include':[{'model':db['CmList'],'as':_0x60eb('0x5e'),'where':{'id':LISTID}}]})[_0x60eb('0x53')](function(_0x2444b4){var _0x204232=[];if(_0x2444b4){for(var _0x204b9b=0x0,_0x43176f;_0x204b9b<_0x2444b4[_0x60eb('0x19')];_0x204b9b+=0x1){_0x43176f=_0x2444b4[_0x204b9b][_0x60eb('0x54')]({'plain':!![]});_0x204232[_0x60eb('0x2d')](db[_0x60eb('0x57')][_0x60eb('0x58')](_0x3a4c6c(_0x43176f,_0x60eb('0x5d')))[_0x60eb('0x53')](function(){})[_0x60eb('0x5b')](_0x2bf514()));}}return _0x204232;})[_0x60eb('0x5c')]();})[_0x60eb('0x5b')](function(_0x406e06){logger[_0x60eb('0x1b')](_0x60eb('0x5f'),_0x60eb('0x60'),_0x406e06['message']);});}var processPromises=function(_0x3a6c55){return BPromise[_0x60eb('0x5c')](promises)[_0x60eb('0x53')](function(_0xbadba5){})[_0x60eb('0x5b')](function(_0x64bd4e){logger['error'](_0x60eb('0x61'),JSON[_0x60eb('0x31')](_0x64bd4e));})[_0x60eb('0x62')](function(){socket[_0x60eb('0x63')](_0x60eb('0x64')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x3a6c55){return _0x3a6c55[_0x60eb('0x65')]();}});};var endCsv=function(){return BPromise[_0x60eb('0x66')]()[_0x60eb('0x53')](function(){if(hopperContacts){return checkHopper();}})['then'](function(){socket[_0x60eb('0x63')]('contact:csv_'+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs['unlinkSync'](FILEPATH);}catch(_0x24166e){logger['error'](_0x60eb('0x67'),JSON[_0x60eb('0x31')](_0x24166e));}finally{process[_0x60eb('0x68')](0x0);}});};process['on'](_0x60eb('0x69'),function(){logger[_0x60eb('0x6a')](_0x60eb('0x6b'));endCsv();});function main(){return BPromise[_0x60eb('0x66')]()[_0x60eb('0x53')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0x60eb('0x11')](',');return db[_0x60eb('0x2b')][_0x60eb('0x4f')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0x60eb('0x53')](function(_0x2cd911){var _0x3e6f67=fs[_0x60eb('0x6c')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0x60eb('0x6d')](_0x3e6f67,{'header':!![],'skipEmptyLines':!![],'step':function(_0xf04eff,_0x31838e){total+=0x1;var _0x344bf4=total;promises['push'](checkRow(_0xf04eff,_0x2cd911,_0x344bf4)['then'](function(){success+=0x1;})[_0x60eb('0x5b')](function(_0x4f9bf6){if(_0x4f9bf6[_0x60eb('0x1b')]){errors+=0x1;delete _0x4f9bf6[_0x60eb('0x1b')];}else if(_0x4f9bf6[_0x60eb('0x29')]){duplicates+=0x1;delete _0x4f9bf6[_0x60eb('0x29')];}rows['push'](_0x4f9bf6);}));if(total%0xc8===0x0){_0x31838e['pause']();return processPromises(_0x31838e);}},'complete':function(){return processPromises()[_0x60eb('0x53')](function(){logger[_0x60eb('0x6a')](_0x60eb('0x6e'));endCsv();});},'error':function(_0x319c38,_0x20a6e0){logger[_0x60eb('0x6a')](_0x60eb('0x6f'),JSON[_0x60eb('0x31')](_0x319c38));endCsv();}});})['catch'](function(_0x549c83){logger[_0x60eb('0x1b')](_0x60eb('0x70'),JSON[_0x60eb('0x31')](_0x549c83));});}main();