Built motion from commit da617fac.|2.6.6
[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 _0xfd4a=['group','info','error','message','exit','errors','code','sequelize','query','spread','catch','campaigns.id','campaigns.dialTimezone','campaigns','campaigns_has_cm_lists','campaigns.id\x20=\x20campaigns_has_cm_lists.CampaignId','campaigns_has_cm_lists.CmListId=','voice_queues.id','voice_queues.dialTimezone','voice_queues','voice_queues_has_cm_lists','voice_queues.id\x20=\x20voice_queues_has_cm_lists.VoiceQueueId','voice_queues_has_cm_lists.CmListId=','timezones','utcOffset','set','offset','main','send','clone','server/files/tmp','includes','dialTimezone','header','ContactItemType','findAll','name','_description','writeFileSync','parse','createReadStream','data','rows','find','isNil','hasOwnProperty','trim','replace','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','email','dateOfBirth','YYYY-MM-DD','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','\x20not\x20specified','itemTypeId','appendFileSync','emit','contact:import:','Abort\x20parser','abort','SystemError','step','duplicates','cm_contacts_','\x20LIKE\x20cm_contacts;','campaigns_','voice_queues_','CREATE\x20TABLE\x20','(id\x20int,dialTimezone\x20varchar(255),offset\x20int);',',\x20scheduledAt\x20=\x20NOW()','each','contactTypeId','orderBy','CampaignId','voice_queues_has_cm_blacklists','VoiceQueueId','affectedRows','unlink','complete','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','root','existsSync','file\x20doesn\x27t\x20exists','binding','firstName','firstName\x20is\x20mandatory','body\x20id\x20mandatory','map','No\x20agent\x20available','SIGINT','uncaughtException','path','papaparse','util','bluebird','squel','../../../mysqldb','../../../config/environment','../../../config/environment/shared','import','redis','defaults','localhost','format','YYYY-MM-DD\x20HH:mm:ss','test','select','field','phone','from','join','.id\x20=\x20','where','CmContact','push','all','then','AdditionalPhones','length','split','filter','findOne','CmContactHasItem','updated','create','cm_contacts.phone','cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.priority','cm_contacts.UserId','insert','into','fromQuery','scheduledat','ContactId','createdAt','updatedAt','priority','UserId','recallme','fields','cm_contacts','.CmListId','.CmListId\x20=\x20?','\x22onlyIfOpen\x22','cm_contacts.phone\x20NOT\x20IN\x20(?)','cm_hopper','\x22always\x22','toString','cm_contacts.id','ListId','cm_contacts.ListId\x20=\x20','cm_contacts.createdAt\x20=\x20?','cm_hopper_black','ListId\x20=\x20?','\x20=\x20','date_add(cm_contacts.scheduledat,interval\x20','.offset-cm_contacts.utcOffset\x20minute)','cm_contacts.ListId','cm_contact_has_items.OrderBy','cm_contact_has_items.createdAt','cm_contact_has_items.updatedAt','cm_hopper_additional_phones','CmHopperId','cm_contacts.id\x20=\x20cm_hopper.ContactId','cm_contact_has_items','cm_contacts.id\x20=\x20cm_contact_has_items.CmContactId','concat','keys','CompanyId',')\x20NOT\x20IN\x20?','deletedAt\x20IS\x20NULL','MIN(id)'];(function(_0x40bea2,_0x3023e1){var _0x3d4a78=function(_0x192968){while(--_0x192968){_0x40bea2['push'](_0x40bea2['shift']());}};_0x3d4a78(++_0x3023e1);}(_0xfd4a,0x10a));var _0xafd4=function(_0x22e6ff,_0x2b8b4f){_0x22e6ff=_0x22e6ff-0x0;var _0x243f44=_0xfd4a[_0x22e6ff];return _0x243f44;};'use strict';var fs=require('fs');var path=require(_0xafd4('0x0'));var _=require('lodash');var Papa=require(_0xafd4('0x1'));var util=require(_0xafd4('0x2'));var BPromise=require(_0xafd4('0x3'));var moment=require('moment');var squel=require(_0xafd4('0x4'));var Redis=require('ioredis');var db=require(_0xafd4('0x5'))['db'];var config=require(_0xafd4('0x6'));var shared=require(_0xafd4('0x7'));var logger=require('../../../config/logger')(_0xafd4('0x8'));config[_0xafd4('0x9')]=_[_0xafd4('0xa')](config[_0xafd4('0x9')],{'host':_0xafd4('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xafd4('0x9')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var promisesAdditionalPhones=[];var orderBy=0x0;var stopped=![];var NOW=moment()[_0xafd4('0xc')](_0xafd4('0xd'));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(_0x5c3104){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))*$/[_0xafd4('0xe')](_0x5c3104);}function selectNotIn(_0x16037a,_0x13e386,_0x5dc2c6,_0x4535e9,_0x262ab0){return squel[_0xafd4('0xf')]()[_0xafd4('0x10')](_0xafd4('0x11'))[_0xafd4('0x12')](_0x4535e9)[_0xafd4('0x13')](_0x13e386,null,_0x13e386+_0xafd4('0x14')+_0x4535e9+'.'+_0x5dc2c6)[_0xafd4('0x15')](_0x4535e9+'.'+_0x5dc2c6+'\x20=\x20'+_0x16037a+'.'+_0x5dc2c6)[_0xafd4('0x15')](_0x13e386+'.dialCheckDuplicateType\x20IN\x20('+_0x262ab0['join']()+')');}function handleAdditionalPhones(){return new Promise(function(_0x5a0c1e,_0x17b1ba){promisesAdditionalPhones=[];return db[_0xafd4('0x16')]['findAll']({'raw':!![],'attributes':['id','AdditionalPhones'],'where':{'createdAt':NOW,'AdditionalPhones':{'$ne':null}}})['then'](function(_0xf08203){if(_0xf08203!==null){var _0xbff16c=[];for(var _0x490067=0x0;_0x490067<_0xf08203['length'];_0x490067++){var _0x5e1262=_0xf08203[_0x490067];_0xbff16c[_0xafd4('0x17')](insertAdditionalPhones(_0x5e1262));}}Promise[_0xafd4('0x18')](_0xbff16c)[_0xafd4('0x19')](function(){_0x5a0c1e({'val':0x1});});});});}function insertAdditionalPhones(_0x1db03b){return new Promise(function(_0x3bb0ef,_0x39c6c1){var _0x6506eb=_0x1db03b[_0xafd4('0x1a')];var _0x350ae6=_0x6506eb['split'](';');var _0x418669=[];orderBy=0x0;for(var _0xff3615=0x0;_0xff3615<_0x350ae6[_0xafd4('0x1b')];_0xff3615++){_0x418669[_0xafd4('0x17')](splitAdditionalPhone(_0x1db03b['id'],_0x350ae6[_0xff3615]));}Promise[_0xafd4('0x18')](_0x418669)['then'](function(){_0x3bb0ef({'val':_0x350ae6[_0xafd4('0x1b')]});});});}function splitAdditionalPhone(_0x14f8fc,_0xdb40a0){return new Promise(function(_0x3aaeb7,_0x333d96){var _0x3d36d=_0xdb40a0[_0xafd4('0x1c')](':');var _0x216a51=_0x3d36d[0x0];var _0x241bce=_0x3d36d[0x1];if(!_['isNil'](_0x241bce)){var _0x3550bb=_0x241bce['split']('|');var _0x442ce0=[];for(var _0x68bc14=0x0;_0x68bc14<_0x3550bb[_0xafd4('0x1b')];_0x68bc14++){if(_0x3550bb[_0x68bc14]!==''){var _0x3466d9=_[_0xafd4('0x1d')](promisesAdditionalPhones,{'contactId':_0x14f8fc,'phone':_0x3550bb[_0x68bc14]});if(_0x3466d9[_0xafd4('0x1b')]==0x0){orderBy++;promisesAdditionalPhones[_0xafd4('0x17')]({'contactId':_0x14f8fc,'contactTypeId':_0x216a51,'phone':_0x3550bb[_0x68bc14],'orderBy':orderBy});}}}_0x3aaeb7({'ok':0x1});}else _0x3aaeb7({'res':0x0});});}function createAdditionalPhone(_0x336e1f,_0x38f8eb,_0x5946ff,_0x65422c){var _0x3bd250='';var _0x3039f6='';var _0x7c0086=_0x5946ff[_0xafd4('0x1c')]('§');_0x3bd250=_0x7c0086[0x0];if(_0x7c0086[_0xafd4('0x1b')]==0x2)_0x3039f6=_0x7c0086[0x1];return new Promise(function(_0x35a6c1,_0x59ca18){return db['CmContactHasItem'][_0xafd4('0x1e')]({'where':{'CmContactId':_0x336e1f,'item':_0x3bd250}})[_0xafd4('0x19')](function(_0x4de2c8){if(_0x4de2c8){return db[_0xafd4('0x1f')]['update']({'ItemTypeId':_0x38f8eb,'description':_0x3039f6,'OrderBy':_0x65422c},{'where':{'CmContactId':_0x336e1f,'item':_0x3bd250}})[_0xafd4('0x19')](function(_0xdfcded){_0x35a6c1({'res':_0xafd4('0x20')});});}else{return db['CmContactHasItem'][_0xafd4('0x21')]({'CmContactId':_0x336e1f,'item':_0x3bd250,'description':_0x3039f6,'ItemTypeId':_0x38f8eb,'OrderBy':_0x65422c,'ItemClass':'PHONE'})['then'](function(_0x18f324){_0x35a6c1({'res':'inserted'});});}});});}function insertCmHopper(_0x41d83e,_0x567f91,_0x5966de,_0x2ddbc4,_0x4a7168){var _0x3de5f2=[_0xafd4('0x22'),'cm_contacts.scheduledat','cm_contacts.id','cm_contacts.ListId',_0x567f91+'.'+_0x2ddbc4,_0xafd4('0x23'),_0xafd4('0x24'),_0xafd4('0x25'),_0xafd4('0x26'),'\x22'+_0x4a7168+'\x22'];return squel[_0xafd4('0x27')]()[_0xafd4('0x28')]('cm_hopper')[_0xafd4('0x29')]([_0xafd4('0x11'),_0xafd4('0x2a'),_0xafd4('0x2b'),'ListId',_0x2ddbc4,_0xafd4('0x2c'),_0xafd4('0x2d'),_0xafd4('0x2e'),_0xafd4('0x2f'),_0xafd4('0x30')],squel[_0xafd4('0xf')]()[_0xafd4('0x31')](_0x3de5f2)[_0xafd4('0x12')](_0x567f91)[_0xafd4('0x13')](_0xafd4('0x32'),null,'cm_contacts.ListId\x20=\x20'+_0x567f91+_0xafd4('0x33'))['join'](_0x5966de,null,_0x5966de+_0xafd4('0x14')+_0x567f91+'.'+_0x2ddbc4)[_0xafd4('0x15')](_0x567f91+_0xafd4('0x34'),_0x41d83e)[_0xafd4('0x15')]('cm_contacts.createdAt\x20=\x20?',NOW)[_0xafd4('0x15')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x567f91,_0x5966de,_0x2ddbc4,'cm_hopper',['\x22always\x22',_0xafd4('0x35')]))[_0xafd4('0x15')](_0xafd4('0x36'),selectNotIn(_0x567f91,_0x5966de,_0x2ddbc4,_0xafd4('0x37'),[_0xafd4('0x38')])))[_0xafd4('0x39')]();}function insertCmHopperBlack(_0x56b217,_0x3ab9b8,_0x547437,_0x331def){var _0x481d2b=[_0xafd4('0x22'),_0xafd4('0x3a'),'cm_contacts.ListId',_0x3ab9b8+'.'+_0x331def,'cm_contacts.createdAt',_0xafd4('0x24')];return squel[_0xafd4('0x27')]()[_0xafd4('0x28')]('cm_hopper_black')[_0xafd4('0x29')](['phone',_0xafd4('0x2b'),_0xafd4('0x3b'),_0x331def,_0xafd4('0x2c'),_0xafd4('0x2d')],squel[_0xafd4('0xf')]()[_0xafd4('0x31')](_0x481d2b)['from'](_0x3ab9b8)['join'](_0xafd4('0x32'),null,_0xafd4('0x3c')+_0x3ab9b8+_0xafd4('0x33'))[_0xafd4('0x13')](_0x547437,null,_0x547437+_0xafd4('0x14')+_0x3ab9b8+'.'+_0x331def)[_0xafd4('0x15')](_0x3ab9b8+_0xafd4('0x34'),_0x56b217)['where'](_0xafd4('0x3d'),NOW)[_0xafd4('0x15')](_0xafd4('0x36'),squel[_0xafd4('0xf')]()[_0xafd4('0x10')](_0xafd4('0x11'))[_0xafd4('0x12')](_0xafd4('0x3e'))[_0xafd4('0x15')](_0xafd4('0x3f'),_0x56b217)[_0xafd4('0x15')](_0x331def+_0xafd4('0x40')+_0x3ab9b8+'.'+_0x331def)))[_0xafd4('0x39')]();}function insertTzCmHopper(_0x40afcb,_0x311e12,_0x1e7e9e,_0x10b793,_0x44c182,_0x4b462a){var _0x19b8b4=[_0xafd4('0x22'),_0xafd4('0x41')+_0x4b462a+_0xafd4('0x42'),_0xafd4('0x3a'),_0xafd4('0x43'),_0x311e12+'.'+_0x10b793,_0xafd4('0x23'),_0xafd4('0x24'),_0xafd4('0x25'),_0xafd4('0x26'),'\x22'+_0x44c182+'\x22'];var _0x89d452=squel[_0xafd4('0x27')]()[_0xafd4('0x28')](_0xafd4('0x37'))[_0xafd4('0x29')]([_0xafd4('0x11'),_0xafd4('0x2a'),_0xafd4('0x2b'),_0xafd4('0x3b'),_0x10b793,_0xafd4('0x2c'),_0xafd4('0x2d'),_0xafd4('0x2e'),_0xafd4('0x2f'),'recallme'],squel['select']()[_0xafd4('0x31')](_0x19b8b4)[_0xafd4('0x12')](_0x311e12)[_0xafd4('0x13')](_0xafd4('0x32'),null,_0xafd4('0x3c')+_0x311e12+_0xafd4('0x33'))[_0xafd4('0x13')](_0x1e7e9e,null,_0x1e7e9e+_0xafd4('0x14')+_0x311e12+'.'+_0x10b793)['join'](_0x4b462a,null,_0x4b462a+_0xafd4('0x14')+_0x311e12+'.'+_0x10b793)[_0xafd4('0x15')](_0x311e12+_0xafd4('0x34'),_0x40afcb)[_0xafd4('0x15')](_0xafd4('0x3d'),NOW)[_0xafd4('0x15')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x311e12,_0x1e7e9e,_0x10b793,_0xafd4('0x37'),[_0xafd4('0x38'),_0xafd4('0x35')]))[_0xafd4('0x15')](_0xafd4('0x36'),selectNotIn(_0x311e12,_0x1e7e9e,_0x10b793,_0xafd4('0x37'),[_0xafd4('0x38')])))[_0xafd4('0x39')]();return _0x89d452;}function insertTzCmHopperBlack(_0x228b96,_0xb3d666,_0x460c86,_0xee075){var _0x14a163=[_0xafd4('0x22'),_0xafd4('0x3a'),_0xafd4('0x43'),_0xb3d666+'.'+_0xee075,_0xafd4('0x23'),'cm_contacts.updatedAt'];return squel[_0xafd4('0x27')]()[_0xafd4('0x28')]('cm_hopper_black')[_0xafd4('0x29')]([_0xafd4('0x11'),_0xafd4('0x2b'),_0xafd4('0x3b'),_0xee075,_0xafd4('0x2c'),_0xafd4('0x2d')],squel['select']()[_0xafd4('0x31')](_0x14a163)['from'](_0xb3d666)[_0xafd4('0x13')](_0xafd4('0x32'),null,_0xafd4('0x3c')+_0xb3d666+'.CmListId')[_0xafd4('0x13')](_0x460c86,null,_0x460c86+_0xafd4('0x14')+_0xb3d666+'.'+_0xee075)[_0xafd4('0x15')](_0xb3d666+'.CmListId\x20=\x20?',_0x228b96)[_0xafd4('0x15')](_0xafd4('0x3d'),NOW)[_0xafd4('0x15')](_0xafd4('0x36'),squel[_0xafd4('0xf')]()[_0xafd4('0x10')]('phone')['from'](_0xafd4('0x3e'))[_0xafd4('0x15')](_0xafd4('0x3f'),_0x228b96)[_0xafd4('0x15')](_0xee075+_0xafd4('0x40')+_0xb3d666+'.'+_0xee075)))[_0xafd4('0x39')]();}function insertCmHopperAdditionalPhones(_0x584cca){var _0x5ee4b7=['cm_hopper.id','cm_contact_has_items.item',_0xafd4('0x44'),_0xafd4('0x45'),_0xafd4('0x46')];return squel['insert']()[_0xafd4('0x28')](_0xafd4('0x47'))[_0xafd4('0x29')]([_0xafd4('0x48'),_0xafd4('0x11'),'OrderBy',_0xafd4('0x2c'),_0xafd4('0x2d')],squel[_0xafd4('0xf')]()[_0xafd4('0x31')](_0x5ee4b7)['from']('cm_hopper')[_0xafd4('0x13')](_0xafd4('0x32'),null,_0xafd4('0x49'))[_0xafd4('0x13')](_0xafd4('0x4a'),null,_0xafd4('0x4b'))['where']('cm_hopper.ListId\x20=\x20?',_0x584cca)[_0xafd4('0x15')]('cm_contacts.createdAt\x20=\x20?',NOW))[_0xafd4('0x39')]();}function insertCmContact(_0x3b318e,_0x5150ca,_0x5da6f3,_0x58f994){var _0x2cf553=_[_0xafd4('0x4c')](_[_0xafd4('0x4d')](_0x58f994),[_0xafd4('0x3b'),_0xafd4('0x4e'),_0xafd4('0x2c'),_0xafd4('0x2d')]);return squel[_0xafd4('0x27')]()[_0xafd4('0x28')](_0xafd4('0x32'))[_0xafd4('0x29')](_0x2cf553,squel[_0xafd4('0xf')]()['fields'](_0x2cf553)['from'](_0x5150ca)[_0xafd4('0x15')]('('+_0x5da6f3[_0xafd4('0x13')](',')+_0xafd4('0x4f'),squel[_0xafd4('0xf')]()['fields'](_0x5da6f3)[_0xafd4('0x12')](_0xafd4('0x32'))[_0xafd4('0x15')](_0xafd4('0x3f'),_0x3b318e)[_0xafd4('0x15')](_0xafd4('0x50')))['where']('id\x20IN\x20?',squel['select']()['field'](_0xafd4('0x51'),'min_id')[_0xafd4('0x12')](_0x5150ca)[_0xafd4('0x52')](_0x5da6f3[_0xafd4('0x13')](','))))[_0xafd4('0x39')]();}function handleStop(){logger[_0xafd4('0x53')]('Received\x20SIGINT');stopped=!![];}function handleUncaughtException(_0x756f20){logger[_0xafd4('0x54')](_0x756f20[_0xafd4('0x55')]);process[_0xafd4('0x56')](0x1);}function handleError(_0x5239c5,_0x3729cc){stats[_0xafd4('0x57')][_0xafd4('0x17')]({'name':_0x3729cc[_0xafd4('0x58')],'message':_0x3729cc[_0xafd4('0x55')],'row':_0x5239c5});}function handleQuery(_0x58f88c){logger[_0xafd4('0x53')](_0x58f88c);return db[_0xafd4('0x59')][_0xafd4('0x5a')](_0x58f88c)[_0xafd4('0x5b')](function(_0x4d4175){results[_0xafd4('0x17')](_0x4d4175);})[_0xafd4('0x5c')](function(_0x38007e){logger[_0xafd4('0x54')](_0x38007e[_0xafd4('0x55')]);});}function updateTzCampaigns(_0x16b83d){return new Promise(function(_0x302508,_0x534ded){var _0x7d31a8=squel[_0xafd4('0xf')]()[_0xafd4('0x31')]([_0xafd4('0x5d'),_0xafd4('0x5e')])[_0xafd4('0x12')](_0xafd4('0x5f'))[_0xafd4('0x13')](_0xafd4('0x60'),null,_0xafd4('0x61'))[_0xafd4('0x15')](_0xafd4('0x62')+_0x16b83d);db[_0xafd4('0x59')]['query'](_0x7d31a8[_0xafd4('0x39')]())[_0xafd4('0x5b')](function(_0xfc1070){var _0x2ca0ec=[];for(var _0xe701f0=0x0;_0xe701f0<_0xfc1070[_0xafd4('0x1b')];_0xe701f0++){_0x2ca0ec['push'](getTimezoneData(_0xfc1070[_0xe701f0],tmp_campaigns));}BPromise[_0xafd4('0x18')](_0x2ca0ec)['then'](function(){_0x302508({'val':0x1});});})['catch'](function(_0x4cb97b){logger['error'](_0x4cb97b[_0xafd4('0x55')]);_0x302508({'val':0x0});});});}function updateTzVoiceQueues(_0x2c9ab3){return new Promise(function(_0x174da6,_0x4dedff){var _0xdfb9ae=squel[_0xafd4('0xf')]()[_0xafd4('0x31')]([_0xafd4('0x63'),_0xafd4('0x64')])[_0xafd4('0x12')](_0xafd4('0x65'))[_0xafd4('0x13')](_0xafd4('0x66'),null,_0xafd4('0x67'))[_0xafd4('0x15')](_0xafd4('0x68')+_0x2c9ab3);db[_0xafd4('0x59')][_0xafd4('0x5a')](_0xdfb9ae[_0xafd4('0x39')]())['spread'](function(_0x4b0050){var _0x4b9e77=[];for(var _0x1df391=0x0;_0x1df391<_0x4b0050[_0xafd4('0x1b')];_0x1df391++){_0x4b9e77[_0xafd4('0x17')](getTimezoneData(_0x4b0050[_0x1df391],tmp_voice_queues));}BPromise['all'](_0x4b9e77)[_0xafd4('0x19')](function(){_0x174da6({'val':0x1});});})['catch'](function(_0x57ffe0){logger['error'](_0x57ffe0['message']);_0x174da6({'val':0x0});});});}function getTimezoneData(_0xe2b1bb,_0x17273c){return new Promise(function(_0x3ca07d,_0x27489a){var _0x501103=shared[_0xafd4('0x69')];var _0x48e747=_0x501103[_0xe2b1bb['dialTimezone']];if(_['isNil'](_0x48e747)){_0x3ca07d({'ret':0x1});}else{var _0x4974ea=_0x48e747[_0xafd4('0x6a')];var _0x422675=squel['insert']()[_0xafd4('0x28')](_0x17273c)[_0xafd4('0x6b')]('id',_0xe2b1bb['id'])[_0xafd4('0x6b')](_0xafd4('0x6c'),_0x4974ea)[_0xafd4('0x6b')]('dialTimezone',_0xe2b1bb['dialTimezone'])[_0xafd4('0x39')]();return db[_0xafd4('0x59')][_0xafd4('0x5a')](_0x422675)[_0xafd4('0x5b')](function(_0x28ba7b){_0x3ca07d({'ret':0x1});})[_0xafd4('0x5c')](function(_0x45b7a9){logger['error'](_0x45b7a9[_0xafd4('0x55')]);_0x27489a({'ret':0x1});});}});}function handleTZQuery(_0xf951cc){logger['info'](_0xf951cc);return db[_0xafd4('0x59')][_0xafd4('0x5a')](_0xf951cc)['spread'](function(_0x51cb82){})[_0xafd4('0x5c')](function(_0x4d16b3){logger['error'](_0x4d16b3['message']);});}function main(_0x4ef776,_0x480668,_0x32cfed,_0x4d67d6){logger[_0xafd4('0x53')](_0xafd4('0x6d'),_0x4ef776,JSON['stringify'](_0x480668));process[_0xafd4('0x6e')]('start');var _0x77b301=_0x480668['binding'];var _0x3be0e3=_[_0xafd4('0x6f')](_0x77b301);var _0x323e21=_0x480668['socket_timestamp'];var _0x50e1be=path[_0xafd4('0x13')](config['root'],_0xafd4('0x70'),_0x323e21+'.csv');hasTZ=_[_0xafd4('0x4d')](_0x77b301)[_0xafd4('0x71')](_0xafd4('0x72'));var _0x1806fa=_[_0xafd4('0x4d')](_0x77b301)[_0xafd4('0x13')]();logger['info'](_0xafd4('0x73'),_0x1806fa);db[_0xafd4('0x74')][_0xafd4('0x75')]({'raw':!![],'attributes':['id',_0xafd4('0x76')]})[_0xafd4('0x19')](function(_0x386104){for(var _0x1099c7=0x0;_0x1099c7<_0x386104[_0xafd4('0x1b')];_0x1099c7++){if(_0x386104[_0x1099c7][_0xafd4('0x76')]in _0x77b301){contactItemTypes['push'](_0x386104[_0x1099c7]);delete _0x3be0e3[_0x386104[_0x1099c7]['name']];hasAdditionalPhones=!![];}for(var _0x5ce038 in _0x77b301){if(_0x386104[_0x1099c7][_0xafd4('0x76')]+_0xafd4('0x77')===_0x5ce038){phoneDescriptions['push']({'itemTypeId':_0x386104[_0x1099c7]['id'],'description':_0x5ce038});delete _0x3be0e3[_0x5ce038];}}}if(hasAdditionalPhones)_0x3be0e3['AdditionalPhones']='';var _0x4c8abd=_['keys'](_0x3be0e3)[_0xafd4('0x13')]();logger[_0xafd4('0x53')](_0xafd4('0x73'),_0x4c8abd);fs[_0xafd4('0x78')](_0x50e1be,_0x4c8abd+'\x0a');Papa[_0xafd4('0x79')](fs[_0xafd4('0x7a')](_0x4ef776),{'header':!![],'skipEmptyLines':!![],'step':function(_0x1a63ca,_0x20c0c9){try{for(var _0x232dd5=0x0,_0x2a4071=[];_0x232dd5<_0x1a63ca[_0xafd4('0x7b')][_0xafd4('0x1b')];_0x232dd5++){stats[_0xafd4('0x7c')]+=0x1;if(_0x1a63ca[_0xafd4('0x57')][_0x232dd5]){handleError(_0x1a63ca[_0xafd4('0x7b')][_0x232dd5],_0x1a63ca['errors'][_0x232dd5]);}else{var _0x15da8c=[];var _0x1df6ea=[];var _0x523082={};for(var _0xb63cc9 in _0x77b301){let _0x48c7a3=contactItemTypes['find'](_0x29e2f9=>_0x29e2f9['name']===_0xb63cc9);let _0x2c176b=contactItemTypes[_0xafd4('0x7d')](_0x5998b3=>_0x5998b3[_0xafd4('0x76')]+'_description'===_0xb63cc9);if(_['isNil'](_0x48c7a3)&&_[_0xafd4('0x7e')](_0x2c176b)){if(_0x77b301[_0xafd4('0x7f')](_0xb63cc9)){if(_0x1a63ca[_0xafd4('0x7b')][_0x232dd5][_0x77b301[_0xb63cc9]]){var _0x374569=_[_0xafd4('0x80')](_0x1a63ca[_0xafd4('0x7b')][_0x232dd5][_0x77b301[_0xb63cc9]][_0xafd4('0x81')](/"/g,'\x27'));switch(_0xb63cc9){case'scheduledat':var _0x55c152=moment(_0x374569,_0xafd4('0xd'),!![]);if(_0x55c152['isValid']()){_0x2a4071[_0xafd4('0x17')]('\x22'+_0x374569+'\x22');}else{_0x15da8c['push'](_0xafd4('0x82'));}break;case _0xafd4('0x2e'):var _0x5dcc17=parseInt(_0x374569);_0x374569=_['isNaN'](_0x5dcc17)||_0x5dcc17<0x0||_0x5dcc17>0x4?_0x4d67d6?0x3:0x2:_0x5dcc17;_0x2a4071[_0xafd4('0x17')]('\x22'+_0x374569+'\x22');break;case'UserId':var _0x2dc84d=parseInt(_0x374569);if(_['isNumber'](_0x2dc84d)&&_[_0xafd4('0x71')](_0x32cfed,_0x2dc84d)){_0x2a4071[_0xafd4('0x17')]('\x22'+_0x2dc84d+'\x22');}else{_0x15da8c[_0xafd4('0x17')]('agent\x20not\x20exists');}break;case _0xafd4('0x83'):if(isEmail(_0x374569)){_0x2a4071[_0xafd4('0x17')]('\x22'+_0x374569+'\x22');}else{_0x15da8c[_0xafd4('0x17')]('email\x20wrong\x20format');}break;case _0xafd4('0x84'):var _0x4b6b59=moment(_0x374569,_0xafd4('0x85'),!![]);if(_0x4b6b59['isValid']()){_0x2a4071[_0xafd4('0x17')]('\x22'+_0x374569+'\x22');}else{_0x15da8c[_0xafd4('0x17')](_0xafd4('0x86'));}break;case _0xafd4('0x72'):var _0x3ea48f=shared[_0xafd4('0x69')];var _0x1dbbff=_0x3ea48f[_0x374569];if(!_[_0xafd4('0x7e')](_0x1dbbff)){var _0xd84658=_0x1dbbff[_0xafd4('0x6a')];_0x2a4071[_0xafd4('0x17')]('\x22'+_0x374569+'\x22');_0x2a4071['push']('\x22'+_0xd84658+'\x22');}break;default:_0x2a4071[_0xafd4('0x17')]('\x22'+_0x374569+'\x22');}}else{switch(_0xb63cc9){case'firstName':case'phone':_0x15da8c[_0xafd4('0x17')](_0xb63cc9+_0xafd4('0x87'));break;default:_0x2a4071[_0xafd4('0x17')]('\x22\x22');}}}}else{var _0x5e673f='';if(!_[_0xafd4('0x7e')](_0x48c7a3)){if(!_0x523082[_0xafd4('0x7f')](_0x48c7a3['id'])){if(!_[_0xafd4('0x7e')](_0x1a63ca[_0xafd4('0x7b')][_0x232dd5][_0x77b301[_0xb63cc9]])){var _0x374569=_[_0xafd4('0x80')](_0x1a63ca[_0xafd4('0x7b')][_0x232dd5][_0x77b301[_0xb63cc9]]['replace'](/"/g,'\x27'));var _0x372c0a=phoneDescriptions[_0xafd4('0x7d')](_0x5816f7=>_0x5816f7[_0xafd4('0x88')]===_0x48c7a3['id']);if(!_['isNil'](_0x372c0a)){var _0x261420=_[_0xafd4('0x80')](_0x1a63ca[_0xafd4('0x7b')][_0x232dd5][_0x77b301[_0x372c0a['description']]][_0xafd4('0x81')](/"/g,'\x27'));if(!_[_0xafd4('0x7e')](_0x261420))_0x374569=_0x374569+'§'+_0x261420;}if(_0x5e673f=='')_0x5e673f=_0x374569;else _0x5e673f+='|'+_0x374569;}_0x1df6ea[_0xafd4('0x17')](_0x48c7a3['id']+':'+_0x5e673f);_0x523082[_0x48c7a3['id']]=0x1;}}}}if(hasAdditionalPhones){_0x2a4071['push']('\x22'+_0x1df6ea['join'](';')+'\x22');}if(_0x15da8c[_0xafd4('0x1b')]){handleError(_0x1a63ca['data'][_0x232dd5],{'code':'SystemRow','message':_0x15da8c[_0xafd4('0x13')]()});}else{fs[_0xafd4('0x89')](_0x50e1be,_0x2a4071[_0xafd4('0x13')]()+'\x0a');}_0x2a4071=[];}if(!(stats[_0xafd4('0x7c')]%0xc8)){socket[_0xafd4('0x8a')](_0xafd4('0x8b')+_0x323e21,stats);stats[_0xafd4('0x57')]=[];}}if(stopped){logger[_0xafd4('0x53')](_0xafd4('0x8c'));_0x20c0c9[_0xafd4('0x8d')]();}}catch(_0x4e6d8c){handleError(_0x1a63ca[_0xafd4('0x7b')][_0x232dd5],{'code':_0xafd4('0x8e'),'message':_0x4e6d8c['message']});logger[_0xafd4('0x54')](_0xafd4('0x8f'),_0x4e6d8c[_0xafd4('0x55')]);}},'complete':function(){try{var _0x3fef2c=[];var _0x5062f8=[];var _0x4012e4=_0xafd4('0x32');if(_0x480668['duplicates']&&_0x480668[_0xafd4('0x90')][_0xafd4('0x1b')]){_0x4012e4=_0xafd4('0x91')+_0x323e21;_0x3fef2c[_0xafd4('0x17')]('CREATE\x20TABLE\x20'+_0x4012e4+_0xafd4('0x92'));}tmp_campaigns=_0xafd4('0x93')+_0x323e21;tmp_voice_queues=_0xafd4('0x94')+_0x323e21;_0x5062f8[_0xafd4('0x17')](_0xafd4('0x95')+tmp_campaigns+'(id\x20int,dialTimezone\x20varchar(255),offset\x20int);');_0x5062f8[_0xafd4('0x17')](_0xafd4('0x95')+tmp_voice_queues+_0xafd4('0x96'));BPromise['each'](_0x5062f8,handleTZQuery)['then'](function(_0x261685){updateTzCampaigns(_0x480668[_0xafd4('0x3b')])[_0xafd4('0x19')](function(_0x47ca20){updateTzVoiceQueues(_0x480668[_0xafd4('0x3b')])[_0xafd4('0x19')](function(_0x37051c){if(hasTZ)_0x4c8abd=_0x4c8abd[_0xafd4('0x81')](_0xafd4('0x72'),'dialTimezone,utcOffset');var _0x475bfe=util[_0xafd4('0xc')]('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',_0x50e1be,_0x4012e4,_0x4c8abd,_0x480668[_0xafd4('0x3b')],_0x480668['CompanyId']||null,NOW,NOW);if(_[_0xafd4('0x7e')](_0x77b301[_0xafd4('0x2a')])){_0x475bfe+=_0xafd4('0x97');}_0x3fef2c[_0xafd4('0x17')](_0x475bfe);if(_0x480668[_0xafd4('0x90')]&&_0x480668['duplicates'][_0xafd4('0x1b')]){_0x3fef2c[_0xafd4('0x17')](insertCmContact(_0x480668[_0xafd4('0x3b')],_0x4012e4,_0x480668[_0xafd4('0x90')],_0x77b301));_0x3fef2c['push']('DROP\x20TABLE\x20'+_0x4012e4+';');}BPromise[_0xafd4('0x98')](_0x3fef2c,handleQuery)['then'](function(_0x3ffbbd){BPromise[_0xafd4('0x18')]([handleAdditionalPhones()])[_0xafd4('0x19')](function(){_0x3fef2c=[];for(var _0x4ca0eb=0x0;_0x4ca0eb<promisesAdditionalPhones['length'];_0x4ca0eb++){if(promisesAdditionalPhones[_0x4ca0eb][_0xafd4('0x11')]!='§'){_0x3fef2c[_0xafd4('0x17')](createAdditionalPhone(promisesAdditionalPhones[_0x4ca0eb]['contactId'],promisesAdditionalPhones[_0x4ca0eb][_0xafd4('0x99')],promisesAdditionalPhones[_0x4ca0eb][_0xafd4('0x11')],promisesAdditionalPhones[_0x4ca0eb][_0xafd4('0x9a')]));}}BPromise[_0xafd4('0x18')](_0x3fef2c)[_0xafd4('0x19')](function(){_0x3fef2c=[];if(hasTZ){_0x3fef2c[_0xafd4('0x17')](insertTzCmHopper(_0x480668['ListId'],_0xafd4('0x66'),_0xafd4('0x65'),'VoiceQueueId',_0x4d67d6,tmp_voice_queues));_0x3fef2c[_0xafd4('0x17')](insertTzCmHopperBlack(_0x480668[_0xafd4('0x3b')],'voice_queues_has_cm_blacklists','voice_queues','VoiceQueueId'));_0x3fef2c[_0xafd4('0x17')](insertTzCmHopper(_0x480668[_0xafd4('0x3b')],_0xafd4('0x60'),_0xafd4('0x5f'),'CampaignId',_0x4d67d6,tmp_campaigns));_0x3fef2c[_0xafd4('0x17')](insertTzCmHopperBlack(_0x480668[_0xafd4('0x3b')],'campaigns_has_cm_blacklists','campaigns',_0xafd4('0x9b')));_0x3fef2c[_0xafd4('0x17')](insertCmHopperAdditionalPhones(_0x480668[_0xafd4('0x3b')]));}else{_0x3fef2c[_0xafd4('0x17')](insertCmHopper(_0x480668['ListId'],_0xafd4('0x66'),_0xafd4('0x65'),'VoiceQueueId',_0x4d67d6));_0x3fef2c['push'](insertCmHopperBlack(_0x480668[_0xafd4('0x3b')],_0xafd4('0x9c'),'voice_queues',_0xafd4('0x9d')));_0x3fef2c[_0xafd4('0x17')](insertCmHopper(_0x480668[_0xafd4('0x3b')],'campaigns_has_cm_lists','campaigns',_0xafd4('0x9b'),_0x4d67d6));_0x3fef2c[_0xafd4('0x17')](insertCmHopperBlack(_0x480668['ListId'],'campaigns_has_cm_blacklists',_0xafd4('0x5f'),'CampaignId'));_0x3fef2c[_0xafd4('0x17')](insertCmHopperAdditionalPhones(_0x480668[_0xafd4('0x3b')]));}_0x3fef2c[_0xafd4('0x17')]('DROP\x20TABLE\x20'+tmp_campaigns+';');_0x3fef2c['push']('DROP\x20TABLE\x20'+tmp_voice_queues+';');BPromise[_0xafd4('0x98')](_0x3fef2c,handleQuery)['then'](function(_0x1cb39d){stats['finish']=!![];stats['affectedRows']=_0x480668[_0xafd4('0x90')]&&_0x480668[_0xafd4('0x90')][_0xafd4('0x1b')]?results[0x2][_0xafd4('0x9e')]:results[0x0][_0xafd4('0x9e')];socket[_0xafd4('0x8a')](_0xafd4('0x8b')+_0x323e21,stats);fs[_0xafd4('0x9f')](_0x4ef776);fs[_0xafd4('0x9f')](_0x50e1be);process[_0xafd4('0x56')](0x0);})[_0xafd4('0x5c')](function(_0x527bb4){logger[_0xafd4('0x54')](_0x527bb4[_0xafd4('0x55')]);process['exit'](0x1);});});});})[_0xafd4('0x5c')](function(_0x184617){logger[_0xafd4('0x54')](_0x184617[_0xafd4('0x55')]);process[_0xafd4('0x56')](0x1);});});});});}catch(_0x36a16c){logger['error'](_0xafd4('0xa0'),_0x36a16c[_0xafd4('0x55')]);process[_0xafd4('0x56')](0x1);}},'error':function(_0xe6964,_0x28ad86,_0x19fbf1,_0x4786c2){throw new Error(_0x4786c2);}});});}function validate(){if(process['argv']&&process[_0xafd4('0xa1')][_0xafd4('0x1b')]<0x4){throw new Error(_0xafd4('0xa2'));}var _0x35adb9=path[_0xafd4('0x13')](config[_0xafd4('0xa3')],_0xafd4('0x70'),process['argv'][0x2]);if(!fs[_0xafd4('0xa4')](_0x35adb9)){throw new Error(_0xafd4('0xa5'));}var _0x29a967={};try{_0x29a967=JSON[_0xafd4('0x79')](process[_0xafd4('0xa1')][0x3]);if(!_0x29a967[_0xafd4('0xa6')]){throw new Error('binding\x20doesn\x27t\x20exists');}if(!_0x29a967[_0xafd4('0xa6')]['phone']){throw new Error('phone\x20is\x20mandatory');}if(!_0x29a967[_0xafd4('0xa6')][_0xafd4('0xa7')]){throw new Error(_0xafd4('0xa8'));}var _0x21a223=0x0;if(_0x29a967['binding'][_0xafd4('0x2f')]){_0x21a223=0x1;}if(!_0x29a967['ListId']){throw new Error('ListId\x20is\x20mandatory');}}catch(_0x20f0a8){throw new Error(_0xafd4('0xa9'));}var _0x5d3800=[];try{_0x5d3800=_[_0xafd4('0xaa')](JSON['parse'](process[_0xafd4('0xa1')][0x4]),'id');}catch(_0x5a9e65){logger[_0xafd4('0x53')](_0xafd4('0xab'));}main(_0x35adb9,_0x29a967,_0x5d3800,_0x21a223);}validate();process['on'](_0xafd4('0xac'),handleStop);process['on'](_0xafd4('0xad'),handleUncaughtException);