aef69f7a8d515c418469322aa1cf885ca143e5e1
[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 _0x1667=['cm_hopper','scheduledat','ContactId','ListId','updatedAt','priority','UserId','recallme','fields','cm_contacts','cm_contacts.ListId\x20=\x20','.CmListId','.CmListId\x20=\x20?','\x22always\x22','\x22onlyIfOpen\x22','toString','cm_contacts.phone','cm_hopper_black','fromQuery','cm_contacts.createdAt\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','ListId\x20=\x20?','date_add(cm_contacts.scheduledat,interval\x20','cm_contacts.updatedAt','createdAt','cm_hopper.id','cm_contact_has_items.item','cm_contact_has_items.OrderBy','CmHopperId','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','keys','CompanyId','scheduledAt',')\x20NOT\x20IN\x20?','deletedAt\x20IS\x20NULL','id\x20IN\x20?','MIN(id)','min_id','group','info','Received\x20SIGINT','error','message','errors','code','sequelize','campaigns.dialTimezone','campaigns','campaigns_has_cm_lists','campaigns.id\x20=\x20campaigns_has_cm_lists.CampaignId','query','spread','catch','voice_queues.id','voice_queues.dialTimezone','voice_queues','voice_queues_has_cm_lists','voice_queues_has_cm_lists.CmListId=','timezones','dialTimezone','utcOffset','set','offset','stringify','send','start','binding','socket_timestamp','root','server/files/tmp','.csv','findAll','name','_description','header','writeFileSync','parse','data','rows','find','hasOwnProperty','trim','isValid','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNaN','includes','agent\x20not\x20exists','email','dateOfBirth','YYYY-MM-DD','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','firstName','\x20not\x20specified','replace','appendFileSync','contact:import:','abort','SystemError','duplicates','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','campaigns_','voice_queues_',',\x20scheduledAt\x20=\x20NOW()','each','contactId','contactTypeId','orderBy','VoiceQueueId','voice_queues_has_cm_blacklists','CampaignId','campaigns_has_cm_blacklists','DROP\x20TABLE\x20','affectedRows','unlink','exit','complete','argv','existsSync','file\x20doesn\x27t\x20exists','binding\x20doesn\x27t\x20exists','phone\x20is\x20mandatory','firstName\x20is\x20mandatory','ListId\x20is\x20mandatory','body\x20id\x20mandatory','map','No\x20agent\x20available','uncaughtException','path','lodash','papaparse','util','bluebird','moment','squel','ioredis','../../../mysqldb','../../../config/environment','import','redis','localhost','socket.io-emitter','format','YYYY-MM-DD\x20HH:mm:ss','test','select','field','phone','from','join','.id\x20=\x20','where','\x20=\x20','.dialCheckDuplicateType\x20IN\x20(','AdditionalPhones','then','all','split','length','push','isNil','filter','CmContactHasItem','findOne','update','create','PHONE','inserted','cm_contacts.id','cm_contacts.ListId','cm_contacts.createdAt','cm_contacts.priority','cm_contacts.UserId','insert','into'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0x1667,0x85));var _0x7166=function(_0x344a3f,_0x579a22){_0x344a3f=_0x344a3f-0x0;var _0x264712=_0x1667[_0x344a3f];return _0x264712;};'use strict';var fs=require('fs');var path=require(_0x7166('0x0'));var _=require(_0x7166('0x1'));var Papa=require(_0x7166('0x2'));var util=require(_0x7166('0x3'));var BPromise=require(_0x7166('0x4'));var moment=require(_0x7166('0x5'));var squel=require(_0x7166('0x6'));var Redis=require(_0x7166('0x7'));var db=require(_0x7166('0x8'))['db'];var config=require(_0x7166('0x9'));var shared=require('../../../config/environment/shared');var logger=require('../../../config/logger')(_0x7166('0xa'));config['redis']=_['defaults'](config[_0x7166('0xb')],{'host':_0x7166('0xc'),'port':0x18eb});var socket=require(_0x7166('0xd'))(new Redis(config['redis']));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var promisesAdditionalPhones=[];var orderBy=0x0;var stopped=![];var NOW=moment()[_0x7166('0xe')]('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'](_0x7166('0xf'));function isEmail(_0x3d274){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))*$/[_0x7166('0x10')](_0x3d274);}function selectNotIn(_0x329885,_0x3335ac,_0x36fa2a,_0x5078ae,_0x29965e){return squel[_0x7166('0x11')]()[_0x7166('0x12')](_0x7166('0x13'))[_0x7166('0x14')](_0x5078ae)[_0x7166('0x15')](_0x3335ac,null,_0x3335ac+_0x7166('0x16')+_0x5078ae+'.'+_0x36fa2a)[_0x7166('0x17')](_0x5078ae+'.'+_0x36fa2a+_0x7166('0x18')+_0x329885+'.'+_0x36fa2a)[_0x7166('0x17')](_0x3335ac+_0x7166('0x19')+_0x29965e[_0x7166('0x15')]()+')');}function handleAdditionalPhones(){return new Promise(function(_0x3a3496,_0x57108e){promisesAdditionalPhones=[];return db['CmContact']['findAll']({'raw':!![],'attributes':['id',_0x7166('0x1a')],'where':{'createdAt':NOW,'AdditionalPhones':{'$ne':null}}})[_0x7166('0x1b')](function(_0x480c04){if(_0x480c04!==null){var _0x590601=[];for(var _0x5a2f19=0x0;_0x5a2f19<_0x480c04['length'];_0x5a2f19++){var _0x57eb8f=_0x480c04[_0x5a2f19];_0x590601['push'](insertAdditionalPhones(_0x57eb8f));}}Promise[_0x7166('0x1c')](_0x590601)[_0x7166('0x1b')](function(){_0x3a3496({'val':0x1});});});});}function insertAdditionalPhones(_0x13f30f){return new Promise(function(_0x103c9c,_0x41d180){var _0x198c1d=_0x13f30f[_0x7166('0x1a')];var _0x1d6609=_0x198c1d[_0x7166('0x1d')](';');var _0x32a4b4=[];orderBy=0x0;for(var _0x5aebeb=0x0;_0x5aebeb<_0x1d6609[_0x7166('0x1e')];_0x5aebeb++){_0x32a4b4[_0x7166('0x1f')](splitAdditionalPhone(_0x13f30f['id'],_0x1d6609[_0x5aebeb]));}Promise['all'](_0x32a4b4)[_0x7166('0x1b')](function(){_0x103c9c({'val':_0x1d6609['length']});});});}function splitAdditionalPhone(_0x2facdf,_0x3c8b9b){return new Promise(function(_0x57de93,_0x2510db){var _0x38f270=_0x3c8b9b[_0x7166('0x1d')](':');var _0x33bb73=_0x38f270[0x0];var _0x1dbb6d=_0x38f270[0x1];if(!_[_0x7166('0x20')](_0x1dbb6d)){var _0x2966df=_0x1dbb6d[_0x7166('0x1d')]('|');var _0x270a08=[];for(var _0x1ccb66=0x0;_0x1ccb66<_0x2966df[_0x7166('0x1e')];_0x1ccb66++){if(_0x2966df[_0x1ccb66]!==''){var _0x1a64b1=_[_0x7166('0x21')](promisesAdditionalPhones,{'contactId':_0x2facdf,'phone':_0x2966df[_0x1ccb66]});if(_0x1a64b1[_0x7166('0x1e')]==0x0){orderBy++;promisesAdditionalPhones[_0x7166('0x1f')]({'contactId':_0x2facdf,'contactTypeId':_0x33bb73,'phone':_0x2966df[_0x1ccb66],'orderBy':orderBy});}}}_0x57de93({'ok':0x1});}else _0x57de93({'res':0x0});});}function createAdditionalPhone(_0x31b038,_0x187ae0,_0x1876ad,_0x19f101){var _0x364345='';var _0x465b71='';var _0x55bfb4=_0x1876ad[_0x7166('0x1d')]('§');_0x364345=_0x55bfb4[0x0];if(_0x55bfb4['length']==0x2)_0x465b71=_0x55bfb4[0x1];return new Promise(function(_0x152d55,_0x46a6ca){return db[_0x7166('0x22')][_0x7166('0x23')]({'where':{'CmContactId':_0x31b038,'item':_0x364345}})[_0x7166('0x1b')](function(_0x78c0d7){if(_0x78c0d7){return db[_0x7166('0x22')][_0x7166('0x24')]({'ItemTypeId':_0x187ae0,'description':_0x465b71,'OrderBy':_0x19f101},{'where':{'CmContactId':_0x31b038,'item':_0x364345}})[_0x7166('0x1b')](function(_0x3fa0fa){_0x152d55({'res':'updated'});});}else{return db[_0x7166('0x22')][_0x7166('0x25')]({'CmContactId':_0x31b038,'item':_0x364345,'description':_0x465b71,'ItemTypeId':_0x187ae0,'OrderBy':_0x19f101,'ItemClass':_0x7166('0x26')})['then'](function(_0x131db0){_0x152d55({'res':_0x7166('0x27')});});}});});}function insertCmHopper(_0x1e83ae,_0x8b75b0,_0x26be42,_0x24edc0,_0x56f698){var _0x28b6cb=['cm_contacts.phone','cm_contacts.scheduledat',_0x7166('0x28'),_0x7166('0x29'),_0x8b75b0+'.'+_0x24edc0,_0x7166('0x2a'),'cm_contacts.updatedAt',_0x7166('0x2b'),_0x7166('0x2c'),'\x22'+_0x56f698+'\x22'];return squel[_0x7166('0x2d')]()[_0x7166('0x2e')](_0x7166('0x2f'))['fromQuery']([_0x7166('0x13'),_0x7166('0x30'),_0x7166('0x31'),_0x7166('0x32'),_0x24edc0,'createdAt',_0x7166('0x33'),_0x7166('0x34'),_0x7166('0x35'),_0x7166('0x36')],squel[_0x7166('0x11')]()[_0x7166('0x37')](_0x28b6cb)[_0x7166('0x14')](_0x8b75b0)[_0x7166('0x15')](_0x7166('0x38'),null,_0x7166('0x39')+_0x8b75b0+_0x7166('0x3a'))[_0x7166('0x15')](_0x26be42,null,_0x26be42+_0x7166('0x16')+_0x8b75b0+'.'+_0x24edc0)[_0x7166('0x17')](_0x8b75b0+_0x7166('0x3b'),_0x1e83ae)[_0x7166('0x17')]('cm_contacts.createdAt\x20=\x20?',NOW)[_0x7166('0x17')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x8b75b0,_0x26be42,_0x24edc0,'cm_hopper',[_0x7166('0x3c'),_0x7166('0x3d')]))[_0x7166('0x17')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x8b75b0,_0x26be42,_0x24edc0,_0x7166('0x2f'),[_0x7166('0x3c')])))[_0x7166('0x3e')]();}function insertCmHopperBlack(_0x52be2f,_0x4bd9fd,_0xf0e539,_0x225671){var _0x1d6dee=[_0x7166('0x3f'),_0x7166('0x28'),_0x7166('0x29'),_0x4bd9fd+'.'+_0x225671,_0x7166('0x2a'),'cm_contacts.updatedAt'];return squel[_0x7166('0x2d')]()[_0x7166('0x2e')](_0x7166('0x40'))[_0x7166('0x41')]([_0x7166('0x13'),'ContactId',_0x7166('0x32'),_0x225671,'createdAt','updatedAt'],squel[_0x7166('0x11')]()[_0x7166('0x37')](_0x1d6dee)[_0x7166('0x14')](_0x4bd9fd)['join']('cm_contacts',null,_0x7166('0x39')+_0x4bd9fd+_0x7166('0x3a'))[_0x7166('0x15')](_0xf0e539,null,_0xf0e539+_0x7166('0x16')+_0x4bd9fd+'.'+_0x225671)[_0x7166('0x17')](_0x4bd9fd+'.CmListId\x20=\x20?',_0x52be2f)[_0x7166('0x17')](_0x7166('0x42'),NOW)[_0x7166('0x17')](_0x7166('0x43'),squel['select']()[_0x7166('0x12')](_0x7166('0x13'))['from'](_0x7166('0x40'))['where'](_0x7166('0x44'),_0x52be2f)['where'](_0x225671+_0x7166('0x18')+_0x4bd9fd+'.'+_0x225671)))['toString']();}function insertTzCmHopper(_0x5c7b56,_0xa601fc,_0x2f5362,_0xed6c7e,_0x2000ea,_0x3b884c){var _0x9e938c=[_0x7166('0x3f'),_0x7166('0x45')+_0x3b884c+'.offset-cm_contacts.utcOffset\x20minute)',_0x7166('0x28'),_0x7166('0x29'),_0xa601fc+'.'+_0xed6c7e,_0x7166('0x2a'),_0x7166('0x46'),'cm_contacts.priority',_0x7166('0x2c'),'\x22'+_0x2000ea+'\x22'];var _0x10851b=squel[_0x7166('0x2d')]()[_0x7166('0x2e')]('cm_hopper')[_0x7166('0x41')](['phone',_0x7166('0x30'),'ContactId','ListId',_0xed6c7e,_0x7166('0x47'),_0x7166('0x33'),_0x7166('0x34'),_0x7166('0x35'),_0x7166('0x36')],squel[_0x7166('0x11')]()[_0x7166('0x37')](_0x9e938c)[_0x7166('0x14')](_0xa601fc)[_0x7166('0x15')](_0x7166('0x38'),null,_0x7166('0x39')+_0xa601fc+'.CmListId')[_0x7166('0x15')](_0x2f5362,null,_0x2f5362+'.id\x20=\x20'+_0xa601fc+'.'+_0xed6c7e)[_0x7166('0x15')](_0x3b884c,null,_0x3b884c+'.id\x20=\x20'+_0xa601fc+'.'+_0xed6c7e)[_0x7166('0x17')](_0xa601fc+'.CmListId\x20=\x20?',_0x5c7b56)[_0x7166('0x17')]('cm_contacts.createdAt\x20=\x20?',NOW)[_0x7166('0x17')](_0x7166('0x43'),selectNotIn(_0xa601fc,_0x2f5362,_0xed6c7e,_0x7166('0x2f'),[_0x7166('0x3c'),_0x7166('0x3d')]))['where']('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0xa601fc,_0x2f5362,_0xed6c7e,'cm_hopper',['\x22always\x22'])))['toString']();return _0x10851b;}function insertTzCmHopperBlack(_0x2472fc,_0x22c493,_0x3a1fbf,_0x7416fe){var _0x475004=[_0x7166('0x3f'),_0x7166('0x28'),_0x7166('0x29'),_0x22c493+'.'+_0x7416fe,_0x7166('0x2a'),_0x7166('0x46')];return squel['insert']()[_0x7166('0x2e')](_0x7166('0x40'))[_0x7166('0x41')]([_0x7166('0x13'),_0x7166('0x31'),_0x7166('0x32'),_0x7416fe,_0x7166('0x47'),_0x7166('0x33')],squel[_0x7166('0x11')]()[_0x7166('0x37')](_0x475004)[_0x7166('0x14')](_0x22c493)[_0x7166('0x15')](_0x7166('0x38'),null,_0x7166('0x39')+_0x22c493+_0x7166('0x3a'))[_0x7166('0x15')](_0x3a1fbf,null,_0x3a1fbf+_0x7166('0x16')+_0x22c493+'.'+_0x7416fe)[_0x7166('0x17')](_0x22c493+_0x7166('0x3b'),_0x2472fc)[_0x7166('0x17')](_0x7166('0x42'),NOW)['where'](_0x7166('0x43'),squel[_0x7166('0x11')]()['field'](_0x7166('0x13'))['from']('cm_hopper_black')['where'](_0x7166('0x44'),_0x2472fc)[_0x7166('0x17')](_0x7416fe+_0x7166('0x18')+_0x22c493+'.'+_0x7416fe)))[_0x7166('0x3e')]();}function insertCmHopperAdditionalPhones(_0x4063d9){var _0x3d4c19=[_0x7166('0x48'),_0x7166('0x49'),_0x7166('0x4a'),'cm_contact_has_items.createdAt','cm_contact_has_items.updatedAt'];return squel[_0x7166('0x2d')]()[_0x7166('0x2e')]('cm_hopper_additional_phones')[_0x7166('0x41')]([_0x7166('0x4b'),'phone',_0x7166('0x4c'),_0x7166('0x47'),_0x7166('0x33')],squel[_0x7166('0x11')]()[_0x7166('0x37')](_0x3d4c19)['from']('cm_hopper')[_0x7166('0x15')](_0x7166('0x38'),null,_0x7166('0x4d'))[_0x7166('0x15')](_0x7166('0x4e'),null,_0x7166('0x4f'))[_0x7166('0x17')](_0x7166('0x50'),_0x4063d9)[_0x7166('0x17')]('cm_contacts.createdAt\x20=\x20?',NOW))[_0x7166('0x3e')]();}function insertCmContact(_0x2a5864,_0x15f210,_0x38b62c,_0x1696a5){var _0x186cf5=_[_0x7166('0x51')](_[_0x7166('0x52')](_0x1696a5),[_0x7166('0x32'),_0x7166('0x53'),_0x7166('0x47'),_0x7166('0x33'),_0x7166('0x54')]);return squel['insert']()[_0x7166('0x2e')](_0x7166('0x38'))[_0x7166('0x41')](_0x186cf5,squel['select']()[_0x7166('0x37')](_0x186cf5)[_0x7166('0x14')](_0x15f210)[_0x7166('0x17')]('('+_0x38b62c[_0x7166('0x15')](',')+_0x7166('0x55'),squel[_0x7166('0x11')]()['fields'](_0x38b62c)['from'](_0x7166('0x38'))[_0x7166('0x17')](_0x7166('0x44'),_0x2a5864)['where'](_0x7166('0x56')))[_0x7166('0x17')](_0x7166('0x57'),squel['select']()['field'](_0x7166('0x58'),_0x7166('0x59'))[_0x7166('0x14')](_0x15f210)[_0x7166('0x5a')](_0x38b62c[_0x7166('0x15')](','))))[_0x7166('0x3e')]();}function handleStop(){logger[_0x7166('0x5b')](_0x7166('0x5c'));stopped=!![];}function handleUncaughtException(_0x2acc3e){logger[_0x7166('0x5d')](_0x2acc3e[_0x7166('0x5e')]);process['exit'](0x1);}function handleError(_0x30212f,_0x2e7b93){stats[_0x7166('0x5f')][_0x7166('0x1f')]({'name':_0x2e7b93[_0x7166('0x60')],'message':_0x2e7b93[_0x7166('0x5e')],'row':_0x30212f});}function handleQuery(_0x9cdc54){logger[_0x7166('0x5b')](_0x9cdc54);return db[_0x7166('0x61')]['query'](_0x9cdc54)['spread'](function(_0x4f7386){results[_0x7166('0x1f')](_0x4f7386);})['catch'](function(_0x3e9552){logger['error'](_0x3e9552[_0x7166('0x5e')]);});}function updateTzCampaigns(_0x10cad7){return new Promise(function(_0x3e295b,_0xda1c6c){var _0x5d152e=squel[_0x7166('0x11')]()['fields'](['campaigns.id',_0x7166('0x62')])[_0x7166('0x14')](_0x7166('0x63'))[_0x7166('0x15')](_0x7166('0x64'),null,_0x7166('0x65'))[_0x7166('0x17')]('campaigns_has_cm_lists.CmListId='+_0x10cad7);db[_0x7166('0x61')][_0x7166('0x66')](_0x5d152e['toString']())[_0x7166('0x67')](function(_0x4a719e){var _0x186eb8=[];for(var _0x3cf343=0x0;_0x3cf343<_0x4a719e[_0x7166('0x1e')];_0x3cf343++){_0x186eb8[_0x7166('0x1f')](getTimezoneData(_0x4a719e[_0x3cf343],tmp_campaigns));}BPromise[_0x7166('0x1c')](_0x186eb8)[_0x7166('0x1b')](function(){_0x3e295b({'val':0x1});});})[_0x7166('0x68')](function(_0x7c7d10){logger[_0x7166('0x5d')](_0x7c7d10[_0x7166('0x5e')]);_0x3e295b({'val':0x0});});});}function updateTzVoiceQueues(_0x6d4ca0){return new Promise(function(_0x3ab9eb,_0x265489){var _0x3ca7e1=squel[_0x7166('0x11')]()[_0x7166('0x37')]([_0x7166('0x69'),_0x7166('0x6a')])[_0x7166('0x14')](_0x7166('0x6b'))[_0x7166('0x15')](_0x7166('0x6c'),null,'voice_queues.id\x20=\x20voice_queues_has_cm_lists.VoiceQueueId')[_0x7166('0x17')](_0x7166('0x6d')+_0x6d4ca0);db[_0x7166('0x61')][_0x7166('0x66')](_0x3ca7e1[_0x7166('0x3e')]())[_0x7166('0x67')](function(_0xe99177){var _0x451bd9=[];for(var _0x2d3aa5=0x0;_0x2d3aa5<_0xe99177[_0x7166('0x1e')];_0x2d3aa5++){_0x451bd9['push'](getTimezoneData(_0xe99177[_0x2d3aa5],tmp_voice_queues));}BPromise['all'](_0x451bd9)['then'](function(){_0x3ab9eb({'val':0x1});});})[_0x7166('0x68')](function(_0x38a565){logger['error'](_0x38a565[_0x7166('0x5e')]);_0x3ab9eb({'val':0x0});});});}function getTimezoneData(_0x2e81e8,_0x27d7d3){return new Promise(function(_0x40286f,_0x16025c){var _0x4428fb=shared[_0x7166('0x6e')];var _0x4eb524=_0x4428fb[_0x2e81e8[_0x7166('0x6f')]];if(_['isNil'](_0x4eb524)){_0x40286f({'ret':0x1});}else{var _0x1ff8a2=_0x4eb524[_0x7166('0x70')];var _0x1b6115=squel[_0x7166('0x2d')]()[_0x7166('0x2e')](_0x27d7d3)[_0x7166('0x71')]('id',_0x2e81e8['id'])[_0x7166('0x71')](_0x7166('0x72'),_0x1ff8a2)[_0x7166('0x71')](_0x7166('0x6f'),_0x2e81e8[_0x7166('0x6f')])['toString']();return db[_0x7166('0x61')][_0x7166('0x66')](_0x1b6115)[_0x7166('0x67')](function(_0x55e03d){_0x40286f({'ret':0x1});})[_0x7166('0x68')](function(_0x223668){logger[_0x7166('0x5d')](_0x223668[_0x7166('0x5e')]);_0x16025c({'ret':0x1});});}});}function handleTZQuery(_0x2b22a0){logger[_0x7166('0x5b')](_0x2b22a0);return db[_0x7166('0x61')][_0x7166('0x66')](_0x2b22a0)[_0x7166('0x67')](function(_0x2862ef){})[_0x7166('0x68')](function(_0x15c6c7){logger[_0x7166('0x5d')](_0x15c6c7[_0x7166('0x5e')]);});}function main(_0x4c3654,_0x4ad29a,_0x1e4255,_0x27ca2a){logger[_0x7166('0x5b')]('main',_0x4c3654,JSON[_0x7166('0x73')](_0x4ad29a));process[_0x7166('0x74')](_0x7166('0x75'));var _0xa3b80a=_0x4ad29a[_0x7166('0x76')];var _0x3ee7a1=_['clone'](_0xa3b80a);var _0x56590f=_0x4ad29a[_0x7166('0x77')];var _0xe553ae=path[_0x7166('0x15')](config[_0x7166('0x78')],_0x7166('0x79'),_0x56590f+_0x7166('0x7a'));hasTZ=_[_0x7166('0x52')](_0xa3b80a)['includes']('dialTimezone');var _0x56ddc0=_['keys'](_0xa3b80a)[_0x7166('0x15')]();logger[_0x7166('0x5b')]('header',_0x56ddc0);db['ContactItemType'][_0x7166('0x7b')]({'raw':!![],'attributes':['id',_0x7166('0x7c')]})[_0x7166('0x1b')](function(_0x5d4dfc){for(var _0x1d85f3=0x0;_0x1d85f3<_0x5d4dfc[_0x7166('0x1e')];_0x1d85f3++){if(_0x5d4dfc[_0x1d85f3][_0x7166('0x7c')]in _0xa3b80a){contactItemTypes['push'](_0x5d4dfc[_0x1d85f3]);delete _0x3ee7a1[_0x5d4dfc[_0x1d85f3][_0x7166('0x7c')]];hasAdditionalPhones=!![];}for(var _0x5baef3 in _0xa3b80a){if(_0x5d4dfc[_0x1d85f3][_0x7166('0x7c')]+_0x7166('0x7d')===_0x5baef3){phoneDescriptions[_0x7166('0x1f')]({'itemTypeId':_0x5d4dfc[_0x1d85f3]['id'],'description':_0x5baef3});delete _0x3ee7a1[_0x5baef3];}}}if(hasAdditionalPhones)_0x3ee7a1[_0x7166('0x1a')]='';var _0x1eca24=_[_0x7166('0x52')](_0x3ee7a1)[_0x7166('0x15')]();logger[_0x7166('0x5b')](_0x7166('0x7e'),_0x1eca24);fs[_0x7166('0x7f')](_0xe553ae,_0x1eca24+'\x0a');Papa[_0x7166('0x80')](fs['createReadStream'](_0x4c3654),{'header':!![],'skipEmptyLines':!![],'step':function(_0x1d8113,_0x8ffdd4){try{for(var _0x43b44f=0x0,_0x4373b0=[];_0x43b44f<_0x1d8113[_0x7166('0x81')][_0x7166('0x1e')];_0x43b44f++){stats[_0x7166('0x82')]+=0x1;if(_0x1d8113[_0x7166('0x5f')][_0x43b44f]){handleError(_0x1d8113[_0x7166('0x81')][_0x43b44f],_0x1d8113[_0x7166('0x5f')][_0x43b44f]);}else{var _0x45da59=[];var _0x543e48=[];var _0x443e93={};for(var _0x2d6bfc in _0xa3b80a){let _0x1e2a55=contactItemTypes['find'](_0x1ea2a4=>_0x1ea2a4[_0x7166('0x7c')]===_0x2d6bfc);let _0x43cc06=contactItemTypes[_0x7166('0x83')](_0x500866=>_0x500866[_0x7166('0x7c')]+_0x7166('0x7d')===_0x2d6bfc);if(_[_0x7166('0x20')](_0x1e2a55)&&_[_0x7166('0x20')](_0x43cc06)){if(_0xa3b80a[_0x7166('0x84')](_0x2d6bfc)){if(_0x1d8113[_0x7166('0x81')][_0x43b44f][_0xa3b80a[_0x2d6bfc]]){var _0x2c1e30=_[_0x7166('0x85')](_0x1d8113[_0x7166('0x81')][_0x43b44f][_0xa3b80a[_0x2d6bfc]]['replace'](/"/g,'\x27'));switch(_0x2d6bfc){case _0x7166('0x30'):var _0x1ea0fb=moment(_0x2c1e30,'YYYY-MM-DD\x20HH:mm:ss',!![]);if(_0x1ea0fb[_0x7166('0x86')]()){_0x4373b0['push']('\x22'+_0x2c1e30+'\x22');}else{_0x45da59[_0x7166('0x1f')](_0x7166('0x87'));}break;case'priority':var _0x31d97b=parseInt(_0x2c1e30);_0x2c1e30=_[_0x7166('0x88')](_0x31d97b)||_0x31d97b<0x0||_0x31d97b>0x4?_0x27ca2a?0x3:0x2:_0x31d97b;_0x4373b0[_0x7166('0x1f')]('\x22'+_0x2c1e30+'\x22');break;case _0x7166('0x35'):var _0x103f5a=parseInt(_0x2c1e30);if(_['isNumber'](_0x103f5a)&&_[_0x7166('0x89')](_0x1e4255,_0x103f5a)){_0x4373b0[_0x7166('0x1f')]('\x22'+_0x103f5a+'\x22');}else{_0x45da59[_0x7166('0x1f')](_0x7166('0x8a'));}break;case _0x7166('0x8b'):if(isEmail(_0x2c1e30)){_0x4373b0[_0x7166('0x1f')]('\x22'+_0x2c1e30+'\x22');}else{_0x45da59[_0x7166('0x1f')]('email\x20wrong\x20format');}break;case _0x7166('0x8c'):var _0xb57725=moment(_0x2c1e30,_0x7166('0x8d'),!![]);if(_0xb57725[_0x7166('0x86')]()){_0x4373b0[_0x7166('0x1f')]('\x22'+_0x2c1e30+'\x22');}else{_0x45da59['push'](_0x7166('0x8e'));}break;case _0x7166('0x6f'):var _0x527011=shared[_0x7166('0x6e')];var _0xf30f43=_0x527011[_0x2c1e30];if(!_['isNil'](_0xf30f43)){var _0x3aaf5c=_0xf30f43[_0x7166('0x70')];_0x4373b0['push']('\x22'+_0x2c1e30+'\x22');_0x4373b0[_0x7166('0x1f')]('\x22'+_0x3aaf5c+'\x22');}break;default:_0x4373b0[_0x7166('0x1f')]('\x22'+_0x2c1e30+'\x22');}}else{switch(_0x2d6bfc){case _0x7166('0x8f'):case _0x7166('0x13'):_0x45da59[_0x7166('0x1f')](_0x2d6bfc+_0x7166('0x90'));break;default:_0x4373b0[_0x7166('0x1f')]('\x22\x22');}}}}else{var _0x2f6810='';if(!_['isNil'](_0x1e2a55)){if(!_0x443e93[_0x7166('0x84')](_0x1e2a55['id'])){if(!_[_0x7166('0x20')](_0x1d8113[_0x7166('0x81')][_0x43b44f][_0xa3b80a[_0x2d6bfc]])){var _0x2c1e30=_[_0x7166('0x85')](_0x1d8113[_0x7166('0x81')][_0x43b44f][_0xa3b80a[_0x2d6bfc]][_0x7166('0x91')](/"/g,'\x27'));var _0x4cd640=phoneDescriptions[_0x7166('0x83')](_0x1ba839=>_0x1ba839['itemTypeId']===_0x1e2a55['id']);if(!_['isNil'](_0x4cd640)){var _0x2e75d1=_[_0x7166('0x85')](_0x1d8113[_0x7166('0x81')][_0x43b44f][_0xa3b80a[_0x4cd640['description']]][_0x7166('0x91')](/"/g,'\x27'));if(!_[_0x7166('0x20')](_0x2e75d1))_0x2c1e30=_0x2c1e30+'§'+_0x2e75d1;}if(_0x2f6810=='')_0x2f6810=_0x2c1e30;else _0x2f6810+='|'+_0x2c1e30;}_0x543e48[_0x7166('0x1f')](_0x1e2a55['id']+':'+_0x2f6810);_0x443e93[_0x1e2a55['id']]=0x1;}}}}if(hasAdditionalPhones){_0x4373b0[_0x7166('0x1f')]('\x22'+_0x543e48[_0x7166('0x15')](';')+'\x22');}if(_0x45da59[_0x7166('0x1e')]){handleError(_0x1d8113[_0x7166('0x81')][_0x43b44f],{'code':'SystemRow','message':_0x45da59['join']()});}else{fs[_0x7166('0x92')](_0xe553ae,_0x4373b0[_0x7166('0x15')]()+'\x0a');}_0x4373b0=[];}if(!(stats[_0x7166('0x82')]%0xc8)){socket['emit'](_0x7166('0x93')+_0x56590f,stats);stats[_0x7166('0x5f')]=[];}}if(stopped){logger['info']('Abort\x20parser');_0x8ffdd4[_0x7166('0x94')]();}}catch(_0x29c5a0){handleError(_0x1d8113[_0x7166('0x81')][_0x43b44f],{'code':_0x7166('0x95'),'message':_0x29c5a0['message']});logger[_0x7166('0x5d')]('step',_0x29c5a0['message']);}},'complete':function(){try{var _0x4d716e=[];var _0xcacc9c=[];var _0x3afd9d='cm_contacts';if(_0x4ad29a[_0x7166('0x96')]&&_0x4ad29a[_0x7166('0x96')][_0x7166('0x1e')]){_0x3afd9d='cm_contacts_'+_0x56590f;_0x4d716e[_0x7166('0x1f')](_0x7166('0x97')+_0x3afd9d+_0x7166('0x98'));}tmp_campaigns=_0x7166('0x99')+_0x56590f;tmp_voice_queues=_0x7166('0x9a')+_0x56590f;_0xcacc9c[_0x7166('0x1f')](_0x7166('0x97')+tmp_campaigns+'(id\x20int,dialTimezone\x20varchar(255),offset\x20int);');_0xcacc9c['push'](_0x7166('0x97')+tmp_voice_queues+'(id\x20int,dialTimezone\x20varchar(255),offset\x20int);');BPromise['each'](_0xcacc9c,handleTZQuery)['then'](function(_0xe4decb){updateTzCampaigns(_0x4ad29a[_0x7166('0x32')])[_0x7166('0x1b')](function(_0xa8425c){updateTzVoiceQueues(_0x4ad29a[_0x7166('0x32')])[_0x7166('0x1b')](function(_0x4e4361){if(hasTZ)_0x1eca24=_0x1eca24[_0x7166('0x91')](_0x7166('0x6f'),'dialTimezone,utcOffset');var _0x349fbf=util[_0x7166('0xe')]('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',_0xe553ae,_0x3afd9d,_0x1eca24,_0x4ad29a['ListId'],_0x4ad29a[_0x7166('0x53')]||null,NOW,NOW);if(_[_0x7166('0x20')](_0xa3b80a[_0x7166('0x30')])){_0x349fbf+=_0x7166('0x9b');}_0x4d716e[_0x7166('0x1f')](_0x349fbf);if(_0x4ad29a['duplicates']&&_0x4ad29a[_0x7166('0x96')][_0x7166('0x1e')]){_0x4d716e[_0x7166('0x1f')](insertCmContact(_0x4ad29a[_0x7166('0x32')],_0x3afd9d,_0x4ad29a[_0x7166('0x96')],_0xa3b80a));_0x4d716e[_0x7166('0x1f')]('DROP\x20TABLE\x20'+_0x3afd9d+';');}BPromise[_0x7166('0x9c')](_0x4d716e,handleQuery)['then'](function(_0x2036c7){BPromise[_0x7166('0x1c')]([handleAdditionalPhones()])['then'](function(){_0x4d716e=[];for(var _0x3874ab=0x0;_0x3874ab<promisesAdditionalPhones[_0x7166('0x1e')];_0x3874ab++){if(promisesAdditionalPhones[_0x3874ab][_0x7166('0x13')]!='§'){_0x4d716e[_0x7166('0x1f')](createAdditionalPhone(promisesAdditionalPhones[_0x3874ab][_0x7166('0x9d')],promisesAdditionalPhones[_0x3874ab][_0x7166('0x9e')],promisesAdditionalPhones[_0x3874ab]['phone'],promisesAdditionalPhones[_0x3874ab][_0x7166('0x9f')]));}}BPromise['all'](_0x4d716e)[_0x7166('0x1b')](function(){_0x4d716e=[];if(hasTZ){_0x4d716e[_0x7166('0x1f')](insertTzCmHopper(_0x4ad29a[_0x7166('0x32')],_0x7166('0x6c'),_0x7166('0x6b'),_0x7166('0xa0'),_0x27ca2a,tmp_voice_queues));_0x4d716e[_0x7166('0x1f')](insertTzCmHopperBlack(_0x4ad29a[_0x7166('0x32')],_0x7166('0xa1'),_0x7166('0x6b'),_0x7166('0xa0')));_0x4d716e['push'](insertTzCmHopper(_0x4ad29a[_0x7166('0x32')],'campaigns_has_cm_lists',_0x7166('0x63'),_0x7166('0xa2'),_0x27ca2a,tmp_campaigns));_0x4d716e[_0x7166('0x1f')](insertTzCmHopperBlack(_0x4ad29a[_0x7166('0x32')],'campaigns_has_cm_blacklists',_0x7166('0x63'),_0x7166('0xa2')));_0x4d716e['push'](insertCmHopperAdditionalPhones(_0x4ad29a['ListId']));}else{_0x4d716e[_0x7166('0x1f')](insertCmHopper(_0x4ad29a['ListId'],'voice_queues_has_cm_lists',_0x7166('0x6b'),_0x7166('0xa0'),_0x27ca2a));_0x4d716e[_0x7166('0x1f')](insertCmHopperBlack(_0x4ad29a[_0x7166('0x32')],'voice_queues_has_cm_blacklists','voice_queues','VoiceQueueId'));_0x4d716e[_0x7166('0x1f')](insertCmHopper(_0x4ad29a[_0x7166('0x32')],_0x7166('0x64'),_0x7166('0x63'),_0x7166('0xa2'),_0x27ca2a));_0x4d716e[_0x7166('0x1f')](insertCmHopperBlack(_0x4ad29a[_0x7166('0x32')],_0x7166('0xa3'),_0x7166('0x63'),_0x7166('0xa2')));_0x4d716e[_0x7166('0x1f')](insertCmHopperAdditionalPhones(_0x4ad29a[_0x7166('0x32')]));}_0x4d716e['push'](_0x7166('0xa4')+tmp_campaigns+';');_0x4d716e[_0x7166('0x1f')]('DROP\x20TABLE\x20'+tmp_voice_queues+';');BPromise['each'](_0x4d716e,handleQuery)['then'](function(_0x19ee3f){stats['finish']=!![];stats[_0x7166('0xa5')]=_0x4ad29a[_0x7166('0x96')]&&_0x4ad29a[_0x7166('0x96')]['length']?results[0x2][_0x7166('0xa5')]:results[0x0][_0x7166('0xa5')];socket['emit'](_0x7166('0x93')+_0x56590f,stats);fs[_0x7166('0xa6')](_0x4c3654);fs[_0x7166('0xa6')](_0xe553ae);process[_0x7166('0xa7')](0x0);})[_0x7166('0x68')](function(_0x30024b){logger[_0x7166('0x5d')](_0x30024b[_0x7166('0x5e')]);process[_0x7166('0xa7')](0x1);});});});})[_0x7166('0x68')](function(_0x3217bf){logger['error'](_0x3217bf[_0x7166('0x5e')]);process[_0x7166('0xa7')](0x1);});});});});}catch(_0xb851ed){logger['error'](_0x7166('0xa8'),_0xb851ed[_0x7166('0x5e')]);process[_0x7166('0xa7')](0x1);}},'error':function(_0x2a55ed,_0x2c537a,_0x2531fd,_0x4bbca3){throw new Error(_0x4bbca3);}});});}function validate(){if(process['argv']&&process[_0x7166('0xa9')][_0x7166('0x1e')]<0x4){throw new Error('arguments\x20<filename>\x20<parameters>\x20<agents>');}var _0x194557=path['join'](config[_0x7166('0x78')],_0x7166('0x79'),process[_0x7166('0xa9')][0x2]);if(!fs[_0x7166('0xaa')](_0x194557)){throw new Error(_0x7166('0xab'));}var _0x38a5d1={};try{_0x38a5d1=JSON['parse'](process[_0x7166('0xa9')][0x3]);if(!_0x38a5d1[_0x7166('0x76')]){throw new Error(_0x7166('0xac'));}if(!_0x38a5d1[_0x7166('0x76')]['phone']){throw new Error(_0x7166('0xad'));}if(!_0x38a5d1[_0x7166('0x76')][_0x7166('0x8f')]){throw new Error(_0x7166('0xae'));}var _0x2fed5a=0x0;if(_0x38a5d1[_0x7166('0x76')][_0x7166('0x35')]){_0x2fed5a=0x1;}if(!_0x38a5d1['ListId']){throw new Error(_0x7166('0xaf'));}}catch(_0x11c49e){throw new Error(_0x7166('0xb0'));}var _0x220151=[];try{_0x220151=_[_0x7166('0xb1')](JSON[_0x7166('0x80')](process[_0x7166('0xa9')][0x4]),'id');}catch(_0x3be36d){logger[_0x7166('0x5b')](_0x7166('0xb2'));}main(_0x194557,_0x38a5d1,_0x220151,_0x2fed5a);}validate();process['on']('SIGINT',handleStop);process['on'](_0x7166('0xb3'),handleUncaughtException);