c3978ae10568f0d7ea5e584b0de8f46719e3f098
[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 _0xd958=['voice_queues','voice_queues_has_cm_lists','voice_queues.id\x20=\x20voice_queues_has_cm_lists.VoiceQueueId','voice_queues_has_cm_lists.CmListId=','all','catch','dialTimezone','isNil','utcOffset','set','offset','main','stringify','start','binding','clone','socket_timestamp','server/files/tmp','.csv','includes','name','writeFileSync','parse','createReadStream','data','rows','find','hasOwnProperty','isValid','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNaN','isNumber','email','email\x20wrong\x20format','YYYY-MM-DD','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','timezones','firstName','trim','replace','itemTypeId','SystemRow','contact:import:','Abort\x20parser','SystemError','step','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','campaigns_','voice_queues_','(id\x20int,dialTimezone\x20varchar(255),offset\x20int);','each','dialTimezone,utcOffset','LOAD\x20DATA\x20LOCAL\x20INFILE\x20\x27%s\x27\x20INTO\x20TABLE\x20%s\x20CHARACTER\x20SET\x20UTF8\x20FIELDS\x20TERMINATED\x20BY\x20\x27,\x27\x20ENCLOSED\x20BY\x20\x27\x22\x27\x20LINES\x20TERMINATED\x20BY\x20\x27\x0a\x27\x20IGNORE\x201\x20ROWS\x20(%s)\x20SET\x20id\x20=\x20NULL,\x20ListId\x20=\x20%s,\x20CompanyId\x20=\x20%s,\x20createdAt\x20=\x20\x27%s\x27,\x20updatedAt\x20=\x20\x27%s\x27',',\x20scheduledAt\x20=\x20NOW()','duplicates','DROP\x20TABLE\x20','contactTypeId','orderBy','VoiceQueueId','campaigns','campaigns_has_cm_blacklists','voice_queues_has_cm_blacklists','CampaignId','affectedRows','complete','argv','root','file\x20doesn\x27t\x20exists','firstName\x20is\x20mandatory','ListId\x20is\x20mandatory','No\x20agent\x20available','SIGINT','uncaughtException','papaparse','util','bluebird','moment','squel','ioredis','../../../mysqldb','../../../config/environment','../../../config/environment/shared','../../../config/logger','import','redis','defaults','localhost','socket.io-emitter','format','YYYY-MM-DD\x20HH:mm:ss','test','select','field','phone','from','join','where','\x20=\x20','CmContact','AdditionalPhones','then','length','push','split','filter','CmContactHasItem','findOne','updated','PHONE','inserted','cm_contacts.scheduledat','cm_contacts.id','cm_contacts.updatedAt','cm_contacts.priority','cm_contacts.UserId','into','cm_hopper','fromQuery','scheduledat','ListId','updatedAt','priority','recallme','fields','cm_contacts','.CmListId','.id\x20=\x20','.CmListId\x20=\x20?','cm_contacts.createdAt\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','\x22always\x22','\x22onlyIfOpen\x22','toString','cm_contacts.phone','cm_contacts.ListId','cm_contacts.createdAt','insert','cm_hopper_black','ContactId','createdAt','cm_contacts.ListId\x20=\x20','ListId\x20=\x20?','date_add(cm_contacts.scheduledat,interval\x20','.offset-cm_contacts.utcOffset\x20minute)','UserId','cm_hopper.id','cm_contact_has_items.item','cm_contact_has_items.createdAt','cm_contact_has_items.updatedAt','CmHopperId','OrderBy','cm_contacts.id\x20=\x20cm_contact_has_items.CmContactId','cm_hopper.ListId\x20=\x20?','concat','keys','CompanyId',')\x20NOT\x20IN\x20?','deletedAt\x20IS\x20NULL','id\x20IN\x20?','MIN(id)','min_id','group','info','error','message','exit','errors','sequelize','query','spread','campaigns.dialTimezone','campaigns_has_cm_lists','campaigns.id\x20=\x20campaigns_has_cm_lists.CampaignId','campaigns_has_cm_lists.CmListId=','voice_queues.dialTimezone'];(function(_0x4d8789,_0x3fdff1){var _0x404e41=function(_0x33d5a6){while(--_0x33d5a6){_0x4d8789['push'](_0x4d8789['shift']());}};_0x404e41(++_0x3fdff1);}(_0xd958,0x1aa));var _0x8d95=function(_0x20a558,_0x160e0e){_0x20a558=_0x20a558-0x0;var _0x53d3f7=_0xd958[_0x20a558];return _0x53d3f7;};'use strict';var fs=require('fs');var path=require('path');var _=require('lodash');var Papa=require(_0x8d95('0x0'));var util=require(_0x8d95('0x1'));var BPromise=require(_0x8d95('0x2'));var moment=require(_0x8d95('0x3'));var squel=require(_0x8d95('0x4'));var Redis=require(_0x8d95('0x5'));var db=require(_0x8d95('0x6'))['db'];var config=require(_0x8d95('0x7'));var shared=require(_0x8d95('0x8'));var logger=require(_0x8d95('0x9'))(_0x8d95('0xa'));config[_0x8d95('0xb')]=_[_0x8d95('0xc')](config[_0x8d95('0xb')],{'host':_0x8d95('0xd'),'port':0x18eb});var socket=require(_0x8d95('0xe'))(new Redis(config['redis']));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var promisesAdditionalPhones=[];var orderBy=0x0;var stopped=![];var NOW=moment()[_0x8d95('0xf')]('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()[_0x8d95('0xf')](_0x8d95('0x10'));function isEmail(_0x969180){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))*$/[_0x8d95('0x11')](_0x969180);}function selectNotIn(_0x21a21f,_0x5532f9,_0x5a1d0f,_0x17d06c,_0x2d2500){return squel[_0x8d95('0x12')]()[_0x8d95('0x13')](_0x8d95('0x14'))[_0x8d95('0x15')](_0x17d06c)[_0x8d95('0x16')](_0x5532f9,null,_0x5532f9+'.id\x20=\x20'+_0x17d06c+'.'+_0x5a1d0f)[_0x8d95('0x17')](_0x17d06c+'.'+_0x5a1d0f+_0x8d95('0x18')+_0x21a21f+'.'+_0x5a1d0f)[_0x8d95('0x17')](_0x5532f9+'.dialCheckDuplicateType\x20IN\x20('+_0x2d2500[_0x8d95('0x16')]()+')');}function handleAdditionalPhones(){return new Promise(function(_0x718d68,_0x5c2d46){promisesAdditionalPhones=[];return db[_0x8d95('0x19')]['findAll']({'raw':!![],'attributes':['id',_0x8d95('0x1a')],'where':{'createdAt':NOW,'AdditionalPhones':{'$ne':null}}})[_0x8d95('0x1b')](function(_0x8975b1){if(_0x8975b1!==null){var _0x2e99dd=[];for(var _0x482685=0x0;_0x482685<_0x8975b1[_0x8d95('0x1c')];_0x482685++){var _0x1cf820=_0x8975b1[_0x482685];_0x2e99dd[_0x8d95('0x1d')](insertAdditionalPhones(_0x1cf820));}}Promise['all'](_0x2e99dd)['then'](function(){_0x718d68({'val':0x1});});});});}function insertAdditionalPhones(_0x45262c){return new Promise(function(_0x136c1b,_0x2b7c6f){var _0x3bac2b=_0x45262c[_0x8d95('0x1a')];var _0xafab8=_0x3bac2b[_0x8d95('0x1e')](';');var _0xd8a4ac=[];orderBy=0x0;for(var _0x2ab441=0x0;_0x2ab441<_0xafab8[_0x8d95('0x1c')];_0x2ab441++){_0xd8a4ac['push'](splitAdditionalPhone(_0x45262c['id'],_0xafab8[_0x2ab441]));}Promise['all'](_0xd8a4ac)[_0x8d95('0x1b')](function(){_0x136c1b({'val':_0xafab8[_0x8d95('0x1c')]});});});}function splitAdditionalPhone(_0x5c8258,_0x4b6136){return new Promise(function(_0x3ce473,_0x5a2a18){var _0x373439=_0x4b6136[_0x8d95('0x1e')](':');var _0x1adcbe=_0x373439[0x0];var _0x5826f3=_0x373439[0x1];if(!_['isNil'](_0x5826f3)){var _0x312e07=_0x5826f3[_0x8d95('0x1e')]('|');var _0x544b07=[];for(var _0xb76a51=0x0;_0xb76a51<_0x312e07[_0x8d95('0x1c')];_0xb76a51++){if(_0x312e07[_0xb76a51]!==''){var _0x40f613=_[_0x8d95('0x1f')](promisesAdditionalPhones,{'contactId':_0x5c8258,'phone':_0x312e07[_0xb76a51]});if(_0x40f613[_0x8d95('0x1c')]==0x0){orderBy++;promisesAdditionalPhones[_0x8d95('0x1d')]({'contactId':_0x5c8258,'contactTypeId':_0x1adcbe,'phone':_0x312e07[_0xb76a51],'orderBy':orderBy});}}}_0x3ce473({'ok':0x1});}else _0x3ce473({'res':0x0});});}function createAdditionalPhone(_0x4429c1,_0x219e68,_0x436894,_0x4dc0c7){var _0x353422='';var _0x590d1b='';var _0xa1d03a=_0x436894[_0x8d95('0x1e')]('§');_0x353422=_0xa1d03a[0x0];if(_0xa1d03a['length']==0x2)_0x590d1b=_0xa1d03a[0x1];return new Promise(function(_0x526ecf,_0x2458bd){return db[_0x8d95('0x20')][_0x8d95('0x21')]({'where':{'CmContactId':_0x4429c1,'item':_0x353422}})[_0x8d95('0x1b')](function(_0x3bdae6){if(_0x3bdae6){return db[_0x8d95('0x20')]['update']({'ItemTypeId':_0x219e68,'description':_0x590d1b,'OrderBy':_0x4dc0c7},{'where':{'CmContactId':_0x4429c1,'item':_0x353422}})['then'](function(_0x506bb1){_0x526ecf({'res':_0x8d95('0x22')});});}else{return db[_0x8d95('0x20')]['create']({'CmContactId':_0x4429c1,'item':_0x353422,'description':_0x590d1b,'ItemTypeId':_0x219e68,'OrderBy':_0x4dc0c7,'ItemClass':_0x8d95('0x23')})[_0x8d95('0x1b')](function(_0x2d4876){_0x526ecf({'res':_0x8d95('0x24')});});}});});}function insertCmHopper(_0x50ab81,_0x19744e,_0x48857d,_0x58b9cb,_0x11365c){var _0x50687e=['cm_contacts.phone',_0x8d95('0x25'),_0x8d95('0x26'),'cm_contacts.ListId',_0x19744e+'.'+_0x58b9cb,'cm_contacts.createdAt',_0x8d95('0x27'),_0x8d95('0x28'),_0x8d95('0x29'),'\x22'+_0x11365c+'\x22'];return squel['insert']()[_0x8d95('0x2a')](_0x8d95('0x2b'))[_0x8d95('0x2c')](['phone',_0x8d95('0x2d'),'ContactId',_0x8d95('0x2e'),_0x58b9cb,'createdAt',_0x8d95('0x2f'),_0x8d95('0x30'),'UserId',_0x8d95('0x31')],squel[_0x8d95('0x12')]()[_0x8d95('0x32')](_0x50687e)[_0x8d95('0x15')](_0x19744e)['join'](_0x8d95('0x33'),null,'cm_contacts.ListId\x20=\x20'+_0x19744e+_0x8d95('0x34'))['join'](_0x48857d,null,_0x48857d+_0x8d95('0x35')+_0x19744e+'.'+_0x58b9cb)[_0x8d95('0x17')](_0x19744e+_0x8d95('0x36'),_0x50ab81)[_0x8d95('0x17')](_0x8d95('0x37'),NOW)[_0x8d95('0x17')](_0x8d95('0x38'),selectNotIn(_0x19744e,_0x48857d,_0x58b9cb,_0x8d95('0x2b'),[_0x8d95('0x39'),_0x8d95('0x3a')]))[_0x8d95('0x17')](_0x8d95('0x38'),selectNotIn(_0x19744e,_0x48857d,_0x58b9cb,_0x8d95('0x2b'),['\x22always\x22'])))[_0x8d95('0x3b')]();}function insertCmHopperBlack(_0x366c14,_0x40ee22,_0x4610e9,_0x444f5c){var _0x233c5e=[_0x8d95('0x3c'),_0x8d95('0x26'),_0x8d95('0x3d'),_0x40ee22+'.'+_0x444f5c,_0x8d95('0x3e'),_0x8d95('0x27')];return squel[_0x8d95('0x3f')]()[_0x8d95('0x2a')](_0x8d95('0x40'))[_0x8d95('0x2c')]([_0x8d95('0x14'),_0x8d95('0x41'),'ListId',_0x444f5c,_0x8d95('0x42'),_0x8d95('0x2f')],squel[_0x8d95('0x12')]()[_0x8d95('0x32')](_0x233c5e)[_0x8d95('0x15')](_0x40ee22)['join'](_0x8d95('0x33'),null,_0x8d95('0x43')+_0x40ee22+'.CmListId')['join'](_0x4610e9,null,_0x4610e9+_0x8d95('0x35')+_0x40ee22+'.'+_0x444f5c)['where'](_0x40ee22+'.CmListId\x20=\x20?',_0x366c14)[_0x8d95('0x17')](_0x8d95('0x37'),NOW)[_0x8d95('0x17')](_0x8d95('0x38'),squel[_0x8d95('0x12')]()[_0x8d95('0x13')](_0x8d95('0x14'))[_0x8d95('0x15')](_0x8d95('0x40'))[_0x8d95('0x17')](_0x8d95('0x44'),_0x366c14)[_0x8d95('0x17')](_0x444f5c+_0x8d95('0x18')+_0x40ee22+'.'+_0x444f5c)))[_0x8d95('0x3b')]();}function insertTzCmHopper(_0x25fc2d,_0x5ca513,_0x1817e0,_0x3e952d,_0x7b0655,_0x554461){var _0x502a02=['cm_contacts.phone',_0x8d95('0x45')+_0x554461+_0x8d95('0x46'),_0x8d95('0x26'),_0x8d95('0x3d'),_0x5ca513+'.'+_0x3e952d,_0x8d95('0x3e'),'cm_contacts.updatedAt',_0x8d95('0x28'),'cm_contacts.UserId','\x22'+_0x7b0655+'\x22'];var _0x35577f=squel['insert']()['into']('cm_hopper')[_0x8d95('0x2c')]([_0x8d95('0x14'),_0x8d95('0x2d'),'ContactId',_0x8d95('0x2e'),_0x3e952d,_0x8d95('0x42'),_0x8d95('0x2f'),_0x8d95('0x30'),_0x8d95('0x47'),_0x8d95('0x31')],squel['select']()['fields'](_0x502a02)[_0x8d95('0x15')](_0x5ca513)[_0x8d95('0x16')](_0x8d95('0x33'),null,_0x8d95('0x43')+_0x5ca513+_0x8d95('0x34'))[_0x8d95('0x16')](_0x1817e0,null,_0x1817e0+_0x8d95('0x35')+_0x5ca513+'.'+_0x3e952d)[_0x8d95('0x16')](_0x554461,null,_0x554461+'.id\x20=\x20'+_0x5ca513+'.'+_0x3e952d)[_0x8d95('0x17')](_0x5ca513+'.CmListId\x20=\x20?',_0x25fc2d)[_0x8d95('0x17')](_0x8d95('0x37'),NOW)[_0x8d95('0x17')](_0x8d95('0x38'),selectNotIn(_0x5ca513,_0x1817e0,_0x3e952d,_0x8d95('0x2b'),['\x22always\x22',_0x8d95('0x3a')]))[_0x8d95('0x17')](_0x8d95('0x38'),selectNotIn(_0x5ca513,_0x1817e0,_0x3e952d,'cm_hopper',[_0x8d95('0x39')])))[_0x8d95('0x3b')]();return _0x35577f;}function insertTzCmHopperBlack(_0x55cfd9,_0x1b1851,_0x9d536c,_0x5dc106){var _0x5c75ef=[_0x8d95('0x3c'),_0x8d95('0x26'),_0x8d95('0x3d'),_0x1b1851+'.'+_0x5dc106,'cm_contacts.createdAt',_0x8d95('0x27')];return squel[_0x8d95('0x3f')]()[_0x8d95('0x2a')](_0x8d95('0x40'))['fromQuery'](['phone',_0x8d95('0x41'),'ListId',_0x5dc106,_0x8d95('0x42'),_0x8d95('0x2f')],squel['select']()[_0x8d95('0x32')](_0x5c75ef)['from'](_0x1b1851)[_0x8d95('0x16')](_0x8d95('0x33'),null,_0x8d95('0x43')+_0x1b1851+_0x8d95('0x34'))[_0x8d95('0x16')](_0x9d536c,null,_0x9d536c+_0x8d95('0x35')+_0x1b1851+'.'+_0x5dc106)[_0x8d95('0x17')](_0x1b1851+'.CmListId\x20=\x20?',_0x55cfd9)['where']('cm_contacts.createdAt\x20=\x20?',NOW)[_0x8d95('0x17')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',squel[_0x8d95('0x12')]()['field'](_0x8d95('0x14'))[_0x8d95('0x15')](_0x8d95('0x40'))['where'](_0x8d95('0x44'),_0x55cfd9)[_0x8d95('0x17')](_0x5dc106+_0x8d95('0x18')+_0x1b1851+'.'+_0x5dc106)))[_0x8d95('0x3b')]();}function insertCmHopperAdditionalPhones(_0x5646be){var _0x35dfaf=[_0x8d95('0x48'),_0x8d95('0x49'),'cm_contact_has_items.OrderBy',_0x8d95('0x4a'),_0x8d95('0x4b')];return squel['insert']()['into']('cm_hopper_additional_phones')[_0x8d95('0x2c')]([_0x8d95('0x4c'),_0x8d95('0x14'),_0x8d95('0x4d'),'createdAt',_0x8d95('0x2f')],squel[_0x8d95('0x12')]()[_0x8d95('0x32')](_0x35dfaf)[_0x8d95('0x15')](_0x8d95('0x2b'))[_0x8d95('0x16')](_0x8d95('0x33'),null,'cm_contacts.id\x20=\x20cm_hopper.ContactId')[_0x8d95('0x16')]('cm_contact_has_items',null,_0x8d95('0x4e'))[_0x8d95('0x17')](_0x8d95('0x4f'),_0x5646be)['where'](_0x8d95('0x37'),NOW))[_0x8d95('0x3b')]();}function insertCmContact(_0x80411d,_0x51a240,_0x5af60d,_0x22b4d7){var _0x5e6ef9=_[_0x8d95('0x50')](_[_0x8d95('0x51')](_0x22b4d7),[_0x8d95('0x2e'),_0x8d95('0x52'),'createdAt',_0x8d95('0x2f')]);return squel['insert']()[_0x8d95('0x2a')](_0x8d95('0x33'))[_0x8d95('0x2c')](_0x5e6ef9,squel[_0x8d95('0x12')]()[_0x8d95('0x32')](_0x5e6ef9)[_0x8d95('0x15')](_0x51a240)[_0x8d95('0x17')]('('+_0x5af60d[_0x8d95('0x16')](',')+_0x8d95('0x53'),squel[_0x8d95('0x12')]()[_0x8d95('0x32')](_0x5af60d)['from'](_0x8d95('0x33'))[_0x8d95('0x17')](_0x8d95('0x44'),_0x80411d)[_0x8d95('0x17')](_0x8d95('0x54')))[_0x8d95('0x17')](_0x8d95('0x55'),squel[_0x8d95('0x12')]()[_0x8d95('0x13')](_0x8d95('0x56'),_0x8d95('0x57'))[_0x8d95('0x15')](_0x51a240)[_0x8d95('0x58')](_0x5af60d['join'](','))))[_0x8d95('0x3b')]();}function handleStop(){logger[_0x8d95('0x59')]('Received\x20SIGINT');stopped=!![];}function handleUncaughtException(_0x1ba099){logger[_0x8d95('0x5a')](_0x1ba099[_0x8d95('0x5b')]);process[_0x8d95('0x5c')](0x1);}function handleError(_0x13ae37,_0x39472c){stats[_0x8d95('0x5d')]['push']({'name':_0x39472c['code'],'message':_0x39472c[_0x8d95('0x5b')],'row':_0x13ae37});}function handleQuery(_0x4ac850){logger[_0x8d95('0x59')](_0x4ac850);return db[_0x8d95('0x5e')][_0x8d95('0x5f')](_0x4ac850)[_0x8d95('0x60')](function(_0x46459c){results[_0x8d95('0x1d')](_0x46459c);})['catch'](function(_0x4a879c){logger[_0x8d95('0x5a')](_0x4a879c['message']);});}function updateTzCampaigns(_0x12312b){return new Promise(function(_0x193161,_0x2e2992){var _0x299f37=squel[_0x8d95('0x12')]()[_0x8d95('0x32')](['campaigns.id',_0x8d95('0x61')])[_0x8d95('0x15')]('campaigns')[_0x8d95('0x16')](_0x8d95('0x62'),null,_0x8d95('0x63'))['where'](_0x8d95('0x64')+_0x12312b);db['sequelize']['query'](_0x299f37['toString']())[_0x8d95('0x60')](function(_0x3e6538){var _0x41b8d7=[];for(var _0x3342bd=0x0;_0x3342bd<_0x3e6538[_0x8d95('0x1c')];_0x3342bd++){_0x41b8d7[_0x8d95('0x1d')](getTimezoneData(_0x3e6538[_0x3342bd],tmp_campaigns));}BPromise['all'](_0x41b8d7)[_0x8d95('0x1b')](function(){_0x193161({'val':0x1});});})['catch'](function(_0x562b48){logger['error'](_0x562b48[_0x8d95('0x5b')]);_0x193161({'val':0x0});});});}function updateTzVoiceQueues(_0x15b4ca){return new Promise(function(_0x2e6d9c,_0x887da){var _0x2a07bf=squel['select']()[_0x8d95('0x32')](['voice_queues.id',_0x8d95('0x65')])[_0x8d95('0x15')](_0x8d95('0x66'))[_0x8d95('0x16')](_0x8d95('0x67'),null,_0x8d95('0x68'))[_0x8d95('0x17')](_0x8d95('0x69')+_0x15b4ca);db[_0x8d95('0x5e')][_0x8d95('0x5f')](_0x2a07bf[_0x8d95('0x3b')]())['spread'](function(_0x43a495){var _0x1793ec=[];for(var _0x3fe8ef=0x0;_0x3fe8ef<_0x43a495['length'];_0x3fe8ef++){_0x1793ec['push'](getTimezoneData(_0x43a495[_0x3fe8ef],tmp_voice_queues));}BPromise[_0x8d95('0x6a')](_0x1793ec)['then'](function(){_0x2e6d9c({'val':0x1});});})[_0x8d95('0x6b')](function(_0x498b4e){logger['error'](_0x498b4e[_0x8d95('0x5b')]);_0x2e6d9c({'val':0x0});});});}function getTimezoneData(_0x27fa80,_0x465051){return new Promise(function(_0x1ae039,_0x5232de){var _0x3f5757=shared['timezones'];var _0x2a8120=_0x3f5757[_0x27fa80[_0x8d95('0x6c')]];if(_[_0x8d95('0x6d')](_0x2a8120)){_0x1ae039({'ret':0x1});}else{var _0x1b2db4=_0x2a8120[_0x8d95('0x6e')];var _0x5637d2=squel[_0x8d95('0x3f')]()[_0x8d95('0x2a')](_0x465051)[_0x8d95('0x6f')]('id',_0x27fa80['id'])[_0x8d95('0x6f')](_0x8d95('0x70'),_0x1b2db4)['set'](_0x8d95('0x6c'),_0x27fa80[_0x8d95('0x6c')])[_0x8d95('0x3b')]();return db[_0x8d95('0x5e')]['query'](_0x5637d2)['spread'](function(_0x12641a){_0x1ae039({'ret':0x1});})[_0x8d95('0x6b')](function(_0x230ddb){logger['error'](_0x230ddb[_0x8d95('0x5b')]);_0x5232de({'ret':0x1});});}});}function handleTZQuery(_0x20892f){logger['info'](_0x20892f);return db[_0x8d95('0x5e')][_0x8d95('0x5f')](_0x20892f)[_0x8d95('0x60')](function(_0x506f27){})[_0x8d95('0x6b')](function(_0xb42764){logger[_0x8d95('0x5a')](_0xb42764[_0x8d95('0x5b')]);});}function main(_0x3c63c7,_0x5a8563,_0x226e02,_0x33f8cd){logger['info'](_0x8d95('0x71'),_0x3c63c7,JSON[_0x8d95('0x72')](_0x5a8563));process['send'](_0x8d95('0x73'));var _0x39c11a=_0x5a8563[_0x8d95('0x74')];var _0x4942c3=_[_0x8d95('0x75')](_0x39c11a);var _0x180dd8=_0x5a8563[_0x8d95('0x76')];var _0x586024=path[_0x8d95('0x16')](config['root'],_0x8d95('0x77'),_0x180dd8+_0x8d95('0x78'));hasTZ=_[_0x8d95('0x51')](_0x39c11a)[_0x8d95('0x79')]('dialTimezone');var _0x43db95=_[_0x8d95('0x51')](_0x39c11a)[_0x8d95('0x16')]();logger[_0x8d95('0x59')]('header',_0x43db95);db['ContactItemType']['findAll']({'raw':!![],'attributes':['id',_0x8d95('0x7a')]})[_0x8d95('0x1b')](function(_0x13b61e){for(var _0x1658c4=0x0;_0x1658c4<_0x13b61e['length'];_0x1658c4++){if(_0x13b61e[_0x1658c4][_0x8d95('0x7a')]in _0x39c11a){contactItemTypes[_0x8d95('0x1d')](_0x13b61e[_0x1658c4]);delete _0x4942c3[_0x13b61e[_0x1658c4][_0x8d95('0x7a')]];hasAdditionalPhones=!![];}for(var _0x13a6b5 in _0x39c11a){if(_0x13b61e[_0x1658c4][_0x8d95('0x7a')]+'_description'===_0x13a6b5){phoneDescriptions[_0x8d95('0x1d')]({'itemTypeId':_0x13b61e[_0x1658c4]['id'],'description':_0x13a6b5});delete _0x4942c3[_0x13a6b5];}}}if(hasAdditionalPhones)_0x4942c3[_0x8d95('0x1a')]='';var _0xc53f82=_[_0x8d95('0x51')](_0x4942c3)[_0x8d95('0x16')]();logger['info']('header',_0xc53f82);fs[_0x8d95('0x7b')](_0x586024,_0xc53f82+'\x0a');Papa[_0x8d95('0x7c')](fs[_0x8d95('0x7d')](_0x3c63c7),{'header':!![],'skipEmptyLines':!![],'step':function(_0x3c367e,_0x1831e2){try{for(var _0x495af4=0x0,_0x3757e0=[];_0x495af4<_0x3c367e[_0x8d95('0x7e')]['length'];_0x495af4++){stats[_0x8d95('0x7f')]+=0x1;if(_0x3c367e[_0x8d95('0x5d')][_0x495af4]){handleError(_0x3c367e[_0x8d95('0x7e')][_0x495af4],_0x3c367e[_0x8d95('0x5d')][_0x495af4]);}else{var _0x52ebb2=[];var _0x91cd5e=[];var _0x1b11de={};for(var _0x429fdf in _0x39c11a){let _0x337d99=contactItemTypes[_0x8d95('0x80')](_0x134c72=>_0x134c72['name']===_0x429fdf);let _0x4a431f=contactItemTypes[_0x8d95('0x80')](_0x13587f=>_0x13587f['name']+'_description'===_0x429fdf);if(_[_0x8d95('0x6d')](_0x337d99)&&_[_0x8d95('0x6d')](_0x4a431f)){if(_0x39c11a[_0x8d95('0x81')](_0x429fdf)){if(_0x3c367e[_0x8d95('0x7e')][_0x495af4][_0x39c11a[_0x429fdf]]){var _0x3cad78=_['trim'](_0x3c367e[_0x8d95('0x7e')][_0x495af4][_0x39c11a[_0x429fdf]]['replace'](/"/g,'\x27'));switch(_0x429fdf){case _0x8d95('0x2d'):var _0xc6be95=moment(_0x3cad78,_0x8d95('0x10'),!![]);if(_0xc6be95[_0x8d95('0x82')]()){_0x3757e0[_0x8d95('0x1d')]('\x22'+_0x3cad78+'\x22');}else{_0x52ebb2[_0x8d95('0x1d')](_0x8d95('0x83'));}break;case _0x8d95('0x30'):var _0x3091e2=parseInt(_0x3cad78);_0x3cad78=_[_0x8d95('0x84')](_0x3091e2)||_0x3091e2<0x0||_0x3091e2>0x4?_0x33f8cd?0x3:0x2:_0x3091e2;_0x3757e0[_0x8d95('0x1d')]('\x22'+_0x3cad78+'\x22');break;case'UserId':var _0x327553=parseInt(_0x3cad78);if(_[_0x8d95('0x85')](_0x327553)&&_[_0x8d95('0x79')](_0x226e02,_0x327553)){_0x3757e0[_0x8d95('0x1d')]('\x22'+_0x327553+'\x22');}else{_0x52ebb2[_0x8d95('0x1d')]('agent\x20not\x20exists');}break;case _0x8d95('0x86'):if(isEmail(_0x3cad78)){_0x3757e0['push']('\x22'+_0x3cad78+'\x22');}else{_0x52ebb2[_0x8d95('0x1d')](_0x8d95('0x87'));}break;case'dateOfBirth':var _0x2983d3=moment(_0x3cad78,_0x8d95('0x88'),!![]);if(_0x2983d3[_0x8d95('0x82')]()){_0x3757e0['push']('\x22'+_0x3cad78+'\x22');}else{_0x52ebb2[_0x8d95('0x1d')](_0x8d95('0x89'));}break;case'dialTimezone':var _0x2a40f6=shared[_0x8d95('0x8a')];var _0x260303=_0x2a40f6[_0x3cad78];if(!_[_0x8d95('0x6d')](_0x260303)){var _0x2edc6f=_0x260303[_0x8d95('0x6e')];_0x3757e0[_0x8d95('0x1d')]('\x22'+_0x3cad78+'\x22');_0x3757e0['push']('\x22'+_0x2edc6f+'\x22');}break;default:_0x3757e0[_0x8d95('0x1d')]('\x22'+_0x3cad78+'\x22');}}else{switch(_0x429fdf){case _0x8d95('0x8b'):case _0x8d95('0x14'):_0x52ebb2[_0x8d95('0x1d')](_0x429fdf+'\x20not\x20specified');break;default:_0x3757e0['push']('\x22\x22');}}}}else{var _0x2cf92d='';if(!_[_0x8d95('0x6d')](_0x337d99)){if(!_0x1b11de[_0x8d95('0x81')](_0x337d99['id'])){if(!_[_0x8d95('0x6d')](_0x3c367e[_0x8d95('0x7e')][_0x495af4][_0x39c11a[_0x429fdf]])){var _0x3cad78=_[_0x8d95('0x8c')](_0x3c367e[_0x8d95('0x7e')][_0x495af4][_0x39c11a[_0x429fdf]][_0x8d95('0x8d')](/"/g,'\x27'));var _0x2293de=phoneDescriptions[_0x8d95('0x80')](_0xa5d4f7=>_0xa5d4f7[_0x8d95('0x8e')]===_0x337d99['id']);if(!_['isNil'](_0x2293de)){var _0x56d10a=_['trim'](_0x3c367e[_0x8d95('0x7e')][_0x495af4][_0x39c11a[_0x2293de['description']]][_0x8d95('0x8d')](/"/g,'\x27'));if(!_[_0x8d95('0x6d')](_0x56d10a))_0x3cad78=_0x3cad78+'§'+_0x56d10a;}if(_0x2cf92d=='')_0x2cf92d=_0x3cad78;else _0x2cf92d+='|'+_0x3cad78;}_0x91cd5e[_0x8d95('0x1d')](_0x337d99['id']+':'+_0x2cf92d);_0x1b11de[_0x337d99['id']]=0x1;}}}}if(hasAdditionalPhones){_0x3757e0[_0x8d95('0x1d')]('\x22'+_0x91cd5e[_0x8d95('0x16')](';')+'\x22');}if(_0x52ebb2['length']){handleError(_0x3c367e[_0x8d95('0x7e')][_0x495af4],{'code':_0x8d95('0x8f'),'message':_0x52ebb2[_0x8d95('0x16')]()});}else{fs['appendFileSync'](_0x586024,_0x3757e0['join']()+'\x0a');}_0x3757e0=[];}if(!(stats[_0x8d95('0x7f')]%0xc8)){socket['emit'](_0x8d95('0x90')+_0x180dd8,stats);stats[_0x8d95('0x5d')]=[];}}if(stopped){logger[_0x8d95('0x59')](_0x8d95('0x91'));_0x1831e2['abort']();}}catch(_0x52e76e){handleError(_0x3c367e[_0x8d95('0x7e')][_0x495af4],{'code':_0x8d95('0x92'),'message':_0x52e76e[_0x8d95('0x5b')]});logger['error'](_0x8d95('0x93'),_0x52e76e[_0x8d95('0x5b')]);}},'complete':function(){try{var _0x48d914=[];var _0x5af28b=[];var _0x39561d=_0x8d95('0x33');if(_0x5a8563['duplicates']&&_0x5a8563['duplicates'][_0x8d95('0x1c')]){_0x39561d='cm_contacts_'+_0x180dd8;_0x48d914[_0x8d95('0x1d')](_0x8d95('0x94')+_0x39561d+_0x8d95('0x95'));}tmp_campaigns=_0x8d95('0x96')+_0x180dd8;tmp_voice_queues=_0x8d95('0x97')+_0x180dd8;_0x5af28b[_0x8d95('0x1d')](_0x8d95('0x94')+tmp_campaigns+_0x8d95('0x98'));_0x5af28b[_0x8d95('0x1d')](_0x8d95('0x94')+tmp_voice_queues+'(id\x20int,dialTimezone\x20varchar(255),offset\x20int);');BPromise[_0x8d95('0x99')](_0x5af28b,handleTZQuery)[_0x8d95('0x1b')](function(_0x4b208a){updateTzCampaigns(_0x5a8563[_0x8d95('0x2e')])[_0x8d95('0x1b')](function(_0x226a19){updateTzVoiceQueues(_0x5a8563[_0x8d95('0x2e')])[_0x8d95('0x1b')](function(_0xc95de8){if(hasTZ)_0xc53f82=_0xc53f82[_0x8d95('0x8d')]('dialTimezone',_0x8d95('0x9a'));var _0x477a49=util[_0x8d95('0xf')](_0x8d95('0x9b'),_0x586024,_0x39561d,_0xc53f82,_0x5a8563[_0x8d95('0x2e')],_0x5a8563['CompanyId']||null,NOW,NOW);if(_[_0x8d95('0x6d')](_0x39c11a[_0x8d95('0x2d')])){_0x477a49+=_0x8d95('0x9c');}_0x48d914[_0x8d95('0x1d')](_0x477a49);if(_0x5a8563[_0x8d95('0x9d')]&&_0x5a8563['duplicates'][_0x8d95('0x1c')]){_0x48d914[_0x8d95('0x1d')](insertCmContact(_0x5a8563[_0x8d95('0x2e')],_0x39561d,_0x5a8563[_0x8d95('0x9d')],_0x39c11a));_0x48d914['push'](_0x8d95('0x9e')+_0x39561d+';');}BPromise[_0x8d95('0x99')](_0x48d914,handleQuery)['then'](function(_0x207d2e){BPromise[_0x8d95('0x6a')]([handleAdditionalPhones()])[_0x8d95('0x1b')](function(){_0x48d914=[];for(var _0x5a1fe3=0x0;_0x5a1fe3<promisesAdditionalPhones[_0x8d95('0x1c')];_0x5a1fe3++){if(promisesAdditionalPhones[_0x5a1fe3][_0x8d95('0x14')]!='§'){_0x48d914[_0x8d95('0x1d')](createAdditionalPhone(promisesAdditionalPhones[_0x5a1fe3]['contactId'],promisesAdditionalPhones[_0x5a1fe3][_0x8d95('0x9f')],promisesAdditionalPhones[_0x5a1fe3]['phone'],promisesAdditionalPhones[_0x5a1fe3][_0x8d95('0xa0')]));}}BPromise[_0x8d95('0x6a')](_0x48d914)[_0x8d95('0x1b')](function(){_0x48d914=[];if(hasTZ){_0x48d914[_0x8d95('0x1d')](insertTzCmHopper(_0x5a8563[_0x8d95('0x2e')],_0x8d95('0x67'),'voice_queues',_0x8d95('0xa1'),_0x33f8cd,tmp_voice_queues));_0x48d914[_0x8d95('0x1d')](insertTzCmHopperBlack(_0x5a8563[_0x8d95('0x2e')],'voice_queues_has_cm_blacklists',_0x8d95('0x66'),_0x8d95('0xa1')));_0x48d914['push'](insertTzCmHopper(_0x5a8563[_0x8d95('0x2e')],_0x8d95('0x62'),_0x8d95('0xa2'),'CampaignId',_0x33f8cd,tmp_campaigns));_0x48d914['push'](insertTzCmHopperBlack(_0x5a8563['ListId'],_0x8d95('0xa3'),_0x8d95('0xa2'),'CampaignId'));_0x48d914[_0x8d95('0x1d')](insertCmHopperAdditionalPhones(_0x5a8563[_0x8d95('0x2e')]));}else{_0x48d914['push'](insertCmHopper(_0x5a8563[_0x8d95('0x2e')],_0x8d95('0x67'),_0x8d95('0x66'),_0x8d95('0xa1'),_0x33f8cd));_0x48d914[_0x8d95('0x1d')](insertCmHopperBlack(_0x5a8563['ListId'],_0x8d95('0xa4'),_0x8d95('0x66'),_0x8d95('0xa1')));_0x48d914['push'](insertCmHopper(_0x5a8563[_0x8d95('0x2e')],_0x8d95('0x62'),_0x8d95('0xa2'),_0x8d95('0xa5'),_0x33f8cd));_0x48d914[_0x8d95('0x1d')](insertCmHopperBlack(_0x5a8563[_0x8d95('0x2e')],_0x8d95('0xa3'),'campaigns',_0x8d95('0xa5')));_0x48d914[_0x8d95('0x1d')](insertCmHopperAdditionalPhones(_0x5a8563['ListId']));}_0x48d914['push'](_0x8d95('0x9e')+tmp_campaigns+';');_0x48d914[_0x8d95('0x1d')]('DROP\x20TABLE\x20'+tmp_voice_queues+';');BPromise['each'](_0x48d914,handleQuery)[_0x8d95('0x1b')](function(_0x24d767){stats['finish']=!![];stats[_0x8d95('0xa6')]=_0x5a8563[_0x8d95('0x9d')]&&_0x5a8563[_0x8d95('0x9d')][_0x8d95('0x1c')]?results[0x2][_0x8d95('0xa6')]:results[0x0]['affectedRows'];socket['emit']('contact:import:'+_0x180dd8,stats);fs['unlink'](_0x3c63c7);fs['unlink'](_0x586024);process[_0x8d95('0x5c')](0x0);})[_0x8d95('0x6b')](function(_0xa137ab){logger['error'](_0xa137ab[_0x8d95('0x5b')]);process[_0x8d95('0x5c')](0x1);});});});})['catch'](function(_0x31f68d){logger[_0x8d95('0x5a')](_0x31f68d['message']);process['exit'](0x1);});});});});}catch(_0x224e7f){logger['error'](_0x8d95('0xa7'),_0x224e7f[_0x8d95('0x5b')]);process[_0x8d95('0x5c')](0x1);}},'error':function(_0xfd9393,_0xac0ffe,_0x3e6dd7,_0x24a6a5){throw new Error(_0x24a6a5);}});});}function validate(){if(process[_0x8d95('0xa8')]&&process['argv']['length']<0x4){throw new Error('arguments\x20<filename>\x20<parameters>\x20<agents>');}var _0x582024=path[_0x8d95('0x16')](config[_0x8d95('0xa9')],_0x8d95('0x77'),process['argv'][0x2]);if(!fs['existsSync'](_0x582024)){throw new Error(_0x8d95('0xaa'));}var _0x396b58={};try{_0x396b58=JSON[_0x8d95('0x7c')](process['argv'][0x3]);if(!_0x396b58['binding']){throw new Error('binding\x20doesn\x27t\x20exists');}if(!_0x396b58[_0x8d95('0x74')][_0x8d95('0x14')]){throw new Error('phone\x20is\x20mandatory');}if(!_0x396b58[_0x8d95('0x74')][_0x8d95('0x8b')]){throw new Error(_0x8d95('0xab'));}var _0x25497f=0x0;if(_0x396b58[_0x8d95('0x74')][_0x8d95('0x47')]){_0x25497f=0x1;}if(!_0x396b58[_0x8d95('0x2e')]){throw new Error(_0x8d95('0xac'));}}catch(_0x250865){throw new Error('body\x20id\x20mandatory');}var _0x4ec934=[];try{_0x4ec934=_['map'](JSON['parse'](process[_0x8d95('0xa8')][0x4]),'id');}catch(_0x4eead9){logger[_0x8d95('0x59')](_0x8d95('0xad'));}main(_0x582024,_0x396b58,_0x4ec934,_0x25497f);}validate();process['on'](_0x8d95('0xae'),handleStop);process['on'](_0x8d95('0xaf'),handleUncaughtException);