38628aa0da92098f6e39a5039e53b02c05e6b32b
[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 _0xad03=['stringify','cmContact','checkHopper','insert','cm_hopper','fromQuery','scheduledAt','ContactId','createdAt','updatedAt','select','field','NOW()','toString','from','cm_contacts','where','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','\x20=\x20?','into','id\x20IN\x20?','str','calleridnum','cm_hopper_final','cm_hopper_black','VoiceQueue','findAll','outbound','dialCheckDuplicateType','Lists','get','always','sequelize','query','then','onlyIfOpen','all','CmList','BlackLists','VoiceQueueId','Campaign','CampaignId','cmContact,\x20%s,\x20%s','resolve','contact:csv_','unlinkSync','Unable\x20to\x20delete\x20temp\x20file:','SIGINT','CSV\x20parse\x20error','util','lodash','squel','papaparse','../../../mysqldb','../../../config/environment','../../../config/logger','redis','defaults','socket.io-emitter','../../../api/cmContact/cmContact.socket','register','argv','undefined','null','Missing\x20binding\x20parameters!','zipObject','split','Missing\x20ListId\x20parameter!','Missing\x20socket_timestamp\x20parameter!','index','isNil','error','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','length','map','message','join','hasOwnProperty','data','firstName','firstName\x20not\x20specified!','phone','phone\x20not\x20specified!','birthDate','YYYY-MM-DD','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','email\x20format\x20is\x20not\x20valid!','ListId','CompanyId','find','duplicate','Duplicate\x20Contact','CmContact','create','push','pick','catch'];(function(_0x15a77b,_0x18e4d8){var _0x360ca6=function(_0x58ae6e){while(--_0x58ae6e){_0x15a77b['push'](_0x15a77b['shift']());}};_0x360ca6(++_0x18e4d8);}(_0xad03,0x9a));var _0x3ad0=function(_0x96036,_0x99be68){_0x96036=_0x96036-0x0;var _0x411e6a=_0xad03[_0x96036];return _0x411e6a;};'use strict';var BPromise=require('bluebird');var util=require(_0x3ad0('0x0'));var _=require(_0x3ad0('0x1'));var fs=require('fs');var squel=require(_0x3ad0('0x2'));var Papa=require(_0x3ad0('0x3'));var Redis=require('ioredis');var db=require(_0x3ad0('0x4'))['db'];var config=require(_0x3ad0('0x5'));var logger=require(_0x3ad0('0x6'))('api');config[_0x3ad0('0x7')]=_[_0x3ad0('0x8')](config[_0x3ad0('0x7')],{'host':'localhost','port':0x18eb});var socket=require(_0x3ad0('0x9'))(new Redis(config[_0x3ad0('0x7')]));require(_0x3ad0('0xa'))[_0x3ad0('0xb')](socket);try{if(!process['argv'][0x2]||process[_0x3ad0('0xc')][0x2]===_0x3ad0('0xd')||process[_0x3ad0('0xc')][0x2]===_0x3ad0('0xe')){throw new Error('Missing\x20filepath\x20parameter!');}var FILEPATH=process[_0x3ad0('0xc')][0x2];if(!process[_0x3ad0('0xc')][0x3]||process[_0x3ad0('0xc')][0x3]===_0x3ad0('0xd')||process['argv'][0x3]===_0x3ad0('0xe')||!process[_0x3ad0('0xc')][0x4]||process[_0x3ad0('0xc')][0x4]===_0x3ad0('0xd')||process[_0x3ad0('0xc')][0x4]==='null'){throw new Error(_0x3ad0('0xf'));}var FIELDS=_[_0x3ad0('0x10')](process[_0x3ad0('0xc')][0x3][_0x3ad0('0x11')](','),process['argv'][0x4][_0x3ad0('0x11')](','));if(!process[_0x3ad0('0xc')][0x5]||process[_0x3ad0('0xc')][0x5]==='undefined'||process[_0x3ad0('0xc')][0x5]===_0x3ad0('0xe')){throw new Error(_0x3ad0('0x12'));}var LISTID=process[_0x3ad0('0xc')][0x5];var COMPANYID=process[_0x3ad0('0xc')][0x6]&&process[_0x3ad0('0xc')][0x6]!==_0x3ad0('0xd')&&process['argv'][0x6]!=='null'?process[_0x3ad0('0xc')][0x6]:null;var DUPLICATES=process[_0x3ad0('0xc')][0x7]&&process[_0x3ad0('0xc')][0x7]!=='undefined'&&process[_0x3ad0('0xc')][0x7]!==_0x3ad0('0xe')?process[_0x3ad0('0xc')][0x7]:null;if(!process[_0x3ad0('0xc')][0x8]||process['argv'][0x8]===_0x3ad0('0xd')||process[_0x3ad0('0xc')][0x8]==='null'){throw new Error(_0x3ad0('0x13'));}var SOCKET_TIMESTAMP=process['argv'][0x8];}catch(_0x350adc){logger['error'](_0x350adc);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(_0x2d101f,_0x2610dd,_0x447957,_0x38592c){var _0x508e24={'message':_0x2610dd};_0x508e24[_0x2d101f]=!![];if(_0x447957){_0x508e24['contact']=_0x447957;}if(_0x38592c){_0x508e24[_0x3ad0('0x14')]=_0x38592c;}return _0x508e24;}function isEmail(_0x5e5468){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))*$/['test'](_0x5e5468);}function checkRow(_0x50e005,_0x224aa3,_0xc79a26){return new BPromise(function(_0xca80c,_0x5eda7e){if(_[_0x3ad0('0x15')](_0x50e005)){return _0x5eda7e(handleCheckRowError(_0x3ad0('0x16'),_0x3ad0('0x17'),null,_0xc79a26));}if(_0x50e005[_0x3ad0('0x18')]&&_0x50e005['errors'][_0x3ad0('0x19')]){var _0x5e1761=_[_0x3ad0('0x1a')](_0x50e005[_0x3ad0('0x18')],_0x3ad0('0x1b'))[_0x3ad0('0x1c')](';');return _0x5eda7e(handleCheckRowError(_0x3ad0('0x16'),_0x5e1761,null,_0xc79a26));}var _0x3e06cb={};for(var _0x6b14d2 in FIELDS){if(FIELDS[_0x3ad0('0x1d')](_0x6b14d2)&&FIELDS[_0x6b14d2]){_0x3e06cb[_0x6b14d2]=_0x50e005[_0x3ad0('0x1e')][0x0][FIELDS[_0x6b14d2]]||_0x50e005[_0x3ad0('0x1e')][0x0]['\ufeff'+FIELDS[_0x6b14d2]];}}if(!_0x3e06cb[_0x3ad0('0x1f')]){return _0x5eda7e(handleCheckRowError('error',_0x3ad0('0x20'),null,_0xc79a26));}if(!_0x3e06cb[_0x3ad0('0x21')]){return _0x5eda7e(handleCheckRowError('error',_0x3ad0('0x22'),null,_0xc79a26));}if(_0x3e06cb[_0x3ad0('0x23')]){var _0x195870=moment(_0x3e06cb['birthDate'],_0x3ad0('0x24'));if(!_0x195870['isValid']()){return _0x5eda7e(handleCheckRowError(_0x3ad0('0x16'),_0x3ad0('0x25'),null,_0xc79a26));}}if(_0x3e06cb['email']){if(!isEmail(_0x3e06cb[_0x3ad0('0x26')])){return _0x5eda7e(handleCheckRowError(_0x3ad0('0x16'),_0x3ad0('0x27'),null,_0xc79a26));}}_0x3e06cb[_0x3ad0('0x28')]=LISTID;_0x3e06cb[_0x3ad0('0x29')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0x3ad0('0x19')]&&_0x224aa3){var _0x5497f5={};for(var _0x560314=0x0,_0x201b37=DUPLICATES[_0x3ad0('0x19')];_0x560314<_0x201b37;_0x560314+=0x1){_0x5497f5[DUPLICATES[_0x560314]]=_0x3e06cb[DUPLICATES[_0x560314]];}var _0x1b2075=_[_0x3ad0('0x2a')](_0x224aa3,_0x5497f5);if(_0x1b2075){return _0x5eda7e(handleCheckRowError(_0x3ad0('0x2b'),_0x3ad0('0x2c'),_0x1b2075,_0xc79a26));}}return db[_0x3ad0('0x2d')][_0x3ad0('0x2e')](_0x3e06cb,{'raw':!![],'hooks':![],'fields':_['keys'](_0x3e06cb)})['then'](function(_0x4333ef){if(DUPLICATES&&DUPLICATES['length']&&_0x224aa3){_0x224aa3[_0x3ad0('0x2f')](_[_0x3ad0('0x30')](_0x3e06cb,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x4333ef['id'];return _0xca80c();})[_0x3ad0('0x31')](function(_0x3f4ed0){return _0x5eda7e(handleCheckRowError(_0x3ad0('0x16'),'Error\x20while\x20creating\x20contact:\x20'+(_0x3f4ed0['message']||JSON[_0x3ad0('0x32')](_0x3f4ed0)),null,_0xc79a26));});});}function checkHopper(){function _0x3349db(){return function(_0xa87710){logger['error'](_0x3ad0('0x33'),_0x3ad0('0x34'),util['inspect'](_0xa87710,{'showHidden':![],'depth':null}));};}var _0x4f3005=function(_0x495d11,_0x303570){var _0x498370=squel[_0x3ad0('0x35')]()['into'](_0x3ad0('0x36'))[_0x3ad0('0x37')]([_0x3ad0('0x21'),_0x3ad0('0x38'),_0x3ad0('0x39'),'ListId',_0x303570,_0x3ad0('0x3a'),_0x3ad0('0x3b')],squel[_0x3ad0('0x3c')]()[_0x3ad0('0x3d')](_0x3ad0('0x21'),_0x3ad0('0x21'))[_0x3ad0('0x3d')](_0x3ad0('0x3e'),'scheduledAt')[_0x3ad0('0x3d')]('id',_0x3ad0('0x39'))[_0x3ad0('0x3d')](LISTID[_0x3ad0('0x3f')](),_0x3ad0('0x28'))['field'](_0x495d11['id'][_0x3ad0('0x3f')](),_0x303570)['field'](_0x3ad0('0x3e'),_0x3ad0('0x3a'))[_0x3ad0('0x3d')]('NOW()',_0x3ad0('0x3b'))[_0x3ad0('0x40')](_0x3ad0('0x41'))[_0x3ad0('0x42')](_0x3ad0('0x43'))['where'](_0x3ad0('0x44'),LISTID[_0x3ad0('0x3f')]())[_0x3ad0('0x42')](_0x3ad0('0x45'))[_0x3ad0('0x42')](_0x3ad0('0x46'),squel[_0x3ad0('0x3c')]()['field'](_0x3ad0('0x21'))[_0x3ad0('0x40')]('cm_hopper')[_0x3ad0('0x42')](_0x303570+_0x3ad0('0x47'),_0x495d11['id'][_0x3ad0('0x3f')]())))['toString']();return _0x498370;};var _0x51a0be=function(_0x52351f,_0x3fbf22){var _0xd5b306=squel['insert']()[_0x3ad0('0x48')]('cm_hopper')[_0x3ad0('0x37')]([_0x3ad0('0x21'),'scheduledAt',_0x3ad0('0x39'),_0x3ad0('0x28'),_0x3fbf22,_0x3ad0('0x3a'),_0x3ad0('0x3b')],squel[_0x3ad0('0x3c')]()[_0x3ad0('0x3d')](_0x3ad0('0x21'),_0x3ad0('0x21'))[_0x3ad0('0x3d')](_0x3ad0('0x3e'),_0x3ad0('0x38'))[_0x3ad0('0x3d')]('id',_0x3ad0('0x39'))[_0x3ad0('0x3d')](LISTID[_0x3ad0('0x3f')](),'ListId')['field'](_0x52351f['id'][_0x3ad0('0x3f')](),_0x3fbf22)[_0x3ad0('0x3d')]('NOW()','createdAt')['field'](_0x3ad0('0x3e'),_0x3ad0('0x3b'))[_0x3ad0('0x40')](_0x3ad0('0x41'))[_0x3ad0('0x42')](_0x3ad0('0x43'))[_0x3ad0('0x42')](_0x3ad0('0x44'),LISTID[_0x3ad0('0x3f')]())['where'](_0x3ad0('0x49'),squel[_0x3ad0('0x4a')](hopperContacts))[_0x3ad0('0x42')](_0x3ad0('0x45'))[_0x3ad0('0x42')](_0x3ad0('0x46'),squel['select']()[_0x3ad0('0x3d')](_0x3ad0('0x4b'))[_0x3ad0('0x40')](_0x3ad0('0x4c'))[_0x3ad0('0x42')](_0x3fbf22+_0x3ad0('0x47'),_0x52351f['id']['toString']()))['where'](_0x3ad0('0x46'),squel['select']()[_0x3ad0('0x3d')](_0x3ad0('0x21'))['from']('cm_hopper')['where'](_0x3fbf22+_0x3ad0('0x47'),_0x52351f['id'][_0x3ad0('0x3f')]())))[_0x3ad0('0x3f')]();return _0xd5b306;};function _0x5d4d9d(_0x2f8c11,_0x419903){var _0x5bde3e=squel['insert']()[_0x3ad0('0x48')](_0x3ad0('0x36'))[_0x3ad0('0x37')](['phone',_0x3ad0('0x38'),_0x3ad0('0x39'),_0x3ad0('0x28'),_0x419903,_0x3ad0('0x3a'),_0x3ad0('0x3b')],squel['select']()['field'](_0x3ad0('0x21'),_0x3ad0('0x21'))[_0x3ad0('0x3d')](_0x3ad0('0x3e'),_0x3ad0('0x38'))[_0x3ad0('0x3d')]('id',_0x3ad0('0x39'))[_0x3ad0('0x3d')](LISTID['toString'](),_0x3ad0('0x28'))[_0x3ad0('0x3d')](_0x2f8c11['id'][_0x3ad0('0x3f')](),_0x419903)[_0x3ad0('0x3d')]('NOW()','createdAt')[_0x3ad0('0x3d')](_0x3ad0('0x3e'),'updatedAt')[_0x3ad0('0x40')](_0x3ad0('0x41'))['where'](_0x3ad0('0x43'))[_0x3ad0('0x42')](_0x3ad0('0x44'),LISTID[_0x3ad0('0x3f')]())[_0x3ad0('0x42')](_0x3ad0('0x49'),squel[_0x3ad0('0x4a')](hopperContacts))[_0x3ad0('0x42')]('phone\x20IS\x20NOT\x20NULL'))[_0x3ad0('0x3f')]();return _0x5bde3e;}function _0x2d42ee(_0x588a77,_0x2b0fa1){var _0x3c8480=squel['insert']()[_0x3ad0('0x48')](_0x3ad0('0x4d'))[_0x3ad0('0x37')]([_0x3ad0('0x21'),_0x3ad0('0x39'),_0x3ad0('0x28'),_0x2b0fa1,_0x3ad0('0x3a'),'updatedAt'],squel[_0x3ad0('0x3c')]()[_0x3ad0('0x3d')](_0x3ad0('0x21'),_0x3ad0('0x21'))[_0x3ad0('0x3d')]('id',_0x3ad0('0x39'))['field'](LISTID[_0x3ad0('0x3f')](),_0x3ad0('0x28'))['field'](_0x588a77['id'][_0x3ad0('0x3f')](),_0x2b0fa1)[_0x3ad0('0x3d')]('NOW()',_0x3ad0('0x3a'))[_0x3ad0('0x3d')](_0x3ad0('0x3e'),_0x3ad0('0x3b'))[_0x3ad0('0x40')](_0x3ad0('0x41'))[_0x3ad0('0x42')](_0x3ad0('0x43'))[_0x3ad0('0x42')](_0x3ad0('0x44'),LISTID[_0x3ad0('0x3f')]())[_0x3ad0('0x42')](_0x3ad0('0x49'),squel[_0x3ad0('0x4a')](hopperContacts))[_0x3ad0('0x42')]('phone\x20IS\x20NOT\x20NULL'))[_0x3ad0('0x3f')]();return _0x3c8480;}return db[_0x3ad0('0x4e')][_0x3ad0('0x4f')]({'where':{'type':_0x3ad0('0x50')},'attributes':['id',_0x3ad0('0x51')],'include':[{'model':db['CmList'],'as':_0x3ad0('0x52'),'where':{'id':LISTID}}]})['then'](function(_0x459dd8){var _0x2ac88a=[];if(_0x459dd8){var _0x57fe13;for(var _0x21eeea=0x0,_0x27be02;_0x21eeea<_0x459dd8[_0x3ad0('0x19')];_0x21eeea+=0x1){_0x27be02=_0x459dd8[_0x21eeea][_0x3ad0('0x53')]({'plain':!![]});switch(_0x27be02[_0x3ad0('0x51')]){case _0x3ad0('0x54'):_0x2ac88a[_0x3ad0('0x2f')](db[_0x3ad0('0x55')][_0x3ad0('0x56')](_0x51a0be(_0x27be02,'VoiceQueueId'))[_0x3ad0('0x57')](function(){})[_0x3ad0('0x31')](_0x3349db()));break;case _0x3ad0('0x58'):_0x2ac88a[_0x3ad0('0x2f')](db['sequelize'][_0x3ad0('0x56')](_0x4f3005(_0x27be02,'VoiceQueueId'))['then'](function(){})[_0x3ad0('0x31')](_0x3349db()));break;default:_0x2ac88a[_0x3ad0('0x2f')](db[_0x3ad0('0x55')][_0x3ad0('0x56')](_0x5d4d9d(_0x27be02,'VoiceQueueId'))[_0x3ad0('0x57')](function(){})['catch'](_0x3349db()));}}}return _0x2ac88a;})[_0x3ad0('0x59')]()[_0x3ad0('0x57')](function(){return db[_0x3ad0('0x4e')][_0x3ad0('0x4f')]({'where':{'type':_0x3ad0('0x50')},'attributes':['id'],'include':[{'model':db[_0x3ad0('0x5a')],'as':_0x3ad0('0x5b'),'where':{'id':LISTID}}]})['then'](function(_0x1d1ede){var _0x25b3ba=[];if(_0x1d1ede){var _0x4c75fc;for(var _0xffde4f=0x0,_0x14c470;_0xffde4f<_0x1d1ede['length'];_0xffde4f+=0x1){_0x14c470=_0x1d1ede[_0xffde4f]['get']({'plain':!![]});_0x25b3ba[_0x3ad0('0x2f')](db[_0x3ad0('0x55')][_0x3ad0('0x56')](_0x2d42ee(_0x14c470,_0x3ad0('0x5c')))[_0x3ad0('0x57')](function(){})[_0x3ad0('0x31')](_0x3349db()));}}return _0x25b3ba;})['all']();})[_0x3ad0('0x57')](function(){return db[_0x3ad0('0x5d')]['findAll']({'attributes':['id',_0x3ad0('0x51')],'include':[{'model':db[_0x3ad0('0x5a')],'as':'Lists','where':{'id':LISTID}}]})[_0x3ad0('0x57')](function(_0x3f44b2){var _0x19075f=[];if(_0x3f44b2){for(var _0x2d55d3=0x0,_0x2dbc55;_0x2d55d3<_0x3f44b2[_0x3ad0('0x19')];_0x2d55d3+=0x1){_0x2dbc55=_0x3f44b2[_0x2d55d3][_0x3ad0('0x53')]({'plain':!![]});switch(_0x2dbc55['dialCheckDuplicateType']){case _0x3ad0('0x54'):_0x19075f[_0x3ad0('0x2f')](db[_0x3ad0('0x55')]['query'](_0x51a0be(_0x2dbc55,'CampaignId'))[_0x3ad0('0x57')](function(){})[_0x3ad0('0x31')](_0x3349db()));break;case _0x3ad0('0x58'):_0x19075f['push'](db[_0x3ad0('0x55')][_0x3ad0('0x56')](_0x4f3005(_0x2dbc55,'CampaignId'))[_0x3ad0('0x57')](function(){})[_0x3ad0('0x31')](_0x3349db()));break;default:_0x19075f[_0x3ad0('0x2f')](db[_0x3ad0('0x55')]['query'](_0x5d4d9d(_0x2dbc55,_0x3ad0('0x5e')))[_0x3ad0('0x57')](function(){})['catch'](_0x3349db()));}}}return _0x19075f;})['all']();})['then'](function(){return db[_0x3ad0('0x5d')]['findAll']({'attributes':['id'],'include':[{'model':db[_0x3ad0('0x5a')],'as':'BlackLists','where':{'id':LISTID}}]})[_0x3ad0('0x57')](function(_0x27e5d9){var _0x5590fd=[];if(_0x27e5d9){for(var _0x379465=0x0,_0x69bec3;_0x379465<_0x27e5d9[_0x3ad0('0x19')];_0x379465+=0x1){_0x69bec3=_0x27e5d9[_0x379465][_0x3ad0('0x53')]({'plain':!![]});_0x5590fd[_0x3ad0('0x2f')](db['sequelize'][_0x3ad0('0x56')](_0x2d42ee(_0x69bec3,_0x3ad0('0x5e')))[_0x3ad0('0x57')](function(){})[_0x3ad0('0x31')](_0x3349db()));}}return _0x5590fd;})['all']();})['catch'](function(_0x2da8ce){logger[_0x3ad0('0x16')](_0x3ad0('0x5f'),'generalCheckHopper',_0x2da8ce[_0x3ad0('0x1b')]);});}var processPromises=function(_0x249a05){return BPromise[_0x3ad0('0x59')](promises)[_0x3ad0('0x57')](function(_0x3c787e){})['catch'](function(_0x59db62){logger[_0x3ad0('0x16')]('Error\x20processing\x20rows\x20block:',JSON[_0x3ad0('0x32')](_0x59db62));})['finally'](function(){socket['emit']('contact:csv_'+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x249a05){return _0x249a05['resume']();}});};var endCsv=function(){return BPromise[_0x3ad0('0x60')]()['then'](function(){if(hopperContacts){return checkHopper();}})[_0x3ad0('0x57')](function(){socket['emit'](_0x3ad0('0x61')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0x3ad0('0x62')](FILEPATH);}catch(_0x341a67){logger['error'](_0x3ad0('0x63'),JSON[_0x3ad0('0x32')](_0x341a67));}finally{process['exit'](0x0);}});};process['on'](_0x3ad0('0x64'),function(){logger['info']('CSV\x20import\x20process\x20stopped!');endCsv();});function main(){return BPromise[_0x3ad0('0x60')]()[_0x3ad0('0x57')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0x3ad0('0x11')](',');return db['CmContact'][_0x3ad0('0x4f')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0x3ad0('0x57')](function(_0x9a573a){var _0x55ac14=fs['createReadStream'](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa['parse'](_0x55ac14,{'header':!![],'skipEmptyLines':!![],'step':function(_0x6d6d1a,_0x16cd89){total+=0x1;var _0x18e238=total;promises[_0x3ad0('0x2f')](checkRow(_0x6d6d1a,_0x9a573a,_0x18e238)[_0x3ad0('0x57')](function(){success+=0x1;})[_0x3ad0('0x31')](function(_0x37db96){if(_0x37db96['error']){errors+=0x1;delete _0x37db96[_0x3ad0('0x16')];}else if(_0x37db96[_0x3ad0('0x2b')]){duplicates+=0x1;delete _0x37db96[_0x3ad0('0x2b')];}rows[_0x3ad0('0x2f')](_0x37db96);}));if(total%0xc8===0x0){_0x16cd89['pause']();return processPromises(_0x16cd89);}},'complete':function(){return processPromises()[_0x3ad0('0x57')](function(){logger['info']('CSV\x20parsed\x20correctly!');endCsv();});},'error':function(_0x135c83,_0x353cfd){logger['info'](_0x3ad0('0x65'),JSON[_0x3ad0('0x32')](_0x135c83));endCsv();}});})[_0x3ad0('0x31')](function(_0x3b483e){logger[_0x3ad0('0x16')]('Error\x20executing\x20contact\x20csv\x20import:',JSON[_0x3ad0('0x32')](_0x3b483e));});}main();