Built motion from commit 25580385.|2.6.2
[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 _0x28fa=['i.OpenchannelAccountId\x20IS\x20NULL','agent','toString','sequelize','keyBy','merge','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','a.key','Account.mandatoryDisposition','CASE\x20WHEN\x20i.from\x20IS\x20NOT\x20NULL\x20AND\x20i.from\x20<>\x20\x27\x27\x20THEN\x20i.from\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','c.lastName','Contact.lastName','c.email','c.phone','Contact.phone','Contact.mobile','Contact.fax','o.fullname','Owner.fullname','o.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.OpenchannelInteractionId\x20IN\x20?','groupBy','OpenchannelInteractionId','all','rows','show','params','includeAll','create','describe','addMessage','OpenchannelMessage','ids','omit','getMessages','findOne','rawAttributes','format','YYYY-MM-DD\x20HH:mm:ss','options','include','findAll','addTags','setTags','spread','emit','removeTags','download','unix','root','server','files','tmp','join','attachments','CmContact','firstName','lastName','Messages','direction','secret','OpenchannelAccount','Account','Owner','get','Openchannel','N.A.','closedAt','disposition','threadId','Private','basename','existsSync','createWriteStream','Attachment','System','Contact','downloadInteraction.ejs','.pdf','log','err','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','redis','defaults','./openchannelInteraction.socket','register','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','sendStatus','name','send','Users','fullname','TagIds','Tags','split','push','catch','waiting','talking','answered','unmanaged','UserId','closed','OpenchannelInteraction','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','select','field','color','tools_tags','u.id','u.fullname','ui.OpenchannelInteractionId','from','user_has_openchannel_interactions','left_join','users','u.id\x20=\x20ui.UserId','openchannel_interactions','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','openchannel_accounts','a.id\x20=\x20i.OpenchannelAccountId','openchannel_messages','me.OpenchannelInteractionId\x20=\x20i.id','openchannel_interaction_has_tags','it.OpenchannelInteractionId\x20=\x20i.id','expr','search','sqlOperator','conditions','length','find','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','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','Tag','forEach','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','start','body','some','isEmpty','where','i.OpenchannelAccountId\x20IN\x20?','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','tag','isArray','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','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','i.id','Sequelize','QueryTypes','SELECT','clone','contactName','DESC','resolve','OpenchannelAccountId','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','user','getOpenchannelAccounts'];(function(_0x346426,_0x2b24d6){var _0x5e89d3=function(_0x5dcefc){while(--_0x5dcefc){_0x346426['push'](_0x346426['shift']());}};_0x5e89d3(++_0x2b24d6);}(_0x28fa,0x14b));var _0xa28f=function(_0x1bcf0e,_0x4b3201){_0x1bcf0e=_0x1bcf0e-0x0;var _0x1612bd=_0x28fa[_0x1bcf0e];return _0x1612bd;};'use strict';var emlformat=require(_0xa28f('0x0'));var rimraf=require(_0xa28f('0x1'));var zipdir=require(_0xa28f('0x2'));var jsonpatch=require(_0xa28f('0x3'));var rp=require(_0xa28f('0x4'));var moment=require(_0xa28f('0x5'));var BPromise=require(_0xa28f('0x6'));var Mustache=require(_0xa28f('0x7'));var util=require(_0xa28f('0x8'));var path=require(_0xa28f('0x9'));var sox=require(_0xa28f('0xa'));var csv=require(_0xa28f('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xa28f('0xc'));var _=require(_0xa28f('0xd'));var squel=require('squel');var crypto=require(_0xa28f('0xe'));var jsforce=require(_0xa28f('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xa28f('0xb'));var querystring=require(_0xa28f('0x10'));var Papa=require('papaparse');var Redis=require(_0xa28f('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xa28f('0x12'));var as=require(_0xa28f('0x13'));var pdf=require(_0xa28f('0x14'));var hardwareService=require(_0xa28f('0x15'));var logger=require(_0xa28f('0x16'))(_0xa28f('0x17'));var utils=require(_0xa28f('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0xa28f('0x19'));var db=require('../../mysqldb')['db'];config[_0xa28f('0x1a')]=_[_0xa28f('0x1b')](config[_0xa28f('0x1a')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xa28f('0x1a')]));require(_0xa28f('0x1c'))[_0xa28f('0x1d')](socket);function respondWithStatusCode(_0x1ba00d,_0x2eab41){_0x2eab41=_0x2eab41||0xcc;return function(_0x2b03e5){if(_0x2b03e5){return _0x1ba00d['sendStatus'](_0x2eab41);}return _0x1ba00d[_0xa28f('0x1e')](_0x2eab41)[_0xa28f('0x1f')]();};}function respondWithResult(_0x2afb27,_0xf0af97){_0xf0af97=_0xf0af97||0xc8;return function(_0x53a025){if(_0x53a025){return _0x2afb27[_0xa28f('0x1e')](_0xf0af97)[_0xa28f('0x20')](_0x53a025);}};}function respondWithFilteredResult(_0x27871f,_0xf4ed10){return function(_0xf322aa){if(_0xf322aa){var _0x24d563=typeof _0xf4ed10['offset']===_0xa28f('0x21')&&typeof _0xf4ed10[_0xa28f('0x22')]===_0xa28f('0x21');var _0x53feaa=_0xf322aa[_0xa28f('0x23')];var _0x46f22b=_0x24d563?0x0:_0xf4ed10[_0xa28f('0x24')];var _0x991501=_0x24d563?_0xf322aa[_0xa28f('0x23')]:_0xf4ed10[_0xa28f('0x24')]+_0xf4ed10[_0xa28f('0x22')];var _0x17a852;if(_0x991501>=_0x53feaa){_0x991501=_0x53feaa;_0x17a852=0xc8;}else{_0x17a852=0xce;}_0x27871f['status'](_0x17a852);return _0x27871f[_0xa28f('0x25')](_0xa28f('0x26'),_0x46f22b+'-'+_0x991501+'/'+_0x53feaa)[_0xa28f('0x20')](_0xf322aa);}return null;};}function patchUpdates(_0x22e1ae){return function(_0x157021){try{jsonpatch[_0xa28f('0x27')](_0x157021,_0x22e1ae,!![]);}catch(_0x2821fd){return BPromise[_0xa28f('0x28')](_0x2821fd);}return _0x157021[_0xa28f('0x29')]();};}function saveUpdates(_0x263f81,_0x3474a8){return function(_0x383e07){if(_0x383e07){return _0x383e07[_0xa28f('0x2a')](_0x263f81)[_0xa28f('0x2b')](function(_0x54d1af){return _0x54d1af;});}return null;};}function removeEntity(_0x495580,_0x3b6930){return function(_0x15699a){if(_0x15699a){return _0x15699a[_0xa28f('0x2c')]()['then'](function(){_0x495580['status'](0xcc)[_0xa28f('0x1f')]();});}};}function handleEntityNotFound(_0xa8983d,_0x1f411d){return function(_0x11307a){if(!_0x11307a){_0xa8983d[_0xa28f('0x2d')](0x194);}return _0x11307a;};}function handleError(_0x5a27cd,_0x56d101){_0x56d101=_0x56d101||0x1f4;return function(_0x5da6f4){logger['error'](_0x5da6f4['stack']);if(_0x5da6f4[_0xa28f('0x2e')]){delete _0x5da6f4['name'];}_0x5a27cd[_0xa28f('0x1e')](_0x56d101)[_0xa28f('0x2f')](_0x5da6f4);};}function getInteractionUsers(_0x3d8a1a,_0x1012c2){return new BPromise(function(_0x1b556a,_0x2fed4a){try{if(_0x1012c2[_0x3d8a1a['id']]){_0x3d8a1a[_0xa28f('0x30')]=_['map'](_0x1012c2[_0x3d8a1a['id']],function(_0x71f163){return{'id':_0x71f163['id'],'fullname':_0x71f163[_0xa28f('0x31')]};});}}catch(_0x5d2861){_0x2fed4a(_0x5d2861);}_0x1b556a(_0x3d8a1a);});}function getInteractionTags(_0x2170ce,_0x192a42){return new BPromise(function(_0x140533,_0x47d129){try{if(_0x2170ce[_0xa28f('0x32')]){_0x2170ce[_0xa28f('0x33')]=[];_0x2170ce[_0xa28f('0x32')][_0xa28f('0x34')](',')['forEach'](function(_0x25d72a){_0x2170ce[_0xa28f('0x33')][_0xa28f('0x35')](_0x192a42[_0x25d72a]);});}delete _0x2170ce[_0xa28f('0x32')];}catch(_0x21b473){_0x47d129(_0x21b473);}_0x140533(_0x2170ce);});}function updateOpenchannelInteraction(_0x4a4dfa,_0x369d1d,_0x3c5e34){return new BPromise(function(_0x2165c9,_0x1a9f91){return getInteractionUsers(_0x4a4dfa,_0x3c5e34)[_0xa28f('0x2b')](function(_0x3e82e7){return getInteractionTags(_0x3e82e7,_0x369d1d);})[_0xa28f('0x2b')](function(_0x1c8029){return getStateInteraction(_0x1c8029);})[_0xa28f('0x2b')](function(_0x3d665e){_0x2165c9(_0x3d665e);})[_0xa28f('0x36')](function(_0x213d63){_0x1a9f91(_0x213d63);});});}function getStateInteraction(_0x386bb7){return new BPromise(function(_0x36b4c6){_0x386bb7[_0xa28f('0x37')]=0x0;_0x386bb7[_0xa28f('0x38')]=0x0;_0x386bb7[_0xa28f('0x39')]=0x0;_0x386bb7[_0xa28f('0x3a')]=0x0;_0x386bb7['total']=0x0;if(!_0x386bb7['closed']&&!_0x386bb7[_0xa28f('0x3b')]){_0x386bb7[_0xa28f('0x37')]+=0x1;}if(!_0x386bb7[_0xa28f('0x3c')]&&_0x386bb7[_0xa28f('0x3b')]){_0x386bb7[_0xa28f('0x38')]+=0x1;if(_0x386bb7[_0xa28f('0x37')]){_0x386bb7[_0xa28f('0x37')]-=0x1;}}if(_0x386bb7[_0xa28f('0x3c')]&&_0x386bb7['UserId']){_0x386bb7[_0xa28f('0x39')]+=0x1;if(_0x386bb7[_0xa28f('0x38')]){_0x386bb7[_0xa28f('0x38')]-=0x1;}}if(_0x386bb7[_0xa28f('0x3c')]&&!_0x386bb7['UserId']){_0x386bb7['unmanaged']+=0x1;if(_0x386bb7[_0xa28f('0x37')]){_0x386bb7[_0xa28f('0x37')]-=0x1;}}_0x386bb7['total']+=0x1;_0x36b4c6(_0x386bb7);});}exports['index']=function(_0x454332,_0x10e9d7){var _0x3dbf84={},_0x18fcad={},_0x5ce462={'count':0x0,'rows':[]};var _0x2271e6=_['map'](db[_0xa28f('0x3d')]['rawAttributes'],function(_0x4b6a9a){return{'name':_0x4b6a9a[_0xa28f('0x3e')],'type':_0x4b6a9a[_0xa28f('0x3f')][_0xa28f('0x40')]};});_0x18fcad[_0xa28f('0x41')]=_[_0xa28f('0x42')](_0x2271e6,'name');_0x18fcad[_0xa28f('0x43')]=_[_0xa28f('0x44')](_0x454332[_0xa28f('0x43')]);_0x18fcad[_0xa28f('0x45')]=_[_0xa28f('0x46')](_0x18fcad['model'],_0x18fcad[_0xa28f('0x43')]);_0x3dbf84[_0xa28f('0x47')]=_[_0xa28f('0x46')](_0x18fcad['model'],qs[_0xa28f('0x48')](_0x454332['query']['fields']));_0x3dbf84['attributes']=_0x3dbf84[_0xa28f('0x47')]['length']?_0x3dbf84['attributes']:_0x18fcad[_0xa28f('0x41')];if(!_0x454332['query'][_0xa28f('0x49')](_0xa28f('0x4a'))){_0x3dbf84[_0xa28f('0x22')]=qs['limit'](_0x454332[_0xa28f('0x43')][_0xa28f('0x22')]);_0x3dbf84[_0xa28f('0x24')]=qs['offset'](_0x454332[_0xa28f('0x43')][_0xa28f('0x24')]);}_0x3dbf84[_0xa28f('0x4b')]=qs[_0xa28f('0x4c')](_0x454332[_0xa28f('0x43')][_0xa28f('0x4c')]);_0x3dbf84['where']=qs[_0xa28f('0x45')](_[_0xa28f('0x4d')](_0x454332[_0xa28f('0x43')],_0x18fcad['filters']),_0x2271e6);var _0x4147db=[];var _0x49d338=squel[_0xa28f('0x4e')]()[_0xa28f('0x4f')]('id')[_0xa28f('0x4f')](_0xa28f('0x2e'))[_0xa28f('0x4f')](_0xa28f('0x50'))['from'](_0xa28f('0x51'));var _0x258c60=squel['select']()[_0xa28f('0x4f')](_0xa28f('0x52'))[_0xa28f('0x4f')](_0xa28f('0x53'))[_0xa28f('0x4f')](_0xa28f('0x54'))[_0xa28f('0x55')](_0xa28f('0x56'),'ui')[_0xa28f('0x57')](_0xa28f('0x58'),'u',_0xa28f('0x59'));var _0x1a5b75=squel['select']()[_0xa28f('0x55')](_0xa28f('0x5a'),'i')['left_join']('cm_contacts','c',_0xa28f('0x5b'))[_0xa28f('0x57')](_0xa28f('0x58'),'o',_0xa28f('0x5c'))[_0xa28f('0x57')](_0xa28f('0x5d'),'a',_0xa28f('0x5e'))[_0xa28f('0x57')](_0xa28f('0x5f'),'me',_0xa28f('0x60'))[_0xa28f('0x57')](_0xa28f('0x61'),'it',_0xa28f('0x62'))[_0xa28f('0x57')](_0xa28f('0x51'),'t','t.id\x20=\x20it.TagId');var _0x3256af=squel[_0xa28f('0x63')]();var _0x2ae711=[];var _0x35356b=squel['expr']();var _0x53e068;if(_0x454332[_0xa28f('0x43')][_0xa28f('0x64')]){_0x53e068=as['parseSearch'](_0x454332[_0xa28f('0x43')][_0xa28f('0x64')]);var _0x105b84=_0x53e068[_0xa28f('0x65')];for(var _0x27b2ab=0x0;_0x27b2ab<_0x53e068[_0xa28f('0x66')][_0xa28f('0x67')];_0x27b2ab++){var _0x1d5e10=_0x53e068[_0xa28f('0x66')][_0x27b2ab];var _0x12a41e='i';var _0x38fbf8=_[_0xa28f('0x68')](_0x2271e6,[_0xa28f('0x2e'),_0x1d5e10[_0xa28f('0x4f')]]);if(!_0x38fbf8){switch(_0x1d5e10[_0xa28f('0x4f')]){case _0xa28f('0x69'):if(_0x1d5e10[_0xa28f('0x6a')]==0x1){_0x1a5b75[_0xa28f('0x6b')]('`'+_0x1d5e10[_0xa28f('0x4f')]+_0xa28f('0x6c'));}else{_0x1a5b75['having']('`'+_0x1d5e10['field']+_0xa28f('0x6d'));}break;case'Contact':if(_0x1d5e10[_0xa28f('0x6e')]===_0xa28f('0x6f')){if(_0x1d5e10[_0xa28f('0x6a')][_0xa28f('0x34')]('\x20')[_0xa28f('0x67')]>0x1){_0x3256af[_0x105b84](_0xa28f('0x70'),qs[_0xa28f('0x71')](_0x1d5e10[_0xa28f('0x6a')]),null);}else{var _0x540985='%'+_0x1d5e10[_0xa28f('0x6a')]+'%';_0x3256af[_0x105b84](_0xa28f('0x72'),_0x540985,_0x540985,_0x540985);}}else{_0x38fbf8=_[_0xa28f('0x68')](_0x2271e6,[_0xa28f('0x2e'),_0xa28f('0x73')]);_0x1d5e10[_0xa28f('0x4f')]=_0xa28f('0x73');_0x2f78ba=as[_0xa28f('0x74')](_0x12a41e,_0x38fbf8['type'],_0x1d5e10);_0x3256af[_0x105b84](_0x2f78ba[_0xa28f('0x75')],_0x2f78ba['value']['start'],_0x2f78ba['value']['end']);}break;case _0xa28f('0x76'):var _0x4ad7cf=_0x1d5e10[_0xa28f('0x6a')][_0xa28f('0x34')](',')[_0xa28f('0x42')](function(_0x45501b){return Number(_0x45501b);});_0x4ad7cf[_0xa28f('0x77')](function(_0x5f0607){_0x35356b['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x5f0607+',%');});_0x2ae711=_[_0xa28f('0x78')](_0x2ae711,_0x4ad7cf);break;case _0xa28f('0x79'):if(_0x1d5e10[_0xa28f('0x6e')]==='$substring'){_0x3256af[_0x105b84](_0xa28f('0x7a'),'%'+_0x1d5e10[_0xa28f('0x6a')]+'%',null);}else{_0x38fbf8=_[_0xa28f('0x68')](_0x2271e6,['name',_0xa28f('0x3b')]);_0x1d5e10[_0xa28f('0x4f')]=_0xa28f('0x3b');_0x2f78ba=as[_0xa28f('0x74')](_0x12a41e,_0x38fbf8['type'],_0x1d5e10);_0x3256af[_0x105b84](_0x2f78ba[_0xa28f('0x75')],_0x2f78ba['value'][_0xa28f('0x7b')],_0x2f78ba[_0xa28f('0x6a')][_0xa28f('0x1f')]);}break;case _0xa28f('0x7c'):_0x2f78ba=as[_0xa28f('0x74')]('me',null,_0x1d5e10);_0x3256af[_0x105b84](_0x2f78ba[_0xa28f('0x75')],_0x2f78ba[_0xa28f('0x6a')][_0xa28f('0x7b')],_0x2f78ba[_0xa28f('0x6a')][_0xa28f('0x1f')]);break;}}else{var _0x2f78ba=as[_0xa28f('0x74')](_0x12a41e,_0x38fbf8[_0xa28f('0x3f')],_0x1d5e10);_0x3256af[_0x105b84](_0x2f78ba[_0xa28f('0x75')],_0x2f78ba[_0xa28f('0x6a')][_0xa28f('0x7b')],_0x2f78ba[_0xa28f('0x6a')][_0xa28f('0x1f')]);}}}else{var _0x59a709=_(_0x454332[_0xa28f('0x43')])[_0xa28f('0x44')]()[_0xa28f('0x42')](function(_0x14941b){return _[_0xa28f('0x7d')](_0x2271e6,[_0xa28f('0x2e'),_0x14941b])?_0x14941b:undefined;})['compact']()['value']();if(!_[_0xa28f('0x7e')](_0x59a709)){_0x59a709['forEach'](function(_0x4456ab){if(_0x4456ab==='OpenchannelAccountId'){_0x1a5b75[_0xa28f('0x7f')](_0xa28f('0x80'),[]['concat'](_0x454332[_0xa28f('0x43')][_0x4456ab]));}else if(_0x4456ab===_0xa28f('0x81')){var _0x15daf2=JSON[_0xa28f('0x82')](_0x454332[_0xa28f('0x43')][_0x4456ab])[_0xa28f('0x83')];var _0x3b9803=JSON[_0xa28f('0x82')](_0x454332[_0xa28f('0x43')][_0x4456ab])[_0xa28f('0x84')];_0x1a5b75[_0xa28f('0x7f')](_0xa28f('0x85'),_0x15daf2,_0x3b9803);}else{if(_0x454332[_0xa28f('0x43')][_0x4456ab]===_0xa28f('0x86')){_0x1a5b75[_0xa28f('0x7f')]('i.'+_0x4456ab+_0xa28f('0x87'));}else{_0x1a5b75[_0xa28f('0x7f')]('i.'+_0x4456ab+_0xa28f('0x88'),_0x454332[_0xa28f('0x43')][_0x4456ab]);}}});}if(_0x454332[_0xa28f('0x43')][_0xa28f('0x89')]){if(_0x454332['query'][_0xa28f('0x89')]==0x1){_0x1a5b75[_0xa28f('0x6b')]('`unreadMessages`\x20=\x200');}else{_0x1a5b75[_0xa28f('0x6b')]('`unreadMessages`\x20>\x200');}}if(_0x454332['query'][_0xa28f('0x8a')]){_0x2ae711=_[_0xa28f('0x8b')](_0x454332[_0xa28f('0x43')][_0xa28f('0x8a')])?_0x454332[_0xa28f('0x43')][_0xa28f('0x8a')]:new Array(_0x454332[_0xa28f('0x43')][_0xa28f('0x8a')]);_0x2ae711['forEach'](function(_0xa9c658){_0x35356b['or'](_0xa28f('0x8c'),'%,'+_0xa9c658+',%');});}if(_0x454332[_0xa28f('0x43')][_0xa28f('0x8d')]){var _0x564e1f=_0x454332[_0xa28f('0x43')]['filter'][_0xa28f('0x8e')]('\x5c','\x5c\x5c')[_0xa28f('0x8e')](/'/g,'\x27\x27');if(qs[_0xa28f('0x8f')](_0x564e1f)){_0x3256af['or'](_0xa28f('0x90'),_0x564e1f+'%');}else{_0x3256af['or'](_0xa28f('0x91'),qs['getFullTextValue'](_0x564e1f))['or'](_0xa28f('0x92'),_0x564e1f+'%')['or'](_0xa28f('0x93'),_0x564e1f+'%');}}}_0x1a5b75[_0xa28f('0x7f')](_0x3256af);_0x1a5b75[_0xa28f('0x94')](_0xa28f('0x95'));var _0x4ad9cb={'type':db[_0xa28f('0x96')][_0xa28f('0x97')][_0xa28f('0x98')],'raw':!![]};var _0x490378=_0x1a5b75[_0xa28f('0x99')]();_0x490378['field']('i.id');_0x490378[_0xa28f('0x4f')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','unreadMessages');if(_0x3dbf84[_0xa28f('0x4b')]){_0x3dbf84[_0xa28f('0x4b')][_0xa28f('0x77')](function(_0x4b7575){var _0x1bea02=_0x4b7575[0x0]===_0xa28f('0x9a')?_0x4b7575[0x0]:'i.'+_0x4b7575[0x0];_0x1a5b75[_0xa28f('0x4b')](_0x1bea02,_0x4b7575[0x1]===_0xa28f('0x9b')?![]:!![]);});}if(!_['isEmpty'](_0x2ae711)){_0x1a5b75[_0xa28f('0x6b')](_0x35356b);_0x490378[_0xa28f('0x7f')]('t.id\x20IN\x20?',_0x2ae711);}BPromise[_0xa28f('0x9c')]()[_0xa28f('0x2b')](function(){if(!_0x53e068){if(_0x454332[_0xa28f('0x43')][_0xa28f('0x9d')])return;_0x490378['where'](_0xa28f('0x9e'));_0x1a5b75[_0xa28f('0x7f')]('i.OpenchannelAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x454332[_0xa28f('0x9f')]['role']!=='agent')return;return _0x454332[_0xa28f('0x9f')][_0xa28f('0xa0')]({'attributes':['id'],'raw':!![]})[_0xa28f('0x2b')](function(_0x96925b){if(_['isEmpty'](_0x96925b)){_0x490378['where'](_0xa28f('0xa1'));_0x1a5b75[_0xa28f('0x7f')](_0xa28f('0xa1'));}else{_0x490378[_0xa28f('0x7f')](_0xa28f('0x80'),_[_0xa28f('0x42')](_0x96925b,'id'));_0x1a5b75[_0xa28f('0x7f')](_0xa28f('0x80'),_[_0xa28f('0x42')](_0x96925b,'id'));}});})['then'](function(){if(_0x454332[_0xa28f('0x9f')]['role']===_0xa28f('0xa2')&&!_0x53e068&&!_0x454332[_0xa28f('0x43')]['OpenchannelAccountId'])return[];return db['sequelize'][_0xa28f('0x43')](_0x490378[_0xa28f('0xa3')](),_0x4ad9cb);})[_0xa28f('0x2b')](function(_0x38f5e2){_0x5ce462['count']=_0x38f5e2['length'];if(_0x5ce462['count']===0x0)return[];return db[_0xa28f('0xa4')][_0xa28f('0x43')](_0x49d338['toString'](),_0x4ad9cb)[_0xa28f('0x2b')](function(_0x266cb6){_0x4147db=_[_0xa28f('0xa5')](_0x266cb6,'id');_0x4ad9cb=_[_0xa28f('0xa6')](_0x4ad9cb,{'model':db[_0xa28f('0x3d')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x454332['query']['fields']){_0x3dbf84[_0xa28f('0x47')][_0xa28f('0x77')](function(_0x50b441){_0x1a5b75['field']('i.'+_0x50b441);});}else{_0x1a5b75[_0xa28f('0x4f')](_0xa28f('0xa7'),_0xa28f('0x69'));_0x1a5b75['field'](_0xa28f('0xa8'),'Account.key');_0x1a5b75[_0xa28f('0x4f')]('a.mandatoryDisposition',_0xa28f('0xa9'));_0x1a5b75[_0xa28f('0x4f')](_0xa28f('0xaa'),_0xa28f('0x9a'));_0x1a5b75[_0xa28f('0x4f')](_0xa28f('0xab'));_0x1a5b75[_0xa28f('0x4f')](_0xa28f('0xac'),'Contact.firstName');_0x1a5b75['field'](_0xa28f('0xad'),_0xa28f('0xae'));_0x1a5b75['field'](_0xa28f('0xaf'),'Contact.email');_0x1a5b75[_0xa28f('0x4f')](_0xa28f('0xb0'),_0xa28f('0xb1'));_0x1a5b75[_0xa28f('0x4f')]('c.mobile',_0xa28f('0xb2'));_0x1a5b75[_0xa28f('0x4f')]('c.fax',_0xa28f('0xb3'));_0x1a5b75[_0xa28f('0x4f')](_0xa28f('0xb4'),_0xa28f('0xb5'));_0x1a5b75[_0xa28f('0x4f')](_0xa28f('0xb6'),'Owner.internal');_0x1a5b75['field'](_0xa28f('0xb7'),_0xa28f('0x32'));}if(_0x3dbf84[_0xa28f('0x22')])_0x1a5b75[_0xa28f('0x22')](_0x3dbf84[_0xa28f('0x22')]);if(_0x3dbf84[_0xa28f('0x24')])_0x1a5b75[_0xa28f('0x24')](_0x3dbf84[_0xa28f('0x24')]);return db['sequelize'][_0xa28f('0x43')](_0x1a5b75['toString'](),_0x4ad9cb);})['then'](function(_0x255527){if(_0x255527[_0xa28f('0x67')]>0x0)_0x258c60['where'](_0xa28f('0xb8'),_[_0xa28f('0x42')](_0x255527,'id'));return db[_0xa28f('0xa4')][_0xa28f('0x43')](_0x258c60[_0xa28f('0xa3')](),_0x4ad9cb)[_0xa28f('0x2b')](function(_0x3db24e){var _0x101aea=_[_0xa28f('0xb9')](_0x3db24e,_0xa28f('0xba'));var _0x3200b2=[];_0x255527[_0xa28f('0x77')](function(_0x2ac9cb){_0x3200b2[_0xa28f('0x35')](updateOpenchannelInteraction(_0x2ac9cb,_0x4147db,_0x101aea));});return BPromise[_0xa28f('0xbb')](_0x3200b2);});});})[_0xa28f('0x2b')](function(_0x56675c){_0x5ce462[_0xa28f('0xbc')]=_0x56675c;return _0x5ce462;})[_0xa28f('0x2b')](respondWithFilteredResult(_0x10e9d7,_0x3dbf84))[_0xa28f('0x36')](handleError(_0x10e9d7,null));};exports[_0xa28f('0xbd')]=function(_0x223fa4,_0x140d60){var _0x1d8799={};if(_0x223fa4[_0xa28f('0x43')][_0xa28f('0x3f')]&&_0x223fa4['query']['type']===_0xa28f('0x55')){_0x1d8799[_0xa28f('0x55')]=_0x223fa4[_0xa28f('0xbe')]['id'];}else{_0x1d8799['id']=_0x223fa4[_0xa28f('0xbe')]['id'];}var _0x21da53={'raw':![],'where':_0x1d8799},_0x106c5e={};_0x106c5e[_0xa28f('0x41')]=_['keys'](db[_0xa28f('0x3d')]['rawAttributes']);_0x106c5e[_0xa28f('0x43')]=_['keys'](_0x223fa4['query']);_0x106c5e['filters']=_['intersection'](_0x106c5e[_0xa28f('0x41')],_0x106c5e['query']);_0x21da53['attributes']=_[_0xa28f('0x46')](_0x106c5e['model'],qs[_0xa28f('0x48')](_0x223fa4[_0xa28f('0x43')][_0xa28f('0x48')]));_0x21da53[_0xa28f('0x47')]=_0x21da53[_0xa28f('0x47')][_0xa28f('0x67')]?_0x21da53[_0xa28f('0x47')]:_0x106c5e['model'];if(_0x223fa4['query'][_0xa28f('0xbf')]){_0x21da53['include']=[{'all':!![]}];}_0x21da53=_[_0xa28f('0xa6')]({},_0x21da53,_0x223fa4['options']);return db[_0xa28f('0x3d')][_0xa28f('0x68')](_0x21da53)[_0xa28f('0x2b')](handleEntityNotFound(_0x140d60,null))[_0xa28f('0x2b')](respondWithResult(_0x140d60,null))[_0xa28f('0x36')](handleError(_0x140d60,null));};exports[_0xa28f('0xc0')]=function(_0x74abc5,_0x425713){return db[_0xa28f('0x3d')][_0xa28f('0xc0')](_0x74abc5['body'],{})['then'](respondWithResult(_0x425713,0xc9))['catch'](handleError(_0x425713,null));};exports['update']=function(_0x44631f,_0x1ea559){if(_0x44631f['body']['id']){delete _0x44631f[_0xa28f('0x7c')]['id'];}return db[_0xa28f('0x3d')][_0xa28f('0x68')]({'where':{'id':_0x44631f[_0xa28f('0xbe')]['id']}})[_0xa28f('0x2b')](handleEntityNotFound(_0x1ea559,null))['then'](saveUpdates(_0x44631f[_0xa28f('0x7c')],null))[_0xa28f('0x2b')](respondWithResult(_0x1ea559,null))[_0xa28f('0x36')](handleError(_0x1ea559,null));};exports['destroy']=function(_0x4f3efa,_0xf9bd25){return db[_0xa28f('0x3d')]['find']({'where':{'id':_0x4f3efa[_0xa28f('0xbe')]['id']}})[_0xa28f('0x2b')](handleEntityNotFound(_0xf9bd25,null))[_0xa28f('0x2b')](removeEntity(_0xf9bd25,null))['catch'](handleError(_0xf9bd25,null));};exports['describe']=function(_0x131060,_0x4c8689){return db[_0xa28f('0x3d')][_0xa28f('0xc1')]()['then'](respondWithResult(_0x4c8689,null))[_0xa28f('0x36')](handleError(_0x4c8689,null));};exports[_0xa28f('0xc2')]=function(_0x411b45,_0x459c2a,_0x36b864){return db[_0xa28f('0xc3')][_0xa28f('0x68')]({'where':{'id':_0x411b45[_0xa28f('0xbe')]['id']}})[_0xa28f('0x2b')](handleEntityNotFound(_0x459c2a,null))['then'](function(_0x41c8ef){if(_0x41c8ef){return _0x41c8ef[_0xa28f('0xc2')](_0x411b45[_0xa28f('0x7c')][_0xa28f('0xc4')],_[_0xa28f('0xc5')](_0x411b45[_0xa28f('0x7c')],[_0xa28f('0xc4'),'id'])||{});}})[_0xa28f('0x2b')](respondWithResult(_0x459c2a,null))[_0xa28f('0x36')](handleError(_0x459c2a,null));};exports[_0xa28f('0xc6')]=function(_0x54a9e3,_0x404d3c,_0x5a7104){var _0x2a3448={'raw':![],'where':{}};var _0x440ece={};var _0x1f0f9a={'count':0x0,'rows':[]};return db[_0xa28f('0x3d')][_0xa28f('0xc7')]({'where':{'id':_0x54a9e3['params']['id']}})['then'](handleEntityNotFound(_0x404d3c,null))['then'](function(_0x5c182e){if(_0x5c182e){_0x440ece[_0xa28f('0x41')]=_[_0xa28f('0x44')](db[_0xa28f('0xc3')][_0xa28f('0xc8')]);_0x440ece['query']=_[_0xa28f('0x44')](_0x54a9e3[_0xa28f('0x43')]);_0x440ece['filters']=_[_0xa28f('0x46')](_0x440ece[_0xa28f('0x41')],_0x440ece[_0xa28f('0x43')]);_0x2a3448[_0xa28f('0x47')]=_[_0xa28f('0x46')](_0x440ece[_0xa28f('0x41')],qs[_0xa28f('0x48')](_0x54a9e3[_0xa28f('0x43')][_0xa28f('0x48')]));_0x2a3448[_0xa28f('0x47')]=_0x2a3448[_0xa28f('0x47')]['length']?_0x2a3448[_0xa28f('0x47')]:_0x440ece['model'];if(!_0x54a9e3[_0xa28f('0x43')][_0xa28f('0x49')](_0xa28f('0x4a'))){_0x2a3448[_0xa28f('0x22')]=qs[_0xa28f('0x22')](_0x54a9e3[_0xa28f('0x43')]['limit']);_0x2a3448[_0xa28f('0x24')]=qs[_0xa28f('0x24')](_0x54a9e3[_0xa28f('0x43')][_0xa28f('0x24')]);}_0x2a3448[_0xa28f('0x4b')]=qs[_0xa28f('0x4c')](_0x54a9e3['query'][_0xa28f('0x4c')]);_0x2a3448[_0xa28f('0x7f')]=qs[_0xa28f('0x45')](_[_0xa28f('0x4d')](_0x54a9e3['query'],_0x440ece[_0xa28f('0x45')]));_0x2a3448[_0xa28f('0x7f')][_0xa28f('0xba')]=_0x5c182e['id'];if(_0x54a9e3[_0xa28f('0x43')]['filter']){_0x2a3448[_0xa28f('0x7f')]=_['merge'](_0x2a3448[_0xa28f('0x7f')],{'$or':_['map'](_0x2a3448['attributes'],function(_0x586f52){var _0x57a3c6={};_0x57a3c6[_0x586f52]={'$like':'%'+_0x54a9e3['query']['filter']+'%'};return _0x57a3c6;})});}if(_0x54a9e3[_0xa28f('0x43')][_0xa28f('0x83')]){var _0x12934a=_0x54a9e3[_0xa28f('0x43')]['$gte']['split'](',');var _0x2317f1={};_0x2317f1[_0x12934a[0x0]]={'$gte':moment(_0x12934a[0x1])[_0xa28f('0xc9')](_0xa28f('0xca'))};_0x2a3448[_0xa28f('0x7f')]=_[_0xa28f('0xa6')](_0x2a3448[_0xa28f('0x7f')],_0x2317f1);}_0x2a3448=_[_0xa28f('0xa6')]({},_0x2a3448,_0x54a9e3[_0xa28f('0xcb')]);return db['OpenchannelMessage'][_0xa28f('0x23')]({'where':_0x2a3448[_0xa28f('0x7f')]})[_0xa28f('0x2b')](function(_0x12cf36){_0x1f0f9a['count']=_0x12cf36;if(_0x54a9e3['query'][_0xa28f('0xbf')]){_0x2a3448[_0xa28f('0xcc')]=[{'all':!![]}];}return db[_0xa28f('0xc3')][_0xa28f('0xcd')](_0x2a3448);})[_0xa28f('0x2b')](function(_0x9682f5){_0x1f0f9a[_0xa28f('0xbc')]=_0x9682f5;return _0x1f0f9a;});}})[_0xa28f('0x2b')](respondWithFilteredResult(_0x404d3c,_0x2a3448))[_0xa28f('0x36')](handleError(_0x404d3c,null));};exports[_0xa28f('0xce')]=function(_0xc6cba5,_0x464128,_0xd923db){return db[_0xa28f('0x3d')][_0xa28f('0x68')]({'where':{'id':_0xc6cba5[_0xa28f('0xbe')]['id']}})[_0xa28f('0x2b')](handleEntityNotFound(_0x464128,null))[_0xa28f('0x2b')](function(_0x26413c){if(_0x26413c){return _0x26413c[_0xa28f('0xcf')](_0xc6cba5[_0xa28f('0x7c')][_0xa28f('0xc4')],_[_0xa28f('0xc5')](_0xc6cba5['body'],[_0xa28f('0xc4'),'id'])||{})[_0xa28f('0xd0')](function(){return db[_0xa28f('0x76')][_0xa28f('0xcd')]({'attributes':['id','name',_0xa28f('0x50')],'where':{'id':_0xc6cba5['body'][_0xa28f('0xc4')]}});})[_0xa28f('0x2b')](function(_0x2c7bbf){socket[_0xa28f('0xd1')]('openchannelInteractionTags:save',{'id':Number(_0xc6cba5['params']['id']),'tags':_0x2c7bbf||[]});return{'id':Number(_0xc6cba5[_0xa28f('0xbe')]['id']),'tags':_0x2c7bbf||[]};});}})[_0xa28f('0x2b')](respondWithResult(_0x464128,null))[_0xa28f('0x36')](handleError(_0x464128,null));};exports[_0xa28f('0xd2')]=function(_0xd59b8a,_0x59e816,_0x7a086d){return db[_0xa28f('0x3d')]['find']({'where':{'id':_0xd59b8a[_0xa28f('0xbe')]['id']}})[_0xa28f('0x2b')](handleEntityNotFound(_0x59e816,null))[_0xa28f('0x2b')](function(_0xe4afac){if(_0xe4afac){return _0xe4afac['removeTags'](_0xd59b8a['query']['ids']);}})['then'](respondWithStatusCode(_0x59e816,null))['catch'](handleError(_0x59e816,null));};exports[_0xa28f('0xd3')]=function(_0x4b2d4c,_0x257a7c){var _0x2f6621=moment()[_0xa28f('0xd4')]()[_0xa28f('0xa3')]();var _0xca43f0=path['join'](config[_0xa28f('0xd5')],_0xa28f('0xd6'),_0xa28f('0xd7'),_0xa28f('0xd8'));var _0x16c2b6=path[_0xa28f('0xd9')](config[_0xa28f('0xd5')],'server','files',_0xa28f('0xda'));var _0x3d725e=path[_0xa28f('0xd9')](_0xca43f0,_0x2f6621);var _0x4635d7=util[_0xa28f('0xc9')]('transcript-%d-%s.zip',_0x4b2d4c[_0xa28f('0xbe')]['id'],_0x2f6621);var _0x23403b=path[_0xa28f('0xd9')](_0xca43f0,_0x4635d7);var _0x2f4387=[];_0x2f4387[_0xa28f('0x35')]({'model':db[_0xa28f('0x79')],'as':_0xa28f('0x79'),'attributes':['id',_0xa28f('0x31')],'raw':!![]});_0x2f4387[_0xa28f('0x35')]({'model':db[_0xa28f('0xdb')],'as':'Contact','attributes':['id',_0xa28f('0xdc'),_0xa28f('0xdd')],'raw':!![]});if(_0x4b2d4c['query'][_0xa28f('0xda')]){_0x2f4387[_0xa28f('0x35')]({'model':db['Attachment'],'as':'Attachment','raw':!![]});}var _0x30bf76=[{'model':db[_0xa28f('0xc3')],'as':_0xa28f('0xde'),'attributes':['id',_0xa28f('0x7c'),_0xa28f('0x81'),_0xa28f('0xdf'),_0xa28f('0xe0'),'read'],'include':_0x2f4387}];_0x30bf76['push']({'model':db[_0xa28f('0xe1')],'as':_0xa28f('0xe2'),'attributes':['id',_0xa28f('0x2e')]});_0x30bf76[_0xa28f('0x35')]({'model':db['User'],'as':_0xa28f('0xe3'),'attributes':['id','fullname']});return db[_0xa28f('0x3d')]['find']({'where':{'id':_0x4b2d4c[_0xa28f('0xbe')]['id']},'include':_0x30bf76})['then'](handleEntityNotFound(_0x257a7c,null))[_0xa28f('0x2b')](function(_0x257312){if(_0x257312){var _0x37816d=_0x257312[_0xa28f('0xe4')]({'plain':!![]});fs['mkdirSync'](_0x3d725e);var _0x343e89={'channel':_0xa28f('0xe5'),'account':_0x37816d[_0xa28f('0xe2')][_0xa28f('0x2e')],'agent':_0x37816d[_0xa28f('0xe3')]?_0x37816d[_0xa28f('0xe3')][_0xa28f('0x31')]:_0xa28f('0xe6'),'createdAt':moment(_0x37816d['createdAt'])[_0xa28f('0xc9')]('YYYY-MM-DD\x20HH:mm:ss')[_0xa28f('0xa3')](),'closedAt':_0x37816d[_0xa28f('0x3c')]?moment(_0x37816d[_0xa28f('0xe7')])[_0xa28f('0xc9')](_0xa28f('0xca'))[_0xa28f('0xa3')]():'','disposition':_0x37816d[_0xa28f('0xe8')],'visibility':_0x37816d[_0xa28f('0xe9')]?'Public':_0xa28f('0xea'),'messages':_(_0x37816d[_0xa28f('0xde')])[_0xa28f('0x8d')]({'secret':![]})['map'](function(_0x53cc47){if(_0x53cc47['Attachment']){var _0x22ff2d=path[_0xa28f('0xd9')](_0x16c2b6,_0x53cc47['Attachment'][_0xa28f('0xeb')]);if(fs[_0xa28f('0xec')](_0x22ff2d)){fs['createReadStream'](_0x22ff2d)['pipe'](fs[_0xa28f('0xed')](path[_0xa28f('0xd9')](_0x3d725e,_0x53cc47[_0xa28f('0xee')][_0xa28f('0xeb')])));}}return{'date':moment(_0x53cc47[_0xa28f('0x81')])['format'](_0xa28f('0xca'))[_0xa28f('0xa3')](),'sender':_0x53cc47['direction']==='out'?_0x53cc47[_0xa28f('0x79')]?_0x53cc47['User'][_0xa28f('0x31')]:_0xa28f('0xef'):_0x53cc47['Contact'][_0xa28f('0xdc')]+(_0x53cc47[_0xa28f('0xf0')][_0xa28f('0xdd')]?'\x20'+_0x53cc47[_0xa28f('0xf0')][_0xa28f('0xdd')]:''),'body':_0x53cc47[_0xa28f('0xee')]?_0x53cc47['Attachment']['basename']:_0x53cc47[_0xa28f('0x7c')],'direction':_0x53cc47[_0xa28f('0xdf')]==='out'?'A':'C','secret':_0x53cc47[_0xa28f('0xe0')],'read':_0x53cc47[_0xa28f('0x89')],'attachment':_0x53cc47[_0xa28f('0xee')]};})[_0xa28f('0x6a')]()};return ejs['renderFile'](path[_0xa28f('0xd9')](config[_0xa28f('0xd5')],_0xa28f('0xd6'),'views',_0xa28f('0xf1')),{'interaction':_0x343e89})[_0xa28f('0x2b')](function(_0x5e89c1){var _0x330bf0=path['join'](_0x3d725e,'transcript-'+_0x37816d['id']+'-'+_0x2f6621+_0xa28f('0xf2'));var _0x2bbd3b={'path':_0x330bf0,'channel':'Openchannel','interactionId':_0x37816d['id']};return pdf['createPdfFromHTML'](_0x5e89c1,_0x2bbd3b);})[_0xa28f('0x2b')](function(){return new BPromise(function(_0x4626e8,_0x2d6c3f){zipdir(_0x3d725e,{'saveTo':_0x23403b},function(_0x10b877,_0x36de80){if(_0x10b877)return _0x2d6c3f(_0x10b877);return _0x4626e8(_0x36de80);});})[_0xa28f('0x2b')](function(){return new BPromise(function(_0x3481c3,_0x550d5d){rimraf(_0x3d725e,function(_0x264bea){if(_0x264bea)_0x550d5d(_0x264bea);return _0x3481c3();});});})['then'](function(){return _0x257a7c['download'](_0x23403b,_0x4635d7,function(_0x4582cc){if(_0x4582cc){console[_0xa28f('0xf3')](_0xa28f('0xf4'),_0x4582cc);}else{fs[_0xa28f('0xf5')](_0x23403b);}});});});}else{return _0x257a7c[_0xa28f('0x2d')](0xc8);}})[_0xa28f('0x36')](handleError(_0x257a7c,null));};