Built motion from commit f74363e9.|2.6.34
[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 _0x5b68=['scheduledat','ContactId','ListId','createdAt','updatedAt','UserId','recallme','select','fields','from','cm_contacts','cm_contacts.ListId\x20=\x20','.CmListId\x20=\x20?','cm_contacts.createdAt\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','cm_hopper','\x22always\x22','\x22onlyIfOpen\x22','toString','into','cm_hopper_black','fromQuery','.CmListId','date_add(cm_contacts.scheduledat,interval\x20','.offset-cm_contacts.utcOffset\x20minute)','cm_contacts.UserId','priority','cm_contact_has_items.item','cm_contact_has_items.OrderBy','cm_contact_has_items.createdAt','cm_contact_has_items.updatedAt','CmHopperId','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','scheduledAt',')\x20NOT\x20IN\x20?','deletedAt\x20IS\x20NULL','id\x20IN\x20?','MIN(id)','min_id','group','Received\x20SIGINT','error','message','exit','errors','sequelize','query','spread','catch','campaigns.id','campaigns.dialTimezone','campaigns','campaigns_has_cm_lists.CmListId=','voice_queues_has_cm_lists','voice_queues.id\x20=\x20voice_queues_has_cm_lists.VoiceQueueId','voice_queues_has_cm_lists.CmListId=','timezones','dialTimezone','utcOffset','set','offset','info','stringify','send','start','binding','clone','socket_timestamp','root','.csv','includes','header','name','_description','writeFileSync','parse','createReadStream','data','rows','find','hasOwnProperty','trim','replace','isValid','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNumber','agent\x20not\x20exists','email\x20wrong\x20format','dateOfBirth','YYYY-MM-DD','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','firstName','\x20not\x20specified','itemTypeId','description','SystemRow','appendFileSync','emit','contact:import:','Abort\x20parser','abort','SystemError','duplicates','cm_contacts_','CREATE\x20TABLE\x20','(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','DROP\x20TABLE\x20','contactId','VoiceQueueId','voice_queues_has_cm_blacklists','voice_queues','CampaignId','campaigns_has_cm_blacklists','finish','affectedRows','unlink','complete','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','server/files/tmp','existsSync','binding\x20doesn\x27t\x20exists','phone\x20is\x20mandatory','firstName\x20is\x20mandatory','body\x20id\x20mandatory','No\x20agent\x20available','uncaughtException','lodash','papaparse','util','bluebird','moment','squel','ioredis','../../../mysqldb','../../../config/environment','../../../config/environment/shared','redis','defaults','socket.io-emitter','YYYY-MM-DD\x20HH:mm:ss','format','field','phone','join','.id\x20=\x20','where','\x20=\x20','.dialCheckDuplicateType\x20IN\x20(','CmContact','findAll','AdditionalPhones','then','push','all','length','split','isNil','filter','CmContactHasItem','update','updated','create','PHONE','inserted','cm_contacts.phone','cm_contacts.scheduledat','cm_contacts.id','cm_contacts.ListId','cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.priority','insert'];(function(_0x5317b5,_0x4dfd6e){var _0x3b7ce2=function(_0xc146d6){while(--_0xc146d6){_0x5317b5['push'](_0x5317b5['shift']());}};_0x3b7ce2(++_0x4dfd6e);}(_0x5b68,0x1f4));var _0x85b6=function(_0x3c1ca2,_0x3428ae){_0x3c1ca2=_0x3c1ca2-0x0;var _0x310c01=_0x5b68[_0x3c1ca2];return _0x310c01;};'use strict';var fs=require('fs');var path=require('path');var _=require(_0x85b6('0x0'));var Papa=require(_0x85b6('0x1'));var util=require(_0x85b6('0x2'));var BPromise=require(_0x85b6('0x3'));var moment=require(_0x85b6('0x4'));var squel=require(_0x85b6('0x5'));var Redis=require(_0x85b6('0x6'));var db=require(_0x85b6('0x7'))['db'];var config=require(_0x85b6('0x8'));var shared=require(_0x85b6('0x9'));var logger=require('../../../config/logger')('import');config[_0x85b6('0xa')]=_[_0x85b6('0xb')](config[_0x85b6('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0x85b6('0xc'))(new Redis(config[_0x85b6('0xa')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var promisesAdditionalPhones=[];var orderBy=0x0;var stopped=![];var NOW=moment()['format'](_0x85b6('0xd'));var contactItemTypes=[];var phoneDescriptions=[];var hasAdditionalPhones=![];var tmp_voice_queues;var tmp_campaigns;var tzOffset=0x0;var hasTZ;var NOW=moment()[_0x85b6('0xe')](_0x85b6('0xd'));function isEmail(_0x4cfba2){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/['test'](_0x4cfba2);}function selectNotIn(_0x4f5175,_0xd8705e,_0x5793ee,_0x418b7a,_0x231a45){return squel['select']()[_0x85b6('0xf')](_0x85b6('0x10'))['from'](_0x418b7a)[_0x85b6('0x11')](_0xd8705e,null,_0xd8705e+_0x85b6('0x12')+_0x418b7a+'.'+_0x5793ee)[_0x85b6('0x13')](_0x418b7a+'.'+_0x5793ee+_0x85b6('0x14')+_0x4f5175+'.'+_0x5793ee)[_0x85b6('0x13')](_0xd8705e+_0x85b6('0x15')+_0x231a45['join']()+')');}function handleAdditionalPhones(){return new Promise(function(_0x3d236b,_0x48d0ba){promisesAdditionalPhones=[];return db[_0x85b6('0x16')][_0x85b6('0x17')]({'raw':!![],'attributes':['id',_0x85b6('0x18')],'where':{'createdAt':NOW,'AdditionalPhones':{'$ne':null}}})[_0x85b6('0x19')](function(_0xceb279){if(_0xceb279!==null){var _0x5055c1=[];for(var _0xb4a64a=0x0;_0xb4a64a<_0xceb279['length'];_0xb4a64a++){var _0x2f7288=_0xceb279[_0xb4a64a];_0x5055c1[_0x85b6('0x1a')](insertAdditionalPhones(_0x2f7288));}}Promise[_0x85b6('0x1b')](_0x5055c1)[_0x85b6('0x19')](function(){_0x3d236b({'val':0x1});});});});}function insertAdditionalPhones(_0x58a542){return new Promise(function(_0x592991,_0x1a03b0){var _0x2965a0=_0x58a542[_0x85b6('0x18')];var _0x47e8ff=_0x2965a0['split'](';');var _0x40d75e=[];orderBy=0x0;for(var _0x1fb452=0x0;_0x1fb452<_0x47e8ff[_0x85b6('0x1c')];_0x1fb452++){_0x40d75e['push'](splitAdditionalPhone(_0x58a542['id'],_0x47e8ff[_0x1fb452]));}Promise['all'](_0x40d75e)[_0x85b6('0x19')](function(){_0x592991({'val':_0x47e8ff[_0x85b6('0x1c')]});});});}function splitAdditionalPhone(_0x30728f,_0x494532){return new Promise(function(_0x548d50,_0x425c89){var _0x46d20e=_0x494532[_0x85b6('0x1d')](':');var _0x3202af=_0x46d20e[0x0];var _0x59b7c9=_0x46d20e[0x1];if(!_[_0x85b6('0x1e')](_0x59b7c9)){var _0x23f120=_0x59b7c9[_0x85b6('0x1d')]('|');var _0x4a7fa0=[];for(var _0x1df06d=0x0;_0x1df06d<_0x23f120['length'];_0x1df06d++){if(_0x23f120[_0x1df06d]!==''){var _0x225195=_[_0x85b6('0x1f')](promisesAdditionalPhones,{'contactId':_0x30728f,'phone':_0x23f120[_0x1df06d]});if(_0x225195[_0x85b6('0x1c')]==0x0){orderBy++;promisesAdditionalPhones[_0x85b6('0x1a')]({'contactId':_0x30728f,'contactTypeId':_0x3202af,'phone':_0x23f120[_0x1df06d],'orderBy':orderBy});}}}_0x548d50({'ok':0x1});}else _0x548d50({'res':0x0});});}function createAdditionalPhone(_0x474193,_0x3f8025,_0x4b77c5,_0x2b0fd6){var _0x2f3da5='';var _0x5ce39c='';var _0x33de31=_0x4b77c5[_0x85b6('0x1d')]('§');_0x2f3da5=_0x33de31[0x0];if(_0x33de31[_0x85b6('0x1c')]==0x2)_0x5ce39c=_0x33de31[0x1];return new Promise(function(_0x4abdd8,_0x17615f){return db[_0x85b6('0x20')]['findOne']({'where':{'CmContactId':_0x474193,'item':_0x2f3da5}})['then'](function(_0x46e05a){if(_0x46e05a){return db['CmContactHasItem'][_0x85b6('0x21')]({'ItemTypeId':_0x3f8025,'description':_0x5ce39c,'OrderBy':_0x2b0fd6},{'where':{'CmContactId':_0x474193,'item':_0x2f3da5}})['then'](function(_0x4a7a02){_0x4abdd8({'res':_0x85b6('0x22')});});}else{return db[_0x85b6('0x20')][_0x85b6('0x23')]({'CmContactId':_0x474193,'item':_0x2f3da5,'description':_0x5ce39c,'ItemTypeId':_0x3f8025,'OrderBy':_0x2b0fd6,'ItemClass':_0x85b6('0x24')})[_0x85b6('0x19')](function(_0x10e7d0){_0x4abdd8({'res':_0x85b6('0x25')});});}});});}function insertCmHopper(_0x4d5560,_0x1ce5bf,_0x41a898,_0x4bd14a,_0x29e5ad){var _0x40cef0=[_0x85b6('0x26'),_0x85b6('0x27'),_0x85b6('0x28'),_0x85b6('0x29'),_0x1ce5bf+'.'+_0x4bd14a,_0x85b6('0x2a'),_0x85b6('0x2b'),_0x85b6('0x2c'),'cm_contacts.UserId','\x22'+_0x29e5ad+'\x22'];return squel[_0x85b6('0x2d')]()['into']('cm_hopper')['fromQuery']([_0x85b6('0x10'),_0x85b6('0x2e'),_0x85b6('0x2f'),_0x85b6('0x30'),_0x4bd14a,_0x85b6('0x31'),_0x85b6('0x32'),'priority',_0x85b6('0x33'),_0x85b6('0x34')],squel[_0x85b6('0x35')]()[_0x85b6('0x36')](_0x40cef0)[_0x85b6('0x37')](_0x1ce5bf)[_0x85b6('0x11')](_0x85b6('0x38'),null,_0x85b6('0x39')+_0x1ce5bf+'.CmListId')[_0x85b6('0x11')](_0x41a898,null,_0x41a898+_0x85b6('0x12')+_0x1ce5bf+'.'+_0x4bd14a)[_0x85b6('0x13')](_0x1ce5bf+_0x85b6('0x3a'),_0x4d5560)[_0x85b6('0x13')](_0x85b6('0x3b'),NOW)[_0x85b6('0x13')](_0x85b6('0x3c'),selectNotIn(_0x1ce5bf,_0x41a898,_0x4bd14a,_0x85b6('0x3d'),[_0x85b6('0x3e'),_0x85b6('0x3f')]))[_0x85b6('0x13')](_0x85b6('0x3c'),selectNotIn(_0x1ce5bf,_0x41a898,_0x4bd14a,_0x85b6('0x3d'),[_0x85b6('0x3e')])))[_0x85b6('0x40')]();}function insertCmHopperBlack(_0x1dfd3b,_0xeb0d26,_0xbd5e8a,_0x13d37d){var _0x1d2000=[_0x85b6('0x26'),_0x85b6('0x28'),_0x85b6('0x29'),_0xeb0d26+'.'+_0x13d37d,'cm_contacts.createdAt',_0x85b6('0x2b')];return squel[_0x85b6('0x2d')]()[_0x85b6('0x41')](_0x85b6('0x42'))[_0x85b6('0x43')](['phone','ContactId',_0x85b6('0x30'),_0x13d37d,_0x85b6('0x31'),_0x85b6('0x32')],squel[_0x85b6('0x35')]()[_0x85b6('0x36')](_0x1d2000)[_0x85b6('0x37')](_0xeb0d26)[_0x85b6('0x11')](_0x85b6('0x38'),null,_0x85b6('0x39')+_0xeb0d26+_0x85b6('0x44'))[_0x85b6('0x11')](_0xbd5e8a,null,_0xbd5e8a+_0x85b6('0x12')+_0xeb0d26+'.'+_0x13d37d)['where'](_0xeb0d26+_0x85b6('0x3a'),_0x1dfd3b)[_0x85b6('0x13')](_0x85b6('0x3b'),NOW)[_0x85b6('0x13')](_0x85b6('0x3c'),squel[_0x85b6('0x35')]()[_0x85b6('0xf')](_0x85b6('0x10'))[_0x85b6('0x37')](_0x85b6('0x42'))['where']('ListId\x20=\x20?',_0x1dfd3b)[_0x85b6('0x13')](_0x13d37d+_0x85b6('0x14')+_0xeb0d26+'.'+_0x13d37d)))[_0x85b6('0x40')]();}function insertTzCmHopper(_0x12151d,_0x382347,_0x4476af,_0x147bf1,_0x17bd94,_0x52ac29){var _0x3fa0ad=[_0x85b6('0x26'),_0x85b6('0x45')+_0x52ac29+_0x85b6('0x46'),_0x85b6('0x28'),_0x85b6('0x29'),_0x382347+'.'+_0x147bf1,'cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.priority',_0x85b6('0x47'),'\x22'+_0x17bd94+'\x22'];var _0x29ca18=squel[_0x85b6('0x2d')]()[_0x85b6('0x41')](_0x85b6('0x3d'))[_0x85b6('0x43')]([_0x85b6('0x10'),'scheduledat','ContactId',_0x85b6('0x30'),_0x147bf1,'createdAt',_0x85b6('0x32'),_0x85b6('0x48'),'UserId',_0x85b6('0x34')],squel[_0x85b6('0x35')]()[_0x85b6('0x36')](_0x3fa0ad)[_0x85b6('0x37')](_0x382347)[_0x85b6('0x11')](_0x85b6('0x38'),null,_0x85b6('0x39')+_0x382347+_0x85b6('0x44'))[_0x85b6('0x11')](_0x4476af,null,_0x4476af+'.id\x20=\x20'+_0x382347+'.'+_0x147bf1)['join'](_0x52ac29,null,_0x52ac29+_0x85b6('0x12')+_0x382347+'.'+_0x147bf1)['where'](_0x382347+_0x85b6('0x3a'),_0x12151d)['where'](_0x85b6('0x3b'),NOW)['where'](_0x85b6('0x3c'),selectNotIn(_0x382347,_0x4476af,_0x147bf1,_0x85b6('0x3d'),['\x22always\x22',_0x85b6('0x3f')]))[_0x85b6('0x13')](_0x85b6('0x3c'),selectNotIn(_0x382347,_0x4476af,_0x147bf1,_0x85b6('0x3d'),[_0x85b6('0x3e')])))[_0x85b6('0x40')]();return _0x29ca18;}function insertTzCmHopperBlack(_0x2b6e4e,_0x453354,_0x510a6a,_0x3d4492){var _0x3a6a1b=[_0x85b6('0x26'),_0x85b6('0x28'),_0x85b6('0x29'),_0x453354+'.'+_0x3d4492,_0x85b6('0x2a'),_0x85b6('0x2b')];return squel[_0x85b6('0x2d')]()[_0x85b6('0x41')](_0x85b6('0x42'))[_0x85b6('0x43')]([_0x85b6('0x10'),'ContactId',_0x85b6('0x30'),_0x3d4492,'createdAt',_0x85b6('0x32')],squel['select']()[_0x85b6('0x36')](_0x3a6a1b)[_0x85b6('0x37')](_0x453354)[_0x85b6('0x11')](_0x85b6('0x38'),null,_0x85b6('0x39')+_0x453354+'.CmListId')[_0x85b6('0x11')](_0x510a6a,null,_0x510a6a+'.id\x20=\x20'+_0x453354+'.'+_0x3d4492)['where'](_0x453354+'.CmListId\x20=\x20?',_0x2b6e4e)[_0x85b6('0x13')](_0x85b6('0x3b'),NOW)['where'](_0x85b6('0x3c'),squel[_0x85b6('0x35')]()[_0x85b6('0xf')](_0x85b6('0x10'))[_0x85b6('0x37')](_0x85b6('0x42'))[_0x85b6('0x13')]('ListId\x20=\x20?',_0x2b6e4e)['where'](_0x3d4492+'\x20=\x20'+_0x453354+'.'+_0x3d4492)))[_0x85b6('0x40')]();}function insertCmHopperAdditionalPhones(_0x3a181f){var _0x15a73d=['cm_hopper.id',_0x85b6('0x49'),_0x85b6('0x4a'),_0x85b6('0x4b'),_0x85b6('0x4c')];return squel[_0x85b6('0x2d')]()[_0x85b6('0x41')]('cm_hopper_additional_phones')[_0x85b6('0x43')]([_0x85b6('0x4d'),_0x85b6('0x10'),'OrderBy',_0x85b6('0x31'),_0x85b6('0x32')],squel[_0x85b6('0x35')]()['fields'](_0x15a73d)[_0x85b6('0x37')](_0x85b6('0x3d'))['join']('cm_contacts',null,_0x85b6('0x4e'))[_0x85b6('0x11')](_0x85b6('0x4f'),null,_0x85b6('0x50'))['where'](_0x85b6('0x51'),_0x3a181f)[_0x85b6('0x13')](_0x85b6('0x3b'),NOW))[_0x85b6('0x40')]();}function insertCmContact(_0x20cc54,_0x8bfecd,_0x167013,_0x10c4e2){var _0x5e85e5=_[_0x85b6('0x52')](_[_0x85b6('0x53')](_0x10c4e2),['ListId',_0x85b6('0x54'),_0x85b6('0x31'),'updatedAt',_0x85b6('0x55')]);return squel[_0x85b6('0x2d')]()['into']('cm_contacts')[_0x85b6('0x43')](_0x5e85e5,squel['select']()['fields'](_0x5e85e5)[_0x85b6('0x37')](_0x8bfecd)[_0x85b6('0x13')]('('+_0x167013[_0x85b6('0x11')](',')+_0x85b6('0x56'),squel[_0x85b6('0x35')]()[_0x85b6('0x36')](_0x167013)['from'](_0x85b6('0x38'))[_0x85b6('0x13')]('ListId\x20=\x20?',_0x20cc54)['where'](_0x85b6('0x57')))[_0x85b6('0x13')](_0x85b6('0x58'),squel[_0x85b6('0x35')]()[_0x85b6('0xf')](_0x85b6('0x59'),_0x85b6('0x5a'))[_0x85b6('0x37')](_0x8bfecd)[_0x85b6('0x5b')](_0x167013['join'](','))))[_0x85b6('0x40')]();}function handleStop(){logger['info'](_0x85b6('0x5c'));stopped=!![];}function handleUncaughtException(_0x5a1984){logger[_0x85b6('0x5d')](_0x5a1984[_0x85b6('0x5e')]);process[_0x85b6('0x5f')](0x1);}function handleError(_0x3a4b53,_0x5930d2){stats[_0x85b6('0x60')]['push']({'name':_0x5930d2['code'],'message':_0x5930d2[_0x85b6('0x5e')],'row':_0x3a4b53});}function handleQuery(_0x4e03bd){logger['info'](_0x4e03bd);return db[_0x85b6('0x61')][_0x85b6('0x62')](_0x4e03bd)[_0x85b6('0x63')](function(_0x50d444){results[_0x85b6('0x1a')](_0x50d444);})[_0x85b6('0x64')](function(_0x52f9bf){logger[_0x85b6('0x5d')](_0x52f9bf[_0x85b6('0x5e')]);});}function updateTzCampaigns(_0x48503b){return new Promise(function(_0x5eb3bf,_0x4fca79){var _0x3ff961=squel['select']()['fields']([_0x85b6('0x65'),_0x85b6('0x66')])[_0x85b6('0x37')](_0x85b6('0x67'))[_0x85b6('0x11')]('campaigns_has_cm_lists',null,'campaigns.id\x20=\x20campaigns_has_cm_lists.CampaignId')[_0x85b6('0x13')](_0x85b6('0x68')+_0x48503b);db[_0x85b6('0x61')][_0x85b6('0x62')](_0x3ff961[_0x85b6('0x40')]())[_0x85b6('0x63')](function(_0x2c081a){var _0x1e99fb=[];for(var _0x2bf449=0x0;_0x2bf449<_0x2c081a[_0x85b6('0x1c')];_0x2bf449++){_0x1e99fb[_0x85b6('0x1a')](getTimezoneData(_0x2c081a[_0x2bf449],tmp_campaigns));}BPromise[_0x85b6('0x1b')](_0x1e99fb)[_0x85b6('0x19')](function(){_0x5eb3bf({'val':0x1});});})[_0x85b6('0x64')](function(_0x264ce2){logger['error'](_0x264ce2[_0x85b6('0x5e')]);_0x5eb3bf({'val':0x0});});});}function updateTzVoiceQueues(_0x11fa05){return new Promise(function(_0x264b60,_0x3c4a00){var _0x374b40=squel['select']()[_0x85b6('0x36')](['voice_queues.id','voice_queues.dialTimezone'])[_0x85b6('0x37')]('voice_queues')[_0x85b6('0x11')](_0x85b6('0x69'),null,_0x85b6('0x6a'))['where'](_0x85b6('0x6b')+_0x11fa05);db[_0x85b6('0x61')][_0x85b6('0x62')](_0x374b40[_0x85b6('0x40')]())[_0x85b6('0x63')](function(_0x1f6ff7){var _0x239203=[];for(var _0x5b31b3=0x0;_0x5b31b3<_0x1f6ff7['length'];_0x5b31b3++){_0x239203[_0x85b6('0x1a')](getTimezoneData(_0x1f6ff7[_0x5b31b3],tmp_voice_queues));}BPromise[_0x85b6('0x1b')](_0x239203)[_0x85b6('0x19')](function(){_0x264b60({'val':0x1});});})['catch'](function(_0x50631a){logger['error'](_0x50631a[_0x85b6('0x5e')]);_0x264b60({'val':0x0});});});}function getTimezoneData(_0xe96505,_0xa49239){return new Promise(function(_0x38434f,_0x73c09c){var _0x45361d=shared[_0x85b6('0x6c')];var _0x2b949c=_0x45361d[_0xe96505[_0x85b6('0x6d')]];if(_[_0x85b6('0x1e')](_0x2b949c)){_0x38434f({'ret':0x1});}else{var _0x54e85a=_0x2b949c[_0x85b6('0x6e')];var _0xdde98d=squel[_0x85b6('0x2d')]()[_0x85b6('0x41')](_0xa49239)[_0x85b6('0x6f')]('id',_0xe96505['id'])[_0x85b6('0x6f')](_0x85b6('0x70'),_0x54e85a)[_0x85b6('0x6f')](_0x85b6('0x6d'),_0xe96505[_0x85b6('0x6d')])[_0x85b6('0x40')]();return db[_0x85b6('0x61')]['query'](_0xdde98d)[_0x85b6('0x63')](function(_0x28f949){_0x38434f({'ret':0x1});})[_0x85b6('0x64')](function(_0x273634){logger[_0x85b6('0x5d')](_0x273634[_0x85b6('0x5e')]);_0x73c09c({'ret':0x1});});}});}function handleTZQuery(_0x40a582){logger[_0x85b6('0x71')](_0x40a582);return db[_0x85b6('0x61')][_0x85b6('0x62')](_0x40a582)['spread'](function(_0x46c830){})[_0x85b6('0x64')](function(_0x2629e1){logger[_0x85b6('0x5d')](_0x2629e1[_0x85b6('0x5e')]);});}function main(_0x2c6c06,_0x35d34f,_0xb4ca03,_0xbc1db5){logger[_0x85b6('0x71')]('main',_0x2c6c06,JSON[_0x85b6('0x72')](_0x35d34f));process[_0x85b6('0x73')](_0x85b6('0x74'));var _0x1529b6=_0x35d34f[_0x85b6('0x75')];var _0x5a000c=_[_0x85b6('0x76')](_0x1529b6);var _0x5b406a=_0x35d34f[_0x85b6('0x77')];var _0x2767d0=path[_0x85b6('0x11')](config[_0x85b6('0x78')],'server/files/tmp',_0x5b406a+_0x85b6('0x79'));hasTZ=_['keys'](_0x1529b6)[_0x85b6('0x7a')](_0x85b6('0x6d'));var _0x181490=_[_0x85b6('0x53')](_0x1529b6)['join']();logger[_0x85b6('0x71')](_0x85b6('0x7b'),_0x181490);db['ContactItemType'][_0x85b6('0x17')]({'raw':!![],'attributes':['id',_0x85b6('0x7c')]})[_0x85b6('0x19')](function(_0x1f7cdb){for(var _0x5191f4=0x0;_0x5191f4<_0x1f7cdb[_0x85b6('0x1c')];_0x5191f4++){if(_0x1f7cdb[_0x5191f4][_0x85b6('0x7c')]in _0x1529b6){contactItemTypes[_0x85b6('0x1a')](_0x1f7cdb[_0x5191f4]);delete _0x5a000c[_0x1f7cdb[_0x5191f4][_0x85b6('0x7c')]];hasAdditionalPhones=!![];}for(var _0x474f66 in _0x1529b6){if(_0x1f7cdb[_0x5191f4][_0x85b6('0x7c')]+_0x85b6('0x7d')===_0x474f66){phoneDescriptions[_0x85b6('0x1a')]({'itemTypeId':_0x1f7cdb[_0x5191f4]['id'],'description':_0x474f66});delete _0x5a000c[_0x474f66];}}}if(hasAdditionalPhones)_0x5a000c[_0x85b6('0x18')]='';var _0x5d5835=_[_0x85b6('0x53')](_0x5a000c)[_0x85b6('0x11')]();logger[_0x85b6('0x71')](_0x85b6('0x7b'),_0x5d5835);fs[_0x85b6('0x7e')](_0x2767d0,_0x5d5835+'\x0a');Papa[_0x85b6('0x7f')](fs[_0x85b6('0x80')](_0x2c6c06),{'header':!![],'skipEmptyLines':!![],'step':function(_0x15c51f,_0x2a863a){try{for(var _0xba43ce=0x0,_0x209ee2=[];_0xba43ce<_0x15c51f[_0x85b6('0x81')]['length'];_0xba43ce++){stats[_0x85b6('0x82')]+=0x1;if(_0x15c51f['errors'][_0xba43ce]){handleError(_0x15c51f[_0x85b6('0x81')][_0xba43ce],_0x15c51f['errors'][_0xba43ce]);}else{var _0x1fb15d=[];var _0x183f7e=[];var _0x21778f={};for(var _0x4c7e10 in _0x1529b6){let _0x1f42b9=contactItemTypes[_0x85b6('0x83')](_0x4d24b9=>_0x4d24b9[_0x85b6('0x7c')]===_0x4c7e10);let _0x23c2d5=contactItemTypes[_0x85b6('0x83')](_0x24bb18=>_0x24bb18[_0x85b6('0x7c')]+_0x85b6('0x7d')===_0x4c7e10);if(_[_0x85b6('0x1e')](_0x1f42b9)&&_[_0x85b6('0x1e')](_0x23c2d5)){if(_0x1529b6[_0x85b6('0x84')](_0x4c7e10)){if(_0x15c51f[_0x85b6('0x81')][_0xba43ce][_0x1529b6[_0x4c7e10]]){var _0x30a2db=_[_0x85b6('0x85')](_0x15c51f[_0x85b6('0x81')][_0xba43ce][_0x1529b6[_0x4c7e10]][_0x85b6('0x86')](/"/g,'\x27'));switch(_0x4c7e10){case _0x85b6('0x2e'):var _0x3796cb=moment(_0x30a2db,_0x85b6('0xd'),!![]);if(_0x3796cb[_0x85b6('0x87')]()){_0x209ee2[_0x85b6('0x1a')]('\x22'+_0x30a2db+'\x22');}else{_0x1fb15d[_0x85b6('0x1a')](_0x85b6('0x88'));}break;case _0x85b6('0x48'):var _0x450973=parseInt(_0x30a2db);_0x30a2db=_['isNaN'](_0x450973)||_0x450973<0x0||_0x450973>0x4?_0xbc1db5?0x3:0x2:_0x450973;_0x209ee2[_0x85b6('0x1a')]('\x22'+_0x30a2db+'\x22');break;case _0x85b6('0x33'):var _0x4afffd=parseInt(_0x30a2db);if(_[_0x85b6('0x89')](_0x4afffd)&&_[_0x85b6('0x7a')](_0xb4ca03,_0x4afffd)){_0x209ee2[_0x85b6('0x1a')]('\x22'+_0x4afffd+'\x22');}else{_0x1fb15d[_0x85b6('0x1a')](_0x85b6('0x8a'));}break;case'email':if(isEmail(_0x30a2db)){_0x209ee2[_0x85b6('0x1a')]('\x22'+_0x30a2db+'\x22');}else{_0x1fb15d[_0x85b6('0x1a')](_0x85b6('0x8b'));}break;case _0x85b6('0x8c'):var _0x31b021=moment(_0x30a2db,_0x85b6('0x8d'),!![]);if(_0x31b021['isValid']()){_0x209ee2[_0x85b6('0x1a')]('\x22'+_0x30a2db+'\x22');}else{_0x1fb15d[_0x85b6('0x1a')](_0x85b6('0x8e'));}break;case _0x85b6('0x6d'):var _0x4bedb2=shared['timezones'];var _0x51ca66=_0x4bedb2[_0x30a2db];if(!_['isNil'](_0x51ca66)){var _0x123f75=_0x51ca66[_0x85b6('0x6e')];_0x209ee2[_0x85b6('0x1a')]('\x22'+_0x30a2db+'\x22');_0x209ee2[_0x85b6('0x1a')]('\x22'+_0x123f75+'\x22');}break;default:_0x209ee2['push']('\x22'+_0x30a2db+'\x22');}}else{switch(_0x4c7e10){case _0x85b6('0x8f'):case _0x85b6('0x10'):_0x1fb15d[_0x85b6('0x1a')](_0x4c7e10+_0x85b6('0x90'));break;default:_0x209ee2[_0x85b6('0x1a')]('\x22\x22');}}}}else{var _0x2c3a91='';if(!_[_0x85b6('0x1e')](_0x1f42b9)){if(!_0x21778f[_0x85b6('0x84')](_0x1f42b9['id'])){if(!_[_0x85b6('0x1e')](_0x15c51f[_0x85b6('0x81')][_0xba43ce][_0x1529b6[_0x4c7e10]])){var _0x30a2db=_[_0x85b6('0x85')](_0x15c51f[_0x85b6('0x81')][_0xba43ce][_0x1529b6[_0x4c7e10]][_0x85b6('0x86')](/"/g,'\x27'));var _0x2b49d8=phoneDescriptions[_0x85b6('0x83')](_0x18dd95=>_0x18dd95[_0x85b6('0x91')]===_0x1f42b9['id']);if(!_[_0x85b6('0x1e')](_0x2b49d8)){var _0x4310b2=_[_0x85b6('0x85')](_0x15c51f[_0x85b6('0x81')][_0xba43ce][_0x1529b6[_0x2b49d8[_0x85b6('0x92')]]][_0x85b6('0x86')](/"/g,'\x27'));if(!_['isNil'](_0x4310b2))_0x30a2db=_0x30a2db+'§'+_0x4310b2;}if(_0x2c3a91=='')_0x2c3a91=_0x30a2db;else _0x2c3a91+='|'+_0x30a2db;}_0x183f7e[_0x85b6('0x1a')](_0x1f42b9['id']+':'+_0x2c3a91);_0x21778f[_0x1f42b9['id']]=0x1;}}}}if(hasAdditionalPhones){_0x209ee2[_0x85b6('0x1a')]('\x22'+_0x183f7e[_0x85b6('0x11')](';')+'\x22');}if(_0x1fb15d[_0x85b6('0x1c')]){handleError(_0x15c51f[_0x85b6('0x81')][_0xba43ce],{'code':_0x85b6('0x93'),'message':_0x1fb15d['join']()});}else{fs[_0x85b6('0x94')](_0x2767d0,_0x209ee2['join']()+'\x0a');}_0x209ee2=[];}if(!(stats[_0x85b6('0x82')]%0xc8)){socket[_0x85b6('0x95')](_0x85b6('0x96')+_0x5b406a,stats);stats[_0x85b6('0x60')]=[];}}if(stopped){logger[_0x85b6('0x71')](_0x85b6('0x97'));_0x2a863a[_0x85b6('0x98')]();}}catch(_0x480723){handleError(_0x15c51f[_0x85b6('0x81')][_0xba43ce],{'code':_0x85b6('0x99'),'message':_0x480723[_0x85b6('0x5e')]});logger[_0x85b6('0x5d')]('step',_0x480723['message']);}},'complete':function(){try{var _0x260a37=[];var _0x401ef3=[];var _0x6507ef=_0x85b6('0x38');if(_0x35d34f[_0x85b6('0x9a')]&&_0x35d34f[_0x85b6('0x9a')][_0x85b6('0x1c')]){_0x6507ef=_0x85b6('0x9b')+_0x5b406a;_0x260a37[_0x85b6('0x1a')]('CREATE\x20TABLE\x20'+_0x6507ef+'\x20LIKE\x20cm_contacts;');}tmp_campaigns='campaigns_'+_0x5b406a;tmp_voice_queues='voice_queues_'+_0x5b406a;_0x401ef3[_0x85b6('0x1a')](_0x85b6('0x9c')+tmp_campaigns+_0x85b6('0x9d'));_0x401ef3[_0x85b6('0x1a')](_0x85b6('0x9c')+tmp_voice_queues+'(id\x20int,dialTimezone\x20varchar(255),offset\x20int);');BPromise[_0x85b6('0x9e')](_0x401ef3,handleTZQuery)['then'](function(_0x3a3e67){updateTzCampaigns(_0x35d34f[_0x85b6('0x30')])[_0x85b6('0x19')](function(_0x3201eb){updateTzVoiceQueues(_0x35d34f[_0x85b6('0x30')])['then'](function(_0x1c1181){if(hasTZ)_0x5d5835=_0x5d5835[_0x85b6('0x86')]('dialTimezone',_0x85b6('0x9f'));var _0x7a064c=util[_0x85b6('0xe')](_0x85b6('0xa0'),_0x2767d0,_0x6507ef,_0x5d5835,_0x35d34f[_0x85b6('0x30')],_0x35d34f[_0x85b6('0x54')]||null,NOW,NOW);if(_[_0x85b6('0x1e')](_0x1529b6[_0x85b6('0x2e')])){_0x7a064c+=',\x20scheduledAt\x20=\x20NOW()';}_0x260a37[_0x85b6('0x1a')](_0x7a064c);if(_0x35d34f[_0x85b6('0x9a')]&&_0x35d34f[_0x85b6('0x9a')][_0x85b6('0x1c')]){_0x260a37[_0x85b6('0x1a')](insertCmContact(_0x35d34f[_0x85b6('0x30')],_0x6507ef,_0x35d34f[_0x85b6('0x9a')],_0x1529b6));_0x260a37[_0x85b6('0x1a')](_0x85b6('0xa1')+_0x6507ef+';');}BPromise[_0x85b6('0x9e')](_0x260a37,handleQuery)[_0x85b6('0x19')](function(_0x1bfcb3){BPromise[_0x85b6('0x1b')]([handleAdditionalPhones()])[_0x85b6('0x19')](function(){_0x260a37=[];for(var _0x5d7129=0x0;_0x5d7129<promisesAdditionalPhones[_0x85b6('0x1c')];_0x5d7129++){if(promisesAdditionalPhones[_0x5d7129][_0x85b6('0x10')]!='§'){_0x260a37[_0x85b6('0x1a')](createAdditionalPhone(promisesAdditionalPhones[_0x5d7129][_0x85b6('0xa2')],promisesAdditionalPhones[_0x5d7129]['contactTypeId'],promisesAdditionalPhones[_0x5d7129][_0x85b6('0x10')],promisesAdditionalPhones[_0x5d7129]['orderBy']));}}BPromise['all'](_0x260a37)[_0x85b6('0x19')](function(){_0x260a37=[];if(hasTZ){_0x260a37[_0x85b6('0x1a')](insertTzCmHopper(_0x35d34f[_0x85b6('0x30')],_0x85b6('0x69'),'voice_queues',_0x85b6('0xa3'),_0xbc1db5,tmp_voice_queues));_0x260a37['push'](insertTzCmHopperBlack(_0x35d34f[_0x85b6('0x30')],_0x85b6('0xa4'),_0x85b6('0xa5'),_0x85b6('0xa3')));_0x260a37[_0x85b6('0x1a')](insertTzCmHopper(_0x35d34f['ListId'],'campaigns_has_cm_lists',_0x85b6('0x67'),_0x85b6('0xa6'),_0xbc1db5,tmp_campaigns));_0x260a37[_0x85b6('0x1a')](insertTzCmHopperBlack(_0x35d34f[_0x85b6('0x30')],_0x85b6('0xa7'),'campaigns',_0x85b6('0xa6')));_0x260a37[_0x85b6('0x1a')](insertCmHopperAdditionalPhones(_0x35d34f['ListId']));}else{_0x260a37['push'](insertCmHopper(_0x35d34f[_0x85b6('0x30')],'voice_queues_has_cm_lists',_0x85b6('0xa5'),'VoiceQueueId',_0xbc1db5));_0x260a37[_0x85b6('0x1a')](insertCmHopperBlack(_0x35d34f[_0x85b6('0x30')],_0x85b6('0xa4'),_0x85b6('0xa5'),_0x85b6('0xa3')));_0x260a37[_0x85b6('0x1a')](insertCmHopper(_0x35d34f[_0x85b6('0x30')],'campaigns_has_cm_lists',_0x85b6('0x67'),_0x85b6('0xa6'),_0xbc1db5));_0x260a37[_0x85b6('0x1a')](insertCmHopperBlack(_0x35d34f['ListId'],'campaigns_has_cm_blacklists',_0x85b6('0x67'),'CampaignId'));_0x260a37[_0x85b6('0x1a')](insertCmHopperAdditionalPhones(_0x35d34f[_0x85b6('0x30')]));}_0x260a37[_0x85b6('0x1a')](_0x85b6('0xa1')+tmp_campaigns+';');_0x260a37[_0x85b6('0x1a')](_0x85b6('0xa1')+tmp_voice_queues+';');BPromise[_0x85b6('0x9e')](_0x260a37,handleQuery)['then'](function(_0x1237f9){stats[_0x85b6('0xa8')]=!![];stats[_0x85b6('0xa9')]=_0x35d34f[_0x85b6('0x9a')]&&_0x35d34f[_0x85b6('0x9a')][_0x85b6('0x1c')]?results[0x2][_0x85b6('0xa9')]:results[0x0][_0x85b6('0xa9')];socket[_0x85b6('0x95')](_0x85b6('0x96')+_0x5b406a,stats);fs[_0x85b6('0xaa')](_0x2c6c06);fs[_0x85b6('0xaa')](_0x2767d0);process['exit'](0x0);})[_0x85b6('0x64')](function(_0x3d8e2c){logger[_0x85b6('0x5d')](_0x3d8e2c['message']);process[_0x85b6('0x5f')](0x1);});});});})[_0x85b6('0x64')](function(_0x17f312){logger[_0x85b6('0x5d')](_0x17f312[_0x85b6('0x5e')]);process[_0x85b6('0x5f')](0x1);});});});});}catch(_0x24f4b7){logger['error'](_0x85b6('0xab'),_0x24f4b7[_0x85b6('0x5e')]);process['exit'](0x1);}},'error':function(_0x148167,_0x49569f,_0x164a9f,_0x13de0e){throw new Error(_0x13de0e);}});});}function validate(){if(process[_0x85b6('0xac')]&&process[_0x85b6('0xac')][_0x85b6('0x1c')]<0x4){throw new Error(_0x85b6('0xad'));}var _0x122207=path[_0x85b6('0x11')](config[_0x85b6('0x78')],_0x85b6('0xae'),process[_0x85b6('0xac')][0x2]);if(!fs[_0x85b6('0xaf')](_0x122207)){throw new Error('file\x20doesn\x27t\x20exists');}var _0xc397e7={};try{_0xc397e7=JSON[_0x85b6('0x7f')](process[_0x85b6('0xac')][0x3]);if(!_0xc397e7['binding']){throw new Error(_0x85b6('0xb0'));}if(!_0xc397e7['binding'][_0x85b6('0x10')]){throw new Error(_0x85b6('0xb1'));}if(!_0xc397e7[_0x85b6('0x75')][_0x85b6('0x8f')]){throw new Error(_0x85b6('0xb2'));}var _0x2682d6=0x0;if(_0xc397e7[_0x85b6('0x75')][_0x85b6('0x33')]){_0x2682d6=0x1;}if(!_0xc397e7['ListId']){throw new Error('ListId\x20is\x20mandatory');}}catch(_0x59c3e6){throw new Error(_0x85b6('0xb3'));}var _0x342249=[];try{_0x342249=_['map'](JSON[_0x85b6('0x7f')](process[_0x85b6('0xac')][0x4]),'id');}catch(_0x1ba7d2){logger['info'](_0x85b6('0xb4'));}main(_0x122207,_0xc397e7,_0x342249,_0x2682d6);}validate();process['on']('SIGINT',handleStop);process['on'](_0x85b6('0xb5'),handleUncaughtException);