6ba623925a7a2e5f5d11c21ae4dcfff369494cb4
[motion2.git] / server / api / openchannelInteraction / openchannelInteraction.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 _0x6763=['u.fullname','ui.OpenchannelInteractionId','user_has_openchannel_interactions','users','u.id\x20=\x20ui.UserId','openchannel_interactions','cm_contacts','left_join','o.id\x20=\x20i.UserId','openchannel_messages','me.OpenchannelInteractionId\x20=\x20i.id','openchannel_interaction_has_tags','it.OpenchannelInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','conditions','find','unreadMessages','value','having','`\x20>\x200','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','text','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','UserId','body','compact','OpenchannelAccountId','i.OpenchannelAccountId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','filter','replace','isNumeric','i.id\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','i.from\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','QueryTypes','clone','i.id','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','DESC','isEmpty','resolve','then','journey','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','user','getOpenchannelAccounts','i.OpenchannelAccountId\x20IS\x20NULL','sequelize','toString','count','keyBy','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','c.lastName','Contact.lastName','Contact.email','c.mobile','Contact.fax','o.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.OpenchannelInteractionId\x20IN\x20?','groupBy','OpenchannelInteractionId','all','rows','show','params','rawAttributes','includeAll','include','merge','describe','OpenchannelMessage','addMessage','ids','findOne','sort','YYYY-MM-DD\x20HH:mm:ss','options','addTags','setTags','spread','findAll','color','openchannelInteractionTags:save','removeTags','download','unix','join','server','files','tmp','root','attachments','transcript-%d-%s.zip','User','fullname','CmContact','firstName','lastName','Attachment','Messages','get','mkdirSync','<div\x20class=\x22header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h5>Interaction\x20Transcript</h5>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>','30px','format','%s\x20#%d','Openchannel','Account','Owner','N.A.','closed','disposition','threadId','Public','Private','existsSync','createReadStream','createWriteStream','direction','System','basename','out','secret','renderFile','views','downloadInteraction.html','create','transcript-','log','html-pdf','eml-format','rimraf','request-promise','mustache','util','path','sox','to-csv','lodash','squel','crypto','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','sendStatus','end','status','json','offset','set','Content-Range','reject','save','destroy','error','stack','name','Users','map','TagIds','Tags','split','forEach','push','catch','index','OpenchannelInteraction','fieldName','type','key','model','keys','filters','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','limit','order','where','pick','select','field','from','tools_tags','u.id'];(function(_0x26333b,_0x56470d){var _0x404306=function(_0x5b379e){while(--_0x5b379e){_0x26333b['push'](_0x26333b['shift']());}};_0x404306(++_0x56470d);}(_0x6763,0x188));var _0x3676=function(_0x309d93,_0x157662){_0x309d93=_0x309d93-0x0;var _0x2dd61d=_0x6763[_0x309d93];return _0x2dd61d;};'use strict';var pdf=require(_0x3676('0x0'));var emlformat=require(_0x3676('0x1'));var rimraf=require(_0x3676('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x3676('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x3676('0x4'));var util=require(_0x3676('0x5'));var path=require(_0x3676('0x6'));var sox=require(_0x3676('0x7'));var csv=require(_0x3676('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x3676('0x9'));var squel=require(_0x3676('0xa'));var crypto=require(_0x3676('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x3676('0xc'));var Papa=require(_0x3676('0xd'));var Redis=require('ioredis');var authService=require(_0x3676('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x3676('0xf'));var hardwareService=require(_0x3676('0x10'));var logger=require('../../config/logger')('api');var utils=require(_0x3676('0x11'));var config=require(_0x3676('0x12'));var licenseUtil=require(_0x3676('0x13'));var db=require(_0x3676('0x14'))['db'];config[_0x3676('0x15')]=_['defaults'](config[_0x3676('0x15')],{'host':_0x3676('0x16'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require('./openchannelInteraction.socket')['register'](socket);function respondWithStatusCode(_0x539ff2,_0x6dcbb8){_0x6dcbb8=_0x6dcbb8||0xcc;return function(_0x3815b8){if(_0x3815b8){return _0x539ff2[_0x3676('0x17')](_0x6dcbb8);}return _0x539ff2['status'](_0x6dcbb8)[_0x3676('0x18')]();};}function respondWithResult(_0x5925a5,_0x563e2a){_0x563e2a=_0x563e2a||0xc8;return function(_0xa56014){if(_0xa56014){return _0x5925a5[_0x3676('0x19')](_0x563e2a)[_0x3676('0x1a')](_0xa56014);}};}function respondWithFilteredResult(_0x41c64b,_0x50a57b){return function(_0x32af65){if(_0x32af65){var _0x4af7e6=_0x32af65['count'],_0x53c160=_0x50a57b[_0x3676('0x1b')],_0x436c34=_0x50a57b[_0x3676('0x1b')]+_0x50a57b['limit'],_0x3c6795;if(_0x436c34>=_0x4af7e6){_0x436c34=_0x4af7e6;_0x3c6795=0xc8;}else{_0x3c6795=0xce;}_0x41c64b[_0x3676('0x19')](_0x3c6795);return _0x41c64b[_0x3676('0x1c')](_0x3676('0x1d'),_0x53c160+'-'+_0x436c34+'/'+_0x4af7e6)[_0x3676('0x1a')](_0x32af65);}return null;};}function patchUpdates(_0x122beb){return function(_0x2bdd21){try{jsonpatch['apply'](_0x2bdd21,_0x122beb,!![]);}catch(_0x34a2eb){return BPromise[_0x3676('0x1e')](_0x34a2eb);}return _0x2bdd21[_0x3676('0x1f')]();};}function saveUpdates(_0x683819,_0x47ad99){return function(_0x980e7c){if(_0x980e7c){return _0x980e7c['update'](_0x683819)['then'](function(_0x4600ab){return _0x4600ab;});}return null;};}function removeEntity(_0x1650e3,_0x3e1e54){return function(_0xf7fec8){if(_0xf7fec8){return _0xf7fec8[_0x3676('0x20')]()['then'](function(){_0x1650e3['status'](0xcc)[_0x3676('0x18')]();});}};}function handleEntityNotFound(_0x15e7c6,_0x575625){return function(_0x1bbeff){if(!_0x1bbeff){_0x15e7c6[_0x3676('0x17')](0x194);}return _0x1bbeff;};}function handleError(_0x27f793,_0x45f004){_0x45f004=_0x45f004||0x1f4;return function(_0xeed77c){logger[_0x3676('0x21')](_0xeed77c[_0x3676('0x22')]);if(_0xeed77c[_0x3676('0x23')]){delete _0xeed77c[_0x3676('0x23')];}_0x27f793[_0x3676('0x19')](_0x45f004)['send'](_0xeed77c);};}function getInteractionUsers(_0x4b028a,_0x3dd0ec){return new BPromise(function(_0x3a4f94,_0x60d5b0){try{if(_0x3dd0ec[_0x4b028a['id']]){_0x4b028a[_0x3676('0x24')]=_[_0x3676('0x25')](_0x3dd0ec[_0x4b028a['id']],function(_0x3225b1){return{'id':_0x3225b1['id'],'fullname':_0x3225b1['fullname']};});}}catch(_0x34d2df){_0x60d5b0(_0x34d2df);}_0x3a4f94(_0x4b028a);});}function getInteractionTags(_0x1b2298,_0x58567b){return new BPromise(function(_0x3e0e08,_0x1c062f){try{if(_0x1b2298[_0x3676('0x26')]){_0x1b2298[_0x3676('0x27')]=[];_0x1b2298[_0x3676('0x26')][_0x3676('0x28')](',')[_0x3676('0x29')](function(_0x5b5ae9){_0x1b2298['Tags'][_0x3676('0x2a')](_0x58567b[_0x5b5ae9]);});}delete _0x1b2298[_0x3676('0x26')];}catch(_0x2b6482){_0x1c062f(_0x2b6482);}_0x3e0e08(_0x1b2298);});}function updateOpenchannelInteraction(_0x5767f6,_0x196d22,_0x471f2e){return new BPromise(function(_0x12fc1f,_0x497fd1){return getInteractionUsers(_0x5767f6,_0x471f2e)['then'](function(_0xffc001){return getInteractionTags(_0xffc001,_0x196d22);})['then'](function(_0x19fd18){_0x12fc1f(_0x19fd18);})[_0x3676('0x2b')](function(_0x3b50c1){_0x497fd1(_0x3b50c1);});});}exports[_0x3676('0x2c')]=function(_0x3ccbcc,_0x2d7d13){var _0x40d187={},_0x38b763={},_0x51bb29={'count':0x0,'rows':[]};var _0x3c1bc8=_[_0x3676('0x25')](db[_0x3676('0x2d')]['rawAttributes'],function(_0x231ff2){return{'name':_0x231ff2[_0x3676('0x2e')],'type':_0x231ff2[_0x3676('0x2f')][_0x3676('0x30')]};});_0x38b763[_0x3676('0x31')]=_[_0x3676('0x25')](_0x3c1bc8,'name');_0x38b763['query']=_[_0x3676('0x32')](_0x3ccbcc['query']);_0x38b763[_0x3676('0x33')]=_[_0x3676('0x34')](_0x38b763[_0x3676('0x31')],_0x38b763[_0x3676('0x35')]);_0x40d187[_0x3676('0x36')]=_[_0x3676('0x34')](_0x38b763[_0x3676('0x31')],qs['fields'](_0x3ccbcc[_0x3676('0x35')][_0x3676('0x37')]));_0x40d187['attributes']=_0x40d187[_0x3676('0x36')][_0x3676('0x38')]?_0x40d187[_0x3676('0x36')]:_0x38b763['model'];if(!_0x3ccbcc[_0x3676('0x35')][_0x3676('0x39')](_0x3676('0x3a'))){_0x40d187['limit']=qs['limit'](_0x3ccbcc[_0x3676('0x35')][_0x3676('0x3b')]);_0x40d187[_0x3676('0x1b')]=qs[_0x3676('0x1b')](_0x3ccbcc[_0x3676('0x35')][_0x3676('0x1b')]);}_0x40d187[_0x3676('0x3c')]=qs['sort'](_0x3ccbcc[_0x3676('0x35')]['sort']);_0x40d187[_0x3676('0x3d')]=qs[_0x3676('0x33')](_[_0x3676('0x3e')](_0x3ccbcc['query'],_0x38b763[_0x3676('0x33')]),_0x3c1bc8);var _0x3abe2a=[];var _0x35ac8b=squel[_0x3676('0x3f')]()[_0x3676('0x40')]('id')[_0x3676('0x40')](_0x3676('0x23'))[_0x3676('0x40')]('color')[_0x3676('0x41')](_0x3676('0x42'));var _0x1cc514=squel[_0x3676('0x3f')]()[_0x3676('0x40')](_0x3676('0x43'))[_0x3676('0x40')](_0x3676('0x44'))[_0x3676('0x40')](_0x3676('0x45'))['from'](_0x3676('0x46'),'ui')['left_join'](_0x3676('0x47'),'u',_0x3676('0x48'));var _0x25fd18=squel[_0x3676('0x3f')]()['from'](_0x3676('0x49'),'i')['left_join'](_0x3676('0x4a'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0x3676('0x4b')](_0x3676('0x47'),'o',_0x3676('0x4c'))['left_join']('openchannel_accounts','a','a.id\x20=\x20i.OpenchannelAccountId')[_0x3676('0x4b')](_0x3676('0x4d'),'me',_0x3676('0x4e'))[_0x3676('0x4b')](_0x3676('0x4f'),'it',_0x3676('0x50'))[_0x3676('0x4b')](_0x3676('0x42'),'t',_0x3676('0x51'));var _0x22bcd7=squel[_0x3676('0x52')]();var _0x1cee28=[];var _0x1eabcf=squel[_0x3676('0x52')]();var _0x44d63b;if(_0x3ccbcc[_0x3676('0x35')]['search']){_0x44d63b=as['parseSearch'](_0x3ccbcc[_0x3676('0x35')][_0x3676('0x53')]);var _0x8b2ef7=_0x44d63b['sqlOperator'];for(var _0x1ef916=0x0;_0x1ef916<_0x44d63b[_0x3676('0x54')][_0x3676('0x38')];_0x1ef916++){var _0x30b060=_0x44d63b[_0x3676('0x54')][_0x1ef916];var _0x5c6718='i';var _0xe8a001=_[_0x3676('0x55')](_0x3c1bc8,[_0x3676('0x23'),_0x30b060[_0x3676('0x40')]]);if(!_0xe8a001){switch(_0x30b060[_0x3676('0x40')]){case _0x3676('0x56'):if(_0x30b060[_0x3676('0x57')]==0x1){_0x25fd18[_0x3676('0x58')]('`'+_0x30b060['field']+'`\x20=\x200');}else{_0x25fd18[_0x3676('0x58')]('`'+_0x30b060[_0x3676('0x40')]+_0x3676('0x59'));}break;case _0x3676('0x5a'):if(_0x30b060[_0x3676('0x5b')]===_0x3676('0x5c')){if(_0x30b060[_0x3676('0x57')][_0x3676('0x28')]('\x20')[_0x3676('0x38')]>0x1){_0x22bcd7[_0x8b2ef7](_0x3676('0x5d'),qs[_0x3676('0x5e')](_0x30b060['value']),null);}else{var _0x313350='%'+_0x30b060[_0x3676('0x57')]+'%';_0x22bcd7[_0x8b2ef7](_0x3676('0x5f'),_0x313350,_0x313350,_0x313350);}}else{_0xe8a001=_[_0x3676('0x55')](_0x3c1bc8,[_0x3676('0x23'),'ContactId']);_0x30b060['field']=_0x3676('0x60');_0x3854c9=as[_0x3676('0x61')](_0x5c6718,_0xe8a001[_0x3676('0x2f')],_0x30b060);_0x22bcd7[_0x8b2ef7](_0x3854c9[_0x3676('0x62')],_0x3854c9[_0x3676('0x57')][_0x3676('0x63')],_0x3854c9[_0x3676('0x57')][_0x3676('0x18')]);}break;case _0x3676('0x64'):var _0x1d5923=_0x30b060[_0x3676('0x57')][_0x3676('0x28')](',')[_0x3676('0x25')](function(_0x31cf85){return Number(_0x31cf85);});_0x1d5923[_0x3676('0x29')](function(_0x59eccd){_0x1eabcf['or'](_0x3676('0x65'),'%,'+_0x59eccd+',%');});_0x1cee28=_[_0x3676('0x66')](_0x1cee28,_0x1d5923);break;case'User':if(_0x30b060['operator']==='$substring'){_0x22bcd7[_0x8b2ef7]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x30b060[_0x3676('0x57')]+'%',null);}else{_0xe8a001=_['find'](_0x3c1bc8,['name',_0x3676('0x67')]);_0x30b060[_0x3676('0x40')]='UserId';_0x3854c9=as[_0x3676('0x61')](_0x5c6718,_0xe8a001[_0x3676('0x2f')],_0x30b060);_0x22bcd7[_0x8b2ef7](_0x3854c9[_0x3676('0x62')],_0x3854c9[_0x3676('0x57')][_0x3676('0x63')],_0x3854c9['value'][_0x3676('0x18')]);}break;case _0x3676('0x68'):_0x3854c9=as['buildExpression']('me',null,_0x30b060);_0x22bcd7[_0x8b2ef7](_0x3854c9[_0x3676('0x62')],_0x3854c9['value'][_0x3676('0x63')],_0x3854c9[_0x3676('0x57')][_0x3676('0x18')]);break;}}else{var _0x3854c9=as['buildExpression'](_0x5c6718,_0xe8a001[_0x3676('0x2f')],_0x30b060);_0x22bcd7[_0x8b2ef7](_0x3854c9[_0x3676('0x62')],_0x3854c9['value'][_0x3676('0x63')],_0x3854c9[_0x3676('0x57')][_0x3676('0x18')]);}}}else{var _0x38243e=_(_0x3ccbcc['query'])[_0x3676('0x32')]()[_0x3676('0x25')](function(_0x13fe13){return _['some'](_0x3c1bc8,[_0x3676('0x23'),_0x13fe13])?_0x13fe13:undefined;})[_0x3676('0x69')]()[_0x3676('0x57')]();if(!_['isEmpty'](_0x38243e)){_0x38243e['forEach'](function(_0x3396a1){if(_0x3396a1===_0x3676('0x6a')){_0x25fd18[_0x3676('0x3d')](_0x3676('0x6b'),[][_0x3676('0x6c')](_0x3ccbcc[_0x3676('0x35')][_0x3396a1]));}else if(_0x3396a1===_0x3676('0x6d')){var _0x1bdd1e=JSON[_0x3676('0x6e')](_0x3ccbcc['query'][_0x3396a1])[_0x3676('0x6f')];var _0x556f19=JSON[_0x3676('0x6e')](_0x3ccbcc[_0x3676('0x35')][_0x3396a1])[_0x3676('0x70')];_0x25fd18[_0x3676('0x3d')](_0x3676('0x71'),_0x1bdd1e,_0x556f19);}else{if(_0x3ccbcc[_0x3676('0x35')][_0x3396a1]===_0x3676('0x72')){_0x25fd18[_0x3676('0x3d')]('i.'+_0x3396a1+_0x3676('0x73'));}else{_0x25fd18[_0x3676('0x3d')]('i.'+_0x3396a1+_0x3676('0x74'),_0x3ccbcc[_0x3676('0x35')][_0x3396a1]);}}});}if(_0x3ccbcc[_0x3676('0x35')]['read']){if(_0x3ccbcc[_0x3676('0x35')][_0x3676('0x75')]==0x1){_0x25fd18[_0x3676('0x58')](_0x3676('0x76'));}else{_0x25fd18[_0x3676('0x58')](_0x3676('0x77'));}}if(_0x3ccbcc[_0x3676('0x35')]['tag']){_0x1cee28=_['isArray'](_0x3ccbcc['query'][_0x3676('0x78')])?_0x3ccbcc[_0x3676('0x35')][_0x3676('0x78')]:new Array(_0x3ccbcc[_0x3676('0x35')][_0x3676('0x78')]);_0x1cee28[_0x3676('0x29')](function(_0xaaef81){_0x1eabcf['or'](_0x3676('0x65'),'%,'+_0xaaef81+',%');});}if(_0x3ccbcc[_0x3676('0x35')]['filter']){var _0x404a31=_0x3ccbcc[_0x3676('0x35')][_0x3676('0x79')][_0x3676('0x7a')]('\x5c','\x5c\x5c')[_0x3676('0x7a')]('\x27\x27','\x27\x27\x27\x27');if(qs[_0x3676('0x7b')](_0x404a31)){_0x22bcd7['or'](_0x3676('0x7c'),_0x404a31+'%');}else{_0x22bcd7['or'](_0x3676('0x7d'),qs['getFullTextValue'](_0x404a31))['or'](_0x3676('0x7e'),_0x404a31+'%')['or'](_0x3676('0x7f'),_0x404a31+'%');}}}_0x25fd18[_0x3676('0x3d')](_0x22bcd7);_0x25fd18[_0x3676('0x80')]('i.id');var _0x36a7f1={'type':db['Sequelize'][_0x3676('0x81')]['SELECT'],'raw':!![]};var _0x112fd2=_0x25fd18[_0x3676('0x82')]();_0x112fd2['field'](_0x3676('0x83'));_0x112fd2[_0x3676('0x40')](_0x3676('0x84'),'unreadMessages');if(_0x40d187['order']){_0x40d187[_0x3676('0x3c')]['forEach'](function(_0x1cefc5){_0x25fd18[_0x3676('0x3c')]('i.'+_0x1cefc5[0x0],_0x1cefc5[0x1]===_0x3676('0x85')?![]:!![]);});}if(!_[_0x3676('0x86')](_0x1cee28)){_0x25fd18[_0x3676('0x58')](_0x1eabcf);_0x112fd2[_0x3676('0x3d')]('t.id\x20IN\x20?',_0x1cee28);}BPromise[_0x3676('0x87')]()[_0x3676('0x88')](function(){if(!_0x44d63b){if(_0x3ccbcc[_0x3676('0x35')]['OpenchannelAccountId']||_0x3ccbcc[_0x3676('0x35')][_0x3676('0x89')])return;_0x112fd2[_0x3676('0x3d')](_0x3676('0x8a'));_0x25fd18[_0x3676('0x3d')]('i.OpenchannelAccountId\x20IS\x20NOT\x20NULL');return;}return _0x3ccbcc[_0x3676('0x8b')][_0x3676('0x8c')]({'attributes':['id'],'raw':!![]})[_0x3676('0x88')](function(_0x4f84a4){if(_[_0x3676('0x86')](_0x4f84a4)){_0x112fd2[_0x3676('0x3d')](_0x3676('0x8d'));_0x25fd18[_0x3676('0x3d')](_0x3676('0x8d'));}else{_0x112fd2['where'](_0x3676('0x6b'),_[_0x3676('0x25')](_0x4f84a4,'id'));_0x25fd18[_0x3676('0x3d')](_0x3676('0x6b'),_[_0x3676('0x25')](_0x4f84a4,'id'));}});})[_0x3676('0x88')](function(){db[_0x3676('0x8e')]['query'](_0x112fd2[_0x3676('0x8f')](),_0x36a7f1)['then'](function(_0x108f5a){_0x51bb29[_0x3676('0x90')]=_0x108f5a['length'];if(_0x51bb29['count']===0x0)return[];return db[_0x3676('0x8e')][_0x3676('0x35')](_0x35ac8b[_0x3676('0x8f')](),_0x36a7f1)[_0x3676('0x88')](function(_0x611f06){_0x3abe2a=_[_0x3676('0x91')](_0x611f06,'id');_0x36a7f1=_['merge'](_0x36a7f1,{'model':db['OpenchannelInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x3ccbcc['query'][_0x3676('0x37')]){_0x40d187[_0x3676('0x36')][_0x3676('0x29')](function(_0x25b14f){_0x25fd18[_0x3676('0x40')]('i.'+_0x25b14f);});}else{_0x25fd18[_0x3676('0x40')](_0x3676('0x84'),_0x3676('0x56'));_0x25fd18[_0x3676('0x40')](_0x3676('0x92'),_0x3676('0x93'));_0x25fd18[_0x3676('0x40')](_0x3676('0x94'),_0x3676('0x95'));_0x25fd18[_0x3676('0x40')]('i.*');_0x25fd18['field']('c.firstName','Contact.firstName');_0x25fd18['field'](_0x3676('0x96'),_0x3676('0x97'));_0x25fd18[_0x3676('0x40')]('c.email',_0x3676('0x98'));_0x25fd18[_0x3676('0x40')]('c.phone','Contact.phone');_0x25fd18[_0x3676('0x40')](_0x3676('0x99'),'Contact.mobile');_0x25fd18[_0x3676('0x40')]('c.fax',_0x3676('0x9a'));_0x25fd18[_0x3676('0x40')](_0x3676('0x9b'),'Owner.fullname');_0x25fd18[_0x3676('0x40')](_0x3676('0x9c'),_0x3676('0x9d'));_0x25fd18[_0x3676('0x40')](_0x3676('0x9e'),'TagIds');}if(_0x40d187[_0x3676('0x3b')])_0x25fd18[_0x3676('0x3b')](_0x40d187['limit']);if(_0x40d187[_0x3676('0x1b')])_0x25fd18[_0x3676('0x1b')](_0x40d187[_0x3676('0x1b')]);return db[_0x3676('0x8e')][_0x3676('0x35')](_0x25fd18['toString'](),_0x36a7f1);})['then'](function(_0x3239ee){_0x1cc514[_0x3676('0x3d')](_0x3676('0x9f'),_['map'](_0x3239ee,'id'));return db[_0x3676('0x8e')][_0x3676('0x35')](_0x1cc514[_0x3676('0x8f')](),_0x36a7f1)[_0x3676('0x88')](function(_0x29e7a7){var _0x19b813=_[_0x3676('0xa0')](_0x29e7a7,_0x3676('0xa1'));var _0x3c35a8=[];_0x3239ee[_0x3676('0x29')](function(_0x547c7a){_0x3c35a8[_0x3676('0x2a')](updateOpenchannelInteraction(_0x547c7a,_0x3abe2a,_0x19b813));});return BPromise[_0x3676('0xa2')](_0x3c35a8);});});})[_0x3676('0x88')](function(_0x27ab63){_0x51bb29[_0x3676('0xa3')]=_0x27ab63;return _0x51bb29;})[_0x3676('0x88')](respondWithFilteredResult(_0x2d7d13,_0x40d187));})[_0x3676('0x2b')](handleError(_0x2d7d13,null));};exports[_0x3676('0xa4')]=function(_0x568d68,_0x29c965){var _0x47e6fa={'raw':![],'where':{'id':_0x568d68[_0x3676('0xa5')]['id']}},_0x7178b={};_0x7178b[_0x3676('0x31')]=_[_0x3676('0x32')](db[_0x3676('0x2d')][_0x3676('0xa6')]);_0x7178b[_0x3676('0x35')]=_[_0x3676('0x32')](_0x568d68[_0x3676('0x35')]);_0x7178b[_0x3676('0x33')]=_['intersection'](_0x7178b['model'],_0x7178b[_0x3676('0x35')]);_0x47e6fa['attributes']=_[_0x3676('0x34')](_0x7178b['model'],qs[_0x3676('0x37')](_0x568d68['query']['fields']));_0x47e6fa[_0x3676('0x36')]=_0x47e6fa[_0x3676('0x36')][_0x3676('0x38')]?_0x47e6fa['attributes']:_0x7178b[_0x3676('0x31')];if(_0x568d68[_0x3676('0x35')][_0x3676('0xa7')]){_0x47e6fa[_0x3676('0xa8')]=[{'all':!![]}];}_0x47e6fa=_[_0x3676('0xa9')]({},_0x47e6fa,_0x568d68['options']);return db[_0x3676('0x2d')][_0x3676('0x55')](_0x47e6fa)[_0x3676('0x88')](handleEntityNotFound(_0x29c965,null))[_0x3676('0x88')](respondWithResult(_0x29c965,null))['catch'](handleError(_0x29c965,null));};exports['create']=function(_0x19ab48,_0x532b06){return db['OpenchannelInteraction']['create'](_0x19ab48[_0x3676('0x68')],{})[_0x3676('0x88')](respondWithResult(_0x532b06,0xc9))[_0x3676('0x2b')](handleError(_0x532b06,null));};exports['update']=function(_0xea2750,_0x1b86b9){if(_0xea2750['body']['id']){delete _0xea2750[_0x3676('0x68')]['id'];}return db[_0x3676('0x2d')][_0x3676('0x55')]({'where':{'id':_0xea2750[_0x3676('0xa5')]['id']}})[_0x3676('0x88')](handleEntityNotFound(_0x1b86b9,null))[_0x3676('0x88')](saveUpdates(_0xea2750['body'],null))['then'](respondWithResult(_0x1b86b9,null))[_0x3676('0x2b')](handleError(_0x1b86b9,null));};exports['destroy']=function(_0x1fc92e,_0x1a79f6){return db['OpenchannelInteraction'][_0x3676('0x55')]({'where':{'id':_0x1fc92e[_0x3676('0xa5')]['id']}})[_0x3676('0x88')](handleEntityNotFound(_0x1a79f6,null))[_0x3676('0x88')](removeEntity(_0x1a79f6,null))[_0x3676('0x2b')](handleError(_0x1a79f6,null));};exports[_0x3676('0xaa')]=function(_0x193e62,_0x2765af){return db[_0x3676('0x2d')][_0x3676('0xaa')]()[_0x3676('0x88')](respondWithResult(_0x2765af,null))[_0x3676('0x2b')](handleError(_0x2765af,null));};exports['addMessage']=function(_0x3893ac,_0x37c601,_0x4fabeb){return db[_0x3676('0xab')][_0x3676('0x55')]({'where':{'id':_0x3893ac[_0x3676('0xa5')]['id']}})['then'](handleEntityNotFound(_0x37c601,null))[_0x3676('0x88')](function(_0x42b535){if(_0x42b535){return _0x42b535[_0x3676('0xac')](_0x3893ac[_0x3676('0x68')]['ids'],_['omit'](_0x3893ac[_0x3676('0x68')],[_0x3676('0xad'),'id'])||{});}})[_0x3676('0x88')](respondWithResult(_0x37c601,null))['catch'](handleError(_0x37c601,null));};exports['getMessages']=function(_0x1de74c,_0x3fda70,_0x522611){var _0x20ec97={'raw':![],'where':{}};var _0x3f7f56={};var _0x4e2c6f={'count':0x0,'rows':[]};return db[_0x3676('0x2d')][_0x3676('0xae')]({'where':{'id':_0x1de74c['params']['id']}})[_0x3676('0x88')](handleEntityNotFound(_0x3fda70,null))['then'](function(_0x20d479){if(_0x20d479){_0x3f7f56[_0x3676('0x31')]=_[_0x3676('0x32')](db[_0x3676('0xab')][_0x3676('0xa6')]);_0x3f7f56[_0x3676('0x35')]=_[_0x3676('0x32')](_0x1de74c[_0x3676('0x35')]);_0x3f7f56[_0x3676('0x33')]=_[_0x3676('0x34')](_0x3f7f56['model'],_0x3f7f56[_0x3676('0x35')]);_0x20ec97[_0x3676('0x36')]=_['intersection'](_0x3f7f56[_0x3676('0x31')],qs['fields'](_0x1de74c['query'][_0x3676('0x37')]));_0x20ec97['attributes']=_0x20ec97[_0x3676('0x36')][_0x3676('0x38')]?_0x20ec97['attributes']:_0x3f7f56[_0x3676('0x31')];if(!_0x1de74c[_0x3676('0x35')][_0x3676('0x39')](_0x3676('0x3a'))){_0x20ec97[_0x3676('0x3b')]=qs[_0x3676('0x3b')](_0x1de74c[_0x3676('0x35')]['limit']);_0x20ec97[_0x3676('0x1b')]=qs[_0x3676('0x1b')](_0x1de74c['query']['offset']);}_0x20ec97['order']=qs[_0x3676('0xaf')](_0x1de74c[_0x3676('0x35')][_0x3676('0xaf')]);_0x20ec97[_0x3676('0x3d')]=qs[_0x3676('0x33')](_[_0x3676('0x3e')](_0x1de74c['query'],_0x3f7f56[_0x3676('0x33')]));_0x20ec97[_0x3676('0x3d')][_0x3676('0xa1')]=_0x20d479['id'];if(_0x1de74c[_0x3676('0x35')][_0x3676('0x79')]){_0x20ec97[_0x3676('0x3d')]=_[_0x3676('0xa9')](_0x20ec97[_0x3676('0x3d')],{'$or':_[_0x3676('0x25')](_0x20ec97[_0x3676('0x36')],function(_0x477acf){var _0x245aba={};_0x245aba[_0x477acf]={'$like':'%'+_0x1de74c[_0x3676('0x35')][_0x3676('0x79')]+'%'};return _0x245aba;})});}if(_0x1de74c[_0x3676('0x35')][_0x3676('0x6f')]){var _0x59b2a8=_0x1de74c[_0x3676('0x35')][_0x3676('0x6f')][_0x3676('0x28')](',');var _0x316c34={};_0x316c34[_0x59b2a8[0x0]]={'$gte':moment(_0x59b2a8[0x1])['format'](_0x3676('0xb0'))};_0x20ec97['where']=_['merge'](_0x20ec97[_0x3676('0x3d')],_0x316c34);}_0x20ec97=_['merge']({},_0x20ec97,_0x1de74c[_0x3676('0xb1')]);return db[_0x3676('0xab')][_0x3676('0x90')]({'where':_0x20ec97[_0x3676('0x3d')]})[_0x3676('0x88')](function(_0x4c41ad){_0x4e2c6f[_0x3676('0x90')]=_0x4c41ad;if(_0x1de74c[_0x3676('0x35')][_0x3676('0xa7')]){_0x20ec97[_0x3676('0xa8')]=[{'all':!![]}];}return db[_0x3676('0xab')]['findAll'](_0x20ec97);})[_0x3676('0x88')](function(_0x189c69){_0x4e2c6f[_0x3676('0xa3')]=_0x189c69;return _0x4e2c6f;});}})[_0x3676('0x88')](respondWithFilteredResult(_0x3fda70,_0x20ec97))['catch'](handleError(_0x3fda70,null));};exports[_0x3676('0xb2')]=function(_0x2bd891,_0x15d48d,_0x1f73a2){return db['OpenchannelInteraction'][_0x3676('0x55')]({'where':{'id':_0x2bd891['params']['id']}})[_0x3676('0x88')](handleEntityNotFound(_0x15d48d,null))[_0x3676('0x88')](function(_0x152b37){if(_0x152b37){return _0x152b37[_0x3676('0xb3')](_0x2bd891['body'][_0x3676('0xad')],_['omit'](_0x2bd891[_0x3676('0x68')],['ids','id'])||{})[_0x3676('0xb4')](function(){return db['Tag'][_0x3676('0xb5')]({'attributes':['id',_0x3676('0x23'),_0x3676('0xb6')],'where':{'id':_0x2bd891[_0x3676('0x68')][_0x3676('0xad')]}});})[_0x3676('0x88')](function(_0x9116e4){socket['emit'](_0x3676('0xb7'),{'id':Number(_0x2bd891[_0x3676('0xa5')]['id']),'tags':_0x9116e4||[]});return{'id':Number(_0x2bd891[_0x3676('0xa5')]['id']),'tags':_0x9116e4||[]};});}})[_0x3676('0x88')](respondWithResult(_0x15d48d,null))[_0x3676('0x2b')](handleError(_0x15d48d,null));};exports[_0x3676('0xb8')]=function(_0xe84716,_0x279875,_0x4e8fe6){return db[_0x3676('0x2d')][_0x3676('0x55')]({'where':{'id':_0xe84716[_0x3676('0xa5')]['id']}})[_0x3676('0x88')](handleEntityNotFound(_0x279875,null))[_0x3676('0x88')](function(_0x5a887e){if(_0x5a887e){return _0x5a887e[_0x3676('0xb8')](_0xe84716[_0x3676('0x35')][_0x3676('0xad')]);}})['then'](respondWithStatusCode(_0x279875,null))[_0x3676('0x2b')](handleError(_0x279875,null));};exports[_0x3676('0xb9')]=function(_0x1e85e8,_0xccad7b){var _0x4468f0=moment()[_0x3676('0xba')]()[_0x3676('0x8f')]();var _0x2c7aac=path[_0x3676('0xbb')](config['root'],_0x3676('0xbc'),_0x3676('0xbd'),_0x3676('0xbe'));var _0x1809d9=path[_0x3676('0xbb')](config[_0x3676('0xbf')],_0x3676('0xbc'),_0x3676('0xbd'),_0x3676('0xc0'));var _0x45e76c=path['join'](_0x2c7aac,_0x4468f0);var _0x54567b=util['format'](_0x3676('0xc1'),_0x1e85e8[_0x3676('0xa5')]['id'],_0x4468f0);var _0x2c2dad=path[_0x3676('0xbb')](_0x2c7aac,_0x54567b);var _0x3bead0=[];_0x3bead0[_0x3676('0x2a')]({'model':db[_0x3676('0xc2')],'as':_0x3676('0xc2'),'attributes':['id',_0x3676('0xc3')],'raw':!![]});_0x3bead0[_0x3676('0x2a')]({'model':db[_0x3676('0xc4')],'as':_0x3676('0x5a'),'attributes':['id',_0x3676('0xc5'),_0x3676('0xc6')],'raw':!![]});if(_0x1e85e8[_0x3676('0x35')][_0x3676('0xc0')]){_0x3bead0[_0x3676('0x2a')]({'model':db[_0x3676('0xc7')],'as':_0x3676('0xc7'),'raw':!![]});}var _0x5c98e1=[{'model':db[_0x3676('0xab')],'as':_0x3676('0xc8'),'attributes':['id',_0x3676('0x68'),_0x3676('0x6d'),'direction','secret',_0x3676('0x75')],'include':_0x3bead0}];_0x5c98e1[_0x3676('0x2a')]({'model':db['OpenchannelAccount'],'as':'Account','attributes':['id',_0x3676('0x23')]});_0x5c98e1[_0x3676('0x2a')]({'model':db[_0x3676('0xc2')],'as':'Owner','attributes':['id','fullname']});return db[_0x3676('0x2d')][_0x3676('0x55')]({'where':{'id':_0x1e85e8[_0x3676('0xa5')]['id']},'include':_0x5c98e1})[_0x3676('0x88')](handleEntityNotFound(_0xccad7b,null))['then'](function(_0x4b5ee2){if(_0x4b5ee2){var _0x14e38e=_0x4b5ee2[_0x3676('0xc9')]({'plain':!![]});fs[_0x3676('0xca')](_0x45e76c);var _0x1072b7={'format':'A4','border':'10px','header':{'height':'40px','contents':{'first':_0x3676('0xcb')}},'footer':{'height':_0x3676('0xcc'),'contents':{'default':util[_0x3676('0xcd')]('<hr\x20class=\x22separator\x22/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22footer\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22left\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>%s</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22center\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>{{page}}/{{pages}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22right\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>%s</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>',util['format'](_0x3676('0xce'),_0x3676('0xcf'),_0x14e38e['id']),moment()[_0x3676('0xcd')]('YYYY-MM-DD')['toString']())}}};var _0x460738={'channel':_0x3676('0xcf'),'account':_0x14e38e[_0x3676('0xd0')][_0x3676('0x23')],'agent':_0x14e38e[_0x3676('0xd1')]?_0x14e38e['Owner']['fullname']:_0x3676('0xd2'),'createdAt':moment(_0x14e38e[_0x3676('0x6d')])[_0x3676('0xcd')](_0x3676('0xb0'))[_0x3676('0x8f')](),'closedAt':_0x14e38e[_0x3676('0xd3')]?moment(_0x14e38e['closedAt'])[_0x3676('0xcd')](_0x3676('0xb0'))[_0x3676('0x8f')]():'','disposition':_0x14e38e[_0x3676('0xd4')],'visibility':_0x14e38e[_0x3676('0xd5')]?_0x3676('0xd6'):_0x3676('0xd7'),'messages':_(_0x14e38e[_0x3676('0xc8')])[_0x3676('0x79')]({'secret':![]})['map'](function(_0x104686){if(_0x104686[_0x3676('0xc7')]){var _0xe13be9=path[_0x3676('0xbb')](_0x1809d9,_0x104686[_0x3676('0xc7')]['basename']);if(fs[_0x3676('0xd8')](_0xe13be9)){fs[_0x3676('0xd9')](_0xe13be9)['pipe'](fs[_0x3676('0xda')](path[_0x3676('0xbb')](_0x45e76c,_0x104686[_0x3676('0xc7')]['basename'])));}}return{'date':moment(_0x104686[_0x3676('0x6d')])[_0x3676('0xcd')](_0x3676('0xb0'))[_0x3676('0x8f')](),'sender':_0x104686[_0x3676('0xdb')]==='out'?_0x104686['User']?_0x104686[_0x3676('0xc2')][_0x3676('0xc3')]:_0x3676('0xdc'):_0x104686[_0x3676('0x5a')]['firstName']+(_0x104686[_0x3676('0x5a')][_0x3676('0xc6')]?'\x20'+_0x104686[_0x3676('0x5a')][_0x3676('0xc6')]:''),'body':_0x104686[_0x3676('0xc7')]?_0x104686[_0x3676('0xc7')][_0x3676('0xdd')]:_0x104686[_0x3676('0x68')],'direction':_0x104686['direction']===_0x3676('0xde')?'A':'C','secret':_0x104686[_0x3676('0xdf')],'read':_0x104686[_0x3676('0x75')],'attachment':_0x104686[_0x3676('0xc7')]};})[_0x3676('0x57')]()};return ejs[_0x3676('0xe0')](path['join'](config[_0x3676('0xbf')],_0x3676('0xbc'),_0x3676('0xe1'),_0x3676('0xe2')),{'interaction':_0x460738})[_0x3676('0x88')](function(_0x41f688){return new BPromise(function(_0x29d2eb,_0xbd945){pdf[_0x3676('0xe3')](_0x41f688,_0x1072b7)['toFile'](path[_0x3676('0xbb')](_0x45e76c,_0x3676('0xe4')+_0x14e38e['id']+'-'+_0x4468f0+'.pdf'),function(_0x2a3876,_0x749762){if(_0x2a3876)return _0xbd945(_0x2a3876);_0x29d2eb(_0x749762);});});})[_0x3676('0x88')](function(){return new BPromise(function(_0x13413a,_0x28969e){zipdir(_0x45e76c,{'saveTo':_0x2c2dad},function(_0x2ab017,_0xd88c7e){if(_0x2ab017)return _0x28969e(_0x2ab017);return _0x13413a(_0xd88c7e);});})['then'](function(){return new BPromise(function(_0x54189f,_0x4614b7){rimraf(_0x45e76c,function(_0x2ca366){if(_0x2ca366)_0x4614b7(_0x2ca366);return _0x54189f();});});})[_0x3676('0x88')](function(){return _0xccad7b[_0x3676('0xb9')](_0x2c2dad,_0x54567b,function(_0x2ed6a5){if(_0x2ed6a5){console[_0x3676('0xe5')]('err',_0x2ed6a5);}else{fs['unlinkSync'](_0x2c2dad);}});});});}else{return _0xccad7b[_0x3676('0x17')](0xc8);}})['catch'](handleError(_0xccad7b,null));};