d0217bf821a857c8c9a8194977bbf53157c24a2f
[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 _0xb27d=['findAll','outbound','CmList','Lists','dialCheckDuplicateType','always','query','VoiceQueueId','onlyIfOpen','sequelize','all','BlackLists','get','Campaign','CampaignId','cmContact,\x20%s,\x20%s','generalCheckHopper','message','stringify','finally','emit','contact:csv_','resume','resolve','unlinkSync','Unable\x20to\x20delete\x20temp\x20file:','exit','SIGINT','info','CSV\x20import\x20process\x20stopped!','createReadStream','pause','CSV\x20parsed\x20correctly!','CSV\x20parse\x20error','bluebird','lodash','papaparse','ioredis','../../../mysqldb','../../../config/environment','api','defaults','localhost','socket.io-emitter','../../../api/cmContact/cmContact.socket','register','argv','null','Missing\x20filepath\x20parameter!','undefined','zipObject','split','Missing\x20ListId\x20parameter!','error','test','isNil','map','errors','hasOwnProperty','data','firstName','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','length','find','duplicate','Duplicate\x20Contact','CmContact','create','keys','then','push','catch','cmContact','inspect','insert','cm_hopper','phone','ContactId','createdAt','updatedAt','select','field','NOW()','toString','cm_contacts','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','where','phone\x20NOT\x20IN\x20(?)','from','scheduledAt','str','calleridnum','cm_hopper_final','\x20=\x20?','fromQuery','phone\x20IS\x20NOT\x20NULL','id\x20IN\x20?','VoiceQueue'];(function(_0x23e337,_0x1e3c57){var _0x45facf=function(_0x2abfa3){while(--_0x2abfa3){_0x23e337['push'](_0x23e337['shift']());}};_0x45facf(++_0x1e3c57);}(_0xb27d,0x163));var _0xdb27=function(_0x13d07a,_0x41efc3){_0x13d07a=_0x13d07a-0x0;var _0x5ee0ee=_0xb27d[_0x13d07a];return _0x5ee0ee;};'use strict';var BPromise=require(_0xdb27('0x0'));var util=require('util');var _=require(_0xdb27('0x1'));var fs=require('fs');var squel=require('squel');var Papa=require(_0xdb27('0x2'));var Redis=require(_0xdb27('0x3'));var db=require(_0xdb27('0x4'))['db'];var config=require(_0xdb27('0x5'));var logger=require('../../../config/logger')(_0xdb27('0x6'));config['redis']=_[_0xdb27('0x7')](config['redis'],{'host':_0xdb27('0x8'),'port':0x18eb});var socket=require(_0xdb27('0x9'))(new Redis(config['redis']));require(_0xdb27('0xa'))[_0xdb27('0xb')](socket);try{if(!process[_0xdb27('0xc')][0x2]||process[_0xdb27('0xc')][0x2]==='undefined'||process[_0xdb27('0xc')][0x2]===_0xdb27('0xd')){throw new Error(_0xdb27('0xe'));}var FILEPATH=process[_0xdb27('0xc')][0x2];if(!process[_0xdb27('0xc')][0x3]||process[_0xdb27('0xc')][0x3]===_0xdb27('0xf')||process[_0xdb27('0xc')][0x3]===_0xdb27('0xd')||!process[_0xdb27('0xc')][0x4]||process[_0xdb27('0xc')][0x4]===_0xdb27('0xf')||process[_0xdb27('0xc')][0x4]===_0xdb27('0xd')){throw new Error('Missing\x20binding\x20parameters!');}var FIELDS=_[_0xdb27('0x10')](process['argv'][0x3][_0xdb27('0x11')](','),process[_0xdb27('0xc')][0x4][_0xdb27('0x11')](','));if(!process[_0xdb27('0xc')][0x5]||process[_0xdb27('0xc')][0x5]==='undefined'||process['argv'][0x5]===_0xdb27('0xd')){throw new Error(_0xdb27('0x12'));}var LISTID=process[_0xdb27('0xc')][0x5];var COMPANYID=process[_0xdb27('0xc')][0x6]&&process['argv'][0x6]!==_0xdb27('0xf')&&process[_0xdb27('0xc')][0x6]!=='null'?process[_0xdb27('0xc')][0x6]:null;var DUPLICATES=process[_0xdb27('0xc')][0x7]&&process['argv'][0x7]!==_0xdb27('0xf')&&process[_0xdb27('0xc')][0x7]!==_0xdb27('0xd')?process[_0xdb27('0xc')][0x7]:null;if(!process[_0xdb27('0xc')][0x8]||process['argv'][0x8]===_0xdb27('0xf')||process[_0xdb27('0xc')][0x8]==='null'){throw new Error('Missing\x20socket_timestamp\x20parameter!');}var SOCKET_TIMESTAMP=process[_0xdb27('0xc')][0x8];}catch(_0x486537){logger[_0xdb27('0x13')](_0x486537);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(_0x5ef77b,_0x507354,_0x2a9b4a,_0x26650c){var _0x1fb7f8={'message':_0x507354};_0x1fb7f8[_0x5ef77b]=!![];if(_0x2a9b4a){_0x1fb7f8['contact']=_0x2a9b4a;}if(_0x26650c){_0x1fb7f8['index']=_0x26650c;}return _0x1fb7f8;}function isEmail(_0x1ce25c){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))*$/[_0xdb27('0x14')](_0x1ce25c);}function checkRow(_0x62ff3b,_0xb7ae65,_0x2122e8){return new BPromise(function(_0x50c3d2,_0x27879f){if(_[_0xdb27('0x15')](_0x62ff3b)){return _0x27879f(handleCheckRowError(_0xdb27('0x13'),'The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!',null,_0x2122e8));}if(_0x62ff3b['errors']&&_0x62ff3b['errors']['length']){var _0x2df5d8=_[_0xdb27('0x16')](_0x62ff3b[_0xdb27('0x17')],'message')['join'](';');return _0x27879f(handleCheckRowError('error',_0x2df5d8,null,_0x2122e8));}var _0x1ef36d={};for(var _0x3e4402 in FIELDS){if(FIELDS[_0xdb27('0x18')](_0x3e4402)&&FIELDS[_0x3e4402]){_0x1ef36d[_0x3e4402]=_0x62ff3b[_0xdb27('0x19')][0x0][FIELDS[_0x3e4402]]||_0x62ff3b[_0xdb27('0x19')][0x0]['\ufeff'+FIELDS[_0x3e4402]];}}if(!_0x1ef36d[_0xdb27('0x1a')]){return _0x27879f(handleCheckRowError(_0xdb27('0x13'),'firstName\x20not\x20specified!',null,_0x2122e8));}if(!_0x1ef36d['phone']){return _0x27879f(handleCheckRowError('error',_0xdb27('0x1b'),null,_0x2122e8));}if(_0x1ef36d['birthDate']){var _0x4dcc81=moment(_0x1ef36d[_0xdb27('0x1c')],_0xdb27('0x1d'));if(!_0x4dcc81[_0xdb27('0x1e')]()){return _0x27879f(handleCheckRowError(_0xdb27('0x13'),_0xdb27('0x1f'),null,_0x2122e8));}}if(_0x1ef36d[_0xdb27('0x20')]){if(!isEmail(_0x1ef36d[_0xdb27('0x20')])){return _0x27879f(handleCheckRowError('error',_0xdb27('0x21'),null,_0x2122e8));}}_0x1ef36d[_0xdb27('0x22')]=LISTID;_0x1ef36d[_0xdb27('0x23')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0xdb27('0x24')]&&_0xb7ae65){var _0x52a874={};for(var _0x435e30=0x0,_0x3bb9e7=DUPLICATES['length'];_0x435e30<_0x3bb9e7;_0x435e30+=0x1){_0x52a874[DUPLICATES[_0x435e30]]=_0x1ef36d[DUPLICATES[_0x435e30]];}var _0x5ca331=_[_0xdb27('0x25')](_0xb7ae65,_0x52a874);if(_0x5ca331){return _0x27879f(handleCheckRowError(_0xdb27('0x26'),_0xdb27('0x27'),_0x5ca331,_0x2122e8));}}return db[_0xdb27('0x28')][_0xdb27('0x29')](_0x1ef36d,{'raw':!![],'hooks':![],'fields':_[_0xdb27('0x2a')](_0x1ef36d)})[_0xdb27('0x2b')](function(_0x1eb6e4){if(DUPLICATES&&DUPLICATES[_0xdb27('0x24')]&&_0xb7ae65){_0xb7ae65[_0xdb27('0x2c')](_['pick'](_0x1ef36d,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x1eb6e4['id'];return _0x50c3d2();})[_0xdb27('0x2d')](function(_0x17d9ca){return _0x27879f(handleCheckRowError('error','Error\x20while\x20creating\x20contact:\x20'+(_0x17d9ca['message']||JSON['stringify'](_0x17d9ca)),null,_0x2122e8));});});}function checkHopper(){function _0x28137c(){return function(_0x3e2059){logger['error'](_0xdb27('0x2e'),'checkHopper',util[_0xdb27('0x2f')](_0x3e2059,{'showHidden':![],'depth':null}));};}var _0x201854=function(_0x1a81e4,_0x431e3c){var _0x48c645=squel[_0xdb27('0x30')]()['into'](_0xdb27('0x31'))['fromQuery']([_0xdb27('0x32'),'scheduledAt',_0xdb27('0x33'),_0xdb27('0x22'),_0x431e3c,_0xdb27('0x34'),_0xdb27('0x35')],squel[_0xdb27('0x36')]()[_0xdb27('0x37')](_0xdb27('0x32'),_0xdb27('0x32'))[_0xdb27('0x37')](_0xdb27('0x38'),'scheduledAt')[_0xdb27('0x37')]('id',_0xdb27('0x33'))['field'](LISTID[_0xdb27('0x39')](),_0xdb27('0x22'))[_0xdb27('0x37')](_0x1a81e4['id'][_0xdb27('0x39')](),_0x431e3c)[_0xdb27('0x37')](_0xdb27('0x38'),_0xdb27('0x34'))[_0xdb27('0x37')](_0xdb27('0x38'),_0xdb27('0x35'))['from'](_0xdb27('0x3a'))['where'](_0xdb27('0x3b'))['where'](_0xdb27('0x3c'),LISTID[_0xdb27('0x39')]())[_0xdb27('0x3d')]('phone\x20IS\x20NOT\x20NULL')['where'](_0xdb27('0x3e'),squel['select']()[_0xdb27('0x37')]('phone')[_0xdb27('0x3f')]('cm_hopper')[_0xdb27('0x3d')](_0x431e3c+'\x20=\x20?',_0x1a81e4['id']['toString']())))['toString']();return _0x48c645;};var _0x3feeb7=function(_0x3c5421,_0xf9ba1){var _0x2a07bd=squel[_0xdb27('0x30')]()['into'](_0xdb27('0x31'))['fromQuery']([_0xdb27('0x32'),_0xdb27('0x40'),_0xdb27('0x33'),_0xdb27('0x22'),_0xf9ba1,_0xdb27('0x34'),_0xdb27('0x35')],squel['select']()['field'](_0xdb27('0x32'),_0xdb27('0x32'))[_0xdb27('0x37')](_0xdb27('0x38'),'scheduledAt')[_0xdb27('0x37')]('id','ContactId')['field'](LISTID[_0xdb27('0x39')](),'ListId')[_0xdb27('0x37')](_0x3c5421['id']['toString'](),_0xf9ba1)[_0xdb27('0x37')](_0xdb27('0x38'),_0xdb27('0x34'))[_0xdb27('0x37')](_0xdb27('0x38'),_0xdb27('0x35'))[_0xdb27('0x3f')]('cm_contacts')[_0xdb27('0x3d')](_0xdb27('0x3b'))['where'](_0xdb27('0x3c'),LISTID[_0xdb27('0x39')]())[_0xdb27('0x3d')]('id\x20IN\x20?',squel[_0xdb27('0x41')](hopperContacts))[_0xdb27('0x3d')]('phone\x20IS\x20NOT\x20NULL')[_0xdb27('0x3d')](_0xdb27('0x3e'),squel[_0xdb27('0x36')]()[_0xdb27('0x37')](_0xdb27('0x42'))['from'](_0xdb27('0x43'))[_0xdb27('0x3d')](_0xf9ba1+_0xdb27('0x44'),_0x3c5421['id']['toString']()))[_0xdb27('0x3d')](_0xdb27('0x3e'),squel['select']()[_0xdb27('0x37')](_0xdb27('0x32'))[_0xdb27('0x3f')](_0xdb27('0x31'))[_0xdb27('0x3d')](_0xf9ba1+_0xdb27('0x44'),_0x3c5421['id'][_0xdb27('0x39')]())))[_0xdb27('0x39')]();return _0x2a07bd;};function _0xd4ca30(_0x16d273,_0x2fbba0){var _0x67eed8=squel[_0xdb27('0x30')]()['into'](_0xdb27('0x31'))[_0xdb27('0x45')]([_0xdb27('0x32'),_0xdb27('0x40'),_0xdb27('0x33'),_0xdb27('0x22'),_0x2fbba0,_0xdb27('0x34'),_0xdb27('0x35')],squel[_0xdb27('0x36')]()[_0xdb27('0x37')](_0xdb27('0x32'),'phone')[_0xdb27('0x37')](_0xdb27('0x38'),_0xdb27('0x40'))['field']('id',_0xdb27('0x33'))[_0xdb27('0x37')](LISTID['toString'](),'ListId')[_0xdb27('0x37')](_0x16d273['id']['toString'](),_0x2fbba0)[_0xdb27('0x37')](_0xdb27('0x38'),_0xdb27('0x34'))[_0xdb27('0x37')](_0xdb27('0x38'),_0xdb27('0x35'))[_0xdb27('0x3f')](_0xdb27('0x3a'))['where'](_0xdb27('0x3b'))[_0xdb27('0x3d')](_0xdb27('0x3c'),LISTID[_0xdb27('0x39')]())[_0xdb27('0x3d')]('id\x20IN\x20?',squel[_0xdb27('0x41')](hopperContacts))['where'](_0xdb27('0x46')))[_0xdb27('0x39')]();return _0x67eed8;}function _0x45d472(_0x43b71e,_0x6e6509){var _0x3b4b5f=squel[_0xdb27('0x30')]()['into']('cm_hopper_black')[_0xdb27('0x45')]([_0xdb27('0x32'),_0xdb27('0x33'),_0xdb27('0x22'),_0x6e6509,'createdAt',_0xdb27('0x35')],squel[_0xdb27('0x36')]()[_0xdb27('0x37')](_0xdb27('0x32'),_0xdb27('0x32'))[_0xdb27('0x37')]('id',_0xdb27('0x33'))['field'](LISTID['toString'](),_0xdb27('0x22'))[_0xdb27('0x37')](_0x43b71e['id'][_0xdb27('0x39')](),_0x6e6509)[_0xdb27('0x37')](_0xdb27('0x38'),_0xdb27('0x34'))[_0xdb27('0x37')]('NOW()',_0xdb27('0x35'))[_0xdb27('0x3f')](_0xdb27('0x3a'))[_0xdb27('0x3d')]('deletedAt\x20IS\x20NULL')[_0xdb27('0x3d')]('ListId\x20=\x20?',LISTID[_0xdb27('0x39')]())['where'](_0xdb27('0x47'),squel[_0xdb27('0x41')](hopperContacts))[_0xdb27('0x3d')](_0xdb27('0x46')))[_0xdb27('0x39')]();return _0x3b4b5f;}return db[_0xdb27('0x48')][_0xdb27('0x49')]({'where':{'type':_0xdb27('0x4a')},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db[_0xdb27('0x4b')],'as':_0xdb27('0x4c'),'where':{'id':LISTID}}]})['then'](function(_0x1bb7dd){var _0x58f09f=[];if(_0x1bb7dd){var _0x392916;for(var _0x3d41dc=0x0,_0x1fca81;_0x3d41dc<_0x1bb7dd[_0xdb27('0x24')];_0x3d41dc+=0x1){_0x1fca81=_0x1bb7dd[_0x3d41dc]['get']({'plain':!![]});switch(_0x1fca81[_0xdb27('0x4d')]){case _0xdb27('0x4e'):_0x58f09f[_0xdb27('0x2c')](db['sequelize'][_0xdb27('0x4f')](_0x3feeb7(_0x1fca81,_0xdb27('0x50')))[_0xdb27('0x2b')](function(){})['catch'](_0x28137c()));break;case _0xdb27('0x51'):_0x58f09f[_0xdb27('0x2c')](db[_0xdb27('0x52')][_0xdb27('0x4f')](_0x201854(_0x1fca81,'VoiceQueueId'))[_0xdb27('0x2b')](function(){})[_0xdb27('0x2d')](_0x28137c()));break;default:_0x58f09f[_0xdb27('0x2c')](db[_0xdb27('0x52')][_0xdb27('0x4f')](_0xd4ca30(_0x1fca81,_0xdb27('0x50')))[_0xdb27('0x2b')](function(){})[_0xdb27('0x2d')](_0x28137c()));}}}return _0x58f09f;})[_0xdb27('0x53')]()[_0xdb27('0x2b')](function(){return db[_0xdb27('0x48')][_0xdb27('0x49')]({'where':{'type':_0xdb27('0x4a')},'attributes':['id'],'include':[{'model':db[_0xdb27('0x4b')],'as':_0xdb27('0x54'),'where':{'id':LISTID}}]})[_0xdb27('0x2b')](function(_0x2b3267){var _0x5c961e=[];if(_0x2b3267){var _0x5dcb1c;for(var _0x52fd5f=0x0,_0x2993a1;_0x52fd5f<_0x2b3267[_0xdb27('0x24')];_0x52fd5f+=0x1){_0x2993a1=_0x2b3267[_0x52fd5f][_0xdb27('0x55')]({'plain':!![]});_0x5c961e[_0xdb27('0x2c')](db['sequelize']['query'](_0x45d472(_0x2993a1,_0xdb27('0x50')))[_0xdb27('0x2b')](function(){})[_0xdb27('0x2d')](_0x28137c()));}}return _0x5c961e;})[_0xdb27('0x53')]();})[_0xdb27('0x2b')](function(){return db[_0xdb27('0x56')]['findAll']({'attributes':['id',_0xdb27('0x4d')],'include':[{'model':db[_0xdb27('0x4b')],'as':'Lists','where':{'id':LISTID}}]})[_0xdb27('0x2b')](function(_0x2b452f){var _0x4f6093=[];if(_0x2b452f){for(var _0x1f6dc4=0x0,_0x2ddc22;_0x1f6dc4<_0x2b452f['length'];_0x1f6dc4+=0x1){_0x2ddc22=_0x2b452f[_0x1f6dc4][_0xdb27('0x55')]({'plain':!![]});switch(_0x2ddc22['dialCheckDuplicateType']){case'always':_0x4f6093[_0xdb27('0x2c')](db[_0xdb27('0x52')][_0xdb27('0x4f')](_0x3feeb7(_0x2ddc22,_0xdb27('0x57')))['then'](function(){})['catch'](_0x28137c()));break;case _0xdb27('0x51'):_0x4f6093[_0xdb27('0x2c')](db[_0xdb27('0x52')]['query'](_0x201854(_0x2ddc22,_0xdb27('0x57')))[_0xdb27('0x2b')](function(){})[_0xdb27('0x2d')](_0x28137c()));break;default:_0x4f6093[_0xdb27('0x2c')](db['sequelize'][_0xdb27('0x4f')](_0xd4ca30(_0x2ddc22,_0xdb27('0x57')))[_0xdb27('0x2b')](function(){})[_0xdb27('0x2d')](_0x28137c()));}}}return _0x4f6093;})[_0xdb27('0x53')]();})[_0xdb27('0x2b')](function(){return db[_0xdb27('0x56')][_0xdb27('0x49')]({'attributes':['id'],'include':[{'model':db['CmList'],'as':_0xdb27('0x54'),'where':{'id':LISTID}}]})[_0xdb27('0x2b')](function(_0x16f8e4){var _0x589cd0=[];if(_0x16f8e4){for(var _0xadb737=0x0,_0x2a57ad;_0xadb737<_0x16f8e4[_0xdb27('0x24')];_0xadb737+=0x1){_0x2a57ad=_0x16f8e4[_0xadb737][_0xdb27('0x55')]({'plain':!![]});_0x589cd0[_0xdb27('0x2c')](db[_0xdb27('0x52')]['query'](_0x45d472(_0x2a57ad,_0xdb27('0x57')))[_0xdb27('0x2b')](function(){})[_0xdb27('0x2d')](_0x28137c()));}}return _0x589cd0;})[_0xdb27('0x53')]();})['catch'](function(_0x52c024){logger['error'](_0xdb27('0x58'),_0xdb27('0x59'),_0x52c024[_0xdb27('0x5a')]);});}var processPromises=function(_0x1b4986){return BPromise[_0xdb27('0x53')](promises)[_0xdb27('0x2b')](function(_0x210909){})[_0xdb27('0x2d')](function(_0x1cabe0){logger[_0xdb27('0x13')]('Error\x20processing\x20rows\x20block:',JSON[_0xdb27('0x5b')](_0x1cabe0));})[_0xdb27('0x5c')](function(){socket[_0xdb27('0x5d')](_0xdb27('0x5e')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x1b4986){return _0x1b4986[_0xdb27('0x5f')]();}});};var endCsv=function(){return BPromise[_0xdb27('0x60')]()[_0xdb27('0x2b')](function(){if(hopperContacts){return checkHopper();}})[_0xdb27('0x2b')](function(){socket['emit'](_0xdb27('0x5e')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0xdb27('0x61')](FILEPATH);}catch(_0x15f832){logger['error'](_0xdb27('0x62'),JSON['stringify'](_0x15f832));}finally{process[_0xdb27('0x63')](0x0);}});};process['on'](_0xdb27('0x64'),function(){logger[_0xdb27('0x65')](_0xdb27('0x66'));endCsv();});function main(){return BPromise['resolve']()[_0xdb27('0x2b')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0xdb27('0x11')](',');return db['CmContact']['findAll']({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0xdb27('0x2b')](function(_0x59868a){var _0x222d11=fs[_0xdb27('0x67')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa['parse'](_0x222d11,{'header':!![],'skipEmptyLines':!![],'step':function(_0x4e6efe,_0x880e3e){total+=0x1;var _0x444496=total;promises[_0xdb27('0x2c')](checkRow(_0x4e6efe,_0x59868a,_0x444496)['then'](function(){success+=0x1;})[_0xdb27('0x2d')](function(_0x50bd75){if(_0x50bd75[_0xdb27('0x13')]){errors+=0x1;delete _0x50bd75['error'];}else if(_0x50bd75[_0xdb27('0x26')]){duplicates+=0x1;delete _0x50bd75[_0xdb27('0x26')];}rows[_0xdb27('0x2c')](_0x50bd75);}));if(total%0xc8===0x0){_0x880e3e[_0xdb27('0x68')]();return processPromises(_0x880e3e);}},'complete':function(){return processPromises()[_0xdb27('0x2b')](function(){logger[_0xdb27('0x65')](_0xdb27('0x69'));endCsv();});},'error':function(_0x1f18f6,_0x3b692a){logger[_0xdb27('0x65')](_0xdb27('0x6a'),JSON[_0xdb27('0x5b')](_0x1f18f6));endCsv();}});})[_0xdb27('0x2d')](function(_0x5d4d8c){logger[_0xdb27('0x13')]('Error\x20executing\x20contact\x20csv\x20import:',JSON[_0xdb27('0x5b')](_0x5d4d8c));});}main();