Built motion from commit 0bd120ac.|2.6.25
[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 _0xefe2=['errors','code','query','main','send','start','clone','socket_timestamp','root','server/files/tmp','.csv','ContactItemType','findAll','name','_description','header','writeFileSync','parse','createReadStream','data','rows','find','trim','isValid','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNumber','agent\x20not\x20exists','email','email\x20wrong\x20format','dateOfBirth','YYYY-MM-DD','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','hasOwnProperty','replace','itemTypeId','description','appendFileSync','emit','Abort\x20parser','abort','step','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','CIS\x20len','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',',\x20scheduledAt\x20=\x20NOW()','each','contact','contactTypeId','orderBy','DROP\x20TABLE\x20','contact:import:','unlink','complete','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','existsSync','binding','body\x20id\x20mandatory','map','SIGINT','uncaughtException','path','lodash','util','bluebird','squel','../../../mysqldb','../../../config/environment','../../../config/logger','import','redis','localhost','socket.io-emitter','YYYY-MM-DD\x20HH:mm:ss','cm_contacts_temp_','format','test','select','field','phone','from','join','.id\x20=\x20','where','.dialCheckDuplicateType\x20IN\x20(','sequelize','select\x20*\x20from\x20','spread','isNil','AdditionalPhones','push','all','then','catch','error','message','split','length','filter','findOne','CmContactHasItem','update','updated','create','inserted','CmContact','CmHopper','cm_contacts.id','cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.priority','insert','into','cm_hopper','fromQuery','scheduledat','ContactId','createdAt','priority','UserId','recallme','fields','cm_contacts','.CmListId','.CmListId\x20=\x20?','cm_contacts.createdAt\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','\x22always\x22','\x22onlyIfOpen\x22','toString','cm_contacts.phone','cm_contacts.ListId','cm_hopper_black','ListId','updatedAt','cm_contacts.ListId\x20=\x20','ListId\x20=\x20?','\x20=\x20?','cm_hopper.id','cm_contact_has_items.OrderBy','cm_contact_has_items.createdAt','cm_contact_has_items.updatedAt','CmHopperId','cm_contacts.id\x20=\x20cm_hopper.ContactId','cm_hopper.ListId\x20=\x20?','concat','keys','CompanyId','id\x20IN\x20?','min_id','group','info','Received\x20SIGINT','exit'];(function(_0x313b82,_0x43290f){var _0x2f8aa3=function(_0x5e3a41){while(--_0x5e3a41){_0x313b82['push'](_0x313b82['shift']());}};_0x2f8aa3(++_0x43290f);}(_0xefe2,0xd9));var _0x2efe=function(_0x6fa8f9,_0x5d48d2){_0x6fa8f9=_0x6fa8f9-0x0;var _0x39b579=_0xefe2[_0x6fa8f9];return _0x39b579;};'use strict';var fs=require('fs');var path=require(_0x2efe('0x0'));var _=require(_0x2efe('0x1'));var Papa=require('papaparse');var util=require(_0x2efe('0x2'));var BPromise=require(_0x2efe('0x3'));var moment=require('moment');var squel=require(_0x2efe('0x4'));var Redis=require('ioredis');var db=require(_0x2efe('0x5'))['db'];var config=require(_0x2efe('0x6'));var logger=require(_0x2efe('0x7'))(_0x2efe('0x8'));config[_0x2efe('0x9')]=_['defaults'](config[_0x2efe('0x9')],{'host':_0x2efe('0xa'),'port':0x18eb});var socket=require(_0x2efe('0xb'))(new Redis(config[_0x2efe('0x9')]));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'](_0x2efe('0xc'));var tempTableName=_0x2efe('0xd')+moment()[_0x2efe('0xe')]('YYYYMMDDHHmmss');var contactItemTypes=[];var phoneDescriptions=[];var hasAdditionalPhones=![];function isEmail(_0x498eb4){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))*$/[_0x2efe('0xf')](_0x498eb4);}function selectNotIn(_0x5a17d3,_0x58ba63,_0x2bf25a,_0x34085f,_0x45f674){return squel[_0x2efe('0x10')]()[_0x2efe('0x11')](_0x2efe('0x12'))[_0x2efe('0x13')](_0x34085f)[_0x2efe('0x14')](_0x58ba63,null,_0x58ba63+_0x2efe('0x15')+_0x34085f+'.'+_0x2bf25a)[_0x2efe('0x16')](_0x34085f+'.'+_0x2bf25a+'\x20=\x20'+_0x5a17d3+'.'+_0x2bf25a)['where'](_0x58ba63+_0x2efe('0x17')+_0x45f674[_0x2efe('0x14')]()+')');}function handleAdditionalPhones(){return new Promise(function(_0x562753,_0x5b0c6b){promisesAdditionalPhones=[];promisesContact=[];return db[_0x2efe('0x18')]['query'](_0x2efe('0x19')+tempTableName)[_0x2efe('0x1a')](function(_0x51cbf3){if(_0x51cbf3!==null){var _0x5e7063=[];for(var _0x394cd7=0x0;_0x394cd7<_0x51cbf3['length'];_0x394cd7++){var _0x40d690=_0x51cbf3[_0x394cd7];if(!_['isNil'](_0x40d690['phone'])){if(!_[_0x2efe('0x1b')](_0x40d690[_0x2efe('0x1c')]))_0x5e7063[_0x2efe('0x1d')](insertAdditionalPhones(_0x40d690));promisesContact[_0x2efe('0x1d')]({'contact':_0x40d690});}}}Promise[_0x2efe('0x1e')](_0x5e7063)[_0x2efe('0x1f')](function(){_0x562753({'val':0x1});});})[_0x2efe('0x20')](function(_0x2c92e9){logger[_0x2efe('0x21')](_0x2c92e9[_0x2efe('0x22')]);});});}function insertAdditionalPhones(_0x3ed3a1){return new Promise(function(_0x6962df,_0x491958){var _0x3522b3=_0x3ed3a1['AdditionalPhones'];if(_[_0x2efe('0x1b')](_0x3522b3))_0x491958({'val':0x0});else{var _0x6e7b56=_0x3522b3[_0x2efe('0x23')](';');var _0x4ebeb6=[];orderBy=0x0;for(var _0x131169=0x0;_0x131169<_0x6e7b56[_0x2efe('0x24')];_0x131169++){_0x4ebeb6['push'](splitAdditionalPhone(_0x3ed3a1['id'],_0x6e7b56[_0x131169]));}Promise[_0x2efe('0x1e')](_0x4ebeb6)[_0x2efe('0x1f')](function(){_0x6962df({'val':_0x6e7b56[_0x2efe('0x24')]});});}});}function splitAdditionalPhone(_0x319b7f,_0x29c7c2){return new Promise(function(_0x1d9d39,_0x2a9b20){var _0x350411=_0x29c7c2[_0x2efe('0x23')](':');var _0x301cf2=_0x350411[0x0];var _0x1beaad=_0x350411[0x1];if(_0x1beaad!==''){var _0x26080e=_0x1beaad[_0x2efe('0x23')]('|');var _0x255330=[];for(var _0x4c5118=0x0;_0x4c5118<_0x26080e[_0x2efe('0x24')];_0x4c5118++){if(_0x26080e[_0x4c5118]!==''){var _0x5e18d3=_[_0x2efe('0x25')](promisesAdditionalPhones,{'contactId':_0x319b7f,'phone':_0x26080e[_0x4c5118]});if(_0x5e18d3[_0x2efe('0x24')]==0x0){orderBy++;promisesAdditionalPhones[_0x2efe('0x1d')]({'contactId':_0x319b7f,'contactTypeId':_0x301cf2,'phone':_0x26080e[_0x4c5118],'orderBy':orderBy});}}}_0x1d9d39({'ok':0x1});}else _0x1d9d39({'res':0x0});});}function createAdditionalPhone(_0x431394,_0x3b61d1,_0xa11a23,_0x4039cb){var _0x33124f='';var _0x56b011='';var _0x145b1e=_0xa11a23[_0x2efe('0x23')]('§');_0x33124f=_0x145b1e[0x0];if(_0x145b1e[_0x2efe('0x24')]==0x2)_0x56b011=_0x145b1e[0x1];return new Promise(function(_0x1c797d,_0x1bed7f){return db['CmContactHasItem'][_0x2efe('0x26')]({'where':{'CmContactId':_0x431394,'item':_0x33124f}})[_0x2efe('0x1f')](function(_0x1108eb){if(_0x1108eb){return db[_0x2efe('0x27')][_0x2efe('0x28')]({'ItemTypeId':_0x3b61d1,'description':_0x56b011,'OrderBy':_0x4039cb},{'where':{'CmContactId':_0x431394,'item':_0x33124f}})[_0x2efe('0x1f')](function(_0x1d88a6){_0x1c797d({'res':_0x2efe('0x29')});});}else{return db[_0x2efe('0x27')][_0x2efe('0x2a')]({'CmContactId':_0x431394,'item':_0x33124f,'ItemTypeId':_0x3b61d1,'description':_0x56b011,'OrderBy':_0x4039cb,'ItemClass':'PHONE'})[_0x2efe('0x1f')](function(_0x208cbd){_0x1c797d({'res':_0x2efe('0x2b')});});}});});}function updateContact(_0x204ef7){return new Promise(function(_0x21c1e8,_0x285822){var _0x1ff75d=_0x204ef7['id'];delete _0x204ef7['id'];return db[_0x2efe('0x2c')][_0x2efe('0x28')](_0x204ef7,{'where':{'id':_0x1ff75d}})['then'](function(_0x154f47){updatedRows+=0x1;return db[_0x2efe('0x2d')]['update']({'phone':_0x204ef7['phone']},{'where':{'ContactId':_0x1ff75d}})['then'](function(_0x2b8b45){_0x21c1e8({'ret':'OK'});});});});}function insertCmHopper(_0x17f5e4,_0x38e44f,_0x5a8ba4,_0x330d36,_0x2e7ce1){var _0x3908fa=['cm_contacts.phone','cm_contacts.scheduledat',_0x2efe('0x2e'),'cm_contacts.ListId',_0x38e44f+'.'+_0x330d36,_0x2efe('0x2f'),_0x2efe('0x30'),_0x2efe('0x31'),'cm_contacts.UserId','\x22'+_0x2e7ce1+'\x22'];return squel[_0x2efe('0x32')]()[_0x2efe('0x33')](_0x2efe('0x34'))[_0x2efe('0x35')]([_0x2efe('0x12'),_0x2efe('0x36'),_0x2efe('0x37'),'ListId',_0x330d36,_0x2efe('0x38'),'updatedAt',_0x2efe('0x39'),_0x2efe('0x3a'),_0x2efe('0x3b')],squel[_0x2efe('0x10')]()[_0x2efe('0x3c')](_0x3908fa)['from'](_0x38e44f)[_0x2efe('0x14')](_0x2efe('0x3d'),null,'cm_contacts.ListId\x20=\x20'+_0x38e44f+_0x2efe('0x3e'))[_0x2efe('0x14')](_0x5a8ba4,null,_0x5a8ba4+'.id\x20=\x20'+_0x38e44f+'.'+_0x330d36)[_0x2efe('0x16')](_0x38e44f+_0x2efe('0x3f'),_0x17f5e4)[_0x2efe('0x16')](_0x2efe('0x40'),NOW)[_0x2efe('0x16')](_0x2efe('0x41'),selectNotIn(_0x38e44f,_0x5a8ba4,_0x330d36,_0x2efe('0x34'),[_0x2efe('0x42'),_0x2efe('0x43')]))[_0x2efe('0x16')](_0x2efe('0x41'),selectNotIn(_0x38e44f,_0x5a8ba4,_0x330d36,_0x2efe('0x34'),[_0x2efe('0x42')])))[_0x2efe('0x44')]();}function insertCmHopperBlack(_0xd7974a,_0x529f8c,_0x10e196,_0x84d98b){var _0x2b3068=[_0x2efe('0x45'),_0x2efe('0x2e'),_0x2efe('0x46'),_0x529f8c+'.'+_0x84d98b,_0x2efe('0x2f'),'cm_contacts.updatedAt'];return squel[_0x2efe('0x32')]()[_0x2efe('0x33')](_0x2efe('0x47'))[_0x2efe('0x35')]([_0x2efe('0x12'),'ContactId',_0x2efe('0x48'),_0x84d98b,_0x2efe('0x38'),_0x2efe('0x49')],squel[_0x2efe('0x10')]()[_0x2efe('0x3c')](_0x2b3068)[_0x2efe('0x13')](_0x529f8c)[_0x2efe('0x14')](_0x2efe('0x3d'),null,_0x2efe('0x4a')+_0x529f8c+'.CmListId')['join'](_0x10e196,null,_0x10e196+'.id\x20=\x20'+_0x529f8c+'.'+_0x84d98b)[_0x2efe('0x16')](_0x529f8c+_0x2efe('0x3f'),_0xd7974a)['where'](_0x2efe('0x40'),NOW)['where']('cm_contacts.phone\x20NOT\x20IN\x20(?)',squel[_0x2efe('0x10')]()['field'](_0x2efe('0x12'))[_0x2efe('0x13')](_0x2efe('0x47'))['where'](_0x2efe('0x4b'),_0xd7974a)[_0x2efe('0x16')](_0x84d98b+_0x2efe('0x4c'),_0x529f8c+'.'+_0x84d98b)))[_0x2efe('0x44')]();}function insertCmHopperAdditionalPhones(_0x4afa37){var _0x26886b=[_0x2efe('0x4d'),'cm_contact_has_items.item',_0x2efe('0x4e'),_0x2efe('0x4f'),_0x2efe('0x50')];return squel[_0x2efe('0x32')]()[_0x2efe('0x33')]('cm_hopper_additional_phones')[_0x2efe('0x35')]([_0x2efe('0x51'),_0x2efe('0x12'),'OrderBy',_0x2efe('0x38'),_0x2efe('0x49')],squel[_0x2efe('0x10')]()[_0x2efe('0x3c')](_0x26886b)['from'](_0x2efe('0x34'))['join'](_0x2efe('0x3d'),null,_0x2efe('0x52'))[_0x2efe('0x14')]('cm_contact_has_items',null,'cm_contacts.id\x20=\x20cm_contact_has_items.CmContactId')['where'](_0x2efe('0x53'),_0x4afa37)['where'](_0x2efe('0x40'),NOW))['toString']();}function insertCmContact(_0x327a10,_0x329de4,_0x1421fb,_0x1a29fd){var _0x654225=_[_0x2efe('0x54')](_[_0x2efe('0x55')](_0x1a29fd),['ListId',_0x2efe('0x56'),_0x2efe('0x38'),_0x2efe('0x49')]);return squel[_0x2efe('0x32')]()[_0x2efe('0x33')](_0x2efe('0x3d'))['fromQuery'](_0x654225,squel[_0x2efe('0x10')]()[_0x2efe('0x3c')](_0x654225)[_0x2efe('0x13')](_0x329de4)[_0x2efe('0x16')]('('+_0x1421fb[_0x2efe('0x14')](',')+')\x20NOT\x20IN\x20?',squel[_0x2efe('0x10')]()[_0x2efe('0x3c')](_0x1421fb)[_0x2efe('0x13')](_0x2efe('0x3d'))['where'](_0x2efe('0x4b'),_0x327a10))[_0x2efe('0x16')](_0x2efe('0x57'),squel['select']()[_0x2efe('0x11')]('MIN(id)',_0x2efe('0x58'))[_0x2efe('0x13')](_0x329de4)[_0x2efe('0x59')](_0x1421fb[_0x2efe('0x14')](','))))['toString']();}function handleStop(){logger[_0x2efe('0x5a')](_0x2efe('0x5b'));stopped=!![];}function handleUncaughtException(_0x16ac24){logger[_0x2efe('0x21')](_0x16ac24['message']);process[_0x2efe('0x5c')](0x1);}function handleError(_0x141985,_0x9bc26b){stats[_0x2efe('0x5d')][_0x2efe('0x1d')]({'name':_0x9bc26b[_0x2efe('0x5e')],'message':_0x9bc26b[_0x2efe('0x22')],'row':_0x141985});}function handleQuery(_0x5c6a9c){logger[_0x2efe('0x5a')](_0x5c6a9c);return db[_0x2efe('0x18')][_0x2efe('0x5f')](_0x5c6a9c)[_0x2efe('0x1a')](function(_0x4545c4){results[_0x2efe('0x1d')](_0x4545c4);})[_0x2efe('0x20')](function(_0x484318){logger['error'](_0x484318[_0x2efe('0x22')]);});}function main(_0x4d2a94,_0x2538cd,_0x1168dc,_0x1b37ca){logger[_0x2efe('0x5a')](_0x2efe('0x60'),_0x4d2a94,JSON['stringify'](_0x2538cd));process[_0x2efe('0x61')](_0x2efe('0x62'));var _0xae8a4f=_0x2538cd['binding'];var _0x471347=_[_0x2efe('0x63')](_0xae8a4f);var _0xc708af=_0x2538cd[_0x2efe('0x64')];var _0x32092a=path[_0x2efe('0x14')](config[_0x2efe('0x65')],_0x2efe('0x66'),_0xc708af+_0x2efe('0x67'));logger['info']('body',_0x2538cd);db[_0x2efe('0x68')][_0x2efe('0x69')]({'raw':!![],'attributes':['id',_0x2efe('0x6a')]})[_0x2efe('0x1f')](function(_0x33c49f){for(var _0x414834=0x0;_0x414834<_0x33c49f[_0x2efe('0x24')];_0x414834++){if(_0x33c49f[_0x414834][_0x2efe('0x6a')]in _0xae8a4f){contactItemTypes['push'](_0x33c49f[_0x414834]);delete _0x471347[_0x33c49f[_0x414834][_0x2efe('0x6a')]];hasAdditionalPhones=!![];}for(var _0x53aaa1 in _0xae8a4f){if(_0x33c49f[_0x414834][_0x2efe('0x6a')]+_0x2efe('0x6b')===_0x53aaa1){phoneDescriptions[_0x2efe('0x1d')]({'itemTypeId':_0x33c49f[_0x414834]['id'],'description':_0x53aaa1});delete _0x471347[_0x53aaa1];}}}if(hasAdditionalPhones)_0x471347[_0x2efe('0x1c')]='';var _0x36c000=_[_0x2efe('0x55')](_0x471347)[_0x2efe('0x14')]();logger[_0x2efe('0x5a')](_0x2efe('0x6c'),_0x36c000);fs[_0x2efe('0x6d')](_0x32092a,_0x36c000+'\x0a');Papa[_0x2efe('0x6e')](fs[_0x2efe('0x6f')](_0x4d2a94),{'header':!![],'skipEmptyLines':!![],'step':function(_0x442339,_0xb58004){try{for(var _0x58c149=0x0,_0x490d1c=[];_0x58c149<_0x442339[_0x2efe('0x70')]['length'];_0x58c149++){stats[_0x2efe('0x71')]+=0x1;if(_0x442339[_0x2efe('0x5d')][_0x58c149]){handleError(_0x442339[_0x2efe('0x70')][_0x58c149],_0x442339[_0x2efe('0x5d')][_0x58c149]);}else{var _0x1f16d1=[];var _0x458897=[];var _0x1a4921={};for(var _0x3d15f6 in _0xae8a4f){let _0x32a8c9=contactItemTypes['find'](_0x3874f3=>_0x3874f3['name']===_0x3d15f6);let _0x1f3dd1=contactItemTypes[_0x2efe('0x72')](_0x5480fd=>_0x5480fd[_0x2efe('0x6a')]+_0x2efe('0x6b')===_0x3d15f6);if(_['isNil'](_0x32a8c9)&&_[_0x2efe('0x1b')](_0x1f3dd1)){if(_0xae8a4f['hasOwnProperty'](_0x3d15f6)){if(_0x442339['data'][_0x58c149][_0xae8a4f[_0x3d15f6]]){var _0x24a847=_[_0x2efe('0x73')](_0x442339[_0x2efe('0x70')][_0x58c149][_0xae8a4f[_0x3d15f6]]['replace'](/"/g,'\x27'));switch(_0x3d15f6){case _0x2efe('0x36'):var _0xe1258e=moment(_0x24a847,_0x2efe('0xc'),!![]);if(_0xe1258e[_0x2efe('0x74')]()){_0x490d1c[_0x2efe('0x1d')]('\x22'+_0x24a847+'\x22');}else{_0x1f16d1[_0x2efe('0x1d')](_0x2efe('0x75'));}break;case'priority':var _0x5a5805=parseInt(_0x24a847);_0x24a847=_['isNaN'](_0x5a5805)||_0x5a5805<0x0||_0x5a5805>0x4?_0x1b37ca?0x3:0x2:_0x5a5805;_0x490d1c[_0x2efe('0x1d')]('\x22'+_0x24a847+'\x22');break;case _0x2efe('0x3a'):var _0x5c697f=parseInt(_0x24a847);if(_[_0x2efe('0x76')](_0x5c697f)&&_['includes'](_0x1168dc,_0x5c697f)){_0x490d1c[_0x2efe('0x1d')]('\x22'+_0x5c697f+'\x22');}else{_0x1f16d1[_0x2efe('0x1d')](_0x2efe('0x77'));}break;case _0x2efe('0x78'):if(isEmail(_0x24a847)){_0x490d1c[_0x2efe('0x1d')]('\x22'+_0x24a847+'\x22');}else{_0x1f16d1[_0x2efe('0x1d')](_0x2efe('0x79'));}break;case _0x2efe('0x7a'):var _0x3b1753=moment(_0x24a847,_0x2efe('0x7b'),!![]);if(_0x3b1753['isValid']()){_0x490d1c[_0x2efe('0x1d')]('\x22'+_0x24a847+'\x22');}else{_0x1f16d1[_0x2efe('0x1d')](_0x2efe('0x7c'));}break;default:_0x490d1c[_0x2efe('0x1d')]('\x22'+_0x24a847+'\x22');}}else{switch(_0x3d15f6){case'firstName':case'phone':_0x1f16d1[_0x2efe('0x1d')](_0x3d15f6+'\x20not\x20specified');break;default:_0x490d1c[_0x2efe('0x1d')]('\x22\x22');}}}}else{var _0x10ec06='';if(!_['isNil'](_0x32a8c9)){if(!_0x1a4921[_0x2efe('0x7d')](_0x32a8c9['id'])){for(var _0x3b1d6e=0x0;_0x3b1d6e<_0xae8a4f[_0x3d15f6][_0x2efe('0x24')];_0x3b1d6e++){var _0x24a847=_[_0x2efe('0x73')](_0x442339[_0x2efe('0x70')][_0x58c149][_0xae8a4f[_0x3d15f6][_0x3b1d6e]][_0x2efe('0x7e')](/"/g,'\x27'));var _0x18b250=phoneDescriptions['find'](_0xd13f84=>_0xd13f84[_0x2efe('0x7f')]===_0x32a8c9['id']);if(!_[_0x2efe('0x1b')](_0x18b250)){var _0x17911d=_[_0x2efe('0x73')](_0x442339['data'][_0x58c149][_0xae8a4f[_0x18b250[_0x2efe('0x80')]][0x0]]['replace'](/"/g,'\x27'));if(!_[_0x2efe('0x1b')](_0x17911d))_0x24a847=_0x24a847+'§'+_0x17911d;}if(_0x10ec06=='')_0x10ec06=_0x24a847;else _0x10ec06+='|'+_0x24a847;}_0x458897[_0x2efe('0x1d')](_0x32a8c9['id']+':'+_0x10ec06);_0x1a4921[_0x32a8c9['id']]=0x1;}}}}if(hasAdditionalPhones){_0x490d1c[_0x2efe('0x1d')]('\x22'+_0x458897['join'](';')+'\x22');}if(_0x1f16d1[_0x2efe('0x24')]){handleError(_0x442339['data'][_0x58c149],{'code':'SystemRow','message':_0x1f16d1[_0x2efe('0x14')]()});}else{fs[_0x2efe('0x81')](_0x32092a,_0x490d1c[_0x2efe('0x14')]()+'\x0a');}_0x490d1c=[];}if(!(stats[_0x2efe('0x71')]%0xc8)){socket[_0x2efe('0x82')]('contact:import:'+_0xc708af,stats);stats[_0x2efe('0x5d')]=[];}}if(stopped){logger['info'](_0x2efe('0x83'));_0xb58004[_0x2efe('0x84')]();}}catch(_0x4725e0){handleError(_0x442339[_0x2efe('0x70')][_0x58c149],{'code':'SystemError','message':_0x4725e0[_0x2efe('0x22')]});logger[_0x2efe('0x21')](_0x2efe('0x85'),_0x4725e0[_0x2efe('0x22')]);}},'complete':function(){try{var _0x4c9d69=[];var _0x1da1d3=tempTableName;_0x4c9d69[_0x2efe('0x1d')](_0x2efe('0x86')+_0x1da1d3+_0x2efe('0x87'));logger[_0x2efe('0x5a')](_0x2efe('0x88'),contactItemTypes[_0x2efe('0x24')]);var _0x4d8f81=util[_0x2efe('0xe')](_0x2efe('0x89'),_0x32092a,_0x1da1d3,_0x36c000,_0x2538cd[_0x2efe('0x48')],_0x2538cd['CompanyId']||null,NOW,NOW);if(_[_0x2efe('0x1b')](_0xae8a4f[_0x2efe('0x36')])){_0x4d8f81+=_0x2efe('0x8a');}_0x4c9d69['push'](_0x4d8f81);BPromise[_0x2efe('0x8b')](_0x4c9d69,handleQuery)[_0x2efe('0x1f')](function(_0x582766){BPromise['all']([handleAdditionalPhones()])[_0x2efe('0x1f')](function(){_0x4c9d69=[];for(var _0x5562c0=0x0;_0x5562c0<promisesContact[_0x2efe('0x24')];_0x5562c0++){_0x4c9d69[_0x2efe('0x1d')](updateContact(promisesContact[_0x5562c0][_0x2efe('0x8c')]));}BPromise[_0x2efe('0x1e')](_0x4c9d69)[_0x2efe('0x1f')](function(){_0x4c9d69=[];for(var _0x4df3f4=0x0;_0x4df3f4<promisesAdditionalPhones[_0x2efe('0x24')];_0x4df3f4++){_0x4c9d69[_0x2efe('0x1d')](createAdditionalPhone(promisesAdditionalPhones[_0x4df3f4]['contactId'],promisesAdditionalPhones[_0x4df3f4][_0x2efe('0x8d')],promisesAdditionalPhones[_0x4df3f4][_0x2efe('0x12')],promisesAdditionalPhones[_0x4df3f4][_0x2efe('0x8e')]));}BPromise[_0x2efe('0x1e')](_0x4c9d69)['then'](function(){_0x4c9d69=[];_0x4c9d69[_0x2efe('0x1d')](insertCmHopperAdditionalPhones(_0x2538cd['ListId']));_0x4c9d69['push'](_0x2efe('0x8f')+_0x1da1d3+';');BPromise[_0x2efe('0x8b')](_0x4c9d69,handleQuery)[_0x2efe('0x1f')](function(_0x272806){stats['finish']=!![];stats['affectedRows']=updatedRows;socket[_0x2efe('0x82')](_0x2efe('0x90')+_0xc708af,stats);fs[_0x2efe('0x91')](_0x4d2a94);fs['unlink'](_0x32092a);process[_0x2efe('0x5c')](0x0);})[_0x2efe('0x20')](function(_0x6792){logger[_0x2efe('0x21')](_0x6792['message']);process[_0x2efe('0x5c')](0x1);});});});});})['catch'](function(_0x102870){logger[_0x2efe('0x21')](_0x102870[_0x2efe('0x22')]);process[_0x2efe('0x5c')](0x1);});}catch(_0x287f1c){logger['error'](_0x2efe('0x92'),_0x287f1c[_0x2efe('0x22')]);process['exit'](0x1);}},'error':function(_0x3d9965,_0x1b1145,_0x523a57,_0x3c5b37){throw new Error(_0x3c5b37);}});});}function validate(){if(process['argv']&&process[_0x2efe('0x93')][_0x2efe('0x24')]<0x4){throw new Error(_0x2efe('0x94'));}var _0x2dc5e8=path[_0x2efe('0x14')](config[_0x2efe('0x65')],'server/files/tmp',process[_0x2efe('0x93')][0x2]);if(!fs[_0x2efe('0x95')](_0x2dc5e8)){throw new Error('file\x20doesn\x27t\x20exists');}var _0x2671c2={};try{_0x2671c2=JSON['parse'](process[_0x2efe('0x93')][0x3]);if(!_0x2671c2[_0x2efe('0x96')]){throw new Error('binding\x20doesn\x27t\x20exists');}var _0x3bfba8=0x0;if(_0x2671c2[_0x2efe('0x96')][_0x2efe('0x3a')]){_0x3bfba8=0x1;}if(!_0x2671c2[_0x2efe('0x48')]){throw new Error('ListId\x20is\x20mandatory');}}catch(_0xf3d771){throw new Error(_0x2efe('0x97'));}var _0x1c2488=[];try{_0x1c2488=_[_0x2efe('0x98')](JSON[_0x2efe('0x6e')](process[_0x2efe('0x93')][0x4]),'id');}catch(_0xc44b58){logger[_0x2efe('0x5a')]('No\x20agent\x20available');}main(_0x2dc5e8,_0x2671c2,_0x1c2488,_0x3bfba8);}validate();process['on'](_0x2efe('0x99'),handleStop);process['on'](_0x2efe('0x9a'),handleUncaughtException);