Built motion from commit 44b1f254.|2.6.26
[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 _0xc99f=['stringify','message','pid','exit','error\x20child\x20process','importUpdates','agent','binding','../../components/import/cm/csvUpdates','start\x20child\x20process\x20correctly!','getJourney','mail','chat','sms','openchannel','whatsapp','-createdAt','resolve','channel','toLowerCase','Invalid\x20channel','range','isValid','Invalid\x20date\x20for\x20range\x20from\x20filter','voice','uniqueid','source','destination','callerid','starttime','endtime','note','createdAt','userDisposition','userSecondDisposition','userThirdDisposition','UserId','fullname','alias','DESC','startCase','Website','Account','disposition','thirdDisposition','key','Owner','browserName','deviceModel','ratingMessage','ratingType','ratingValue','referer','subject','substatus','threadId','findAndCountAll','reverse','value','slice','moment','bluebird','util','path','lodash','squel','papaparse','ioredis','../../components/contacts','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../config/environment/shared','redis','defaults','socket.io-emitter','./cmContact.socket','register','status','json','offset','undefined','limit','count','set','Content-Range','update','then','destroy','end','error','stack','name','index','describe','getOptions','query','catch','find','params','CmContact','keys','length','cf_','columnName','displayName','analytics','CmCustomField','custom','type','info','hasOwnProperty','body','findAll','from','get','mergeWith','isArray','tags','join','[CmContact][merge]\x20to\x20%s\x20from\x20%s','[CmContact][merge][destroy][CmHopper],\x20%s','CmHopperBlack','[CmContact][merge][destroy][CmHopperBlack],\x20%s','ChatInteraction','ChatMessage','ChatOfflineMessage','MailInteraction','MailMessage','SmsInteraction','SmsMessage','FaxInteraction','FaxMessage','OpenchannelInteraction','OpenchannelMessage','CmContactHasItem','CmHopperFinal','CmHopperHistory','ReportAgentPreview','VoiceCallReport','ChatQueueReport','FaxQueueReport','JscriptySessionReport','WhatsappInteraction','WhatsappMessage','WhatsappQueueReport','create','isNil','dialTimezone','utcOffset','timezones','additionalPhones','each','duplicates','where','ListId','findOrCreate','push','contact','Tag','Tags','color','tag','ContactItemType','sequelize','literal','Phones.OrderBy','$and','omit','map','format','cf_%d','pickBy','startsWith','table','cm_contacts','setFields','id\x20=\x20?','toParam','values','phone','CmHopper','getTags','findOne','model','rawAttributes','filters','intersection','fields','attributes','order','pick','filter','merge','options','nolimit','setTags','ids','setAdditionalPhones','all','OrderBy','items','item_types','ItemTypeId','description','contact\x20phone\x20exists','PHONE','CmHopperAdditionalPhone','item','ItemType','`ItemType`.OrderBy','CmHopperId','bulkCreate','getAdditionalPhones','duplicateAdditionalPhones','fromContactId','toContactId','sort','ContactId','includeAll','include','rows','getHopperHistories','getHopperFinals','getJscriptySessions','No\x20ListId\x20specified','binding_keys','No\x20association\x20keys\x20specified!','binding_values','socket_timestamp','split','zipObject','No\x20phone\x20column\x20specified','firstName','No\x20firstName\x20column\x20specified','root','server/files/tmp','file','filename','0777','child_process','fork','../../components/import/cm/csv','CompanyId','File\x20uploaded\x20correctly!','send','upload','createReadStream','meta','User','Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed','../../components/import/cm/csv2'];(function(_0xb38268,_0x4e101e){var _0x4963d0=function(_0xc9d95c){while(--_0xc9d95c){_0xb38268['push'](_0xb38268['shift']());}};_0x4963d0(++_0x4e101e);}(_0xc99f,0x139));var _0xfc99=function(_0x36ee10,_0x3e4e4b){_0x36ee10=_0x36ee10-0x0;var _0x1ae7e8=_0xc99f[_0x36ee10];return _0x1ae7e8;};'use strict';var moment=require(_0xfc99('0x0'));var BPromise=require(_0xfc99('0x1'));var util=require(_0xfc99('0x2'));var path=require(_0xfc99('0x3'));var fs=require('fs');var _=require(_0xfc99('0x4'));var squel=require(_0xfc99('0x5'));var Papa=require(_0xfc99('0x6'));var Redis=require(_0xfc99('0x7'));var contacts=require(_0xfc99('0x8'));var qs=require(_0xfc99('0x9'));var logger=require(_0xfc99('0xa'))(_0xfc99('0xb'));var config=require(_0xfc99('0xc'));var shared=require(_0xfc99('0xd'));var db=require('../../mysqldb')['db'];config[_0xfc99('0xe')]=_[_0xfc99('0xf')](config[_0xfc99('0xe')],{'host':'localhost','port':0x18eb});var socket=require(_0xfc99('0x10'))(new Redis(config['redis']));require(_0xfc99('0x11'))[_0xfc99('0x12')](socket);function respondWithResult(_0x529c45,_0x39f1a2){_0x39f1a2=_0x39f1a2||0xc8;return function(_0x5e699c){if(_0x5e699c){return _0x529c45[_0xfc99('0x13')](_0x39f1a2)[_0xfc99('0x14')](_0x5e699c);}};}function respondWithFilteredResult(_0x331724,_0x31d44a){return function(_0xbecf0d){if(_0xbecf0d){var _0x5806c0=typeof _0x31d44a[_0xfc99('0x15')]===_0xfc99('0x16')&&typeof _0x31d44a[_0xfc99('0x17')]==='undefined';var _0x628625=_0xbecf0d[_0xfc99('0x18')];var _0x305da9=_0x5806c0?0x0:_0x31d44a['offset'];var _0x2ae414=_0x5806c0?_0xbecf0d[_0xfc99('0x18')]:_0x31d44a[_0xfc99('0x15')]+_0x31d44a[_0xfc99('0x17')];var _0x4d65d0;if(_0x2ae414>=_0x628625){_0x2ae414=_0x628625;_0x4d65d0=0xc8;}else{_0x4d65d0=0xce;}_0x331724[_0xfc99('0x13')](_0x4d65d0);return _0x331724[_0xfc99('0x19')](_0xfc99('0x1a'),_0x305da9+'-'+_0x2ae414+'/'+_0x628625)['json'](_0xbecf0d);}return null;};}function saveUpdates(_0x5b7fab){return function(_0x57fa8c){if(_0x57fa8c){return _0x57fa8c[_0xfc99('0x1b')](_0x5b7fab)[_0xfc99('0x1c')](function(_0x496061){return _0x496061;});}return null;};}function removeEntity(_0x5b5d9c){return function(_0x26162a){if(_0x26162a){return _0x26162a[_0xfc99('0x1d')]()['then'](function(){_0x5b5d9c[_0xfc99('0x13')](0xcc)[_0xfc99('0x1e')]();});}};}function handleEntityNotFound(_0x52095c){return function(_0x57301f){if(!_0x57301f){_0x52095c['sendStatus'](0x194);}return _0x57301f;};}function handleError(_0x5b927b,_0x4a94d4){_0x4a94d4=_0x4a94d4||0x1f4;return function(_0x40d088){logger[_0xfc99('0x1f')](_0x40d088[_0xfc99('0x20')]);if(_0x40d088[_0xfc99('0x21')]){delete _0x40d088[_0xfc99('0x21')];}_0x5b927b['status'](_0x4a94d4)['send'](_0x40d088);};}exports[_0xfc99('0x22')]=function(_0x1fc924,_0x4a314c){var _0x158784={};return contacts[_0xfc99('0x23')]()['then'](function(_0x142481){_0x158784=qs[_0xfc99('0x24')](_0x142481,_0x1fc924);return contacts['findAll'](_0x1fc924[_0xfc99('0x25')],_0x1fc924['user'],_0x158784,_0x142481);})[_0xfc99('0x1c')](respondWithFilteredResult(_0x4a314c,_0x158784))[_0xfc99('0x26')](handleError(_0x4a314c,null));};exports[_0xfc99('0x1d')]=function(_0x332c63,_0x59e1b8){return db['CmContact'][_0xfc99('0x27')]({'where':{'id':_0x332c63[_0xfc99('0x28')]['id']}})[_0xfc99('0x1c')](handleEntityNotFound(_0x59e1b8,null))[_0xfc99('0x1c')](removeEntity(_0x59e1b8,null))[_0xfc99('0x26')](handleError(_0x59e1b8,null));};exports[_0xfc99('0x23')]=function(_0x1c4825,_0x5d9201){return db[_0xfc99('0x29')]['describe']()[_0xfc99('0x1c')](function(_0x443c83){delete _0x443c83['tags'];for(var _0xc86b72=0x0;_0xc86b72<Object[_0xfc99('0x2a')](_0x443c83)[_0xfc99('0x2b')];_0xc86b72++){var _0xd12125=Object[_0xfc99('0x2a')](_0x443c83)[_0xc86b72];if(!_['startsWith'](_0xd12125,_0xfc99('0x2c'))){_0x443c83[_0xd12125][_0xfc99('0x2d')]=_0xd12125;_0x443c83[_0xd12125][_0xfc99('0x2e')]=_0xd12125;}}return _0x443c83;})[_0xfc99('0x1c')](function(_0x1074ac){var _0x2ee287={'where':Boolean(_0x1c4825[_0xfc99('0x25')][_0xfc99('0x2f')])===!![]?undefined:{'$or':[{'ListId':_0x1c4825[_0xfc99('0x25')]['id']},{'ListId':null}]},'raw':!![]};return db[_0xfc99('0x30')]['findAll'](_0x2ee287)[_0xfc99('0x1c')](function(_0x79f141){for(var _0x102357=0x0;_0x102357<_0x79f141[_0xfc99('0x2b')];_0x102357++){var _0x3ee490=_0xfc99('0x2c')+_0x79f141[_0x102357]['id'];if(_0x1074ac[_0x3ee490]){_0x1074ac[_0x3ee490][_0xfc99('0x2d')]=_0x3ee490;_0x1074ac[_0x3ee490][_0xfc99('0x2e')]=_0x79f141[_0x102357]['alias'];_0x1074ac[_0x3ee490][_0xfc99('0x31')]={'type':_0x79f141[_0x102357][_0xfc99('0x32')],'values':_0x79f141[_0x102357]['values']};}else{logger[_0xfc99('0x33')]('Custom\x20field\x20%s\x20not\x20found\x20on\x20cm_contacts\x20table',_0x3ee490);}}Object[_0xfc99('0x2a')](_0x1074ac)['forEach'](function(_0x53d39f){if(!_0x1074ac[_0x53d39f][_0xfc99('0x34')]('columnName')){delete _0x1074ac[_0x53d39f];}});return _0x1074ac;});})[_0xfc99('0x1c')](respondWithResult(_0x5d9201,null))[_0xfc99('0x26')](handleError(_0x5d9201,null));};exports['merge']=function(_0x2ab799,_0x2b713f){var _0x57696d;var _0x48587b;var _0x3c1ea4;if(_0x2ab799['body']['id']){delete _0x2ab799[_0xfc99('0x35')]['id'];}return db[_0xfc99('0x29')][_0xfc99('0x36')]({'where':{'id':[_0x2ab799['body']['to'],_0x2ab799[_0xfc99('0x35')][_0xfc99('0x37')]]}})[_0xfc99('0x1c')](function(_0x1422cb){if(_0x1422cb){if(_0x1422cb[_0xfc99('0x2b')]!==0x2){return null;}_0x1422cb[0x0]=_0x1422cb[0x0][_0xfc99('0x38')]({'plain':!![]});_0x1422cb[0x1]=_0x1422cb[0x1]['get']({'plain':!![]});delete _0x1422cb[0x0]['id'];delete _0x1422cb[0x1]['id'];return _[_0xfc99('0x39')](_0x1422cb[0x0],_0x1422cb[0x1],function(_0x2778c0,_0x2a258f){if(Array[_0xfc99('0x3a')](_0x2a258f)&&!_0x2a258f[_0xfc99('0x2b')]){return _0x2778c0;}else if(!_0x2a258f){return _0x2778c0;}});}})['then'](handleEntityNotFound(_0x2b713f,null))[_0xfc99('0x1c')](function(_0x194bd3){if(_0x194bd3){if(_0x194bd3[_0xfc99('0x3b')]&&_['isArray'](_0x194bd3[_0xfc99('0x3b')])){_0x194bd3[_0xfc99('0x3b')]=_0x194bd3[_0xfc99('0x3b')][_0xfc99('0x3c')]();}logger[_0xfc99('0x33')](_0xfc99('0x3d'),_0x2ab799['body']['to'],_0x2ab799[_0xfc99('0x35')][_0xfc99('0x37')]);return db['CmHopper'][_0xfc99('0x1d')]({'where':{'ContactId':[_0x2ab799[_0xfc99('0x35')]['to'],_0x2ab799[_0xfc99('0x35')][_0xfc99('0x37')]]}})['then'](function(_0x16d6b5){logger[_0xfc99('0x33')](_0xfc99('0x3e'),_0x16d6b5);return db[_0xfc99('0x3f')]['destroy']({'where':{'ContactId':[_0x2ab799[_0xfc99('0x35')]['to'],_0x2ab799[_0xfc99('0x35')][_0xfc99('0x37')]]}})[_0xfc99('0x1c')](function(_0x5ef470){logger[_0xfc99('0x33')](_0xfc99('0x40'),_0x5ef470);return db['CmContact']['create'](_0x194bd3);});});}})['then'](function(_0xea5fac){if(_0xea5fac){_0x57696d=_0xea5fac;_0x48587b={'ContactId':_0x57696d['id']};_0x3c1ea4={'where':{'ContactId':[_0x2ab799['body']['to'],_0x2ab799[_0xfc99('0x35')]['from']]}};return db[_0xfc99('0x41')][_0xfc99('0x1b')](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db[_0xfc99('0x42')][_0xfc99('0x1b')](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db[_0xfc99('0x43')]['update'](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db[_0xfc99('0x44')][_0xfc99('0x1b')](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db[_0xfc99('0x45')][_0xfc99('0x1b')](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db[_0xfc99('0x44')]['update'](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db[_0xfc99('0x45')][_0xfc99('0x1b')](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db[_0xfc99('0x46')][_0xfc99('0x1b')](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db[_0xfc99('0x47')]['update'](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db[_0xfc99('0x48')][_0xfc99('0x1b')](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db[_0xfc99('0x49')]['update'](_0x48587b,_0x3c1ea4);}})['then'](function(){if(_0x57696d){return db[_0xfc99('0x4a')]['update'](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db[_0xfc99('0x4b')]['update'](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db[_0xfc99('0x4c')][_0xfc99('0x1b')]({'CmContactId':_0x57696d['id']},{'where':{'CmContactId':[_0x2ab799[_0xfc99('0x35')]['to'],_0x2ab799[_0xfc99('0x35')]['from']]}});}})['then'](function(){if(_0x57696d){return db[_0xfc99('0x4d')]['update'](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db[_0xfc99('0x4e')][_0xfc99('0x1b')](_0x48587b,_0x3c1ea4);}})['then'](function(){if(_0x57696d){return db[_0xfc99('0x4f')]['update'](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db[_0xfc99('0x50')][_0xfc99('0x1b')](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db[_0xfc99('0x51')][_0xfc99('0x1b')](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db[_0xfc99('0x52')][_0xfc99('0x1b')](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db['MailQueueReport'][_0xfc99('0x1b')](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db['OpenchannelQueueReport']['update'](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db['SmsQueueReport'][_0xfc99('0x1b')](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db[_0xfc99('0x53')][_0xfc99('0x1b')](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db[_0xfc99('0x54')]['update'](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db[_0xfc99('0x55')]['update'](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db[_0xfc99('0x56')][_0xfc99('0x1b')](_0x48587b,_0x3c1ea4);}})[_0xfc99('0x1c')](function(){if(_0x57696d){return db[_0xfc99('0x29')][_0xfc99('0x1d')]({'where':{'id':[_0x2ab799[_0xfc99('0x35')]['to'],_0x2ab799[_0xfc99('0x35')][_0xfc99('0x37')]]}});}})[_0xfc99('0x1c')](function(){if(_0x57696d){return _0x57696d;}})[_0xfc99('0x1c')](respondWithResult(_0x2b713f,null))['catch'](handleError(_0x2b713f,null));};exports[_0xfc99('0x57')]=function(_0x4579bd,_0x19793f){return db[_0xfc99('0x29')]['describe']()[_0xfc99('0x1c')](function(_0x2c55cf){if(_0x4579bd[_0xfc99('0x35')][_0xfc99('0x3b')]&&_['isArray'](_0x4579bd[_0xfc99('0x35')][_0xfc99('0x3b')])){if(_0x4579bd[_0xfc99('0x35')][_0xfc99('0x3b')][_0xfc99('0x2b')]){_0x4579bd[_0xfc99('0x35')][_0xfc99('0x3b')]=_0x4579bd[_0xfc99('0x35')][_0xfc99('0x3b')][_0xfc99('0x3c')](';')+';';}else{_0x4579bd[_0xfc99('0x35')][_0xfc99('0x3b')]=null;}}else{_0x4579bd['body']['tags']=null;}if(!_[_0xfc99('0x58')](_0x4579bd[_0xfc99('0x35')][_0xfc99('0x59')])){var _0x3c29d9=_0x4579bd[_0xfc99('0x35')][_0xfc99('0x59')];if(!_['isNil'](shared['timezones'][_0x3c29d9]))_0x4579bd['body'][_0xfc99('0x5a')]=shared[_0xfc99('0x5b')][_0x3c29d9][_0xfc99('0x5a')];}return db['CmContact']['create'](_0x4579bd[_0xfc99('0x35')],{'fields':_['keys'](_0x2c55cf),'raw':!![]});})[_0xfc99('0x1c')](function(_0x410a5a){if(_0x4579bd['body'][_0xfc99('0x5c')]){return insertAdditionalPhones(_0x410a5a,_0x4579bd[_0xfc99('0x35')][_0xfc99('0x5c')]);}else{return _0x410a5a;}})[_0xfc99('0x1c')](respondWithResult(_0x19793f,0xc9))[_0xfc99('0x26')](handleError(_0x19793f,null));};exports['bulkCreate']=function(_0x1e4b95,_0x567467){var _0x282441=0x0;var _0x48cf8d=0x0;var _0x1dc63f=0x0;var _0x2494d1=[];return db[_0xfc99('0x29')][_0xfc99('0x23')]()[_0xfc99('0x1c')](function(_0x2f0e6a){return BPromise[_0xfc99('0x5d')](_0x1e4b95[_0xfc99('0x35')],function(_0x22a836){var _0x3bd827={'where':{'$or':[]},'defaults':_0x22a836,'fields':_['keys'](_0x2f0e6a),'raw':!![]};if(_0x22a836['duplicates']){for(var _0x29f035=0x0;_0x29f035<_0x22a836[_0xfc99('0x5e')][_0xfc99('0x2b')];_0x29f035++){var _0x103103={};_0x103103[_0x22a836[_0xfc99('0x5e')][_0x29f035]]=_0x22a836[_0x22a836['duplicates'][_0x29f035]];_0x3bd827[_0xfc99('0x5f')]['$or']['push'](_0x103103);}_0x3bd827[_0xfc99('0x5f')][_0xfc99('0x60')]=_0x22a836[_0xfc99('0x60')];}return db[_0xfc99('0x29')][_0xfc99('0x61')](_0x3bd827)['spread'](function(_0x326b71,_0x2b845c){if(_0x2b845c){if(_0x22a836[_0xfc99('0x34')](_0xfc99('0x5c'))){_0x2494d1[_0xfc99('0x62')]({'contact':_0x326b71,'additionalPhones':_0x22a836[_0xfc99('0x5c')]});}_0x282441++;}else{_0x1dc63f++;}})[_0xfc99('0x26')](function(){_0x48cf8d++;});});})[_0xfc99('0x1c')](function(_0x55a893){if(_0x55a893){if(_0x2494d1[_0xfc99('0x2b')]>0x0){return new Promise(function(_0x5ded95){var _0x3637f9=[];for(var _0x11f2a5=0x0;_0x11f2a5<_0x2494d1['length'];_0x11f2a5++){_0x3637f9[_0xfc99('0x62')](insertAdditionalPhones(_0x2494d1[_0x11f2a5][_0xfc99('0x63')],_0x2494d1[_0x11f2a5][_0xfc99('0x5c')]));}Promise['all'](_0x3637f9)['then'](function(){_0x5ded95(0x1);});})[_0xfc99('0x1c')](function(){return{'success':_0x282441,'failure':_0x48cf8d,'duplicates':_0x1dc63f};});}else{return{'success':_0x282441,'failure':_0x48cf8d,'duplicates':_0x1dc63f};}}})[_0xfc99('0x1c')](respondWithResult(_0x567467,0xc9))[_0xfc99('0x26')](handleError(_0x567467,null));};exports['show']=function(_0x29f079,_0x542501){var _0x588f73;return db[_0xfc99('0x29')][_0xfc99('0x23')]()[_0xfc99('0x1c')](function(_0x31fff7){return db[_0xfc99('0x29')][_0xfc99('0x27')]({'where':{'id':_0x29f079[_0xfc99('0x28')]['id']},'include':[{'model':db[_0xfc99('0x64')],'as':_0xfc99('0x65'),'attributes':['id',_0xfc99('0x21'),_0xfc99('0x66')],'required':_0x29f079[_0xfc99('0x25')][_0xfc99('0x67')]?!![]:![]},{'model':db['CmContactHasItem'],'as':'Phones','where':{'CmContactId':_0x29f079['params']['id']},'required':![],'include':[{'model':db[_0xfc99('0x68')],'as':'ItemType'}]}],'order':[db[_0xfc99('0x69')][_0xfc99('0x6a')](_0xfc99('0x6b'))],'attributes':_['keys'](_0x31fff7)});})['then'](function(_0x43a13e){if(!_[_0xfc99('0x58')](_0x43a13e)){_0x588f73=_0x43a13e['get']({'plain':!![]});var _0x4c337d={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x43a13e&&_0x43a13e[_0xfc99('0x60')]){if(_0x43a13e[_0xfc99('0x60')]){_0x4c337d['where'][_0xfc99('0x6c')][_0xfc99('0x62')]({'ListId':{'$ne':_0x43a13e['ListId']}});}}return db['CmCustomField'][_0xfc99('0x36')](_0x4c337d);}})[_0xfc99('0x1c')](function(_0x5d0a64){if(!_['isNil'](_0x5d0a64)){return _[_0xfc99('0x6d')](_0x588f73,_[_0xfc99('0x6e')](_0x5d0a64,function(_0x23cfb6){return util[_0xfc99('0x6f')](_0xfc99('0x70'),_0x23cfb6['id']);}));}})[_0xfc99('0x1c')](handleEntityNotFound(_0x542501,null))[_0xfc99('0x1c')](respondWithResult(_0x542501,null))[_0xfc99('0x26')](handleError(_0x542501,null));};exports['update']=function(_0x3b8008,_0x1cacad){var _0x369167;if(_0x3b8008['body']['id']){delete _0x3b8008[_0xfc99('0x35')]['id'];}if(!_[_0xfc99('0x58')](_0x3b8008[_0xfc99('0x35')][_0xfc99('0x59')])){var _0x22e59c=_0x3b8008[_0xfc99('0x35')][_0xfc99('0x59')];if(!_[_0xfc99('0x58')](shared[_0xfc99('0x5b')][_0x22e59c]))_0x3b8008[_0xfc99('0x35')]['utcOffset']=shared[_0xfc99('0x5b')][_0x22e59c]['utcOffset'];}return db['CmContact']['find']({'where':{'id':_0x3b8008[_0xfc99('0x28')]['id']}})[_0xfc99('0x1c')](handleEntityNotFound(_0x1cacad,null))[_0xfc99('0x1c')](saveUpdates(_0x3b8008[_0xfc99('0x35')],null))[_0xfc99('0x1c')](function(_0x3b28d9){_0x369167=_0x3b28d9;var _0x1f73cc={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x3b28d9&&_0x3b28d9[_0xfc99('0x60')]){if(_0x3b28d9[_0xfc99('0x60')]){_0x1f73cc[_0xfc99('0x5f')][_0xfc99('0x6c')][_0xfc99('0x62')]({'ListId':{'$ne':_0x3b28d9[_0xfc99('0x60')]}});}}return db[_0xfc99('0x30')]['findAll'](_0x1f73cc);})[_0xfc99('0x1c')](function(_0x4c5bd4){if(_0x4c5bd4){return _['omit'](_[_0xfc99('0x71')](_0x3b8008['body'],function(_0x350725,_0x1e2642){return _[_0xfc99('0x72')](_0x1e2642,_0xfc99('0x2c'));}),_[_0xfc99('0x6e')](_0x4c5bd4,function(_0x555cb0){return util[_0xfc99('0x6f')](_0xfc99('0x70'),_0x555cb0['id']);}));}})[_0xfc99('0x1c')](function(_0x12d0e6){if(_0x12d0e6&&!_['isEmpty'](_0x12d0e6)){var _0x2e654d=squel[_0xfc99('0x1b')]()[_0xfc99('0x73')](_0xfc99('0x74'))[_0xfc99('0x75')](_0x12d0e6)[_0xfc99('0x5f')](_0xfc99('0x76'),_0x3b8008[_0xfc99('0x28')]['id'])[_0xfc99('0x77')]();return db[_0xfc99('0x69')][_0xfc99('0x25')](_0x2e654d['text'],{'replacements':_0x2e654d[_0xfc99('0x78')]});}})['then'](function(){if(_0x3b8008['body'][_0xfc99('0x79')]&&_0x369167){return db[_0xfc99('0x7a')][_0xfc99('0x1b')]({'phone':_0x3b8008[_0xfc99('0x35')][_0xfc99('0x79')],'OrderBy':0x0},{'where':{'ContactId':_0x369167['id']}});}})['then'](function(){return _0x369167;})[_0xfc99('0x1c')](respondWithResult(_0x1cacad,null))[_0xfc99('0x26')](handleError(_0x1cacad,null));};exports[_0xfc99('0x7b')]=function(_0x418306,_0x166d65){var _0x362d00={};var _0x12e0bd={};var _0x1c9928;var _0x403e26;return db[_0xfc99('0x29')][_0xfc99('0x7c')]({'where':{'id':_0x418306['params']['id']}})[_0xfc99('0x1c')](handleEntityNotFound(_0x166d65,null))['then'](function(_0x25f828){if(_0x25f828){_0x1c9928=_0x25f828;_0x12e0bd[_0xfc99('0x7d')]=_[_0xfc99('0x2a')](db[_0xfc99('0x64')][_0xfc99('0x7e')]);_0x12e0bd[_0xfc99('0x25')]=_[_0xfc99('0x2a')](_0x418306[_0xfc99('0x25')]);_0x12e0bd[_0xfc99('0x7f')]=_['intersection'](_0x12e0bd[_0xfc99('0x7d')],_0x12e0bd['query']);_0x362d00['attributes']=_[_0xfc99('0x80')](_0x12e0bd[_0xfc99('0x7d')],qs[_0xfc99('0x81')](_0x418306[_0xfc99('0x25')][_0xfc99('0x81')]));_0x362d00[_0xfc99('0x82')]=_0x362d00[_0xfc99('0x82')]['length']?_0x362d00['attributes']:_0x12e0bd['model'];_0x362d00[_0xfc99('0x83')]=qs['sort'](_0x418306[_0xfc99('0x25')]['sort']);_0x362d00[_0xfc99('0x5f')]=qs[_0xfc99('0x7f')](_[_0xfc99('0x84')](_0x418306[_0xfc99('0x25')],_0x12e0bd[_0xfc99('0x7f')]));if(_0x418306[_0xfc99('0x25')][_0xfc99('0x85')]){_0x362d00[_0xfc99('0x5f')]=_[_0xfc99('0x86')](_0x362d00[_0xfc99('0x5f')],{'$or':_[_0xfc99('0x6e')](_0x362d00[_0xfc99('0x82')],function(_0x453d0d){var _0x19734d={};_0x19734d[_0x453d0d]={'$like':'%'+_0x418306[_0xfc99('0x25')][_0xfc99('0x85')]+'%'};return _0x19734d;})});}_0x362d00=_[_0xfc99('0x86')]({},_0x362d00,_0x418306[_0xfc99('0x87')]);return _0x1c9928[_0xfc99('0x7b')](_0x362d00);}})['then'](function(_0x5add1a){if(_0x5add1a){_0x403e26=_0x5add1a['length'];if(!_0x418306[_0xfc99('0x25')]['hasOwnProperty'](_0xfc99('0x88'))){_0x362d00[_0xfc99('0x17')]=qs['limit'](_0x418306[_0xfc99('0x25')]['limit']);_0x362d00[_0xfc99('0x15')]=qs[_0xfc99('0x15')](_0x418306[_0xfc99('0x25')][_0xfc99('0x15')]);}return _0x1c9928[_0xfc99('0x7b')](_0x362d00);}})[_0xfc99('0x1c')](function(_0x3401d1){if(_0x3401d1){return _0x3401d1?{'count':_0x403e26,'rows':_0x3401d1}:null;}})[_0xfc99('0x1c')](respondWithResult(_0x166d65,null))['catch'](handleError(_0x166d65,null));};exports[_0xfc99('0x89')]=function(_0x2efce9,_0x196ed9){if(_0x2efce9['body']['id']){delete _0x2efce9['body']['id'];}return db[_0xfc99('0x29')][_0xfc99('0x7c')]({'where':{'id':_0x2efce9[_0xfc99('0x28')]['id']}})[_0xfc99('0x1c')](handleEntityNotFound(_0x196ed9,null))['then'](function(_0x543d8f){if(_0x543d8f){return _0x543d8f['setTags'](_0x2efce9[_0xfc99('0x35')][_0xfc99('0x8a')]||[]);}return null;})[_0xfc99('0x1c')](respondWithResult(_0x196ed9,null))[_0xfc99('0x26')](handleError(_0x196ed9,null));};exports[_0xfc99('0x8b')]=function(_0x41e6f7,_0x2985c0){var _0x1c1e7e=[];_0x1c1e7e[_0xfc99('0x62')](addAdditionalPhones(_0x41e6f7[_0xfc99('0x35')]));Promise['all'](_0x1c1e7e)['then'](function(){_0x1c1e7e=[];_0x1c1e7e[_0xfc99('0x62')](deleteCmHopperPhones(_0x41e6f7[_0xfc99('0x35')]['id']));_0x1c1e7e[_0xfc99('0x62')](addCmHopperPhones(_0x41e6f7['body']['id']));Promise[_0xfc99('0x8c')](_0x1c1e7e)[_0xfc99('0x1c')](function(){return[0x1];})[_0xfc99('0x1c')](respondWithResult(_0x2985c0,null));});};function addAdditionalPhones(_0x9f8e19){var _0x17df7d;return new Promise(function(_0x4e5075){return db['CmContactHasItem'][_0xfc99('0x1d')]({'where':{'CmContactId':_0x9f8e19['id']}})['then'](function(){db[_0xfc99('0x68')][_0xfc99('0x36')]({'raw':!![],'attributes':['id',_0xfc99('0x8d')]})['then'](function(_0x5091d4){var _0x20ea6a=[];for(var _0x28c485=0x0;_0x28c485<_0x9f8e19[_0xfc99('0x8e')][_0xfc99('0x2b')];_0x28c485++){var _0x54ac56=_0x9f8e19['item_types']?_['isNil'](_0x9f8e19['item_types'][_0x28c485])?'':_0x9f8e19[_0xfc99('0x8f')][_0x28c485]:_0x9f8e19[_0xfc99('0x8e')][_0x28c485][_0xfc99('0x90')]?_0x9f8e19[_0xfc99('0x8e')][_0x28c485]['ItemTypeId']:'';var _0x4f54d1=_[_0xfc99('0x58')](_0x9f8e19[_0xfc99('0x8e')][_0x28c485][_0xfc99('0x91')])?'':_0x9f8e19[_0xfc99('0x8e')][_0x28c485][_0xfc99('0x91')];var _0x6910f2=_0x54ac56+':'+_0x9f8e19[_0xfc99('0x8e')][_0x28c485][_0xfc99('0x79')]+'ยง'+_0x4f54d1;if(_[_0xfc99('0x58')](_0x17df7d))_0x17df7d=_0x6910f2;else _0x17df7d+=';'+_0x6910f2;var _0x2c6162=null;var _0x309685=null;if(_0x9f8e19[_0xfc99('0x8f')]){if(!_[_0xfc99('0x58')](_0x9f8e19[_0xfc99('0x8f')][_0x28c485])){_0x309685=_[_0xfc99('0x27')](_0x5091d4,function(_0x3becc5){return _0x3becc5['id']===_0x9f8e19[_0xfc99('0x8f')][_0x28c485];});if(!_[_0xfc99('0x58')](_0x309685)){_0x2c6162=_0x309685['OrderBy'];}}}else{if(!_[_0xfc99('0x58')](_0x9f8e19[_0xfc99('0x8e')][_0x28c485])){_0x309685=_[_0xfc99('0x27')](_0x5091d4,function(_0x4c850f){return _0x4c850f['id']===_0x9f8e19[_0xfc99('0x8e')][_0x28c485][_0xfc99('0x90')];});if(!_['isNil'](_0x309685)){_0x2c6162=_0x28c485;}}}if(_[_0xfc99('0x58')](_0x2c6162)){_0x2c6162=0x64;}_0x20ea6a[_0xfc99('0x62')](addAdditionalPhone(_0x9f8e19['id'],_0x9f8e19[_0xfc99('0x8e')][_0x28c485][_0xfc99('0x79')],_0x9f8e19['item_types']?_['isNil'](_0x9f8e19[_0xfc99('0x8f')][_0x28c485])?null:_0x9f8e19[_0xfc99('0x8f')][_0x28c485]:_0x9f8e19['items'][_0x28c485]['ItemTypeId']?_0x9f8e19['items'][_0x28c485][_0xfc99('0x90')]:null,_0x2c6162,_0x4f54d1));}Promise['all'](_0x20ea6a)['then'](function(){db[_0xfc99('0x29')][_0xfc99('0x1b')]({'AdditionalPhones':_0x17df7d},{'where':{'id':_0x9f8e19['id']}})['then'](function(){_0x4e5075(0x1);});});});});});}function addAdditionalPhone(_0x2b34b0,_0x4aa797,_0x546de5,_0x2eb0c0,_0x58c528){return db[_0xfc99('0x4c')][_0xfc99('0x27')]({'where':{'CmContactId':_0x2b34b0,'item':_0x4aa797}})['then'](function(_0x2f223f){if(_0x2f223f)logger['info'](_0xfc99('0x92'),_0x2f223f);else{db[_0xfc99('0x4c')][_0xfc99('0x57')]({'CmContactId':_0x2b34b0,'item':_0x4aa797,'ItemTypeId':_0x546de5,'OrderBy':_0x2eb0c0,'ItemClass':_0xfc99('0x93'),'description':_0x58c528});}});}function deleteCmHopperPhones(_0x405264){return new Promise(function(_0x15eaf5){return db[_0xfc99('0x7a')][_0xfc99('0x36')]({'raw':!![],'attributes':['id'],'where':{'ContactId':_0x405264}})[_0xfc99('0x1c')](function(_0x1e554d){db[_0xfc99('0x94')]['destroy']({'where':{'CmHopperId':{'$in':_[_0xfc99('0x6e')](_0x1e554d,'id')}}});})[_0xfc99('0x1c')](function(){_0x15eaf5(0x1);});});}function addCmHopperPhones(_0x143983){return new Promise(function(_0x546bb7){return db[_0xfc99('0x7a')][_0xfc99('0x36')]({'raw':!![],'attributes':['id'],'where':{'ContactId':_0x143983}})[_0xfc99('0x1c')](function(_0x220b03){var _0x47ff51=[];_['map'](_0x220b03,function(_0x416a20){_0x47ff51['push'](createCmHopperPhone(_0x143983,_0x416a20['id']));});Promise[_0xfc99('0x8c')](_0x47ff51)[_0xfc99('0x1c')](function(){_0x546bb7(0x1);});});});}function createCmHopperPhone(_0x18c589,_0x4e7a90){return new Promise(function(_0x5a9aac){db['CmContactHasItem']['findAll']({'raw':!![],'attributes':[_0xfc99('0x95'),_0xfc99('0x8d')],'where':{'CmContactId':_0x18c589,'ItemClass':_0xfc99('0x93')},'include':[{'model':db['ContactItemType'],'attributes':[_0xfc99('0x8d')],'as':_0xfc99('0x96')}],'order':[_0xfc99('0x8d'),db[_0xfc99('0x69')]['literal'](_0xfc99('0x97'))]})[_0xfc99('0x1c')](function(_0xe91a7a){var _0x2cc33d=0x1;var _0x12dab9=_[_0xfc99('0x6e')](_0xe91a7a,function(_0x5c81ca){_0x5c81ca[_0xfc99('0x98')]=_0x4e7a90;_0x5c81ca[_0xfc99('0x79')]=_0x5c81ca[_0xfc99('0x95')];_0x5c81ca[_0xfc99('0x8d')]=_0x2cc33d;delete _0x5c81ca['ItemType.OrderBy'];_0x2cc33d=_0x2cc33d+0x1;return _0x5c81ca;});return db[_0xfc99('0x94')][_0xfc99('0x99')](_0x12dab9,{});})['then'](function(){_0x5a9aac(0x1);});});}function insertAdditionalPhones(_0x2cfa78,_0x337267){return new Promise(function(_0x15354d){var _0x197647=[];for(var _0x25bc5c=0x0;_0x25bc5c<_0x337267[_0xfc99('0x2b')];_0x25bc5c++){var _0x507ea8=_0x337267[_0x25bc5c];_0x197647['push'](parseContactItemType(_0x507ea8));}Promise['all'](_0x197647)[_0xfc99('0x1c')](function(){var _0x19f04a={'id':_0x2cfa78['id'],'items':_0x337267};return addAdditionalPhones(_0x19f04a)[_0xfc99('0x1c')](function(){return addCmHopperPhones(_0x2cfa78['id']);});})[_0xfc99('0x1c')](function(){_0x15354d(_0x2cfa78);});});}function parseContactItemType(_0x3d743a){return new Promise(function(_0x121087){if(_0x3d743a[_0xfc99('0x34')](_0xfc99('0x90'))){_0x121087(_0x3d743a);}else{return db[_0xfc99('0x68')]['find']({'where':{'name':_0x3d743a[_0xfc99('0x96')]}})[_0xfc99('0x1c')](function(_0x21d471){if(_[_0xfc99('0x58')](_0x21d471))_0x3d743a['ItemTypeId']=null;else _0x3d743a[_0xfc99('0x90')]=_0x21d471['id'];_0x121087(_0x3d743a);});}});}exports[_0xfc99('0x9a')]=function(_0x1d6a2d,_0x41d7a1){return db['CmContactHasItem']['findAll']({'raw':!![],'where':{'CmContactId':_0x1d6a2d[_0xfc99('0x28')]['id'],'ItemClass':_0xfc99('0x93')},'include':[{'model':db[_0xfc99('0x68')],'as':'ItemType'}],'order':[[_0xfc99('0x8d')],[db[_0xfc99('0x69')]['literal']('`ItemType`.OrderBy')]]})[_0xfc99('0x1c')](function(_0x2e6862){return _0x2e6862;})[_0xfc99('0x1c')](respondWithResult(_0x41d7a1,null))['catch'](handleError(_0x41d7a1,null));};exports[_0xfc99('0x9b')]=function(_0x2de0a0,_0x86d62b){return db[_0xfc99('0x4c')]['findAll']({'raw':!![],'where':{'CmContactId':_0x2de0a0[_0xfc99('0x35')][_0xfc99('0x9c')]}})[_0xfc99('0x1c')](function(_0x1396e1){var _0x417550=_['map'](_0x1396e1,function(_0x39d042){_0x39d042['CmContactId']=_0x2de0a0[_0xfc99('0x35')][_0xfc99('0x9d')];return _0x39d042;});return db['CmContactHasItem'][_0xfc99('0x99')](_0x417550,{});})['then'](function(){return addCmHopperPhones(_0x2de0a0[_0xfc99('0x35')][_0xfc99('0x9d')]);})[_0xfc99('0x1c')](function(){return['ok'];})[_0xfc99('0x1c')](respondWithResult(_0x86d62b,null))[_0xfc99('0x26')](handleError(_0x86d62b,null));};exports['rescheduleAdditionalPhones']=function(_0xf1eac2,_0x11674e){var _0x45ab34=[];_0x45ab34[_0xfc99('0x62')](createCmHopperPhone(_0xf1eac2[_0xfc99('0x35')]['id'],_0xf1eac2[_0xfc99('0x35')]['hopperId']));Promise[_0xfc99('0x8c')](_0x45ab34)['then'](function(){return[0x1];})[_0xfc99('0x1c')](respondWithResult(_0x11674e,null));};exports['getHoppers']=function(_0x2ad6cd,_0x568b58){var _0x12b546={'raw':![],'where':{}};var _0x3972b1={};var _0x3b04a6={'count':0x0,'rows':[]};return db[_0xfc99('0x29')]['findOne']({'where':{'id':_0x2ad6cd[_0xfc99('0x28')]['id']}})[_0xfc99('0x1c')](handleEntityNotFound(_0x568b58,null))[_0xfc99('0x1c')](function(_0x466466){if(_0x466466){_0x3972b1[_0xfc99('0x7d')]=_[_0xfc99('0x2a')](db[_0xfc99('0x7a')][_0xfc99('0x7e')]);_0x3972b1['query']=_[_0xfc99('0x2a')](_0x2ad6cd[_0xfc99('0x25')]);_0x3972b1[_0xfc99('0x7f')]=_[_0xfc99('0x80')](_0x3972b1[_0xfc99('0x7d')],_0x3972b1[_0xfc99('0x25')]);_0x12b546[_0xfc99('0x82')]=_[_0xfc99('0x80')](_0x3972b1[_0xfc99('0x7d')],qs['fields'](_0x2ad6cd[_0xfc99('0x25')]['fields']));_0x12b546[_0xfc99('0x82')]=_0x12b546[_0xfc99('0x82')]['length']?_0x12b546[_0xfc99('0x82')]:_0x3972b1[_0xfc99('0x7d')];if(!_0x2ad6cd['query'][_0xfc99('0x34')]('nolimit')){_0x12b546[_0xfc99('0x17')]=qs[_0xfc99('0x17')](_0x2ad6cd[_0xfc99('0x25')][_0xfc99('0x17')]);_0x12b546[_0xfc99('0x15')]=qs[_0xfc99('0x15')](_0x2ad6cd[_0xfc99('0x25')][_0xfc99('0x15')]);}_0x12b546[_0xfc99('0x83')]=qs['sort'](_0x2ad6cd[_0xfc99('0x25')][_0xfc99('0x9e')]);_0x12b546[_0xfc99('0x5f')]=qs[_0xfc99('0x7f')](_[_0xfc99('0x84')](_0x2ad6cd[_0xfc99('0x25')],_0x3972b1['filters']));_0x12b546[_0xfc99('0x5f')][_0xfc99('0x9f')]=_0x466466['id'];if(_0x2ad6cd[_0xfc99('0x25')][_0xfc99('0x85')]){_0x12b546[_0xfc99('0x5f')]=_[_0xfc99('0x86')](_0x12b546['where'],{'$or':_[_0xfc99('0x6e')](_0x12b546[_0xfc99('0x82')],function(_0x2184a8){var _0x4a347c={};_0x4a347c[_0x2184a8]={'$like':'%'+_0x2ad6cd['query'][_0xfc99('0x85')]+'%'};return _0x4a347c;})});}_0x12b546=_[_0xfc99('0x86')]({},_0x12b546,_0x2ad6cd[_0xfc99('0x87')]);return db['CmHopper'][_0xfc99('0x18')]({'where':_0x12b546[_0xfc99('0x5f')]})['then'](function(_0xd18843){_0x3b04a6[_0xfc99('0x18')]=_0xd18843;if(_0x2ad6cd[_0xfc99('0x25')][_0xfc99('0xa0')]){_0x12b546[_0xfc99('0xa1')]=[{'all':!![]}];}return db[_0xfc99('0x7a')]['findAll'](_0x12b546);})[_0xfc99('0x1c')](function(_0x582ee4){_0x3b04a6[_0xfc99('0xa2')]=_0x582ee4;return _0x3b04a6;});}})[_0xfc99('0x1c')](respondWithFilteredResult(_0x568b58,_0x12b546))[_0xfc99('0x26')](handleError(_0x568b58,null));};exports[_0xfc99('0xa3')]=function(_0x5c96c5,_0x8f475c){var _0x162c13={'raw':!![],'where':{}};var _0x36ee00={};var _0xb383f4={'count':0x0,'rows':[]};return db['CmContact'][_0xfc99('0x7c')]({'where':{'id':_0x5c96c5['params']['id']}})[_0xfc99('0x1c')](handleEntityNotFound(_0x8f475c,null))['then'](function(_0x4babd7){if(_0x4babd7){_0x36ee00[_0xfc99('0x7d')]=_[_0xfc99('0x2a')](db[_0xfc99('0x4e')][_0xfc99('0x7e')]);_0x36ee00['query']=_['keys'](_0x5c96c5[_0xfc99('0x25')]);_0x36ee00[_0xfc99('0x7f')]=_[_0xfc99('0x80')](_0x36ee00[_0xfc99('0x7d')],_0x36ee00[_0xfc99('0x25')]);_0x162c13['attributes']=_[_0xfc99('0x80')](_0x36ee00[_0xfc99('0x7d')],qs[_0xfc99('0x81')](_0x5c96c5[_0xfc99('0x25')][_0xfc99('0x81')]));_0x162c13[_0xfc99('0x82')]=_0x162c13[_0xfc99('0x82')][_0xfc99('0x2b')]?_0x162c13[_0xfc99('0x82')]:_0x36ee00[_0xfc99('0x7d')];if(!_0x5c96c5[_0xfc99('0x25')][_0xfc99('0x34')](_0xfc99('0x88'))){_0x162c13['limit']=qs['limit'](_0x5c96c5['query'][_0xfc99('0x17')]);_0x162c13[_0xfc99('0x15')]=qs['offset'](_0x5c96c5['query'][_0xfc99('0x15')]);}_0x162c13[_0xfc99('0x83')]=qs[_0xfc99('0x9e')](_0x5c96c5[_0xfc99('0x25')]['sort']);_0x162c13[_0xfc99('0x5f')]=qs[_0xfc99('0x7f')](_[_0xfc99('0x84')](_0x5c96c5[_0xfc99('0x25')],_0x36ee00[_0xfc99('0x7f')]));_0x162c13[_0xfc99('0x5f')]['ContactId']=_0x4babd7['id'];if(_0x5c96c5['query'][_0xfc99('0x85')]){_0x162c13[_0xfc99('0x5f')]=_['merge'](_0x162c13[_0xfc99('0x5f')],{'$or':_[_0xfc99('0x6e')](_0x162c13[_0xfc99('0x82')],function(_0x1d17ef){var _0x294991={};_0x294991[_0x1d17ef]={'$like':'%'+_0x5c96c5[_0xfc99('0x25')][_0xfc99('0x85')]+'%'};return _0x294991;})});}_0x162c13=_['merge']({},_0x162c13,_0x5c96c5['options']);return db[_0xfc99('0x4e')]['count']({'where':_0x162c13[_0xfc99('0x5f')]})[_0xfc99('0x1c')](function(_0x3ad40e){_0xb383f4[_0xfc99('0x18')]=_0x3ad40e;if(_0x5c96c5[_0xfc99('0x25')][_0xfc99('0xa0')]){_0x162c13[_0xfc99('0xa1')]=[{'all':!![]}];}return db[_0xfc99('0x4e')][_0xfc99('0x36')](_0x162c13);})[_0xfc99('0x1c')](function(_0x2de450){_0xb383f4['rows']=_0x2de450;return _0xb383f4;});}})['then'](respondWithFilteredResult(_0x8f475c,_0x162c13))[_0xfc99('0x26')](handleError(_0x8f475c,null));};exports[_0xfc99('0xa4')]=function(_0x2674d1,_0x857b5){var _0x3cf4e7={'raw':!![],'where':{}};var _0x170d5f={};var _0x2afc9c={'count':0x0,'rows':[]};return db[_0xfc99('0x29')]['findOne']({'where':{'id':_0x2674d1[_0xfc99('0x28')]['id']}})[_0xfc99('0x1c')](handleEntityNotFound(_0x857b5,null))[_0xfc99('0x1c')](function(_0x197339){if(_0x197339){_0x170d5f['model']=_[_0xfc99('0x2a')](db[_0xfc99('0x4d')][_0xfc99('0x7e')]);_0x170d5f[_0xfc99('0x25')]=_['keys'](_0x2674d1[_0xfc99('0x25')]);_0x170d5f[_0xfc99('0x7f')]=_[_0xfc99('0x80')](_0x170d5f[_0xfc99('0x7d')],_0x170d5f[_0xfc99('0x25')]);_0x3cf4e7[_0xfc99('0x82')]=_[_0xfc99('0x80')](_0x170d5f[_0xfc99('0x7d')],qs[_0xfc99('0x81')](_0x2674d1[_0xfc99('0x25')][_0xfc99('0x81')]));_0x3cf4e7[_0xfc99('0x82')]=_0x3cf4e7['attributes']['length']?_0x3cf4e7[_0xfc99('0x82')]:_0x170d5f[_0xfc99('0x7d')];if(!_0x2674d1[_0xfc99('0x25')][_0xfc99('0x34')]('nolimit')){_0x3cf4e7[_0xfc99('0x17')]=qs[_0xfc99('0x17')](_0x2674d1[_0xfc99('0x25')]['limit']);_0x3cf4e7['offset']=qs[_0xfc99('0x15')](_0x2674d1[_0xfc99('0x25')]['offset']);}_0x3cf4e7[_0xfc99('0x83')]=qs[_0xfc99('0x9e')](_0x2674d1['query'][_0xfc99('0x9e')]);_0x3cf4e7[_0xfc99('0x5f')]=qs['filters'](_['pick'](_0x2674d1[_0xfc99('0x25')],_0x170d5f[_0xfc99('0x7f')]));_0x3cf4e7[_0xfc99('0x5f')][_0xfc99('0x9f')]=_0x197339['id'];if(_0x2674d1[_0xfc99('0x25')][_0xfc99('0x85')]){_0x3cf4e7[_0xfc99('0x5f')]=_['merge'](_0x3cf4e7[_0xfc99('0x5f')],{'$or':_[_0xfc99('0x6e')](_0x3cf4e7[_0xfc99('0x82')],function(_0x518cfa){var _0x18e5e2={};_0x18e5e2[_0x518cfa]={'$like':'%'+_0x2674d1['query'][_0xfc99('0x85')]+'%'};return _0x18e5e2;})});}_0x3cf4e7=_['merge']({},_0x3cf4e7,_0x2674d1[_0xfc99('0x87')]);return db[_0xfc99('0x4d')][_0xfc99('0x18')]({'where':_0x3cf4e7[_0xfc99('0x5f')]})['then'](function(_0x4ec05e){_0x2afc9c[_0xfc99('0x18')]=_0x4ec05e;if(_0x2674d1[_0xfc99('0x25')][_0xfc99('0xa0')]){_0x3cf4e7[_0xfc99('0xa1')]=[{'all':!![]}];}return db['CmHopperFinal'][_0xfc99('0x36')](_0x3cf4e7);})['then'](function(_0x1801d1){_0x2afc9c[_0xfc99('0xa2')]=_0x1801d1;return _0x2afc9c;});}})[_0xfc99('0x1c')](respondWithFilteredResult(_0x857b5,_0x3cf4e7))[_0xfc99('0x26')](handleError(_0x857b5,null));};exports[_0xfc99('0xa5')]=function(_0x981bd3,_0xbfa985){var _0x1cdfe9={'raw':!![],'where':{}};var _0x36f77c={};var _0x5bc09b={'count':0x0,'rows':[]};return db[_0xfc99('0x29')][_0xfc99('0x7c')]({'where':{'id':_0x981bd3[_0xfc99('0x28')]['id']}})['then'](handleEntityNotFound(_0xbfa985,null))[_0xfc99('0x1c')](function(_0x66afe8){if(_0x66afe8){_0x36f77c[_0xfc99('0x7d')]=_[_0xfc99('0x2a')](db['JscriptySessionReport'][_0xfc99('0x7e')]);_0x36f77c['query']=_['keys'](_0x981bd3[_0xfc99('0x25')]);_0x36f77c[_0xfc99('0x7f')]=_[_0xfc99('0x80')](_0x36f77c[_0xfc99('0x7d')],_0x36f77c[_0xfc99('0x25')]);_0x1cdfe9[_0xfc99('0x82')]=_[_0xfc99('0x80')](_0x36f77c['model'],qs[_0xfc99('0x81')](_0x981bd3[_0xfc99('0x25')][_0xfc99('0x81')]));_0x1cdfe9['attributes']=_0x1cdfe9[_0xfc99('0x82')][_0xfc99('0x2b')]?_0x1cdfe9['attributes']:_0x36f77c[_0xfc99('0x7d')];if(!_0x981bd3[_0xfc99('0x25')][_0xfc99('0x34')](_0xfc99('0x88'))){_0x1cdfe9[_0xfc99('0x17')]=qs['limit'](_0x981bd3[_0xfc99('0x25')]['limit']);_0x1cdfe9[_0xfc99('0x15')]=qs['offset'](_0x981bd3[_0xfc99('0x25')]['offset']);}_0x1cdfe9['order']=qs['sort'](_0x981bd3[_0xfc99('0x25')][_0xfc99('0x9e')]);_0x1cdfe9['where']=qs[_0xfc99('0x7f')](_[_0xfc99('0x84')](_0x981bd3[_0xfc99('0x25')],_0x36f77c['filters']));_0x1cdfe9[_0xfc99('0x5f')]['ContactId']=_0x66afe8['id'];if(_0x981bd3[_0xfc99('0x25')][_0xfc99('0x85')]){_0x1cdfe9[_0xfc99('0x5f')]=_[_0xfc99('0x86')](_0x1cdfe9[_0xfc99('0x5f')],{'$or':_[_0xfc99('0x6e')](_0x1cdfe9['attributes'],function(_0x3e092e){var _0x110b24={};_0x110b24[_0x3e092e]={'$like':'%'+_0x981bd3[_0xfc99('0x25')][_0xfc99('0x85')]+'%'};return _0x110b24;})});}_0x1cdfe9=_[_0xfc99('0x86')]({},_0x1cdfe9,_0x981bd3['options']);return db[_0xfc99('0x53')][_0xfc99('0x18')]({'where':_0x1cdfe9[_0xfc99('0x5f')]})[_0xfc99('0x1c')](function(_0x24d038){_0x5bc09b[_0xfc99('0x18')]=_0x24d038;if(_0x981bd3[_0xfc99('0x25')][_0xfc99('0xa0')]){_0x1cdfe9['include']=[{'all':!![]}];}return db['JscriptySessionReport']['findAll'](_0x1cdfe9);})['then'](function(_0x2b51d1){_0x5bc09b[_0xfc99('0xa2')]=_0x2b51d1;return _0x5bc09b;});}})['then'](respondWithFilteredResult(_0xbfa985,_0x1cdfe9))['catch'](handleError(_0xbfa985,null));};exports['uploadCsv']=function(_0x359dcf,_0x5f091c){try{if(!_0x359dcf[_0xfc99('0x35')]['ListId']){throw new Error(_0xfc99('0xa6'));}if(!_0x359dcf['body'][_0xfc99('0xa7')]){throw new Error(_0xfc99('0xa8'));}if(!_0x359dcf['body'][_0xfc99('0xa9')]){throw new Error('No\x20association\x20values\x20specified!');}if(!_0x359dcf[_0xfc99('0x35')][_0xfc99('0xaa')]){throw new Error('Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed');}var _0x4bd232=_0x359dcf[_0xfc99('0x35')][_0xfc99('0xa7')][_0xfc99('0xab')](',');var _0x855dbe=_0x359dcf[_0xfc99('0x35')][_0xfc99('0xa9')][_0xfc99('0xab')](',');if(!_0x4bd232[_0xfc99('0x2b')]||!_0x855dbe['length']||_0x4bd232[_0xfc99('0x2b')]!==_0x855dbe[_0xfc99('0x2b')]){throw new Error('Incorrect\x20binding\x20parameters\x20passed!');}_0x359dcf[_0xfc99('0x35')][_0xfc99('0x81')]=_[_0xfc99('0xac')](_0x4bd232,_0x855dbe);if(!_0x359dcf[_0xfc99('0x35')][_0xfc99('0x81')][_0xfc99('0x79')]){throw new Error(_0xfc99('0xad'));}if(!_0x359dcf['body'][_0xfc99('0x81')][_0xfc99('0xae')]){throw new Error(_0xfc99('0xaf'));}var _0x28882e=path[_0xfc99('0x3c')](config[_0xfc99('0xb0')],_0xfc99('0xb1'),_0x359dcf[_0xfc99('0xb2')][_0xfc99('0xb3')]);fs['chmodSync'](_0x28882e,parseInt(_0xfc99('0xb4'),0x8));var _0x7180ef=require(_0xfc99('0xb5'))[_0xfc99('0xb6')](path[_0xfc99('0x3c')](__dirname,_0xfc99('0xb7')),[_0x28882e,_0x359dcf[_0xfc99('0x35')][_0xfc99('0xa7')],_0x359dcf[_0xfc99('0x35')][_0xfc99('0xa9')],_0x359dcf['body']['ListId'],_0x359dcf[_0xfc99('0x35')][_0xfc99('0xb8')],_0x359dcf[_0xfc99('0x35')][_0xfc99('0x5e')],_0x359dcf[_0xfc99('0x35')][_0xfc99('0xaa')]]);return _0x5f091c['status'](0xc8)[_0xfc99('0x14')]({'message':_0xfc99('0xb9'),'pid':_0x7180ef['pid']});}catch(_0x441236){return _0x5f091c[_0xfc99('0x13')](0x1f4)[_0xfc99('0xba')](_0x441236);}};exports[_0xfc99('0xbb')]=function(_0x5735db,_0x5b5e0c){var _0x41facf=fs[_0xfc99('0xbc')](_0x5735db['file'][_0xfc99('0x3')]);Papa['parse'](_0x41facf,{'header':!![],'skipEmptyLines':!![],'preview':0x1,'complete':function(_0x4dc6b4){return _0x5b5e0c[_0xfc99('0x13')](0xc8)['json']({'file':_0x5735db[_0xfc99('0xb2')],'fields':_0x4dc6b4[_0xfc99('0xbd')][_0xfc99('0x81')]});}});};exports['import']=function(_0x538c67,_0x5c06ad){return db[_0xfc99('0xbe')][_0xfc99('0x36')]({'raw':!![],'attributes':['id'],'where':{'role':'agent'}})['then'](function(_0x1b264d){var _0x523c09=![];if(!_0x538c67['body'][_0xfc99('0x60')]){throw new Error('No\x20ListId\x20specified');}if(!_0x538c67['body']['binding'][_0xfc99('0x79')]){throw new Error(_0xfc99('0xad'));}if(!_0x538c67[_0xfc99('0x35')]['binding'][_0xfc99('0xae')]){throw new Error(_0xfc99('0xaf'));}if(!_0x538c67[_0xfc99('0x35')][_0xfc99('0xaa')]){throw new Error(_0xfc99('0xbf'));}var _0x1a5f58=require(_0xfc99('0xb5'))[_0xfc99('0xb6')](path['join'](__dirname,_0xfc99('0xc0')),[_0x538c67[_0xfc99('0x28')]['id'],JSON[_0xfc99('0xc1')](_0x538c67['body']),JSON['stringify'](_0x1b264d)]);_0x1a5f58['on'](_0xfc99('0xc2'),function(){_0x523c09=!![];return _0x5c06ad[_0xfc99('0x13')](0xc8)['json']({'message':'start\x20child\x20process\x20correctly!','pid':_0x1a5f58[_0xfc99('0xc3')]});});_0x1a5f58['on'](_0xfc99('0xc4'),function(_0x1dd0a1){if(_0x1dd0a1&&!_0x523c09){return _0x5c06ad[_0xfc99('0x13')](0x1f4)[_0xfc99('0x14')]({'message':_0xfc99('0xc5'),'pid':_0x1a5f58[_0xfc99('0xc3')]});}});})[_0xfc99('0x26')](handleError(_0x5c06ad,null));};exports[_0xfc99('0xc6')]=function(_0x4a3860,_0x238c2c){return db['User'][_0xfc99('0x36')]({'raw':!![],'attributes':['id'],'where':{'role':_0xfc99('0xc7')}})[_0xfc99('0x1c')](function(_0x472f13){var _0x1f726f=![];if(!_0x4a3860[_0xfc99('0x35')][_0xfc99('0x60')]){throw new Error(_0xfc99('0xa6'));}if(!_0x4a3860[_0xfc99('0x35')][_0xfc99('0xc8')][_0xfc99('0x79')]){throw new Error('No\x20phone\x20column\x20specified');}if(!_0x4a3860[_0xfc99('0x35')][_0xfc99('0xc8')][_0xfc99('0xae')]){throw new Error(_0xfc99('0xaf'));}if(!_0x4a3860[_0xfc99('0x35')][_0xfc99('0xaa')]){throw new Error('Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed');}var _0x9ae71d=require(_0xfc99('0xb5'))[_0xfc99('0xb6')](path[_0xfc99('0x3c')](__dirname,_0xfc99('0xc9')),[_0x4a3860[_0xfc99('0x28')]['id'],JSON[_0xfc99('0xc1')](_0x4a3860['body']),JSON[_0xfc99('0xc1')](_0x472f13)]);_0x9ae71d['on'](_0xfc99('0xc2'),function(){_0x1f726f=!![];return _0x238c2c[_0xfc99('0x13')](0xc8)[_0xfc99('0x14')]({'message':_0xfc99('0xca'),'pid':_0x9ae71d['pid']});});_0x9ae71d['on'](_0xfc99('0xc4'),function(_0x2e20fb){if(_0x2e20fb&&!_0x1f726f){return _0x238c2c[_0xfc99('0x13')](0x1f4)[_0xfc99('0x14')]({'message':'error\x20child\x20process','pid':_0x9ae71d[_0xfc99('0xc3')]});}});})[_0xfc99('0x26')](handleError(_0x238c2c,null));};exports[_0xfc99('0xcb')]=function(_0x53bb9b,_0x3be14b){var _0xcf308e=[_0xfc99('0xcc'),_0xfc99('0xcd'),_0xfc99('0xce'),_0xfc99('0xcf'),'fax',_0xfc99('0xd0'),'voice'];var _0xba1556={'offset':0x0,'order':qs['sort'](_0xfc99('0xd1'))},_0x41a384={'count':0x0,'rows':[]};Promise[_0xfc99('0xd2')]()[_0xfc99('0x1c')](function(){if(_0x53bb9b['query']['channel']){if(!_['includes'](_0xcf308e,_0x53bb9b[_0xfc99('0x25')][_0xfc99('0xd3')][_0xfc99('0xd4')]())){throw new Error(_0xfc99('0xd5'));}_0xcf308e=[_0x53bb9b['query'][_0xfc99('0xd3')][_0xfc99('0xd4')]()];}if(_0x53bb9b[_0xfc99('0x25')][_0xfc99('0xd6')]){try{var _0x4780bd=JSON['parse'](_0x53bb9b['query'][_0xfc99('0xd6')]);if(!moment(_0x4780bd[_0xfc99('0x37')])[_0xfc99('0xd7')]()){throw new Error(_0xfc99('0xd8'));}if(!moment(_0x4780bd['to'])[_0xfc99('0xd7')]()){throw new Error('Invalid\x20date\x20for\x20range\x20to\x20filter');}}catch(_0x49e076){throw new Error('Invalid\x20createdAt\x20filter');}}if(!_0x53bb9b[_0xfc99('0x25')]['hasOwnProperty'](_0xfc99('0x88'))){_0xba1556[_0xfc99('0x17')]=qs[_0xfc99('0x17')](_0x53bb9b[_0xfc99('0x25')][_0xfc99('0x17')]||0xa);_0xba1556[_0xfc99('0x15')]=qs[_0xfc99('0x15')](_0x53bb9b[_0xfc99('0x25')][_0xfc99('0x15')]);}var _0x1e580e=_0xcf308e['map'](function(_0x137f31){if(_0x137f31===_0xfc99('0xd9')){var _0x3b755c={'attributes':['id',_0xfc99('0xda'),'type',_0xfc99('0xdb'),_0xfc99('0xdc'),_0xfc99('0xdd'),_0xfc99('0xde'),_0xfc99('0xdf'),'duration',_0xfc99('0xe0'),_0xfc99('0xe1'),_0xfc99('0xe2'),_0xfc99('0xe3'),_0xfc99('0xe4'),_0xfc99('0xe5')],'where':{'ContactId':_0x53bb9b[_0xfc99('0x28')]['id']},'include':[{'model':db['User'],'as':'User','attributes':['id',_0xfc99('0x21'),_0xfc99('0xe6'),_0xfc99('0xe7')]}],'order':[[_0xfc99('0xe1'),_0xfc99('0xe8')]]};if(_0x53bb9b[_0xfc99('0x25')][_0xfc99('0xd6')]){_0x3b755c['where']['createdAt']={'$gte':_0x4780bd[_0xfc99('0x37')],'$lte':_0x4780bd['to']};}return db[_0xfc99('0x50')]['findAndCountAll'](_0x3b755c)['then'](function(_0x46090f){_0x41a384['count']+=_0x46090f[_0xfc99('0x18')];return _['map'](_0x46090f['rows'],function(_0x5cfb7d){var _0x11864e=_0x5cfb7d['get']({'plain':!![]});_0x11864e[_0xfc99('0xd3')]=_0x137f31;if(_0x11864e[_0xfc99('0xbe')]){_0x11864e[_0xfc99('0xbe')]={'id':_0x11864e[_0xfc99('0xbe')]['id'],'name':_0x11864e[_0xfc99('0xbe')][_0xfc99('0x21')],'fullname':_0x11864e[_0xfc99('0xbe')][_0xfc99('0xe6')],'alias':_0x11864e[_0xfc99('0xbe')][_0xfc99('0xe7')]};}return _0x11864e;});});}else{var _0x401cde=_[_0xfc99('0xe9')](_0x137f31)+(_0x137f31===_0xfc99('0xcd')?_0xfc99('0xea'):_0xfc99('0xeb'));var _0x11cbb2={'attributes':['id','closed','closedAt',_0xfc99('0xe1'),_0xfc99('0xe0'),_0xfc99('0xec'),'secondDisposition',_0xfc99('0xed'),_0xfc99('0xe5'),_0x401cde+'Id'],'where':{'ContactId':_0x53bb9b[_0xfc99('0x28')]['id']},'include':[{'model':db[_0x401cde],'as':_0xfc99('0xeb'),'attributes':['id',_0xfc99('0x21'),_0xfc99('0xee')]},{'model':db['User'],'as':_0xfc99('0xef'),'attributes':['id','name',_0xfc99('0xe6')]},{'model':db['Tag'],'as':'Tags','attributes':['id',_0xfc99('0x21'),_0xfc99('0x66')],'through':{'attributes':[]}}],'order':[[_0xfc99('0xe1'),'DESC']]};if(_0x53bb9b[_0xfc99('0x25')]['range']){_0x11cbb2[_0xfc99('0x5f')]['createdAt']={'$gte':_0x4780bd[_0xfc99('0x37')],'$lte':_0x4780bd['to']};}switch(_0x137f31){case _0xfc99('0xcd'):_0x11cbb2[_0xfc99('0x82')][_0xfc99('0x62')](_0xfc99('0xf0'),'customerIp','customerPort',_0xfc99('0xf1'),'osName',_0xfc99('0xf2'),_0xfc99('0xf3'),_0xfc99('0xf4'),_0xfc99('0xf5'));break;case _0xfc99('0xcc'):_0x11cbb2[_0xfc99('0x82')][_0xfc99('0x62')](_0xfc99('0xf6'),_0xfc99('0xf7'));break;case _0xfc99('0xcf'):_0x11cbb2[_0xfc99('0x82')][_0xfc99('0x62')]('externalUrl',_0xfc99('0xf8'));break;}return db[_[_0xfc99('0xe9')](_0x137f31)+'Interaction'][_0xfc99('0xf9')](_0x11cbb2)[_0xfc99('0x1c')](function(_0x52a038){_0x41a384['count']+=_0x52a038[_0xfc99('0x18')];return _[_0xfc99('0x6e')](_0x52a038['rows'],function(_0x351b3a){var _0xdabaaa=_0x351b3a[_0xfc99('0x38')]({'plain':!![]});_0xdabaaa[_0xfc99('0xd3')]=_0x137f31;if(_0xdabaaa['Owner']){_0xdabaaa['Owner']={'id':_0xdabaaa['Owner']['id'],'name':_0xdabaaa['Owner'][_0xfc99('0x21')],'fullname':_0xdabaaa[_0xfc99('0xef')]['fullname']};}return _0xdabaaa;});});}});return Promise['all'](_0x1e580e);})[_0xfc99('0x1c')](function(_0x339149){return _(_0x339149)['flatten']()['sortBy'](_0xfc99('0xe1'))[_0xfc99('0xfa')]()[_0xfc99('0xfb')]();})[_0xfc99('0x1c')](function(_0x2796b8){_0x41a384[_0xfc99('0xa2')]=_0xba1556[_0xfc99('0x17')]?_0x2796b8[_0xfc99('0xfc')](_0xba1556[_0xfc99('0x15')],_0xba1556[_0xfc99('0x15')]+_0xba1556['limit']):_0x2796b8;return _0x41a384;})[_0xfc99('0x1c')](respondWithFilteredResult(_0x3be14b,_0xba1556))[_0xfc99('0x26')](handleError(_0x3be14b,null));};