566abef0ce9f7f5ceaf04dd305e9c9bd8100c0a4
[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 _0x6467=['length','isNil','filter','CmContactHasItem','update','updated','create','PHONE','inserted','cm_contacts.scheduledat','cm_contacts.id','cm_contacts.ListId','cm_contacts.createdAt','cm_contacts.priority','cm_contacts.UserId','into','cm_hopper','fromQuery','scheduledat','ContactId','createdAt','updatedAt','priority','UserId','recallme','fields','cm_contacts','cm_contacts.ListId\x20=\x20','.CmListId','.CmListId\x20=\x20?','cm_contacts.createdAt\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','\x22always\x22','\x22onlyIfOpen\x22','cm_contacts.phone','cm_contacts.updatedAt','insert','cm_hopper_black','ListId\x20=\x20?','toString','date_add(cm_contacts.scheduledat,interval\x20','.offset-cm_contacts.utcOffset\x20minute)','ListId','cm_hopper.id','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','cm_hopper.ListId\x20=\x20?','concat','scheduledAt',')\x20NOT\x20IN\x20?','deletedAt\x20IS\x20NULL','id\x20IN\x20?','MIN(id)','group','info','error','errors','code','message','query','campaigns.id','campaigns_has_cm_lists','campaigns.id\x20=\x20campaigns_has_cm_lists.CampaignId','sequelize','spread','catch','voice_queues','voice_queues_has_cm_lists','voice_queues.id\x20=\x20voice_queues_has_cm_lists.VoiceQueueId','voice_queues_has_cm_lists.CmListId=','timezones','dialTimezone','set','offset','stringify','send','start','clone','socket_timestamp','root','server/files/tmp','.csv','keys','header','ContactItemType','name','_description','writeFileSync','parse','createReadStream','data','rows','find','hasOwnProperty','trim','YYYY-MM-DD\x20HH:mm:ss','isValid','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNaN','isNumber','agent\x20not\x20exists','email','email\x20wrong\x20format','dateOfBirth','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','utcOffset','firstName','description','replace','appendFileSync','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','format','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','CompanyId','DROP\x20TABLE\x20','contactId','orderBy','VoiceQueueId','campaigns','CampaignId','campaigns_has_cm_blacklists','finish','affectedRows','emit','unlink','exit','complete','argv','existsSync','binding','firstName\x20is\x20mandatory','ListId\x20is\x20mandatory','body\x20id\x20mandatory','map','No\x20agent\x20available','SIGINT','uncaughtException','path','lodash','papaparse','util','moment','ioredis','../../../mysqldb','../../../config/environment','../../../config/environment/shared','../../../config/logger','import','redis','defaults','localhost','test','select','field','phone','from','join','.id\x20=\x20','where','\x20=\x20','.dialCheckDuplicateType\x20IN\x20(','CmContact','findAll','AdditionalPhones','then','push','all','split'];(function(_0x4e673e,_0x3413b8){var _0x837f41=function(_0x1f06b9){while(--_0x1f06b9){_0x4e673e['push'](_0x4e673e['shift']());}};_0x837f41(++_0x3413b8);}(_0x6467,0x9b));var _0x7646=function(_0x1662c7,_0x1b1989){_0x1662c7=_0x1662c7-0x0;var _0x845dbb=_0x6467[_0x1662c7];return _0x845dbb;};'use strict';var fs=require('fs');var path=require(_0x7646('0x0'));var _=require(_0x7646('0x1'));var Papa=require(_0x7646('0x2'));var util=require(_0x7646('0x3'));var BPromise=require('bluebird');var moment=require(_0x7646('0x4'));var squel=require('squel');var Redis=require(_0x7646('0x5'));var db=require(_0x7646('0x6'))['db'];var config=require(_0x7646('0x7'));var shared=require(_0x7646('0x8'));var logger=require(_0x7646('0x9'))(_0x7646('0xa'));config[_0x7646('0xb')]=_[_0x7646('0xc')](config['redis'],{'host':_0x7646('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x7646('0xb')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var promisesAdditionalPhones=[];var orderBy=0x0;var stopped=![];var NOW=moment()['format']('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']('YYYY-MM-DD\x20HH:mm:ss');function isEmail(_0x5204c8){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))*$/[_0x7646('0xe')](_0x5204c8);}function selectNotIn(_0x1d2e37,_0x442cbb,_0x8a9e46,_0x512f18,_0x4d759d){return squel[_0x7646('0xf')]()[_0x7646('0x10')](_0x7646('0x11'))[_0x7646('0x12')](_0x512f18)[_0x7646('0x13')](_0x442cbb,null,_0x442cbb+_0x7646('0x14')+_0x512f18+'.'+_0x8a9e46)[_0x7646('0x15')](_0x512f18+'.'+_0x8a9e46+_0x7646('0x16')+_0x1d2e37+'.'+_0x8a9e46)[_0x7646('0x15')](_0x442cbb+_0x7646('0x17')+_0x4d759d[_0x7646('0x13')]()+')');}function handleAdditionalPhones(){return new Promise(function(_0x4e63e1,_0x41dca5){promisesAdditionalPhones=[];return db[_0x7646('0x18')][_0x7646('0x19')]({'raw':!![],'attributes':['id',_0x7646('0x1a')],'where':{'createdAt':NOW,'AdditionalPhones':{'$ne':null}}})[_0x7646('0x1b')](function(_0x50707a){if(_0x50707a!==null){var _0x3a7039=[];for(var _0x260c09=0x0;_0x260c09<_0x50707a['length'];_0x260c09++){var _0x3ab94c=_0x50707a[_0x260c09];_0x3a7039[_0x7646('0x1c')](insertAdditionalPhones(_0x3ab94c));}}Promise[_0x7646('0x1d')](_0x3a7039)[_0x7646('0x1b')](function(){_0x4e63e1({'val':0x1});});});});}function insertAdditionalPhones(_0x408a4e){return new Promise(function(_0x19b0c5,_0x52178d){var _0x3358fb=_0x408a4e[_0x7646('0x1a')];var _0x34dbef=_0x3358fb[_0x7646('0x1e')](';');var _0x2697ec=[];orderBy=0x0;for(var _0x2fbf3c=0x0;_0x2fbf3c<_0x34dbef[_0x7646('0x1f')];_0x2fbf3c++){_0x2697ec[_0x7646('0x1c')](splitAdditionalPhone(_0x408a4e['id'],_0x34dbef[_0x2fbf3c]));}Promise[_0x7646('0x1d')](_0x2697ec)[_0x7646('0x1b')](function(){_0x19b0c5({'val':_0x34dbef[_0x7646('0x1f')]});});});}function splitAdditionalPhone(_0x39d4d8,_0x4fa30d){return new Promise(function(_0x2b5d72,_0x4903f0){var _0x45d0b8=_0x4fa30d[_0x7646('0x1e')](':');var _0x3197b=_0x45d0b8[0x0];var _0x570d11=_0x45d0b8[0x1];if(!_[_0x7646('0x20')](_0x570d11)){var _0x16d26d=_0x570d11[_0x7646('0x1e')]('|');var _0x4b4d03=[];for(var _0x8e6caa=0x0;_0x8e6caa<_0x16d26d[_0x7646('0x1f')];_0x8e6caa++){if(_0x16d26d[_0x8e6caa]!==''){var _0x1b2608=_[_0x7646('0x21')](promisesAdditionalPhones,{'contactId':_0x39d4d8,'phone':_0x16d26d[_0x8e6caa]});if(_0x1b2608['length']==0x0){orderBy++;promisesAdditionalPhones[_0x7646('0x1c')]({'contactId':_0x39d4d8,'contactTypeId':_0x3197b,'phone':_0x16d26d[_0x8e6caa],'orderBy':orderBy});}}}_0x2b5d72({'ok':0x1});}else _0x2b5d72({'res':0x0});});}function createAdditionalPhone(_0x4d03e2,_0x37b123,_0x5765e6,_0x3c2b75){var _0x467652='';var _0x335866='';var _0x10846c=_0x5765e6['split']('§');_0x467652=_0x10846c[0x0];if(_0x10846c['length']==0x2)_0x335866=_0x10846c[0x1];return new Promise(function(_0x44b3fc,_0x35eba9){return db[_0x7646('0x22')]['findOne']({'where':{'CmContactId':_0x4d03e2,'item':_0x467652}})[_0x7646('0x1b')](function(_0x1cd1b6){if(_0x1cd1b6){return db[_0x7646('0x22')][_0x7646('0x23')]({'ItemTypeId':_0x37b123,'description':_0x335866,'OrderBy':_0x3c2b75},{'where':{'CmContactId':_0x4d03e2,'item':_0x467652}})[_0x7646('0x1b')](function(_0x56bcd3){_0x44b3fc({'res':_0x7646('0x24')});});}else{return db['CmContactHasItem'][_0x7646('0x25')]({'CmContactId':_0x4d03e2,'item':_0x467652,'description':_0x335866,'ItemTypeId':_0x37b123,'OrderBy':_0x3c2b75,'ItemClass':_0x7646('0x26')})[_0x7646('0x1b')](function(_0x453b8f){_0x44b3fc({'res':_0x7646('0x27')});});}});});}function insertCmHopper(_0x180631,_0x4eb8c2,_0x110021,_0xd236e2,_0x30e025){var _0x52eaf9=['cm_contacts.phone',_0x7646('0x28'),_0x7646('0x29'),_0x7646('0x2a'),_0x4eb8c2+'.'+_0xd236e2,_0x7646('0x2b'),'cm_contacts.updatedAt',_0x7646('0x2c'),_0x7646('0x2d'),'\x22'+_0x30e025+'\x22'];return squel['insert']()[_0x7646('0x2e')](_0x7646('0x2f'))[_0x7646('0x30')]([_0x7646('0x11'),_0x7646('0x31'),_0x7646('0x32'),'ListId',_0xd236e2,_0x7646('0x33'),_0x7646('0x34'),_0x7646('0x35'),_0x7646('0x36'),_0x7646('0x37')],squel[_0x7646('0xf')]()[_0x7646('0x38')](_0x52eaf9)['from'](_0x4eb8c2)[_0x7646('0x13')](_0x7646('0x39'),null,_0x7646('0x3a')+_0x4eb8c2+_0x7646('0x3b'))[_0x7646('0x13')](_0x110021,null,_0x110021+'.id\x20=\x20'+_0x4eb8c2+'.'+_0xd236e2)[_0x7646('0x15')](_0x4eb8c2+_0x7646('0x3c'),_0x180631)[_0x7646('0x15')](_0x7646('0x3d'),NOW)[_0x7646('0x15')](_0x7646('0x3e'),selectNotIn(_0x4eb8c2,_0x110021,_0xd236e2,'cm_hopper',[_0x7646('0x3f'),_0x7646('0x40')]))['where'](_0x7646('0x3e'),selectNotIn(_0x4eb8c2,_0x110021,_0xd236e2,_0x7646('0x2f'),[_0x7646('0x3f')])))['toString']();}function insertCmHopperBlack(_0x283ad1,_0x57833c,_0x119b53,_0xeb7273){var _0x4c54d3=[_0x7646('0x41'),_0x7646('0x29'),_0x7646('0x2a'),_0x57833c+'.'+_0xeb7273,_0x7646('0x2b'),_0x7646('0x42')];return squel[_0x7646('0x43')]()[_0x7646('0x2e')](_0x7646('0x44'))['fromQuery']([_0x7646('0x11'),_0x7646('0x32'),'ListId',_0xeb7273,_0x7646('0x33'),'updatedAt'],squel['select']()[_0x7646('0x38')](_0x4c54d3)[_0x7646('0x12')](_0x57833c)['join'](_0x7646('0x39'),null,_0x7646('0x3a')+_0x57833c+_0x7646('0x3b'))[_0x7646('0x13')](_0x119b53,null,_0x119b53+_0x7646('0x14')+_0x57833c+'.'+_0xeb7273)[_0x7646('0x15')](_0x57833c+_0x7646('0x3c'),_0x283ad1)[_0x7646('0x15')](_0x7646('0x3d'),NOW)[_0x7646('0x15')](_0x7646('0x3e'),squel[_0x7646('0xf')]()[_0x7646('0x10')](_0x7646('0x11'))['from'](_0x7646('0x44'))[_0x7646('0x15')](_0x7646('0x45'),_0x283ad1)['where'](_0xeb7273+_0x7646('0x16')+_0x57833c+'.'+_0xeb7273)))[_0x7646('0x46')]();}function insertTzCmHopper(_0x7e9d9c,_0x5d03a0,_0x4e9f5a,_0x1639c8,_0x59411c,_0xc7d46){var _0x560347=[_0x7646('0x41'),_0x7646('0x47')+_0xc7d46+_0x7646('0x48'),_0x7646('0x29'),_0x7646('0x2a'),_0x5d03a0+'.'+_0x1639c8,'cm_contacts.createdAt',_0x7646('0x42'),'cm_contacts.priority',_0x7646('0x2d'),'\x22'+_0x59411c+'\x22'];var _0x5d0654=squel[_0x7646('0x43')]()[_0x7646('0x2e')]('cm_hopper')['fromQuery']([_0x7646('0x11'),'scheduledat',_0x7646('0x32'),_0x7646('0x49'),_0x1639c8,_0x7646('0x33'),_0x7646('0x34'),_0x7646('0x35'),_0x7646('0x36'),_0x7646('0x37')],squel[_0x7646('0xf')]()[_0x7646('0x38')](_0x560347)[_0x7646('0x12')](_0x5d03a0)['join']('cm_contacts',null,_0x7646('0x3a')+_0x5d03a0+'.CmListId')[_0x7646('0x13')](_0x4e9f5a,null,_0x4e9f5a+_0x7646('0x14')+_0x5d03a0+'.'+_0x1639c8)[_0x7646('0x13')](_0xc7d46,null,_0xc7d46+'.id\x20=\x20'+_0x5d03a0+'.'+_0x1639c8)['where'](_0x5d03a0+_0x7646('0x3c'),_0x7e9d9c)[_0x7646('0x15')](_0x7646('0x3d'),NOW)[_0x7646('0x15')](_0x7646('0x3e'),selectNotIn(_0x5d03a0,_0x4e9f5a,_0x1639c8,'cm_hopper',['\x22always\x22',_0x7646('0x40')]))[_0x7646('0x15')](_0x7646('0x3e'),selectNotIn(_0x5d03a0,_0x4e9f5a,_0x1639c8,_0x7646('0x2f'),[_0x7646('0x3f')])))['toString']();return _0x5d0654;}function insertTzCmHopperBlack(_0x113435,_0x4d1644,_0x3e2d5c,_0x40e522){var _0x1a1cb3=['cm_contacts.phone',_0x7646('0x29'),_0x7646('0x2a'),_0x4d1644+'.'+_0x40e522,'cm_contacts.createdAt',_0x7646('0x42')];return squel[_0x7646('0x43')]()[_0x7646('0x2e')](_0x7646('0x44'))[_0x7646('0x30')](['phone',_0x7646('0x32'),_0x7646('0x49'),_0x40e522,_0x7646('0x33'),'updatedAt'],squel[_0x7646('0xf')]()[_0x7646('0x38')](_0x1a1cb3)['from'](_0x4d1644)[_0x7646('0x13')]('cm_contacts',null,_0x7646('0x3a')+_0x4d1644+_0x7646('0x3b'))[_0x7646('0x13')](_0x3e2d5c,null,_0x3e2d5c+_0x7646('0x14')+_0x4d1644+'.'+_0x40e522)[_0x7646('0x15')](_0x4d1644+_0x7646('0x3c'),_0x113435)[_0x7646('0x15')](_0x7646('0x3d'),NOW)['where'](_0x7646('0x3e'),squel[_0x7646('0xf')]()[_0x7646('0x10')](_0x7646('0x11'))[_0x7646('0x12')](_0x7646('0x44'))[_0x7646('0x15')](_0x7646('0x45'),_0x113435)[_0x7646('0x15')](_0x40e522+_0x7646('0x16')+_0x4d1644+'.'+_0x40e522)))[_0x7646('0x46')]();}function insertCmHopperAdditionalPhones(_0x58c0b0){var _0x557164=[_0x7646('0x4a'),'cm_contact_has_items.item',_0x7646('0x4b'),_0x7646('0x4c'),_0x7646('0x4d')];return squel[_0x7646('0x43')]()[_0x7646('0x2e')](_0x7646('0x4e'))[_0x7646('0x30')](['CmHopperId',_0x7646('0x11'),_0x7646('0x4f'),'createdAt',_0x7646('0x34')],squel[_0x7646('0xf')]()[_0x7646('0x38')](_0x557164)['from'](_0x7646('0x2f'))[_0x7646('0x13')]('cm_contacts',null,_0x7646('0x50'))[_0x7646('0x13')](_0x7646('0x51'),null,_0x7646('0x52'))[_0x7646('0x15')](_0x7646('0x53'),_0x58c0b0)[_0x7646('0x15')]('cm_contacts.createdAt\x20=\x20?',NOW))[_0x7646('0x46')]();}function insertCmContact(_0x2695fe,_0x53c3f9,_0x3282bd,_0x4888dc){var _0x24b4ef=_[_0x7646('0x54')](_['keys'](_0x4888dc),[_0x7646('0x49'),'CompanyId',_0x7646('0x33'),_0x7646('0x34'),_0x7646('0x55')]);return squel[_0x7646('0x43')]()[_0x7646('0x2e')](_0x7646('0x39'))[_0x7646('0x30')](_0x24b4ef,squel[_0x7646('0xf')]()[_0x7646('0x38')](_0x24b4ef)[_0x7646('0x12')](_0x53c3f9)[_0x7646('0x15')]('('+_0x3282bd[_0x7646('0x13')](',')+_0x7646('0x56'),squel['select']()[_0x7646('0x38')](_0x3282bd)[_0x7646('0x12')](_0x7646('0x39'))[_0x7646('0x15')]('ListId\x20=\x20?',_0x2695fe)[_0x7646('0x15')](_0x7646('0x57')))[_0x7646('0x15')](_0x7646('0x58'),squel[_0x7646('0xf')]()[_0x7646('0x10')](_0x7646('0x59'),'min_id')[_0x7646('0x12')](_0x53c3f9)[_0x7646('0x5a')](_0x3282bd[_0x7646('0x13')](','))))['toString']();}function handleStop(){logger[_0x7646('0x5b')]('Received\x20SIGINT');stopped=!![];}function handleUncaughtException(_0x3adcbf){logger[_0x7646('0x5c')](_0x3adcbf['message']);process['exit'](0x1);}function handleError(_0x10ae77,_0x2e7731){stats[_0x7646('0x5d')][_0x7646('0x1c')]({'name':_0x2e7731[_0x7646('0x5e')],'message':_0x2e7731[_0x7646('0x5f')],'row':_0x10ae77});}function handleQuery(_0x5b4a0a){logger[_0x7646('0x5b')](_0x5b4a0a);return db['sequelize'][_0x7646('0x60')](_0x5b4a0a)['spread'](function(_0x71826f){results[_0x7646('0x1c')](_0x71826f);})['catch'](function(_0x967c7a){logger[_0x7646('0x5c')](_0x967c7a[_0x7646('0x5f')]);});}function updateTzCampaigns(_0x320091){return new Promise(function(_0x58990c,_0x13e22c){var _0xf24937=squel[_0x7646('0xf')]()['fields']([_0x7646('0x61'),'campaigns.dialTimezone'])[_0x7646('0x12')]('campaigns')[_0x7646('0x13')](_0x7646('0x62'),null,_0x7646('0x63'))[_0x7646('0x15')]('campaigns_has_cm_lists.CmListId='+_0x320091);db[_0x7646('0x64')]['query'](_0xf24937['toString']())[_0x7646('0x65')](function(_0xa3e424){var _0x4d6e59=[];for(var _0x525962=0x0;_0x525962<_0xa3e424[_0x7646('0x1f')];_0x525962++){_0x4d6e59[_0x7646('0x1c')](getTimezoneData(_0xa3e424[_0x525962],tmp_campaigns));}BPromise[_0x7646('0x1d')](_0x4d6e59)[_0x7646('0x1b')](function(){_0x58990c({'val':0x1});});})[_0x7646('0x66')](function(_0x42955e){logger[_0x7646('0x5c')](_0x42955e[_0x7646('0x5f')]);_0x58990c({'val':0x0});});});}function updateTzVoiceQueues(_0x1013e9){return new Promise(function(_0x5d35e5,_0x136137){var _0x23a1db=squel[_0x7646('0xf')]()[_0x7646('0x38')](['voice_queues.id','voice_queues.dialTimezone'])[_0x7646('0x12')](_0x7646('0x67'))['join'](_0x7646('0x68'),null,_0x7646('0x69'))[_0x7646('0x15')](_0x7646('0x6a')+_0x1013e9);db['sequelize'][_0x7646('0x60')](_0x23a1db[_0x7646('0x46')]())[_0x7646('0x65')](function(_0x1bd8cb){var _0x1a15ee=[];for(var _0x53c51c=0x0;_0x53c51c<_0x1bd8cb[_0x7646('0x1f')];_0x53c51c++){_0x1a15ee[_0x7646('0x1c')](getTimezoneData(_0x1bd8cb[_0x53c51c],tmp_voice_queues));}BPromise['all'](_0x1a15ee)[_0x7646('0x1b')](function(){_0x5d35e5({'val':0x1});});})[_0x7646('0x66')](function(_0x590297){logger[_0x7646('0x5c')](_0x590297[_0x7646('0x5f')]);_0x5d35e5({'val':0x0});});});}function getTimezoneData(_0x38321a,_0x47e689){return new Promise(function(_0x3bf6d8,_0x4f4c32){var _0x1f4db=shared[_0x7646('0x6b')];var _0x3c809e=_0x1f4db[_0x38321a[_0x7646('0x6c')]];if(_['isNil'](_0x3c809e)){_0x3bf6d8({'ret':0x1});}else{var _0x2ba259=_0x3c809e['utcOffset'];var _0x2309c7=squel[_0x7646('0x43')]()[_0x7646('0x2e')](_0x47e689)[_0x7646('0x6d')]('id',_0x38321a['id'])['set'](_0x7646('0x6e'),_0x2ba259)[_0x7646('0x6d')](_0x7646('0x6c'),_0x38321a['dialTimezone'])[_0x7646('0x46')]();return db['sequelize'][_0x7646('0x60')](_0x2309c7)[_0x7646('0x65')](function(_0x5a468c){_0x3bf6d8({'ret':0x1});})['catch'](function(_0x2c4c29){logger[_0x7646('0x5c')](_0x2c4c29['message']);_0x4f4c32({'ret':0x1});});}});}function handleTZQuery(_0x21a6a7){logger[_0x7646('0x5b')](_0x21a6a7);return db[_0x7646('0x64')][_0x7646('0x60')](_0x21a6a7)[_0x7646('0x65')](function(_0x1beffd){})[_0x7646('0x66')](function(_0x752d36){logger['error'](_0x752d36['message']);});}function main(_0x604b70,_0x18484e,_0x524a40,_0x376537){logger[_0x7646('0x5b')]('main',_0x604b70,JSON[_0x7646('0x6f')](_0x18484e));process[_0x7646('0x70')](_0x7646('0x71'));var _0x1887dc=_0x18484e['binding'];var _0x422857=_[_0x7646('0x72')](_0x1887dc);var _0x249335=_0x18484e[_0x7646('0x73')];var _0xf1f9c5=path[_0x7646('0x13')](config[_0x7646('0x74')],_0x7646('0x75'),_0x249335+_0x7646('0x76'));hasTZ=_['keys'](_0x1887dc)['includes'](_0x7646('0x6c'));var _0x8f29ee=_[_0x7646('0x77')](_0x1887dc)[_0x7646('0x13')]();logger[_0x7646('0x5b')](_0x7646('0x78'),_0x8f29ee);db[_0x7646('0x79')][_0x7646('0x19')]({'raw':!![],'attributes':['id',_0x7646('0x7a')]})[_0x7646('0x1b')](function(_0x1cd0fa){for(var _0x20e09f=0x0;_0x20e09f<_0x1cd0fa[_0x7646('0x1f')];_0x20e09f++){if(_0x1cd0fa[_0x20e09f][_0x7646('0x7a')]in _0x1887dc){contactItemTypes['push'](_0x1cd0fa[_0x20e09f]);delete _0x422857[_0x1cd0fa[_0x20e09f][_0x7646('0x7a')]];hasAdditionalPhones=!![];}for(var _0x165e0a in _0x1887dc){if(_0x1cd0fa[_0x20e09f][_0x7646('0x7a')]+_0x7646('0x7b')===_0x165e0a){phoneDescriptions['push']({'itemTypeId':_0x1cd0fa[_0x20e09f]['id'],'description':_0x165e0a});delete _0x422857[_0x165e0a];}}}if(hasAdditionalPhones)_0x422857['AdditionalPhones']='';var _0x121730=_[_0x7646('0x77')](_0x422857)[_0x7646('0x13')]();logger[_0x7646('0x5b')](_0x7646('0x78'),_0x121730);fs[_0x7646('0x7c')](_0xf1f9c5,_0x121730+'\x0a');Papa[_0x7646('0x7d')](fs[_0x7646('0x7e')](_0x604b70),{'header':!![],'skipEmptyLines':!![],'step':function(_0x3facbe,_0xfc6f74){try{for(var _0x335dbf=0x0,_0x131e2e=[];_0x335dbf<_0x3facbe[_0x7646('0x7f')][_0x7646('0x1f')];_0x335dbf++){stats[_0x7646('0x80')]+=0x1;if(_0x3facbe[_0x7646('0x5d')][_0x335dbf]){handleError(_0x3facbe[_0x7646('0x7f')][_0x335dbf],_0x3facbe[_0x7646('0x5d')][_0x335dbf]);}else{var _0x50f51b=[];var _0x299705=[];var _0x48a13d={};for(var _0x103179 in _0x1887dc){let _0xeac64e=contactItemTypes[_0x7646('0x81')](_0x52aebc=>_0x52aebc['name']===_0x103179);let _0x180217=contactItemTypes[_0x7646('0x81')](_0x5c5b29=>_0x5c5b29[_0x7646('0x7a')]+_0x7646('0x7b')===_0x103179);if(_[_0x7646('0x20')](_0xeac64e)&&_[_0x7646('0x20')](_0x180217)){if(_0x1887dc[_0x7646('0x82')](_0x103179)){if(_0x3facbe[_0x7646('0x7f')][_0x335dbf][_0x1887dc[_0x103179]]){var _0x25e1cd=_[_0x7646('0x83')](_0x3facbe[_0x7646('0x7f')][_0x335dbf][_0x1887dc[_0x103179]]['replace'](/"/g,'\x27'));switch(_0x103179){case _0x7646('0x31'):var _0x5626e2=moment(_0x25e1cd,_0x7646('0x84'),!![]);if(_0x5626e2[_0x7646('0x85')]()){_0x131e2e[_0x7646('0x1c')]('\x22'+_0x25e1cd+'\x22');}else{_0x50f51b[_0x7646('0x1c')](_0x7646('0x86'));}break;case _0x7646('0x35'):var _0x18c422=parseInt(_0x25e1cd);_0x25e1cd=_[_0x7646('0x87')](_0x18c422)||_0x18c422<0x0||_0x18c422>0x4?_0x376537?0x3:0x2:_0x18c422;_0x131e2e['push']('\x22'+_0x25e1cd+'\x22');break;case _0x7646('0x36'):var _0x244610=parseInt(_0x25e1cd);if(_[_0x7646('0x88')](_0x244610)&&_['includes'](_0x524a40,_0x244610)){_0x131e2e[_0x7646('0x1c')]('\x22'+_0x244610+'\x22');}else{_0x50f51b['push'](_0x7646('0x89'));}break;case _0x7646('0x8a'):if(isEmail(_0x25e1cd)){_0x131e2e['push']('\x22'+_0x25e1cd+'\x22');}else{_0x50f51b[_0x7646('0x1c')](_0x7646('0x8b'));}break;case _0x7646('0x8c'):var _0x432c52=moment(_0x25e1cd,'YYYY-MM-DD',!![]);if(_0x432c52[_0x7646('0x85')]()){_0x131e2e[_0x7646('0x1c')]('\x22'+_0x25e1cd+'\x22');}else{_0x50f51b[_0x7646('0x1c')](_0x7646('0x8d'));}break;case'dialTimezone':var _0x3036c3=shared['timezones'];var _0x54573f=_0x3036c3[_0x25e1cd];if(!_[_0x7646('0x20')](_0x54573f)){var _0x198d19=_0x54573f[_0x7646('0x8e')];_0x131e2e[_0x7646('0x1c')]('\x22'+_0x25e1cd+'\x22');_0x131e2e['push']('\x22'+_0x198d19+'\x22');}break;default:_0x131e2e[_0x7646('0x1c')]('\x22'+_0x25e1cd+'\x22');}}else{switch(_0x103179){case _0x7646('0x8f'):case'phone':_0x50f51b[_0x7646('0x1c')](_0x103179+'\x20not\x20specified');break;default:_0x131e2e['push']('\x22\x22');}}}}else{var _0x160673='';if(!_[_0x7646('0x20')](_0xeac64e)){if(!_0x48a13d[_0x7646('0x82')](_0xeac64e['id'])){if(!_[_0x7646('0x20')](_0x3facbe['data'][_0x335dbf][_0x1887dc[_0x103179]])){var _0x25e1cd=_[_0x7646('0x83')](_0x3facbe[_0x7646('0x7f')][_0x335dbf][_0x1887dc[_0x103179]]['replace'](/"/g,'\x27'));var _0x1c8f0b=phoneDescriptions['find'](_0x52c0ca=>_0x52c0ca['itemTypeId']===_0xeac64e['id']);if(!_[_0x7646('0x20')](_0x1c8f0b)){var _0x1eb8c5=_[_0x7646('0x83')](_0x3facbe[_0x7646('0x7f')][_0x335dbf][_0x1887dc[_0x1c8f0b[_0x7646('0x90')]]][_0x7646('0x91')](/"/g,'\x27'));if(!_['isNil'](_0x1eb8c5))_0x25e1cd=_0x25e1cd+'§'+_0x1eb8c5;}if(_0x160673=='')_0x160673=_0x25e1cd;else _0x160673+='|'+_0x25e1cd;}_0x299705[_0x7646('0x1c')](_0xeac64e['id']+':'+_0x160673);_0x48a13d[_0xeac64e['id']]=0x1;}}}}if(hasAdditionalPhones){_0x131e2e[_0x7646('0x1c')]('\x22'+_0x299705['join'](';')+'\x22');}if(_0x50f51b[_0x7646('0x1f')]){handleError(_0x3facbe[_0x7646('0x7f')][_0x335dbf],{'code':'SystemRow','message':_0x50f51b[_0x7646('0x13')]()});}else{fs[_0x7646('0x92')](_0xf1f9c5,_0x131e2e[_0x7646('0x13')]()+'\x0a');}_0x131e2e=[];}if(!(stats[_0x7646('0x80')]%0xc8)){socket['emit'](_0x7646('0x93')+_0x249335,stats);stats[_0x7646('0x5d')]=[];}}if(stopped){logger[_0x7646('0x5b')](_0x7646('0x94'));_0xfc6f74[_0x7646('0x95')]();}}catch(_0x1cbeaa){handleError(_0x3facbe[_0x7646('0x7f')][_0x335dbf],{'code':_0x7646('0x96'),'message':_0x1cbeaa[_0x7646('0x5f')]});logger[_0x7646('0x5c')](_0x7646('0x97'),_0x1cbeaa[_0x7646('0x5f')]);}},'complete':function(){try{var _0x4e43da=[];var _0x54400e=[];var _0x406f6f=_0x7646('0x39');if(_0x18484e[_0x7646('0x98')]&&_0x18484e['duplicates'][_0x7646('0x1f')]){_0x406f6f=_0x7646('0x99')+_0x249335;_0x4e43da[_0x7646('0x1c')](_0x7646('0x9a')+_0x406f6f+_0x7646('0x9b'));}tmp_campaigns=_0x7646('0x9c')+_0x249335;tmp_voice_queues=_0x7646('0x9d')+_0x249335;_0x54400e[_0x7646('0x1c')]('CREATE\x20TABLE\x20'+tmp_campaigns+_0x7646('0x9e'));_0x54400e[_0x7646('0x1c')](_0x7646('0x9a')+tmp_voice_queues+_0x7646('0x9e'));BPromise[_0x7646('0x9f')](_0x54400e,handleTZQuery)[_0x7646('0x1b')](function(_0x47512d){updateTzCampaigns(_0x18484e[_0x7646('0x49')])['then'](function(_0xe97a6c){updateTzVoiceQueues(_0x18484e[_0x7646('0x49')])['then'](function(_0x5a8826){if(hasTZ)_0x121730=_0x121730[_0x7646('0x91')](_0x7646('0x6c'),'dialTimezone,utcOffset');var _0xb953bc=util[_0x7646('0xa0')](_0x7646('0xa1'),_0xf1f9c5,_0x406f6f,_0x121730,_0x18484e['ListId'],_0x18484e[_0x7646('0xa2')]||null,NOW,NOW);if(_[_0x7646('0x20')](_0x1887dc[_0x7646('0x31')])){_0xb953bc+=',\x20scheduledAt\x20=\x20NOW()';}_0x4e43da['push'](_0xb953bc);if(_0x18484e[_0x7646('0x98')]&&_0x18484e[_0x7646('0x98')]['length']){_0x4e43da[_0x7646('0x1c')](insertCmContact(_0x18484e['ListId'],_0x406f6f,_0x18484e[_0x7646('0x98')],_0x1887dc));_0x4e43da[_0x7646('0x1c')](_0x7646('0xa3')+_0x406f6f+';');}BPromise[_0x7646('0x9f')](_0x4e43da,handleQuery)[_0x7646('0x1b')](function(_0x30708d){BPromise[_0x7646('0x1d')]([handleAdditionalPhones()])['then'](function(){_0x4e43da=[];for(var _0x5c3d86=0x0;_0x5c3d86<promisesAdditionalPhones[_0x7646('0x1f')];_0x5c3d86++){if(promisesAdditionalPhones[_0x5c3d86][_0x7646('0x11')]!='§'){_0x4e43da[_0x7646('0x1c')](createAdditionalPhone(promisesAdditionalPhones[_0x5c3d86][_0x7646('0xa4')],promisesAdditionalPhones[_0x5c3d86]['contactTypeId'],promisesAdditionalPhones[_0x5c3d86][_0x7646('0x11')],promisesAdditionalPhones[_0x5c3d86][_0x7646('0xa5')]));}}BPromise[_0x7646('0x1d')](_0x4e43da)['then'](function(){_0x4e43da=[];if(hasTZ){_0x4e43da['push'](insertTzCmHopper(_0x18484e[_0x7646('0x49')],_0x7646('0x68'),_0x7646('0x67'),_0x7646('0xa6'),_0x376537,tmp_voice_queues));_0x4e43da['push'](insertTzCmHopperBlack(_0x18484e[_0x7646('0x49')],'voice_queues_has_cm_blacklists',_0x7646('0x67'),_0x7646('0xa6')));_0x4e43da[_0x7646('0x1c')](insertTzCmHopper(_0x18484e[_0x7646('0x49')],'campaigns_has_cm_lists',_0x7646('0xa7'),_0x7646('0xa8'),_0x376537,tmp_campaigns));_0x4e43da['push'](insertTzCmHopperBlack(_0x18484e['ListId'],_0x7646('0xa9'),_0x7646('0xa7'),'CampaignId'));_0x4e43da['push'](insertCmHopperAdditionalPhones(_0x18484e[_0x7646('0x49')]));}else{_0x4e43da[_0x7646('0x1c')](insertCmHopper(_0x18484e['ListId'],'voice_queues_has_cm_lists',_0x7646('0x67'),_0x7646('0xa6'),_0x376537));_0x4e43da[_0x7646('0x1c')](insertCmHopperBlack(_0x18484e['ListId'],'voice_queues_has_cm_blacklists',_0x7646('0x67'),'VoiceQueueId'));_0x4e43da[_0x7646('0x1c')](insertCmHopper(_0x18484e[_0x7646('0x49')],_0x7646('0x62'),'campaigns','CampaignId',_0x376537));_0x4e43da['push'](insertCmHopperBlack(_0x18484e[_0x7646('0x49')],_0x7646('0xa9'),_0x7646('0xa7'),'CampaignId'));_0x4e43da[_0x7646('0x1c')](insertCmHopperAdditionalPhones(_0x18484e[_0x7646('0x49')]));}_0x4e43da[_0x7646('0x1c')](_0x7646('0xa3')+tmp_campaigns+';');_0x4e43da[_0x7646('0x1c')](_0x7646('0xa3')+tmp_voice_queues+';');BPromise['each'](_0x4e43da,handleQuery)[_0x7646('0x1b')](function(_0x4bdea5){stats[_0x7646('0xaa')]=!![];stats['affectedRows']=_0x18484e[_0x7646('0x98')]&&_0x18484e[_0x7646('0x98')][_0x7646('0x1f')]?results[0x2][_0x7646('0xab')]:results[0x0]['affectedRows'];socket[_0x7646('0xac')]('contact:import:'+_0x249335,stats);fs['unlink'](_0x604b70);fs[_0x7646('0xad')](_0xf1f9c5);process[_0x7646('0xae')](0x0);})['catch'](function(_0x48699e){logger[_0x7646('0x5c')](_0x48699e['message']);process[_0x7646('0xae')](0x1);});});});})[_0x7646('0x66')](function(_0xae1d27){logger['error'](_0xae1d27[_0x7646('0x5f')]);process[_0x7646('0xae')](0x1);});});});});}catch(_0x440f1d){logger[_0x7646('0x5c')](_0x7646('0xaf'),_0x440f1d[_0x7646('0x5f')]);process['exit'](0x1);}},'error':function(_0x396b5a,_0x3f63b9,_0x522f38,_0xe55e4f){throw new Error(_0xe55e4f);}});});}function validate(){if(process[_0x7646('0xb0')]&&process[_0x7646('0xb0')][_0x7646('0x1f')]<0x4){throw new Error('arguments\x20<filename>\x20<parameters>\x20<agents>');}var _0x9f3bc2=path[_0x7646('0x13')](config['root'],_0x7646('0x75'),process[_0x7646('0xb0')][0x2]);if(!fs[_0x7646('0xb1')](_0x9f3bc2)){throw new Error('file\x20doesn\x27t\x20exists');}var _0x33daf5={};try{_0x33daf5=JSON['parse'](process[_0x7646('0xb0')][0x3]);if(!_0x33daf5[_0x7646('0xb2')]){throw new Error('binding\x20doesn\x27t\x20exists');}if(!_0x33daf5['binding'][_0x7646('0x11')]){throw new Error('phone\x20is\x20mandatory');}if(!_0x33daf5['binding']['firstName']){throw new Error(_0x7646('0xb3'));}var _0x499050=0x0;if(_0x33daf5[_0x7646('0xb2')][_0x7646('0x36')]){_0x499050=0x1;}if(!_0x33daf5[_0x7646('0x49')]){throw new Error(_0x7646('0xb4'));}}catch(_0x5b1e91){throw new Error(_0x7646('0xb5'));}var _0x2b7d9e=[];try{_0x2b7d9e=_[_0x7646('0xb6')](JSON[_0x7646('0x7d')](process[_0x7646('0xb0')][0x4]),'id');}catch(_0x14b319){logger[_0x7646('0x5b')](_0x7646('0xb7'));}main(_0x9f3bc2,_0x33daf5,_0x2b7d9e,_0x499050);}validate();process['on'](_0x7646('0xb8'),handleStop);process['on'](_0x7646('0xb9'),handleUncaughtException);