89087f620caaad90a5c0fdb062efdd775dc453a3
[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 _0xa54e=['campaigns_has_cm_blacklists','CampaignId','finish','affectedRows','contact:import:','unlink','exit','complete','argv','existsSync','file\x20doesn\x27t\x20exists','binding\x20doesn\x27t\x20exists','phone\x20is\x20mandatory','firstName\x20is\x20mandatory','ListId\x20is\x20mandatory','No\x20agent\x20available','SIGINT','uncaughtException','path','lodash','papaparse','moment','squel','ioredis','../../../mysqldb','../../../config/environment','../../../config/logger','import','redis','defaults','socket.io-emitter','format','YYYY-MM-DD\x20HH:mm:ss','test','select','field','from','join','.id\x20=\x20','where','\x20=\x20','.dialCheckDuplicateType\x20IN\x20(','CmContact','AdditionalPhones','then','length','all','split','push','isNil','filter','CmContactHasItem','findOne','update','updated','create','PHONE','inserted','cm_contacts.phone','cm_contacts.scheduledat','cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.priority','cm_contacts.UserId','insert','cm_hopper','phone','ContactId','ListId','createdAt','updatedAt','priority','recallme','fields','cm_contacts','.CmListId','.CmListId\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','\x22always\x22','\x22onlyIfOpen\x22','toString','cm_contacts.id','cm_contacts.ListId','fromQuery','cm_contacts.createdAt\x20=\x20?','cm_hopper_black','ListId\x20=\x20?','date_add(cm_contacts.scheduledat,interval\x20','.offset-cm_contacts.utcOffset\x20minute)','into','scheduledat','UserId','cm_contacts.ListId\x20=\x20','cm_hopper.id','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','cm_hopper.ListId\x20=\x20?','concat','CompanyId',')\x20NOT\x20IN\x20?','deletedAt\x20IS\x20NULL','id\x20IN\x20?','info','Received\x20SIGINT','error','message','errors','code','sequelize','query','catch','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.id\x20=\x20voice_queues_has_cm_lists.VoiceQueueId','voice_queues_has_cm_lists.CmListId=','dialTimezone','utcOffset','set','offset','spread','main','stringify','send','binding','clone','socket_timestamp','root','server/files/tmp','keys','includes','header','ContactItemType','findAll','name','_description','parse','createReadStream','data','find','hasOwnProperty','trim','replace','isValid','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNaN','isNumber','agent\x20not\x20exists','email','dateOfBirth','timezones','firstName','itemTypeId','SystemRow','appendFileSync','rows','emit','Abort\x20parser','abort','SystemError','step','duplicates','cm_contacts_','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','campaigns_','voice_queues_','each','dialTimezone,utcOffset',',\x20scheduledAt\x20=\x20NOW()','DROP\x20TABLE\x20','contactId','contactTypeId','voice_queues_has_cm_lists','VoiceQueueId','voice_queues_has_cm_blacklists','voice_queues'];(function(_0x18b5e8,_0x51e875){var _0x25baed=function(_0x3fcdf9){while(--_0x3fcdf9){_0x18b5e8['push'](_0x18b5e8['shift']());}};_0x25baed(++_0x51e875);}(_0xa54e,0xcd));var _0xea54=function(_0x40162a,_0x265b0c){_0x40162a=_0x40162a-0x0;var _0x488161=_0xa54e[_0x40162a];return _0x488161;};'use strict';var fs=require('fs');var path=require(_0xea54('0x0'));var _=require(_0xea54('0x1'));var Papa=require(_0xea54('0x2'));var util=require('util');var BPromise=require('bluebird');var moment=require(_0xea54('0x3'));var squel=require(_0xea54('0x4'));var Redis=require(_0xea54('0x5'));var db=require(_0xea54('0x6'))['db'];var config=require(_0xea54('0x7'));var shared=require('../../../config/environment/shared');var logger=require(_0xea54('0x8'))(_0xea54('0x9'));config[_0xea54('0xa')]=_[_0xea54('0xb')](config[_0xea54('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0xea54('0xc'))(new Redis(config[_0xea54('0xa')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var promisesAdditionalPhones=[];var orderBy=0x0;var stopped=![];var NOW=moment()[_0xea54('0xd')](_0xea54('0xe'));var contactItemTypes=[];var phoneDescriptions=[];var hasAdditionalPhones=![];var tmp_voice_queues;var tmp_campaigns;var tzOffset=0x0;var hasTZ;var NOW=moment()[_0xea54('0xd')](_0xea54('0xe'));function isEmail(_0x1d3db7){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))*$/[_0xea54('0xf')](_0x1d3db7);}function selectNotIn(_0xe2dc6a,_0x269bb8,_0x25090f,_0x2bc300,_0x554f9c){return squel[_0xea54('0x10')]()[_0xea54('0x11')]('phone')[_0xea54('0x12')](_0x2bc300)[_0xea54('0x13')](_0x269bb8,null,_0x269bb8+_0xea54('0x14')+_0x2bc300+'.'+_0x25090f)[_0xea54('0x15')](_0x2bc300+'.'+_0x25090f+_0xea54('0x16')+_0xe2dc6a+'.'+_0x25090f)['where'](_0x269bb8+_0xea54('0x17')+_0x554f9c['join']()+')');}function handleAdditionalPhones(){return new Promise(function(_0x5789c2,_0x39277c){promisesAdditionalPhones=[];return db[_0xea54('0x18')]['findAll']({'raw':!![],'attributes':['id',_0xea54('0x19')],'where':{'createdAt':NOW,'AdditionalPhones':{'$ne':null}}})[_0xea54('0x1a')](function(_0x40204b){if(_0x40204b!==null){var _0x44fb47=[];for(var _0x5c1cbf=0x0;_0x5c1cbf<_0x40204b[_0xea54('0x1b')];_0x5c1cbf++){var _0xcd94bb=_0x40204b[_0x5c1cbf];_0x44fb47['push'](insertAdditionalPhones(_0xcd94bb));}}Promise[_0xea54('0x1c')](_0x44fb47)['then'](function(){_0x5789c2({'val':0x1});});});});}function insertAdditionalPhones(_0x2b72bb){return new Promise(function(_0x5cfb83,_0x57f34b){var _0xfe99f6=_0x2b72bb['AdditionalPhones'];var _0x1ce964=_0xfe99f6[_0xea54('0x1d')](';');var _0x4cc43a=[];orderBy=0x0;for(var _0x42abe5=0x0;_0x42abe5<_0x1ce964['length'];_0x42abe5++){_0x4cc43a[_0xea54('0x1e')](splitAdditionalPhone(_0x2b72bb['id'],_0x1ce964[_0x42abe5]));}Promise[_0xea54('0x1c')](_0x4cc43a)['then'](function(){_0x5cfb83({'val':_0x1ce964[_0xea54('0x1b')]});});});}function splitAdditionalPhone(_0x2efef6,_0xb2238){return new Promise(function(_0x266c89,_0x2e5a54){var _0x421e42=_0xb2238['split'](':');var _0xf4df9d=_0x421e42[0x0];var _0x4e18bf=_0x421e42[0x1];if(!_[_0xea54('0x1f')](_0x4e18bf)){var _0x439298=_0x4e18bf[_0xea54('0x1d')]('|');var _0x2e18b7=[];for(var _0x5b5b5f=0x0;_0x5b5b5f<_0x439298[_0xea54('0x1b')];_0x5b5b5f++){if(_0x439298[_0x5b5b5f]!==''){var _0x4e2685=_[_0xea54('0x20')](promisesAdditionalPhones,{'contactId':_0x2efef6,'phone':_0x439298[_0x5b5b5f]});if(_0x4e2685[_0xea54('0x1b')]==0x0){orderBy++;promisesAdditionalPhones[_0xea54('0x1e')]({'contactId':_0x2efef6,'contactTypeId':_0xf4df9d,'phone':_0x439298[_0x5b5b5f],'orderBy':orderBy});}}}_0x266c89({'ok':0x1});}else _0x266c89({'res':0x0});});}function createAdditionalPhone(_0x778840,_0x8d3327,_0x2a4f24,_0x330411){var _0x5695ce='';var _0x5a3652='';var _0x58e2f8=_0x2a4f24[_0xea54('0x1d')]('§');_0x5695ce=_0x58e2f8[0x0];if(_0x58e2f8[_0xea54('0x1b')]==0x2)_0x5a3652=_0x58e2f8[0x1];return new Promise(function(_0x4f4b45,_0x3fa221){return db[_0xea54('0x21')][_0xea54('0x22')]({'where':{'CmContactId':_0x778840,'item':_0x5695ce}})[_0xea54('0x1a')](function(_0x5cc70a){if(_0x5cc70a){return db[_0xea54('0x21')][_0xea54('0x23')]({'ItemTypeId':_0x8d3327,'description':_0x5a3652,'OrderBy':_0x330411},{'where':{'CmContactId':_0x778840,'item':_0x5695ce}})[_0xea54('0x1a')](function(_0x3e3731){_0x4f4b45({'res':_0xea54('0x24')});});}else{return db[_0xea54('0x21')][_0xea54('0x25')]({'CmContactId':_0x778840,'item':_0x5695ce,'description':_0x5a3652,'ItemTypeId':_0x8d3327,'OrderBy':_0x330411,'ItemClass':_0xea54('0x26')})[_0xea54('0x1a')](function(_0x36b9a8){_0x4f4b45({'res':_0xea54('0x27')});});}});});}function insertCmHopper(_0x28acd5,_0x5ae607,_0x49547f,_0x9e42bf,_0x1f80f5){var _0x2b0de5=[_0xea54('0x28'),_0xea54('0x29'),'cm_contacts.id','cm_contacts.ListId',_0x5ae607+'.'+_0x9e42bf,_0xea54('0x2a'),_0xea54('0x2b'),_0xea54('0x2c'),_0xea54('0x2d'),'\x22'+_0x1f80f5+'\x22'];return squel[_0xea54('0x2e')]()['into'](_0xea54('0x2f'))['fromQuery']([_0xea54('0x30'),'scheduledat',_0xea54('0x31'),_0xea54('0x32'),_0x9e42bf,_0xea54('0x33'),_0xea54('0x34'),_0xea54('0x35'),'UserId',_0xea54('0x36')],squel[_0xea54('0x10')]()[_0xea54('0x37')](_0x2b0de5)[_0xea54('0x12')](_0x5ae607)['join'](_0xea54('0x38'),null,'cm_contacts.ListId\x20=\x20'+_0x5ae607+_0xea54('0x39'))[_0xea54('0x13')](_0x49547f,null,_0x49547f+_0xea54('0x14')+_0x5ae607+'.'+_0x9e42bf)[_0xea54('0x15')](_0x5ae607+_0xea54('0x3a'),_0x28acd5)[_0xea54('0x15')]('cm_contacts.createdAt\x20=\x20?',NOW)['where'](_0xea54('0x3b'),selectNotIn(_0x5ae607,_0x49547f,_0x9e42bf,_0xea54('0x2f'),[_0xea54('0x3c'),_0xea54('0x3d')]))['where'](_0xea54('0x3b'),selectNotIn(_0x5ae607,_0x49547f,_0x9e42bf,'cm_hopper',[_0xea54('0x3c')])))[_0xea54('0x3e')]();}function insertCmHopperBlack(_0x257c7b,_0x34c6ad,_0x202705,_0x224a73){var _0x408fb5=['cm_contacts.phone',_0xea54('0x3f'),_0xea54('0x40'),_0x34c6ad+'.'+_0x224a73,_0xea54('0x2a'),'cm_contacts.updatedAt'];return squel[_0xea54('0x2e')]()['into']('cm_hopper_black')[_0xea54('0x41')](['phone','ContactId','ListId',_0x224a73,'createdAt',_0xea54('0x34')],squel[_0xea54('0x10')]()[_0xea54('0x37')](_0x408fb5)[_0xea54('0x12')](_0x34c6ad)[_0xea54('0x13')](_0xea54('0x38'),null,'cm_contacts.ListId\x20=\x20'+_0x34c6ad+'.CmListId')[_0xea54('0x13')](_0x202705,null,_0x202705+_0xea54('0x14')+_0x34c6ad+'.'+_0x224a73)[_0xea54('0x15')](_0x34c6ad+_0xea54('0x3a'),_0x257c7b)[_0xea54('0x15')](_0xea54('0x42'),NOW)[_0xea54('0x15')](_0xea54('0x3b'),squel[_0xea54('0x10')]()[_0xea54('0x11')](_0xea54('0x30'))[_0xea54('0x12')](_0xea54('0x43'))['where'](_0xea54('0x44'),_0x257c7b)[_0xea54('0x15')](_0x224a73+_0xea54('0x16')+_0x34c6ad+'.'+_0x224a73)))[_0xea54('0x3e')]();}function insertTzCmHopper(_0x13eb34,_0x180030,_0x46511c,_0x5f0089,_0x2096f3,_0x16e486){var _0x4114c4=[_0xea54('0x28'),_0xea54('0x45')+_0x16e486+_0xea54('0x46'),_0xea54('0x3f'),_0xea54('0x40'),_0x180030+'.'+_0x5f0089,_0xea54('0x2a'),_0xea54('0x2b'),_0xea54('0x2c'),_0xea54('0x2d'),'\x22'+_0x2096f3+'\x22'];var _0x52f7f5=squel[_0xea54('0x2e')]()[_0xea54('0x47')](_0xea54('0x2f'))['fromQuery']([_0xea54('0x30'),_0xea54('0x48'),_0xea54('0x31'),_0xea54('0x32'),_0x5f0089,_0xea54('0x33'),_0xea54('0x34'),_0xea54('0x35'),_0xea54('0x49'),'recallme'],squel[_0xea54('0x10')]()['fields'](_0x4114c4)['from'](_0x180030)[_0xea54('0x13')](_0xea54('0x38'),null,_0xea54('0x4a')+_0x180030+'.CmListId')[_0xea54('0x13')](_0x46511c,null,_0x46511c+_0xea54('0x14')+_0x180030+'.'+_0x5f0089)[_0xea54('0x13')](_0x16e486,null,_0x16e486+_0xea54('0x14')+_0x180030+'.'+_0x5f0089)[_0xea54('0x15')](_0x180030+_0xea54('0x3a'),_0x13eb34)['where'](_0xea54('0x42'),NOW)[_0xea54('0x15')](_0xea54('0x3b'),selectNotIn(_0x180030,_0x46511c,_0x5f0089,'cm_hopper',[_0xea54('0x3c'),_0xea54('0x3d')]))[_0xea54('0x15')](_0xea54('0x3b'),selectNotIn(_0x180030,_0x46511c,_0x5f0089,_0xea54('0x2f'),[_0xea54('0x3c')])))[_0xea54('0x3e')]();return _0x52f7f5;}function insertTzCmHopperBlack(_0x327661,_0x51fd49,_0x260dfe,_0x5a9d84){var _0x5da11d=['cm_contacts.phone',_0xea54('0x3f'),_0xea54('0x40'),_0x51fd49+'.'+_0x5a9d84,'cm_contacts.createdAt',_0xea54('0x2b')];return squel[_0xea54('0x2e')]()[_0xea54('0x47')](_0xea54('0x43'))[_0xea54('0x41')](['phone',_0xea54('0x31'),_0xea54('0x32'),_0x5a9d84,_0xea54('0x33'),_0xea54('0x34')],squel['select']()[_0xea54('0x37')](_0x5da11d)[_0xea54('0x12')](_0x51fd49)[_0xea54('0x13')](_0xea54('0x38'),null,'cm_contacts.ListId\x20=\x20'+_0x51fd49+_0xea54('0x39'))[_0xea54('0x13')](_0x260dfe,null,_0x260dfe+_0xea54('0x14')+_0x51fd49+'.'+_0x5a9d84)[_0xea54('0x15')](_0x51fd49+_0xea54('0x3a'),_0x327661)[_0xea54('0x15')](_0xea54('0x42'),NOW)[_0xea54('0x15')](_0xea54('0x3b'),squel[_0xea54('0x10')]()[_0xea54('0x11')](_0xea54('0x30'))[_0xea54('0x12')](_0xea54('0x43'))[_0xea54('0x15')](_0xea54('0x44'),_0x327661)[_0xea54('0x15')](_0x5a9d84+_0xea54('0x16')+_0x51fd49+'.'+_0x5a9d84)))['toString']();}function insertCmHopperAdditionalPhones(_0x1398a7){var _0x5aad50=[_0xea54('0x4b'),'cm_contact_has_items.item',_0xea54('0x4c'),_0xea54('0x4d'),_0xea54('0x4e')];return squel[_0xea54('0x2e')]()['into'](_0xea54('0x4f'))['fromQuery']([_0xea54('0x50'),_0xea54('0x30'),'OrderBy',_0xea54('0x33'),_0xea54('0x34')],squel['select']()[_0xea54('0x37')](_0x5aad50)[_0xea54('0x12')]('cm_hopper')[_0xea54('0x13')](_0xea54('0x38'),null,_0xea54('0x51'))[_0xea54('0x13')](_0xea54('0x52'),null,_0xea54('0x53'))['where'](_0xea54('0x54'),_0x1398a7)[_0xea54('0x15')](_0xea54('0x42'),NOW))[_0xea54('0x3e')]();}function insertCmContact(_0x8f8917,_0x195e84,_0x996131,_0x17845e){var _0x552f2c=_[_0xea54('0x55')](_['keys'](_0x17845e),[_0xea54('0x32'),_0xea54('0x56'),'createdAt',_0xea54('0x34')]);return squel[_0xea54('0x2e')]()[_0xea54('0x47')](_0xea54('0x38'))[_0xea54('0x41')](_0x552f2c,squel[_0xea54('0x10')]()[_0xea54('0x37')](_0x552f2c)[_0xea54('0x12')](_0x195e84)['where']('('+_0x996131['join'](',')+_0xea54('0x57'),squel[_0xea54('0x10')]()[_0xea54('0x37')](_0x996131)['from'](_0xea54('0x38'))[_0xea54('0x15')](_0xea54('0x44'),_0x8f8917)[_0xea54('0x15')](_0xea54('0x58')))[_0xea54('0x15')](_0xea54('0x59'),squel['select']()[_0xea54('0x11')]('MIN(id)','min_id')[_0xea54('0x12')](_0x195e84)['group'](_0x996131[_0xea54('0x13')](','))))[_0xea54('0x3e')]();}function handleStop(){logger[_0xea54('0x5a')](_0xea54('0x5b'));stopped=!![];}function handleUncaughtException(_0x388b73){logger[_0xea54('0x5c')](_0x388b73[_0xea54('0x5d')]);process['exit'](0x1);}function handleError(_0x5d468e,_0x2f740b){stats[_0xea54('0x5e')][_0xea54('0x1e')]({'name':_0x2f740b[_0xea54('0x5f')],'message':_0x2f740b[_0xea54('0x5d')],'row':_0x5d468e});}function handleQuery(_0x4cab64){logger[_0xea54('0x5a')](_0x4cab64);return db[_0xea54('0x60')][_0xea54('0x61')](_0x4cab64)['spread'](function(_0x1640a4){results[_0xea54('0x1e')](_0x1640a4);})[_0xea54('0x62')](function(_0x1a04dd){logger[_0xea54('0x5c')](_0x1a04dd[_0xea54('0x5d')]);});}function updateTzCampaigns(_0x5a677e){return new Promise(function(_0x23de23,_0x327669){var _0xf844a6=squel[_0xea54('0x10')]()[_0xea54('0x37')](['campaigns.id',_0xea54('0x63')])[_0xea54('0x12')](_0xea54('0x64'))['join'](_0xea54('0x65'),null,_0xea54('0x66'))['where'](_0xea54('0x67')+_0x5a677e);db[_0xea54('0x60')][_0xea54('0x61')](_0xf844a6[_0xea54('0x3e')]())['spread'](function(_0xbd7c9c){var _0x96dea4=[];for(var _0x306259=0x0;_0x306259<_0xbd7c9c['length'];_0x306259++){_0x96dea4['push'](getTimezoneData(_0xbd7c9c[_0x306259],tmp_campaigns));}BPromise['all'](_0x96dea4)[_0xea54('0x1a')](function(){_0x23de23({'val':0x1});});})[_0xea54('0x62')](function(_0x3a1541){logger[_0xea54('0x5c')](_0x3a1541[_0xea54('0x5d')]);_0x23de23({'val':0x0});});});}function updateTzVoiceQueues(_0x4e898f){return new Promise(function(_0x30ff47,_0x5a4341){var _0x496cc8=squel['select']()['fields']([_0xea54('0x68'),_0xea54('0x69')])[_0xea54('0x12')]('voice_queues')[_0xea54('0x13')]('voice_queues_has_cm_lists',null,_0xea54('0x6a'))[_0xea54('0x15')](_0xea54('0x6b')+_0x4e898f);db[_0xea54('0x60')][_0xea54('0x61')](_0x496cc8[_0xea54('0x3e')]())['spread'](function(_0x4b35f2){var _0xa18395=[];for(var _0x34b1ff=0x0;_0x34b1ff<_0x4b35f2['length'];_0x34b1ff++){_0xa18395[_0xea54('0x1e')](getTimezoneData(_0x4b35f2[_0x34b1ff],tmp_voice_queues));}BPromise[_0xea54('0x1c')](_0xa18395)[_0xea54('0x1a')](function(){_0x30ff47({'val':0x1});});})[_0xea54('0x62')](function(_0x5413e8){logger[_0xea54('0x5c')](_0x5413e8[_0xea54('0x5d')]);_0x30ff47({'val':0x0});});});}function getTimezoneData(_0x2a5cfb,_0x11f26a){return new Promise(function(_0x55dddc,_0x42d620){var _0x5eecf7=shared['timezones'];var _0x3e16fb=_0x5eecf7[_0x2a5cfb[_0xea54('0x6c')]];if(_[_0xea54('0x1f')](_0x3e16fb)){_0x55dddc({'ret':0x1});}else{var _0x1b6eeb=_0x3e16fb[_0xea54('0x6d')];var _0x4fb748=squel[_0xea54('0x2e')]()[_0xea54('0x47')](_0x11f26a)[_0xea54('0x6e')]('id',_0x2a5cfb['id'])[_0xea54('0x6e')](_0xea54('0x6f'),_0x1b6eeb)[_0xea54('0x6e')](_0xea54('0x6c'),_0x2a5cfb[_0xea54('0x6c')])[_0xea54('0x3e')]();return db[_0xea54('0x60')][_0xea54('0x61')](_0x4fb748)[_0xea54('0x70')](function(_0x3b3690){_0x55dddc({'ret':0x1});})[_0xea54('0x62')](function(_0x1cdfd1){logger[_0xea54('0x5c')](_0x1cdfd1[_0xea54('0x5d')]);_0x42d620({'ret':0x1});});}});}function handleTZQuery(_0x426451){logger['info'](_0x426451);return db[_0xea54('0x60')][_0xea54('0x61')](_0x426451)[_0xea54('0x70')](function(_0x522fcc){})['catch'](function(_0x1bd123){logger[_0xea54('0x5c')](_0x1bd123[_0xea54('0x5d')]);});}function main(_0x5367a6,_0x44ecae,_0x442a7b,_0xeb9066){logger['info'](_0xea54('0x71'),_0x5367a6,JSON[_0xea54('0x72')](_0x44ecae));process[_0xea54('0x73')]('start');var _0x38ad4e=_0x44ecae[_0xea54('0x74')];var _0x21a0e4=_[_0xea54('0x75')](_0x38ad4e);var _0xad954c=_0x44ecae[_0xea54('0x76')];var _0x3a0278=path[_0xea54('0x13')](config[_0xea54('0x77')],_0xea54('0x78'),_0xad954c+'.csv');hasTZ=_[_0xea54('0x79')](_0x38ad4e)[_0xea54('0x7a')](_0xea54('0x6c'));var _0x418741=_['keys'](_0x38ad4e)['join']();logger['info'](_0xea54('0x7b'),_0x418741);db[_0xea54('0x7c')][_0xea54('0x7d')]({'raw':!![],'attributes':['id',_0xea54('0x7e')]})[_0xea54('0x1a')](function(_0x390e4d){for(var _0x188b0a=0x0;_0x188b0a<_0x390e4d[_0xea54('0x1b')];_0x188b0a++){if(_0x390e4d[_0x188b0a][_0xea54('0x7e')]in _0x38ad4e){contactItemTypes['push'](_0x390e4d[_0x188b0a]);delete _0x21a0e4[_0x390e4d[_0x188b0a][_0xea54('0x7e')]];hasAdditionalPhones=!![];}for(var _0x2bc501 in _0x38ad4e){if(_0x390e4d[_0x188b0a][_0xea54('0x7e')]+_0xea54('0x7f')===_0x2bc501){phoneDescriptions[_0xea54('0x1e')]({'itemTypeId':_0x390e4d[_0x188b0a]['id'],'description':_0x2bc501});delete _0x21a0e4[_0x2bc501];}}}if(hasAdditionalPhones)_0x21a0e4['AdditionalPhones']='';var _0x1cc260=_[_0xea54('0x79')](_0x21a0e4)[_0xea54('0x13')]();logger[_0xea54('0x5a')](_0xea54('0x7b'),_0x1cc260);fs['writeFileSync'](_0x3a0278,_0x1cc260+'\x0a');Papa[_0xea54('0x80')](fs[_0xea54('0x81')](_0x5367a6),{'header':!![],'skipEmptyLines':!![],'step':function(_0x4409fd,_0x482edf){try{for(var _0x394671=0x0,_0x3496c8=[];_0x394671<_0x4409fd[_0xea54('0x82')][_0xea54('0x1b')];_0x394671++){stats['rows']+=0x1;if(_0x4409fd['errors'][_0x394671]){handleError(_0x4409fd[_0xea54('0x82')][_0x394671],_0x4409fd[_0xea54('0x5e')][_0x394671]);}else{var _0x887e77=[];var _0xae8499=[];var _0x290c5c={};for(var _0x296e3a in _0x38ad4e){let _0x49f8c7=contactItemTypes[_0xea54('0x83')](_0x240e36=>_0x240e36[_0xea54('0x7e')]===_0x296e3a);let _0x699036=contactItemTypes['find'](_0x1c03b9=>_0x1c03b9[_0xea54('0x7e')]+_0xea54('0x7f')===_0x296e3a);if(_[_0xea54('0x1f')](_0x49f8c7)&&_[_0xea54('0x1f')](_0x699036)){if(_0x38ad4e[_0xea54('0x84')](_0x296e3a)){if(_0x4409fd[_0xea54('0x82')][_0x394671][_0x38ad4e[_0x296e3a]]){var _0xbdd8bd=_[_0xea54('0x85')](_0x4409fd[_0xea54('0x82')][_0x394671][_0x38ad4e[_0x296e3a]][_0xea54('0x86')](/"/g,'\x27'));switch(_0x296e3a){case _0xea54('0x48'):var _0x5b8312=moment(_0xbdd8bd,_0xea54('0xe'),!![]);if(_0x5b8312[_0xea54('0x87')]()){_0x3496c8['push']('\x22'+_0xbdd8bd+'\x22');}else{_0x887e77[_0xea54('0x1e')](_0xea54('0x88'));}break;case _0xea54('0x35'):var _0x448501=parseInt(_0xbdd8bd);_0xbdd8bd=_[_0xea54('0x89')](_0x448501)||_0x448501<0x0||_0x448501>0x4?_0xeb9066?0x3:0x2:_0x448501;_0x3496c8[_0xea54('0x1e')]('\x22'+_0xbdd8bd+'\x22');break;case _0xea54('0x49'):var _0x3a6800=parseInt(_0xbdd8bd);if(_[_0xea54('0x8a')](_0x3a6800)&&_[_0xea54('0x7a')](_0x442a7b,_0x3a6800)){_0x3496c8[_0xea54('0x1e')]('\x22'+_0x3a6800+'\x22');}else{_0x887e77[_0xea54('0x1e')](_0xea54('0x8b'));}break;case _0xea54('0x8c'):if(isEmail(_0xbdd8bd)){_0x3496c8[_0xea54('0x1e')]('\x22'+_0xbdd8bd+'\x22');}else{_0x887e77[_0xea54('0x1e')]('email\x20wrong\x20format');}break;case _0xea54('0x8d'):var _0x3720ab=moment(_0xbdd8bd,'YYYY-MM-DD',!![]);if(_0x3720ab[_0xea54('0x87')]()){_0x3496c8[_0xea54('0x1e')]('\x22'+_0xbdd8bd+'\x22');}else{_0x887e77[_0xea54('0x1e')]('dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)');}break;case'dialTimezone':var _0x50db39=shared[_0xea54('0x8e')];var _0x538008=_0x50db39[_0xbdd8bd];if(!_[_0xea54('0x1f')](_0x538008)){var _0x17a4a1=_0x538008['utcOffset'];_0x3496c8[_0xea54('0x1e')]('\x22'+_0xbdd8bd+'\x22');_0x3496c8[_0xea54('0x1e')]('\x22'+_0x17a4a1+'\x22');}break;default:_0x3496c8['push']('\x22'+_0xbdd8bd+'\x22');}}else{switch(_0x296e3a){case _0xea54('0x8f'):case'phone':_0x887e77[_0xea54('0x1e')](_0x296e3a+'\x20not\x20specified');break;default:_0x3496c8['push']('\x22\x22');}}}}else{var _0x56e2c3='';if(!_['isNil'](_0x49f8c7)){if(!_0x290c5c['hasOwnProperty'](_0x49f8c7['id'])){if(!_['isNil'](_0x4409fd[_0xea54('0x82')][_0x394671][_0x38ad4e[_0x296e3a]])){var _0xbdd8bd=_[_0xea54('0x85')](_0x4409fd[_0xea54('0x82')][_0x394671][_0x38ad4e[_0x296e3a]][_0xea54('0x86')](/"/g,'\x27'));var _0x31d132=phoneDescriptions['find'](_0x2414ce=>_0x2414ce[_0xea54('0x90')]===_0x49f8c7['id']);if(!_[_0xea54('0x1f')](_0x31d132)){var _0x44b401=_[_0xea54('0x85')](_0x4409fd['data'][_0x394671][_0x38ad4e[_0x31d132['description']]]['replace'](/"/g,'\x27'));if(!_[_0xea54('0x1f')](_0x44b401))_0xbdd8bd=_0xbdd8bd+'§'+_0x44b401;}if(_0x56e2c3=='')_0x56e2c3=_0xbdd8bd;else _0x56e2c3+='|'+_0xbdd8bd;}_0xae8499[_0xea54('0x1e')](_0x49f8c7['id']+':'+_0x56e2c3);_0x290c5c[_0x49f8c7['id']]=0x1;}}}}if(hasAdditionalPhones){_0x3496c8[_0xea54('0x1e')]('\x22'+_0xae8499[_0xea54('0x13')](';')+'\x22');}if(_0x887e77[_0xea54('0x1b')]){handleError(_0x4409fd[_0xea54('0x82')][_0x394671],{'code':_0xea54('0x91'),'message':_0x887e77[_0xea54('0x13')]()});}else{fs[_0xea54('0x92')](_0x3a0278,_0x3496c8[_0xea54('0x13')]()+'\x0a');}_0x3496c8=[];}if(!(stats[_0xea54('0x93')]%0xc8)){socket[_0xea54('0x94')]('contact:import:'+_0xad954c,stats);stats[_0xea54('0x5e')]=[];}}if(stopped){logger[_0xea54('0x5a')](_0xea54('0x95'));_0x482edf[_0xea54('0x96')]();}}catch(_0x24bfb0){handleError(_0x4409fd[_0xea54('0x82')][_0x394671],{'code':_0xea54('0x97'),'message':_0x24bfb0[_0xea54('0x5d')]});logger['error'](_0xea54('0x98'),_0x24bfb0['message']);}},'complete':function(){try{var _0x1d1da2=[];var _0x46ea2f=[];var _0x1731b8=_0xea54('0x38');if(_0x44ecae[_0xea54('0x99')]&&_0x44ecae[_0xea54('0x99')][_0xea54('0x1b')]){_0x1731b8=_0xea54('0x9a')+_0xad954c;_0x1d1da2['push'](_0xea54('0x9b')+_0x1731b8+_0xea54('0x9c'));}tmp_campaigns=_0xea54('0x9d')+_0xad954c;tmp_voice_queues=_0xea54('0x9e')+_0xad954c;_0x46ea2f[_0xea54('0x1e')](_0xea54('0x9b')+tmp_campaigns+'(id\x20int,dialTimezone\x20varchar(255),offset\x20int);');_0x46ea2f[_0xea54('0x1e')](_0xea54('0x9b')+tmp_voice_queues+'(id\x20int,dialTimezone\x20varchar(255),offset\x20int);');BPromise[_0xea54('0x9f')](_0x46ea2f,handleTZQuery)[_0xea54('0x1a')](function(_0x15bc6c){updateTzCampaigns(_0x44ecae[_0xea54('0x32')])[_0xea54('0x1a')](function(_0x3807cd){updateTzVoiceQueues(_0x44ecae[_0xea54('0x32')])[_0xea54('0x1a')](function(_0x3d522b){if(hasTZ)_0x1cc260=_0x1cc260[_0xea54('0x86')](_0xea54('0x6c'),_0xea54('0xa0'));var _0x210f94=util[_0xea54('0xd')]('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',_0x3a0278,_0x1731b8,_0x1cc260,_0x44ecae[_0xea54('0x32')],_0x44ecae[_0xea54('0x56')]||null,NOW,NOW);if(_['isNil'](_0x38ad4e[_0xea54('0x48')])){_0x210f94+=_0xea54('0xa1');}_0x1d1da2[_0xea54('0x1e')](_0x210f94);if(_0x44ecae[_0xea54('0x99')]&&_0x44ecae[_0xea54('0x99')][_0xea54('0x1b')]){_0x1d1da2[_0xea54('0x1e')](insertCmContact(_0x44ecae[_0xea54('0x32')],_0x1731b8,_0x44ecae[_0xea54('0x99')],_0x38ad4e));_0x1d1da2[_0xea54('0x1e')](_0xea54('0xa2')+_0x1731b8+';');}BPromise[_0xea54('0x9f')](_0x1d1da2,handleQuery)[_0xea54('0x1a')](function(_0x32cb70){BPromise['all']([handleAdditionalPhones()])[_0xea54('0x1a')](function(){_0x1d1da2=[];for(var _0x12a118=0x0;_0x12a118<promisesAdditionalPhones[_0xea54('0x1b')];_0x12a118++){if(promisesAdditionalPhones[_0x12a118]['phone']!='§'){_0x1d1da2[_0xea54('0x1e')](createAdditionalPhone(promisesAdditionalPhones[_0x12a118][_0xea54('0xa3')],promisesAdditionalPhones[_0x12a118][_0xea54('0xa4')],promisesAdditionalPhones[_0x12a118]['phone'],promisesAdditionalPhones[_0x12a118]['orderBy']));}}BPromise[_0xea54('0x1c')](_0x1d1da2)[_0xea54('0x1a')](function(){_0x1d1da2=[];if(hasTZ){_0x1d1da2[_0xea54('0x1e')](insertTzCmHopper(_0x44ecae[_0xea54('0x32')],_0xea54('0xa5'),'voice_queues',_0xea54('0xa6'),_0xeb9066,tmp_voice_queues));_0x1d1da2[_0xea54('0x1e')](insertTzCmHopperBlack(_0x44ecae['ListId'],_0xea54('0xa7'),_0xea54('0xa8'),_0xea54('0xa6')));_0x1d1da2['push'](insertTzCmHopper(_0x44ecae[_0xea54('0x32')],_0xea54('0x65'),_0xea54('0x64'),'CampaignId',_0xeb9066,tmp_campaigns));_0x1d1da2[_0xea54('0x1e')](insertTzCmHopperBlack(_0x44ecae['ListId'],_0xea54('0xa9'),_0xea54('0x64'),_0xea54('0xaa')));_0x1d1da2[_0xea54('0x1e')](insertCmHopperAdditionalPhones(_0x44ecae[_0xea54('0x32')]));}else{_0x1d1da2[_0xea54('0x1e')](insertCmHopper(_0x44ecae['ListId'],_0xea54('0xa5'),'voice_queues',_0xea54('0xa6'),_0xeb9066));_0x1d1da2[_0xea54('0x1e')](insertCmHopperBlack(_0x44ecae['ListId'],_0xea54('0xa7'),_0xea54('0xa8'),'VoiceQueueId'));_0x1d1da2['push'](insertCmHopper(_0x44ecae['ListId'],'campaigns_has_cm_lists',_0xea54('0x64'),_0xea54('0xaa'),_0xeb9066));_0x1d1da2[_0xea54('0x1e')](insertCmHopperBlack(_0x44ecae['ListId'],_0xea54('0xa9'),_0xea54('0x64'),_0xea54('0xaa')));_0x1d1da2['push'](insertCmHopperAdditionalPhones(_0x44ecae[_0xea54('0x32')]));}_0x1d1da2[_0xea54('0x1e')](_0xea54('0xa2')+tmp_campaigns+';');_0x1d1da2[_0xea54('0x1e')](_0xea54('0xa2')+tmp_voice_queues+';');BPromise[_0xea54('0x9f')](_0x1d1da2,handleQuery)[_0xea54('0x1a')](function(_0x3b1fca){stats[_0xea54('0xab')]=!![];stats[_0xea54('0xac')]=_0x44ecae[_0xea54('0x99')]&&_0x44ecae['duplicates'][_0xea54('0x1b')]?results[0x2]['affectedRows']:results[0x0][_0xea54('0xac')];socket[_0xea54('0x94')](_0xea54('0xad')+_0xad954c,stats);fs[_0xea54('0xae')](_0x5367a6);fs[_0xea54('0xae')](_0x3a0278);process[_0xea54('0xaf')](0x0);})['catch'](function(_0x208f03){logger[_0xea54('0x5c')](_0x208f03[_0xea54('0x5d')]);process[_0xea54('0xaf')](0x1);});});});})[_0xea54('0x62')](function(_0x3f6866){logger[_0xea54('0x5c')](_0x3f6866['message']);process['exit'](0x1);});});});});}catch(_0x791620){logger[_0xea54('0x5c')](_0xea54('0xb0'),_0x791620[_0xea54('0x5d')]);process[_0xea54('0xaf')](0x1);}},'error':function(_0x51ea00,_0x10b2e3,_0x2c1091,_0x573858){throw new Error(_0x573858);}});});}function validate(){if(process[_0xea54('0xb1')]&&process[_0xea54('0xb1')]['length']<0x4){throw new Error('arguments\x20<filename>\x20<parameters>\x20<agents>');}var _0x30702f=path['join'](config[_0xea54('0x77')],_0xea54('0x78'),process['argv'][0x2]);if(!fs[_0xea54('0xb2')](_0x30702f)){throw new Error(_0xea54('0xb3'));}var _0x54ef21={};try{_0x54ef21=JSON[_0xea54('0x80')](process['argv'][0x3]);if(!_0x54ef21[_0xea54('0x74')]){throw new Error(_0xea54('0xb4'));}if(!_0x54ef21[_0xea54('0x74')][_0xea54('0x30')]){throw new Error(_0xea54('0xb5'));}if(!_0x54ef21[_0xea54('0x74')][_0xea54('0x8f')]){throw new Error(_0xea54('0xb6'));}var _0x1c83a8=0x0;if(_0x54ef21[_0xea54('0x74')][_0xea54('0x49')]){_0x1c83a8=0x1;}if(!_0x54ef21[_0xea54('0x32')]){throw new Error(_0xea54('0xb7'));}}catch(_0x726c4e){throw new Error('body\x20id\x20mandatory');}var _0x4d525a=[];try{_0x4d525a=_['map'](JSON[_0xea54('0x80')](process['argv'][0x4]),'id');}catch(_0x2d255a){logger[_0xea54('0x5a')](_0xea54('0xb8'));}main(_0x30702f,_0x54ef21,_0x4d525a,_0x1c83a8);}validate();process['on'](_0xea54('0xb9'),handleStop);process['on'](_0xea54('0xba'),handleUncaughtException);