Built motion from commit d5e4af8c.|2.6.23
[motion2.git] / server / api / cmContact / cmContact.controller.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 _0x49d2=['../../config/logger','../../config/environment','../../config/environment/shared','../../mysqldb','defaults','localhost','socket.io-emitter','redis','register','status','offset','undefined','limit','count','set','json','update','destroy','then','end','sendStatus','error','name','send','index','describe','query','user','params','catch','CmContact','tags','keys','startsWith','cf_','displayName','analytics','CmCustomField','length','alias','custom','type','info','Custom\x20field\x20%s\x20not\x20found\x20on\x20cm_contacts\x20table','forEach','hasOwnProperty','columnName','merge','body','findAll','get','mergeWith','isArray','join','[CmContact][merge]\x20to\x20%s\x20from\x20%s','CmHopper','from','[CmContact][merge][destroy][CmHopper],\x20%s','CmHopperBlack','[CmContact][merge][destroy][CmHopperBlack],\x20%s','ChatInteraction','ChatOfflineMessage','MailMessage','FaxInteraction','FaxMessage','OpenchannelInteraction','OpenchannelMessage','CmContactHasItem','CmHopperHistory','ReportAgentPreview','VoiceCallReport','MailQueueReport','OpenchannelQueueReport','SmsQueueReport','JscriptySessionReport','WhatsappInteraction','WhatsappMessage','WhatsappQueueReport','create','isNil','dialTimezone','timezones','utcOffset','additionalPhones','bulkCreate','each','duplicates','$or','push','where','ListId','findOrCreate','spread','contact','all','show','Tags','color','tag','ItemType','sequelize','literal','Phones.OrderBy','$and','map','format','find','cf_%d','isEmpty','table','cm_contacts','id\x20=\x20?','text','values','phone','getTags','findOne','Tag','rawAttributes','filters','intersection','model','attributes','fields','order','sort','pick','filter','options','nolimit','setTags','setAdditionalPhones','ContactItemType','OrderBy','items','item_types','ItemTypeId','description','contact\x20phone\x20exists','PHONE','CmHopperAdditionalPhone','item','`ItemType`.OrderBy','CmHopperId','getAdditionalPhones','duplicateAdditionalPhones','fromContactId','CmContactId','toContactId','rescheduleAdditionalPhones','hopperId','ContactId','include','rows','getHopperHistories','includeAll','CmHopperFinal','getJscriptySessions','No\x20ListId\x20specified','No\x20association\x20values\x20specified!','socket_timestamp','Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed','binding_keys','split','binding_values','Incorrect\x20binding\x20parameters\x20passed!','zipObject','No\x20phone\x20column\x20specified','No\x20firstName\x20column\x20specified','file','filename','0777','child_process','fork','../../components/import/cm/csv','CompanyId','File\x20uploaded\x20correctly!','upload','createReadStream','meta','import','User','agent','binding','firstName','../../components/import/cm/csv2','stringify','message','start\x20child\x20process\x20correctly!','exit','pid','importUpdates','../../components/import/cm/csvUpdates','error\x20child\x20process','chat','sms','openchannel','fax','whatsapp','voice','-createdAt','resolve','channel','includes','toLowerCase','Invalid\x20channel','parse','range','isValid','Invalid\x20date\x20for\x20range\x20from\x20filter','Invalid\x20createdAt\x20filter','source','callerid','starttime','duration','note','userDisposition','userSecondDisposition','userThirdDisposition','UserId','fullname','createdAt','DESC','findAndCountAll','startCase','Website','Account','closed','closedAt','secondDisposition','thirdDisposition','browserName','customerIp','customerPort','ratingMessage','ratingType','ratingValue','referer','mail','subject','substatus','externalUrl','Interaction','Owner','flatten','sortBy','reverse','slice','moment','bluebird','util','path','squel','ioredis','../../components/contacts','../../components/parsers/qs'];(function(_0xbb9b40,_0x51b63a){var _0x4cd1b3=function(_0x4c0343){while(--_0x4c0343){_0xbb9b40['push'](_0xbb9b40['shift']());}};_0x4cd1b3(++_0x51b63a);}(_0x49d2,0xf8));var _0x249d=function(_0x473738,_0x15ea31){_0x473738=_0x473738-0x0;var _0x1df4ae=_0x49d2[_0x473738];return _0x1df4ae;};'use strict';var moment=require(_0x249d('0x0'));var BPromise=require(_0x249d('0x1'));var util=require(_0x249d('0x2'));var path=require(_0x249d('0x3'));var fs=require('fs');var _=require('lodash');var squel=require(_0x249d('0x4'));var Papa=require('papaparse');var Redis=require(_0x249d('0x5'));var contacts=require(_0x249d('0x6'));var qs=require(_0x249d('0x7'));var logger=require(_0x249d('0x8'))('api');var config=require(_0x249d('0x9'));var shared=require(_0x249d('0xa'));var db=require(_0x249d('0xb'))['db'];config['redis']=_[_0x249d('0xc')](config['redis'],{'host':_0x249d('0xd'),'port':0x18eb});var socket=require(_0x249d('0xe'))(new Redis(config[_0x249d('0xf')]));require('./cmContact.socket')[_0x249d('0x10')](socket);function respondWithResult(_0x259e6d,_0x25d634){_0x25d634=_0x25d634||0xc8;return function(_0x59cf93){if(_0x59cf93){return _0x259e6d[_0x249d('0x11')](_0x25d634)['json'](_0x59cf93);}};}function respondWithFilteredResult(_0x1bbf19,_0x591b8b){return function(_0x5a332a){if(_0x5a332a){var _0x25a825=typeof _0x591b8b[_0x249d('0x12')]===_0x249d('0x13')&&typeof _0x591b8b[_0x249d('0x14')]==='undefined';var _0xac378=_0x5a332a[_0x249d('0x15')];var _0x532331=_0x25a825?0x0:_0x591b8b[_0x249d('0x12')];var _0x13ef3a=_0x25a825?_0x5a332a[_0x249d('0x15')]:_0x591b8b[_0x249d('0x12')]+_0x591b8b['limit'];var _0x233111;if(_0x13ef3a>=_0xac378){_0x13ef3a=_0xac378;_0x233111=0xc8;}else{_0x233111=0xce;}_0x1bbf19['status'](_0x233111);return _0x1bbf19[_0x249d('0x16')]('Content-Range',_0x532331+'-'+_0x13ef3a+'/'+_0xac378)[_0x249d('0x17')](_0x5a332a);}return null;};}function saveUpdates(_0x27c309){return function(_0x2412f0){if(_0x2412f0){return _0x2412f0[_0x249d('0x18')](_0x27c309)['then'](function(_0x1799d7){return _0x1799d7;});}return null;};}function removeEntity(_0x3ec405){return function(_0x2043c2){if(_0x2043c2){return _0x2043c2[_0x249d('0x19')]()[_0x249d('0x1a')](function(){_0x3ec405[_0x249d('0x11')](0xcc)[_0x249d('0x1b')]();});}};}function handleEntityNotFound(_0x37cd13){return function(_0x1084b9){if(!_0x1084b9){_0x37cd13[_0x249d('0x1c')](0x194);}return _0x1084b9;};}function handleError(_0x307514,_0x571d13){_0x571d13=_0x571d13||0x1f4;return function(_0x55c826){logger[_0x249d('0x1d')](_0x55c826['stack']);if(_0x55c826['name']){delete _0x55c826[_0x249d('0x1e')];}_0x307514[_0x249d('0x11')](_0x571d13)[_0x249d('0x1f')](_0x55c826);};}exports[_0x249d('0x20')]=function(_0x57151e,_0x194d77){var _0x3e64be={};return contacts[_0x249d('0x21')]()[_0x249d('0x1a')](function(_0x26f53d){_0x3e64be=qs['getOptions'](_0x26f53d,_0x57151e);return contacts['findAll'](_0x57151e[_0x249d('0x22')],_0x57151e[_0x249d('0x23')],_0x3e64be,_0x26f53d);})['then'](respondWithFilteredResult(_0x194d77,_0x3e64be))['catch'](handleError(_0x194d77,null));};exports[_0x249d('0x19')]=function(_0x2b702f,_0x497854){return db['CmContact']['find']({'where':{'id':_0x2b702f[_0x249d('0x24')]['id']}})['then'](handleEntityNotFound(_0x497854,null))[_0x249d('0x1a')](removeEntity(_0x497854,null))[_0x249d('0x25')](handleError(_0x497854,null));};exports[_0x249d('0x21')]=function(_0xacce11,_0x260910){return db[_0x249d('0x26')][_0x249d('0x21')]()[_0x249d('0x1a')](function(_0x430499){delete _0x430499[_0x249d('0x27')];for(var _0x209850=0x0;_0x209850<Object[_0x249d('0x28')](_0x430499)['length'];_0x209850++){var _0x3986b4=Object[_0x249d('0x28')](_0x430499)[_0x209850];if(!_[_0x249d('0x29')](_0x3986b4,_0x249d('0x2a'))){_0x430499[_0x3986b4]['columnName']=_0x3986b4;_0x430499[_0x3986b4][_0x249d('0x2b')]=_0x3986b4;}}return _0x430499;})['then'](function(_0x288238){var _0x38d55c={'where':Boolean(_0xacce11[_0x249d('0x22')][_0x249d('0x2c')])===!![]?undefined:{'$or':[{'ListId':_0xacce11[_0x249d('0x22')]['id']},{'ListId':null}]},'raw':!![]};return db[_0x249d('0x2d')]['findAll'](_0x38d55c)['then'](function(_0x43f05f){for(var _0x34488f=0x0;_0x34488f<_0x43f05f[_0x249d('0x2e')];_0x34488f++){var _0x3293fc=_0x249d('0x2a')+_0x43f05f[_0x34488f]['id'];if(_0x288238[_0x3293fc]){_0x288238[_0x3293fc]['columnName']=_0x3293fc;_0x288238[_0x3293fc][_0x249d('0x2b')]=_0x43f05f[_0x34488f][_0x249d('0x2f')];_0x288238[_0x3293fc][_0x249d('0x30')]={'type':_0x43f05f[_0x34488f][_0x249d('0x31')],'values':_0x43f05f[_0x34488f]['values']};}else{logger[_0x249d('0x32')](_0x249d('0x33'),_0x3293fc);}}Object['keys'](_0x288238)[_0x249d('0x34')](function(_0x169bc1){if(!_0x288238[_0x169bc1][_0x249d('0x35')](_0x249d('0x36'))){delete _0x288238[_0x169bc1];}});return _0x288238;});})['then'](respondWithResult(_0x260910,null))[_0x249d('0x25')](handleError(_0x260910,null));};exports[_0x249d('0x37')]=function(_0x459102,_0x5ba243){var _0x222544;var _0x5220ff;var _0x1ea11f;if(_0x459102[_0x249d('0x38')]['id']){delete _0x459102['body']['id'];}return db['CmContact'][_0x249d('0x39')]({'where':{'id':[_0x459102[_0x249d('0x38')]['to'],_0x459102[_0x249d('0x38')]['from']]}})[_0x249d('0x1a')](function(_0x4d8305){if(_0x4d8305){if(_0x4d8305[_0x249d('0x2e')]!==0x2){return null;}_0x4d8305[0x0]=_0x4d8305[0x0][_0x249d('0x3a')]({'plain':!![]});_0x4d8305[0x1]=_0x4d8305[0x1][_0x249d('0x3a')]({'plain':!![]});delete _0x4d8305[0x0]['id'];delete _0x4d8305[0x1]['id'];return _[_0x249d('0x3b')](_0x4d8305[0x0],_0x4d8305[0x1],function(_0x342fa3,_0x54c52a){if(Array['isArray'](_0x54c52a)&&!_0x54c52a[_0x249d('0x2e')]){return _0x342fa3;}else if(!_0x54c52a){return _0x342fa3;}});}})[_0x249d('0x1a')](handleEntityNotFound(_0x5ba243,null))['then'](function(_0x5d5994){if(_0x5d5994){if(_0x5d5994[_0x249d('0x27')]&&_[_0x249d('0x3c')](_0x5d5994['tags'])){_0x5d5994[_0x249d('0x27')]=_0x5d5994[_0x249d('0x27')][_0x249d('0x3d')]();}logger['info'](_0x249d('0x3e'),_0x459102[_0x249d('0x38')]['to'],_0x459102[_0x249d('0x38')]['from']);return db[_0x249d('0x3f')]['destroy']({'where':{'ContactId':[_0x459102[_0x249d('0x38')]['to'],_0x459102[_0x249d('0x38')][_0x249d('0x40')]]}})[_0x249d('0x1a')](function(_0x8340e5){logger['info'](_0x249d('0x41'),_0x8340e5);return db[_0x249d('0x42')]['destroy']({'where':{'ContactId':[_0x459102[_0x249d('0x38')]['to'],_0x459102[_0x249d('0x38')][_0x249d('0x40')]]}})['then'](function(_0x2eefca){logger[_0x249d('0x32')](_0x249d('0x43'),_0x2eefca);return db['CmContact']['create'](_0x5d5994);});});}})[_0x249d('0x1a')](function(_0x2b373b){if(_0x2b373b){_0x222544=_0x2b373b;_0x5220ff={'ContactId':_0x222544['id']};_0x1ea11f={'where':{'ContactId':[_0x459102[_0x249d('0x38')]['to'],_0x459102[_0x249d('0x38')][_0x249d('0x40')]]}};return db[_0x249d('0x44')][_0x249d('0x18')](_0x5220ff,_0x1ea11f);}})[_0x249d('0x1a')](function(){if(_0x222544){return db['ChatMessage'][_0x249d('0x18')](_0x5220ff,_0x1ea11f);}})[_0x249d('0x1a')](function(){if(_0x222544){return db[_0x249d('0x45')][_0x249d('0x18')](_0x5220ff,_0x1ea11f);}})[_0x249d('0x1a')](function(){if(_0x222544){return db['MailInteraction'][_0x249d('0x18')](_0x5220ff,_0x1ea11f);}})[_0x249d('0x1a')](function(){if(_0x222544){return db[_0x249d('0x46')][_0x249d('0x18')](_0x5220ff,_0x1ea11f);}})[_0x249d('0x1a')](function(){if(_0x222544){return db['MailInteraction'][_0x249d('0x18')](_0x5220ff,_0x1ea11f);}})[_0x249d('0x1a')](function(){if(_0x222544){return db['MailMessage'][_0x249d('0x18')](_0x5220ff,_0x1ea11f);}})[_0x249d('0x1a')](function(){if(_0x222544){return db['SmsInteraction'][_0x249d('0x18')](_0x5220ff,_0x1ea11f);}})[_0x249d('0x1a')](function(){if(_0x222544){return db['SmsMessage']['update'](_0x5220ff,_0x1ea11f);}})[_0x249d('0x1a')](function(){if(_0x222544){return db[_0x249d('0x47')]['update'](_0x5220ff,_0x1ea11f);}})['then'](function(){if(_0x222544){return db[_0x249d('0x48')]['update'](_0x5220ff,_0x1ea11f);}})[_0x249d('0x1a')](function(){if(_0x222544){return db[_0x249d('0x49')]['update'](_0x5220ff,_0x1ea11f);}})[_0x249d('0x1a')](function(){if(_0x222544){return db[_0x249d('0x4a')][_0x249d('0x18')](_0x5220ff,_0x1ea11f);}})[_0x249d('0x1a')](function(){if(_0x222544){return db[_0x249d('0x4b')][_0x249d('0x18')]({'CmContactId':_0x222544['id']},{'where':{'CmContactId':[_0x459102[_0x249d('0x38')]['to'],_0x459102[_0x249d('0x38')][_0x249d('0x40')]]}});}})['then'](function(){if(_0x222544){return db['CmHopperFinal'][_0x249d('0x18')](_0x5220ff,_0x1ea11f);}})[_0x249d('0x1a')](function(){if(_0x222544){return db[_0x249d('0x4c')]['update'](_0x5220ff,_0x1ea11f);}})['then'](function(){if(_0x222544){return db[_0x249d('0x4d')][_0x249d('0x18')](_0x5220ff,_0x1ea11f);}})[_0x249d('0x1a')](function(){if(_0x222544){return db[_0x249d('0x4e')][_0x249d('0x18')](_0x5220ff,_0x1ea11f);}})[_0x249d('0x1a')](function(){if(_0x222544){return db['ChatQueueReport'][_0x249d('0x18')](_0x5220ff,_0x1ea11f);}})[_0x249d('0x1a')](function(){if(_0x222544){return db['FaxQueueReport']['update'](_0x5220ff,_0x1ea11f);}})['then'](function(){if(_0x222544){return db[_0x249d('0x4f')][_0x249d('0x18')](_0x5220ff,_0x1ea11f);}})[_0x249d('0x1a')](function(){if(_0x222544){return db[_0x249d('0x50')][_0x249d('0x18')](_0x5220ff,_0x1ea11f);}})['then'](function(){if(_0x222544){return db[_0x249d('0x51')]['update'](_0x5220ff,_0x1ea11f);}})['then'](function(){if(_0x222544){return db[_0x249d('0x52')][_0x249d('0x18')](_0x5220ff,_0x1ea11f);}})[_0x249d('0x1a')](function(){if(_0x222544){return db[_0x249d('0x53')][_0x249d('0x18')](_0x5220ff,_0x1ea11f);}})[_0x249d('0x1a')](function(){if(_0x222544){return db[_0x249d('0x54')][_0x249d('0x18')](_0x5220ff,_0x1ea11f);}})['then'](function(){if(_0x222544){return db[_0x249d('0x55')][_0x249d('0x18')](_0x5220ff,_0x1ea11f);}})[_0x249d('0x1a')](function(){if(_0x222544){return db[_0x249d('0x26')]['destroy']({'where':{'id':[_0x459102[_0x249d('0x38')]['to'],_0x459102['body'][_0x249d('0x40')]]}});}})[_0x249d('0x1a')](function(){if(_0x222544){return _0x222544;}})[_0x249d('0x1a')](respondWithResult(_0x5ba243,null))[_0x249d('0x25')](handleError(_0x5ba243,null));};exports[_0x249d('0x56')]=function(_0xeca1,_0x10805b){return db[_0x249d('0x26')]['describe']()[_0x249d('0x1a')](function(_0x28b97b){if(_0xeca1['body']['tags']&&_[_0x249d('0x3c')](_0xeca1[_0x249d('0x38')][_0x249d('0x27')])){if(_0xeca1[_0x249d('0x38')][_0x249d('0x27')]['length']){_0xeca1[_0x249d('0x38')][_0x249d('0x27')]=_0xeca1[_0x249d('0x38')][_0x249d('0x27')][_0x249d('0x3d')](';')+';';}else{_0xeca1[_0x249d('0x38')][_0x249d('0x27')]=null;}}else{_0xeca1[_0x249d('0x38')][_0x249d('0x27')]=null;}if(!_[_0x249d('0x57')](_0xeca1['body'][_0x249d('0x58')])){var _0x40f2f4=_0xeca1[_0x249d('0x38')]['dialTimezone'];if(!_[_0x249d('0x57')](shared[_0x249d('0x59')][_0x40f2f4]))_0xeca1[_0x249d('0x38')]['utcOffset']=shared['timezones'][_0x40f2f4][_0x249d('0x5a')];}return db['CmContact']['create'](_0xeca1[_0x249d('0x38')],{'fields':_[_0x249d('0x28')](_0x28b97b),'raw':!![]});})[_0x249d('0x1a')](function(_0x2c8701){if(_0xeca1[_0x249d('0x38')][_0x249d('0x5b')]){return insertAdditionalPhones(_0x2c8701,_0xeca1[_0x249d('0x38')][_0x249d('0x5b')]);}else{return _0x2c8701;}})[_0x249d('0x1a')](respondWithResult(_0x10805b,0xc9))[_0x249d('0x25')](handleError(_0x10805b,null));};exports[_0x249d('0x5c')]=function(_0x15aa0a,_0x41f787){var _0x448c71=0x0;var _0x2b211a=0x0;var _0x2093a3=0x0;var _0x129000=[];return db[_0x249d('0x26')][_0x249d('0x21')]()['then'](function(_0x40afa2){return BPromise[_0x249d('0x5d')](_0x15aa0a[_0x249d('0x38')],function(_0x23d38a){var _0x2253db={'where':{'$or':[]},'defaults':_0x23d38a,'fields':_[_0x249d('0x28')](_0x40afa2),'raw':!![]};if(_0x23d38a[_0x249d('0x5e')]){for(var _0x54ee5e=0x0;_0x54ee5e<_0x23d38a[_0x249d('0x5e')][_0x249d('0x2e')];_0x54ee5e++){var _0x1c6098={};_0x1c6098[_0x23d38a[_0x249d('0x5e')][_0x54ee5e]]=_0x23d38a[_0x23d38a[_0x249d('0x5e')][_0x54ee5e]];_0x2253db['where'][_0x249d('0x5f')][_0x249d('0x60')](_0x1c6098);}_0x2253db[_0x249d('0x61')][_0x249d('0x62')]=_0x23d38a[_0x249d('0x62')];}return db[_0x249d('0x26')][_0x249d('0x63')](_0x2253db)[_0x249d('0x64')](function(_0x3a2feb,_0x96e25){if(_0x96e25){if(_0x23d38a[_0x249d('0x35')]('additionalPhones')){_0x129000[_0x249d('0x60')]({'contact':_0x3a2feb,'additionalPhones':_0x23d38a['additionalPhones']});}_0x448c71++;}else{_0x2093a3++;}})[_0x249d('0x25')](function(){_0x2b211a++;});});})[_0x249d('0x1a')](function(_0x5c1caf){if(_0x5c1caf){if(_0x129000[_0x249d('0x2e')]>0x0){return new Promise(function(_0x5c18da){var _0x4ef3ed=[];for(var _0x3ab1b9=0x0;_0x3ab1b9<_0x129000['length'];_0x3ab1b9++){_0x4ef3ed['push'](insertAdditionalPhones(_0x129000[_0x3ab1b9][_0x249d('0x65')],_0x129000[_0x3ab1b9][_0x249d('0x5b')]));}Promise[_0x249d('0x66')](_0x4ef3ed)[_0x249d('0x1a')](function(){_0x5c18da(0x1);});})[_0x249d('0x1a')](function(){return{'success':_0x448c71,'failure':_0x2b211a,'duplicates':_0x2093a3};});}else{return{'success':_0x448c71,'failure':_0x2b211a,'duplicates':_0x2093a3};}}})[_0x249d('0x1a')](respondWithResult(_0x41f787,0xc9))[_0x249d('0x25')](handleError(_0x41f787,null));};exports[_0x249d('0x67')]=function(_0x3210ec,_0x319a4a){var _0xba2a40;return db[_0x249d('0x26')][_0x249d('0x21')]()[_0x249d('0x1a')](function(_0x224642){return db[_0x249d('0x26')]['find']({'where':{'id':_0x3210ec['params']['id']},'include':[{'model':db['Tag'],'as':_0x249d('0x68'),'attributes':['id',_0x249d('0x1e'),_0x249d('0x69')],'required':_0x3210ec[_0x249d('0x22')][_0x249d('0x6a')]?!![]:![]},{'model':db[_0x249d('0x4b')],'as':'Phones','where':{'CmContactId':_0x3210ec[_0x249d('0x24')]['id']},'required':![],'include':[{'model':db['ContactItemType'],'as':_0x249d('0x6b')}]}],'order':[db[_0x249d('0x6c')][_0x249d('0x6d')](_0x249d('0x6e'))],'attributes':_[_0x249d('0x28')](_0x224642)});})['then'](function(_0xbb7795){if(!_['isNil'](_0xbb7795)){_0xba2a40=_0xbb7795[_0x249d('0x3a')]({'plain':!![]});var _0x304104={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0xbb7795&&_0xbb7795['ListId']){if(_0xbb7795[_0x249d('0x62')]){_0x304104['where'][_0x249d('0x6f')][_0x249d('0x60')]({'ListId':{'$ne':_0xbb7795[_0x249d('0x62')]}});}}return db[_0x249d('0x2d')][_0x249d('0x39')](_0x304104);}})[_0x249d('0x1a')](function(_0x122968){if(!_[_0x249d('0x57')](_0x122968)){return _['omit'](_0xba2a40,_[_0x249d('0x70')](_0x122968,function(_0x4d2ac0){return util[_0x249d('0x71')]('cf_%d',_0x4d2ac0['id']);}));}})['then'](handleEntityNotFound(_0x319a4a,null))[_0x249d('0x1a')](respondWithResult(_0x319a4a,null))[_0x249d('0x25')](handleError(_0x319a4a,null));};exports[_0x249d('0x18')]=function(_0x3a484c,_0x67de0f){var _0x450b64;if(_0x3a484c[_0x249d('0x38')]['id']){delete _0x3a484c[_0x249d('0x38')]['id'];}if(!_[_0x249d('0x57')](_0x3a484c['body']['dialTimezone'])){var _0x2b3273=_0x3a484c[_0x249d('0x38')][_0x249d('0x58')];if(!_[_0x249d('0x57')](shared['timezones'][_0x2b3273]))_0x3a484c[_0x249d('0x38')][_0x249d('0x5a')]=shared[_0x249d('0x59')][_0x2b3273][_0x249d('0x5a')];}return db[_0x249d('0x26')][_0x249d('0x72')]({'where':{'id':_0x3a484c[_0x249d('0x24')]['id']}})[_0x249d('0x1a')](handleEntityNotFound(_0x67de0f,null))[_0x249d('0x1a')](saveUpdates(_0x3a484c[_0x249d('0x38')],null))[_0x249d('0x1a')](function(_0x3d1a50){_0x450b64=_0x3d1a50;var _0x3bf2ae={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x3d1a50&&_0x3d1a50[_0x249d('0x62')]){if(_0x3d1a50[_0x249d('0x62')]){_0x3bf2ae[_0x249d('0x61')][_0x249d('0x6f')][_0x249d('0x60')]({'ListId':{'$ne':_0x3d1a50[_0x249d('0x62')]}});}}return db['CmCustomField']['findAll'](_0x3bf2ae);})[_0x249d('0x1a')](function(_0x10d30a){if(_0x10d30a){return _['omit'](_['pickBy'](_0x3a484c[_0x249d('0x38')],function(_0x8c420f,_0x524522){return _[_0x249d('0x29')](_0x524522,_0x249d('0x2a'));}),_[_0x249d('0x70')](_0x10d30a,function(_0x228ba4){return util[_0x249d('0x71')](_0x249d('0x73'),_0x228ba4['id']);}));}})['then'](function(_0xa286b2){if(_0xa286b2&&!_[_0x249d('0x74')](_0xa286b2)){var _0x44039b=squel['update']()[_0x249d('0x75')](_0x249d('0x76'))['setFields'](_0xa286b2)['where'](_0x249d('0x77'),_0x3a484c[_0x249d('0x24')]['id'])['toParam']();return db[_0x249d('0x6c')][_0x249d('0x22')](_0x44039b[_0x249d('0x78')],{'replacements':_0x44039b[_0x249d('0x79')]});}})[_0x249d('0x1a')](function(){if(_0x3a484c[_0x249d('0x38')][_0x249d('0x7a')]&&_0x450b64){return db['CmHopper'][_0x249d('0x18')]({'phone':_0x3a484c[_0x249d('0x38')][_0x249d('0x7a')],'OrderBy':0x0},{'where':{'ContactId':_0x450b64['id']}});}})[_0x249d('0x1a')](function(){return _0x450b64;})[_0x249d('0x1a')](respondWithResult(_0x67de0f,null))['catch'](handleError(_0x67de0f,null));};exports[_0x249d('0x7b')]=function(_0x3f2bdb,_0x24a1ec){var _0x457842={};var _0xb09e6e={};var _0x3fd33c;var _0x156033;return db[_0x249d('0x26')][_0x249d('0x7c')]({'where':{'id':_0x3f2bdb[_0x249d('0x24')]['id']}})['then'](handleEntityNotFound(_0x24a1ec,null))[_0x249d('0x1a')](function(_0x24a274){if(_0x24a274){_0x3fd33c=_0x24a274;_0xb09e6e['model']=_[_0x249d('0x28')](db[_0x249d('0x7d')][_0x249d('0x7e')]);_0xb09e6e['query']=_['keys'](_0x3f2bdb['query']);_0xb09e6e[_0x249d('0x7f')]=_[_0x249d('0x80')](_0xb09e6e[_0x249d('0x81')],_0xb09e6e['query']);_0x457842[_0x249d('0x82')]=_[_0x249d('0x80')](_0xb09e6e[_0x249d('0x81')],qs[_0x249d('0x83')](_0x3f2bdb[_0x249d('0x22')]['fields']));_0x457842['attributes']=_0x457842[_0x249d('0x82')][_0x249d('0x2e')]?_0x457842[_0x249d('0x82')]:_0xb09e6e[_0x249d('0x81')];_0x457842[_0x249d('0x84')]=qs[_0x249d('0x85')](_0x3f2bdb['query'][_0x249d('0x85')]);_0x457842[_0x249d('0x61')]=qs[_0x249d('0x7f')](_[_0x249d('0x86')](_0x3f2bdb[_0x249d('0x22')],_0xb09e6e[_0x249d('0x7f')]));if(_0x3f2bdb[_0x249d('0x22')][_0x249d('0x87')]){_0x457842[_0x249d('0x61')]=_[_0x249d('0x37')](_0x457842[_0x249d('0x61')],{'$or':_[_0x249d('0x70')](_0x457842[_0x249d('0x82')],function(_0x938c9f){var _0x14399a={};_0x14399a[_0x938c9f]={'$like':'%'+_0x3f2bdb[_0x249d('0x22')]['filter']+'%'};return _0x14399a;})});}_0x457842=_['merge']({},_0x457842,_0x3f2bdb[_0x249d('0x88')]);return _0x3fd33c[_0x249d('0x7b')](_0x457842);}})[_0x249d('0x1a')](function(_0x15e4d2){if(_0x15e4d2){_0x156033=_0x15e4d2[_0x249d('0x2e')];if(!_0x3f2bdb['query']['hasOwnProperty'](_0x249d('0x89'))){_0x457842['limit']=qs[_0x249d('0x14')](_0x3f2bdb['query'][_0x249d('0x14')]);_0x457842['offset']=qs[_0x249d('0x12')](_0x3f2bdb[_0x249d('0x22')][_0x249d('0x12')]);}return _0x3fd33c[_0x249d('0x7b')](_0x457842);}})[_0x249d('0x1a')](function(_0x13c572){if(_0x13c572){return _0x13c572?{'count':_0x156033,'rows':_0x13c572}:null;}})[_0x249d('0x1a')](respondWithResult(_0x24a1ec,null))[_0x249d('0x25')](handleError(_0x24a1ec,null));};exports[_0x249d('0x8a')]=function(_0x130812,_0x331e2b){if(_0x130812[_0x249d('0x38')]['id']){delete _0x130812[_0x249d('0x38')]['id'];}return db[_0x249d('0x26')][_0x249d('0x7c')]({'where':{'id':_0x130812[_0x249d('0x24')]['id']}})[_0x249d('0x1a')](handleEntityNotFound(_0x331e2b,null))[_0x249d('0x1a')](function(_0x20405e){if(_0x20405e){return _0x20405e['setTags'](_0x130812[_0x249d('0x38')]['ids']||[]);}return null;})[_0x249d('0x1a')](respondWithResult(_0x331e2b,null))[_0x249d('0x25')](handleError(_0x331e2b,null));};exports[_0x249d('0x8b')]=function(_0x557a7d,_0x539aad){var _0x5c69a1=[];_0x5c69a1[_0x249d('0x60')](addAdditionalPhones(_0x557a7d[_0x249d('0x38')]));Promise['all'](_0x5c69a1)[_0x249d('0x1a')](function(){_0x5c69a1=[];_0x5c69a1['push'](deleteCmHopperPhones(_0x557a7d[_0x249d('0x38')]['id']));_0x5c69a1[_0x249d('0x60')](addCmHopperPhones(_0x557a7d[_0x249d('0x38')]['id']));Promise[_0x249d('0x66')](_0x5c69a1)['then'](function(){return[0x1];})[_0x249d('0x1a')](respondWithResult(_0x539aad,null));});};function addAdditionalPhones(_0x8245ca){var _0x5d03e2;return new Promise(function(_0x21d302){return db[_0x249d('0x4b')][_0x249d('0x19')]({'where':{'CmContactId':_0x8245ca['id']}})['then'](function(){db[_0x249d('0x8c')][_0x249d('0x39')]({'raw':!![],'attributes':['id',_0x249d('0x8d')]})['then'](function(_0x43c162){var _0x3b062d=[];for(var _0x2d428e=0x0;_0x2d428e<_0x8245ca[_0x249d('0x8e')][_0x249d('0x2e')];_0x2d428e++){var _0x5f2b55=_0x8245ca['item_types']?_[_0x249d('0x57')](_0x8245ca[_0x249d('0x8f')][_0x2d428e])?'':_0x8245ca['item_types'][_0x2d428e]:_0x8245ca[_0x249d('0x8e')][_0x2d428e][_0x249d('0x90')]?_0x8245ca[_0x249d('0x8e')][_0x2d428e][_0x249d('0x90')]:'';var _0x413d0f=_['isNil'](_0x8245ca[_0x249d('0x8e')][_0x2d428e][_0x249d('0x91')])?'':_0x8245ca[_0x249d('0x8e')][_0x2d428e][_0x249d('0x91')];var _0x11d7b4=_0x5f2b55+':'+_0x8245ca[_0x249d('0x8e')][_0x2d428e]['phone']+'ยง'+_0x413d0f;if(_[_0x249d('0x57')](_0x5d03e2))_0x5d03e2=_0x11d7b4;else _0x5d03e2+=';'+_0x11d7b4;var _0x8d887b=null;var _0x396cf2=null;if(_0x8245ca[_0x249d('0x8f')]){if(!_['isNil'](_0x8245ca[_0x249d('0x8f')][_0x2d428e])){_0x396cf2=_[_0x249d('0x72')](_0x43c162,function(_0x542025){return _0x542025['id']===_0x8245ca['item_types'][_0x2d428e];});if(!_[_0x249d('0x57')](_0x396cf2)){_0x8d887b=_0x396cf2[_0x249d('0x8d')];}}}else{if(!_[_0x249d('0x57')](_0x8245ca[_0x249d('0x8e')][_0x2d428e])){_0x396cf2=_[_0x249d('0x72')](_0x43c162,function(_0x2c019b){return _0x2c019b['id']===_0x8245ca[_0x249d('0x8e')][_0x2d428e]['ItemTypeId'];});if(!_[_0x249d('0x57')](_0x396cf2)){_0x8d887b=_0x2d428e;}}}if(_[_0x249d('0x57')](_0x8d887b)){_0x8d887b=0x64;}_0x3b062d[_0x249d('0x60')](addAdditionalPhone(_0x8245ca['id'],_0x8245ca[_0x249d('0x8e')][_0x2d428e]['phone'],_0x8245ca['item_types']?_['isNil'](_0x8245ca[_0x249d('0x8f')][_0x2d428e])?null:_0x8245ca[_0x249d('0x8f')][_0x2d428e]:_0x8245ca[_0x249d('0x8e')][_0x2d428e]['ItemTypeId']?_0x8245ca[_0x249d('0x8e')][_0x2d428e]['ItemTypeId']:null,_0x8d887b,_0x413d0f));}Promise[_0x249d('0x66')](_0x3b062d)['then'](function(){db['CmContact']['update']({'AdditionalPhones':_0x5d03e2},{'where':{'id':_0x8245ca['id']}})[_0x249d('0x1a')](function(){_0x21d302(0x1);});});});});});}function addAdditionalPhone(_0x58fee1,_0xfd3e8c,_0x41cf25,_0x4e8a57,_0x3df2c4){return db['CmContactHasItem'][_0x249d('0x72')]({'where':{'CmContactId':_0x58fee1,'item':_0xfd3e8c}})[_0x249d('0x1a')](function(_0x3d4e34){if(_0x3d4e34)logger[_0x249d('0x32')](_0x249d('0x92'),_0x3d4e34);else{db[_0x249d('0x4b')][_0x249d('0x56')]({'CmContactId':_0x58fee1,'item':_0xfd3e8c,'ItemTypeId':_0x41cf25,'OrderBy':_0x4e8a57,'ItemClass':_0x249d('0x93'),'description':_0x3df2c4});}});}function deleteCmHopperPhones(_0x44de22){return new Promise(function(_0x47d019){return db['CmHopper'][_0x249d('0x39')]({'raw':!![],'attributes':['id'],'where':{'ContactId':_0x44de22}})[_0x249d('0x1a')](function(_0x8f9ee1){db[_0x249d('0x94')][_0x249d('0x19')]({'where':{'CmHopperId':{'$in':_[_0x249d('0x70')](_0x8f9ee1,'id')}}});})['then'](function(){_0x47d019(0x1);});});}function addCmHopperPhones(_0x33a1d){return new Promise(function(_0x129b2e){return db['CmHopper'][_0x249d('0x39')]({'raw':!![],'attributes':['id'],'where':{'ContactId':_0x33a1d}})[_0x249d('0x1a')](function(_0x27eda5){var _0x3f3589=[];_[_0x249d('0x70')](_0x27eda5,function(_0x470715){_0x3f3589[_0x249d('0x60')](createCmHopperPhone(_0x33a1d,_0x470715['id']));});Promise[_0x249d('0x66')](_0x3f3589)['then'](function(){_0x129b2e(0x1);});});});}function createCmHopperPhone(_0x3e3229,_0x4a3647){return new Promise(function(_0x22c196){db['CmContactHasItem'][_0x249d('0x39')]({'raw':!![],'attributes':[_0x249d('0x95'),_0x249d('0x8d')],'where':{'CmContactId':_0x3e3229,'ItemClass':_0x249d('0x93')},'include':[{'model':db[_0x249d('0x8c')],'attributes':[_0x249d('0x8d')],'as':'ItemType'}],'order':[_0x249d('0x8d'),db[_0x249d('0x6c')][_0x249d('0x6d')](_0x249d('0x96'))]})[_0x249d('0x1a')](function(_0x23afdc){var _0x2c1119=0x1;var _0x26ebcf=_[_0x249d('0x70')](_0x23afdc,function(_0x18a21f){_0x18a21f[_0x249d('0x97')]=_0x4a3647;_0x18a21f[_0x249d('0x7a')]=_0x18a21f[_0x249d('0x95')];_0x18a21f[_0x249d('0x8d')]=_0x2c1119;delete _0x18a21f['ItemType.OrderBy'];_0x2c1119=_0x2c1119+0x1;return _0x18a21f;});return db[_0x249d('0x94')]['bulkCreate'](_0x26ebcf,{});})[_0x249d('0x1a')](function(){_0x22c196(0x1);});});}function insertAdditionalPhones(_0x58780e,_0x326baf){return new Promise(function(_0x198a87){var _0xf579af=[];for(var _0x437451=0x0;_0x437451<_0x326baf[_0x249d('0x2e')];_0x437451++){var _0x52afcb=_0x326baf[_0x437451];_0xf579af[_0x249d('0x60')](parseContactItemType(_0x52afcb));}Promise[_0x249d('0x66')](_0xf579af)[_0x249d('0x1a')](function(){var _0x49ac84={'id':_0x58780e['id'],'items':_0x326baf};return addAdditionalPhones(_0x49ac84)['then'](function(){return addCmHopperPhones(_0x58780e['id']);});})[_0x249d('0x1a')](function(){_0x198a87(_0x58780e);});});}function parseContactItemType(_0x549d50){return new Promise(function(_0x21090e){if(_0x549d50[_0x249d('0x35')](_0x249d('0x90'))){_0x21090e(_0x549d50);}else{return db[_0x249d('0x8c')][_0x249d('0x72')]({'where':{'name':_0x549d50['ItemType']}})[_0x249d('0x1a')](function(_0x1baca9){if(_['isNil'](_0x1baca9))_0x549d50[_0x249d('0x90')]=null;else _0x549d50[_0x249d('0x90')]=_0x1baca9['id'];_0x21090e(_0x549d50);});}});}exports[_0x249d('0x98')]=function(_0x19a3de,_0x1d5077){return db[_0x249d('0x4b')][_0x249d('0x39')]({'raw':!![],'where':{'CmContactId':_0x19a3de[_0x249d('0x24')]['id'],'ItemClass':'PHONE'},'include':[{'model':db[_0x249d('0x8c')],'as':'ItemType'}],'order':[[_0x249d('0x8d')],[db[_0x249d('0x6c')]['literal'](_0x249d('0x96'))]]})[_0x249d('0x1a')](function(_0x258591){return _0x258591;})[_0x249d('0x1a')](respondWithResult(_0x1d5077,null))['catch'](handleError(_0x1d5077,null));};exports[_0x249d('0x99')]=function(_0x5ed4a5,_0x51bc4d){return db[_0x249d('0x4b')][_0x249d('0x39')]({'raw':!![],'where':{'CmContactId':_0x5ed4a5[_0x249d('0x38')][_0x249d('0x9a')]}})['then'](function(_0xe018ad){var _0x46830f=_[_0x249d('0x70')](_0xe018ad,function(_0xa23237){_0xa23237[_0x249d('0x9b')]=_0x5ed4a5[_0x249d('0x38')][_0x249d('0x9c')];return _0xa23237;});return db['CmContactHasItem'][_0x249d('0x5c')](_0x46830f,{});})[_0x249d('0x1a')](function(){return addCmHopperPhones(_0x5ed4a5[_0x249d('0x38')][_0x249d('0x9c')]);})[_0x249d('0x1a')](function(){return['ok'];})[_0x249d('0x1a')](respondWithResult(_0x51bc4d,null))[_0x249d('0x25')](handleError(_0x51bc4d,null));};exports[_0x249d('0x9d')]=function(_0x1e1b85,_0x3cd65d){var _0x518da0=[];_0x518da0['push'](createCmHopperPhone(_0x1e1b85[_0x249d('0x38')]['id'],_0x1e1b85[_0x249d('0x38')][_0x249d('0x9e')]));Promise[_0x249d('0x66')](_0x518da0)['then'](function(){return[0x1];})[_0x249d('0x1a')](respondWithResult(_0x3cd65d,null));};exports['getHoppers']=function(_0xa6afe6,_0x549dc8){var _0x3e7bef={'raw':![],'where':{}};var _0x43d10e={};var _0x4fd7ba={'count':0x0,'rows':[]};return db[_0x249d('0x26')][_0x249d('0x7c')]({'where':{'id':_0xa6afe6[_0x249d('0x24')]['id']}})[_0x249d('0x1a')](handleEntityNotFound(_0x549dc8,null))[_0x249d('0x1a')](function(_0xccd26b){if(_0xccd26b){_0x43d10e[_0x249d('0x81')]=_['keys'](db[_0x249d('0x3f')][_0x249d('0x7e')]);_0x43d10e[_0x249d('0x22')]=_[_0x249d('0x28')](_0xa6afe6[_0x249d('0x22')]);_0x43d10e[_0x249d('0x7f')]=_[_0x249d('0x80')](_0x43d10e[_0x249d('0x81')],_0x43d10e['query']);_0x3e7bef[_0x249d('0x82')]=_[_0x249d('0x80')](_0x43d10e['model'],qs[_0x249d('0x83')](_0xa6afe6[_0x249d('0x22')]['fields']));_0x3e7bef['attributes']=_0x3e7bef[_0x249d('0x82')]['length']?_0x3e7bef[_0x249d('0x82')]:_0x43d10e['model'];if(!_0xa6afe6['query']['hasOwnProperty'](_0x249d('0x89'))){_0x3e7bef[_0x249d('0x14')]=qs[_0x249d('0x14')](_0xa6afe6['query'][_0x249d('0x14')]);_0x3e7bef['offset']=qs[_0x249d('0x12')](_0xa6afe6[_0x249d('0x22')]['offset']);}_0x3e7bef[_0x249d('0x84')]=qs[_0x249d('0x85')](_0xa6afe6[_0x249d('0x22')]['sort']);_0x3e7bef[_0x249d('0x61')]=qs[_0x249d('0x7f')](_['pick'](_0xa6afe6[_0x249d('0x22')],_0x43d10e['filters']));_0x3e7bef[_0x249d('0x61')][_0x249d('0x9f')]=_0xccd26b['id'];if(_0xa6afe6[_0x249d('0x22')]['filter']){_0x3e7bef['where']=_[_0x249d('0x37')](_0x3e7bef[_0x249d('0x61')],{'$or':_[_0x249d('0x70')](_0x3e7bef['attributes'],function(_0x4f34cf){var _0x4f56bb={};_0x4f56bb[_0x4f34cf]={'$like':'%'+_0xa6afe6[_0x249d('0x22')]['filter']+'%'};return _0x4f56bb;})});}_0x3e7bef=_[_0x249d('0x37')]({},_0x3e7bef,_0xa6afe6[_0x249d('0x88')]);return db['CmHopper'][_0x249d('0x15')]({'where':_0x3e7bef[_0x249d('0x61')]})[_0x249d('0x1a')](function(_0x538a6c){_0x4fd7ba[_0x249d('0x15')]=_0x538a6c;if(_0xa6afe6[_0x249d('0x22')]['includeAll']){_0x3e7bef[_0x249d('0xa0')]=[{'all':!![]}];}return db['CmHopper'][_0x249d('0x39')](_0x3e7bef);})['then'](function(_0x8ea64){_0x4fd7ba[_0x249d('0xa1')]=_0x8ea64;return _0x4fd7ba;});}})[_0x249d('0x1a')](respondWithFilteredResult(_0x549dc8,_0x3e7bef))[_0x249d('0x25')](handleError(_0x549dc8,null));};exports[_0x249d('0xa2')]=function(_0xc46235,_0x8cffe4){var _0x1263b8={'raw':!![],'where':{}};var _0x36cf84={};var _0x13af7a={'count':0x0,'rows':[]};return db[_0x249d('0x26')][_0x249d('0x7c')]({'where':{'id':_0xc46235['params']['id']}})[_0x249d('0x1a')](handleEntityNotFound(_0x8cffe4,null))['then'](function(_0x31df98){if(_0x31df98){_0x36cf84[_0x249d('0x81')]=_[_0x249d('0x28')](db[_0x249d('0x4c')][_0x249d('0x7e')]);_0x36cf84[_0x249d('0x22')]=_['keys'](_0xc46235['query']);_0x36cf84[_0x249d('0x7f')]=_[_0x249d('0x80')](_0x36cf84[_0x249d('0x81')],_0x36cf84[_0x249d('0x22')]);_0x1263b8[_0x249d('0x82')]=_['intersection'](_0x36cf84[_0x249d('0x81')],qs[_0x249d('0x83')](_0xc46235[_0x249d('0x22')][_0x249d('0x83')]));_0x1263b8[_0x249d('0x82')]=_0x1263b8[_0x249d('0x82')][_0x249d('0x2e')]?_0x1263b8['attributes']:_0x36cf84[_0x249d('0x81')];if(!_0xc46235[_0x249d('0x22')][_0x249d('0x35')](_0x249d('0x89'))){_0x1263b8[_0x249d('0x14')]=qs[_0x249d('0x14')](_0xc46235['query'][_0x249d('0x14')]);_0x1263b8[_0x249d('0x12')]=qs[_0x249d('0x12')](_0xc46235['query'][_0x249d('0x12')]);}_0x1263b8[_0x249d('0x84')]=qs[_0x249d('0x85')](_0xc46235[_0x249d('0x22')][_0x249d('0x85')]);_0x1263b8['where']=qs[_0x249d('0x7f')](_[_0x249d('0x86')](_0xc46235[_0x249d('0x22')],_0x36cf84[_0x249d('0x7f')]));_0x1263b8['where'][_0x249d('0x9f')]=_0x31df98['id'];if(_0xc46235[_0x249d('0x22')]['filter']){_0x1263b8['where']=_[_0x249d('0x37')](_0x1263b8[_0x249d('0x61')],{'$or':_[_0x249d('0x70')](_0x1263b8[_0x249d('0x82')],function(_0x4b09e4){var _0x31e666={};_0x31e666[_0x4b09e4]={'$like':'%'+_0xc46235[_0x249d('0x22')]['filter']+'%'};return _0x31e666;})});}_0x1263b8=_[_0x249d('0x37')]({},_0x1263b8,_0xc46235[_0x249d('0x88')]);return db[_0x249d('0x4c')]['count']({'where':_0x1263b8[_0x249d('0x61')]})[_0x249d('0x1a')](function(_0x3e57d2){_0x13af7a[_0x249d('0x15')]=_0x3e57d2;if(_0xc46235[_0x249d('0x22')][_0x249d('0xa3')]){_0x1263b8[_0x249d('0xa0')]=[{'all':!![]}];}return db['CmHopperHistory']['findAll'](_0x1263b8);})[_0x249d('0x1a')](function(_0x42c5a0){_0x13af7a[_0x249d('0xa1')]=_0x42c5a0;return _0x13af7a;});}})[_0x249d('0x1a')](respondWithFilteredResult(_0x8cffe4,_0x1263b8))[_0x249d('0x25')](handleError(_0x8cffe4,null));};exports['getHopperFinals']=function(_0x492dcd,_0x29c616){var _0x3dcd7f={'raw':!![],'where':{}};var _0x1230dd={};var _0x5c6e19={'count':0x0,'rows':[]};return db[_0x249d('0x26')][_0x249d('0x7c')]({'where':{'id':_0x492dcd[_0x249d('0x24')]['id']}})[_0x249d('0x1a')](handleEntityNotFound(_0x29c616,null))[_0x249d('0x1a')](function(_0x41455c){if(_0x41455c){_0x1230dd[_0x249d('0x81')]=_[_0x249d('0x28')](db['CmHopperFinal'][_0x249d('0x7e')]);_0x1230dd['query']=_['keys'](_0x492dcd[_0x249d('0x22')]);_0x1230dd[_0x249d('0x7f')]=_[_0x249d('0x80')](_0x1230dd[_0x249d('0x81')],_0x1230dd[_0x249d('0x22')]);_0x3dcd7f[_0x249d('0x82')]=_[_0x249d('0x80')](_0x1230dd['model'],qs[_0x249d('0x83')](_0x492dcd[_0x249d('0x22')][_0x249d('0x83')]));_0x3dcd7f[_0x249d('0x82')]=_0x3dcd7f['attributes']['length']?_0x3dcd7f[_0x249d('0x82')]:_0x1230dd['model'];if(!_0x492dcd[_0x249d('0x22')][_0x249d('0x35')](_0x249d('0x89'))){_0x3dcd7f[_0x249d('0x14')]=qs[_0x249d('0x14')](_0x492dcd['query'][_0x249d('0x14')]);_0x3dcd7f[_0x249d('0x12')]=qs[_0x249d('0x12')](_0x492dcd[_0x249d('0x22')][_0x249d('0x12')]);}_0x3dcd7f[_0x249d('0x84')]=qs[_0x249d('0x85')](_0x492dcd[_0x249d('0x22')]['sort']);_0x3dcd7f[_0x249d('0x61')]=qs[_0x249d('0x7f')](_[_0x249d('0x86')](_0x492dcd['query'],_0x1230dd[_0x249d('0x7f')]));_0x3dcd7f['where'][_0x249d('0x9f')]=_0x41455c['id'];if(_0x492dcd[_0x249d('0x22')][_0x249d('0x87')]){_0x3dcd7f[_0x249d('0x61')]=_[_0x249d('0x37')](_0x3dcd7f[_0x249d('0x61')],{'$or':_[_0x249d('0x70')](_0x3dcd7f[_0x249d('0x82')],function(_0x3d29be){var _0x21f6d6={};_0x21f6d6[_0x3d29be]={'$like':'%'+_0x492dcd['query']['filter']+'%'};return _0x21f6d6;})});}_0x3dcd7f=_[_0x249d('0x37')]({},_0x3dcd7f,_0x492dcd[_0x249d('0x88')]);return db[_0x249d('0xa4')][_0x249d('0x15')]({'where':_0x3dcd7f['where']})[_0x249d('0x1a')](function(_0x1db666){_0x5c6e19[_0x249d('0x15')]=_0x1db666;if(_0x492dcd[_0x249d('0x22')][_0x249d('0xa3')]){_0x3dcd7f[_0x249d('0xa0')]=[{'all':!![]}];}return db[_0x249d('0xa4')][_0x249d('0x39')](_0x3dcd7f);})[_0x249d('0x1a')](function(_0x5913f7){_0x5c6e19[_0x249d('0xa1')]=_0x5913f7;return _0x5c6e19;});}})[_0x249d('0x1a')](respondWithFilteredResult(_0x29c616,_0x3dcd7f))[_0x249d('0x25')](handleError(_0x29c616,null));};exports[_0x249d('0xa5')]=function(_0x2b4794,_0x520215){var _0x39a2a1={'raw':!![],'where':{}};var _0x347378={};var _0x4b3be2={'count':0x0,'rows':[]};return db[_0x249d('0x26')][_0x249d('0x7c')]({'where':{'id':_0x2b4794['params']['id']}})[_0x249d('0x1a')](handleEntityNotFound(_0x520215,null))[_0x249d('0x1a')](function(_0x432702){if(_0x432702){_0x347378[_0x249d('0x81')]=_[_0x249d('0x28')](db[_0x249d('0x52')]['rawAttributes']);_0x347378[_0x249d('0x22')]=_[_0x249d('0x28')](_0x2b4794['query']);_0x347378[_0x249d('0x7f')]=_[_0x249d('0x80')](_0x347378['model'],_0x347378[_0x249d('0x22')]);_0x39a2a1[_0x249d('0x82')]=_[_0x249d('0x80')](_0x347378[_0x249d('0x81')],qs[_0x249d('0x83')](_0x2b4794[_0x249d('0x22')][_0x249d('0x83')]));_0x39a2a1['attributes']=_0x39a2a1[_0x249d('0x82')]['length']?_0x39a2a1[_0x249d('0x82')]:_0x347378[_0x249d('0x81')];if(!_0x2b4794['query'][_0x249d('0x35')](_0x249d('0x89'))){_0x39a2a1[_0x249d('0x14')]=qs['limit'](_0x2b4794[_0x249d('0x22')][_0x249d('0x14')]);_0x39a2a1[_0x249d('0x12')]=qs[_0x249d('0x12')](_0x2b4794[_0x249d('0x22')][_0x249d('0x12')]);}_0x39a2a1[_0x249d('0x84')]=qs['sort'](_0x2b4794[_0x249d('0x22')][_0x249d('0x85')]);_0x39a2a1['where']=qs[_0x249d('0x7f')](_['pick'](_0x2b4794['query'],_0x347378[_0x249d('0x7f')]));_0x39a2a1[_0x249d('0x61')]['ContactId']=_0x432702['id'];if(_0x2b4794['query'][_0x249d('0x87')]){_0x39a2a1['where']=_[_0x249d('0x37')](_0x39a2a1[_0x249d('0x61')],{'$or':_[_0x249d('0x70')](_0x39a2a1[_0x249d('0x82')],function(_0x3c1a71){var _0x406615={};_0x406615[_0x3c1a71]={'$like':'%'+_0x2b4794[_0x249d('0x22')]['filter']+'%'};return _0x406615;})});}_0x39a2a1=_[_0x249d('0x37')]({},_0x39a2a1,_0x2b4794[_0x249d('0x88')]);return db[_0x249d('0x52')][_0x249d('0x15')]({'where':_0x39a2a1['where']})[_0x249d('0x1a')](function(_0x51a94d){_0x4b3be2[_0x249d('0x15')]=_0x51a94d;if(_0x2b4794['query'][_0x249d('0xa3')]){_0x39a2a1[_0x249d('0xa0')]=[{'all':!![]}];}return db[_0x249d('0x52')][_0x249d('0x39')](_0x39a2a1);})[_0x249d('0x1a')](function(_0x54d7c9){_0x4b3be2[_0x249d('0xa1')]=_0x54d7c9;return _0x4b3be2;});}})[_0x249d('0x1a')](respondWithFilteredResult(_0x520215,_0x39a2a1))[_0x249d('0x25')](handleError(_0x520215,null));};exports['uploadCsv']=function(_0x3d317d,_0x2ad1c8){try{if(!_0x3d317d[_0x249d('0x38')][_0x249d('0x62')]){throw new Error(_0x249d('0xa6'));}if(!_0x3d317d[_0x249d('0x38')]['binding_keys']){throw new Error('No\x20association\x20keys\x20specified!');}if(!_0x3d317d['body']['binding_values']){throw new Error(_0x249d('0xa7'));}if(!_0x3d317d[_0x249d('0x38')][_0x249d('0xa8')]){throw new Error(_0x249d('0xa9'));}var _0x22d79d=_0x3d317d[_0x249d('0x38')][_0x249d('0xaa')][_0x249d('0xab')](',');var _0x50ae18=_0x3d317d[_0x249d('0x38')][_0x249d('0xac')][_0x249d('0xab')](',');if(!_0x22d79d[_0x249d('0x2e')]||!_0x50ae18[_0x249d('0x2e')]||_0x22d79d[_0x249d('0x2e')]!==_0x50ae18['length']){throw new Error(_0x249d('0xad'));}_0x3d317d[_0x249d('0x38')]['fields']=_[_0x249d('0xae')](_0x22d79d,_0x50ae18);if(!_0x3d317d[_0x249d('0x38')][_0x249d('0x83')][_0x249d('0x7a')]){throw new Error(_0x249d('0xaf'));}if(!_0x3d317d[_0x249d('0x38')][_0x249d('0x83')]['firstName']){throw new Error(_0x249d('0xb0'));}var _0x521fc0=path[_0x249d('0x3d')](config['root'],'server/files/tmp',_0x3d317d[_0x249d('0xb1')][_0x249d('0xb2')]);fs['chmodSync'](_0x521fc0,parseInt(_0x249d('0xb3'),0x8));var _0x509c0f=require(_0x249d('0xb4'))[_0x249d('0xb5')](path[_0x249d('0x3d')](__dirname,_0x249d('0xb6')),[_0x521fc0,_0x3d317d['body']['binding_keys'],_0x3d317d[_0x249d('0x38')][_0x249d('0xac')],_0x3d317d[_0x249d('0x38')][_0x249d('0x62')],_0x3d317d[_0x249d('0x38')][_0x249d('0xb7')],_0x3d317d['body'][_0x249d('0x5e')],_0x3d317d[_0x249d('0x38')]['socket_timestamp']]);return _0x2ad1c8[_0x249d('0x11')](0xc8)[_0x249d('0x17')]({'message':_0x249d('0xb8'),'pid':_0x509c0f['pid']});}catch(_0x28ffb7){return _0x2ad1c8[_0x249d('0x11')](0x1f4)[_0x249d('0x1f')](_0x28ffb7);}};exports[_0x249d('0xb9')]=function(_0x205217,_0x2c2e48){var _0x11b3ad=fs[_0x249d('0xba')](_0x205217['file'][_0x249d('0x3')]);Papa['parse'](_0x11b3ad,{'header':!![],'skipEmptyLines':!![],'preview':0x1,'complete':function(_0x39c679){return _0x2c2e48[_0x249d('0x11')](0xc8)[_0x249d('0x17')]({'file':_0x205217['file'],'fields':_0x39c679[_0x249d('0xbb')][_0x249d('0x83')]});}});};exports[_0x249d('0xbc')]=function(_0x235f8b,_0x1a419d){return db[_0x249d('0xbd')][_0x249d('0x39')]({'raw':!![],'attributes':['id'],'where':{'role':_0x249d('0xbe')}})[_0x249d('0x1a')](function(_0x55fa77){var _0x3f0f8e=![];if(!_0x235f8b[_0x249d('0x38')][_0x249d('0x62')]){throw new Error('No\x20ListId\x20specified');}if(!_0x235f8b[_0x249d('0x38')][_0x249d('0xbf')][_0x249d('0x7a')]){throw new Error(_0x249d('0xaf'));}if(!_0x235f8b[_0x249d('0x38')][_0x249d('0xbf')][_0x249d('0xc0')]){throw new Error(_0x249d('0xb0'));}if(!_0x235f8b['body']['socket_timestamp']){throw new Error(_0x249d('0xa9'));}var _0x17f20b=require(_0x249d('0xb4'))[_0x249d('0xb5')](path[_0x249d('0x3d')](__dirname,_0x249d('0xc1')),[_0x235f8b['params']['id'],JSON[_0x249d('0xc2')](_0x235f8b[_0x249d('0x38')]),JSON[_0x249d('0xc2')](_0x55fa77)]);_0x17f20b['on'](_0x249d('0xc3'),function(){_0x3f0f8e=!![];return _0x1a419d[_0x249d('0x11')](0xc8)[_0x249d('0x17')]({'message':_0x249d('0xc4'),'pid':_0x17f20b['pid']});});_0x17f20b['on'](_0x249d('0xc5'),function(_0x361c96){if(_0x361c96&&!_0x3f0f8e){return _0x1a419d['status'](0x1f4)['json']({'message':'error\x20child\x20process','pid':_0x17f20b[_0x249d('0xc6')]});}});})[_0x249d('0x25')](handleError(_0x1a419d,null));};exports[_0x249d('0xc7')]=function(_0x6f084f,_0x2a1c25){return db[_0x249d('0xbd')]['findAll']({'raw':!![],'attributes':['id'],'where':{'role':_0x249d('0xbe')}})[_0x249d('0x1a')](function(_0x34a60a){var _0x174b3b=![];if(!_0x6f084f[_0x249d('0x38')][_0x249d('0x62')]){throw new Error('No\x20ListId\x20specified');}if(!_0x6f084f[_0x249d('0x38')]['binding'][_0x249d('0x7a')]){throw new Error(_0x249d('0xaf'));}if(!_0x6f084f[_0x249d('0x38')][_0x249d('0xbf')][_0x249d('0xc0')]){throw new Error(_0x249d('0xb0'));}if(!_0x6f084f[_0x249d('0x38')][_0x249d('0xa8')]){throw new Error('Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed');}var _0x1e3402=require(_0x249d('0xb4'))[_0x249d('0xb5')](path[_0x249d('0x3d')](__dirname,_0x249d('0xc8')),[_0x6f084f['params']['id'],JSON[_0x249d('0xc2')](_0x6f084f[_0x249d('0x38')]),JSON['stringify'](_0x34a60a)]);_0x1e3402['on'](_0x249d('0xc3'),function(){_0x174b3b=!![];return _0x2a1c25['status'](0xc8)[_0x249d('0x17')]({'message':_0x249d('0xc4'),'pid':_0x1e3402[_0x249d('0xc6')]});});_0x1e3402['on'](_0x249d('0xc5'),function(_0x18daf7){if(_0x18daf7&&!_0x174b3b){return _0x2a1c25[_0x249d('0x11')](0x1f4)['json']({'message':_0x249d('0xc9'),'pid':_0x1e3402[_0x249d('0xc6')]});}});})[_0x249d('0x25')](handleError(_0x2a1c25,null));};exports['getJourney']=function(_0x422589,_0x3c54ef){var _0x51fb35=['mail',_0x249d('0xca'),_0x249d('0xcb'),_0x249d('0xcc'),_0x249d('0xcd'),_0x249d('0xce'),_0x249d('0xcf')];var _0x2d5e03={'offset':0x0,'order':qs[_0x249d('0x85')](_0x249d('0xd0'))},_0x3a8c53={'count':0x0,'rows':[]};Promise[_0x249d('0xd1')]()[_0x249d('0x1a')](function(){if(_0x422589[_0x249d('0x22')][_0x249d('0xd2')]){if(!_[_0x249d('0xd3')](_0x51fb35,_0x422589[_0x249d('0x22')][_0x249d('0xd2')][_0x249d('0xd4')]())){throw new Error(_0x249d('0xd5'));}_0x51fb35=[_0x422589['query'][_0x249d('0xd2')]['toLowerCase']()];}if(_0x422589['query']['range']){try{var _0x4e501d=JSON[_0x249d('0xd6')](_0x422589[_0x249d('0x22')][_0x249d('0xd7')]);if(!moment(_0x4e501d['from'])[_0x249d('0xd8')]()){throw new Error(_0x249d('0xd9'));}if(!moment(_0x4e501d['to'])[_0x249d('0xd8')]()){throw new Error('Invalid\x20date\x20for\x20range\x20to\x20filter');}}catch(_0x6ecd7b){throw new Error(_0x249d('0xda'));}}if(!_0x422589[_0x249d('0x22')][_0x249d('0x35')](_0x249d('0x89'))){_0x2d5e03[_0x249d('0x14')]=qs[_0x249d('0x14')](_0x422589[_0x249d('0x22')][_0x249d('0x14')]||0xa);_0x2d5e03[_0x249d('0x12')]=qs[_0x249d('0x12')](_0x422589[_0x249d('0x22')][_0x249d('0x12')]);}var _0x26d287=_0x51fb35['map'](function(_0x1589a6){if(_0x1589a6==='voice'){var _0xa5498a={'attributes':['id','uniqueid',_0x249d('0x31'),_0x249d('0xdb'),'destination',_0x249d('0xdc'),_0x249d('0xdd'),'endtime',_0x249d('0xde'),_0x249d('0xdf'),'createdAt',_0x249d('0xe0'),_0x249d('0xe1'),_0x249d('0xe2'),_0x249d('0xe3')],'where':{'ContactId':_0x422589[_0x249d('0x24')]['id']},'include':[{'model':db[_0x249d('0xbd')],'as':_0x249d('0xbd'),'attributes':['id',_0x249d('0x1e'),_0x249d('0xe4'),_0x249d('0x2f')]}],'order':[[_0x249d('0xe5'),_0x249d('0xe6')]]};if(_0x422589['query'][_0x249d('0xd7')]){_0xa5498a['where'][_0x249d('0xe5')]={'$gte':_0x4e501d[_0x249d('0x40')],'$lte':_0x4e501d['to']};}return db[_0x249d('0x4e')][_0x249d('0xe7')](_0xa5498a)[_0x249d('0x1a')](function(_0x4b3929){_0x3a8c53['count']+=_0x4b3929['count'];return _['map'](_0x4b3929[_0x249d('0xa1')],function(_0x43ebe8){var _0x49d1b2=_0x43ebe8[_0x249d('0x3a')]({'plain':!![]});_0x49d1b2[_0x249d('0xd2')]=_0x1589a6;if(_0x49d1b2[_0x249d('0xbd')]){_0x49d1b2[_0x249d('0xbd')]={'id':_0x49d1b2[_0x249d('0xbd')]['id'],'name':_0x49d1b2['User'][_0x249d('0x1e')],'fullname':_0x49d1b2['User']['fullname'],'alias':_0x49d1b2['User'][_0x249d('0x2f')]};}return _0x49d1b2;});});}else{var _0x3203a3=_[_0x249d('0xe8')](_0x1589a6)+(_0x1589a6==='chat'?_0x249d('0xe9'):_0x249d('0xea'));var _0x5324e7={'attributes':['id',_0x249d('0xeb'),_0x249d('0xec'),_0x249d('0xe5'),_0x249d('0xdf'),'disposition',_0x249d('0xed'),_0x249d('0xee'),_0x249d('0xe3'),_0x3203a3+'Id'],'where':{'ContactId':_0x422589[_0x249d('0x24')]['id']},'include':[{'model':db[_0x3203a3],'as':_0x249d('0xea'),'attributes':['id',_0x249d('0x1e'),'key']},{'model':db[_0x249d('0xbd')],'as':'Owner','attributes':['id','name','fullname']},{'model':db[_0x249d('0x7d')],'as':_0x249d('0x68'),'attributes':['id',_0x249d('0x1e'),'color'],'through':{'attributes':[]}}],'order':[[_0x249d('0xe5'),_0x249d('0xe6')]]};if(_0x422589[_0x249d('0x22')][_0x249d('0xd7')]){_0x5324e7[_0x249d('0x61')][_0x249d('0xe5')]={'$gte':_0x4e501d['from'],'$lte':_0x4e501d['to']};}switch(_0x1589a6){case _0x249d('0xca'):_0x5324e7[_0x249d('0x82')][_0x249d('0x60')](_0x249d('0xef'),_0x249d('0xf0'),_0x249d('0xf1'),'deviceModel','osName',_0x249d('0xf2'),_0x249d('0xf3'),_0x249d('0xf4'),_0x249d('0xf5'));break;case _0x249d('0xf6'):_0x5324e7[_0x249d('0x82')][_0x249d('0x60')](_0x249d('0xf7'),_0x249d('0xf8'));break;case _0x249d('0xcc'):_0x5324e7['attributes'][_0x249d('0x60')](_0x249d('0xf9'),'threadId');break;}return db[_[_0x249d('0xe8')](_0x1589a6)+_0x249d('0xfa')][_0x249d('0xe7')](_0x5324e7)[_0x249d('0x1a')](function(_0x26c081){_0x3a8c53['count']+=_0x26c081[_0x249d('0x15')];return _[_0x249d('0x70')](_0x26c081[_0x249d('0xa1')],function(_0x5b4838){var _0x56bdc7=_0x5b4838[_0x249d('0x3a')]({'plain':!![]});_0x56bdc7[_0x249d('0xd2')]=_0x1589a6;if(_0x56bdc7[_0x249d('0xfb')]){_0x56bdc7[_0x249d('0xfb')]={'id':_0x56bdc7[_0x249d('0xfb')]['id'],'name':_0x56bdc7[_0x249d('0xfb')]['name'],'fullname':_0x56bdc7['Owner'][_0x249d('0xe4')]};}return _0x56bdc7;});});}});return Promise[_0x249d('0x66')](_0x26d287);})['then'](function(_0x2f43fd){return _(_0x2f43fd)[_0x249d('0xfc')]()[_0x249d('0xfd')](_0x249d('0xe5'))[_0x249d('0xfe')]()['value']();})[_0x249d('0x1a')](function(_0x27b7c9){_0x3a8c53['rows']=_0x2d5e03['limit']?_0x27b7c9[_0x249d('0xff')](_0x2d5e03[_0x249d('0x12')],_0x2d5e03['offset']+_0x2d5e03[_0x249d('0x14')]):_0x27b7c9;return _0x3a8c53;})[_0x249d('0x1a')](respondWithFilteredResult(_0x3c54ef,_0x2d5e03))['catch'](handleError(_0x3c54ef,null));};