7038f5dd008a0bae5db2bb3e19024bb32e223b41
[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 _0xe9ee=['moment','util','path','lodash','squel','papaparse','ioredis','../../config/logger','../../config/environment','../../config/environment/shared','../../mysqldb','redis','defaults','socket.io-emitter','./cmContact.socket','register','status','json','offset','undefined','count','limit','set','Content-Range','update','then','destroy','sendStatus','error','stack','name','index','describe','findAll','query','user','catch','CmContact','find','params','tags','length','startsWith','displayName','CmCustomField','columnName','alias','type','values','info','Custom\x20field\x20%s\x20not\x20found\x20on\x20cm_contacts\x20table','forEach','hasOwnProperty','merge','body','from','get','mergeWith','isArray','join','[CmContact][merge]\x20to\x20%s\x20from\x20%s','CmHopper','CmHopperBlack','ChatInteraction','ChatMessage','MailInteraction','SmsMessage','FaxMessage','OpenchannelInteraction','CmContactHasItem','CmHopperFinal','CmHopperHistory','FaxQueueReport','MailQueueReport','OpenchannelQueueReport','SmsQueueReport','JscriptySessionReport','WhatsappMessage','create','isNil','dialTimezone','timezones','utcOffset','keys','additionalPhones','bulkCreate','each','duplicates','$or','push','where','findOrCreate','contact','all','Tag','color','Phones','ContactItemType','ItemType','sequelize','Phones.OrderBy','ListId','omit','map','format','cf_%d','pickBy','cf_','setFields','id\x20=\x20?','toParam','text','getTags','findOne','model','rawAttributes','intersection','attributes','fields','order','sort','filters','pick','filter','options','setTags','setAdditionalPhones','items','item_types','ItemTypeId','description','phone','contact\x20phone\x20exists','PHONE','CmHopperAdditionalPhone','item','OrderBy','CmHopperId','ItemType.OrderBy','getAdditionalPhones','literal','`ItemType`.OrderBy','duplicateAdditionalPhones','fromContactId','CmContactId','toContactId','rescheduleAdditionalPhones','getHoppers','nolimit','ContactId','includeAll','include','rows','getHopperHistories','getHopperFinals','uploadCsv','No\x20ListId\x20specified','binding_values','socket_timestamp','Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed','split','Incorrect\x20binding\x20parameters\x20passed!','zipObject','No\x20phone\x20column\x20specified','firstName','No\x20firstName\x20column\x20specified','root','server/files/tmp','file','filename','chmodSync','0777','child_process','fork','../../components/import/cm/csv','binding_keys','CompanyId','File\x20uploaded\x20correctly!','pid','send','createReadStream','parse','meta','import','User','agent','binding','stringify','message','start\x20child\x20process\x20correctly!','exit','error\x20child\x20process','../../components/import/cm/csvUpdates','getJourney','mail','chat','sms','fax','whatsapp','-createdAt','channel','includes','toLowerCase','Invalid\x20channel','range','isValid','Invalid\x20date\x20for\x20range\x20from\x20filter','Invalid\x20date\x20for\x20range\x20to\x20filter','Invalid\x20createdAt\x20filter','voice','uniqueid','source','destination','note','createdAt','userDisposition','userSecondDisposition','userThirdDisposition','UserId','fullname','DESC','VoiceCallReport','findAndCountAll','startCase','Website','closed','disposition','secondDisposition','thirdDisposition','Owner','browserName','customerIp','deviceModel','osName','ratingMessage','ratingType','referer','subject','substatus','openchannel','externalUrl','threadId','Interaction','flatten','sortBy','reverse','value','slice'];(function(_0x261ae4,_0x3f10de){var _0x1790e0=function(_0x3ea9e4){while(--_0x3ea9e4){_0x261ae4['push'](_0x261ae4['shift']());}};_0x1790e0(++_0x3f10de);}(_0xe9ee,0x1f0));var _0xee9e=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xe9ee[_0x3dd15e];return _0x231fd0;};'use strict';var moment=require(_0xee9e('0x0'));var BPromise=require('bluebird');var util=require(_0xee9e('0x1'));var path=require(_0xee9e('0x2'));var fs=require('fs');var _=require(_0xee9e('0x3'));var squel=require(_0xee9e('0x4'));var Papa=require(_0xee9e('0x5'));var Redis=require(_0xee9e('0x6'));var contacts=require('../../components/contacts');var qs=require('../../components/parsers/qs');var logger=require(_0xee9e('0x7'))('api');var config=require(_0xee9e('0x8'));var shared=require(_0xee9e('0x9'));var db=require(_0xee9e('0xa'))['db'];config[_0xee9e('0xb')]=_[_0xee9e('0xc')](config[_0xee9e('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0xee9e('0xd'))(new Redis(config[_0xee9e('0xb')]));require(_0xee9e('0xe'))[_0xee9e('0xf')](socket);function respondWithResult(_0x503e9c,_0x5adebd){_0x5adebd=_0x5adebd||0xc8;return function(_0x2bb2e2){if(_0x2bb2e2){return _0x503e9c[_0xee9e('0x10')](_0x5adebd)[_0xee9e('0x11')](_0x2bb2e2);}};}function respondWithFilteredResult(_0x5aaf02,_0x559f94){return function(_0xd36ea0){if(_0xd36ea0){var _0x8ae8e0=typeof _0x559f94[_0xee9e('0x12')]===_0xee9e('0x13')&&typeof _0x559f94['limit']==='undefined';var _0x13b887=_0xd36ea0[_0xee9e('0x14')];var _0x572a3a=_0x8ae8e0?0x0:_0x559f94[_0xee9e('0x12')];var _0xee1eed=_0x8ae8e0?_0xd36ea0[_0xee9e('0x14')]:_0x559f94[_0xee9e('0x12')]+_0x559f94[_0xee9e('0x15')];var _0x269084;if(_0xee1eed>=_0x13b887){_0xee1eed=_0x13b887;_0x269084=0xc8;}else{_0x269084=0xce;}_0x5aaf02['status'](_0x269084);return _0x5aaf02[_0xee9e('0x16')](_0xee9e('0x17'),_0x572a3a+'-'+_0xee1eed+'/'+_0x13b887)[_0xee9e('0x11')](_0xd36ea0);}return null;};}function saveUpdates(_0x339cf8){return function(_0x1a4c8b){if(_0x1a4c8b){return _0x1a4c8b[_0xee9e('0x18')](_0x339cf8)[_0xee9e('0x19')](function(_0x123cf9){return _0x123cf9;});}return null;};}function removeEntity(_0x5508b5){return function(_0x59c96b){if(_0x59c96b){return _0x59c96b[_0xee9e('0x1a')]()[_0xee9e('0x19')](function(){_0x5508b5[_0xee9e('0x10')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2e71f3){return function(_0x19aece){if(!_0x19aece){_0x2e71f3[_0xee9e('0x1b')](0x194);}return _0x19aece;};}function handleError(_0x2752cc,_0x40bbfa){_0x40bbfa=_0x40bbfa||0x1f4;return function(_0x4b43e2){logger[_0xee9e('0x1c')](_0x4b43e2[_0xee9e('0x1d')]);if(_0x4b43e2[_0xee9e('0x1e')]){delete _0x4b43e2['name'];}_0x2752cc[_0xee9e('0x10')](_0x40bbfa)['send'](_0x4b43e2);};}exports[_0xee9e('0x1f')]=function(_0x356a2c,_0x3613b){var _0x5f1366={};return contacts[_0xee9e('0x20')]()['then'](function(_0x3d7bed){_0x5f1366=qs['getOptions'](_0x3d7bed,_0x356a2c);return contacts[_0xee9e('0x21')](_0x356a2c[_0xee9e('0x22')],_0x356a2c[_0xee9e('0x23')],_0x5f1366,_0x3d7bed);})[_0xee9e('0x19')](respondWithFilteredResult(_0x3613b,_0x5f1366))[_0xee9e('0x24')](handleError(_0x3613b,null));};exports[_0xee9e('0x1a')]=function(_0x282ec5,_0x425162){return db[_0xee9e('0x25')][_0xee9e('0x26')]({'where':{'id':_0x282ec5[_0xee9e('0x27')]['id']}})[_0xee9e('0x19')](handleEntityNotFound(_0x425162,null))[_0xee9e('0x19')](removeEntity(_0x425162,null))['catch'](handleError(_0x425162,null));};exports[_0xee9e('0x20')]=function(_0x476049,_0x573878){return db[_0xee9e('0x25')]['describe']()['then'](function(_0x43f9c5){delete _0x43f9c5[_0xee9e('0x28')];for(var _0x342596=0x0;_0x342596<Object['keys'](_0x43f9c5)[_0xee9e('0x29')];_0x342596++){var _0x6a285e=Object['keys'](_0x43f9c5)[_0x342596];if(!_[_0xee9e('0x2a')](_0x6a285e,'cf_')){_0x43f9c5[_0x6a285e]['columnName']=_0x6a285e;_0x43f9c5[_0x6a285e][_0xee9e('0x2b')]=_0x6a285e;}}return _0x43f9c5;})[_0xee9e('0x19')](function(_0x5e3701){var _0xc6e75f={'where':Boolean(_0x476049['query']['analytics'])===!![]?undefined:{'$or':[{'ListId':_0x476049[_0xee9e('0x22')]['id']},{'ListId':null}]},'raw':!![]};return db[_0xee9e('0x2c')][_0xee9e('0x21')](_0xc6e75f)['then'](function(_0xc5e05c){for(var _0x2aff03=0x0;_0x2aff03<_0xc5e05c[_0xee9e('0x29')];_0x2aff03++){var _0x23dd04='cf_'+_0xc5e05c[_0x2aff03]['id'];if(_0x5e3701[_0x23dd04]){_0x5e3701[_0x23dd04][_0xee9e('0x2d')]=_0x23dd04;_0x5e3701[_0x23dd04][_0xee9e('0x2b')]=_0xc5e05c[_0x2aff03][_0xee9e('0x2e')];_0x5e3701[_0x23dd04]['custom']={'type':_0xc5e05c[_0x2aff03][_0xee9e('0x2f')],'values':_0xc5e05c[_0x2aff03][_0xee9e('0x30')]};}else{logger[_0xee9e('0x31')](_0xee9e('0x32'),_0x23dd04);}}Object['keys'](_0x5e3701)[_0xee9e('0x33')](function(_0x35259c){if(!_0x5e3701[_0x35259c][_0xee9e('0x34')](_0xee9e('0x2d'))){delete _0x5e3701[_0x35259c];}});return _0x5e3701;});})[_0xee9e('0x19')](respondWithResult(_0x573878,null))['catch'](handleError(_0x573878,null));};exports[_0xee9e('0x35')]=function(_0x55e1ba,_0x2bd9fb){var _0x764386;var _0x4e6a0b;var _0x56e3b3;if(_0x55e1ba[_0xee9e('0x36')]['id']){delete _0x55e1ba[_0xee9e('0x36')]['id'];}return db[_0xee9e('0x25')][_0xee9e('0x21')]({'where':{'id':[_0x55e1ba[_0xee9e('0x36')]['to'],_0x55e1ba[_0xee9e('0x36')][_0xee9e('0x37')]]}})[_0xee9e('0x19')](function(_0x1d8cd8){if(_0x1d8cd8){if(_0x1d8cd8[_0xee9e('0x29')]!==0x2){return null;}_0x1d8cd8[0x0]=_0x1d8cd8[0x0][_0xee9e('0x38')]({'plain':!![]});_0x1d8cd8[0x1]=_0x1d8cd8[0x1][_0xee9e('0x38')]({'plain':!![]});delete _0x1d8cd8[0x0]['id'];delete _0x1d8cd8[0x1]['id'];return _[_0xee9e('0x39')](_0x1d8cd8[0x0],_0x1d8cd8[0x1],function(_0x49a64e,_0x17e785){if(Array[_0xee9e('0x3a')](_0x17e785)&&!_0x17e785[_0xee9e('0x29')]){return _0x49a64e;}else if(!_0x17e785){return _0x49a64e;}});}})['then'](handleEntityNotFound(_0x2bd9fb,null))[_0xee9e('0x19')](function(_0x52981d){if(_0x52981d){if(_0x52981d[_0xee9e('0x28')]&&_[_0xee9e('0x3a')](_0x52981d[_0xee9e('0x28')])){_0x52981d[_0xee9e('0x28')]=_0x52981d[_0xee9e('0x28')][_0xee9e('0x3b')]();}logger['info'](_0xee9e('0x3c'),_0x55e1ba[_0xee9e('0x36')]['to'],_0x55e1ba['body'][_0xee9e('0x37')]);return db[_0xee9e('0x3d')][_0xee9e('0x1a')]({'where':{'ContactId':[_0x55e1ba['body']['to'],_0x55e1ba['body'][_0xee9e('0x37')]]}})[_0xee9e('0x19')](function(_0x539209){logger[_0xee9e('0x31')]('[CmContact][merge][destroy][CmHopper],\x20%s',_0x539209);return db[_0xee9e('0x3e')][_0xee9e('0x1a')]({'where':{'ContactId':[_0x55e1ba[_0xee9e('0x36')]['to'],_0x55e1ba['body']['from']]}})[_0xee9e('0x19')](function(_0x1c4438){logger[_0xee9e('0x31')]('[CmContact][merge][destroy][CmHopperBlack],\x20%s',_0x1c4438);return db['CmContact']['create'](_0x52981d);});});}})[_0xee9e('0x19')](function(_0x46fdff){if(_0x46fdff){_0x764386=_0x46fdff;_0x4e6a0b={'ContactId':_0x764386['id']};_0x56e3b3={'where':{'ContactId':[_0x55e1ba[_0xee9e('0x36')]['to'],_0x55e1ba['body'][_0xee9e('0x37')]]}};return db[_0xee9e('0x3f')][_0xee9e('0x18')](_0x4e6a0b,_0x56e3b3);}})[_0xee9e('0x19')](function(){if(_0x764386){return db[_0xee9e('0x40')][_0xee9e('0x18')](_0x4e6a0b,_0x56e3b3);}})[_0xee9e('0x19')](function(){if(_0x764386){return db['ChatOfflineMessage']['update'](_0x4e6a0b,_0x56e3b3);}})['then'](function(){if(_0x764386){return db[_0xee9e('0x41')][_0xee9e('0x18')](_0x4e6a0b,_0x56e3b3);}})[_0xee9e('0x19')](function(){if(_0x764386){return db['MailMessage'][_0xee9e('0x18')](_0x4e6a0b,_0x56e3b3);}})['then'](function(){if(_0x764386){return db[_0xee9e('0x41')][_0xee9e('0x18')](_0x4e6a0b,_0x56e3b3);}})[_0xee9e('0x19')](function(){if(_0x764386){return db['MailMessage'][_0xee9e('0x18')](_0x4e6a0b,_0x56e3b3);}})[_0xee9e('0x19')](function(){if(_0x764386){return db['SmsInteraction'][_0xee9e('0x18')](_0x4e6a0b,_0x56e3b3);}})['then'](function(){if(_0x764386){return db[_0xee9e('0x42')][_0xee9e('0x18')](_0x4e6a0b,_0x56e3b3);}})['then'](function(){if(_0x764386){return db['FaxInteraction']['update'](_0x4e6a0b,_0x56e3b3);}})[_0xee9e('0x19')](function(){if(_0x764386){return db[_0xee9e('0x43')][_0xee9e('0x18')](_0x4e6a0b,_0x56e3b3);}})[_0xee9e('0x19')](function(){if(_0x764386){return db[_0xee9e('0x44')]['update'](_0x4e6a0b,_0x56e3b3);}})[_0xee9e('0x19')](function(){if(_0x764386){return db['OpenchannelMessage'][_0xee9e('0x18')](_0x4e6a0b,_0x56e3b3);}})['then'](function(){if(_0x764386){return db[_0xee9e('0x45')]['update']({'CmContactId':_0x764386['id']},{'where':{'CmContactId':[_0x55e1ba[_0xee9e('0x36')]['to'],_0x55e1ba[_0xee9e('0x36')][_0xee9e('0x37')]]}});}})[_0xee9e('0x19')](function(){if(_0x764386){return db[_0xee9e('0x46')]['update'](_0x4e6a0b,_0x56e3b3);}})[_0xee9e('0x19')](function(){if(_0x764386){return db[_0xee9e('0x47')]['update'](_0x4e6a0b,_0x56e3b3);}})['then'](function(){if(_0x764386){return db['ReportAgentPreview'][_0xee9e('0x18')](_0x4e6a0b,_0x56e3b3);}})[_0xee9e('0x19')](function(){if(_0x764386){return db['VoiceCallReport']['update'](_0x4e6a0b,_0x56e3b3);}})[_0xee9e('0x19')](function(){if(_0x764386){return db['ChatQueueReport'][_0xee9e('0x18')](_0x4e6a0b,_0x56e3b3);}})[_0xee9e('0x19')](function(){if(_0x764386){return db[_0xee9e('0x48')][_0xee9e('0x18')](_0x4e6a0b,_0x56e3b3);}})[_0xee9e('0x19')](function(){if(_0x764386){return db[_0xee9e('0x49')][_0xee9e('0x18')](_0x4e6a0b,_0x56e3b3);}})[_0xee9e('0x19')](function(){if(_0x764386){return db[_0xee9e('0x4a')][_0xee9e('0x18')](_0x4e6a0b,_0x56e3b3);}})[_0xee9e('0x19')](function(){if(_0x764386){return db[_0xee9e('0x4b')]['update'](_0x4e6a0b,_0x56e3b3);}})['then'](function(){if(_0x764386){return db[_0xee9e('0x4c')][_0xee9e('0x18')](_0x4e6a0b,_0x56e3b3);}})[_0xee9e('0x19')](function(){if(_0x764386){return db['WhatsappInteraction'][_0xee9e('0x18')](_0x4e6a0b,_0x56e3b3);}})[_0xee9e('0x19')](function(){if(_0x764386){return db[_0xee9e('0x4d')][_0xee9e('0x18')](_0x4e6a0b,_0x56e3b3);}})[_0xee9e('0x19')](function(){if(_0x764386){return db['WhatsappQueueReport'][_0xee9e('0x18')](_0x4e6a0b,_0x56e3b3);}})[_0xee9e('0x19')](function(){if(_0x764386){return db['CmContact']['destroy']({'where':{'id':[_0x55e1ba[_0xee9e('0x36')]['to'],_0x55e1ba['body']['from']]}});}})[_0xee9e('0x19')](function(){if(_0x764386){return _0x764386;}})[_0xee9e('0x19')](respondWithResult(_0x2bd9fb,null))[_0xee9e('0x24')](handleError(_0x2bd9fb,null));};exports[_0xee9e('0x4e')]=function(_0x2c523a,_0x130221){return db[_0xee9e('0x25')][_0xee9e('0x20')]()['then'](function(_0xec6df0){if(_0x2c523a[_0xee9e('0x36')][_0xee9e('0x28')]&&_[_0xee9e('0x3a')](_0x2c523a['body'][_0xee9e('0x28')])){if(_0x2c523a[_0xee9e('0x36')][_0xee9e('0x28')][_0xee9e('0x29')]){_0x2c523a[_0xee9e('0x36')]['tags']=_0x2c523a[_0xee9e('0x36')][_0xee9e('0x28')][_0xee9e('0x3b')](';')+';';}else{_0x2c523a[_0xee9e('0x36')]['tags']=null;}}else{_0x2c523a[_0xee9e('0x36')][_0xee9e('0x28')]=null;}if(!_[_0xee9e('0x4f')](_0x2c523a['body'][_0xee9e('0x50')])){var _0x577731=_0x2c523a['body'][_0xee9e('0x50')];if(!_[_0xee9e('0x4f')](shared[_0xee9e('0x51')][_0x577731]))_0x2c523a['body'][_0xee9e('0x52')]=shared[_0xee9e('0x51')][_0x577731][_0xee9e('0x52')];}return db['CmContact'][_0xee9e('0x4e')](_0x2c523a[_0xee9e('0x36')],{'fields':_[_0xee9e('0x53')](_0xec6df0),'raw':!![]});})[_0xee9e('0x19')](function(_0x2eccf3){if(_0x2c523a[_0xee9e('0x36')][_0xee9e('0x54')]){return insertAdditionalPhones(_0x2eccf3,_0x2c523a[_0xee9e('0x36')][_0xee9e('0x54')]);}else{return _0x2eccf3;}})[_0xee9e('0x19')](respondWithResult(_0x130221,0xc9))[_0xee9e('0x24')](handleError(_0x130221,null));};exports[_0xee9e('0x55')]=function(_0x2823d4,_0x8755bd){var _0x22522e=0x0;var _0x343cc8=0x0;var _0x43463c=0x0;var _0x4d9bd6=[];return db['CmContact'][_0xee9e('0x20')]()[_0xee9e('0x19')](function(_0x1ae467){return BPromise[_0xee9e('0x56')](_0x2823d4['body'],function(_0x4d8db1){var _0x2c6041={'where':{'$or':[]},'defaults':_0x4d8db1,'fields':_['keys'](_0x1ae467),'raw':!![]};if(_0x4d8db1['duplicates']){for(var _0x9e389b=0x0;_0x9e389b<_0x4d8db1[_0xee9e('0x57')][_0xee9e('0x29')];_0x9e389b++){var _0x49d157={};_0x49d157[_0x4d8db1[_0xee9e('0x57')][_0x9e389b]]=_0x4d8db1[_0x4d8db1['duplicates'][_0x9e389b]];_0x2c6041['where'][_0xee9e('0x58')][_0xee9e('0x59')](_0x49d157);}_0x2c6041[_0xee9e('0x5a')]['ListId']=_0x4d8db1['ListId'];}return db[_0xee9e('0x25')][_0xee9e('0x5b')](_0x2c6041)['spread'](function(_0x24026c,_0x2337cd){if(_0x2337cd){if(_0x4d8db1[_0xee9e('0x34')](_0xee9e('0x54'))){_0x4d9bd6[_0xee9e('0x59')]({'contact':_0x24026c,'additionalPhones':_0x4d8db1[_0xee9e('0x54')]});}_0x22522e++;}else{_0x43463c++;}})['catch'](function(){_0x343cc8++;});});})[_0xee9e('0x19')](function(_0x169dcb){if(_0x169dcb){if(_0x4d9bd6[_0xee9e('0x29')]>0x0){return new Promise(function(_0x4ffbb6){var _0x2e7fc4=[];for(var _0x425e09=0x0;_0x425e09<_0x4d9bd6[_0xee9e('0x29')];_0x425e09++){_0x2e7fc4[_0xee9e('0x59')](insertAdditionalPhones(_0x4d9bd6[_0x425e09][_0xee9e('0x5c')],_0x4d9bd6[_0x425e09][_0xee9e('0x54')]));}Promise[_0xee9e('0x5d')](_0x2e7fc4)[_0xee9e('0x19')](function(){_0x4ffbb6(0x1);});})[_0xee9e('0x19')](function(){return{'success':_0x22522e,'failure':_0x343cc8,'duplicates':_0x43463c};});}else{return{'success':_0x22522e,'failure':_0x343cc8,'duplicates':_0x43463c};}}})[_0xee9e('0x19')](respondWithResult(_0x8755bd,0xc9))['catch'](handleError(_0x8755bd,null));};exports['show']=function(_0x57e39c,_0x4011ac){var _0x5bd0ab;return db[_0xee9e('0x25')][_0xee9e('0x20')]()[_0xee9e('0x19')](function(_0x203a3d){return db[_0xee9e('0x25')]['find']({'where':{'id':_0x57e39c[_0xee9e('0x27')]['id']},'include':[{'model':db[_0xee9e('0x5e')],'as':'Tags','attributes':['id',_0xee9e('0x1e'),_0xee9e('0x5f')],'required':_0x57e39c['query']['tag']?!![]:![]},{'model':db[_0xee9e('0x45')],'as':_0xee9e('0x60'),'where':{'CmContactId':_0x57e39c[_0xee9e('0x27')]['id']},'required':![],'include':[{'model':db[_0xee9e('0x61')],'as':_0xee9e('0x62')}]}],'order':[db[_0xee9e('0x63')]['literal'](_0xee9e('0x64'))],'attributes':_[_0xee9e('0x53')](_0x203a3d)});})[_0xee9e('0x19')](function(_0x8eb3a6){if(!_['isNil'](_0x8eb3a6)){_0x5bd0ab=_0x8eb3a6['get']({'plain':!![]});var _0x48b55e={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x8eb3a6&&_0x8eb3a6[_0xee9e('0x65')]){if(_0x8eb3a6['ListId']){_0x48b55e['where']['$and']['push']({'ListId':{'$ne':_0x8eb3a6['ListId']}});}}return db['CmCustomField'][_0xee9e('0x21')](_0x48b55e);}})[_0xee9e('0x19')](function(_0x7dee1b){if(!_[_0xee9e('0x4f')](_0x7dee1b)){return _[_0xee9e('0x66')](_0x5bd0ab,_[_0xee9e('0x67')](_0x7dee1b,function(_0x4ece96){return util[_0xee9e('0x68')](_0xee9e('0x69'),_0x4ece96['id']);}));}})['then'](handleEntityNotFound(_0x4011ac,null))[_0xee9e('0x19')](respondWithResult(_0x4011ac,null))['catch'](handleError(_0x4011ac,null));};exports[_0xee9e('0x18')]=function(_0x5cd76f,_0x44914b){var _0x5c0531;if(_0x5cd76f[_0xee9e('0x36')]['id']){delete _0x5cd76f['body']['id'];}if(!_[_0xee9e('0x4f')](_0x5cd76f['body'][_0xee9e('0x50')])){var _0xd26ef4=_0x5cd76f['body'][_0xee9e('0x50')];if(!_['isNil'](shared[_0xee9e('0x51')][_0xd26ef4]))_0x5cd76f[_0xee9e('0x36')]['utcOffset']=shared[_0xee9e('0x51')][_0xd26ef4][_0xee9e('0x52')];}return db[_0xee9e('0x25')][_0xee9e('0x26')]({'where':{'id':_0x5cd76f[_0xee9e('0x27')]['id']}})['then'](handleEntityNotFound(_0x44914b,null))[_0xee9e('0x19')](saveUpdates(_0x5cd76f[_0xee9e('0x36')],null))['then'](function(_0x1832f9){_0x5c0531=_0x1832f9;var _0x1330a5={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x1832f9&&_0x1832f9[_0xee9e('0x65')]){if(_0x1832f9['ListId']){_0x1330a5[_0xee9e('0x5a')]['$and'][_0xee9e('0x59')]({'ListId':{'$ne':_0x1832f9['ListId']}});}}return db['CmCustomField'][_0xee9e('0x21')](_0x1330a5);})[_0xee9e('0x19')](function(_0x22e9f7){if(_0x22e9f7){return _[_0xee9e('0x66')](_[_0xee9e('0x6a')](_0x5cd76f[_0xee9e('0x36')],function(_0x5ccaed,_0x3cf85e){return _[_0xee9e('0x2a')](_0x3cf85e,_0xee9e('0x6b'));}),_[_0xee9e('0x67')](_0x22e9f7,function(_0x140d54){return util[_0xee9e('0x68')](_0xee9e('0x69'),_0x140d54['id']);}));}})['then'](function(_0x89a42){if(_0x89a42&&!_['isEmpty'](_0x89a42)){var _0x39f263=squel[_0xee9e('0x18')]()['table']('cm_contacts')[_0xee9e('0x6c')](_0x89a42)[_0xee9e('0x5a')](_0xee9e('0x6d'),_0x5cd76f[_0xee9e('0x27')]['id'])[_0xee9e('0x6e')]();return db[_0xee9e('0x63')][_0xee9e('0x22')](_0x39f263[_0xee9e('0x6f')],{'replacements':_0x39f263['values']});}})[_0xee9e('0x19')](function(){if(_0x5cd76f[_0xee9e('0x36')]['phone']&&_0x5c0531){return db[_0xee9e('0x3d')][_0xee9e('0x18')]({'phone':_0x5cd76f[_0xee9e('0x36')]['phone'],'OrderBy':0x0},{'where':{'ContactId':_0x5c0531['id']}});}})[_0xee9e('0x19')](function(){return _0x5c0531;})[_0xee9e('0x19')](respondWithResult(_0x44914b,null))['catch'](handleError(_0x44914b,null));};exports[_0xee9e('0x70')]=function(_0x119a64,_0x3e7235){var _0x513b7a={};var _0x25baba={};var _0x2dcf12;var _0x5840d6;return db['CmContact'][_0xee9e('0x71')]({'where':{'id':_0x119a64[_0xee9e('0x27')]['id']}})['then'](handleEntityNotFound(_0x3e7235,null))['then'](function(_0x324a26){if(_0x324a26){_0x2dcf12=_0x324a26;_0x25baba[_0xee9e('0x72')]=_[_0xee9e('0x53')](db[_0xee9e('0x5e')][_0xee9e('0x73')]);_0x25baba['query']=_[_0xee9e('0x53')](_0x119a64[_0xee9e('0x22')]);_0x25baba['filters']=_[_0xee9e('0x74')](_0x25baba[_0xee9e('0x72')],_0x25baba[_0xee9e('0x22')]);_0x513b7a[_0xee9e('0x75')]=_['intersection'](_0x25baba[_0xee9e('0x72')],qs[_0xee9e('0x76')](_0x119a64[_0xee9e('0x22')][_0xee9e('0x76')]));_0x513b7a[_0xee9e('0x75')]=_0x513b7a[_0xee9e('0x75')]['length']?_0x513b7a[_0xee9e('0x75')]:_0x25baba[_0xee9e('0x72')];_0x513b7a[_0xee9e('0x77')]=qs[_0xee9e('0x78')](_0x119a64[_0xee9e('0x22')][_0xee9e('0x78')]);_0x513b7a[_0xee9e('0x5a')]=qs[_0xee9e('0x79')](_[_0xee9e('0x7a')](_0x119a64[_0xee9e('0x22')],_0x25baba['filters']));if(_0x119a64[_0xee9e('0x22')][_0xee9e('0x7b')]){_0x513b7a[_0xee9e('0x5a')]=_[_0xee9e('0x35')](_0x513b7a['where'],{'$or':_[_0xee9e('0x67')](_0x513b7a[_0xee9e('0x75')],function(_0xeff65a){var _0x15c4de={};_0x15c4de[_0xeff65a]={'$like':'%'+_0x119a64[_0xee9e('0x22')][_0xee9e('0x7b')]+'%'};return _0x15c4de;})});}_0x513b7a=_[_0xee9e('0x35')]({},_0x513b7a,_0x119a64[_0xee9e('0x7c')]);return _0x2dcf12[_0xee9e('0x70')](_0x513b7a);}})[_0xee9e('0x19')](function(_0x31f58c){if(_0x31f58c){_0x5840d6=_0x31f58c[_0xee9e('0x29')];if(!_0x119a64[_0xee9e('0x22')][_0xee9e('0x34')]('nolimit')){_0x513b7a[_0xee9e('0x15')]=qs['limit'](_0x119a64['query'][_0xee9e('0x15')]);_0x513b7a[_0xee9e('0x12')]=qs[_0xee9e('0x12')](_0x119a64[_0xee9e('0x22')]['offset']);}return _0x2dcf12[_0xee9e('0x70')](_0x513b7a);}})[_0xee9e('0x19')](function(_0x304f6a){if(_0x304f6a){return _0x304f6a?{'count':_0x5840d6,'rows':_0x304f6a}:null;}})[_0xee9e('0x19')](respondWithResult(_0x3e7235,null))[_0xee9e('0x24')](handleError(_0x3e7235,null));};exports[_0xee9e('0x7d')]=function(_0xb73292,_0x3075d5){if(_0xb73292[_0xee9e('0x36')]['id']){delete _0xb73292[_0xee9e('0x36')]['id'];}return db[_0xee9e('0x25')]['findOne']({'where':{'id':_0xb73292[_0xee9e('0x27')]['id']}})['then'](handleEntityNotFound(_0x3075d5,null))[_0xee9e('0x19')](function(_0x2baefc){if(_0x2baefc){return _0x2baefc[_0xee9e('0x7d')](_0xb73292[_0xee9e('0x36')]['ids']||[]);}return null;})[_0xee9e('0x19')](respondWithResult(_0x3075d5,null))['catch'](handleError(_0x3075d5,null));};exports[_0xee9e('0x7e')]=function(_0x229a61,_0x217d3a){var _0x383793=[];_0x383793['push'](addAdditionalPhones(_0x229a61[_0xee9e('0x36')]));Promise[_0xee9e('0x5d')](_0x383793)[_0xee9e('0x19')](function(){_0x383793=[];_0x383793['push'](deleteCmHopperPhones(_0x229a61[_0xee9e('0x36')]['id']));_0x383793[_0xee9e('0x59')](addCmHopperPhones(_0x229a61[_0xee9e('0x36')]['id']));Promise[_0xee9e('0x5d')](_0x383793)['then'](function(){return[0x1];})[_0xee9e('0x19')](respondWithResult(_0x217d3a,null));});};function addAdditionalPhones(_0x99be1f){var _0x3c5e66;return new Promise(function(_0x15c43a){return db[_0xee9e('0x45')][_0xee9e('0x1a')]({'where':{'CmContactId':_0x99be1f['id']}})['then'](function(){db['ContactItemType']['findAll']({'raw':!![],'attributes':['id','OrderBy']})[_0xee9e('0x19')](function(_0x3dceb7){var _0x391490=[];for(var _0x29d4bd=0x0;_0x29d4bd<_0x99be1f[_0xee9e('0x7f')][_0xee9e('0x29')];_0x29d4bd++){var _0x3f4ec8=_0x99be1f[_0xee9e('0x80')]?_['isNil'](_0x99be1f[_0xee9e('0x80')][_0x29d4bd])?'':_0x99be1f[_0xee9e('0x80')][_0x29d4bd]:_0x99be1f[_0xee9e('0x7f')][_0x29d4bd][_0xee9e('0x81')]?_0x99be1f['items'][_0x29d4bd][_0xee9e('0x81')]:'';var _0xff0a96=_[_0xee9e('0x4f')](_0x99be1f[_0xee9e('0x7f')][_0x29d4bd]['description'])?'':_0x99be1f[_0xee9e('0x7f')][_0x29d4bd][_0xee9e('0x82')];var _0xa66d7b=_0x3f4ec8+':'+_0x99be1f[_0xee9e('0x7f')][_0x29d4bd]['phone']+'ยง'+_0xff0a96;if(_[_0xee9e('0x4f')](_0x3c5e66))_0x3c5e66=_0xa66d7b;else _0x3c5e66+=';'+_0xa66d7b;var _0x244f0e=null;var _0xba304e=null;if(_0x99be1f[_0xee9e('0x80')]){if(!_[_0xee9e('0x4f')](_0x99be1f[_0xee9e('0x80')][_0x29d4bd])){_0xba304e=_['find'](_0x3dceb7,function(_0x245d7e){return _0x245d7e['id']===_0x99be1f[_0xee9e('0x80')][_0x29d4bd];});if(!_[_0xee9e('0x4f')](_0xba304e)){_0x244f0e=_0xba304e['OrderBy'];}}}else{if(!_['isNil'](_0x99be1f[_0xee9e('0x7f')][_0x29d4bd])){_0xba304e=_['find'](_0x3dceb7,function(_0x551bfa){return _0x551bfa['id']===_0x99be1f[_0xee9e('0x7f')][_0x29d4bd]['ItemTypeId'];});if(!_['isNil'](_0xba304e)){_0x244f0e=_0x29d4bd;}}}if(_[_0xee9e('0x4f')](_0x244f0e)){_0x244f0e=0x64;}_0x391490['push'](addAdditionalPhone(_0x99be1f['id'],_0x99be1f[_0xee9e('0x7f')][_0x29d4bd][_0xee9e('0x83')],_0x99be1f[_0xee9e('0x80')]?_[_0xee9e('0x4f')](_0x99be1f[_0xee9e('0x80')][_0x29d4bd])?null:_0x99be1f[_0xee9e('0x80')][_0x29d4bd]:_0x99be1f['items'][_0x29d4bd][_0xee9e('0x81')]?_0x99be1f[_0xee9e('0x7f')][_0x29d4bd][_0xee9e('0x81')]:null,_0x244f0e,_0xff0a96));}Promise['all'](_0x391490)[_0xee9e('0x19')](function(){db[_0xee9e('0x25')][_0xee9e('0x18')]({'AdditionalPhones':_0x3c5e66},{'where':{'id':_0x99be1f['id']}})[_0xee9e('0x19')](function(){_0x15c43a(0x1);});});});});});}function addAdditionalPhone(_0x530e56,_0x381e56,_0x3650a6,_0x88d480,_0x2959f7){return db[_0xee9e('0x45')]['find']({'where':{'CmContactId':_0x530e56,'item':_0x381e56}})[_0xee9e('0x19')](function(_0x521677){if(_0x521677)logger[_0xee9e('0x31')](_0xee9e('0x84'),_0x521677);else{db[_0xee9e('0x45')][_0xee9e('0x4e')]({'CmContactId':_0x530e56,'item':_0x381e56,'ItemTypeId':_0x3650a6,'OrderBy':_0x88d480,'ItemClass':_0xee9e('0x85'),'description':_0x2959f7});}});}function deleteCmHopperPhones(_0x2f7c32){return new Promise(function(_0x580f60){return db[_0xee9e('0x3d')][_0xee9e('0x21')]({'raw':!![],'attributes':['id'],'where':{'ContactId':_0x2f7c32}})[_0xee9e('0x19')](function(_0x102689){db[_0xee9e('0x86')][_0xee9e('0x1a')]({'where':{'CmHopperId':{'$in':_['map'](_0x102689,'id')}}});})[_0xee9e('0x19')](function(){_0x580f60(0x1);});});}function addCmHopperPhones(_0x5cdc04){return new Promise(function(_0x13beda){return db[_0xee9e('0x3d')][_0xee9e('0x21')]({'raw':!![],'attributes':['id'],'where':{'ContactId':_0x5cdc04}})[_0xee9e('0x19')](function(_0x200384){var _0x5e37c2=[];_[_0xee9e('0x67')](_0x200384,function(_0x2e6154){_0x5e37c2[_0xee9e('0x59')](createCmHopperPhone(_0x5cdc04,_0x2e6154['id']));});Promise[_0xee9e('0x5d')](_0x5e37c2)[_0xee9e('0x19')](function(){_0x13beda(0x1);});});});}function createCmHopperPhone(_0x5a6f37,_0x46285f){return new Promise(function(_0x13228b){db['CmContactHasItem'][_0xee9e('0x21')]({'raw':!![],'attributes':[_0xee9e('0x87'),_0xee9e('0x88')],'where':{'CmContactId':_0x5a6f37,'ItemClass':_0xee9e('0x85')},'include':[{'model':db[_0xee9e('0x61')],'attributes':[_0xee9e('0x88')],'as':_0xee9e('0x62')}],'order':[_0xee9e('0x88'),db['sequelize']['literal']('`ItemType`.OrderBy')]})[_0xee9e('0x19')](function(_0x19e7f8){var _0x85df58=0x1;var _0x3ad9f2=_[_0xee9e('0x67')](_0x19e7f8,function(_0x2d4c2f){_0x2d4c2f[_0xee9e('0x89')]=_0x46285f;_0x2d4c2f['phone']=_0x2d4c2f[_0xee9e('0x87')];_0x2d4c2f['OrderBy']=_0x85df58;delete _0x2d4c2f[_0xee9e('0x8a')];_0x85df58=_0x85df58+0x1;return _0x2d4c2f;});return db['CmHopperAdditionalPhone']['bulkCreate'](_0x3ad9f2,{});})['then'](function(){_0x13228b(0x1);});});}function insertAdditionalPhones(_0x244e0c,_0x57d996){return new Promise(function(_0x3450f0){var _0x365b80=[];for(var _0x59efb4=0x0;_0x59efb4<_0x57d996[_0xee9e('0x29')];_0x59efb4++){var _0x3d98bd=_0x57d996[_0x59efb4];_0x365b80['push'](parseContactItemType(_0x3d98bd));}Promise[_0xee9e('0x5d')](_0x365b80)[_0xee9e('0x19')](function(){var _0x81e074={'id':_0x244e0c['id'],'items':_0x57d996};return addAdditionalPhones(_0x81e074)[_0xee9e('0x19')](function(){return addCmHopperPhones(_0x244e0c['id']);});})['then'](function(){_0x3450f0(_0x244e0c);});});}function parseContactItemType(_0x35dc6c){return new Promise(function(_0x13f64d){if(_0x35dc6c[_0xee9e('0x34')](_0xee9e('0x81'))){_0x13f64d(_0x35dc6c);}else{return db['ContactItemType'][_0xee9e('0x26')]({'where':{'name':_0x35dc6c['ItemType']}})['then'](function(_0x471b66){if(_[_0xee9e('0x4f')](_0x471b66))_0x35dc6c['ItemTypeId']=null;else _0x35dc6c[_0xee9e('0x81')]=_0x471b66['id'];_0x13f64d(_0x35dc6c);});}});}exports[_0xee9e('0x8b')]=function(_0x392ea2,_0x1595fc){return db['CmContactHasItem']['findAll']({'raw':!![],'where':{'CmContactId':_0x392ea2[_0xee9e('0x27')]['id'],'ItemClass':'PHONE'},'include':[{'model':db[_0xee9e('0x61')],'as':_0xee9e('0x62')}],'order':[[_0xee9e('0x88')],[db[_0xee9e('0x63')][_0xee9e('0x8c')](_0xee9e('0x8d'))]]})[_0xee9e('0x19')](function(_0x50541e){return _0x50541e;})['then'](respondWithResult(_0x1595fc,null))[_0xee9e('0x24')](handleError(_0x1595fc,null));};exports[_0xee9e('0x8e')]=function(_0x253086,_0x48c97f){return db[_0xee9e('0x45')][_0xee9e('0x21')]({'raw':!![],'where':{'CmContactId':_0x253086[_0xee9e('0x36')][_0xee9e('0x8f')]}})[_0xee9e('0x19')](function(_0x511071){var _0x465870=_['map'](_0x511071,function(_0x5d6763){_0x5d6763[_0xee9e('0x90')]=_0x253086[_0xee9e('0x36')][_0xee9e('0x91')];return _0x5d6763;});return db[_0xee9e('0x45')][_0xee9e('0x55')](_0x465870,{});})[_0xee9e('0x19')](function(){return addCmHopperPhones(_0x253086[_0xee9e('0x36')][_0xee9e('0x91')]);})[_0xee9e('0x19')](function(){return['ok'];})['then'](respondWithResult(_0x48c97f,null))['catch'](handleError(_0x48c97f,null));};exports[_0xee9e('0x92')]=function(_0x38dfe3,_0x415d8d){var _0x37b609=[];_0x37b609[_0xee9e('0x59')](createCmHopperPhone(_0x38dfe3[_0xee9e('0x36')]['id'],_0x38dfe3[_0xee9e('0x36')]['hopperId']));Promise[_0xee9e('0x5d')](_0x37b609)[_0xee9e('0x19')](function(){return[0x1];})[_0xee9e('0x19')](respondWithResult(_0x415d8d,null));};exports[_0xee9e('0x93')]=function(_0x5f0ad7,_0x4995a6){var _0x24e2ef={'raw':![],'where':{}};var _0x297bef={};var _0x8aa5d4={'count':0x0,'rows':[]};return db['CmContact'][_0xee9e('0x71')]({'where':{'id':_0x5f0ad7['params']['id']}})[_0xee9e('0x19')](handleEntityNotFound(_0x4995a6,null))[_0xee9e('0x19')](function(_0x24278d){if(_0x24278d){_0x297bef[_0xee9e('0x72')]=_[_0xee9e('0x53')](db['CmHopper']['rawAttributes']);_0x297bef['query']=_[_0xee9e('0x53')](_0x5f0ad7[_0xee9e('0x22')]);_0x297bef[_0xee9e('0x79')]=_[_0xee9e('0x74')](_0x297bef[_0xee9e('0x72')],_0x297bef['query']);_0x24e2ef[_0xee9e('0x75')]=_['intersection'](_0x297bef['model'],qs['fields'](_0x5f0ad7['query'][_0xee9e('0x76')]));_0x24e2ef[_0xee9e('0x75')]=_0x24e2ef[_0xee9e('0x75')][_0xee9e('0x29')]?_0x24e2ef[_0xee9e('0x75')]:_0x297bef[_0xee9e('0x72')];if(!_0x5f0ad7['query'][_0xee9e('0x34')](_0xee9e('0x94'))){_0x24e2ef[_0xee9e('0x15')]=qs[_0xee9e('0x15')](_0x5f0ad7[_0xee9e('0x22')][_0xee9e('0x15')]);_0x24e2ef['offset']=qs[_0xee9e('0x12')](_0x5f0ad7[_0xee9e('0x22')]['offset']);}_0x24e2ef[_0xee9e('0x77')]=qs[_0xee9e('0x78')](_0x5f0ad7['query']['sort']);_0x24e2ef[_0xee9e('0x5a')]=qs[_0xee9e('0x79')](_[_0xee9e('0x7a')](_0x5f0ad7[_0xee9e('0x22')],_0x297bef[_0xee9e('0x79')]));_0x24e2ef[_0xee9e('0x5a')][_0xee9e('0x95')]=_0x24278d['id'];if(_0x5f0ad7[_0xee9e('0x22')][_0xee9e('0x7b')]){_0x24e2ef['where']=_[_0xee9e('0x35')](_0x24e2ef['where'],{'$or':_[_0xee9e('0x67')](_0x24e2ef['attributes'],function(_0x5b5333){var _0x498f00={};_0x498f00[_0x5b5333]={'$like':'%'+_0x5f0ad7['query'][_0xee9e('0x7b')]+'%'};return _0x498f00;})});}_0x24e2ef=_[_0xee9e('0x35')]({},_0x24e2ef,_0x5f0ad7[_0xee9e('0x7c')]);return db['CmHopper']['count']({'where':_0x24e2ef['where']})[_0xee9e('0x19')](function(_0x51c3af){_0x8aa5d4[_0xee9e('0x14')]=_0x51c3af;if(_0x5f0ad7[_0xee9e('0x22')][_0xee9e('0x96')]){_0x24e2ef[_0xee9e('0x97')]=[{'all':!![]}];}return db[_0xee9e('0x3d')][_0xee9e('0x21')](_0x24e2ef);})[_0xee9e('0x19')](function(_0x1b33df){_0x8aa5d4[_0xee9e('0x98')]=_0x1b33df;return _0x8aa5d4;});}})['then'](respondWithFilteredResult(_0x4995a6,_0x24e2ef))[_0xee9e('0x24')](handleError(_0x4995a6,null));};exports[_0xee9e('0x99')]=function(_0x3aa0d1,_0x2c3f95){var _0x234724={'raw':!![],'where':{}};var _0x422b71={};var _0x18347d={'count':0x0,'rows':[]};return db['CmContact'][_0xee9e('0x71')]({'where':{'id':_0x3aa0d1[_0xee9e('0x27')]['id']}})[_0xee9e('0x19')](handleEntityNotFound(_0x2c3f95,null))[_0xee9e('0x19')](function(_0x229709){if(_0x229709){_0x422b71[_0xee9e('0x72')]=_[_0xee9e('0x53')](db['CmHopperHistory'][_0xee9e('0x73')]);_0x422b71[_0xee9e('0x22')]=_['keys'](_0x3aa0d1[_0xee9e('0x22')]);_0x422b71[_0xee9e('0x79')]=_[_0xee9e('0x74')](_0x422b71['model'],_0x422b71['query']);_0x234724[_0xee9e('0x75')]=_['intersection'](_0x422b71[_0xee9e('0x72')],qs['fields'](_0x3aa0d1[_0xee9e('0x22')][_0xee9e('0x76')]));_0x234724['attributes']=_0x234724[_0xee9e('0x75')][_0xee9e('0x29')]?_0x234724[_0xee9e('0x75')]:_0x422b71[_0xee9e('0x72')];if(!_0x3aa0d1[_0xee9e('0x22')]['hasOwnProperty']('nolimit')){_0x234724[_0xee9e('0x15')]=qs['limit'](_0x3aa0d1['query'][_0xee9e('0x15')]);_0x234724['offset']=qs[_0xee9e('0x12')](_0x3aa0d1[_0xee9e('0x22')][_0xee9e('0x12')]);}_0x234724[_0xee9e('0x77')]=qs[_0xee9e('0x78')](_0x3aa0d1['query']['sort']);_0x234724[_0xee9e('0x5a')]=qs[_0xee9e('0x79')](_[_0xee9e('0x7a')](_0x3aa0d1[_0xee9e('0x22')],_0x422b71[_0xee9e('0x79')]));_0x234724['where']['ContactId']=_0x229709['id'];if(_0x3aa0d1[_0xee9e('0x22')][_0xee9e('0x7b')]){_0x234724['where']=_[_0xee9e('0x35')](_0x234724['where'],{'$or':_[_0xee9e('0x67')](_0x234724[_0xee9e('0x75')],function(_0x430445){var _0x551b78={};_0x551b78[_0x430445]={'$like':'%'+_0x3aa0d1[_0xee9e('0x22')][_0xee9e('0x7b')]+'%'};return _0x551b78;})});}_0x234724=_['merge']({},_0x234724,_0x3aa0d1['options']);return db[_0xee9e('0x47')][_0xee9e('0x14')]({'where':_0x234724[_0xee9e('0x5a')]})[_0xee9e('0x19')](function(_0x44ea18){_0x18347d['count']=_0x44ea18;if(_0x3aa0d1[_0xee9e('0x22')][_0xee9e('0x96')]){_0x234724['include']=[{'all':!![]}];}return db['CmHopperHistory'][_0xee9e('0x21')](_0x234724);})[_0xee9e('0x19')](function(_0x8127e4){_0x18347d['rows']=_0x8127e4;return _0x18347d;});}})[_0xee9e('0x19')](respondWithFilteredResult(_0x2c3f95,_0x234724))['catch'](handleError(_0x2c3f95,null));};exports[_0xee9e('0x9a')]=function(_0x4c91f7,_0x23559b){var _0x55b39f={'raw':!![],'where':{}};var _0x33ba3f={};var _0x38b90f={'count':0x0,'rows':[]};return db[_0xee9e('0x25')][_0xee9e('0x71')]({'where':{'id':_0x4c91f7[_0xee9e('0x27')]['id']}})['then'](handleEntityNotFound(_0x23559b,null))[_0xee9e('0x19')](function(_0x89d3b5){if(_0x89d3b5){_0x33ba3f[_0xee9e('0x72')]=_[_0xee9e('0x53')](db['CmHopperFinal'][_0xee9e('0x73')]);_0x33ba3f[_0xee9e('0x22')]=_[_0xee9e('0x53')](_0x4c91f7[_0xee9e('0x22')]);_0x33ba3f[_0xee9e('0x79')]=_[_0xee9e('0x74')](_0x33ba3f[_0xee9e('0x72')],_0x33ba3f[_0xee9e('0x22')]);_0x55b39f[_0xee9e('0x75')]=_[_0xee9e('0x74')](_0x33ba3f[_0xee9e('0x72')],qs[_0xee9e('0x76')](_0x4c91f7['query'][_0xee9e('0x76')]));_0x55b39f[_0xee9e('0x75')]=_0x55b39f[_0xee9e('0x75')]['length']?_0x55b39f['attributes']:_0x33ba3f[_0xee9e('0x72')];if(!_0x4c91f7[_0xee9e('0x22')][_0xee9e('0x34')]('nolimit')){_0x55b39f['limit']=qs[_0xee9e('0x15')](_0x4c91f7[_0xee9e('0x22')][_0xee9e('0x15')]);_0x55b39f['offset']=qs['offset'](_0x4c91f7[_0xee9e('0x22')][_0xee9e('0x12')]);}_0x55b39f[_0xee9e('0x77')]=qs['sort'](_0x4c91f7[_0xee9e('0x22')][_0xee9e('0x78')]);_0x55b39f['where']=qs['filters'](_[_0xee9e('0x7a')](_0x4c91f7[_0xee9e('0x22')],_0x33ba3f['filters']));_0x55b39f[_0xee9e('0x5a')][_0xee9e('0x95')]=_0x89d3b5['id'];if(_0x4c91f7['query']['filter']){_0x55b39f[_0xee9e('0x5a')]=_[_0xee9e('0x35')](_0x55b39f[_0xee9e('0x5a')],{'$or':_[_0xee9e('0x67')](_0x55b39f[_0xee9e('0x75')],function(_0x263809){var _0xa35635={};_0xa35635[_0x263809]={'$like':'%'+_0x4c91f7['query'][_0xee9e('0x7b')]+'%'};return _0xa35635;})});}_0x55b39f=_[_0xee9e('0x35')]({},_0x55b39f,_0x4c91f7[_0xee9e('0x7c')]);return db[_0xee9e('0x46')]['count']({'where':_0x55b39f['where']})['then'](function(_0x2519b3){_0x38b90f[_0xee9e('0x14')]=_0x2519b3;if(_0x4c91f7[_0xee9e('0x22')][_0xee9e('0x96')]){_0x55b39f[_0xee9e('0x97')]=[{'all':!![]}];}return db[_0xee9e('0x46')]['findAll'](_0x55b39f);})[_0xee9e('0x19')](function(_0x49624d){_0x38b90f['rows']=_0x49624d;return _0x38b90f;});}})[_0xee9e('0x19')](respondWithFilteredResult(_0x23559b,_0x55b39f))[_0xee9e('0x24')](handleError(_0x23559b,null));};exports['getJscriptySessions']=function(_0x384f81,_0x3103f4){var _0xdb8686={'raw':!![],'where':{}};var _0x5277c9={};var _0x16d211={'count':0x0,'rows':[]};return db[_0xee9e('0x25')][_0xee9e('0x71')]({'where':{'id':_0x384f81[_0xee9e('0x27')]['id']}})['then'](handleEntityNotFound(_0x3103f4,null))[_0xee9e('0x19')](function(_0x11820a){if(_0x11820a){_0x5277c9[_0xee9e('0x72')]=_['keys'](db[_0xee9e('0x4c')]['rawAttributes']);_0x5277c9[_0xee9e('0x22')]=_[_0xee9e('0x53')](_0x384f81[_0xee9e('0x22')]);_0x5277c9[_0xee9e('0x79')]=_['intersection'](_0x5277c9[_0xee9e('0x72')],_0x5277c9[_0xee9e('0x22')]);_0xdb8686[_0xee9e('0x75')]=_[_0xee9e('0x74')](_0x5277c9[_0xee9e('0x72')],qs[_0xee9e('0x76')](_0x384f81[_0xee9e('0x22')]['fields']));_0xdb8686[_0xee9e('0x75')]=_0xdb8686[_0xee9e('0x75')]['length']?_0xdb8686[_0xee9e('0x75')]:_0x5277c9[_0xee9e('0x72')];if(!_0x384f81[_0xee9e('0x22')][_0xee9e('0x34')]('nolimit')){_0xdb8686['limit']=qs[_0xee9e('0x15')](_0x384f81[_0xee9e('0x22')]['limit']);_0xdb8686[_0xee9e('0x12')]=qs[_0xee9e('0x12')](_0x384f81['query'][_0xee9e('0x12')]);}_0xdb8686['order']=qs[_0xee9e('0x78')](_0x384f81[_0xee9e('0x22')][_0xee9e('0x78')]);_0xdb8686[_0xee9e('0x5a')]=qs[_0xee9e('0x79')](_[_0xee9e('0x7a')](_0x384f81[_0xee9e('0x22')],_0x5277c9['filters']));_0xdb8686['where']['ContactId']=_0x11820a['id'];if(_0x384f81['query'][_0xee9e('0x7b')]){_0xdb8686[_0xee9e('0x5a')]=_[_0xee9e('0x35')](_0xdb8686[_0xee9e('0x5a')],{'$or':_[_0xee9e('0x67')](_0xdb8686[_0xee9e('0x75')],function(_0x128214){var _0x4b8538={};_0x4b8538[_0x128214]={'$like':'%'+_0x384f81['query']['filter']+'%'};return _0x4b8538;})});}_0xdb8686=_[_0xee9e('0x35')]({},_0xdb8686,_0x384f81[_0xee9e('0x7c')]);return db[_0xee9e('0x4c')]['count']({'where':_0xdb8686[_0xee9e('0x5a')]})['then'](function(_0x2b3b2c){_0x16d211['count']=_0x2b3b2c;if(_0x384f81[_0xee9e('0x22')][_0xee9e('0x96')]){_0xdb8686[_0xee9e('0x97')]=[{'all':!![]}];}return db['JscriptySessionReport'][_0xee9e('0x21')](_0xdb8686);})[_0xee9e('0x19')](function(_0x652b68){_0x16d211[_0xee9e('0x98')]=_0x652b68;return _0x16d211;});}})[_0xee9e('0x19')](respondWithFilteredResult(_0x3103f4,_0xdb8686))['catch'](handleError(_0x3103f4,null));};exports[_0xee9e('0x9b')]=function(_0x509c94,_0x19d893){try{if(!_0x509c94[_0xee9e('0x36')][_0xee9e('0x65')]){throw new Error(_0xee9e('0x9c'));}if(!_0x509c94[_0xee9e('0x36')]['binding_keys']){throw new Error('No\x20association\x20keys\x20specified!');}if(!_0x509c94[_0xee9e('0x36')][_0xee9e('0x9d')]){throw new Error('No\x20association\x20values\x20specified!');}if(!_0x509c94[_0xee9e('0x36')][_0xee9e('0x9e')]){throw new Error(_0xee9e('0x9f'));}var _0x322ef2=_0x509c94['body']['binding_keys'][_0xee9e('0xa0')](',');var _0x435136=_0x509c94['body'][_0xee9e('0x9d')][_0xee9e('0xa0')](',');if(!_0x322ef2[_0xee9e('0x29')]||!_0x435136[_0xee9e('0x29')]||_0x322ef2['length']!==_0x435136[_0xee9e('0x29')]){throw new Error(_0xee9e('0xa1'));}_0x509c94['body']['fields']=_[_0xee9e('0xa2')](_0x322ef2,_0x435136);if(!_0x509c94[_0xee9e('0x36')][_0xee9e('0x76')]['phone']){throw new Error(_0xee9e('0xa3'));}if(!_0x509c94[_0xee9e('0x36')][_0xee9e('0x76')][_0xee9e('0xa4')]){throw new Error(_0xee9e('0xa5'));}var _0x162c96=path[_0xee9e('0x3b')](config[_0xee9e('0xa6')],_0xee9e('0xa7'),_0x509c94[_0xee9e('0xa8')][_0xee9e('0xa9')]);fs[_0xee9e('0xaa')](_0x162c96,parseInt(_0xee9e('0xab'),0x8));var _0x14e46a=require(_0xee9e('0xac'))[_0xee9e('0xad')](path[_0xee9e('0x3b')](__dirname,_0xee9e('0xae')),[_0x162c96,_0x509c94['body'][_0xee9e('0xaf')],_0x509c94['body']['binding_values'],_0x509c94['body']['ListId'],_0x509c94[_0xee9e('0x36')][_0xee9e('0xb0')],_0x509c94['body'][_0xee9e('0x57')],_0x509c94[_0xee9e('0x36')][_0xee9e('0x9e')]]);return _0x19d893[_0xee9e('0x10')](0xc8)[_0xee9e('0x11')]({'message':_0xee9e('0xb1'),'pid':_0x14e46a[_0xee9e('0xb2')]});}catch(_0x34d514){return _0x19d893['status'](0x1f4)[_0xee9e('0xb3')](_0x34d514);}};exports['upload']=function(_0x1f3dfd,_0x519532){var _0x4b6920=fs[_0xee9e('0xb4')](_0x1f3dfd[_0xee9e('0xa8')][_0xee9e('0x2')]);Papa[_0xee9e('0xb5')](_0x4b6920,{'header':!![],'skipEmptyLines':!![],'preview':0x1,'complete':function(_0x57126b){return _0x519532['status'](0xc8)[_0xee9e('0x11')]({'file':_0x1f3dfd['file'],'fields':_0x57126b[_0xee9e('0xb6')]['fields']});}});};exports[_0xee9e('0xb7')]=function(_0x35a2ba,_0x4654b7){return db[_0xee9e('0xb8')][_0xee9e('0x21')]({'raw':!![],'attributes':['id'],'where':{'role':_0xee9e('0xb9')}})[_0xee9e('0x19')](function(_0xbc0817){var _0x4bd41f=![];if(!_0x35a2ba[_0xee9e('0x36')][_0xee9e('0x65')]){throw new Error('No\x20ListId\x20specified');}if(!_0x35a2ba[_0xee9e('0x36')][_0xee9e('0xba')][_0xee9e('0x83')]){throw new Error(_0xee9e('0xa3'));}if(!_0x35a2ba[_0xee9e('0x36')][_0xee9e('0xba')]['firstName']){throw new Error(_0xee9e('0xa5'));}if(!_0x35a2ba[_0xee9e('0x36')][_0xee9e('0x9e')]){throw new Error(_0xee9e('0x9f'));}var _0x3a15a6=require(_0xee9e('0xac'))[_0xee9e('0xad')](path['join'](__dirname,'../../components/import/cm/csv2'),[_0x35a2ba[_0xee9e('0x27')]['id'],JSON['stringify'](_0x35a2ba[_0xee9e('0x36')]),JSON[_0xee9e('0xbb')](_0xbc0817)]);_0x3a15a6['on'](_0xee9e('0xbc'),function(){_0x4bd41f=!![];return _0x4654b7['status'](0xc8)['json']({'message':_0xee9e('0xbd'),'pid':_0x3a15a6[_0xee9e('0xb2')]});});_0x3a15a6['on'](_0xee9e('0xbe'),function(_0x173f6f){if(_0x173f6f&&!_0x4bd41f){return _0x4654b7[_0xee9e('0x10')](0x1f4)[_0xee9e('0x11')]({'message':_0xee9e('0xbf'),'pid':_0x3a15a6[_0xee9e('0xb2')]});}});})[_0xee9e('0x24')](handleError(_0x4654b7,null));};exports['importUpdates']=function(_0x5741b4,_0x6c45b4){return db[_0xee9e('0xb8')][_0xee9e('0x21')]({'raw':!![],'attributes':['id'],'where':{'role':_0xee9e('0xb9')}})[_0xee9e('0x19')](function(_0xaf442f){var _0x1e4952=![];if(!_0x5741b4[_0xee9e('0x36')][_0xee9e('0x65')]){throw new Error(_0xee9e('0x9c'));}if(!_0x5741b4[_0xee9e('0x36')][_0xee9e('0xba')]['phone']){throw new Error(_0xee9e('0xa3'));}if(!_0x5741b4[_0xee9e('0x36')]['binding'][_0xee9e('0xa4')]){throw new Error(_0xee9e('0xa5'));}if(!_0x5741b4[_0xee9e('0x36')][_0xee9e('0x9e')]){throw new Error('Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed');}var _0x496992=require(_0xee9e('0xac'))[_0xee9e('0xad')](path[_0xee9e('0x3b')](__dirname,_0xee9e('0xc0')),[_0x5741b4[_0xee9e('0x27')]['id'],JSON[_0xee9e('0xbb')](_0x5741b4['body']),JSON[_0xee9e('0xbb')](_0xaf442f)]);_0x496992['on'](_0xee9e('0xbc'),function(){_0x1e4952=!![];return _0x6c45b4[_0xee9e('0x10')](0xc8)['json']({'message':_0xee9e('0xbd'),'pid':_0x496992[_0xee9e('0xb2')]});});_0x496992['on'](_0xee9e('0xbe'),function(_0x503d0d){if(_0x503d0d&&!_0x1e4952){return _0x6c45b4['status'](0x1f4)[_0xee9e('0x11')]({'message':_0xee9e('0xbf'),'pid':_0x496992[_0xee9e('0xb2')]});}});})[_0xee9e('0x24')](handleError(_0x6c45b4,null));};exports[_0xee9e('0xc1')]=function(_0x3f907b,_0x1b8cbe){var _0x3c7242=[_0xee9e('0xc2'),_0xee9e('0xc3'),_0xee9e('0xc4'),'openchannel',_0xee9e('0xc5'),_0xee9e('0xc6'),'voice'];var _0x3c5a68={'offset':0x0,'order':qs[_0xee9e('0x78')](_0xee9e('0xc7'))},_0xe26c32={'count':0x0,'rows':[]};Promise['resolve']()[_0xee9e('0x19')](function(){if(_0x3f907b[_0xee9e('0x22')][_0xee9e('0xc8')]){if(!_[_0xee9e('0xc9')](_0x3c7242,_0x3f907b[_0xee9e('0x22')][_0xee9e('0xc8')][_0xee9e('0xca')]())){throw new Error(_0xee9e('0xcb'));}_0x3c7242=[_0x3f907b[_0xee9e('0x22')][_0xee9e('0xc8')]['toLowerCase']()];}if(_0x3f907b['query']['range']){try{var _0x5a0adc=JSON[_0xee9e('0xb5')](_0x3f907b[_0xee9e('0x22')][_0xee9e('0xcc')]);if(!moment(_0x5a0adc[_0xee9e('0x37')])[_0xee9e('0xcd')]()){throw new Error(_0xee9e('0xce'));}if(!moment(_0x5a0adc['to'])[_0xee9e('0xcd')]()){throw new Error(_0xee9e('0xcf'));}}catch(_0x590651){throw new Error(_0xee9e('0xd0'));}}if(!_0x3f907b['query'][_0xee9e('0x34')](_0xee9e('0x94'))){_0x3c5a68[_0xee9e('0x15')]=qs[_0xee9e('0x15')](_0x3f907b[_0xee9e('0x22')][_0xee9e('0x15')]||0xa);_0x3c5a68[_0xee9e('0x12')]=qs[_0xee9e('0x12')](_0x3f907b['query'][_0xee9e('0x12')]);}var _0x3dc346=_0x3c7242[_0xee9e('0x67')](function(_0x27cbab){if(_0x27cbab===_0xee9e('0xd1')){var _0x4d9817={'attributes':['id',_0xee9e('0xd2'),_0xee9e('0x2f'),_0xee9e('0xd3'),_0xee9e('0xd4'),'callerid','starttime','endtime','duration',_0xee9e('0xd5'),_0xee9e('0xd6'),_0xee9e('0xd7'),_0xee9e('0xd8'),_0xee9e('0xd9'),_0xee9e('0xda')],'where':{'ContactId':_0x3f907b[_0xee9e('0x27')]['id']},'include':[{'model':db[_0xee9e('0xb8')],'as':_0xee9e('0xb8'),'attributes':['id',_0xee9e('0x1e'),_0xee9e('0xdb'),_0xee9e('0x2e')]}],'order':[[_0xee9e('0xd6'),_0xee9e('0xdc')]]};if(_0x3f907b['query'][_0xee9e('0xcc')]){_0x4d9817['where'][_0xee9e('0xd6')]={'$gte':_0x5a0adc[_0xee9e('0x37')],'$lte':_0x5a0adc['to']};}return db[_0xee9e('0xdd')][_0xee9e('0xde')](_0x4d9817)['then'](function(_0x320649){_0xe26c32[_0xee9e('0x14')]+=_0x320649[_0xee9e('0x14')];return _[_0xee9e('0x67')](_0x320649[_0xee9e('0x98')],function(_0x2c537d){var _0x4eb53b=_0x2c537d[_0xee9e('0x38')]({'plain':!![]});_0x4eb53b[_0xee9e('0xc8')]=_0x27cbab;if(_0x4eb53b[_0xee9e('0xb8')]){_0x4eb53b[_0xee9e('0xb8')]={'id':_0x4eb53b[_0xee9e('0xb8')]['id'],'name':_0x4eb53b['User'][_0xee9e('0x1e')],'fullname':_0x4eb53b[_0xee9e('0xb8')][_0xee9e('0xdb')],'alias':_0x4eb53b['User'][_0xee9e('0x2e')]};}return _0x4eb53b;});});}else{var _0x30f1ec=_[_0xee9e('0xdf')](_0x27cbab)+(_0x27cbab===_0xee9e('0xc3')?_0xee9e('0xe0'):'Account');var _0x356d31={'attributes':['id',_0xee9e('0xe1'),'closedAt',_0xee9e('0xd6'),_0xee9e('0xd5'),_0xee9e('0xe2'),_0xee9e('0xe3'),_0xee9e('0xe4'),_0xee9e('0xda'),_0x30f1ec+'Id'],'where':{'ContactId':_0x3f907b[_0xee9e('0x27')]['id']},'include':[{'model':db[_0x30f1ec],'as':'Account','attributes':['id',_0xee9e('0x1e'),'key']},{'model':db[_0xee9e('0xb8')],'as':_0xee9e('0xe5'),'attributes':['id',_0xee9e('0x1e'),_0xee9e('0xdb')]},{'model':db[_0xee9e('0x5e')],'as':'Tags','attributes':['id',_0xee9e('0x1e'),_0xee9e('0x5f')],'through':{'attributes':[]}}],'order':[[_0xee9e('0xd6'),_0xee9e('0xdc')]]};if(_0x3f907b['query']['range']){_0x356d31['where'][_0xee9e('0xd6')]={'$gte':_0x5a0adc[_0xee9e('0x37')],'$lte':_0x5a0adc['to']};}switch(_0x27cbab){case _0xee9e('0xc3'):_0x356d31[_0xee9e('0x75')][_0xee9e('0x59')](_0xee9e('0xe6'),_0xee9e('0xe7'),'customerPort',_0xee9e('0xe8'),_0xee9e('0xe9'),_0xee9e('0xea'),_0xee9e('0xeb'),'ratingValue',_0xee9e('0xec'));break;case'mail':_0x356d31[_0xee9e('0x75')][_0xee9e('0x59')](_0xee9e('0xed'),_0xee9e('0xee'));break;case _0xee9e('0xef'):_0x356d31['attributes'][_0xee9e('0x59')](_0xee9e('0xf0'),_0xee9e('0xf1'));break;}return db[_[_0xee9e('0xdf')](_0x27cbab)+_0xee9e('0xf2')][_0xee9e('0xde')](_0x356d31)[_0xee9e('0x19')](function(_0x3b23b6){_0xe26c32[_0xee9e('0x14')]+=_0x3b23b6[_0xee9e('0x14')];return _[_0xee9e('0x67')](_0x3b23b6[_0xee9e('0x98')],function(_0x4eea7a){var _0x2ac1=_0x4eea7a[_0xee9e('0x38')]({'plain':!![]});_0x2ac1['channel']=_0x27cbab;if(_0x2ac1[_0xee9e('0xe5')]){_0x2ac1['Owner']={'id':_0x2ac1[_0xee9e('0xe5')]['id'],'name':_0x2ac1[_0xee9e('0xe5')][_0xee9e('0x1e')],'fullname':_0x2ac1[_0xee9e('0xe5')][_0xee9e('0xdb')]};}return _0x2ac1;});});}});return Promise[_0xee9e('0x5d')](_0x3dc346);})[_0xee9e('0x19')](function(_0x45f098){return _(_0x45f098)[_0xee9e('0xf3')]()[_0xee9e('0xf4')](_0xee9e('0xd6'))[_0xee9e('0xf5')]()[_0xee9e('0xf6')]();})['then'](function(_0x51d855){_0xe26c32[_0xee9e('0x98')]=_0x3c5a68['limit']?_0x51d855[_0xee9e('0xf7')](_0x3c5a68[_0xee9e('0x12')],_0x3c5a68[_0xee9e('0x12')]+_0x3c5a68[_0xee9e('0x15')]):_0x51d855;return _0xe26c32;})['then'](respondWithFilteredResult(_0x1b8cbe,_0x3c5a68))['catch'](handleError(_0x1b8cbe,null));};