c7ae01b8001321cf4a17cf7e6b200d27cdc7d1dd
[motion2.git] / server / components / import / cm / csvUpdates.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 _0xd7cf=['cm_contacts_temp_','format','test','select','field','from','join','.id\x20=\x20','where','\x20=\x20','.dialCheckDuplicateType\x20IN\x20(','spread','length','isNil','phone','push','then','catch','AdditionalPhones','split','all','filter','CmContactHasItem','findOne','updated','create','PHONE','inserted','CmContact','update','cm_contacts.phone','cm_contacts.scheduledat','cm_contacts.ListId','cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.priority','cm_contacts.UserId','insert','into','cm_hopper','fromQuery','scheduledat','ContactId','createdAt','updatedAt','priority','UserId','recallme','fields','cm_contacts','cm_contacts.ListId\x20=\x20','.CmListId\x20=\x20?','cm_contacts.createdAt\x20=\x20?','\x22always\x22','\x22onlyIfOpen\x22','cm_contacts.phone\x20NOT\x20IN\x20(?)','cm_contacts.id','cm_hopper_black','ListId','.CmListId','ListId\x20=\x20?','\x20=\x20?','toString','cm_contact_has_items.item','cm_contact_has_items.OrderBy','cm_contact_has_items.createdAt','cm_contact_has_items.updatedAt','CmHopperId','OrderBy','cm_contact_has_items','cm_contacts.id\x20=\x20cm_contact_has_items.CmContactId','cm_hopper.ListId\x20=\x20?','concat','keys','CompanyId','id\x20IN\x20?','min_id','group','Received\x20SIGINT','error','message','exit','errors','info','main','stringify','send','start','binding','clone','socket_timestamp','root','server/files/tmp','.csv','body','findAll','name','_description','header','writeFileSync','data','find','hasOwnProperty','trim','replace','isValid','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNaN','isNumber','includes','agent\x20not\x20exists','email','YYYY-MM-DD','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','\x20not\x20specified','description','SystemRow','appendFileSync','emit','contact:import:','Abort\x20parser','SystemError','step','\x20LIKE\x20cm_contacts;','CIS\x20len','each','contact','contactId','contactTypeId','orderBy','DROP\x20TABLE\x20','affectedRows','unlink','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','file\x20doesn\x27t\x20exists','parse','binding\x20doesn\x27t\x20exists','ListId\x20is\x20mandatory','body\x20id\x20mandatory','map','No\x20agent\x20available','SIGINT','uncaughtException','papaparse','util','moment','squel','../../../config/environment','../../../config/logger','import','redis','localhost','socket.io-emitter','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x37c752,_0x3c7256){var _0x211186=function(_0x5a793f){while(--_0x5a793f){_0x37c752['push'](_0x37c752['shift']());}};_0x211186(++_0x3c7256);}(_0xd7cf,0x12b));var _0xfd7c=function(_0x598408,_0x5e6f74){_0x598408=_0x598408-0x0;var _0x560720=_0xd7cf[_0x598408];return _0x560720;};'use strict';var fs=require('fs');var path=require('path');var _=require('lodash');var Papa=require(_0xfd7c('0x0'));var util=require(_0xfd7c('0x1'));var BPromise=require('bluebird');var moment=require(_0xfd7c('0x2'));var squel=require(_0xfd7c('0x3'));var Redis=require('ioredis');var db=require('../../../mysqldb')['db'];var config=require(_0xfd7c('0x4'));var logger=require(_0xfd7c('0x5'))(_0xfd7c('0x6'));config[_0xfd7c('0x7')]=_['defaults'](config[_0xfd7c('0x7')],{'host':_0xfd7c('0x8'),'port':0x18eb});var socket=require(_0xfd7c('0x9'))(new Redis(config[_0xfd7c('0x7')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var promisesAdditionalPhones=[];var promisesContact=[];var orderBy=0x0;var updatedRows=0x0;var stopped=![];var NOW=moment()['format'](_0xfd7c('0xa'));var tempTableName=_0xfd7c('0xb')+moment()[_0xfd7c('0xc')]('YYYYMMDDHHmmss');var contactItemTypes=[];var phoneDescriptions=[];var hasAdditionalPhones=![];function isEmail(_0x156d02){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))*$/[_0xfd7c('0xd')](_0x156d02);}function selectNotIn(_0x1adb82,_0x4d4395,_0x21db6b,_0x3e0d28,_0x34e894){return squel[_0xfd7c('0xe')]()[_0xfd7c('0xf')]('phone')[_0xfd7c('0x10')](_0x3e0d28)[_0xfd7c('0x11')](_0x4d4395,null,_0x4d4395+_0xfd7c('0x12')+_0x3e0d28+'.'+_0x21db6b)[_0xfd7c('0x13')](_0x3e0d28+'.'+_0x21db6b+_0xfd7c('0x14')+_0x1adb82+'.'+_0x21db6b)['where'](_0x4d4395+_0xfd7c('0x15')+_0x34e894[_0xfd7c('0x11')]()+')');}function handleAdditionalPhones(){return new Promise(function(_0x1fec27,_0x840f5f){promisesAdditionalPhones=[];promisesContact=[];return db['sequelize']['query']('select\x20*\x20from\x20'+tempTableName)[_0xfd7c('0x16')](function(_0x31123f){if(_0x31123f!==null){var _0x59314e=[];for(var _0x2c3b11=0x0;_0x2c3b11<_0x31123f[_0xfd7c('0x17')];_0x2c3b11++){var _0x4e4925=_0x31123f[_0x2c3b11];if(!_[_0xfd7c('0x18')](_0x4e4925[_0xfd7c('0x19')])){if(!_[_0xfd7c('0x18')](_0x4e4925['AdditionalPhones']))_0x59314e[_0xfd7c('0x1a')](insertAdditionalPhones(_0x4e4925));promisesContact[_0xfd7c('0x1a')]({'contact':_0x4e4925});}}}Promise['all'](_0x59314e)[_0xfd7c('0x1b')](function(){_0x1fec27({'val':0x1});});})[_0xfd7c('0x1c')](function(_0x1e8d4b){logger['error'](_0x1e8d4b['message']);});});}function insertAdditionalPhones(_0x4d86c4){return new Promise(function(_0x483cc4,_0x5c5d36){var _0x2e9ad6=_0x4d86c4[_0xfd7c('0x1d')];if(_[_0xfd7c('0x18')](_0x2e9ad6))_0x5c5d36({'val':0x0});else{var _0x540a3c=_0x2e9ad6[_0xfd7c('0x1e')](';');var _0x1e62a2=[];orderBy=0x0;for(var _0x2ce262=0x0;_0x2ce262<_0x540a3c[_0xfd7c('0x17')];_0x2ce262++){_0x1e62a2[_0xfd7c('0x1a')](splitAdditionalPhone(_0x4d86c4['id'],_0x540a3c[_0x2ce262]));}Promise[_0xfd7c('0x1f')](_0x1e62a2)['then'](function(){_0x483cc4({'val':_0x540a3c[_0xfd7c('0x17')]});});}});}function splitAdditionalPhone(_0x44743f,_0x2d7791){return new Promise(function(_0xbd5cf2,_0x11ca22){var _0xb4ba3c=_0x2d7791[_0xfd7c('0x1e')](':');var _0x42f939=_0xb4ba3c[0x0];var _0x285768=_0xb4ba3c[0x1];if(_0x285768!==''){var _0x2849dd=_0x285768[_0xfd7c('0x1e')]('|');var _0x56e0d1=[];for(var _0x250ed2=0x0;_0x250ed2<_0x2849dd[_0xfd7c('0x17')];_0x250ed2++){if(_0x2849dd[_0x250ed2]!==''){var _0x5276cc=_[_0xfd7c('0x20')](promisesAdditionalPhones,{'contactId':_0x44743f,'phone':_0x2849dd[_0x250ed2]});if(_0x5276cc[_0xfd7c('0x17')]==0x0){orderBy++;promisesAdditionalPhones[_0xfd7c('0x1a')]({'contactId':_0x44743f,'contactTypeId':_0x42f939,'phone':_0x2849dd[_0x250ed2],'orderBy':orderBy});}}}_0xbd5cf2({'ok':0x1});}else _0xbd5cf2({'res':0x0});});}function createAdditionalPhone(_0x55aab3,_0x567bc5,_0x374dce,_0x1bd79b){var _0x423407='';var _0x12a760='';var _0x59ca9f=_0x374dce['split']('§');_0x423407=_0x59ca9f[0x0];if(_0x59ca9f['length']==0x2)_0x12a760=_0x59ca9f[0x1];return new Promise(function(_0x1ae966,_0xdae07){return db[_0xfd7c('0x21')][_0xfd7c('0x22')]({'where':{'CmContactId':_0x55aab3,'item':_0x423407}})[_0xfd7c('0x1b')](function(_0x100df1){if(_0x100df1){return db[_0xfd7c('0x21')]['update']({'ItemTypeId':_0x567bc5,'description':_0x12a760,'OrderBy':_0x1bd79b},{'where':{'CmContactId':_0x55aab3,'item':_0x423407}})[_0xfd7c('0x1b')](function(_0x4ae022){_0x1ae966({'res':_0xfd7c('0x23')});});}else{return db['CmContactHasItem'][_0xfd7c('0x24')]({'CmContactId':_0x55aab3,'item':_0x423407,'ItemTypeId':_0x567bc5,'description':_0x12a760,'OrderBy':_0x1bd79b,'ItemClass':_0xfd7c('0x25')})[_0xfd7c('0x1b')](function(_0x2045cd){_0x1ae966({'res':_0xfd7c('0x26')});});}});});}function updateContact(_0x4e227c){return new Promise(function(_0x2fa359,_0x51c8eb){var _0x2beb08=_0x4e227c['id'];delete _0x4e227c['id'];return db[_0xfd7c('0x27')][_0xfd7c('0x28')](_0x4e227c,{'where':{'id':_0x2beb08}})[_0xfd7c('0x1b')](function(_0x19e46e){updatedRows+=0x1;return db['CmHopper']['update']({'phone':_0x4e227c[_0xfd7c('0x19')]},{'where':{'ContactId':_0x2beb08}})[_0xfd7c('0x1b')](function(_0x574cf0){_0x2fa359({'ret':'OK'});});});});}function insertCmHopper(_0x40a10e,_0x316f8b,_0x490331,_0x1c341d,_0x3a960e){var _0x138ca6=[_0xfd7c('0x29'),_0xfd7c('0x2a'),'cm_contacts.id',_0xfd7c('0x2b'),_0x316f8b+'.'+_0x1c341d,_0xfd7c('0x2c'),_0xfd7c('0x2d'),_0xfd7c('0x2e'),_0xfd7c('0x2f'),'\x22'+_0x3a960e+'\x22'];return squel[_0xfd7c('0x30')]()[_0xfd7c('0x31')](_0xfd7c('0x32'))[_0xfd7c('0x33')](['phone',_0xfd7c('0x34'),_0xfd7c('0x35'),'ListId',_0x1c341d,_0xfd7c('0x36'),_0xfd7c('0x37'),_0xfd7c('0x38'),_0xfd7c('0x39'),_0xfd7c('0x3a')],squel['select']()[_0xfd7c('0x3b')](_0x138ca6)[_0xfd7c('0x10')](_0x316f8b)[_0xfd7c('0x11')](_0xfd7c('0x3c'),null,_0xfd7c('0x3d')+_0x316f8b+'.CmListId')['join'](_0x490331,null,_0x490331+'.id\x20=\x20'+_0x316f8b+'.'+_0x1c341d)[_0xfd7c('0x13')](_0x316f8b+_0xfd7c('0x3e'),_0x40a10e)[_0xfd7c('0x13')](_0xfd7c('0x3f'),NOW)[_0xfd7c('0x13')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x316f8b,_0x490331,_0x1c341d,'cm_hopper',[_0xfd7c('0x40'),_0xfd7c('0x41')]))[_0xfd7c('0x13')](_0xfd7c('0x42'),selectNotIn(_0x316f8b,_0x490331,_0x1c341d,'cm_hopper',[_0xfd7c('0x40')])))['toString']();}function insertCmHopperBlack(_0x1a3dc9,_0x37aa57,_0x269c06,_0x4be31f){var _0x145786=[_0xfd7c('0x29'),_0xfd7c('0x43'),_0xfd7c('0x2b'),_0x37aa57+'.'+_0x4be31f,_0xfd7c('0x2c'),_0xfd7c('0x2d')];return squel[_0xfd7c('0x30')]()['into'](_0xfd7c('0x44'))[_0xfd7c('0x33')](['phone',_0xfd7c('0x35'),_0xfd7c('0x45'),_0x4be31f,_0xfd7c('0x36'),_0xfd7c('0x37')],squel[_0xfd7c('0xe')]()['fields'](_0x145786)[_0xfd7c('0x10')](_0x37aa57)[_0xfd7c('0x11')](_0xfd7c('0x3c'),null,_0xfd7c('0x3d')+_0x37aa57+_0xfd7c('0x46'))[_0xfd7c('0x11')](_0x269c06,null,_0x269c06+_0xfd7c('0x12')+_0x37aa57+'.'+_0x4be31f)[_0xfd7c('0x13')](_0x37aa57+_0xfd7c('0x3e'),_0x1a3dc9)['where'](_0xfd7c('0x3f'),NOW)[_0xfd7c('0x13')](_0xfd7c('0x42'),squel[_0xfd7c('0xe')]()[_0xfd7c('0xf')](_0xfd7c('0x19'))[_0xfd7c('0x10')](_0xfd7c('0x44'))[_0xfd7c('0x13')](_0xfd7c('0x47'),_0x1a3dc9)[_0xfd7c('0x13')](_0x4be31f+_0xfd7c('0x48'),_0x37aa57+'.'+_0x4be31f)))[_0xfd7c('0x49')]();}function insertCmHopperAdditionalPhones(_0x13472c){var _0x465c33=['cm_hopper.id',_0xfd7c('0x4a'),_0xfd7c('0x4b'),_0xfd7c('0x4c'),_0xfd7c('0x4d')];return squel['insert']()[_0xfd7c('0x31')]('cm_hopper_additional_phones')['fromQuery']([_0xfd7c('0x4e'),'phone',_0xfd7c('0x4f'),'createdAt','updatedAt'],squel['select']()[_0xfd7c('0x3b')](_0x465c33)[_0xfd7c('0x10')]('cm_hopper')[_0xfd7c('0x11')]('cm_contacts',null,'cm_contacts.id\x20=\x20cm_hopper.ContactId')[_0xfd7c('0x11')](_0xfd7c('0x50'),null,_0xfd7c('0x51'))[_0xfd7c('0x13')](_0xfd7c('0x52'),_0x13472c)[_0xfd7c('0x13')](_0xfd7c('0x3f'),NOW))[_0xfd7c('0x49')]();}function insertCmContact(_0x476dbd,_0x2b59ea,_0xd0ca97,_0x1df9e8){var _0xc576db=_[_0xfd7c('0x53')](_[_0xfd7c('0x54')](_0x1df9e8),['ListId',_0xfd7c('0x55'),_0xfd7c('0x36'),_0xfd7c('0x37')]);return squel[_0xfd7c('0x30')]()['into'](_0xfd7c('0x3c'))['fromQuery'](_0xc576db,squel[_0xfd7c('0xe')]()[_0xfd7c('0x3b')](_0xc576db)[_0xfd7c('0x10')](_0x2b59ea)['where']('('+_0xd0ca97[_0xfd7c('0x11')](',')+')\x20NOT\x20IN\x20?',squel[_0xfd7c('0xe')]()[_0xfd7c('0x3b')](_0xd0ca97)['from']('cm_contacts')[_0xfd7c('0x13')](_0xfd7c('0x47'),_0x476dbd))[_0xfd7c('0x13')](_0xfd7c('0x56'),squel[_0xfd7c('0xe')]()[_0xfd7c('0xf')]('MIN(id)',_0xfd7c('0x57'))[_0xfd7c('0x10')](_0x2b59ea)[_0xfd7c('0x58')](_0xd0ca97[_0xfd7c('0x11')](','))))[_0xfd7c('0x49')]();}function handleStop(){logger['info'](_0xfd7c('0x59'));stopped=!![];}function handleUncaughtException(_0x4df2f8){logger[_0xfd7c('0x5a')](_0x4df2f8[_0xfd7c('0x5b')]);process[_0xfd7c('0x5c')](0x1);}function handleError(_0x30ab26,_0x1e8c28){stats[_0xfd7c('0x5d')][_0xfd7c('0x1a')]({'name':_0x1e8c28['code'],'message':_0x1e8c28[_0xfd7c('0x5b')],'row':_0x30ab26});}function handleQuery(_0x7879d5){logger[_0xfd7c('0x5e')](_0x7879d5);return db['sequelize']['query'](_0x7879d5)[_0xfd7c('0x16')](function(_0x548a94){results[_0xfd7c('0x1a')](_0x548a94);})[_0xfd7c('0x1c')](function(_0x1d21d2){logger['error'](_0x1d21d2[_0xfd7c('0x5b')]);});}function main(_0x180527,_0x9edc4d,_0x35bb66,_0x55cae7){logger['info'](_0xfd7c('0x5f'),_0x180527,JSON[_0xfd7c('0x60')](_0x9edc4d));process[_0xfd7c('0x61')](_0xfd7c('0x62'));var _0x365e0c=_0x9edc4d[_0xfd7c('0x63')];var _0x1cc4db=_[_0xfd7c('0x64')](_0x365e0c);var _0x5589f8=_0x9edc4d[_0xfd7c('0x65')];var _0x2b5a31=path[_0xfd7c('0x11')](config[_0xfd7c('0x66')],_0xfd7c('0x67'),_0x5589f8+_0xfd7c('0x68'));logger[_0xfd7c('0x5e')](_0xfd7c('0x69'),_0x9edc4d);db['ContactItemType'][_0xfd7c('0x6a')]({'raw':!![],'attributes':['id',_0xfd7c('0x6b')]})[_0xfd7c('0x1b')](function(_0x929c42){for(var _0x3ce9d5=0x0;_0x3ce9d5<_0x929c42[_0xfd7c('0x17')];_0x3ce9d5++){if(_0x929c42[_0x3ce9d5]['name']in _0x365e0c){contactItemTypes['push'](_0x929c42[_0x3ce9d5]);delete _0x1cc4db[_0x929c42[_0x3ce9d5]['name']];hasAdditionalPhones=!![];}for(var _0x40eefa in _0x365e0c){if(_0x929c42[_0x3ce9d5][_0xfd7c('0x6b')]+_0xfd7c('0x6c')===_0x40eefa){phoneDescriptions[_0xfd7c('0x1a')]({'itemTypeId':_0x929c42[_0x3ce9d5]['id'],'description':_0x40eefa});delete _0x1cc4db[_0x40eefa];}}}if(hasAdditionalPhones)_0x1cc4db[_0xfd7c('0x1d')]='';var _0x3cf5f6=_[_0xfd7c('0x54')](_0x1cc4db)['join']();logger[_0xfd7c('0x5e')](_0xfd7c('0x6d'),_0x3cf5f6);fs[_0xfd7c('0x6e')](_0x2b5a31,_0x3cf5f6+'\x0a');Papa['parse'](fs['createReadStream'](_0x180527),{'header':!![],'skipEmptyLines':!![],'step':function(_0x21cac4,_0x4efd15){try{for(var _0x2c4557=0x0,_0x551def=[];_0x2c4557<_0x21cac4['data']['length'];_0x2c4557++){stats['rows']+=0x1;if(_0x21cac4[_0xfd7c('0x5d')][_0x2c4557]){handleError(_0x21cac4[_0xfd7c('0x6f')][_0x2c4557],_0x21cac4[_0xfd7c('0x5d')][_0x2c4557]);}else{var _0x1e1e40=[];var _0xf0ece9=[];var _0x277888={};for(var _0x30c4af in _0x365e0c){let _0x3ae837=contactItemTypes[_0xfd7c('0x70')](_0x17a047=>_0x17a047['name']===_0x30c4af);let _0x109bee=contactItemTypes[_0xfd7c('0x70')](_0x5e3ea6=>_0x5e3ea6[_0xfd7c('0x6b')]+'_description'===_0x30c4af);if(_['isNil'](_0x3ae837)&&_[_0xfd7c('0x18')](_0x109bee)){if(_0x365e0c[_0xfd7c('0x71')](_0x30c4af)){if(_0x21cac4[_0xfd7c('0x6f')][_0x2c4557][_0x365e0c[_0x30c4af]]){var _0x1bf423=_[_0xfd7c('0x72')](_0x21cac4[_0xfd7c('0x6f')][_0x2c4557][_0x365e0c[_0x30c4af]][_0xfd7c('0x73')](/"/g,'\x27'));switch(_0x30c4af){case'scheduledat':var _0x196b31=moment(_0x1bf423,_0xfd7c('0xa'),!![]);if(_0x196b31[_0xfd7c('0x74')]()){_0x551def['push']('\x22'+_0x1bf423+'\x22');}else{_0x1e1e40[_0xfd7c('0x1a')](_0xfd7c('0x75'));}break;case'priority':var _0x17bd4f=parseInt(_0x1bf423);_0x1bf423=_[_0xfd7c('0x76')](_0x17bd4f)||_0x17bd4f<0x0||_0x17bd4f>0x4?_0x55cae7?0x3:0x2:_0x17bd4f;_0x551def[_0xfd7c('0x1a')]('\x22'+_0x1bf423+'\x22');break;case _0xfd7c('0x39'):var _0x28aa6f=parseInt(_0x1bf423);if(_[_0xfd7c('0x77')](_0x28aa6f)&&_[_0xfd7c('0x78')](_0x35bb66,_0x28aa6f)){_0x551def[_0xfd7c('0x1a')]('\x22'+_0x28aa6f+'\x22');}else{_0x1e1e40[_0xfd7c('0x1a')](_0xfd7c('0x79'));}break;case _0xfd7c('0x7a'):if(isEmail(_0x1bf423)){_0x551def[_0xfd7c('0x1a')]('\x22'+_0x1bf423+'\x22');}else{_0x1e1e40[_0xfd7c('0x1a')]('email\x20wrong\x20format');}break;case'dateOfBirth':var _0x1e97cb=moment(_0x1bf423,_0xfd7c('0x7b'),!![]);if(_0x1e97cb['isValid']()){_0x551def[_0xfd7c('0x1a')]('\x22'+_0x1bf423+'\x22');}else{_0x1e1e40[_0xfd7c('0x1a')](_0xfd7c('0x7c'));}break;default:_0x551def['push']('\x22'+_0x1bf423+'\x22');}}else{switch(_0x30c4af){case'firstName':case'phone':_0x1e1e40[_0xfd7c('0x1a')](_0x30c4af+_0xfd7c('0x7d'));break;default:_0x551def['push']('\x22\x22');}}}}else{var _0x79f81='';if(!_[_0xfd7c('0x18')](_0x3ae837)){if(!_0x277888[_0xfd7c('0x71')](_0x3ae837['id'])){for(var _0x390330=0x0;_0x390330<_0x365e0c[_0x30c4af]['length'];_0x390330++){var _0x1bf423=_[_0xfd7c('0x72')](_0x21cac4[_0xfd7c('0x6f')][_0x2c4557][_0x365e0c[_0x30c4af][_0x390330]][_0xfd7c('0x73')](/"/g,'\x27'));var _0x493aee=phoneDescriptions[_0xfd7c('0x70')](_0x43d889=>_0x43d889['itemTypeId']===_0x3ae837['id']);if(!_[_0xfd7c('0x18')](_0x493aee)){var _0x2cb8d3=_[_0xfd7c('0x72')](_0x21cac4[_0xfd7c('0x6f')][_0x2c4557][_0x365e0c[_0x493aee[_0xfd7c('0x7e')]][0x0]]['replace'](/"/g,'\x27'));if(!_['isNil'](_0x2cb8d3))_0x1bf423=_0x1bf423+'§'+_0x2cb8d3;}if(_0x79f81=='')_0x79f81=_0x1bf423;else _0x79f81+='|'+_0x1bf423;}_0xf0ece9['push'](_0x3ae837['id']+':'+_0x79f81);_0x277888[_0x3ae837['id']]=0x1;}}}}if(hasAdditionalPhones){_0x551def['push']('\x22'+_0xf0ece9[_0xfd7c('0x11')](';')+'\x22');}if(_0x1e1e40['length']){handleError(_0x21cac4[_0xfd7c('0x6f')][_0x2c4557],{'code':_0xfd7c('0x7f'),'message':_0x1e1e40[_0xfd7c('0x11')]()});}else{fs[_0xfd7c('0x80')](_0x2b5a31,_0x551def[_0xfd7c('0x11')]()+'\x0a');}_0x551def=[];}if(!(stats['rows']%0xc8)){socket[_0xfd7c('0x81')](_0xfd7c('0x82')+_0x5589f8,stats);stats[_0xfd7c('0x5d')]=[];}}if(stopped){logger[_0xfd7c('0x5e')](_0xfd7c('0x83'));_0x4efd15['abort']();}}catch(_0x268a75){handleError(_0x21cac4['data'][_0x2c4557],{'code':_0xfd7c('0x84'),'message':_0x268a75[_0xfd7c('0x5b')]});logger['error'](_0xfd7c('0x85'),_0x268a75['message']);}},'complete':function(){try{var _0x441361=[];var _0x7a1e98=tempTableName;_0x441361['push']('CREATE\x20TABLE\x20'+_0x7a1e98+_0xfd7c('0x86'));logger[_0xfd7c('0x5e')](_0xfd7c('0x87'),contactItemTypes['length']);var _0x3f45f4=util['format']('LOAD\x20DATA\x20LOCAL\x20INFILE\x20\x27%s\x27\x20INTO\x20TABLE\x20%s\x20CHARACTER\x20SET\x20UTF8\x20FIELDS\x20TERMINATED\x20BY\x20\x27,\x27\x20ENCLOSED\x20BY\x20\x27\x22\x27\x20LINES\x20TERMINATED\x20BY\x20\x27\x0a\x27\x20IGNORE\x201\x20ROWS\x20(%s)\x20SET\x20ListId\x20=\x20%s,\x20CompanyId\x20=\x20%s,\x20createdAt\x20=\x20\x27%s\x27,\x20updatedAt\x20=\x20\x27%s\x27',_0x2b5a31,_0x7a1e98,_0x3cf5f6,_0x9edc4d[_0xfd7c('0x45')],_0x9edc4d[_0xfd7c('0x55')]||null,NOW,NOW);if(_[_0xfd7c('0x18')](_0x365e0c[_0xfd7c('0x34')])){_0x3f45f4+=',\x20scheduledAt\x20=\x20NOW()';}_0x441361['push'](_0x3f45f4);BPromise[_0xfd7c('0x88')](_0x441361,handleQuery)[_0xfd7c('0x1b')](function(_0x4a6e30){BPromise[_0xfd7c('0x1f')]([handleAdditionalPhones()])[_0xfd7c('0x1b')](function(){_0x441361=[];for(var _0x2f2fad=0x0;_0x2f2fad<promisesContact[_0xfd7c('0x17')];_0x2f2fad++){_0x441361[_0xfd7c('0x1a')](updateContact(promisesContact[_0x2f2fad][_0xfd7c('0x89')]));}BPromise[_0xfd7c('0x1f')](_0x441361)['then'](function(){_0x441361=[];for(var _0x5d4e62=0x0;_0x5d4e62<promisesAdditionalPhones[_0xfd7c('0x17')];_0x5d4e62++){_0x441361['push'](createAdditionalPhone(promisesAdditionalPhones[_0x5d4e62][_0xfd7c('0x8a')],promisesAdditionalPhones[_0x5d4e62][_0xfd7c('0x8b')],promisesAdditionalPhones[_0x5d4e62][_0xfd7c('0x19')],promisesAdditionalPhones[_0x5d4e62][_0xfd7c('0x8c')]));}BPromise['all'](_0x441361)['then'](function(){_0x441361=[];_0x441361[_0xfd7c('0x1a')](insertCmHopperAdditionalPhones(_0x9edc4d[_0xfd7c('0x45')]));_0x441361['push'](_0xfd7c('0x8d')+_0x7a1e98+';');BPromise['each'](_0x441361,handleQuery)['then'](function(_0x130489){stats['finish']=!![];stats[_0xfd7c('0x8e')]=updatedRows;socket['emit']('contact:import:'+_0x5589f8,stats);fs['unlink'](_0x180527);fs[_0xfd7c('0x8f')](_0x2b5a31);process[_0xfd7c('0x5c')](0x0);})[_0xfd7c('0x1c')](function(_0x1bb943){logger[_0xfd7c('0x5a')](_0x1bb943['message']);process[_0xfd7c('0x5c')](0x1);});});});});})[_0xfd7c('0x1c')](function(_0x44fdee){logger['error'](_0x44fdee['message']);process[_0xfd7c('0x5c')](0x1);});}catch(_0x47269b){logger[_0xfd7c('0x5a')]('complete',_0x47269b[_0xfd7c('0x5b')]);process[_0xfd7c('0x5c')](0x1);}},'error':function(_0x1a1f27,_0x5c21ae,_0x3992b1,_0x3430a3){throw new Error(_0x3430a3);}});});}function validate(){if(process[_0xfd7c('0x90')]&&process[_0xfd7c('0x90')][_0xfd7c('0x17')]<0x4){throw new Error(_0xfd7c('0x91'));}var _0x286a34=path['join'](config['root'],_0xfd7c('0x67'),process[_0xfd7c('0x90')][0x2]);if(!fs['existsSync'](_0x286a34)){throw new Error(_0xfd7c('0x92'));}var _0x1d7ee7={};try{_0x1d7ee7=JSON[_0xfd7c('0x93')](process[_0xfd7c('0x90')][0x3]);if(!_0x1d7ee7[_0xfd7c('0x63')]){throw new Error(_0xfd7c('0x94'));}var _0x1d9e0a=0x0;if(_0x1d7ee7[_0xfd7c('0x63')][_0xfd7c('0x39')]){_0x1d9e0a=0x1;}if(!_0x1d7ee7[_0xfd7c('0x45')]){throw new Error(_0xfd7c('0x95'));}}catch(_0x1efddd){throw new Error(_0xfd7c('0x96'));}var _0x27989d=[];try{_0x27989d=_[_0xfd7c('0x97')](JSON['parse'](process[_0xfd7c('0x90')][0x4]),'id');}catch(_0x2e1e8c){logger['info'](_0xfd7c('0x98'));}main(_0x286a34,_0x1d7ee7,_0x27989d,_0x1d9e0a);}validate();process['on'](_0xfd7c('0x99'),handleStop);process['on'](_0xfd7c('0x9a'),handleUncaughtException);