97de560a0f5196ad692e6a07e03a564b3e4d3f16
[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 _0x57fa=['CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','body','some','compact','isEmpty','i.OpenchannelAccountId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','isArray','tag','filter','getFullTextValue','i.from\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','QueryTypes','SELECT','clone','i.id','unreadMessages','order','contactName','t.id\x20IN\x20?','resolve','OpenchannelAccountId','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','user','role','getOpenchannelAccounts','i.OpenchannelAccountId\x20IS\x20NULL','toString','merge','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','a.key','Account.key','a.mandatoryDisposition','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','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','c.mobile','Contact.mobile','Contact.fax','Owner.fullname','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','sequelize','ui.OpenchannelInteractionId\x20IN\x20?','OpenchannelInteractionId','rows','show','params','includeAll','options','OpenchannelInteraction','find','create','describe','OpenchannelMessage','addMessage','ids','findOne','format','include','findAll','setTags','spread','emit','removeTags','join','root','server','files','tmp','attachments','transcript-%d-%s.zip','fullname','firstName','Attachment','Messages','direction','OpenchannelAccount','Account','Owner','get','mkdirSync','Openchannel','N.A.','closed','closedAt','YYYY-MM-DD\x20HH:mm:ss','disposition','threadId','Public','Private','basename','createWriteStream','out','System','lastName','secret','renderFile','downloadInteraction.html','.pdf','createPdfFromHTML','download','err','unlinkSync','rimraf','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','lodash','crypto','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./openchannelInteraction.socket','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','name','send','Users','map','TagIds','split','forEach','Tags','push','catch','index','rawAttributes','fieldName','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','sort','where','pick','select','field','color','tools_tags','u.id','u.fullname','from','user_has_openchannel_interactions','left_join','openchannel_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','users','openchannel_accounts','a.id\x20=\x20i.OpenchannelAccountId','openchannel_messages','openchannel_interaction_has_tags','t.id\x20=\x20it.TagId','expr','search','parseSearch','conditions','value','having','`\x20=\x200','`\x20>\x200','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','type','text','start','Tag'];(function(_0x302325,_0x51c70c){var _0x3d0e32=function(_0x5deadb){while(--_0x5deadb){_0x302325['push'](_0x302325['shift']());}};_0x3d0e32(++_0x51c70c);}(_0x57fa,0x7e));var _0xa57f=function(_0x1f8be5,_0x5ab1f8){_0x1f8be5=_0x1f8be5-0x0;var _0x214b89=_0x57fa[_0x1f8be5];return _0x214b89;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa57f('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa57f('0x1'));var rp=require(_0xa57f('0x2'));var moment=require(_0xa57f('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xa57f('0x4'));var path=require(_0xa57f('0x5'));var sox=require(_0xa57f('0x6'));var csv=require(_0xa57f('0x7'));var ejs=require(_0xa57f('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xa57f('0x9'));var squel=require('squel');var crypto=require(_0xa57f('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xa57f('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xa57f('0xb'));var authService=require('../../components/auth/service');var qs=require(_0xa57f('0xc'));var as=require(_0xa57f('0xd'));var pdf=require(_0xa57f('0xe'));var hardwareService=require(_0xa57f('0xf'));var logger=require(_0xa57f('0x10'))(_0xa57f('0x11'));var utils=require(_0xa57f('0x12'));var config=require(_0xa57f('0x13'));var licenseUtil=require(_0xa57f('0x14'));var db=require(_0xa57f('0x15'))['db'];config[_0xa57f('0x16')]=_['defaults'](config['redis'],{'host':_0xa57f('0x17'),'port':0x18eb});var socket=require(_0xa57f('0x18'))(new Redis(config[_0xa57f('0x16')]));require(_0xa57f('0x19'))['register'](socket);function respondWithStatusCode(_0x5aa3ba,_0x2bc355){_0x2bc355=_0x2bc355||0xcc;return function(_0x12adb4){if(_0x12adb4){return _0x5aa3ba[_0xa57f('0x1a')](_0x2bc355);}return _0x5aa3ba[_0xa57f('0x1b')](_0x2bc355)[_0xa57f('0x1c')]();};}function respondWithResult(_0x325c61,_0x596368){_0x596368=_0x596368||0xc8;return function(_0x21b878){if(_0x21b878){return _0x325c61['status'](_0x596368)[_0xa57f('0x1d')](_0x21b878);}};}function respondWithFilteredResult(_0x476836,_0x4f91c2){return function(_0x387300){if(_0x387300){var _0x1b3785=_0x387300[_0xa57f('0x1e')],_0x358c44=_0x4f91c2[_0xa57f('0x1f')],_0x12f3c5=_0x4f91c2['offset']+_0x4f91c2[_0xa57f('0x20')],_0x25cb47;if(_0x12f3c5>=_0x1b3785){_0x12f3c5=_0x1b3785;_0x25cb47=0xc8;}else{_0x25cb47=0xce;}_0x476836[_0xa57f('0x1b')](_0x25cb47);return _0x476836[_0xa57f('0x21')](_0xa57f('0x22'),_0x358c44+'-'+_0x12f3c5+'/'+_0x1b3785)['json'](_0x387300);}return null;};}function patchUpdates(_0x3864fa){return function(_0x27ef4a){try{jsonpatch[_0xa57f('0x23')](_0x27ef4a,_0x3864fa,!![]);}catch(_0x2c5c2b){return BPromise[_0xa57f('0x24')](_0x2c5c2b);}return _0x27ef4a[_0xa57f('0x25')]();};}function saveUpdates(_0x38f16d,_0x2ecce3){return function(_0x2bf2fc){if(_0x2bf2fc){return _0x2bf2fc[_0xa57f('0x26')](_0x38f16d)[_0xa57f('0x27')](function(_0xdc8e85){return _0xdc8e85;});}return null;};}function removeEntity(_0x791e9d,_0x97a368){return function(_0xe812a8){if(_0xe812a8){return _0xe812a8[_0xa57f('0x28')]()['then'](function(){_0x791e9d[_0xa57f('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x39ac7e,_0x20e985){return function(_0xace267){if(!_0xace267){_0x39ac7e['sendStatus'](0x194);}return _0xace267;};}function handleError(_0x1f3915,_0x13dcfd){_0x13dcfd=_0x13dcfd||0x1f4;return function(_0x309efd){logger[_0xa57f('0x29')](_0x309efd['stack']);if(_0x309efd[_0xa57f('0x2a')]){delete _0x309efd[_0xa57f('0x2a')];}_0x1f3915[_0xa57f('0x1b')](_0x13dcfd)[_0xa57f('0x2b')](_0x309efd);};}function getInteractionUsers(_0x55c557,_0x17130d){return new BPromise(function(_0x2a6b09,_0xbb6e3){try{if(_0x17130d[_0x55c557['id']]){_0x55c557[_0xa57f('0x2c')]=_[_0xa57f('0x2d')](_0x17130d[_0x55c557['id']],function(_0x3ff560){return{'id':_0x3ff560['id'],'fullname':_0x3ff560['fullname']};});}}catch(_0x3c5cfc){_0xbb6e3(_0x3c5cfc);}_0x2a6b09(_0x55c557);});}function getInteractionTags(_0x1ebb29,_0x515e2f){return new BPromise(function(_0x39a5fe,_0x147cf5){try{if(_0x1ebb29[_0xa57f('0x2e')]){_0x1ebb29['Tags']=[];_0x1ebb29[_0xa57f('0x2e')][_0xa57f('0x2f')](',')[_0xa57f('0x30')](function(_0x518d1d){_0x1ebb29[_0xa57f('0x31')][_0xa57f('0x32')](_0x515e2f[_0x518d1d]);});}delete _0x1ebb29[_0xa57f('0x2e')];}catch(_0x534d39){_0x147cf5(_0x534d39);}_0x39a5fe(_0x1ebb29);});}function updateOpenchannelInteraction(_0x36f9fd,_0x1c29c4,_0x447597){return new BPromise(function(_0x564ade,_0x379774){return getInteractionUsers(_0x36f9fd,_0x447597)[_0xa57f('0x27')](function(_0x33d867){return getInteractionTags(_0x33d867,_0x1c29c4);})[_0xa57f('0x27')](function(_0x32accf){_0x564ade(_0x32accf);})[_0xa57f('0x33')](function(_0x36d702){_0x379774(_0x36d702);});});}exports[_0xa57f('0x34')]=function(_0x598f2f,_0xd36e78){var _0x4ab8ec={},_0x554b76={},_0x3e7413={'count':0x0,'rows':[]};var _0x222a90=_['map'](db['OpenchannelInteraction'][_0xa57f('0x35')],function(_0x4e3357){return{'name':_0x4e3357[_0xa57f('0x36')],'type':_0x4e3357['type'][_0xa57f('0x37')]};});_0x554b76[_0xa57f('0x38')]=_[_0xa57f('0x2d')](_0x222a90,_0xa57f('0x2a'));_0x554b76[_0xa57f('0x39')]=_[_0xa57f('0x3a')](_0x598f2f['query']);_0x554b76[_0xa57f('0x3b')]=_['intersection'](_0x554b76[_0xa57f('0x38')],_0x554b76[_0xa57f('0x39')]);_0x4ab8ec['attributes']=_[_0xa57f('0x3c')](_0x554b76[_0xa57f('0x38')],qs[_0xa57f('0x3d')](_0x598f2f['query'][_0xa57f('0x3d')]));_0x4ab8ec[_0xa57f('0x3e')]=_0x4ab8ec[_0xa57f('0x3e')][_0xa57f('0x3f')]?_0x4ab8ec[_0xa57f('0x3e')]:_0x554b76['model'];if(!_0x598f2f['query']['hasOwnProperty'](_0xa57f('0x40'))){_0x4ab8ec[_0xa57f('0x20')]=qs[_0xa57f('0x20')](_0x598f2f[_0xa57f('0x39')][_0xa57f('0x20')]);_0x4ab8ec[_0xa57f('0x1f')]=qs[_0xa57f('0x1f')](_0x598f2f['query'][_0xa57f('0x1f')]);}_0x4ab8ec['order']=qs['sort'](_0x598f2f[_0xa57f('0x39')][_0xa57f('0x41')]);_0x4ab8ec[_0xa57f('0x42')]=qs[_0xa57f('0x3b')](_[_0xa57f('0x43')](_0x598f2f[_0xa57f('0x39')],_0x554b76[_0xa57f('0x3b')]),_0x222a90);var _0x1a9fbf=[];var _0x5e330f=squel[_0xa57f('0x44')]()[_0xa57f('0x45')]('id')[_0xa57f('0x45')](_0xa57f('0x2a'))[_0xa57f('0x45')](_0xa57f('0x46'))['from'](_0xa57f('0x47'));var _0xdb0e37=squel[_0xa57f('0x44')]()[_0xa57f('0x45')](_0xa57f('0x48'))[_0xa57f('0x45')](_0xa57f('0x49'))['field']('ui.OpenchannelInteractionId')[_0xa57f('0x4a')](_0xa57f('0x4b'),'ui')[_0xa57f('0x4c')]('users','u','u.id\x20=\x20ui.UserId');var _0xc66630=squel['select']()[_0xa57f('0x4a')](_0xa57f('0x4d'),'i')[_0xa57f('0x4c')](_0xa57f('0x4e'),'c',_0xa57f('0x4f'))['left_join'](_0xa57f('0x50'),'o','o.id\x20=\x20i.UserId')[_0xa57f('0x4c')](_0xa57f('0x51'),'a',_0xa57f('0x52'))['left_join'](_0xa57f('0x53'),'me','me.OpenchannelInteractionId\x20=\x20i.id')['left_join'](_0xa57f('0x54'),'it','it.OpenchannelInteractionId\x20=\x20i.id')['left_join'](_0xa57f('0x47'),'t',_0xa57f('0x55'));var _0x567b3a=squel[_0xa57f('0x56')]();var _0x148a65=[];var _0x40b85c=squel[_0xa57f('0x56')]();var _0x2ef9a7;if(_0x598f2f[_0xa57f('0x39')][_0xa57f('0x57')]){_0x2ef9a7=as[_0xa57f('0x58')](_0x598f2f[_0xa57f('0x39')][_0xa57f('0x57')]);var _0x487461=_0x2ef9a7['sqlOperator'];for(var _0x72aef0=0x0;_0x72aef0<_0x2ef9a7['conditions'][_0xa57f('0x3f')];_0x72aef0++){var _0x5f417f=_0x2ef9a7[_0xa57f('0x59')][_0x72aef0];var _0x516a7f='i';var _0x48be87=_['find'](_0x222a90,['name',_0x5f417f[_0xa57f('0x45')]]);if(!_0x48be87){switch(_0x5f417f[_0xa57f('0x45')]){case'unreadMessages':if(_0x5f417f[_0xa57f('0x5a')]==0x1){_0xc66630[_0xa57f('0x5b')]('`'+_0x5f417f[_0xa57f('0x45')]+_0xa57f('0x5c'));}else{_0xc66630[_0xa57f('0x5b')]('`'+_0x5f417f[_0xa57f('0x45')]+_0xa57f('0x5d'));}break;case _0xa57f('0x5e'):if(_0x5f417f[_0xa57f('0x5f')]===_0xa57f('0x60')){if(_0x5f417f['value']['split']('\x20')[_0xa57f('0x3f')]>0x1){_0x567b3a[_0x487461](_0xa57f('0x61'),qs['getFullTextValue'](_0x5f417f[_0xa57f('0x5a')]),null);}else{var _0x329918='%'+_0x5f417f[_0xa57f('0x5a')]+'%';_0x567b3a[_0x487461](_0xa57f('0x62'),_0x329918,_0x329918,_0x329918);}}else{_0x48be87=_['find'](_0x222a90,['name','ContactId']);_0x5f417f[_0xa57f('0x45')]=_0xa57f('0x63');_0x4cebd8=as[_0xa57f('0x64')](_0x516a7f,_0x48be87[_0xa57f('0x65')],_0x5f417f);_0x567b3a[_0x487461](_0x4cebd8[_0xa57f('0x66')],_0x4cebd8[_0xa57f('0x5a')][_0xa57f('0x67')],_0x4cebd8[_0xa57f('0x5a')][_0xa57f('0x1c')]);}break;case _0xa57f('0x68'):var _0xca5c0e=_0x5f417f['value']['split'](',')[_0xa57f('0x2d')](function(_0x1c14ca){return Number(_0x1c14ca);});_0xca5c0e['forEach'](function(_0x1160e9){_0x40b85c['or'](_0xa57f('0x69'),'%,'+_0x1160e9+',%');});_0x148a65=_[_0xa57f('0x6a')](_0x148a65,_0xca5c0e);break;case _0xa57f('0x6b'):if(_0x5f417f[_0xa57f('0x5f')]===_0xa57f('0x60')){_0x567b3a[_0x487461](_0xa57f('0x6c'),'%'+_0x5f417f[_0xa57f('0x5a')]+'%',null);}else{_0x48be87=_['find'](_0x222a90,['name','UserId']);_0x5f417f[_0xa57f('0x45')]=_0xa57f('0x6d');_0x4cebd8=as[_0xa57f('0x64')](_0x516a7f,_0x48be87[_0xa57f('0x65')],_0x5f417f);_0x567b3a[_0x487461](_0x4cebd8['text'],_0x4cebd8[_0xa57f('0x5a')][_0xa57f('0x67')],_0x4cebd8[_0xa57f('0x5a')][_0xa57f('0x1c')]);}break;case _0xa57f('0x6e'):_0x4cebd8=as['buildExpression']('me',null,_0x5f417f);_0x567b3a[_0x487461](_0x4cebd8[_0xa57f('0x66')],_0x4cebd8[_0xa57f('0x5a')][_0xa57f('0x67')],_0x4cebd8[_0xa57f('0x5a')][_0xa57f('0x1c')]);break;}}else{var _0x4cebd8=as[_0xa57f('0x64')](_0x516a7f,_0x48be87[_0xa57f('0x65')],_0x5f417f);_0x567b3a[_0x487461](_0x4cebd8['text'],_0x4cebd8[_0xa57f('0x5a')][_0xa57f('0x67')],_0x4cebd8[_0xa57f('0x5a')][_0xa57f('0x1c')]);}}}else{var _0xe65385=_(_0x598f2f[_0xa57f('0x39')])[_0xa57f('0x3a')]()['map'](function(_0x1be04a){return _[_0xa57f('0x6f')](_0x222a90,[_0xa57f('0x2a'),_0x1be04a])?_0x1be04a:undefined;})[_0xa57f('0x70')]()['value']();if(!_[_0xa57f('0x71')](_0xe65385)){_0xe65385['forEach'](function(_0x59ab38){if(_0x59ab38==='OpenchannelAccountId'){_0xc66630[_0xa57f('0x42')](_0xa57f('0x72'),[][_0xa57f('0x73')](_0x598f2f[_0xa57f('0x39')][_0x59ab38]));}else if(_0x59ab38===_0xa57f('0x74')){var _0x523578=JSON[_0xa57f('0x75')](_0x598f2f['query'][_0x59ab38])[_0xa57f('0x76')];var _0x43b48c=JSON['parse'](_0x598f2f[_0xa57f('0x39')][_0x59ab38])[_0xa57f('0x77')];_0xc66630[_0xa57f('0x42')](_0xa57f('0x78'),_0x523578,_0x43b48c);}else{if(_0x598f2f[_0xa57f('0x39')][_0x59ab38]==='null'){_0xc66630[_0xa57f('0x42')]('i.'+_0x59ab38+'\x20IS\x20NULL');}else{_0xc66630['where']('i.'+_0x59ab38+_0xa57f('0x79'),_0x598f2f['query'][_0x59ab38]);}}});}if(_0x598f2f[_0xa57f('0x39')][_0xa57f('0x7a')]){if(_0x598f2f[_0xa57f('0x39')][_0xa57f('0x7a')]==0x1){_0xc66630[_0xa57f('0x5b')](_0xa57f('0x7b'));}else{_0xc66630['having'](_0xa57f('0x7c'));}}if(_0x598f2f[_0xa57f('0x39')]['tag']){_0x148a65=_[_0xa57f('0x7d')](_0x598f2f[_0xa57f('0x39')][_0xa57f('0x7e')])?_0x598f2f[_0xa57f('0x39')][_0xa57f('0x7e')]:new Array(_0x598f2f[_0xa57f('0x39')][_0xa57f('0x7e')]);_0x148a65[_0xa57f('0x30')](function(_0x2a30c2){_0x40b85c['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x2a30c2+',%');});}if(_0x598f2f[_0xa57f('0x39')][_0xa57f('0x7f')]){var _0x2931df=_0x598f2f['query']['filter']['replace']('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs['isNumeric'](_0x2931df)){_0x567b3a['or']('i.id\x20LIKE\x20?',_0x2931df+'%');}else{_0x567b3a['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0xa57f('0x80')](_0x2931df))['or'](_0xa57f('0x81'),_0x2931df+'%')['or'](_0xa57f('0x82'),_0x2931df+'%');}}}_0xc66630[_0xa57f('0x42')](_0x567b3a);_0xc66630[_0xa57f('0x83')]('i.id');var _0x8cf8a8={'type':db['Sequelize'][_0xa57f('0x84')][_0xa57f('0x85')],'raw':!![]};var _0x4735e8=_0xc66630[_0xa57f('0x86')]();_0x4735e8[_0xa57f('0x45')](_0xa57f('0x87'));_0x4735e8[_0xa57f('0x45')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0xa57f('0x88'));if(_0x4ab8ec['order']){_0x4ab8ec[_0xa57f('0x89')][_0xa57f('0x30')](function(_0x109a8b){var _0x257240=_0x109a8b[0x0]===_0xa57f('0x8a')?_0x109a8b[0x0]:'i.'+_0x109a8b[0x0];_0xc66630[_0xa57f('0x89')](_0x257240,_0x109a8b[0x1]==='DESC'?![]:!![]);});}if(!_[_0xa57f('0x71')](_0x148a65)){_0xc66630['having'](_0x40b85c);_0x4735e8[_0xa57f('0x42')](_0xa57f('0x8b'),_0x148a65);}BPromise[_0xa57f('0x8c')]()['then'](function(){if(!_0x2ef9a7){if(_0x598f2f[_0xa57f('0x39')][_0xa57f('0x8d')])return;_0x4735e8['where'](_0xa57f('0x8e'));_0xc66630[_0xa57f('0x42')](_0xa57f('0x8e'));return;}if(_0x598f2f[_0xa57f('0x8f')][_0xa57f('0x90')]!=='agent')return;return _0x598f2f['user'][_0xa57f('0x91')]({'attributes':['id'],'raw':!![]})['then'](function(_0x866f08){if(_['isEmpty'](_0x866f08)){_0x4735e8[_0xa57f('0x42')](_0xa57f('0x92'));_0xc66630[_0xa57f('0x42')]('i.OpenchannelAccountId\x20IS\x20NULL');}else{_0x4735e8[_0xa57f('0x42')](_0xa57f('0x72'),_[_0xa57f('0x2d')](_0x866f08,'id'));_0xc66630[_0xa57f('0x42')](_0xa57f('0x72'),_['map'](_0x866f08,'id'));}});})[_0xa57f('0x27')](function(){if(_0x598f2f[_0xa57f('0x8f')]['role']==='agent'&&!_0x2ef9a7&&!_0x598f2f[_0xa57f('0x39')]['OpenchannelAccountId'])return[];return db['sequelize'][_0xa57f('0x39')](_0x4735e8[_0xa57f('0x93')](),_0x8cf8a8);})[_0xa57f('0x27')](function(_0x5d33d4){_0x3e7413[_0xa57f('0x1e')]=_0x5d33d4['length'];if(_0x3e7413[_0xa57f('0x1e')]===0x0)return[];return db['sequelize']['query'](_0x5e330f[_0xa57f('0x93')](),_0x8cf8a8)['then'](function(_0x3b212a){_0x1a9fbf=_['keyBy'](_0x3b212a,'id');_0x8cf8a8=_[_0xa57f('0x94')](_0x8cf8a8,{'model':db['OpenchannelInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x598f2f[_0xa57f('0x39')][_0xa57f('0x3d')]){_0x4ab8ec['attributes'][_0xa57f('0x30')](function(_0x111458){_0xc66630[_0xa57f('0x45')]('i.'+_0x111458);});}else{_0xc66630['field'](_0xa57f('0x95'),_0xa57f('0x88'));_0xc66630[_0xa57f('0x45')](_0xa57f('0x96'),_0xa57f('0x97'));_0xc66630['field'](_0xa57f('0x98'),_0xa57f('0x99'));_0xc66630['field'](_0xa57f('0x9a'),_0xa57f('0x8a'));_0xc66630['field'](_0xa57f('0x9b'));_0xc66630[_0xa57f('0x45')](_0xa57f('0x9c'),_0xa57f('0x9d'));_0xc66630[_0xa57f('0x45')](_0xa57f('0x9e'),_0xa57f('0x9f'));_0xc66630[_0xa57f('0x45')](_0xa57f('0xa0'),_0xa57f('0xa1'));_0xc66630[_0xa57f('0x45')](_0xa57f('0xa2'),'Contact.phone');_0xc66630[_0xa57f('0x45')](_0xa57f('0xa3'),_0xa57f('0xa4'));_0xc66630[_0xa57f('0x45')]('c.fax',_0xa57f('0xa5'));_0xc66630[_0xa57f('0x45')]('o.fullname',_0xa57f('0xa6'));_0xc66630['field']('o.internal',_0xa57f('0xa7'));_0xc66630['field'](_0xa57f('0xa8'),_0xa57f('0x2e'));}if(_0x4ab8ec[_0xa57f('0x20')])_0xc66630[_0xa57f('0x20')](_0x4ab8ec['limit']);if(_0x4ab8ec['offset'])_0xc66630[_0xa57f('0x1f')](_0x4ab8ec[_0xa57f('0x1f')]);return db[_0xa57f('0xa9')][_0xa57f('0x39')](_0xc66630[_0xa57f('0x93')](),_0x8cf8a8);})[_0xa57f('0x27')](function(_0x2abd2f){_0xdb0e37[_0xa57f('0x42')](_0xa57f('0xaa'),_[_0xa57f('0x2d')](_0x2abd2f,'id'));return db[_0xa57f('0xa9')][_0xa57f('0x39')](_0xdb0e37['toString'](),_0x8cf8a8)[_0xa57f('0x27')](function(_0x2cd721){var _0x9c9a64=_['groupBy'](_0x2cd721,_0xa57f('0xab'));var _0x4dfa9b=[];_0x2abd2f['forEach'](function(_0xd9d77){_0x4dfa9b['push'](updateOpenchannelInteraction(_0xd9d77,_0x1a9fbf,_0x9c9a64));});return BPromise['all'](_0x4dfa9b);});});})[_0xa57f('0x27')](function(_0x36d99b){_0x3e7413[_0xa57f('0xac')]=_0x36d99b;return _0x3e7413;})[_0xa57f('0x27')](respondWithFilteredResult(_0xd36e78,_0x4ab8ec))['catch'](handleError(_0xd36e78,null));};exports[_0xa57f('0xad')]=function(_0x3b1172,_0x3dac3b){var _0x1ad641={};if(_0x3b1172[_0xa57f('0x39')][_0xa57f('0x65')]&&_0x3b1172[_0xa57f('0x39')]['type']===_0xa57f('0x4a')){_0x1ad641[_0xa57f('0x4a')]=_0x3b1172[_0xa57f('0xae')]['id'];}else{_0x1ad641['id']=_0x3b1172[_0xa57f('0xae')]['id'];}var _0x519156={'raw':![],'where':_0x1ad641},_0x18f92b={};_0x18f92b[_0xa57f('0x38')]=_[_0xa57f('0x3a')](db['OpenchannelInteraction'][_0xa57f('0x35')]);_0x18f92b['query']=_[_0xa57f('0x3a')](_0x3b1172['query']);_0x18f92b[_0xa57f('0x3b')]=_[_0xa57f('0x3c')](_0x18f92b['model'],_0x18f92b[_0xa57f('0x39')]);_0x519156['attributes']=_[_0xa57f('0x3c')](_0x18f92b[_0xa57f('0x38')],qs['fields'](_0x3b1172[_0xa57f('0x39')][_0xa57f('0x3d')]));_0x519156['attributes']=_0x519156['attributes'][_0xa57f('0x3f')]?_0x519156[_0xa57f('0x3e')]:_0x18f92b[_0xa57f('0x38')];if(_0x3b1172[_0xa57f('0x39')][_0xa57f('0xaf')]){_0x519156['include']=[{'all':!![]}];}_0x519156=_[_0xa57f('0x94')]({},_0x519156,_0x3b1172[_0xa57f('0xb0')]);return db[_0xa57f('0xb1')][_0xa57f('0xb2')](_0x519156)[_0xa57f('0x27')](handleEntityNotFound(_0x3dac3b,null))['then'](respondWithResult(_0x3dac3b,null))[_0xa57f('0x33')](handleError(_0x3dac3b,null));};exports[_0xa57f('0xb3')]=function(_0x28e139,_0x118559){return db[_0xa57f('0xb1')][_0xa57f('0xb3')](_0x28e139['body'],{})[_0xa57f('0x27')](respondWithResult(_0x118559,0xc9))['catch'](handleError(_0x118559,null));};exports['update']=function(_0x5f2338,_0x10be6c){if(_0x5f2338[_0xa57f('0x6e')]['id']){delete _0x5f2338[_0xa57f('0x6e')]['id'];}return db[_0xa57f('0xb1')][_0xa57f('0xb2')]({'where':{'id':_0x5f2338[_0xa57f('0xae')]['id']}})[_0xa57f('0x27')](handleEntityNotFound(_0x10be6c,null))['then'](saveUpdates(_0x5f2338[_0xa57f('0x6e')],null))[_0xa57f('0x27')](respondWithResult(_0x10be6c,null))['catch'](handleError(_0x10be6c,null));};exports['destroy']=function(_0x49b0ce,_0x4b6ccd){return db[_0xa57f('0xb1')][_0xa57f('0xb2')]({'where':{'id':_0x49b0ce[_0xa57f('0xae')]['id']}})[_0xa57f('0x27')](handleEntityNotFound(_0x4b6ccd,null))['then'](removeEntity(_0x4b6ccd,null))['catch'](handleError(_0x4b6ccd,null));};exports[_0xa57f('0xb4')]=function(_0x2faed5,_0x7184cf){return db[_0xa57f('0xb1')][_0xa57f('0xb4')]()['then'](respondWithResult(_0x7184cf,null))[_0xa57f('0x33')](handleError(_0x7184cf,null));};exports['addMessage']=function(_0x39a3fd,_0x4d6d55,_0x71ec35){return db[_0xa57f('0xb5')]['find']({'where':{'id':_0x39a3fd[_0xa57f('0xae')]['id']}})[_0xa57f('0x27')](handleEntityNotFound(_0x4d6d55,null))['then'](function(_0xfc3fc6){if(_0xfc3fc6){return _0xfc3fc6[_0xa57f('0xb6')](_0x39a3fd['body']['ids'],_['omit'](_0x39a3fd['body'],[_0xa57f('0xb7'),'id'])||{});}})[_0xa57f('0x27')](respondWithResult(_0x4d6d55,null))[_0xa57f('0x33')](handleError(_0x4d6d55,null));};exports['getMessages']=function(_0x37ac96,_0x58e542,_0x312012){var _0x5282fa={'raw':![],'where':{}};var _0xb17ed={};var _0x122cc4={'count':0x0,'rows':[]};return db[_0xa57f('0xb1')][_0xa57f('0xb8')]({'where':{'id':_0x37ac96['params']['id']}})[_0xa57f('0x27')](handleEntityNotFound(_0x58e542,null))['then'](function(_0x4785a0){if(_0x4785a0){_0xb17ed[_0xa57f('0x38')]=_[_0xa57f('0x3a')](db[_0xa57f('0xb5')][_0xa57f('0x35')]);_0xb17ed[_0xa57f('0x39')]=_[_0xa57f('0x3a')](_0x37ac96[_0xa57f('0x39')]);_0xb17ed[_0xa57f('0x3b')]=_[_0xa57f('0x3c')](_0xb17ed[_0xa57f('0x38')],_0xb17ed['query']);_0x5282fa[_0xa57f('0x3e')]=_[_0xa57f('0x3c')](_0xb17ed[_0xa57f('0x38')],qs[_0xa57f('0x3d')](_0x37ac96[_0xa57f('0x39')][_0xa57f('0x3d')]));_0x5282fa['attributes']=_0x5282fa['attributes']['length']?_0x5282fa[_0xa57f('0x3e')]:_0xb17ed[_0xa57f('0x38')];if(!_0x37ac96[_0xa57f('0x39')]['hasOwnProperty'](_0xa57f('0x40'))){_0x5282fa[_0xa57f('0x20')]=qs[_0xa57f('0x20')](_0x37ac96['query'][_0xa57f('0x20')]);_0x5282fa[_0xa57f('0x1f')]=qs[_0xa57f('0x1f')](_0x37ac96[_0xa57f('0x39')]['offset']);}_0x5282fa['order']=qs[_0xa57f('0x41')](_0x37ac96[_0xa57f('0x39')][_0xa57f('0x41')]);_0x5282fa[_0xa57f('0x42')]=qs[_0xa57f('0x3b')](_[_0xa57f('0x43')](_0x37ac96[_0xa57f('0x39')],_0xb17ed[_0xa57f('0x3b')]));_0x5282fa[_0xa57f('0x42')][_0xa57f('0xab')]=_0x4785a0['id'];if(_0x37ac96[_0xa57f('0x39')]['filter']){_0x5282fa['where']=_[_0xa57f('0x94')](_0x5282fa[_0xa57f('0x42')],{'$or':_[_0xa57f('0x2d')](_0x5282fa[_0xa57f('0x3e')],function(_0x351f60){var _0x9bacb8={};_0x9bacb8[_0x351f60]={'$like':'%'+_0x37ac96[_0xa57f('0x39')][_0xa57f('0x7f')]+'%'};return _0x9bacb8;})});}if(_0x37ac96[_0xa57f('0x39')]['$gte']){var _0x28acce=_0x37ac96['query'][_0xa57f('0x76')][_0xa57f('0x2f')](',');var _0x174851={};_0x174851[_0x28acce[0x0]]={'$gte':moment(_0x28acce[0x1])[_0xa57f('0xb9')]('YYYY-MM-DD\x20HH:mm:ss')};_0x5282fa[_0xa57f('0x42')]=_[_0xa57f('0x94')](_0x5282fa[_0xa57f('0x42')],_0x174851);}_0x5282fa=_['merge']({},_0x5282fa,_0x37ac96[_0xa57f('0xb0')]);return db['OpenchannelMessage']['count']({'where':_0x5282fa[_0xa57f('0x42')]})[_0xa57f('0x27')](function(_0x2ea86e){_0x122cc4[_0xa57f('0x1e')]=_0x2ea86e;if(_0x37ac96['query'][_0xa57f('0xaf')]){_0x5282fa[_0xa57f('0xba')]=[{'all':!![]}];}return db[_0xa57f('0xb5')][_0xa57f('0xbb')](_0x5282fa);})[_0xa57f('0x27')](function(_0x32386c){_0x122cc4['rows']=_0x32386c;return _0x122cc4;});}})[_0xa57f('0x27')](respondWithFilteredResult(_0x58e542,_0x5282fa))[_0xa57f('0x33')](handleError(_0x58e542,null));};exports['addTags']=function(_0x1c3dad,_0x22a372,_0x2f2672){return db[_0xa57f('0xb1')][_0xa57f('0xb2')]({'where':{'id':_0x1c3dad[_0xa57f('0xae')]['id']}})['then'](handleEntityNotFound(_0x22a372,null))['then'](function(_0x57c882){if(_0x57c882){return _0x57c882[_0xa57f('0xbc')](_0x1c3dad[_0xa57f('0x6e')][_0xa57f('0xb7')],_['omit'](_0x1c3dad['body'],['ids','id'])||{})[_0xa57f('0xbd')](function(){return db['Tag']['findAll']({'attributes':['id',_0xa57f('0x2a'),'color'],'where':{'id':_0x1c3dad[_0xa57f('0x6e')][_0xa57f('0xb7')]}});})[_0xa57f('0x27')](function(_0x1ce3fc){socket[_0xa57f('0xbe')]('openchannelInteractionTags:save',{'id':Number(_0x1c3dad['params']['id']),'tags':_0x1ce3fc||[]});return{'id':Number(_0x1c3dad['params']['id']),'tags':_0x1ce3fc||[]};});}})[_0xa57f('0x27')](respondWithResult(_0x22a372,null))[_0xa57f('0x33')](handleError(_0x22a372,null));};exports[_0xa57f('0xbf')]=function(_0x5e78d1,_0x3d502c,_0x250746){return db[_0xa57f('0xb1')][_0xa57f('0xb2')]({'where':{'id':_0x5e78d1[_0xa57f('0xae')]['id']}})[_0xa57f('0x27')](handleEntityNotFound(_0x3d502c,null))[_0xa57f('0x27')](function(_0x2248ce){if(_0x2248ce){return _0x2248ce[_0xa57f('0xbf')](_0x5e78d1['query']['ids']);}})['then'](respondWithStatusCode(_0x3d502c,null))['catch'](handleError(_0x3d502c,null));};exports['download']=function(_0x536900,_0x3165fc){var _0x10cb19=moment()['unix']()['toString']();var _0x3a0a92=path[_0xa57f('0xc0')](config[_0xa57f('0xc1')],_0xa57f('0xc2'),_0xa57f('0xc3'),_0xa57f('0xc4'));var _0x1deac5=path[_0xa57f('0xc0')](config[_0xa57f('0xc1')],_0xa57f('0xc2'),_0xa57f('0xc3'),_0xa57f('0xc5'));var _0x579077=path['join'](_0x3a0a92,_0x10cb19);var _0x23b46b=util[_0xa57f('0xb9')](_0xa57f('0xc6'),_0x536900[_0xa57f('0xae')]['id'],_0x10cb19);var _0x55b2a2=path[_0xa57f('0xc0')](_0x3a0a92,_0x23b46b);var _0x59a648=[];_0x59a648[_0xa57f('0x32')]({'model':db[_0xa57f('0x6b')],'as':_0xa57f('0x6b'),'attributes':['id',_0xa57f('0xc7')],'raw':!![]});_0x59a648[_0xa57f('0x32')]({'model':db['CmContact'],'as':_0xa57f('0x5e'),'attributes':['id',_0xa57f('0xc8'),'lastName'],'raw':!![]});if(_0x536900['query']['attachments']){_0x59a648[_0xa57f('0x32')]({'model':db[_0xa57f('0xc9')],'as':'Attachment','raw':!![]});}var _0x42294d=[{'model':db[_0xa57f('0xb5')],'as':_0xa57f('0xca'),'attributes':['id',_0xa57f('0x6e'),'createdAt',_0xa57f('0xcb'),'secret',_0xa57f('0x7a')],'include':_0x59a648}];_0x42294d['push']({'model':db[_0xa57f('0xcc')],'as':_0xa57f('0xcd'),'attributes':['id',_0xa57f('0x2a')]});_0x42294d[_0xa57f('0x32')]({'model':db[_0xa57f('0x6b')],'as':_0xa57f('0xce'),'attributes':['id',_0xa57f('0xc7')]});return db[_0xa57f('0xb1')]['find']({'where':{'id':_0x536900['params']['id']},'include':_0x42294d})[_0xa57f('0x27')](handleEntityNotFound(_0x3165fc,null))[_0xa57f('0x27')](function(_0x5ef292){if(_0x5ef292){var _0x5859d7=_0x5ef292[_0xa57f('0xcf')]({'plain':!![]});fs[_0xa57f('0xd0')](_0x579077);var _0x1f7f02={'channel':_0xa57f('0xd1'),'account':_0x5859d7[_0xa57f('0xcd')][_0xa57f('0x2a')],'agent':_0x5859d7[_0xa57f('0xce')]?_0x5859d7[_0xa57f('0xce')][_0xa57f('0xc7')]:_0xa57f('0xd2'),'createdAt':moment(_0x5859d7[_0xa57f('0x74')])[_0xa57f('0xb9')]('YYYY-MM-DD\x20HH:mm:ss')[_0xa57f('0x93')](),'closedAt':_0x5859d7[_0xa57f('0xd3')]?moment(_0x5859d7[_0xa57f('0xd4')])[_0xa57f('0xb9')](_0xa57f('0xd5'))[_0xa57f('0x93')]():'','disposition':_0x5859d7[_0xa57f('0xd6')],'visibility':_0x5859d7[_0xa57f('0xd7')]?_0xa57f('0xd8'):_0xa57f('0xd9'),'messages':_(_0x5859d7[_0xa57f('0xca')])[_0xa57f('0x7f')]({'secret':![]})[_0xa57f('0x2d')](function(_0x30ed2d){if(_0x30ed2d[_0xa57f('0xc9')]){var _0x17e255=path[_0xa57f('0xc0')](_0x1deac5,_0x30ed2d['Attachment'][_0xa57f('0xda')]);if(fs['existsSync'](_0x17e255)){fs['createReadStream'](_0x17e255)['pipe'](fs[_0xa57f('0xdb')](path[_0xa57f('0xc0')](_0x579077,_0x30ed2d[_0xa57f('0xc9')][_0xa57f('0xda')])));}}return{'date':moment(_0x30ed2d['createdAt'])['format'](_0xa57f('0xd5'))['toString'](),'sender':_0x30ed2d[_0xa57f('0xcb')]===_0xa57f('0xdc')?_0x30ed2d['User']?_0x30ed2d[_0xa57f('0x6b')][_0xa57f('0xc7')]:_0xa57f('0xdd'):_0x30ed2d[_0xa57f('0x5e')][_0xa57f('0xc8')]+(_0x30ed2d[_0xa57f('0x5e')][_0xa57f('0xde')]?'\x20'+_0x30ed2d[_0xa57f('0x5e')][_0xa57f('0xde')]:''),'body':_0x30ed2d['Attachment']?_0x30ed2d[_0xa57f('0xc9')][_0xa57f('0xda')]:_0x30ed2d['body'],'direction':_0x30ed2d[_0xa57f('0xcb')]===_0xa57f('0xdc')?'A':'C','secret':_0x30ed2d[_0xa57f('0xdf')],'read':_0x30ed2d[_0xa57f('0x7a')],'attachment':_0x30ed2d['Attachment']};})['value']()};return ejs[_0xa57f('0xe0')](path[_0xa57f('0xc0')](config[_0xa57f('0xc1')],_0xa57f('0xc2'),'views',_0xa57f('0xe1')),{'interaction':_0x1f7f02})[_0xa57f('0x27')](function(_0x61648){var _0x184068=path[_0xa57f('0xc0')](_0x579077,'transcript-'+_0x5859d7['id']+'-'+_0x10cb19+_0xa57f('0xe2'));var _0x175bbf={'path':_0x184068,'channel':_0xa57f('0xd1'),'interactionId':_0x5859d7['id']};return pdf[_0xa57f('0xe3')](_0x61648,_0x175bbf);})['then'](function(){return new BPromise(function(_0xf664b7,_0x354dd1){zipdir(_0x579077,{'saveTo':_0x55b2a2},function(_0x3ac5f7,_0x14d645){if(_0x3ac5f7)return _0x354dd1(_0x3ac5f7);return _0xf664b7(_0x14d645);});})['then'](function(){return new BPromise(function(_0x1c7474,_0x410ad8){rimraf(_0x579077,function(_0x1d48b5){if(_0x1d48b5)_0x410ad8(_0x1d48b5);return _0x1c7474();});});})['then'](function(){return _0x3165fc[_0xa57f('0xe4')](_0x55b2a2,_0x23b46b,function(_0x5a6445){if(_0x5a6445){console['log'](_0xa57f('0xe5'),_0x5a6445);}else{fs[_0xa57f('0xe6')](_0x55b2a2);}});});});}else{return _0x3165fc[_0xa57f('0x1a')](0xc8);}})[_0xa57f('0x33')](handleError(_0x3165fc,null));};