Built motion from commit efa66e19.|2.6.22
[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 _0x1e62=['phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','from','cm_hopper','\x20=\x20?','NOW()','id\x20IN\x20?','str','calleridnum','cm_hopper_final','cm_hopper_black','cm_contacts','VoiceQueue','CmList','Lists','get','dialCheckDuplicateType','always','sequelize','query','VoiceQueueId','catch','onlyIfOpen','findAll','BlackLists','all','Campaign','CampaignId','cmContact,\x20%s,\x20%s','generalCheckHopper','Error\x20processing\x20rows\x20block:','finally','emit','contact:csv_','resume','resolve','unlinkSync','Unable\x20to\x20delete\x20temp\x20file:','SIGINT','info','parse','duplicate','pause','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','squel','papaparse','ioredis','../../../mysqldb','../../../config/environment','../../../config/logger','api','redis','localhost','socket.io-emitter','register','argv','undefined','null','Missing\x20binding\x20parameters!','zipObject','split','Missing\x20ListId\x20parameter!','error','contact','index','isNil','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','map','message','join','hasOwnProperty','data','firstName','firstName\x20not\x20specified!','birthDate','YYYY-MM-DD','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','ListId','length','find','CmContact','create','keys','then','push','pick','Error\x20while\x20creating\x20contact:\x20','stringify','checkHopper','inspect','insert','into','fromQuery','scheduledAt','ContactId','createdAt','updatedAt','select','phone','field','toString','where','deletedAt\x20IS\x20NULL','ListId\x20=\x20?'];(function(_0x40a825,_0x3bac79){var _0x273a54=function(_0x5628d8){while(--_0x5628d8){_0x40a825['push'](_0x40a825['shift']());}};_0x273a54(++_0x3bac79);}(_0x1e62,0x98));var _0x21e6=function(_0x2baf85,_0x74639b){_0x2baf85=_0x2baf85-0x0;var _0x57fd18=_0x1e62[_0x2baf85];return _0x57fd18;};'use strict';var BPromise=require('bluebird');var util=require('util');var _=require('lodash');var fs=require('fs');var squel=require(_0x21e6('0x0'));var Papa=require(_0x21e6('0x1'));var Redis=require(_0x21e6('0x2'));var db=require(_0x21e6('0x3'))['db'];var config=require(_0x21e6('0x4'));var logger=require(_0x21e6('0x5'))(_0x21e6('0x6'));config[_0x21e6('0x7')]=_['defaults'](config[_0x21e6('0x7')],{'host':_0x21e6('0x8'),'port':0x18eb});var socket=require(_0x21e6('0x9'))(new Redis(config[_0x21e6('0x7')]));require('../../../api/cmContact/cmContact.socket')[_0x21e6('0xa')](socket);try{if(!process[_0x21e6('0xb')][0x2]||process[_0x21e6('0xb')][0x2]===_0x21e6('0xc')||process['argv'][0x2]===_0x21e6('0xd')){throw new Error('Missing\x20filepath\x20parameter!');}var FILEPATH=process[_0x21e6('0xb')][0x2];if(!process[_0x21e6('0xb')][0x3]||process[_0x21e6('0xb')][0x3]===_0x21e6('0xc')||process[_0x21e6('0xb')][0x3]===_0x21e6('0xd')||!process[_0x21e6('0xb')][0x4]||process[_0x21e6('0xb')][0x4]===_0x21e6('0xc')||process[_0x21e6('0xb')][0x4]===_0x21e6('0xd')){throw new Error(_0x21e6('0xe'));}var FIELDS=_[_0x21e6('0xf')](process[_0x21e6('0xb')][0x3][_0x21e6('0x10')](','),process[_0x21e6('0xb')][0x4][_0x21e6('0x10')](','));if(!process[_0x21e6('0xb')][0x5]||process[_0x21e6('0xb')][0x5]===_0x21e6('0xc')||process['argv'][0x5]===_0x21e6('0xd')){throw new Error(_0x21e6('0x11'));}var LISTID=process[_0x21e6('0xb')][0x5];var COMPANYID=process[_0x21e6('0xb')][0x6]&&process[_0x21e6('0xb')][0x6]!=='undefined'&&process[_0x21e6('0xb')][0x6]!==_0x21e6('0xd')?process[_0x21e6('0xb')][0x6]:null;var DUPLICATES=process[_0x21e6('0xb')][0x7]&&process['argv'][0x7]!=='undefined'&&process['argv'][0x7]!==_0x21e6('0xd')?process[_0x21e6('0xb')][0x7]:null;if(!process['argv'][0x8]||process['argv'][0x8]==='undefined'||process[_0x21e6('0xb')][0x8]===_0x21e6('0xd')){throw new Error('Missing\x20socket_timestamp\x20parameter!');}var SOCKET_TIMESTAMP=process[_0x21e6('0xb')][0x8];}catch(_0x56a789){logger[_0x21e6('0x12')](_0x56a789);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(_0x4c0b15,_0x565e49,_0x52a5c3,_0x49f8ff){var _0x32bf96={'message':_0x565e49};_0x32bf96[_0x4c0b15]=!![];if(_0x52a5c3){_0x32bf96[_0x21e6('0x13')]=_0x52a5c3;}if(_0x49f8ff){_0x32bf96[_0x21e6('0x14')]=_0x49f8ff;}return _0x32bf96;}function isEmail(_0x4f8b5b){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'](_0x4f8b5b);}function checkRow(_0x1e0d23,_0x100631,_0x255f3a){return new BPromise(function(_0x1929f9,_0x5b789a){if(_[_0x21e6('0x15')](_0x1e0d23)){return _0x5b789a(handleCheckRowError(_0x21e6('0x12'),_0x21e6('0x16'),null,_0x255f3a));}if(_0x1e0d23['errors']&&_0x1e0d23[_0x21e6('0x17')]['length']){var _0xb75363=_[_0x21e6('0x18')](_0x1e0d23['errors'],_0x21e6('0x19'))[_0x21e6('0x1a')](';');return _0x5b789a(handleCheckRowError('error',_0xb75363,null,_0x255f3a));}var _0x3438e4={};for(var _0x3c39a3 in FIELDS){if(FIELDS[_0x21e6('0x1b')](_0x3c39a3)&&FIELDS[_0x3c39a3]){_0x3438e4[_0x3c39a3]=_0x1e0d23[_0x21e6('0x1c')][0x0][FIELDS[_0x3c39a3]]||_0x1e0d23['data'][0x0]['\ufeff'+FIELDS[_0x3c39a3]];}}if(!_0x3438e4[_0x21e6('0x1d')]){return _0x5b789a(handleCheckRowError(_0x21e6('0x12'),_0x21e6('0x1e'),null,_0x255f3a));}if(!_0x3438e4['phone']){return _0x5b789a(handleCheckRowError('error','phone\x20not\x20specified!',null,_0x255f3a));}if(_0x3438e4[_0x21e6('0x1f')]){var _0x194ae9=moment(_0x3438e4[_0x21e6('0x1f')],_0x21e6('0x20'));if(!_0x194ae9['isValid']()){return _0x5b789a(handleCheckRowError(_0x21e6('0x12'),_0x21e6('0x21'),null,_0x255f3a));}}if(_0x3438e4['email']){if(!isEmail(_0x3438e4[_0x21e6('0x22')])){return _0x5b789a(handleCheckRowError('error','email\x20format\x20is\x20not\x20valid!',null,_0x255f3a));}}_0x3438e4[_0x21e6('0x23')]=LISTID;_0x3438e4['CompanyId']=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES['length']&&_0x100631){var _0x413e8a={};for(var _0x2881bc=0x0,_0x17c506=DUPLICATES[_0x21e6('0x24')];_0x2881bc<_0x17c506;_0x2881bc+=0x1){_0x413e8a[DUPLICATES[_0x2881bc]]=_0x3438e4[DUPLICATES[_0x2881bc]];}var _0x56219a=_[_0x21e6('0x25')](_0x100631,_0x413e8a);if(_0x56219a){return _0x5b789a(handleCheckRowError('duplicate','Duplicate\x20Contact',_0x56219a,_0x255f3a));}}return db[_0x21e6('0x26')][_0x21e6('0x27')](_0x3438e4,{'raw':!![],'hooks':![],'fields':_[_0x21e6('0x28')](_0x3438e4)})[_0x21e6('0x29')](function(_0x444a9a){if(DUPLICATES&&DUPLICATES[_0x21e6('0x24')]&&_0x100631){_0x100631[_0x21e6('0x2a')](_[_0x21e6('0x2b')](_0x3438e4,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x444a9a['id'];return _0x1929f9();})['catch'](function(_0x3c4baa){return _0x5b789a(handleCheckRowError(_0x21e6('0x12'),_0x21e6('0x2c')+(_0x3c4baa[_0x21e6('0x19')]||JSON[_0x21e6('0x2d')](_0x3c4baa)),null,_0x255f3a));});});}function checkHopper(){function _0x3239ac(){return function(_0x6da5d5){logger['error']('cmContact',_0x21e6('0x2e'),util[_0x21e6('0x2f')](_0x6da5d5,{'showHidden':![],'depth':null}));};}var _0x3a9918=function(_0x2e9350,_0xa82f0b){var _0x36b4ac=squel[_0x21e6('0x30')]()[_0x21e6('0x31')]('cm_hopper')[_0x21e6('0x32')](['phone',_0x21e6('0x33'),_0x21e6('0x34'),_0x21e6('0x23'),_0xa82f0b,_0x21e6('0x35'),_0x21e6('0x36')],squel[_0x21e6('0x37')]()['field'](_0x21e6('0x38'),_0x21e6('0x38'))['field']('NOW()','scheduledAt')[_0x21e6('0x39')]('id',_0x21e6('0x34'))[_0x21e6('0x39')](LISTID[_0x21e6('0x3a')](),_0x21e6('0x23'))[_0x21e6('0x39')](_0x2e9350['id']['toString'](),_0xa82f0b)['field']('NOW()','createdAt')[_0x21e6('0x39')]('NOW()',_0x21e6('0x36'))['from']('cm_contacts')[_0x21e6('0x3b')](_0x21e6('0x3c'))[_0x21e6('0x3b')](_0x21e6('0x3d'),LISTID['toString']())[_0x21e6('0x3b')](_0x21e6('0x3e'))[_0x21e6('0x3b')](_0x21e6('0x3f'),squel[_0x21e6('0x37')]()[_0x21e6('0x39')](_0x21e6('0x38'))[_0x21e6('0x40')](_0x21e6('0x41'))[_0x21e6('0x3b')](_0xa82f0b+_0x21e6('0x42'),_0x2e9350['id'][_0x21e6('0x3a')]())))[_0x21e6('0x3a')]();return _0x36b4ac;};var _0x2441b9=function(_0x17e72d,_0x589e1f){var _0x486903=squel['insert']()[_0x21e6('0x31')](_0x21e6('0x41'))['fromQuery'](['phone',_0x21e6('0x33'),'ContactId',_0x21e6('0x23'),_0x589e1f,_0x21e6('0x35'),_0x21e6('0x36')],squel[_0x21e6('0x37')]()[_0x21e6('0x39')](_0x21e6('0x38'),'phone')[_0x21e6('0x39')](_0x21e6('0x43'),_0x21e6('0x33'))[_0x21e6('0x39')]('id','ContactId')[_0x21e6('0x39')](LISTID[_0x21e6('0x3a')](),_0x21e6('0x23'))[_0x21e6('0x39')](_0x17e72d['id'][_0x21e6('0x3a')](),_0x589e1f)['field'](_0x21e6('0x43'),_0x21e6('0x35'))[_0x21e6('0x39')](_0x21e6('0x43'),_0x21e6('0x36'))[_0x21e6('0x40')]('cm_contacts')[_0x21e6('0x3b')](_0x21e6('0x3c'))[_0x21e6('0x3b')](_0x21e6('0x3d'),LISTID[_0x21e6('0x3a')]())[_0x21e6('0x3b')](_0x21e6('0x44'),squel[_0x21e6('0x45')](hopperContacts))[_0x21e6('0x3b')](_0x21e6('0x3e'))[_0x21e6('0x3b')](_0x21e6('0x3f'),squel[_0x21e6('0x37')]()[_0x21e6('0x39')](_0x21e6('0x46'))[_0x21e6('0x40')](_0x21e6('0x47'))[_0x21e6('0x3b')](_0x589e1f+_0x21e6('0x42'),_0x17e72d['id'][_0x21e6('0x3a')]()))['where'](_0x21e6('0x3f'),squel[_0x21e6('0x37')]()[_0x21e6('0x39')](_0x21e6('0x38'))[_0x21e6('0x40')](_0x21e6('0x41'))['where'](_0x589e1f+_0x21e6('0x42'),_0x17e72d['id']['toString']())))[_0x21e6('0x3a')]();return _0x486903;};function _0xe79625(_0x2d51c8,_0x489e3c){var _0x1a8564=squel[_0x21e6('0x30')]()['into'](_0x21e6('0x41'))[_0x21e6('0x32')](['phone',_0x21e6('0x33'),_0x21e6('0x34'),_0x21e6('0x23'),_0x489e3c,_0x21e6('0x35'),_0x21e6('0x36')],squel[_0x21e6('0x37')]()[_0x21e6('0x39')](_0x21e6('0x38'),'phone')[_0x21e6('0x39')](_0x21e6('0x43'),_0x21e6('0x33'))[_0x21e6('0x39')]('id','ContactId')[_0x21e6('0x39')](LISTID[_0x21e6('0x3a')](),_0x21e6('0x23'))[_0x21e6('0x39')](_0x2d51c8['id'][_0x21e6('0x3a')](),_0x489e3c)['field'](_0x21e6('0x43'),_0x21e6('0x35'))['field'](_0x21e6('0x43'),_0x21e6('0x36'))['from']('cm_contacts')[_0x21e6('0x3b')](_0x21e6('0x3c'))[_0x21e6('0x3b')](_0x21e6('0x3d'),LISTID['toString']())[_0x21e6('0x3b')](_0x21e6('0x44'),squel[_0x21e6('0x45')](hopperContacts))[_0x21e6('0x3b')]('phone\x20IS\x20NOT\x20NULL'))['toString']();return _0x1a8564;}function _0x299215(_0x9494b6,_0x2b62fc){var _0x91cfc7=squel[_0x21e6('0x30')]()[_0x21e6('0x31')](_0x21e6('0x48'))[_0x21e6('0x32')]([_0x21e6('0x38'),_0x21e6('0x34'),_0x21e6('0x23'),_0x2b62fc,_0x21e6('0x35'),_0x21e6('0x36')],squel['select']()[_0x21e6('0x39')](_0x21e6('0x38'),_0x21e6('0x38'))[_0x21e6('0x39')]('id',_0x21e6('0x34'))['field'](LISTID['toString'](),_0x21e6('0x23'))[_0x21e6('0x39')](_0x9494b6['id'][_0x21e6('0x3a')](),_0x2b62fc)['field'](_0x21e6('0x43'),_0x21e6('0x35'))[_0x21e6('0x39')](_0x21e6('0x43'),'updatedAt')[_0x21e6('0x40')](_0x21e6('0x49'))[_0x21e6('0x3b')](_0x21e6('0x3c'))['where'](_0x21e6('0x3d'),LISTID[_0x21e6('0x3a')]())[_0x21e6('0x3b')](_0x21e6('0x44'),squel[_0x21e6('0x45')](hopperContacts))[_0x21e6('0x3b')](_0x21e6('0x3e')))[_0x21e6('0x3a')]();return _0x91cfc7;}return db[_0x21e6('0x4a')]['findAll']({'where':{'type':'outbound'},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db[_0x21e6('0x4b')],'as':_0x21e6('0x4c'),'where':{'id':LISTID}}]})[_0x21e6('0x29')](function(_0x17f65d){var _0x211516=[];if(_0x17f65d){var _0x5d9e51;for(var _0x34b3b5=0x0,_0x278a20;_0x34b3b5<_0x17f65d['length'];_0x34b3b5+=0x1){_0x278a20=_0x17f65d[_0x34b3b5][_0x21e6('0x4d')]({'plain':!![]});switch(_0x278a20[_0x21e6('0x4e')]){case _0x21e6('0x4f'):_0x211516[_0x21e6('0x2a')](db[_0x21e6('0x50')][_0x21e6('0x51')](_0x2441b9(_0x278a20,_0x21e6('0x52')))[_0x21e6('0x29')](function(){})[_0x21e6('0x53')](_0x3239ac()));break;case _0x21e6('0x54'):_0x211516[_0x21e6('0x2a')](db[_0x21e6('0x50')][_0x21e6('0x51')](_0x3a9918(_0x278a20,_0x21e6('0x52')))[_0x21e6('0x29')](function(){})['catch'](_0x3239ac()));break;default:_0x211516[_0x21e6('0x2a')](db[_0x21e6('0x50')][_0x21e6('0x51')](_0xe79625(_0x278a20,'VoiceQueueId'))[_0x21e6('0x29')](function(){})[_0x21e6('0x53')](_0x3239ac()));}}}return _0x211516;})['all']()['then'](function(){return db['VoiceQueue'][_0x21e6('0x55')]({'where':{'type':'outbound'},'attributes':['id'],'include':[{'model':db[_0x21e6('0x4b')],'as':_0x21e6('0x56'),'where':{'id':LISTID}}]})['then'](function(_0x9c233d){var _0x5d49ad=[];if(_0x9c233d){var _0x5634dc;for(var _0x1a8bd6=0x0,_0x53bef5;_0x1a8bd6<_0x9c233d[_0x21e6('0x24')];_0x1a8bd6+=0x1){_0x53bef5=_0x9c233d[_0x1a8bd6][_0x21e6('0x4d')]({'plain':!![]});_0x5d49ad[_0x21e6('0x2a')](db[_0x21e6('0x50')][_0x21e6('0x51')](_0x299215(_0x53bef5,_0x21e6('0x52')))['then'](function(){})[_0x21e6('0x53')](_0x3239ac()));}}return _0x5d49ad;})[_0x21e6('0x57')]();})[_0x21e6('0x29')](function(){return db[_0x21e6('0x58')]['findAll']({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db['CmList'],'as':_0x21e6('0x4c'),'where':{'id':LISTID}}]})[_0x21e6('0x29')](function(_0x32b08d){var _0x3eb01a=[];if(_0x32b08d){for(var _0x517326=0x0,_0x4a9527;_0x517326<_0x32b08d[_0x21e6('0x24')];_0x517326+=0x1){_0x4a9527=_0x32b08d[_0x517326][_0x21e6('0x4d')]({'plain':!![]});switch(_0x4a9527['dialCheckDuplicateType']){case'always':_0x3eb01a[_0x21e6('0x2a')](db[_0x21e6('0x50')][_0x21e6('0x51')](_0x2441b9(_0x4a9527,'CampaignId'))[_0x21e6('0x29')](function(){})[_0x21e6('0x53')](_0x3239ac()));break;case _0x21e6('0x54'):_0x3eb01a[_0x21e6('0x2a')](db[_0x21e6('0x50')][_0x21e6('0x51')](_0x3a9918(_0x4a9527,_0x21e6('0x59')))['then'](function(){})[_0x21e6('0x53')](_0x3239ac()));break;default:_0x3eb01a[_0x21e6('0x2a')](db[_0x21e6('0x50')]['query'](_0xe79625(_0x4a9527,_0x21e6('0x59')))[_0x21e6('0x29')](function(){})[_0x21e6('0x53')](_0x3239ac()));}}}return _0x3eb01a;})['all']();})[_0x21e6('0x29')](function(){return db['Campaign']['findAll']({'attributes':['id'],'include':[{'model':db[_0x21e6('0x4b')],'as':_0x21e6('0x56'),'where':{'id':LISTID}}]})[_0x21e6('0x29')](function(_0xbc4f69){var _0x3fb1de=[];if(_0xbc4f69){for(var _0x1088d7=0x0,_0xb1d0d;_0x1088d7<_0xbc4f69[_0x21e6('0x24')];_0x1088d7+=0x1){_0xb1d0d=_0xbc4f69[_0x1088d7]['get']({'plain':!![]});_0x3fb1de[_0x21e6('0x2a')](db[_0x21e6('0x50')][_0x21e6('0x51')](_0x299215(_0xb1d0d,_0x21e6('0x59')))[_0x21e6('0x29')](function(){})[_0x21e6('0x53')](_0x3239ac()));}}return _0x3fb1de;})[_0x21e6('0x57')]();})['catch'](function(_0x3052b3){logger['error'](_0x21e6('0x5a'),_0x21e6('0x5b'),_0x3052b3[_0x21e6('0x19')]);});}var processPromises=function(_0xdc9f00){return BPromise[_0x21e6('0x57')](promises)['then'](function(_0x1137ea){})[_0x21e6('0x53')](function(_0x19ad12){logger['error'](_0x21e6('0x5c'),JSON[_0x21e6('0x2d')](_0x19ad12));})[_0x21e6('0x5d')](function(){socket[_0x21e6('0x5e')](_0x21e6('0x5f')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0xdc9f00){return _0xdc9f00[_0x21e6('0x60')]();}});};var endCsv=function(){return BPromise[_0x21e6('0x61')]()[_0x21e6('0x29')](function(){if(hopperContacts){return checkHopper();}})[_0x21e6('0x29')](function(){socket[_0x21e6('0x5e')](_0x21e6('0x5f')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0x21e6('0x62')](FILEPATH);}catch(_0x239984){logger[_0x21e6('0x12')](_0x21e6('0x63'),JSON[_0x21e6('0x2d')](_0x239984));}finally{process['exit'](0x0);}});};process['on'](_0x21e6('0x64'),function(){logger[_0x21e6('0x65')]('CSV\x20import\x20process\x20stopped!');endCsv();});function main(){return BPromise[_0x21e6('0x61')]()[_0x21e6('0x29')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0x21e6('0x10')](',');return db[_0x21e6('0x26')][_0x21e6('0x55')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0x21e6('0x29')](function(_0x43d44d){var _0x19223a=fs['createReadStream'](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0x21e6('0x66')](_0x19223a,{'header':!![],'skipEmptyLines':!![],'step':function(_0x33bf0b,_0x3b2f03){total+=0x1;var _0x2e5754=total;promises[_0x21e6('0x2a')](checkRow(_0x33bf0b,_0x43d44d,_0x2e5754)[_0x21e6('0x29')](function(){success+=0x1;})[_0x21e6('0x53')](function(_0xc7003e){if(_0xc7003e[_0x21e6('0x12')]){errors+=0x1;delete _0xc7003e['error'];}else if(_0xc7003e[_0x21e6('0x67')]){duplicates+=0x1;delete _0xc7003e[_0x21e6('0x67')];}rows[_0x21e6('0x2a')](_0xc7003e);}));if(total%0xc8===0x0){_0x3b2f03[_0x21e6('0x68')]();return processPromises(_0x3b2f03);}},'complete':function(){return processPromises()['then'](function(){logger[_0x21e6('0x65')]('CSV\x20parsed\x20correctly!');endCsv();});},'error':function(_0x538fc7,_0x395b52){logger[_0x21e6('0x65')](_0x21e6('0x69'),JSON[_0x21e6('0x2d')](_0x538fc7));endCsv();}});})['catch'](function(_0x460018){logger['error'](_0x21e6('0x6a'),JSON[_0x21e6('0x2d')](_0x460018));});}main();