Built motion from commit 1fd437e9.|2.6.19
[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 _0x418a=['parse','createReadStream','data','rows','find','hasOwnProperty','trim','isValid','isNumber','agent\x20not\x20exists','email\x20wrong\x20format','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','replace','description','SystemRow','appendFileSync','emit','contact:import:','Abort\x20parser','abort','SystemError','step','duplicates','cm_contacts_','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','campaigns_','(id\x20int,dialTimezone\x20varchar(255),offset\x20int);','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','each','contactId','contactTypeId','orderBy','voice_queues','CampaignId','campaigns_has_cm_blacklists','VoiceQueueId','affectedRows','unlink','complete','argv','existsSync','binding\x20doesn\x27t\x20exists','firstName\x20is\x20mandatory','ListId\x20is\x20mandatory','body\x20id\x20mandatory','map','No\x20agent\x20available','SIGINT','path','bluebird','moment','ioredis','../../../mysqldb','../../../config/environment/shared','defaults','redis','localhost','socket.io-emitter','YYYY-MM-DD\x20HH:mm:ss','format','test','select','phone','from','join','.id\x20=\x20','where','.dialCheckDuplicateType\x20IN\x20(','CmContact','findAll','AdditionalPhones','then','length','push','all','split','isNil','CmContactHasItem','findOne','update','create','inserted','cm_contacts.phone','cm_contacts.ListId','cm_contacts.updatedAt','cm_contacts.priority','cm_contacts.UserId','into','cm_hopper','fromQuery','scheduledat','ContactId','ListId','createdAt','priority','UserId','cm_contacts','cm_contacts.ListId\x20=\x20','.CmListId\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','\x22always\x22','toString','cm_contacts.createdAt','insert','updatedAt','fields','.CmListId','field','\x20=\x20','date_add(cm_contacts.scheduledat,interval\x20','.offset-cm_contacts.utcOffset\x20minute)','cm_contacts.createdAt\x20=\x20?','\x22onlyIfOpen\x22','cm_hopper_black','ListId\x20=\x20?','cm_contact_has_items.OrderBy','cm_contact_has_items.createdAt','cm_contact_has_items.updatedAt','cm_hopper_additional_phones','OrderBy','cm_contacts.id\x20=\x20cm_hopper.ContactId','cm_contact_has_items','cm_contacts.id\x20=\x20cm_contact_has_items.CmContactId','concat','keys','CompanyId','scheduledAt',')\x20NOT\x20IN\x20?','deletedAt\x20IS\x20NULL','id\x20IN\x20?','MIN(id)','min_id','group','Received\x20SIGINT','error','message','exit','errors','code','info','spread','catch','campaigns.id','campaigns.dialTimezone','campaigns','campaigns_has_cm_lists','campaigns.id\x20=\x20campaigns_has_cm_lists.CampaignId','campaigns_has_cm_lists.CmListId=','sequelize','query','voice_queues.id','voice_queues_has_cm_lists','voice_queues.id\x20=\x20voice_queues_has_cm_lists.VoiceQueueId','voice_queues_has_cm_lists.CmListId=','timezones','dialTimezone','utcOffset','offset','set','main','stringify','send','binding','clone','socket_timestamp','root','server/files/tmp','.csv','includes','header','ContactItemType','name','_description'];(function(_0x5b8e1c,_0x480fc2){var _0x2b20ec=function(_0x5a4dca){while(--_0x5a4dca){_0x5b8e1c['push'](_0x5b8e1c['shift']());}};_0x2b20ec(++_0x480fc2);}(_0x418a,0xe3));var _0xa418=function(_0x248ca8,_0x23e66e){_0x248ca8=_0x248ca8-0x0;var _0x44006f=_0x418a[_0x248ca8];return _0x44006f;};'use strict';var fs=require('fs');var path=require(_0xa418('0x0'));var _=require('lodash');var Papa=require('papaparse');var util=require('util');var BPromise=require(_0xa418('0x1'));var moment=require(_0xa418('0x2'));var squel=require('squel');var Redis=require(_0xa418('0x3'));var db=require(_0xa418('0x4'))['db'];var config=require('../../../config/environment');var shared=require(_0xa418('0x5'));var logger=require('../../../config/logger')('import');config['redis']=_[_0xa418('0x6')](config[_0xa418('0x7')],{'host':_0xa418('0x8'),'port':0x18eb});var socket=require(_0xa418('0x9'))(new Redis(config[_0xa418('0x7')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var promisesAdditionalPhones=[];var orderBy=0x0;var stopped=![];var NOW=moment()['format'](_0xa418('0xa'));var contactItemTypes=[];var phoneDescriptions=[];var hasAdditionalPhones=![];var tmp_voice_queues;var tmp_campaigns;var tzOffset=0x0;var hasTZ;var NOW=moment()[_0xa418('0xb')](_0xa418('0xa'));function isEmail(_0x5bd389){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))*$/[_0xa418('0xc')](_0x5bd389);}function selectNotIn(_0x4e4b74,_0x47aa76,_0x4566ed,_0x335a23,_0x34d33b){return squel[_0xa418('0xd')]()['field'](_0xa418('0xe'))[_0xa418('0xf')](_0x335a23)[_0xa418('0x10')](_0x47aa76,null,_0x47aa76+_0xa418('0x11')+_0x335a23+'.'+_0x4566ed)[_0xa418('0x12')](_0x335a23+'.'+_0x4566ed+'\x20=\x20'+_0x4e4b74+'.'+_0x4566ed)[_0xa418('0x12')](_0x47aa76+_0xa418('0x13')+_0x34d33b['join']()+')');}function handleAdditionalPhones(){return new Promise(function(_0xcc6af7,_0x4eafa6){promisesAdditionalPhones=[];return db[_0xa418('0x14')][_0xa418('0x15')]({'raw':!![],'attributes':['id',_0xa418('0x16')],'where':{'createdAt':NOW,'AdditionalPhones':{'$ne':null}}})[_0xa418('0x17')](function(_0xfd3053){if(_0xfd3053!==null){var _0x133407=[];for(var _0x15e0ee=0x0;_0x15e0ee<_0xfd3053[_0xa418('0x18')];_0x15e0ee++){var _0x17743a=_0xfd3053[_0x15e0ee];_0x133407[_0xa418('0x19')](insertAdditionalPhones(_0x17743a));}}Promise[_0xa418('0x1a')](_0x133407)[_0xa418('0x17')](function(){_0xcc6af7({'val':0x1});});});});}function insertAdditionalPhones(_0x58b576){return new Promise(function(_0x2fa26e,_0x2968dc){var _0x2a8eaa=_0x58b576['AdditionalPhones'];var _0x362205=_0x2a8eaa[_0xa418('0x1b')](';');var _0x96e363=[];orderBy=0x0;for(var _0x25d250=0x0;_0x25d250<_0x362205[_0xa418('0x18')];_0x25d250++){_0x96e363[_0xa418('0x19')](splitAdditionalPhone(_0x58b576['id'],_0x362205[_0x25d250]));}Promise[_0xa418('0x1a')](_0x96e363)[_0xa418('0x17')](function(){_0x2fa26e({'val':_0x362205[_0xa418('0x18')]});});});}function splitAdditionalPhone(_0x111a43,_0x3fdb71){return new Promise(function(_0x1631d1,_0x143dd5){var _0x69ba12=_0x3fdb71[_0xa418('0x1b')](':');var _0x520517=_0x69ba12[0x0];var _0x4aaac5=_0x69ba12[0x1];if(!_[_0xa418('0x1c')](_0x4aaac5)){var _0xda197f=_0x4aaac5[_0xa418('0x1b')]('|');var _0x311b5e=[];for(var _0x8b54c4=0x0;_0x8b54c4<_0xda197f[_0xa418('0x18')];_0x8b54c4++){if(_0xda197f[_0x8b54c4]!==''){var _0x32af11=_['filter'](promisesAdditionalPhones,{'contactId':_0x111a43,'phone':_0xda197f[_0x8b54c4]});if(_0x32af11['length']==0x0){orderBy++;promisesAdditionalPhones[_0xa418('0x19')]({'contactId':_0x111a43,'contactTypeId':_0x520517,'phone':_0xda197f[_0x8b54c4],'orderBy':orderBy});}}}_0x1631d1({'ok':0x1});}else _0x1631d1({'res':0x0});});}function createAdditionalPhone(_0x47f746,_0x4ad532,_0x201721,_0x1d3dec){var _0x5e5950='';var _0x14706e='';var _0x4ec19c=_0x201721['split']('§');_0x5e5950=_0x4ec19c[0x0];if(_0x4ec19c[_0xa418('0x18')]==0x2)_0x14706e=_0x4ec19c[0x1];return new Promise(function(_0x4f7e80,_0x21a29f){return db[_0xa418('0x1d')][_0xa418('0x1e')]({'where':{'CmContactId':_0x47f746,'item':_0x5e5950}})[_0xa418('0x17')](function(_0x49a1e8){if(_0x49a1e8){return db[_0xa418('0x1d')][_0xa418('0x1f')]({'ItemTypeId':_0x4ad532,'description':_0x14706e,'OrderBy':_0x1d3dec},{'where':{'CmContactId':_0x47f746,'item':_0x5e5950}})[_0xa418('0x17')](function(_0x21cc8d){_0x4f7e80({'res':'updated'});});}else{return db[_0xa418('0x1d')][_0xa418('0x20')]({'CmContactId':_0x47f746,'item':_0x5e5950,'description':_0x14706e,'ItemTypeId':_0x4ad532,'OrderBy':_0x1d3dec,'ItemClass':'PHONE'})[_0xa418('0x17')](function(_0x4e6489){_0x4f7e80({'res':_0xa418('0x21')});});}});});}function insertCmHopper(_0x2372b6,_0x70acf3,_0x10e31d,_0x615ca2,_0x266009){var _0x4e9350=[_0xa418('0x22'),'cm_contacts.scheduledat','cm_contacts.id',_0xa418('0x23'),_0x70acf3+'.'+_0x615ca2,'cm_contacts.createdAt',_0xa418('0x24'),_0xa418('0x25'),_0xa418('0x26'),'\x22'+_0x266009+'\x22'];return squel['insert']()[_0xa418('0x27')](_0xa418('0x28'))[_0xa418('0x29')]([_0xa418('0xe'),_0xa418('0x2a'),_0xa418('0x2b'),_0xa418('0x2c'),_0x615ca2,_0xa418('0x2d'),'updatedAt',_0xa418('0x2e'),_0xa418('0x2f'),'recallme'],squel[_0xa418('0xd')]()['fields'](_0x4e9350)[_0xa418('0xf')](_0x70acf3)['join'](_0xa418('0x30'),null,_0xa418('0x31')+_0x70acf3+'.CmListId')['join'](_0x10e31d,null,_0x10e31d+_0xa418('0x11')+_0x70acf3+'.'+_0x615ca2)[_0xa418('0x12')](_0x70acf3+_0xa418('0x32'),_0x2372b6)[_0xa418('0x12')]('cm_contacts.createdAt\x20=\x20?',NOW)[_0xa418('0x12')](_0xa418('0x33'),selectNotIn(_0x70acf3,_0x10e31d,_0x615ca2,_0xa418('0x28'),[_0xa418('0x34'),'\x22onlyIfOpen\x22']))[_0xa418('0x12')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x70acf3,_0x10e31d,_0x615ca2,_0xa418('0x28'),[_0xa418('0x34')])))[_0xa418('0x35')]();}function insertCmHopperBlack(_0x171e61,_0x1159fb,_0x13e5e8,_0x20a6cf){var _0x507967=[_0xa418('0x22'),'cm_contacts.id',_0xa418('0x23'),_0x1159fb+'.'+_0x20a6cf,_0xa418('0x36'),_0xa418('0x24')];return squel[_0xa418('0x37')]()[_0xa418('0x27')]('cm_hopper_black')[_0xa418('0x29')]([_0xa418('0xe'),'ContactId',_0xa418('0x2c'),_0x20a6cf,'createdAt',_0xa418('0x38')],squel[_0xa418('0xd')]()[_0xa418('0x39')](_0x507967)[_0xa418('0xf')](_0x1159fb)['join'](_0xa418('0x30'),null,'cm_contacts.ListId\x20=\x20'+_0x1159fb+_0xa418('0x3a'))[_0xa418('0x10')](_0x13e5e8,null,_0x13e5e8+_0xa418('0x11')+_0x1159fb+'.'+_0x20a6cf)[_0xa418('0x12')](_0x1159fb+'.CmListId\x20=\x20?',_0x171e61)[_0xa418('0x12')]('cm_contacts.createdAt\x20=\x20?',NOW)[_0xa418('0x12')](_0xa418('0x33'),squel['select']()[_0xa418('0x3b')](_0xa418('0xe'))['from']('cm_hopper_black')[_0xa418('0x12')]('ListId\x20=\x20?',_0x171e61)['where'](_0x20a6cf+_0xa418('0x3c')+_0x1159fb+'.'+_0x20a6cf)))[_0xa418('0x35')]();}function insertTzCmHopper(_0x2c466b,_0x230935,_0x546d40,_0x336d10,_0xba317b,_0x5533ac){var _0x33bb55=[_0xa418('0x22'),_0xa418('0x3d')+_0x5533ac+_0xa418('0x3e'),'cm_contacts.id','cm_contacts.ListId',_0x230935+'.'+_0x336d10,'cm_contacts.createdAt',_0xa418('0x24'),'cm_contacts.priority','cm_contacts.UserId','\x22'+_0xba317b+'\x22'];var _0x3491fb=squel['insert']()[_0xa418('0x27')](_0xa418('0x28'))[_0xa418('0x29')]([_0xa418('0xe'),_0xa418('0x2a'),_0xa418('0x2b'),'ListId',_0x336d10,_0xa418('0x2d'),_0xa418('0x38'),'priority',_0xa418('0x2f'),'recallme'],squel[_0xa418('0xd')]()['fields'](_0x33bb55)[_0xa418('0xf')](_0x230935)['join'](_0xa418('0x30'),null,'cm_contacts.ListId\x20=\x20'+_0x230935+_0xa418('0x3a'))['join'](_0x546d40,null,_0x546d40+_0xa418('0x11')+_0x230935+'.'+_0x336d10)[_0xa418('0x10')](_0x5533ac,null,_0x5533ac+_0xa418('0x11')+_0x230935+'.'+_0x336d10)['where'](_0x230935+_0xa418('0x32'),_0x2c466b)[_0xa418('0x12')](_0xa418('0x3f'),NOW)['where']('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x230935,_0x546d40,_0x336d10,_0xa418('0x28'),['\x22always\x22',_0xa418('0x40')]))[_0xa418('0x12')](_0xa418('0x33'),selectNotIn(_0x230935,_0x546d40,_0x336d10,_0xa418('0x28'),[_0xa418('0x34')])))[_0xa418('0x35')]();return _0x3491fb;}function insertTzCmHopperBlack(_0x46e850,_0xef308e,_0xcd4449,_0x1bc38c){var _0x366825=['cm_contacts.phone','cm_contacts.id',_0xa418('0x23'),_0xef308e+'.'+_0x1bc38c,_0xa418('0x36'),'cm_contacts.updatedAt'];return squel[_0xa418('0x37')]()[_0xa418('0x27')](_0xa418('0x41'))[_0xa418('0x29')]([_0xa418('0xe'),_0xa418('0x2b'),_0xa418('0x2c'),_0x1bc38c,_0xa418('0x2d'),_0xa418('0x38')],squel[_0xa418('0xd')]()[_0xa418('0x39')](_0x366825)[_0xa418('0xf')](_0xef308e)[_0xa418('0x10')]('cm_contacts',null,_0xa418('0x31')+_0xef308e+_0xa418('0x3a'))[_0xa418('0x10')](_0xcd4449,null,_0xcd4449+_0xa418('0x11')+_0xef308e+'.'+_0x1bc38c)[_0xa418('0x12')](_0xef308e+'.CmListId\x20=\x20?',_0x46e850)[_0xa418('0x12')](_0xa418('0x3f'),NOW)[_0xa418('0x12')](_0xa418('0x33'),squel[_0xa418('0xd')]()['field'](_0xa418('0xe'))[_0xa418('0xf')](_0xa418('0x41'))[_0xa418('0x12')](_0xa418('0x42'),_0x46e850)[_0xa418('0x12')](_0x1bc38c+_0xa418('0x3c')+_0xef308e+'.'+_0x1bc38c)))['toString']();}function insertCmHopperAdditionalPhones(_0x2b9db9){var _0x1d2d89=['cm_hopper.id','cm_contact_has_items.item',_0xa418('0x43'),_0xa418('0x44'),_0xa418('0x45')];return squel[_0xa418('0x37')]()[_0xa418('0x27')](_0xa418('0x46'))[_0xa418('0x29')](['CmHopperId',_0xa418('0xe'),_0xa418('0x47'),'createdAt','updatedAt'],squel[_0xa418('0xd')]()[_0xa418('0x39')](_0x1d2d89)[_0xa418('0xf')](_0xa418('0x28'))[_0xa418('0x10')]('cm_contacts',null,_0xa418('0x48'))[_0xa418('0x10')](_0xa418('0x49'),null,_0xa418('0x4a'))[_0xa418('0x12')]('cm_hopper.ListId\x20=\x20?',_0x2b9db9)[_0xa418('0x12')](_0xa418('0x3f'),NOW))[_0xa418('0x35')]();}function insertCmContact(_0x53b27b,_0x1dcf3c,_0x7ce709,_0x1f2763){var _0x19bdf0=_[_0xa418('0x4b')](_[_0xa418('0x4c')](_0x1f2763),[_0xa418('0x2c'),_0xa418('0x4d'),_0xa418('0x2d'),_0xa418('0x38'),_0xa418('0x4e')]);return squel[_0xa418('0x37')]()[_0xa418('0x27')](_0xa418('0x30'))[_0xa418('0x29')](_0x19bdf0,squel['select']()[_0xa418('0x39')](_0x19bdf0)['from'](_0x1dcf3c)[_0xa418('0x12')]('('+_0x7ce709[_0xa418('0x10')](',')+_0xa418('0x4f'),squel[_0xa418('0xd')]()['fields'](_0x7ce709)[_0xa418('0xf')](_0xa418('0x30'))[_0xa418('0x12')](_0xa418('0x42'),_0x53b27b)[_0xa418('0x12')](_0xa418('0x50')))['where'](_0xa418('0x51'),squel[_0xa418('0xd')]()[_0xa418('0x3b')](_0xa418('0x52'),_0xa418('0x53'))[_0xa418('0xf')](_0x1dcf3c)[_0xa418('0x54')](_0x7ce709[_0xa418('0x10')](','))))[_0xa418('0x35')]();}function handleStop(){logger['info'](_0xa418('0x55'));stopped=!![];}function handleUncaughtException(_0x50c48f){logger[_0xa418('0x56')](_0x50c48f[_0xa418('0x57')]);process[_0xa418('0x58')](0x1);}function handleError(_0x533fbd,_0x474f47){stats[_0xa418('0x59')][_0xa418('0x19')]({'name':_0x474f47[_0xa418('0x5a')],'message':_0x474f47[_0xa418('0x57')],'row':_0x533fbd});}function handleQuery(_0x3dafc4){logger[_0xa418('0x5b')](_0x3dafc4);return db['sequelize']['query'](_0x3dafc4)[_0xa418('0x5c')](function(_0x1f9f0b){results[_0xa418('0x19')](_0x1f9f0b);})[_0xa418('0x5d')](function(_0x55cb70){logger[_0xa418('0x56')](_0x55cb70[_0xa418('0x57')]);});}function updateTzCampaigns(_0x103d37){return new Promise(function(_0x5d1955,_0x551db3){var _0x3bf8e5=squel[_0xa418('0xd')]()['fields']([_0xa418('0x5e'),_0xa418('0x5f')])[_0xa418('0xf')](_0xa418('0x60'))[_0xa418('0x10')](_0xa418('0x61'),null,_0xa418('0x62'))[_0xa418('0x12')](_0xa418('0x63')+_0x103d37);db[_0xa418('0x64')][_0xa418('0x65')](_0x3bf8e5[_0xa418('0x35')]())[_0xa418('0x5c')](function(_0x91328d){var _0x30e713=[];for(var _0x121087=0x0;_0x121087<_0x91328d[_0xa418('0x18')];_0x121087++){_0x30e713[_0xa418('0x19')](getTimezoneData(_0x91328d[_0x121087],tmp_campaigns));}BPromise[_0xa418('0x1a')](_0x30e713)['then'](function(){_0x5d1955({'val':0x1});});})[_0xa418('0x5d')](function(_0x416463){logger[_0xa418('0x56')](_0x416463[_0xa418('0x57')]);_0x5d1955({'val':0x0});});});}function updateTzVoiceQueues(_0x3ff0c8){return new Promise(function(_0x2808dd,_0x24f465){var _0x3c9b2a=squel['select']()[_0xa418('0x39')]([_0xa418('0x66'),'voice_queues.dialTimezone'])[_0xa418('0xf')]('voice_queues')['join'](_0xa418('0x67'),null,_0xa418('0x68'))['where'](_0xa418('0x69')+_0x3ff0c8);db['sequelize'][_0xa418('0x65')](_0x3c9b2a[_0xa418('0x35')]())['spread'](function(_0x4594a9){var _0x32eccc=[];for(var _0x350dc7=0x0;_0x350dc7<_0x4594a9[_0xa418('0x18')];_0x350dc7++){_0x32eccc['push'](getTimezoneData(_0x4594a9[_0x350dc7],tmp_voice_queues));}BPromise[_0xa418('0x1a')](_0x32eccc)[_0xa418('0x17')](function(){_0x2808dd({'val':0x1});});})[_0xa418('0x5d')](function(_0xd28613){logger[_0xa418('0x56')](_0xd28613[_0xa418('0x57')]);_0x2808dd({'val':0x0});});});}function getTimezoneData(_0x3d0d71,_0x2a98db){return new Promise(function(_0x5d8fa7,_0xe39061){var _0x24e362=shared[_0xa418('0x6a')];var _0x5aec42=_0x24e362[_0x3d0d71[_0xa418('0x6b')]];if(_[_0xa418('0x1c')](_0x5aec42)){_0x5d8fa7({'ret':0x1});}else{var _0x539106=_0x5aec42[_0xa418('0x6c')];var _0x299be0=squel[_0xa418('0x37')]()[_0xa418('0x27')](_0x2a98db)['set']('id',_0x3d0d71['id'])['set'](_0xa418('0x6d'),_0x539106)[_0xa418('0x6e')](_0xa418('0x6b'),_0x3d0d71['dialTimezone'])[_0xa418('0x35')]();return db['sequelize']['query'](_0x299be0)['spread'](function(_0x44ae9b){_0x5d8fa7({'ret':0x1});})['catch'](function(_0x364831){logger[_0xa418('0x56')](_0x364831[_0xa418('0x57')]);_0xe39061({'ret':0x1});});}});}function handleTZQuery(_0x521dc9){logger[_0xa418('0x5b')](_0x521dc9);return db['sequelize'][_0xa418('0x65')](_0x521dc9)[_0xa418('0x5c')](function(_0x3cdb55){})[_0xa418('0x5d')](function(_0x2eb677){logger['error'](_0x2eb677[_0xa418('0x57')]);});}function main(_0x523e5b,_0x37c8fc,_0x49b0c9,_0x38a0b1){logger[_0xa418('0x5b')](_0xa418('0x6f'),_0x523e5b,JSON[_0xa418('0x70')](_0x37c8fc));process[_0xa418('0x71')]('start');var _0x35462b=_0x37c8fc[_0xa418('0x72')];var _0x37afdd=_[_0xa418('0x73')](_0x35462b);var _0x1c0d64=_0x37c8fc[_0xa418('0x74')];var _0x46099c=path['join'](config[_0xa418('0x75')],_0xa418('0x76'),_0x1c0d64+_0xa418('0x77'));hasTZ=_[_0xa418('0x4c')](_0x35462b)[_0xa418('0x78')]('dialTimezone');var _0x56223a=_[_0xa418('0x4c')](_0x35462b)[_0xa418('0x10')]();logger['info'](_0xa418('0x79'),_0x56223a);db[_0xa418('0x7a')][_0xa418('0x15')]({'raw':!![],'attributes':['id',_0xa418('0x7b')]})[_0xa418('0x17')](function(_0x4a694e){for(var _0x1a4323=0x0;_0x1a4323<_0x4a694e[_0xa418('0x18')];_0x1a4323++){if(_0x4a694e[_0x1a4323][_0xa418('0x7b')]in _0x35462b){contactItemTypes['push'](_0x4a694e[_0x1a4323]);delete _0x37afdd[_0x4a694e[_0x1a4323][_0xa418('0x7b')]];hasAdditionalPhones=!![];}for(var _0x4326ad in _0x35462b){if(_0x4a694e[_0x1a4323][_0xa418('0x7b')]+_0xa418('0x7c')===_0x4326ad){phoneDescriptions[_0xa418('0x19')]({'itemTypeId':_0x4a694e[_0x1a4323]['id'],'description':_0x4326ad});delete _0x37afdd[_0x4326ad];}}}if(hasAdditionalPhones)_0x37afdd[_0xa418('0x16')]='';var _0x59a0d5=_[_0xa418('0x4c')](_0x37afdd)[_0xa418('0x10')]();logger[_0xa418('0x5b')]('header',_0x59a0d5);fs['writeFileSync'](_0x46099c,_0x59a0d5+'\x0a');Papa[_0xa418('0x7d')](fs[_0xa418('0x7e')](_0x523e5b),{'header':!![],'skipEmptyLines':!![],'step':function(_0x63309d,_0x31a0de){try{for(var _0x31aae4=0x0,_0x2e651f=[];_0x31aae4<_0x63309d[_0xa418('0x7f')][_0xa418('0x18')];_0x31aae4++){stats[_0xa418('0x80')]+=0x1;if(_0x63309d[_0xa418('0x59')][_0x31aae4]){handleError(_0x63309d[_0xa418('0x7f')][_0x31aae4],_0x63309d[_0xa418('0x59')][_0x31aae4]);}else{var _0x36925f=[];var _0x21d204=[];var _0x4d3ff0={};for(var _0x439676 in _0x35462b){let _0x42068a=contactItemTypes[_0xa418('0x81')](_0x5c8766=>_0x5c8766[_0xa418('0x7b')]===_0x439676);let _0x3d087e=contactItemTypes[_0xa418('0x81')](_0x4f45a9=>_0x4f45a9['name']+_0xa418('0x7c')===_0x439676);if(_['isNil'](_0x42068a)&&_[_0xa418('0x1c')](_0x3d087e)){if(_0x35462b[_0xa418('0x82')](_0x439676)){if(_0x63309d['data'][_0x31aae4][_0x35462b[_0x439676]]){var _0x46e7d8=_[_0xa418('0x83')](_0x63309d['data'][_0x31aae4][_0x35462b[_0x439676]]['replace'](/"/g,'\x27'));switch(_0x439676){case _0xa418('0x2a'):var _0x38efd8=moment(_0x46e7d8,_0xa418('0xa'),!![]);if(_0x38efd8[_0xa418('0x84')]()){_0x2e651f[_0xa418('0x19')]('\x22'+_0x46e7d8+'\x22');}else{_0x36925f[_0xa418('0x19')]('scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)');}break;case _0xa418('0x2e'):var _0x2a9c42=parseInt(_0x46e7d8);_0x46e7d8=_['isNaN'](_0x2a9c42)||_0x2a9c42<0x0||_0x2a9c42>0x4?_0x38a0b1?0x3:0x2:_0x2a9c42;_0x2e651f[_0xa418('0x19')]('\x22'+_0x46e7d8+'\x22');break;case _0xa418('0x2f'):var _0x297670=parseInt(_0x46e7d8);if(_[_0xa418('0x85')](_0x297670)&&_[_0xa418('0x78')](_0x49b0c9,_0x297670)){_0x2e651f[_0xa418('0x19')]('\x22'+_0x297670+'\x22');}else{_0x36925f['push'](_0xa418('0x86'));}break;case'email':if(isEmail(_0x46e7d8)){_0x2e651f[_0xa418('0x19')]('\x22'+_0x46e7d8+'\x22');}else{_0x36925f[_0xa418('0x19')](_0xa418('0x87'));}break;case'dateOfBirth':var _0x5fadfd=moment(_0x46e7d8,'YYYY-MM-DD',!![]);if(_0x5fadfd['isValid']()){_0x2e651f[_0xa418('0x19')]('\x22'+_0x46e7d8+'\x22');}else{_0x36925f[_0xa418('0x19')](_0xa418('0x88'));}break;case _0xa418('0x6b'):var _0x409c61=shared[_0xa418('0x6a')];var _0x3448ca=_0x409c61[_0x46e7d8];if(!_[_0xa418('0x1c')](_0x3448ca)){var _0x41dde2=_0x3448ca[_0xa418('0x6c')];_0x2e651f[_0xa418('0x19')]('\x22'+_0x46e7d8+'\x22');_0x2e651f[_0xa418('0x19')]('\x22'+_0x41dde2+'\x22');}break;default:_0x2e651f[_0xa418('0x19')]('\x22'+_0x46e7d8+'\x22');}}else{switch(_0x439676){case'firstName':case _0xa418('0xe'):_0x36925f[_0xa418('0x19')](_0x439676+'\x20not\x20specified');break;default:_0x2e651f[_0xa418('0x19')]('\x22\x22');}}}}else{var _0xa3f8e6='';if(!_['isNil'](_0x42068a)){if(!_0x4d3ff0['hasOwnProperty'](_0x42068a['id'])){if(!_[_0xa418('0x1c')](_0x63309d[_0xa418('0x7f')][_0x31aae4][_0x35462b[_0x439676]])){var _0x46e7d8=_[_0xa418('0x83')](_0x63309d['data'][_0x31aae4][_0x35462b[_0x439676]][_0xa418('0x89')](/"/g,'\x27'));var _0x3de598=phoneDescriptions[_0xa418('0x81')](_0x17cbe4=>_0x17cbe4['itemTypeId']===_0x42068a['id']);if(!_[_0xa418('0x1c')](_0x3de598)){var _0x4cdff1=_[_0xa418('0x83')](_0x63309d[_0xa418('0x7f')][_0x31aae4][_0x35462b[_0x3de598[_0xa418('0x8a')]]][_0xa418('0x89')](/"/g,'\x27'));if(!_[_0xa418('0x1c')](_0x4cdff1))_0x46e7d8=_0x46e7d8+'§'+_0x4cdff1;}if(_0xa3f8e6=='')_0xa3f8e6=_0x46e7d8;else _0xa3f8e6+='|'+_0x46e7d8;}_0x21d204[_0xa418('0x19')](_0x42068a['id']+':'+_0xa3f8e6);_0x4d3ff0[_0x42068a['id']]=0x1;}}}}if(hasAdditionalPhones){_0x2e651f[_0xa418('0x19')]('\x22'+_0x21d204[_0xa418('0x10')](';')+'\x22');}if(_0x36925f[_0xa418('0x18')]){handleError(_0x63309d[_0xa418('0x7f')][_0x31aae4],{'code':_0xa418('0x8b'),'message':_0x36925f[_0xa418('0x10')]()});}else{fs[_0xa418('0x8c')](_0x46099c,_0x2e651f[_0xa418('0x10')]()+'\x0a');}_0x2e651f=[];}if(!(stats[_0xa418('0x80')]%0xc8)){socket[_0xa418('0x8d')](_0xa418('0x8e')+_0x1c0d64,stats);stats[_0xa418('0x59')]=[];}}if(stopped){logger['info'](_0xa418('0x8f'));_0x31a0de[_0xa418('0x90')]();}}catch(_0x33d7e6){handleError(_0x63309d['data'][_0x31aae4],{'code':_0xa418('0x91'),'message':_0x33d7e6[_0xa418('0x57')]});logger[_0xa418('0x56')](_0xa418('0x92'),_0x33d7e6[_0xa418('0x57')]);}},'complete':function(){try{var _0x362a80=[];var _0x133c63=[];var _0x4a7234=_0xa418('0x30');if(_0x37c8fc[_0xa418('0x93')]&&_0x37c8fc[_0xa418('0x93')][_0xa418('0x18')]){_0x4a7234=_0xa418('0x94')+_0x1c0d64;_0x362a80[_0xa418('0x19')](_0xa418('0x95')+_0x4a7234+_0xa418('0x96'));}tmp_campaigns=_0xa418('0x97')+_0x1c0d64;tmp_voice_queues='voice_queues_'+_0x1c0d64;_0x133c63['push'](_0xa418('0x95')+tmp_campaigns+'(id\x20int,dialTimezone\x20varchar(255),offset\x20int);');_0x133c63['push']('CREATE\x20TABLE\x20'+tmp_voice_queues+_0xa418('0x98'));BPromise['each'](_0x133c63,handleTZQuery)['then'](function(_0x24cc17){updateTzCampaigns(_0x37c8fc[_0xa418('0x2c')])[_0xa418('0x17')](function(_0x4d073f){updateTzVoiceQueues(_0x37c8fc[_0xa418('0x2c')])[_0xa418('0x17')](function(_0x2a3994){if(hasTZ)_0x59a0d5=_0x59a0d5[_0xa418('0x89')](_0xa418('0x6b'),_0xa418('0x99'));var _0x2edef5=util[_0xa418('0xb')](_0xa418('0x9a'),_0x46099c,_0x4a7234,_0x59a0d5,_0x37c8fc[_0xa418('0x2c')],_0x37c8fc['CompanyId']||null,NOW,NOW);if(_[_0xa418('0x1c')](_0x35462b['scheduledat'])){_0x2edef5+=',\x20scheduledAt\x20=\x20NOW()';}_0x362a80[_0xa418('0x19')](_0x2edef5);if(_0x37c8fc['duplicates']&&_0x37c8fc[_0xa418('0x93')][_0xa418('0x18')]){_0x362a80[_0xa418('0x19')](insertCmContact(_0x37c8fc['ListId'],_0x4a7234,_0x37c8fc[_0xa418('0x93')],_0x35462b));_0x362a80[_0xa418('0x19')](_0xa418('0x9b')+_0x4a7234+';');}BPromise[_0xa418('0x9c')](_0x362a80,handleQuery)[_0xa418('0x17')](function(_0x118fcb){BPromise[_0xa418('0x1a')]([handleAdditionalPhones()])[_0xa418('0x17')](function(){_0x362a80=[];for(var _0x37c317=0x0;_0x37c317<promisesAdditionalPhones[_0xa418('0x18')];_0x37c317++){if(promisesAdditionalPhones[_0x37c317][_0xa418('0xe')]!='§'){_0x362a80['push'](createAdditionalPhone(promisesAdditionalPhones[_0x37c317][_0xa418('0x9d')],promisesAdditionalPhones[_0x37c317][_0xa418('0x9e')],promisesAdditionalPhones[_0x37c317][_0xa418('0xe')],promisesAdditionalPhones[_0x37c317][_0xa418('0x9f')]));}}BPromise[_0xa418('0x1a')](_0x362a80)[_0xa418('0x17')](function(){_0x362a80=[];if(hasTZ){_0x362a80[_0xa418('0x19')](insertTzCmHopper(_0x37c8fc[_0xa418('0x2c')],_0xa418('0x67'),_0xa418('0xa0'),'VoiceQueueId',_0x38a0b1,tmp_voice_queues));_0x362a80[_0xa418('0x19')](insertTzCmHopperBlack(_0x37c8fc[_0xa418('0x2c')],'voice_queues_has_cm_blacklists',_0xa418('0xa0'),'VoiceQueueId'));_0x362a80[_0xa418('0x19')](insertTzCmHopper(_0x37c8fc[_0xa418('0x2c')],_0xa418('0x61'),'campaigns',_0xa418('0xa1'),_0x38a0b1,tmp_campaigns));_0x362a80['push'](insertTzCmHopperBlack(_0x37c8fc['ListId'],_0xa418('0xa2'),'campaigns',_0xa418('0xa1')));_0x362a80[_0xa418('0x19')](insertCmHopperAdditionalPhones(_0x37c8fc[_0xa418('0x2c')]));}else{_0x362a80['push'](insertCmHopper(_0x37c8fc[_0xa418('0x2c')],'voice_queues_has_cm_lists',_0xa418('0xa0'),_0xa418('0xa3'),_0x38a0b1));_0x362a80['push'](insertCmHopperBlack(_0x37c8fc[_0xa418('0x2c')],'voice_queues_has_cm_blacklists',_0xa418('0xa0'),'VoiceQueueId'));_0x362a80[_0xa418('0x19')](insertCmHopper(_0x37c8fc[_0xa418('0x2c')],_0xa418('0x61'),_0xa418('0x60'),_0xa418('0xa1'),_0x38a0b1));_0x362a80[_0xa418('0x19')](insertCmHopperBlack(_0x37c8fc[_0xa418('0x2c')],_0xa418('0xa2'),_0xa418('0x60'),_0xa418('0xa1')));_0x362a80[_0xa418('0x19')](insertCmHopperAdditionalPhones(_0x37c8fc[_0xa418('0x2c')]));}_0x362a80[_0xa418('0x19')](_0xa418('0x9b')+tmp_campaigns+';');_0x362a80[_0xa418('0x19')]('DROP\x20TABLE\x20'+tmp_voice_queues+';');BPromise[_0xa418('0x9c')](_0x362a80,handleQuery)[_0xa418('0x17')](function(_0x5eaf74){stats['finish']=!![];stats[_0xa418('0xa4')]=_0x37c8fc[_0xa418('0x93')]&&_0x37c8fc[_0xa418('0x93')][_0xa418('0x18')]?results[0x2][_0xa418('0xa4')]:results[0x0]['affectedRows'];socket[_0xa418('0x8d')]('contact:import:'+_0x1c0d64,stats);fs[_0xa418('0xa5')](_0x523e5b);fs[_0xa418('0xa5')](_0x46099c);process[_0xa418('0x58')](0x0);})[_0xa418('0x5d')](function(_0x2337b8){logger[_0xa418('0x56')](_0x2337b8[_0xa418('0x57')]);process[_0xa418('0x58')](0x1);});});});})[_0xa418('0x5d')](function(_0x26ba7e){logger[_0xa418('0x56')](_0x26ba7e[_0xa418('0x57')]);process[_0xa418('0x58')](0x1);});});});});}catch(_0x282882){logger[_0xa418('0x56')](_0xa418('0xa6'),_0x282882[_0xa418('0x57')]);process['exit'](0x1);}},'error':function(_0x52aaec,_0x117d00,_0x4b4a7e,_0x405605){throw new Error(_0x405605);}});});}function validate(){if(process[_0xa418('0xa7')]&&process['argv'][_0xa418('0x18')]<0x4){throw new Error('arguments\x20<filename>\x20<parameters>\x20<agents>');}var _0x38b30e=path[_0xa418('0x10')](config['root'],_0xa418('0x76'),process['argv'][0x2]);if(!fs[_0xa418('0xa8')](_0x38b30e)){throw new Error('file\x20doesn\x27t\x20exists');}var _0x3c7edc={};try{_0x3c7edc=JSON[_0xa418('0x7d')](process[_0xa418('0xa7')][0x3]);if(!_0x3c7edc['binding']){throw new Error(_0xa418('0xa9'));}if(!_0x3c7edc['binding'][_0xa418('0xe')]){throw new Error('phone\x20is\x20mandatory');}if(!_0x3c7edc[_0xa418('0x72')]['firstName']){throw new Error(_0xa418('0xaa'));}var _0x4c95db=0x0;if(_0x3c7edc[_0xa418('0x72')][_0xa418('0x2f')]){_0x4c95db=0x1;}if(!_0x3c7edc['ListId']){throw new Error(_0xa418('0xab'));}}catch(_0x2cc5d1){throw new Error(_0xa418('0xac'));}var _0xf2e236=[];try{_0xf2e236=_[_0xa418('0xad')](JSON[_0xa418('0x7d')](process['argv'][0x4]),'id');}catch(_0x350fda){logger['info'](_0xa418('0xae'));}main(_0x38b30e,_0x3c7edc,_0xf2e236,_0x4c95db);}validate();process['on'](_0xa418('0xaf'),handleStop);process['on']('uncaughtException',handleUncaughtException);