Built motion from commit 9d0783e6.|2.6.13
[motion2.git] / server / components / import / cm / csv2.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 _0x41f6=['ListId','createdAt','updatedAt','recallme','fields','from','.CmListId','.CmListId\x20=\x20?','\x22onlyIfOpen\x22','cm_contacts.phone\x20NOT\x20IN\x20(?)','\x22always\x22','toString','cm_contacts.ListId','into','cm_hopper_black','ContactId','cm_contacts.createdAt\x20=\x20?','scheduledat','priority','UserId','cm_contacts','cm_contacts.ListId\x20=\x20','ListId\x20=\x20?','cm_hopper.id','cm_contact_has_items.OrderBy','cm_contact_has_items.updatedAt','cm_hopper_additional_phones','CmHopperId','cm_contact_has_items','cm_contacts.id\x20=\x20cm_contact_has_items.CmContactId','concat','CompanyId',')\x20NOT\x20IN\x20?','deletedAt\x20IS\x20NULL','id\x20IN\x20?','group','info','Received\x20SIGINT','error','exit','errors','code','message','sequelize','query','spread','campaigns.id','campaigns','campaigns.id\x20=\x20campaigns_has_cm_lists.CampaignId','catch','voice_queues.id','voice_queues.dialTimezone','voice_queues','voice_queues_has_cm_lists','dialTimezone','utcOffset','set','offset','stringify','start','binding','clone','socket_timestamp','.csv','keys','ContactItemType','name','header','writeFileSync','parse','data','rows','find','_description','isNil','hasOwnProperty','trim','replace','isValid','isNaN','isNumber','includes','agent\x20not\x20exists','email','email\x20wrong\x20format','dateOfBirth','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','timezones','firstName','\x20not\x20specified','itemTypeId','description','SystemRow','appendFileSync','emit','contact:import:','abort','SystemError','duplicates','cm_contacts_','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','campaigns_','voice_queues_','(id\x20int,dialTimezone\x20varchar(255),offset\x20int);','each','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\x20id\x20=\x20NULL,\x20ListId\x20=\x20%s,\x20CompanyId\x20=\x20%s,\x20createdAt\x20=\x20\x27%s\x27,\x20updatedAt\x20=\x20\x27%s\x27',',\x20scheduledAt\x20=\x20NOW()','DROP\x20TABLE\x20','contactId','contactTypeId','VoiceQueueId','voice_queues_has_cm_blacklists','campaigns_has_cm_lists','campaigns_has_cm_blacklists','CampaignId','finish','affectedRows','unlink','complete','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','root','server/files/tmp','existsSync','file\x20doesn\x27t\x20exists','phone\x20is\x20mandatory','firstName\x20is\x20mandatory','body\x20id\x20mandatory','map','SIGINT','path','lodash','util','bluebird','moment','squel','../../../mysqldb','../../../config/environment','../../../config/logger','import','defaults','socket.io-emitter','redis','format','YYYY-MM-DD\x20HH:mm:ss','test','select','field','phone','join','.id\x20=\x20','where','\x20=\x20','.dialCheckDuplicateType\x20IN\x20(','CmContact','findAll','then','length','push','all','AdditionalPhones','split','filter','CmContactHasItem','findOne','update','updated','inserted','cm_contacts.phone','cm_contacts.scheduledat','cm_contacts.id','cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.priority','cm_contacts.UserId','insert','cm_hopper','fromQuery'];(function(_0x229e71,_0x1ea4db){var _0x390c25=function(_0x442e9a){while(--_0x442e9a){_0x229e71['push'](_0x229e71['shift']());}};_0x390c25(++_0x1ea4db);}(_0x41f6,0x1e9));var _0x641f=function(_0x3e0b8f,_0x1cddeb){_0x3e0b8f=_0x3e0b8f-0x0;var _0x22f742=_0x41f6[_0x3e0b8f];return _0x22f742;};'use strict';var fs=require('fs');var path=require(_0x641f('0x0'));var _=require(_0x641f('0x1'));var Papa=require('papaparse');var util=require(_0x641f('0x2'));var BPromise=require(_0x641f('0x3'));var moment=require(_0x641f('0x4'));var squel=require(_0x641f('0x5'));var Redis=require('ioredis');var db=require(_0x641f('0x6'))['db'];var config=require(_0x641f('0x7'));var shared=require('../../../config/environment/shared');var logger=require(_0x641f('0x8'))(_0x641f('0x9'));config['redis']=_[_0x641f('0xa')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x641f('0xb'))(new Redis(config[_0x641f('0xc')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var promisesAdditionalPhones=[];var orderBy=0x0;var stopped=![];var NOW=moment()[_0x641f('0xd')](_0x641f('0xe'));var contactItemTypes=[];var phoneDescriptions=[];var hasAdditionalPhones=![];var tmp_voice_queues;var tmp_campaigns;var tzOffset=0x0;var hasTZ;var NOW=moment()[_0x641f('0xd')](_0x641f('0xe'));function isEmail(_0x60ac61){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))*$/[_0x641f('0xf')](_0x60ac61);}function selectNotIn(_0x276eb6,_0x3ac43d,_0x5664c3,_0x28fca2,_0x50c282){return squel[_0x641f('0x10')]()[_0x641f('0x11')](_0x641f('0x12'))['from'](_0x28fca2)[_0x641f('0x13')](_0x3ac43d,null,_0x3ac43d+_0x641f('0x14')+_0x28fca2+'.'+_0x5664c3)[_0x641f('0x15')](_0x28fca2+'.'+_0x5664c3+_0x641f('0x16')+_0x276eb6+'.'+_0x5664c3)[_0x641f('0x15')](_0x3ac43d+_0x641f('0x17')+_0x50c282['join']()+')');}function handleAdditionalPhones(){return new Promise(function(_0x18f9fa,_0x51686c){promisesAdditionalPhones=[];return db[_0x641f('0x18')][_0x641f('0x19')]({'raw':!![],'attributes':['id','AdditionalPhones'],'where':{'createdAt':NOW,'AdditionalPhones':{'$ne':null}}})[_0x641f('0x1a')](function(_0x52ac21){if(_0x52ac21!==null){var _0x230ea5=[];for(var _0xb5fa52=0x0;_0xb5fa52<_0x52ac21[_0x641f('0x1b')];_0xb5fa52++){var _0x57c174=_0x52ac21[_0xb5fa52];_0x230ea5[_0x641f('0x1c')](insertAdditionalPhones(_0x57c174));}}Promise[_0x641f('0x1d')](_0x230ea5)[_0x641f('0x1a')](function(){_0x18f9fa({'val':0x1});});});});}function insertAdditionalPhones(_0x28220a){return new Promise(function(_0x808334,_0x1ae97c){var _0x5f3cb2=_0x28220a[_0x641f('0x1e')];var _0x244b58=_0x5f3cb2[_0x641f('0x1f')](';');var _0x322777=[];orderBy=0x0;for(var _0x19958d=0x0;_0x19958d<_0x244b58['length'];_0x19958d++){_0x322777[_0x641f('0x1c')](splitAdditionalPhone(_0x28220a['id'],_0x244b58[_0x19958d]));}Promise[_0x641f('0x1d')](_0x322777)[_0x641f('0x1a')](function(){_0x808334({'val':_0x244b58[_0x641f('0x1b')]});});});}function splitAdditionalPhone(_0xdaddb5,_0x537308){return new Promise(function(_0x45af5b,_0xc5df09){var _0x274337=_0x537308[_0x641f('0x1f')](':');var _0x5ad4df=_0x274337[0x0];var _0x37c91c=_0x274337[0x1];if(!_['isNil'](_0x37c91c)){var _0x2403e1=_0x37c91c[_0x641f('0x1f')]('|');var _0x4e778c=[];for(var _0x156dca=0x0;_0x156dca<_0x2403e1[_0x641f('0x1b')];_0x156dca++){if(_0x2403e1[_0x156dca]!==''){var _0x4f7f80=_[_0x641f('0x20')](promisesAdditionalPhones,{'contactId':_0xdaddb5,'phone':_0x2403e1[_0x156dca]});if(_0x4f7f80[_0x641f('0x1b')]==0x0){orderBy++;promisesAdditionalPhones[_0x641f('0x1c')]({'contactId':_0xdaddb5,'contactTypeId':_0x5ad4df,'phone':_0x2403e1[_0x156dca],'orderBy':orderBy});}}}_0x45af5b({'ok':0x1});}else _0x45af5b({'res':0x0});});}function createAdditionalPhone(_0x259686,_0x3579f1,_0x25279d,_0x48bc37){var _0x56e1c3='';var _0x2e5ffb='';var _0x3da248=_0x25279d[_0x641f('0x1f')]('§');_0x56e1c3=_0x3da248[0x0];if(_0x3da248['length']==0x2)_0x2e5ffb=_0x3da248[0x1];return new Promise(function(_0x3997fa,_0x45b6c8){return db[_0x641f('0x21')][_0x641f('0x22')]({'where':{'CmContactId':_0x259686,'item':_0x56e1c3}})['then'](function(_0x2207aa){if(_0x2207aa){return db[_0x641f('0x21')][_0x641f('0x23')]({'ItemTypeId':_0x3579f1,'description':_0x2e5ffb,'OrderBy':_0x48bc37},{'where':{'CmContactId':_0x259686,'item':_0x56e1c3}})[_0x641f('0x1a')](function(_0x4ada23){_0x3997fa({'res':_0x641f('0x24')});});}else{return db[_0x641f('0x21')]['create']({'CmContactId':_0x259686,'item':_0x56e1c3,'description':_0x2e5ffb,'ItemTypeId':_0x3579f1,'OrderBy':_0x48bc37,'ItemClass':'PHONE'})[_0x641f('0x1a')](function(_0x2e1140){_0x3997fa({'res':_0x641f('0x25')});});}});});}function insertCmHopper(_0x511a73,_0x439f00,_0x94b753,_0x4f59d,_0x4dde2d){var _0x482669=[_0x641f('0x26'),_0x641f('0x27'),_0x641f('0x28'),'cm_contacts.ListId',_0x439f00+'.'+_0x4f59d,_0x641f('0x29'),_0x641f('0x2a'),_0x641f('0x2b'),_0x641f('0x2c'),'\x22'+_0x4dde2d+'\x22'];return squel[_0x641f('0x2d')]()['into'](_0x641f('0x2e'))[_0x641f('0x2f')](['phone','scheduledat','ContactId',_0x641f('0x30'),_0x4f59d,_0x641f('0x31'),_0x641f('0x32'),'priority','UserId',_0x641f('0x33')],squel[_0x641f('0x10')]()[_0x641f('0x34')](_0x482669)[_0x641f('0x35')](_0x439f00)[_0x641f('0x13')]('cm_contacts',null,'cm_contacts.ListId\x20=\x20'+_0x439f00+_0x641f('0x36'))[_0x641f('0x13')](_0x94b753,null,_0x94b753+_0x641f('0x14')+_0x439f00+'.'+_0x4f59d)[_0x641f('0x15')](_0x439f00+_0x641f('0x37'),_0x511a73)['where']('cm_contacts.createdAt\x20=\x20?',NOW)['where']('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x439f00,_0x94b753,_0x4f59d,_0x641f('0x2e'),['\x22always\x22',_0x641f('0x38')]))[_0x641f('0x15')](_0x641f('0x39'),selectNotIn(_0x439f00,_0x94b753,_0x4f59d,_0x641f('0x2e'),[_0x641f('0x3a')])))[_0x641f('0x3b')]();}function insertCmHopperBlack(_0x351c5f,_0xe2c945,_0x453745,_0x4d9c7c){var _0x5a7689=[_0x641f('0x26'),_0x641f('0x28'),_0x641f('0x3c'),_0xe2c945+'.'+_0x4d9c7c,_0x641f('0x29'),_0x641f('0x2a')];return squel[_0x641f('0x2d')]()[_0x641f('0x3d')](_0x641f('0x3e'))[_0x641f('0x2f')]([_0x641f('0x12'),_0x641f('0x3f'),_0x641f('0x30'),_0x4d9c7c,'createdAt','updatedAt'],squel[_0x641f('0x10')]()['fields'](_0x5a7689)[_0x641f('0x35')](_0xe2c945)[_0x641f('0x13')]('cm_contacts',null,'cm_contacts.ListId\x20=\x20'+_0xe2c945+_0x641f('0x36'))[_0x641f('0x13')](_0x453745,null,_0x453745+_0x641f('0x14')+_0xe2c945+'.'+_0x4d9c7c)[_0x641f('0x15')](_0xe2c945+_0x641f('0x37'),_0x351c5f)['where'](_0x641f('0x40'),NOW)[_0x641f('0x15')](_0x641f('0x39'),squel[_0x641f('0x10')]()[_0x641f('0x11')]('phone')['from']('cm_hopper_black')[_0x641f('0x15')]('ListId\x20=\x20?',_0x351c5f)[_0x641f('0x15')](_0x4d9c7c+_0x641f('0x16')+_0xe2c945+'.'+_0x4d9c7c)))['toString']();}function insertTzCmHopper(_0x2f439a,_0x5a3f95,_0x3cc953,_0x53fdb0,_0x42dbc1,_0x54c04f){var _0x17632b=[_0x641f('0x26'),'date_add(cm_contacts.scheduledat,interval\x20'+_0x54c04f+'.offset-cm_contacts.utcOffset\x20minute)',_0x641f('0x28'),'cm_contacts.ListId',_0x5a3f95+'.'+_0x53fdb0,_0x641f('0x29'),_0x641f('0x2a'),_0x641f('0x2b'),_0x641f('0x2c'),'\x22'+_0x42dbc1+'\x22'];var _0x5c0713=squel[_0x641f('0x2d')]()[_0x641f('0x3d')](_0x641f('0x2e'))[_0x641f('0x2f')]([_0x641f('0x12'),_0x641f('0x41'),_0x641f('0x3f'),'ListId',_0x53fdb0,_0x641f('0x31'),_0x641f('0x32'),_0x641f('0x42'),_0x641f('0x43'),_0x641f('0x33')],squel[_0x641f('0x10')]()[_0x641f('0x34')](_0x17632b)[_0x641f('0x35')](_0x5a3f95)[_0x641f('0x13')](_0x641f('0x44'),null,_0x641f('0x45')+_0x5a3f95+_0x641f('0x36'))[_0x641f('0x13')](_0x3cc953,null,_0x3cc953+_0x641f('0x14')+_0x5a3f95+'.'+_0x53fdb0)[_0x641f('0x13')](_0x54c04f,null,_0x54c04f+_0x641f('0x14')+_0x5a3f95+'.'+_0x53fdb0)[_0x641f('0x15')](_0x5a3f95+_0x641f('0x37'),_0x2f439a)['where']('cm_contacts.createdAt\x20=\x20?',NOW)[_0x641f('0x15')](_0x641f('0x39'),selectNotIn(_0x5a3f95,_0x3cc953,_0x53fdb0,_0x641f('0x2e'),[_0x641f('0x3a'),_0x641f('0x38')]))[_0x641f('0x15')](_0x641f('0x39'),selectNotIn(_0x5a3f95,_0x3cc953,_0x53fdb0,'cm_hopper',[_0x641f('0x3a')])))[_0x641f('0x3b')]();return _0x5c0713;}function insertTzCmHopperBlack(_0x50342d,_0x59e755,_0x2dbef0,_0x39c5bb){var _0x1c6da1=[_0x641f('0x26'),_0x641f('0x28'),_0x641f('0x3c'),_0x59e755+'.'+_0x39c5bb,_0x641f('0x29'),_0x641f('0x2a')];return squel[_0x641f('0x2d')]()[_0x641f('0x3d')]('cm_hopper_black')[_0x641f('0x2f')](['phone',_0x641f('0x3f'),_0x641f('0x30'),_0x39c5bb,_0x641f('0x31'),_0x641f('0x32')],squel[_0x641f('0x10')]()[_0x641f('0x34')](_0x1c6da1)['from'](_0x59e755)['join'](_0x641f('0x44'),null,'cm_contacts.ListId\x20=\x20'+_0x59e755+_0x641f('0x36'))[_0x641f('0x13')](_0x2dbef0,null,_0x2dbef0+_0x641f('0x14')+_0x59e755+'.'+_0x39c5bb)[_0x641f('0x15')](_0x59e755+_0x641f('0x37'),_0x50342d)[_0x641f('0x15')](_0x641f('0x40'),NOW)[_0x641f('0x15')](_0x641f('0x39'),squel['select']()['field'](_0x641f('0x12'))['from'](_0x641f('0x3e'))[_0x641f('0x15')](_0x641f('0x46'),_0x50342d)[_0x641f('0x15')](_0x39c5bb+_0x641f('0x16')+_0x59e755+'.'+_0x39c5bb)))[_0x641f('0x3b')]();}function insertCmHopperAdditionalPhones(_0x558155){var _0xa7dd66=[_0x641f('0x47'),'cm_contact_has_items.item',_0x641f('0x48'),'cm_contact_has_items.createdAt',_0x641f('0x49')];return squel['insert']()['into'](_0x641f('0x4a'))[_0x641f('0x2f')]([_0x641f('0x4b'),'phone','OrderBy','createdAt',_0x641f('0x32')],squel[_0x641f('0x10')]()['fields'](_0xa7dd66)[_0x641f('0x35')]('cm_hopper')[_0x641f('0x13')](_0x641f('0x44'),null,'cm_contacts.id\x20=\x20cm_hopper.ContactId')[_0x641f('0x13')](_0x641f('0x4c'),null,_0x641f('0x4d'))[_0x641f('0x15')]('cm_hopper.ListId\x20=\x20?',_0x558155)['where'](_0x641f('0x40'),NOW))[_0x641f('0x3b')]();}function insertCmContact(_0x1fd6bc,_0x273ba5,_0x51caba,_0x436d8c){var _0x262fdf=_[_0x641f('0x4e')](_['keys'](_0x436d8c),[_0x641f('0x30'),_0x641f('0x4f'),_0x641f('0x31'),_0x641f('0x32')]);return squel[_0x641f('0x2d')]()[_0x641f('0x3d')](_0x641f('0x44'))[_0x641f('0x2f')](_0x262fdf,squel['select']()[_0x641f('0x34')](_0x262fdf)[_0x641f('0x35')](_0x273ba5)[_0x641f('0x15')]('('+_0x51caba['join'](',')+_0x641f('0x50'),squel[_0x641f('0x10')]()[_0x641f('0x34')](_0x51caba)[_0x641f('0x35')](_0x641f('0x44'))[_0x641f('0x15')](_0x641f('0x46'),_0x1fd6bc)[_0x641f('0x15')](_0x641f('0x51')))[_0x641f('0x15')](_0x641f('0x52'),squel[_0x641f('0x10')]()['field']('MIN(id)','min_id')[_0x641f('0x35')](_0x273ba5)[_0x641f('0x53')](_0x51caba[_0x641f('0x13')](','))))[_0x641f('0x3b')]();}function handleStop(){logger[_0x641f('0x54')](_0x641f('0x55'));stopped=!![];}function handleUncaughtException(_0x52c15a){logger[_0x641f('0x56')](_0x52c15a['message']);process[_0x641f('0x57')](0x1);}function handleError(_0x1e2d21,_0x5c9977){stats[_0x641f('0x58')][_0x641f('0x1c')]({'name':_0x5c9977[_0x641f('0x59')],'message':_0x5c9977[_0x641f('0x5a')],'row':_0x1e2d21});}function handleQuery(_0x484049){logger['info'](_0x484049);return db[_0x641f('0x5b')][_0x641f('0x5c')](_0x484049)[_0x641f('0x5d')](function(_0x35da9){results[_0x641f('0x1c')](_0x35da9);})['catch'](function(_0x44e448){logger[_0x641f('0x56')](_0x44e448['message']);});}function updateTzCampaigns(_0x5bd10a){return new Promise(function(_0x16b986,_0x147b5e){var _0x29c62b=squel[_0x641f('0x10')]()[_0x641f('0x34')]([_0x641f('0x5e'),'campaigns.dialTimezone'])['from'](_0x641f('0x5f'))[_0x641f('0x13')]('campaigns_has_cm_lists',null,_0x641f('0x60'))[_0x641f('0x15')]('campaigns_has_cm_lists.CmListId='+_0x5bd10a);db[_0x641f('0x5b')][_0x641f('0x5c')](_0x29c62b['toString']())[_0x641f('0x5d')](function(_0x3f3bca){var _0x3304af=[];for(var _0x3c0753=0x0;_0x3c0753<_0x3f3bca[_0x641f('0x1b')];_0x3c0753++){_0x3304af[_0x641f('0x1c')](getTimezoneData(_0x3f3bca[_0x3c0753],tmp_campaigns));}BPromise[_0x641f('0x1d')](_0x3304af)[_0x641f('0x1a')](function(){_0x16b986({'val':0x1});});})[_0x641f('0x61')](function(_0x43c703){logger['error'](_0x43c703[_0x641f('0x5a')]);_0x16b986({'val':0x0});});});}function updateTzVoiceQueues(_0x4bbed7){return new Promise(function(_0x9eebd7,_0x28c4c9){var _0xd446e3=squel[_0x641f('0x10')]()['fields']([_0x641f('0x62'),_0x641f('0x63')])[_0x641f('0x35')](_0x641f('0x64'))[_0x641f('0x13')](_0x641f('0x65'),null,'voice_queues.id\x20=\x20voice_queues_has_cm_lists.VoiceQueueId')[_0x641f('0x15')]('voice_queues_has_cm_lists.CmListId='+_0x4bbed7);db[_0x641f('0x5b')][_0x641f('0x5c')](_0xd446e3['toString']())[_0x641f('0x5d')](function(_0x3fcd74){var _0x2198c6=[];for(var _0x2fd0d0=0x0;_0x2fd0d0<_0x3fcd74[_0x641f('0x1b')];_0x2fd0d0++){_0x2198c6[_0x641f('0x1c')](getTimezoneData(_0x3fcd74[_0x2fd0d0],tmp_voice_queues));}BPromise[_0x641f('0x1d')](_0x2198c6)[_0x641f('0x1a')](function(){_0x9eebd7({'val':0x1});});})[_0x641f('0x61')](function(_0x2260c6){logger[_0x641f('0x56')](_0x2260c6[_0x641f('0x5a')]);_0x9eebd7({'val':0x0});});});}function getTimezoneData(_0x428cb7,_0x2b1067){return new Promise(function(_0x5f5a4f,_0x22a99d){var _0x3801de=shared['timezones'];var _0x51aa80=_0x3801de[_0x428cb7[_0x641f('0x66')]];if(_['isNil'](_0x51aa80)){_0x5f5a4f({'ret':0x1});}else{var _0x4eac2b=_0x51aa80[_0x641f('0x67')];var _0x2b2db6=squel[_0x641f('0x2d')]()[_0x641f('0x3d')](_0x2b1067)[_0x641f('0x68')]('id',_0x428cb7['id'])[_0x641f('0x68')](_0x641f('0x69'),_0x4eac2b)[_0x641f('0x68')](_0x641f('0x66'),_0x428cb7[_0x641f('0x66')])[_0x641f('0x3b')]();return db[_0x641f('0x5b')][_0x641f('0x5c')](_0x2b2db6)[_0x641f('0x5d')](function(_0x2e3770){_0x5f5a4f({'ret':0x1});})[_0x641f('0x61')](function(_0x7dc04f){logger['error'](_0x7dc04f[_0x641f('0x5a')]);_0x22a99d({'ret':0x1});});}});}function handleTZQuery(_0x31d87c){logger[_0x641f('0x54')](_0x31d87c);return db[_0x641f('0x5b')]['query'](_0x31d87c)[_0x641f('0x5d')](function(_0x41d4f5){})[_0x641f('0x61')](function(_0x3cd0a9){logger[_0x641f('0x56')](_0x3cd0a9['message']);});}function main(_0x3fd836,_0x164f77,_0x4f937a,_0x1c4da3){logger[_0x641f('0x54')]('main',_0x3fd836,JSON[_0x641f('0x6a')](_0x164f77));process['send'](_0x641f('0x6b'));var _0xbd9059=_0x164f77[_0x641f('0x6c')];var _0x2917dd=_[_0x641f('0x6d')](_0xbd9059);var _0x338d9b=_0x164f77[_0x641f('0x6e')];var _0x364024=path[_0x641f('0x13')](config['root'],'server/files/tmp',_0x338d9b+_0x641f('0x6f'));hasTZ=_[_0x641f('0x70')](_0xbd9059)['includes']('dialTimezone');var _0x1f5f87=_[_0x641f('0x70')](_0xbd9059)['join']();logger['info']('header',_0x1f5f87);db[_0x641f('0x71')][_0x641f('0x19')]({'raw':!![],'attributes':['id','name']})[_0x641f('0x1a')](function(_0x5266c2){for(var _0x4f1dc1=0x0;_0x4f1dc1<_0x5266c2[_0x641f('0x1b')];_0x4f1dc1++){if(_0x5266c2[_0x4f1dc1][_0x641f('0x72')]in _0xbd9059){contactItemTypes[_0x641f('0x1c')](_0x5266c2[_0x4f1dc1]);delete _0x2917dd[_0x5266c2[_0x4f1dc1][_0x641f('0x72')]];hasAdditionalPhones=!![];}for(var _0x563837 in _0xbd9059){if(_0x5266c2[_0x4f1dc1][_0x641f('0x72')]+'_description'===_0x563837){phoneDescriptions[_0x641f('0x1c')]({'itemTypeId':_0x5266c2[_0x4f1dc1]['id'],'description':_0x563837});delete _0x2917dd[_0x563837];}}}if(hasAdditionalPhones)_0x2917dd['AdditionalPhones']='';var _0xe5320f=_['keys'](_0x2917dd)[_0x641f('0x13')]();logger[_0x641f('0x54')](_0x641f('0x73'),_0xe5320f);fs[_0x641f('0x74')](_0x364024,_0xe5320f+'\x0a');Papa[_0x641f('0x75')](fs['createReadStream'](_0x3fd836),{'header':!![],'skipEmptyLines':!![],'step':function(_0x165264,_0x6d0993){try{for(var _0x154899=0x0,_0x722e85=[];_0x154899<_0x165264[_0x641f('0x76')][_0x641f('0x1b')];_0x154899++){stats[_0x641f('0x77')]+=0x1;if(_0x165264[_0x641f('0x58')][_0x154899]){handleError(_0x165264[_0x641f('0x76')][_0x154899],_0x165264['errors'][_0x154899]);}else{var _0x4261a7=[];var _0x37013f=[];var _0x4d16fe={};for(var _0x40e120 in _0xbd9059){let _0x100bb0=contactItemTypes[_0x641f('0x78')](_0x3185f8=>_0x3185f8[_0x641f('0x72')]===_0x40e120);let _0x5eb865=contactItemTypes[_0x641f('0x78')](_0x49bf35=>_0x49bf35[_0x641f('0x72')]+_0x641f('0x79')===_0x40e120);if(_[_0x641f('0x7a')](_0x100bb0)&&_[_0x641f('0x7a')](_0x5eb865)){if(_0xbd9059[_0x641f('0x7b')](_0x40e120)){if(_0x165264['data'][_0x154899][_0xbd9059[_0x40e120]]){var _0x525c7c=_[_0x641f('0x7c')](_0x165264['data'][_0x154899][_0xbd9059[_0x40e120]][_0x641f('0x7d')](/"/g,'\x27'));switch(_0x40e120){case _0x641f('0x41'):var _0x4c7522=moment(_0x525c7c,_0x641f('0xe'),!![]);if(_0x4c7522[_0x641f('0x7e')]()){_0x722e85[_0x641f('0x1c')]('\x22'+_0x525c7c+'\x22');}else{_0x4261a7['push']('scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)');}break;case'priority':var _0x134730=parseInt(_0x525c7c);_0x525c7c=_[_0x641f('0x7f')](_0x134730)||_0x134730<0x0||_0x134730>0x4?_0x1c4da3?0x3:0x2:_0x134730;_0x722e85[_0x641f('0x1c')]('\x22'+_0x525c7c+'\x22');break;case _0x641f('0x43'):var _0x122f44=parseInt(_0x525c7c);if(_[_0x641f('0x80')](_0x122f44)&&_[_0x641f('0x81')](_0x4f937a,_0x122f44)){_0x722e85['push']('\x22'+_0x122f44+'\x22');}else{_0x4261a7[_0x641f('0x1c')](_0x641f('0x82'));}break;case _0x641f('0x83'):if(isEmail(_0x525c7c)){_0x722e85[_0x641f('0x1c')]('\x22'+_0x525c7c+'\x22');}else{_0x4261a7[_0x641f('0x1c')](_0x641f('0x84'));}break;case _0x641f('0x85'):var _0x59a6cb=moment(_0x525c7c,'YYYY-MM-DD',!![]);if(_0x59a6cb[_0x641f('0x7e')]()){_0x722e85[_0x641f('0x1c')]('\x22'+_0x525c7c+'\x22');}else{_0x4261a7['push'](_0x641f('0x86'));}break;case'dialTimezone':var _0x36f565=shared[_0x641f('0x87')];var _0x57af7e=_0x36f565[_0x525c7c];if(!_[_0x641f('0x7a')](_0x57af7e)){var _0x37184d=_0x57af7e[_0x641f('0x67')];_0x722e85['push']('\x22'+_0x525c7c+'\x22');_0x722e85[_0x641f('0x1c')]('\x22'+_0x37184d+'\x22');}break;default:_0x722e85[_0x641f('0x1c')]('\x22'+_0x525c7c+'\x22');}}else{switch(_0x40e120){case _0x641f('0x88'):case _0x641f('0x12'):_0x4261a7['push'](_0x40e120+_0x641f('0x89'));break;default:_0x722e85['push']('\x22\x22');}}}}else{var _0x51766b='';if(!_[_0x641f('0x7a')](_0x100bb0)){if(!_0x4d16fe[_0x641f('0x7b')](_0x100bb0['id'])){if(!_[_0x641f('0x7a')](_0x165264[_0x641f('0x76')][_0x154899][_0xbd9059[_0x40e120]])){var _0x525c7c=_['trim'](_0x165264[_0x641f('0x76')][_0x154899][_0xbd9059[_0x40e120]][_0x641f('0x7d')](/"/g,'\x27'));var _0x3c863e=phoneDescriptions[_0x641f('0x78')](_0x37fc5c=>_0x37fc5c[_0x641f('0x8a')]===_0x100bb0['id']);if(!_[_0x641f('0x7a')](_0x3c863e)){var _0x25cda5=_['trim'](_0x165264['data'][_0x154899][_0xbd9059[_0x3c863e[_0x641f('0x8b')]]][_0x641f('0x7d')](/"/g,'\x27'));if(!_[_0x641f('0x7a')](_0x25cda5))_0x525c7c=_0x525c7c+'§'+_0x25cda5;}if(_0x51766b=='')_0x51766b=_0x525c7c;else _0x51766b+='|'+_0x525c7c;}_0x37013f['push'](_0x100bb0['id']+':'+_0x51766b);_0x4d16fe[_0x100bb0['id']]=0x1;}}}}if(hasAdditionalPhones){_0x722e85['push']('\x22'+_0x37013f[_0x641f('0x13')](';')+'\x22');}if(_0x4261a7[_0x641f('0x1b')]){handleError(_0x165264[_0x641f('0x76')][_0x154899],{'code':_0x641f('0x8c'),'message':_0x4261a7[_0x641f('0x13')]()});}else{fs[_0x641f('0x8d')](_0x364024,_0x722e85[_0x641f('0x13')]()+'\x0a');}_0x722e85=[];}if(!(stats['rows']%0xc8)){socket[_0x641f('0x8e')](_0x641f('0x8f')+_0x338d9b,stats);stats[_0x641f('0x58')]=[];}}if(stopped){logger[_0x641f('0x54')]('Abort\x20parser');_0x6d0993[_0x641f('0x90')]();}}catch(_0x372e5b){handleError(_0x165264[_0x641f('0x76')][_0x154899],{'code':_0x641f('0x91'),'message':_0x372e5b[_0x641f('0x5a')]});logger[_0x641f('0x56')]('step',_0x372e5b[_0x641f('0x5a')]);}},'complete':function(){try{var _0x20974d=[];var _0x7189ea=[];var _0x14a5ff='cm_contacts';if(_0x164f77[_0x641f('0x92')]&&_0x164f77['duplicates'][_0x641f('0x1b')]){_0x14a5ff=_0x641f('0x93')+_0x338d9b;_0x20974d['push'](_0x641f('0x94')+_0x14a5ff+_0x641f('0x95'));}tmp_campaigns=_0x641f('0x96')+_0x338d9b;tmp_voice_queues=_0x641f('0x97')+_0x338d9b;_0x7189ea[_0x641f('0x1c')](_0x641f('0x94')+tmp_campaigns+_0x641f('0x98'));_0x7189ea[_0x641f('0x1c')](_0x641f('0x94')+tmp_voice_queues+_0x641f('0x98'));BPromise[_0x641f('0x99')](_0x7189ea,handleTZQuery)[_0x641f('0x1a')](function(_0x2fb879){updateTzCampaigns(_0x164f77[_0x641f('0x30')])[_0x641f('0x1a')](function(_0x450f07){updateTzVoiceQueues(_0x164f77[_0x641f('0x30')])[_0x641f('0x1a')](function(_0x36a417){if(hasTZ)_0xe5320f=_0xe5320f[_0x641f('0x7d')]('dialTimezone','dialTimezone,utcOffset');var _0x4a35ed=util[_0x641f('0xd')](_0x641f('0x9a'),_0x364024,_0x14a5ff,_0xe5320f,_0x164f77[_0x641f('0x30')],_0x164f77[_0x641f('0x4f')]||null,NOW,NOW);if(_[_0x641f('0x7a')](_0xbd9059[_0x641f('0x41')])){_0x4a35ed+=_0x641f('0x9b');}_0x20974d[_0x641f('0x1c')](_0x4a35ed);if(_0x164f77[_0x641f('0x92')]&&_0x164f77[_0x641f('0x92')][_0x641f('0x1b')]){_0x20974d[_0x641f('0x1c')](insertCmContact(_0x164f77[_0x641f('0x30')],_0x14a5ff,_0x164f77[_0x641f('0x92')],_0xbd9059));_0x20974d['push'](_0x641f('0x9c')+_0x14a5ff+';');}BPromise[_0x641f('0x99')](_0x20974d,handleQuery)[_0x641f('0x1a')](function(_0x15e2fc){BPromise[_0x641f('0x1d')]([handleAdditionalPhones()])[_0x641f('0x1a')](function(){_0x20974d=[];for(var _0x183e86=0x0;_0x183e86<promisesAdditionalPhones['length'];_0x183e86++){if(promisesAdditionalPhones[_0x183e86]['phone']!='§'){_0x20974d[_0x641f('0x1c')](createAdditionalPhone(promisesAdditionalPhones[_0x183e86][_0x641f('0x9d')],promisesAdditionalPhones[_0x183e86][_0x641f('0x9e')],promisesAdditionalPhones[_0x183e86]['phone'],promisesAdditionalPhones[_0x183e86]['orderBy']));}}BPromise['all'](_0x20974d)[_0x641f('0x1a')](function(){_0x20974d=[];if(hasTZ){_0x20974d['push'](insertTzCmHopper(_0x164f77[_0x641f('0x30')],_0x641f('0x65'),'voice_queues',_0x641f('0x9f'),_0x1c4da3,tmp_voice_queues));_0x20974d[_0x641f('0x1c')](insertTzCmHopperBlack(_0x164f77[_0x641f('0x30')],_0x641f('0xa0'),'voice_queues',_0x641f('0x9f')));_0x20974d[_0x641f('0x1c')](insertTzCmHopper(_0x164f77[_0x641f('0x30')],_0x641f('0xa1'),_0x641f('0x5f'),'CampaignId',_0x1c4da3,tmp_campaigns));_0x20974d['push'](insertTzCmHopperBlack(_0x164f77['ListId'],_0x641f('0xa2'),'campaigns',_0x641f('0xa3')));_0x20974d['push'](insertCmHopperAdditionalPhones(_0x164f77[_0x641f('0x30')]));}else{_0x20974d[_0x641f('0x1c')](insertCmHopper(_0x164f77[_0x641f('0x30')],_0x641f('0x65'),_0x641f('0x64'),'VoiceQueueId',_0x1c4da3));_0x20974d[_0x641f('0x1c')](insertCmHopperBlack(_0x164f77[_0x641f('0x30')],_0x641f('0xa0'),'voice_queues','VoiceQueueId'));_0x20974d[_0x641f('0x1c')](insertCmHopper(_0x164f77[_0x641f('0x30')],_0x641f('0xa1'),'campaigns','CampaignId',_0x1c4da3));_0x20974d['push'](insertCmHopperBlack(_0x164f77['ListId'],_0x641f('0xa2'),_0x641f('0x5f'),'CampaignId'));_0x20974d[_0x641f('0x1c')](insertCmHopperAdditionalPhones(_0x164f77[_0x641f('0x30')]));}_0x20974d[_0x641f('0x1c')](_0x641f('0x9c')+tmp_campaigns+';');_0x20974d['push'](_0x641f('0x9c')+tmp_voice_queues+';');BPromise[_0x641f('0x99')](_0x20974d,handleQuery)[_0x641f('0x1a')](function(_0x18134d){stats[_0x641f('0xa4')]=!![];stats['affectedRows']=_0x164f77[_0x641f('0x92')]&&_0x164f77['duplicates'][_0x641f('0x1b')]?results[0x2][_0x641f('0xa5')]:results[0x0][_0x641f('0xa5')];socket[_0x641f('0x8e')]('contact:import:'+_0x338d9b,stats);fs[_0x641f('0xa6')](_0x3fd836);fs[_0x641f('0xa6')](_0x364024);process[_0x641f('0x57')](0x0);})[_0x641f('0x61')](function(_0x201fad){logger[_0x641f('0x56')](_0x201fad[_0x641f('0x5a')]);process['exit'](0x1);});});});})[_0x641f('0x61')](function(_0x3d534a){logger[_0x641f('0x56')](_0x3d534a['message']);process[_0x641f('0x57')](0x1);});});});});}catch(_0x17ae43){logger[_0x641f('0x56')](_0x641f('0xa7'),_0x17ae43['message']);process[_0x641f('0x57')](0x1);}},'error':function(_0x1c97c4,_0x515bff,_0x58304f,_0x52cd05){throw new Error(_0x52cd05);}});});}function validate(){if(process[_0x641f('0xa8')]&&process['argv']['length']<0x4){throw new Error(_0x641f('0xa9'));}var _0x576bce=path[_0x641f('0x13')](config[_0x641f('0xaa')],_0x641f('0xab'),process['argv'][0x2]);if(!fs[_0x641f('0xac')](_0x576bce)){throw new Error(_0x641f('0xad'));}var _0x23d42b={};try{_0x23d42b=JSON[_0x641f('0x75')](process['argv'][0x3]);if(!_0x23d42b[_0x641f('0x6c')]){throw new Error('binding\x20doesn\x27t\x20exists');}if(!_0x23d42b[_0x641f('0x6c')]['phone']){throw new Error(_0x641f('0xae'));}if(!_0x23d42b[_0x641f('0x6c')]['firstName']){throw new Error(_0x641f('0xaf'));}var _0x142486=0x0;if(_0x23d42b[_0x641f('0x6c')]['UserId']){_0x142486=0x1;}if(!_0x23d42b[_0x641f('0x30')]){throw new Error('ListId\x20is\x20mandatory');}}catch(_0x13a86c){throw new Error(_0x641f('0xb0'));}var _0x26054e=[];try{_0x26054e=_[_0x641f('0xb1')](JSON['parse'](process[_0x641f('0xa8')][0x4]),'id');}catch(_0x1b1ba1){logger['info']('No\x20agent\x20available');}main(_0x576bce,_0x23d42b,_0x26054e,_0x142486);}validate();process['on'](_0x641f('0xb2'),handleStop);process['on']('uncaughtException',handleUncaughtException);