Built motion from commit e02f907f.|2.6.14
[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 _0x5f2a=['contact:import:','Abort\x20parser','abort','SystemError','step','duplicates','cm_contacts_','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','campaigns_','voice_queues_','(id\x20int,dialTimezone\x20varchar(255),offset\x20int);','each','dialTimezone,utcOffset','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','orderBy','VoiceQueueId','voice_queues_has_cm_blacklists','CampaignId','campaigns_has_cm_blacklists','affectedRows','unlink','complete','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','server/files/tmp','existsSync','file\x20doesn\x27t\x20exists','binding\x20doesn\x27t\x20exists','phone\x20is\x20mandatory','firstName\x20is\x20mandatory','body\x20id\x20mandatory','map','uncaughtException','path','lodash','bluebird','moment','squel','ioredis','../../../mysqldb','../../../config/environment','../../../config/environment/shared','../../../config/logger','import','redis','defaults','localhost','format','YYYY-MM-DD\x20HH:mm:ss','test','select','field','phone','from','join','.id\x20=\x20','where','\x20=\x20','.dialCheckDuplicateType\x20IN\x20(','findAll','AdditionalPhones','then','push','all','split','length','isNil','CmContactHasItem','findOne','update','create','PHONE','inserted','cm_contacts.phone','cm_contacts.scheduledat','cm_contacts.id','cm_contacts.ListId','cm_contacts.updatedAt','cm_contacts.priority','cm_contacts.UserId','insert','into','cm_hopper','fromQuery','scheduledat','ContactId','ListId','createdAt','UserId','recallme','fields','cm_contacts','cm_contacts.ListId\x20=\x20','.CmListId','.CmListId\x20=\x20?','\x22always\x22','\x22onlyIfOpen\x22','cm_contacts.phone\x20NOT\x20IN\x20(?)','toString','cm_contacts.createdAt','cm_hopper_black','updatedAt','cm_contacts.createdAt\x20=\x20?','ListId\x20=\x20?','date_add(cm_contacts.scheduledat,interval\x20','.offset-cm_contacts.utcOffset\x20minute)','priority','cm_contact_has_items.item','cm_contact_has_items.createdAt','cm_hopper_additional_phones','CmHopperId','OrderBy','cm_contacts.id\x20=\x20cm_hopper.ContactId','cm_contact_has_items','cm_contacts.id\x20=\x20cm_contact_has_items.CmContactId','cm_hopper.ListId\x20=\x20?','concat','keys','CompanyId',')\x20NOT\x20IN\x20?','deletedAt\x20IS\x20NULL','id\x20IN\x20?','MIN(id)','min_id','group','Received\x20SIGINT','error','message','exit','code','sequelize','spread','catch','campaigns','campaigns_has_cm_lists','query','voice_queues','voice_queues_has_cm_lists','set','dialTimezone','info','main','stringify','send','start','binding','clone','socket_timestamp','root','.csv','header','ContactItemType','name','writeFileSync','parse','createReadStream','data','find','_description','hasOwnProperty','trim','replace','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNaN','isNumber','agent\x20not\x20exists','email','email\x20wrong\x20format','dateOfBirth','YYYY-MM-DD','firstName','\x20not\x20specified','itemTypeId','description','SystemRow','appendFileSync','rows','emit'];(function(_0x378289,_0x163424){var _0x47c851=function(_0x342949){while(--_0x342949){_0x378289['push'](_0x378289['shift']());}};_0x47c851(++_0x163424);}(_0x5f2a,0x194));var _0xa5f2=function(_0x36b946,_0x57f1af){_0x36b946=_0x36b946-0x0;var _0x4356d6=_0x5f2a[_0x36b946];return _0x4356d6;};'use strict';var fs=require('fs');var path=require(_0xa5f2('0x0'));var _=require(_0xa5f2('0x1'));var Papa=require('papaparse');var util=require('util');var BPromise=require(_0xa5f2('0x2'));var moment=require(_0xa5f2('0x3'));var squel=require(_0xa5f2('0x4'));var Redis=require(_0xa5f2('0x5'));var db=require(_0xa5f2('0x6'))['db'];var config=require(_0xa5f2('0x7'));var shared=require(_0xa5f2('0x8'));var logger=require(_0xa5f2('0x9'))(_0xa5f2('0xa'));config[_0xa5f2('0xb')]=_[_0xa5f2('0xc')](config[_0xa5f2('0xb')],{'host':_0xa5f2('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xa5f2('0xb')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var promisesAdditionalPhones=[];var orderBy=0x0;var stopped=![];var NOW=moment()[_0xa5f2('0xe')]('YYYY-MM-DD\x20HH:mm:ss');var contactItemTypes=[];var phoneDescriptions=[];var hasAdditionalPhones=![];var tmp_voice_queues;var tmp_campaigns;var tzOffset=0x0;var hasTZ;var NOW=moment()['format'](_0xa5f2('0xf'));function isEmail(_0x22eaed){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))*$/[_0xa5f2('0x10')](_0x22eaed);}function selectNotIn(_0x1ebe74,_0x3784f3,_0x2c9354,_0x58ea32,_0x2884ea){return squel[_0xa5f2('0x11')]()[_0xa5f2('0x12')](_0xa5f2('0x13'))[_0xa5f2('0x14')](_0x58ea32)[_0xa5f2('0x15')](_0x3784f3,null,_0x3784f3+_0xa5f2('0x16')+_0x58ea32+'.'+_0x2c9354)[_0xa5f2('0x17')](_0x58ea32+'.'+_0x2c9354+_0xa5f2('0x18')+_0x1ebe74+'.'+_0x2c9354)[_0xa5f2('0x17')](_0x3784f3+_0xa5f2('0x19')+_0x2884ea['join']()+')');}function handleAdditionalPhones(){return new Promise(function(_0xce11ee,_0x5e3c0b){promisesAdditionalPhones=[];return db['CmContact'][_0xa5f2('0x1a')]({'raw':!![],'attributes':['id',_0xa5f2('0x1b')],'where':{'createdAt':NOW,'AdditionalPhones':{'$ne':null}}})[_0xa5f2('0x1c')](function(_0x4a1e58){if(_0x4a1e58!==null){var _0x4dd9c8=[];for(var _0x1f7ba5=0x0;_0x1f7ba5<_0x4a1e58['length'];_0x1f7ba5++){var _0x2b9e35=_0x4a1e58[_0x1f7ba5];_0x4dd9c8[_0xa5f2('0x1d')](insertAdditionalPhones(_0x2b9e35));}}Promise[_0xa5f2('0x1e')](_0x4dd9c8)[_0xa5f2('0x1c')](function(){_0xce11ee({'val':0x1});});});});}function insertAdditionalPhones(_0x466e23){return new Promise(function(_0x496e90,_0x28a271){var _0xba7bf4=_0x466e23[_0xa5f2('0x1b')];var _0x57219a=_0xba7bf4[_0xa5f2('0x1f')](';');var _0x52317b=[];orderBy=0x0;for(var _0x4bddde=0x0;_0x4bddde<_0x57219a[_0xa5f2('0x20')];_0x4bddde++){_0x52317b[_0xa5f2('0x1d')](splitAdditionalPhone(_0x466e23['id'],_0x57219a[_0x4bddde]));}Promise[_0xa5f2('0x1e')](_0x52317b)[_0xa5f2('0x1c')](function(){_0x496e90({'val':_0x57219a[_0xa5f2('0x20')]});});});}function splitAdditionalPhone(_0x518fe8,_0x4a5848){return new Promise(function(_0x2a8d52,_0x3c220e){var _0x2e80a3=_0x4a5848['split'](':');var _0x13b248=_0x2e80a3[0x0];var _0x40c5a3=_0x2e80a3[0x1];if(!_[_0xa5f2('0x21')](_0x40c5a3)){var _0x35cf1f=_0x40c5a3[_0xa5f2('0x1f')]('|');var _0x20ad2d=[];for(var _0x20f84f=0x0;_0x20f84f<_0x35cf1f[_0xa5f2('0x20')];_0x20f84f++){if(_0x35cf1f[_0x20f84f]!==''){var _0x13174a=_['filter'](promisesAdditionalPhones,{'contactId':_0x518fe8,'phone':_0x35cf1f[_0x20f84f]});if(_0x13174a[_0xa5f2('0x20')]==0x0){orderBy++;promisesAdditionalPhones[_0xa5f2('0x1d')]({'contactId':_0x518fe8,'contactTypeId':_0x13b248,'phone':_0x35cf1f[_0x20f84f],'orderBy':orderBy});}}}_0x2a8d52({'ok':0x1});}else _0x2a8d52({'res':0x0});});}function createAdditionalPhone(_0x40cb2f,_0x588dc2,_0x1f14e3,_0x72f6d0){var _0x3ea8d4='';var _0x4d9c9d='';var _0x280b8c=_0x1f14e3['split']('§');_0x3ea8d4=_0x280b8c[0x0];if(_0x280b8c[_0xa5f2('0x20')]==0x2)_0x4d9c9d=_0x280b8c[0x1];return new Promise(function(_0x3ad4a7,_0x39bbf4){return db[_0xa5f2('0x22')][_0xa5f2('0x23')]({'where':{'CmContactId':_0x40cb2f,'item':_0x3ea8d4}})[_0xa5f2('0x1c')](function(_0x2a254b){if(_0x2a254b){return db[_0xa5f2('0x22')][_0xa5f2('0x24')]({'ItemTypeId':_0x588dc2,'description':_0x4d9c9d,'OrderBy':_0x72f6d0},{'where':{'CmContactId':_0x40cb2f,'item':_0x3ea8d4}})['then'](function(_0x1a77b0){_0x3ad4a7({'res':'updated'});});}else{return db[_0xa5f2('0x22')][_0xa5f2('0x25')]({'CmContactId':_0x40cb2f,'item':_0x3ea8d4,'description':_0x4d9c9d,'ItemTypeId':_0x588dc2,'OrderBy':_0x72f6d0,'ItemClass':_0xa5f2('0x26')})[_0xa5f2('0x1c')](function(_0x1c7201){_0x3ad4a7({'res':_0xa5f2('0x27')});});}});});}function insertCmHopper(_0x2d46a3,_0x4ba48c,_0x17eaff,_0x4a4c23,_0x231e8a){var _0x390cee=[_0xa5f2('0x28'),_0xa5f2('0x29'),_0xa5f2('0x2a'),_0xa5f2('0x2b'),_0x4ba48c+'.'+_0x4a4c23,'cm_contacts.createdAt',_0xa5f2('0x2c'),_0xa5f2('0x2d'),_0xa5f2('0x2e'),'\x22'+_0x231e8a+'\x22'];return squel[_0xa5f2('0x2f')]()[_0xa5f2('0x30')](_0xa5f2('0x31'))[_0xa5f2('0x32')](['phone',_0xa5f2('0x33'),_0xa5f2('0x34'),_0xa5f2('0x35'),_0x4a4c23,_0xa5f2('0x36'),'updatedAt','priority',_0xa5f2('0x37'),_0xa5f2('0x38')],squel['select']()[_0xa5f2('0x39')](_0x390cee)[_0xa5f2('0x14')](_0x4ba48c)[_0xa5f2('0x15')](_0xa5f2('0x3a'),null,_0xa5f2('0x3b')+_0x4ba48c+_0xa5f2('0x3c'))['join'](_0x17eaff,null,_0x17eaff+_0xa5f2('0x16')+_0x4ba48c+'.'+_0x4a4c23)[_0xa5f2('0x17')](_0x4ba48c+_0xa5f2('0x3d'),_0x2d46a3)[_0xa5f2('0x17')]('cm_contacts.createdAt\x20=\x20?',NOW)[_0xa5f2('0x17')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x4ba48c,_0x17eaff,_0x4a4c23,_0xa5f2('0x31'),[_0xa5f2('0x3e'),_0xa5f2('0x3f')]))['where'](_0xa5f2('0x40'),selectNotIn(_0x4ba48c,_0x17eaff,_0x4a4c23,_0xa5f2('0x31'),['\x22always\x22'])))[_0xa5f2('0x41')]();}function insertCmHopperBlack(_0x560fad,_0xba1953,_0x2c4cda,_0x1fa88a){var _0x29047b=[_0xa5f2('0x28'),_0xa5f2('0x2a'),_0xa5f2('0x2b'),_0xba1953+'.'+_0x1fa88a,_0xa5f2('0x42'),_0xa5f2('0x2c')];return squel[_0xa5f2('0x2f')]()[_0xa5f2('0x30')](_0xa5f2('0x43'))[_0xa5f2('0x32')]([_0xa5f2('0x13'),'ContactId',_0xa5f2('0x35'),_0x1fa88a,_0xa5f2('0x36'),_0xa5f2('0x44')],squel[_0xa5f2('0x11')]()['fields'](_0x29047b)[_0xa5f2('0x14')](_0xba1953)[_0xa5f2('0x15')](_0xa5f2('0x3a'),null,_0xa5f2('0x3b')+_0xba1953+_0xa5f2('0x3c'))[_0xa5f2('0x15')](_0x2c4cda,null,_0x2c4cda+_0xa5f2('0x16')+_0xba1953+'.'+_0x1fa88a)['where'](_0xba1953+'.CmListId\x20=\x20?',_0x560fad)[_0xa5f2('0x17')](_0xa5f2('0x45'),NOW)[_0xa5f2('0x17')](_0xa5f2('0x40'),squel[_0xa5f2('0x11')]()[_0xa5f2('0x12')](_0xa5f2('0x13'))[_0xa5f2('0x14')](_0xa5f2('0x43'))[_0xa5f2('0x17')](_0xa5f2('0x46'),_0x560fad)[_0xa5f2('0x17')](_0x1fa88a+'\x20=\x20'+_0xba1953+'.'+_0x1fa88a)))[_0xa5f2('0x41')]();}function insertTzCmHopper(_0x466438,_0xecb001,_0xbef6a6,_0x51c586,_0x4ca56f,_0x524f6f){var _0x1fe9e8=[_0xa5f2('0x28'),_0xa5f2('0x47')+_0x524f6f+_0xa5f2('0x48'),_0xa5f2('0x2a'),_0xa5f2('0x2b'),_0xecb001+'.'+_0x51c586,_0xa5f2('0x42'),_0xa5f2('0x2c'),_0xa5f2('0x2d'),_0xa5f2('0x2e'),'\x22'+_0x4ca56f+'\x22'];var _0xdc4047=squel['insert']()[_0xa5f2('0x30')](_0xa5f2('0x31'))[_0xa5f2('0x32')]([_0xa5f2('0x13'),'scheduledat',_0xa5f2('0x34'),_0xa5f2('0x35'),_0x51c586,_0xa5f2('0x36'),'updatedAt',_0xa5f2('0x49'),_0xa5f2('0x37'),_0xa5f2('0x38')],squel['select']()['fields'](_0x1fe9e8)[_0xa5f2('0x14')](_0xecb001)[_0xa5f2('0x15')](_0xa5f2('0x3a'),null,_0xa5f2('0x3b')+_0xecb001+_0xa5f2('0x3c'))[_0xa5f2('0x15')](_0xbef6a6,null,_0xbef6a6+_0xa5f2('0x16')+_0xecb001+'.'+_0x51c586)[_0xa5f2('0x15')](_0x524f6f,null,_0x524f6f+_0xa5f2('0x16')+_0xecb001+'.'+_0x51c586)['where'](_0xecb001+_0xa5f2('0x3d'),_0x466438)[_0xa5f2('0x17')]('cm_contacts.createdAt\x20=\x20?',NOW)['where']('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0xecb001,_0xbef6a6,_0x51c586,_0xa5f2('0x31'),[_0xa5f2('0x3e'),'\x22onlyIfOpen\x22']))[_0xa5f2('0x17')](_0xa5f2('0x40'),selectNotIn(_0xecb001,_0xbef6a6,_0x51c586,_0xa5f2('0x31'),['\x22always\x22'])))['toString']();return _0xdc4047;}function insertTzCmHopperBlack(_0x2eceed,_0x56f831,_0x3a565b,_0x2e3455){var _0x45e42d=[_0xa5f2('0x28'),_0xa5f2('0x2a'),_0xa5f2('0x2b'),_0x56f831+'.'+_0x2e3455,_0xa5f2('0x42'),_0xa5f2('0x2c')];return squel['insert']()['into'](_0xa5f2('0x43'))[_0xa5f2('0x32')]([_0xa5f2('0x13'),_0xa5f2('0x34'),_0xa5f2('0x35'),_0x2e3455,_0xa5f2('0x36'),_0xa5f2('0x44')],squel['select']()[_0xa5f2('0x39')](_0x45e42d)[_0xa5f2('0x14')](_0x56f831)[_0xa5f2('0x15')](_0xa5f2('0x3a'),null,_0xa5f2('0x3b')+_0x56f831+_0xa5f2('0x3c'))[_0xa5f2('0x15')](_0x3a565b,null,_0x3a565b+'.id\x20=\x20'+_0x56f831+'.'+_0x2e3455)[_0xa5f2('0x17')](_0x56f831+_0xa5f2('0x3d'),_0x2eceed)['where'](_0xa5f2('0x45'),NOW)[_0xa5f2('0x17')](_0xa5f2('0x40'),squel[_0xa5f2('0x11')]()[_0xa5f2('0x12')]('phone')[_0xa5f2('0x14')](_0xa5f2('0x43'))[_0xa5f2('0x17')](_0xa5f2('0x46'),_0x2eceed)[_0xa5f2('0x17')](_0x2e3455+_0xa5f2('0x18')+_0x56f831+'.'+_0x2e3455)))[_0xa5f2('0x41')]();}function insertCmHopperAdditionalPhones(_0x18acdf){var _0x439e14=['cm_hopper.id',_0xa5f2('0x4a'),'cm_contact_has_items.OrderBy',_0xa5f2('0x4b'),'cm_contact_has_items.updatedAt'];return squel[_0xa5f2('0x2f')]()[_0xa5f2('0x30')](_0xa5f2('0x4c'))[_0xa5f2('0x32')]([_0xa5f2('0x4d'),_0xa5f2('0x13'),_0xa5f2('0x4e'),_0xa5f2('0x36'),_0xa5f2('0x44')],squel[_0xa5f2('0x11')]()[_0xa5f2('0x39')](_0x439e14)['from'](_0xa5f2('0x31'))[_0xa5f2('0x15')](_0xa5f2('0x3a'),null,_0xa5f2('0x4f'))[_0xa5f2('0x15')](_0xa5f2('0x50'),null,_0xa5f2('0x51'))['where'](_0xa5f2('0x52'),_0x18acdf)[_0xa5f2('0x17')](_0xa5f2('0x45'),NOW))['toString']();}function insertCmContact(_0x3e6dea,_0x5cf879,_0x54c5ec,_0x207457){var _0x730584=_[_0xa5f2('0x53')](_[_0xa5f2('0x54')](_0x207457),[_0xa5f2('0x35'),_0xa5f2('0x55'),_0xa5f2('0x36'),_0xa5f2('0x44'),'scheduledAt']);return squel[_0xa5f2('0x2f')]()[_0xa5f2('0x30')]('cm_contacts')['fromQuery'](_0x730584,squel['select']()['fields'](_0x730584)[_0xa5f2('0x14')](_0x5cf879)[_0xa5f2('0x17')]('('+_0x54c5ec[_0xa5f2('0x15')](',')+_0xa5f2('0x56'),squel[_0xa5f2('0x11')]()[_0xa5f2('0x39')](_0x54c5ec)['from'](_0xa5f2('0x3a'))['where'](_0xa5f2('0x46'),_0x3e6dea)[_0xa5f2('0x17')](_0xa5f2('0x57')))[_0xa5f2('0x17')](_0xa5f2('0x58'),squel[_0xa5f2('0x11')]()[_0xa5f2('0x12')](_0xa5f2('0x59'),_0xa5f2('0x5a'))[_0xa5f2('0x14')](_0x5cf879)[_0xa5f2('0x5b')](_0x54c5ec[_0xa5f2('0x15')](','))))['toString']();}function handleStop(){logger['info'](_0xa5f2('0x5c'));stopped=!![];}function handleUncaughtException(_0x20803d){logger[_0xa5f2('0x5d')](_0x20803d[_0xa5f2('0x5e')]);process[_0xa5f2('0x5f')](0x1);}function handleError(_0x1d8591,_0x19f554){stats['errors'][_0xa5f2('0x1d')]({'name':_0x19f554[_0xa5f2('0x60')],'message':_0x19f554['message'],'row':_0x1d8591});}function handleQuery(_0x5b7dc9){logger['info'](_0x5b7dc9);return db[_0xa5f2('0x61')]['query'](_0x5b7dc9)[_0xa5f2('0x62')](function(_0x5165cf){results[_0xa5f2('0x1d')](_0x5165cf);})[_0xa5f2('0x63')](function(_0x53ca98){logger[_0xa5f2('0x5d')](_0x53ca98['message']);});}function updateTzCampaigns(_0x22f554){return new Promise(function(_0x236ddf,_0x221072){var _0x5af80f=squel[_0xa5f2('0x11')]()[_0xa5f2('0x39')](['campaigns.id','campaigns.dialTimezone'])[_0xa5f2('0x14')](_0xa5f2('0x64'))['join'](_0xa5f2('0x65'),null,'campaigns.id\x20=\x20campaigns_has_cm_lists.CampaignId')[_0xa5f2('0x17')]('campaigns_has_cm_lists.CmListId='+_0x22f554);db['sequelize'][_0xa5f2('0x66')](_0x5af80f[_0xa5f2('0x41')]())[_0xa5f2('0x62')](function(_0x3ba50b){var _0x3d1642=[];for(var _0x2e5e7a=0x0;_0x2e5e7a<_0x3ba50b[_0xa5f2('0x20')];_0x2e5e7a++){_0x3d1642['push'](getTimezoneData(_0x3ba50b[_0x2e5e7a],tmp_campaigns));}BPromise['all'](_0x3d1642)['then'](function(){_0x236ddf({'val':0x1});});})[_0xa5f2('0x63')](function(_0x510444){logger[_0xa5f2('0x5d')](_0x510444[_0xa5f2('0x5e')]);_0x236ddf({'val':0x0});});});}function updateTzVoiceQueues(_0x1a9cd0){return new Promise(function(_0x4bb580,_0x39fd54){var _0x22dbe5=squel['select']()['fields'](['voice_queues.id','voice_queues.dialTimezone'])['from'](_0xa5f2('0x67'))[_0xa5f2('0x15')](_0xa5f2('0x68'),null,'voice_queues.id\x20=\x20voice_queues_has_cm_lists.VoiceQueueId')[_0xa5f2('0x17')]('voice_queues_has_cm_lists.CmListId='+_0x1a9cd0);db[_0xa5f2('0x61')]['query'](_0x22dbe5[_0xa5f2('0x41')]())[_0xa5f2('0x62')](function(_0xf854db){var _0x25e2fb=[];for(var _0x489f2a=0x0;_0x489f2a<_0xf854db[_0xa5f2('0x20')];_0x489f2a++){_0x25e2fb['push'](getTimezoneData(_0xf854db[_0x489f2a],tmp_voice_queues));}BPromise[_0xa5f2('0x1e')](_0x25e2fb)[_0xa5f2('0x1c')](function(){_0x4bb580({'val':0x1});});})['catch'](function(_0x204079){logger['error'](_0x204079[_0xa5f2('0x5e')]);_0x4bb580({'val':0x0});});});}function getTimezoneData(_0x58d2eb,_0x23e181){return new Promise(function(_0x359538,_0x527f72){var _0x224e45=shared['timezones'];var _0x93a032=_0x224e45[_0x58d2eb['dialTimezone']];if(_[_0xa5f2('0x21')](_0x93a032)){_0x359538({'ret':0x1});}else{var _0x36b79=_0x93a032['utcOffset'];var _0x2a1c8b=squel['insert']()[_0xa5f2('0x30')](_0x23e181)[_0xa5f2('0x69')]('id',_0x58d2eb['id'])['set']('offset',_0x36b79)[_0xa5f2('0x69')](_0xa5f2('0x6a'),_0x58d2eb[_0xa5f2('0x6a')])[_0xa5f2('0x41')]();return db[_0xa5f2('0x61')][_0xa5f2('0x66')](_0x2a1c8b)['spread'](function(_0x37944d){_0x359538({'ret':0x1});})[_0xa5f2('0x63')](function(_0x3a6885){logger[_0xa5f2('0x5d')](_0x3a6885[_0xa5f2('0x5e')]);_0x527f72({'ret':0x1});});}});}function handleTZQuery(_0xa3eba4){logger[_0xa5f2('0x6b')](_0xa3eba4);return db[_0xa5f2('0x61')][_0xa5f2('0x66')](_0xa3eba4)[_0xa5f2('0x62')](function(_0x5451ce){})[_0xa5f2('0x63')](function(_0x1a6595){logger['error'](_0x1a6595[_0xa5f2('0x5e')]);});}function main(_0x12da4d,_0x4eff12,_0xcee23f,_0x51f7b2){logger[_0xa5f2('0x6b')](_0xa5f2('0x6c'),_0x12da4d,JSON[_0xa5f2('0x6d')](_0x4eff12));process[_0xa5f2('0x6e')](_0xa5f2('0x6f'));var _0x2810f2=_0x4eff12[_0xa5f2('0x70')];var _0x31a767=_[_0xa5f2('0x71')](_0x2810f2);var _0x5848c9=_0x4eff12[_0xa5f2('0x72')];var _0x38de51=path[_0xa5f2('0x15')](config[_0xa5f2('0x73')],'server/files/tmp',_0x5848c9+_0xa5f2('0x74'));hasTZ=_[_0xa5f2('0x54')](_0x2810f2)['includes'](_0xa5f2('0x6a'));var _0x5ced87=_[_0xa5f2('0x54')](_0x2810f2)['join']();logger['info'](_0xa5f2('0x75'),_0x5ced87);db[_0xa5f2('0x76')]['findAll']({'raw':!![],'attributes':['id',_0xa5f2('0x77')]})['then'](function(_0x4089c6){for(var _0x489c5b=0x0;_0x489c5b<_0x4089c6[_0xa5f2('0x20')];_0x489c5b++){if(_0x4089c6[_0x489c5b][_0xa5f2('0x77')]in _0x2810f2){contactItemTypes['push'](_0x4089c6[_0x489c5b]);delete _0x31a767[_0x4089c6[_0x489c5b][_0xa5f2('0x77')]];hasAdditionalPhones=!![];}for(var _0x4926ed in _0x2810f2){if(_0x4089c6[_0x489c5b][_0xa5f2('0x77')]+'_description'===_0x4926ed){phoneDescriptions['push']({'itemTypeId':_0x4089c6[_0x489c5b]['id'],'description':_0x4926ed});delete _0x31a767[_0x4926ed];}}}if(hasAdditionalPhones)_0x31a767[_0xa5f2('0x1b')]='';var _0x52300e=_[_0xa5f2('0x54')](_0x31a767)['join']();logger[_0xa5f2('0x6b')]('header',_0x52300e);fs[_0xa5f2('0x78')](_0x38de51,_0x52300e+'\x0a');Papa[_0xa5f2('0x79')](fs[_0xa5f2('0x7a')](_0x12da4d),{'header':!![],'skipEmptyLines':!![],'step':function(_0x4962c5,_0x2561d8){try{for(var _0x49f8d5=0x0,_0x96141e=[];_0x49f8d5<_0x4962c5[_0xa5f2('0x7b')][_0xa5f2('0x20')];_0x49f8d5++){stats['rows']+=0x1;if(_0x4962c5['errors'][_0x49f8d5]){handleError(_0x4962c5[_0xa5f2('0x7b')][_0x49f8d5],_0x4962c5['errors'][_0x49f8d5]);}else{var _0x20aab5=[];var _0x5af5f7=[];var _0x337435={};for(var _0xd0ff10 in _0x2810f2){let _0x119500=contactItemTypes[_0xa5f2('0x7c')](_0x1480ec=>_0x1480ec['name']===_0xd0ff10);let _0x4111ce=contactItemTypes['find'](_0x4725e2=>_0x4725e2[_0xa5f2('0x77')]+_0xa5f2('0x7d')===_0xd0ff10);if(_[_0xa5f2('0x21')](_0x119500)&&_[_0xa5f2('0x21')](_0x4111ce)){if(_0x2810f2[_0xa5f2('0x7e')](_0xd0ff10)){if(_0x4962c5[_0xa5f2('0x7b')][_0x49f8d5][_0x2810f2[_0xd0ff10]]){var _0x9be2ca=_[_0xa5f2('0x7f')](_0x4962c5[_0xa5f2('0x7b')][_0x49f8d5][_0x2810f2[_0xd0ff10]][_0xa5f2('0x80')](/"/g,'\x27'));switch(_0xd0ff10){case _0xa5f2('0x33'):var _0xa498b2=moment(_0x9be2ca,'YYYY-MM-DD\x20HH:mm:ss',!![]);if(_0xa498b2['isValid']()){_0x96141e[_0xa5f2('0x1d')]('\x22'+_0x9be2ca+'\x22');}else{_0x20aab5['push'](_0xa5f2('0x81'));}break;case _0xa5f2('0x49'):var _0x1891ed=parseInt(_0x9be2ca);_0x9be2ca=_[_0xa5f2('0x82')](_0x1891ed)||_0x1891ed<0x0||_0x1891ed>0x4?_0x51f7b2?0x3:0x2:_0x1891ed;_0x96141e[_0xa5f2('0x1d')]('\x22'+_0x9be2ca+'\x22');break;case _0xa5f2('0x37'):var _0x2b14b1=parseInt(_0x9be2ca);if(_[_0xa5f2('0x83')](_0x2b14b1)&&_['includes'](_0xcee23f,_0x2b14b1)){_0x96141e[_0xa5f2('0x1d')]('\x22'+_0x2b14b1+'\x22');}else{_0x20aab5['push'](_0xa5f2('0x84'));}break;case _0xa5f2('0x85'):if(isEmail(_0x9be2ca)){_0x96141e['push']('\x22'+_0x9be2ca+'\x22');}else{_0x20aab5[_0xa5f2('0x1d')](_0xa5f2('0x86'));}break;case _0xa5f2('0x87'):var _0x426d9f=moment(_0x9be2ca,_0xa5f2('0x88'),!![]);if(_0x426d9f['isValid']()){_0x96141e['push']('\x22'+_0x9be2ca+'\x22');}else{_0x20aab5[_0xa5f2('0x1d')]('dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)');}break;case'dialTimezone':var _0x13285e=shared['timezones'];var _0x1954b9=_0x13285e[_0x9be2ca];if(!_[_0xa5f2('0x21')](_0x1954b9)){var _0x327183=_0x1954b9['utcOffset'];_0x96141e[_0xa5f2('0x1d')]('\x22'+_0x9be2ca+'\x22');_0x96141e[_0xa5f2('0x1d')]('\x22'+_0x327183+'\x22');}break;default:_0x96141e[_0xa5f2('0x1d')]('\x22'+_0x9be2ca+'\x22');}}else{switch(_0xd0ff10){case _0xa5f2('0x89'):case _0xa5f2('0x13'):_0x20aab5[_0xa5f2('0x1d')](_0xd0ff10+_0xa5f2('0x8a'));break;default:_0x96141e[_0xa5f2('0x1d')]('\x22\x22');}}}}else{var _0x3e329b='';if(!_[_0xa5f2('0x21')](_0x119500)){if(!_0x337435[_0xa5f2('0x7e')](_0x119500['id'])){if(!_[_0xa5f2('0x21')](_0x4962c5[_0xa5f2('0x7b')][_0x49f8d5][_0x2810f2[_0xd0ff10]])){var _0x9be2ca=_[_0xa5f2('0x7f')](_0x4962c5['data'][_0x49f8d5][_0x2810f2[_0xd0ff10]][_0xa5f2('0x80')](/"/g,'\x27'));var _0xa551a3=phoneDescriptions[_0xa5f2('0x7c')](_0xa5297b=>_0xa5297b[_0xa5f2('0x8b')]===_0x119500['id']);if(!_[_0xa5f2('0x21')](_0xa551a3)){var _0x3e297f=_['trim'](_0x4962c5[_0xa5f2('0x7b')][_0x49f8d5][_0x2810f2[_0xa551a3[_0xa5f2('0x8c')]]][_0xa5f2('0x80')](/"/g,'\x27'));if(!_[_0xa5f2('0x21')](_0x3e297f))_0x9be2ca=_0x9be2ca+'§'+_0x3e297f;}if(_0x3e329b=='')_0x3e329b=_0x9be2ca;else _0x3e329b+='|'+_0x9be2ca;}_0x5af5f7[_0xa5f2('0x1d')](_0x119500['id']+':'+_0x3e329b);_0x337435[_0x119500['id']]=0x1;}}}}if(hasAdditionalPhones){_0x96141e[_0xa5f2('0x1d')]('\x22'+_0x5af5f7[_0xa5f2('0x15')](';')+'\x22');}if(_0x20aab5[_0xa5f2('0x20')]){handleError(_0x4962c5[_0xa5f2('0x7b')][_0x49f8d5],{'code':_0xa5f2('0x8d'),'message':_0x20aab5[_0xa5f2('0x15')]()});}else{fs[_0xa5f2('0x8e')](_0x38de51,_0x96141e[_0xa5f2('0x15')]()+'\x0a');}_0x96141e=[];}if(!(stats[_0xa5f2('0x8f')]%0xc8)){socket[_0xa5f2('0x90')](_0xa5f2('0x91')+_0x5848c9,stats);stats['errors']=[];}}if(stopped){logger[_0xa5f2('0x6b')](_0xa5f2('0x92'));_0x2561d8[_0xa5f2('0x93')]();}}catch(_0xd914f9){handleError(_0x4962c5['data'][_0x49f8d5],{'code':_0xa5f2('0x94'),'message':_0xd914f9[_0xa5f2('0x5e')]});logger['error'](_0xa5f2('0x95'),_0xd914f9[_0xa5f2('0x5e')]);}},'complete':function(){try{var _0x43b2fa=[];var _0x19d575=[];var _0x5f92c3=_0xa5f2('0x3a');if(_0x4eff12[_0xa5f2('0x96')]&&_0x4eff12[_0xa5f2('0x96')][_0xa5f2('0x20')]){_0x5f92c3=_0xa5f2('0x97')+_0x5848c9;_0x43b2fa[_0xa5f2('0x1d')](_0xa5f2('0x98')+_0x5f92c3+_0xa5f2('0x99'));}tmp_campaigns=_0xa5f2('0x9a')+_0x5848c9;tmp_voice_queues=_0xa5f2('0x9b')+_0x5848c9;_0x19d575[_0xa5f2('0x1d')](_0xa5f2('0x98')+tmp_campaigns+_0xa5f2('0x9c'));_0x19d575[_0xa5f2('0x1d')](_0xa5f2('0x98')+tmp_voice_queues+_0xa5f2('0x9c'));BPromise[_0xa5f2('0x9d')](_0x19d575,handleTZQuery)[_0xa5f2('0x1c')](function(_0x286cca){updateTzCampaigns(_0x4eff12['ListId'])[_0xa5f2('0x1c')](function(_0x4b4a82){updateTzVoiceQueues(_0x4eff12[_0xa5f2('0x35')])[_0xa5f2('0x1c')](function(_0x169ee5){if(hasTZ)_0x52300e=_0x52300e['replace'](_0xa5f2('0x6a'),_0xa5f2('0x9e'));var _0x2c9116=util[_0xa5f2('0xe')](_0xa5f2('0x9f'),_0x38de51,_0x5f92c3,_0x52300e,_0x4eff12[_0xa5f2('0x35')],_0x4eff12[_0xa5f2('0x55')]||null,NOW,NOW);if(_[_0xa5f2('0x21')](_0x2810f2[_0xa5f2('0x33')])){_0x2c9116+=_0xa5f2('0xa0');}_0x43b2fa['push'](_0x2c9116);if(_0x4eff12[_0xa5f2('0x96')]&&_0x4eff12['duplicates'][_0xa5f2('0x20')]){_0x43b2fa[_0xa5f2('0x1d')](insertCmContact(_0x4eff12[_0xa5f2('0x35')],_0x5f92c3,_0x4eff12[_0xa5f2('0x96')],_0x2810f2));_0x43b2fa['push'](_0xa5f2('0xa1')+_0x5f92c3+';');}BPromise[_0xa5f2('0x9d')](_0x43b2fa,handleQuery)['then'](function(_0x598084){BPromise[_0xa5f2('0x1e')]([handleAdditionalPhones()])[_0xa5f2('0x1c')](function(){_0x43b2fa=[];for(var _0xd0a979=0x0;_0xd0a979<promisesAdditionalPhones['length'];_0xd0a979++){if(promisesAdditionalPhones[_0xd0a979][_0xa5f2('0x13')]!='§'){_0x43b2fa[_0xa5f2('0x1d')](createAdditionalPhone(promisesAdditionalPhones[_0xd0a979][_0xa5f2('0xa2')],promisesAdditionalPhones[_0xd0a979][_0xa5f2('0xa3')],promisesAdditionalPhones[_0xd0a979][_0xa5f2('0x13')],promisesAdditionalPhones[_0xd0a979][_0xa5f2('0xa4')]));}}BPromise[_0xa5f2('0x1e')](_0x43b2fa)[_0xa5f2('0x1c')](function(){_0x43b2fa=[];if(hasTZ){_0x43b2fa['push'](insertTzCmHopper(_0x4eff12[_0xa5f2('0x35')],'voice_queues_has_cm_lists',_0xa5f2('0x67'),_0xa5f2('0xa5'),_0x51f7b2,tmp_voice_queues));_0x43b2fa[_0xa5f2('0x1d')](insertTzCmHopperBlack(_0x4eff12[_0xa5f2('0x35')],_0xa5f2('0xa6'),_0xa5f2('0x67'),_0xa5f2('0xa5')));_0x43b2fa[_0xa5f2('0x1d')](insertTzCmHopper(_0x4eff12['ListId'],_0xa5f2('0x65'),'campaigns','CampaignId',_0x51f7b2,tmp_campaigns));_0x43b2fa[_0xa5f2('0x1d')](insertTzCmHopperBlack(_0x4eff12[_0xa5f2('0x35')],'campaigns_has_cm_blacklists','campaigns',_0xa5f2('0xa7')));_0x43b2fa[_0xa5f2('0x1d')](insertCmHopperAdditionalPhones(_0x4eff12[_0xa5f2('0x35')]));}else{_0x43b2fa['push'](insertCmHopper(_0x4eff12['ListId'],_0xa5f2('0x68'),'voice_queues','VoiceQueueId',_0x51f7b2));_0x43b2fa[_0xa5f2('0x1d')](insertCmHopperBlack(_0x4eff12[_0xa5f2('0x35')],_0xa5f2('0xa6'),_0xa5f2('0x67'),_0xa5f2('0xa5')));_0x43b2fa['push'](insertCmHopper(_0x4eff12[_0xa5f2('0x35')],'campaigns_has_cm_lists','campaigns','CampaignId',_0x51f7b2));_0x43b2fa[_0xa5f2('0x1d')](insertCmHopperBlack(_0x4eff12['ListId'],_0xa5f2('0xa8'),'campaigns',_0xa5f2('0xa7')));_0x43b2fa['push'](insertCmHopperAdditionalPhones(_0x4eff12[_0xa5f2('0x35')]));}_0x43b2fa['push'](_0xa5f2('0xa1')+tmp_campaigns+';');_0x43b2fa[_0xa5f2('0x1d')](_0xa5f2('0xa1')+tmp_voice_queues+';');BPromise[_0xa5f2('0x9d')](_0x43b2fa,handleQuery)[_0xa5f2('0x1c')](function(_0x53e4e1){stats['finish']=!![];stats[_0xa5f2('0xa9')]=_0x4eff12[_0xa5f2('0x96')]&&_0x4eff12[_0xa5f2('0x96')][_0xa5f2('0x20')]?results[0x2][_0xa5f2('0xa9')]:results[0x0][_0xa5f2('0xa9')];socket[_0xa5f2('0x90')](_0xa5f2('0x91')+_0x5848c9,stats);fs[_0xa5f2('0xaa')](_0x12da4d);fs['unlink'](_0x38de51);process[_0xa5f2('0x5f')](0x0);})[_0xa5f2('0x63')](function(_0x2377fa){logger[_0xa5f2('0x5d')](_0x2377fa['message']);process[_0xa5f2('0x5f')](0x1);});});});})[_0xa5f2('0x63')](function(_0x515b11){logger[_0xa5f2('0x5d')](_0x515b11[_0xa5f2('0x5e')]);process['exit'](0x1);});});});});}catch(_0x1d89d3){logger[_0xa5f2('0x5d')](_0xa5f2('0xab'),_0x1d89d3['message']);process[_0xa5f2('0x5f')](0x1);}},'error':function(_0x515167,_0x1e734d,_0x4507d3,_0x5b7556){throw new Error(_0x5b7556);}});});}function validate(){if(process[_0xa5f2('0xac')]&&process[_0xa5f2('0xac')][_0xa5f2('0x20')]<0x4){throw new Error(_0xa5f2('0xad'));}var _0x3f71bf=path['join'](config[_0xa5f2('0x73')],_0xa5f2('0xae'),process[_0xa5f2('0xac')][0x2]);if(!fs[_0xa5f2('0xaf')](_0x3f71bf)){throw new Error(_0xa5f2('0xb0'));}var _0x5c8319={};try{_0x5c8319=JSON[_0xa5f2('0x79')](process[_0xa5f2('0xac')][0x3]);if(!_0x5c8319[_0xa5f2('0x70')]){throw new Error(_0xa5f2('0xb1'));}if(!_0x5c8319[_0xa5f2('0x70')]['phone']){throw new Error(_0xa5f2('0xb2'));}if(!_0x5c8319['binding']['firstName']){throw new Error(_0xa5f2('0xb3'));}var _0x255c28=0x0;if(_0x5c8319[_0xa5f2('0x70')][_0xa5f2('0x37')]){_0x255c28=0x1;}if(!_0x5c8319[_0xa5f2('0x35')]){throw new Error('ListId\x20is\x20mandatory');}}catch(_0x4cb040){throw new Error(_0xa5f2('0xb4'));}var _0x522151=[];try{_0x522151=_[_0xa5f2('0xb5')](JSON[_0xa5f2('0x79')](process[_0xa5f2('0xac')][0x4]),'id');}catch(_0x494a6d){logger['info']('No\x20agent\x20available');}main(_0x3f71bf,_0x5c8319,_0x522151,_0x255c28);}validate();process['on']('SIGINT',handleStop);process['on'](_0xa5f2('0xb6'),handleUncaughtException);