6b32ff4d3b334a87b349205078be76da30bacb59
[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 _0xc230=['`unreadMessages`\x20=\x200','isArray','tag','filter','replace','i.id\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','DESC','t.id\x20IN\x20?','resolve','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','getOpenchannelAccounts','i.OpenchannelAccountId\x20IS\x20NULL','i.OpenchannelAccountId\x20IN\x20?','toString','sequelize','keyBy','merge','Account.key','Account.mandatoryDisposition','i.*','c.firstName','Contact.firstName','Contact.lastName','c.phone','c.mobile','Contact.mobile','Contact.fax','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.OpenchannelInteractionId\x20IN\x20?','groupBy','all','rows','show','params','include','create','update','describe','addMessage','OpenchannelMessage','ids','omit','getMessages','findOne','rawAttributes','OpenchannelInteractionId','$gte','format','YYYY-MM-DD\x20HH:mm:ss','options','includeAll','findAll','addTags','setTags','spread','Tag','emit','openchannelInteractionTags:save','download','unix','join','server','files','tmp','root','attachments','transcript-%d-%s.zip','CmContact','firstName','Attachment','Messages','direction','secret','OpenchannelAccount','Account','Owner','get','mkdirSync','10px','40px','<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>','<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>','%s\x20#%d','Openchannel','YYYY-MM-DD','N.A.','closedAt','disposition','threadId','existsSync','createReadStream','pipe','createWriteStream','basename','out','System','Contact','lastName','views','downloadInteraction.html','toFile','transcript-','.pdf','log','err','unlinkSync','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./openchannelInteraction.socket','register','end','status','count','offset','limit','set','Content-Range','json','apply','then','destroy','sendStatus','error','stack','name','send','map','fullname','Tags','TagIds','forEach','push','catch','index','OpenchannelInteraction','fieldName','type','key','keys','query','intersection','attributes','model','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','field','color','tools_tags','select','u.id','u.fullname','from','user_has_openchannel_interactions','users','openchannel_interactions','left_join','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','openchannel_accounts','me.OpenchannelInteractionId\x20=\x20i.id','openchannel_interaction_has_tags','it.OpenchannelInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','length','find','unreadMessages','value','having','`\x20=\x200','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','ContactId','buildExpression','text','split','union','User','UserId','body','start','compact','isEmpty','OpenchannelAccountId','createdAt','parse','$lte','null','\x20IS\x20NULL','\x20=\x20?','read'];(function(_0x16b9ed,_0x56517a){var _0x66b1f8=function(_0x1c883){while(--_0x1c883){_0x16b9ed['push'](_0x16b9ed['shift']());}};_0x66b1f8(++_0x56517a);}(_0xc230,0x75));var _0x0c23=function(_0x297717,_0x5410af){_0x297717=_0x297717-0x0;var _0xce9b7d=_0xc230[_0x297717];return _0xce9b7d;};'use strict';var pdf=require(_0x0c23('0x0'));var emlformat=require(_0x0c23('0x1'));var rimraf=require(_0x0c23('0x2'));var zipdir=require(_0x0c23('0x3'));var jsonpatch=require(_0x0c23('0x4'));var rp=require(_0x0c23('0x5'));var moment=require(_0x0c23('0x6'));var BPromise=require('bluebird');var Mustache=require(_0x0c23('0x7'));var util=require(_0x0c23('0x8'));var path=require(_0x0c23('0x9'));var sox=require(_0x0c23('0xa'));var csv=require(_0x0c23('0xb'));var ejs=require(_0x0c23('0xc'));var fs=require('fs');var _=require('lodash');var squel=require(_0x0c23('0xd'));var crypto=require('crypto');var jsforce=require(_0x0c23('0xe'));var deskjs=require(_0x0c23('0xf'));var toCsv=require(_0x0c23('0xb'));var querystring=require(_0x0c23('0x10'));var Papa=require(_0x0c23('0x11'));var Redis=require(_0x0c23('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x0c23('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x0c23('0x14'))(_0x0c23('0x15'));var utils=require(_0x0c23('0x16'));var config=require(_0x0c23('0x17'));var db=require(_0x0c23('0x18'))['db'];config['redis']=_[_0x0c23('0x19')](config[_0x0c23('0x1a')],{'host':_0x0c23('0x1b'),'port':0x18eb});var socket=require(_0x0c23('0x1c'))(new Redis(config[_0x0c23('0x1a')]));require(_0x0c23('0x1d'))[_0x0c23('0x1e')](socket);function respondWithStatusCode(_0x57b97c,_0x4c70ce){_0x4c70ce=_0x4c70ce||0xcc;return function(_0x48f073){if(_0x48f073){return _0x57b97c['sendStatus'](_0x4c70ce);}return _0x57b97c['status'](_0x4c70ce)[_0x0c23('0x1f')]();};}function respondWithResult(_0x27be5e,_0x4965bb){_0x4965bb=_0x4965bb||0xc8;return function(_0x116cc8){if(_0x116cc8){return _0x27be5e[_0x0c23('0x20')](_0x4965bb)['json'](_0x116cc8);}};}function respondWithFilteredResult(_0x2dda19,_0x35207e){return function(_0x35df1f){if(_0x35df1f){var _0x1fee83=_0x35df1f[_0x0c23('0x21')],_0xabd52=_0x35207e[_0x0c23('0x22')],_0x560e3b=_0x35207e[_0x0c23('0x22')]+_0x35207e[_0x0c23('0x23')],_0x1b55c7;if(_0x560e3b>=_0x1fee83){_0x560e3b=_0x1fee83;_0x1b55c7=0xc8;}else{_0x1b55c7=0xce;}_0x2dda19[_0x0c23('0x20')](_0x1b55c7);return _0x2dda19[_0x0c23('0x24')](_0x0c23('0x25'),_0xabd52+'-'+_0x560e3b+'/'+_0x1fee83)[_0x0c23('0x26')](_0x35df1f);}return null;};}function patchUpdates(_0xb8bc75){return function(_0x37696b){try{jsonpatch[_0x0c23('0x27')](_0x37696b,_0xb8bc75,!![]);}catch(_0x2a36af){return BPromise['reject'](_0x2a36af);}return _0x37696b['save']();};}function saveUpdates(_0x25b3e9,_0x2fc6d6){return function(_0x266b4c){if(_0x266b4c){return _0x266b4c['update'](_0x25b3e9)[_0x0c23('0x28')](function(_0x736fe2){return _0x736fe2;});}return null;};}function removeEntity(_0x40ac31,_0x4b2fce){return function(_0x5d135c){if(_0x5d135c){return _0x5d135c[_0x0c23('0x29')]()[_0x0c23('0x28')](function(){_0x40ac31[_0x0c23('0x20')](0xcc)[_0x0c23('0x1f')]();});}};}function handleEntityNotFound(_0x1c90b9,_0x419580){return function(_0x3f8160){if(!_0x3f8160){_0x1c90b9[_0x0c23('0x2a')](0x194);}return _0x3f8160;};}function handleError(_0x50e825,_0x4a32a6){_0x4a32a6=_0x4a32a6||0x1f4;return function(_0x2266d8){logger[_0x0c23('0x2b')](_0x2266d8[_0x0c23('0x2c')]);if(_0x2266d8[_0x0c23('0x2d')]){delete _0x2266d8[_0x0c23('0x2d')];}_0x50e825['status'](_0x4a32a6)[_0x0c23('0x2e')](_0x2266d8);};}function getInteractionUsers(_0x5a557d,_0x307f59){return new BPromise(function(_0x1186d6,_0x4a2f21){try{if(_0x307f59[_0x5a557d['id']]){_0x5a557d['Users']=_[_0x0c23('0x2f')](_0x307f59[_0x5a557d['id']],function(_0x40f89a){return{'id':_0x40f89a['id'],'fullname':_0x40f89a[_0x0c23('0x30')]};});}}catch(_0x4a86e4){_0x4a2f21(_0x4a86e4);}_0x1186d6(_0x5a557d);});}function getInteractionTags(_0x35765c,_0x21e3fa){return new BPromise(function(_0x25582c,_0x4d928c){try{if(_0x35765c['TagIds']){_0x35765c[_0x0c23('0x31')]=[];_0x35765c[_0x0c23('0x32')]['split'](',')[_0x0c23('0x33')](function(_0x55d191){_0x35765c[_0x0c23('0x31')][_0x0c23('0x34')](_0x21e3fa[_0x55d191]);});}delete _0x35765c[_0x0c23('0x32')];}catch(_0x41fac9){_0x4d928c(_0x41fac9);}_0x25582c(_0x35765c);});}function updateOpenchannelInteraction(_0x1e37fe,_0x4cabcb,_0x53ad23){return new BPromise(function(_0x53878e,_0x33c6b5){return getInteractionUsers(_0x1e37fe,_0x53ad23)[_0x0c23('0x28')](function(_0x69289a){return getInteractionTags(_0x69289a,_0x4cabcb);})[_0x0c23('0x28')](function(_0x48178e){_0x53878e(_0x48178e);})[_0x0c23('0x35')](function(_0x2a9a26){_0x33c6b5(_0x2a9a26);});});}exports[_0x0c23('0x36')]=function(_0x57a8db,_0x12cd3a){var _0x3cda90={},_0x2f48f4={},_0x3cf319={'count':0x0,'rows':[]};var _0x31bbd4=_['map'](db[_0x0c23('0x37')]['rawAttributes'],function(_0x3293d5){return{'name':_0x3293d5[_0x0c23('0x38')],'type':_0x3293d5[_0x0c23('0x39')][_0x0c23('0x3a')]};});_0x2f48f4['model']=_[_0x0c23('0x2f')](_0x31bbd4,'name');_0x2f48f4['query']=_[_0x0c23('0x3b')](_0x57a8db[_0x0c23('0x3c')]);_0x2f48f4['filters']=_[_0x0c23('0x3d')](_0x2f48f4['model'],_0x2f48f4[_0x0c23('0x3c')]);_0x3cda90[_0x0c23('0x3e')]=_[_0x0c23('0x3d')](_0x2f48f4[_0x0c23('0x3f')],qs[_0x0c23('0x40')](_0x57a8db['query']['fields']));_0x3cda90[_0x0c23('0x3e')]=_0x3cda90[_0x0c23('0x3e')]['length']?_0x3cda90[_0x0c23('0x3e')]:_0x2f48f4[_0x0c23('0x3f')];if(!_0x57a8db['query'][_0x0c23('0x41')](_0x0c23('0x42'))){_0x3cda90['limit']=qs[_0x0c23('0x23')](_0x57a8db[_0x0c23('0x3c')][_0x0c23('0x23')]);_0x3cda90['offset']=qs[_0x0c23('0x22')](_0x57a8db[_0x0c23('0x3c')][_0x0c23('0x22')]);}_0x3cda90[_0x0c23('0x43')]=qs['sort'](_0x57a8db[_0x0c23('0x3c')][_0x0c23('0x44')]);_0x3cda90[_0x0c23('0x45')]=qs[_0x0c23('0x46')](_[_0x0c23('0x47')](_0x57a8db[_0x0c23('0x3c')],_0x2f48f4[_0x0c23('0x46')]));var _0x5108e6=[];var _0xe06cfb=squel['select']()[_0x0c23('0x48')]('id')[_0x0c23('0x48')](_0x0c23('0x2d'))[_0x0c23('0x48')](_0x0c23('0x49'))['from'](_0x0c23('0x4a'));var _0x1c3d2f=squel[_0x0c23('0x4b')]()[_0x0c23('0x48')](_0x0c23('0x4c'))[_0x0c23('0x48')](_0x0c23('0x4d'))[_0x0c23('0x48')]('ui.OpenchannelInteractionId')[_0x0c23('0x4e')](_0x0c23('0x4f'),'ui')['left_join'](_0x0c23('0x50'),'u','u.id\x20=\x20ui.UserId');var _0x1cdcba=squel[_0x0c23('0x4b')]()[_0x0c23('0x4e')](_0x0c23('0x51'),'i')[_0x0c23('0x52')](_0x0c23('0x53'),'c',_0x0c23('0x54'))[_0x0c23('0x52')](_0x0c23('0x50'),'o',_0x0c23('0x55'))['left_join'](_0x0c23('0x56'),'a','a.id\x20=\x20i.OpenchannelAccountId')['left_join']('openchannel_messages','me',_0x0c23('0x57'))[_0x0c23('0x52')](_0x0c23('0x58'),'it',_0x0c23('0x59'))['left_join'](_0x0c23('0x4a'),'t',_0x0c23('0x5a'));var _0x172dbd=squel[_0x0c23('0x5b')]();var _0x45fb8c=[];var _0x15f266=squel[_0x0c23('0x5b')]();var _0x4b7844;if(_0x57a8db[_0x0c23('0x3c')][_0x0c23('0x5c')]){_0x4b7844=as[_0x0c23('0x5d')](_0x57a8db[_0x0c23('0x3c')]['search']);var _0x445d79=_0x4b7844['sqlOperator'];for(var _0x4d700b=0x0;_0x4d700b<_0x4b7844['conditions'][_0x0c23('0x5e')];_0x4d700b++){var _0x4f3df5=_0x4b7844['conditions'][_0x4d700b];var _0x51af13='i';var _0x35c9a7=_[_0x0c23('0x5f')](_0x31bbd4,['name',_0x4f3df5[_0x0c23('0x48')]]);if(!_0x35c9a7){switch(_0x4f3df5[_0x0c23('0x48')]){case _0x0c23('0x60'):if(_0x4f3df5[_0x0c23('0x61')]==0x1){_0x1cdcba[_0x0c23('0x62')]('`'+_0x4f3df5[_0x0c23('0x48')]+_0x0c23('0x63'));}else{_0x1cdcba[_0x0c23('0x62')]('`'+_0x4f3df5[_0x0c23('0x48')]+'`\x20>\x200');}break;case'Contact':if(_0x4f3df5[_0x0c23('0x64')]===_0x0c23('0x65')){if(_0x4f3df5[_0x0c23('0x61')]['split']('\x20')[_0x0c23('0x5e')]>0x1){_0x172dbd[_0x445d79](_0x0c23('0x66'),qs['getFullTextValue'](_0x4f3df5[_0x0c23('0x61')]),null);}else{var _0x53a69e='%'+_0x4f3df5[_0x0c23('0x61')]+'%';_0x172dbd[_0x445d79]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x53a69e,_0x53a69e,_0x53a69e);}}else{_0x35c9a7=_[_0x0c23('0x5f')](_0x31bbd4,[_0x0c23('0x2d'),_0x0c23('0x67')]);_0x4f3df5[_0x0c23('0x48')]=_0x0c23('0x67');_0xd98c48=as[_0x0c23('0x68')](_0x51af13,_0x35c9a7[_0x0c23('0x39')],_0x4f3df5);_0x172dbd[_0x445d79](_0xd98c48[_0x0c23('0x69')],_0xd98c48[_0x0c23('0x61')]['start'],_0xd98c48[_0x0c23('0x61')][_0x0c23('0x1f')]);}break;case'Tag':var _0x51f24e=_0x4f3df5[_0x0c23('0x61')][_0x0c23('0x6a')](',')[_0x0c23('0x2f')](function(_0x2ffad6){return Number(_0x2ffad6);});_0x51f24e[_0x0c23('0x33')](function(_0xa7b581){_0x15f266['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0xa7b581+',%');});_0x45fb8c=_[_0x0c23('0x6b')](_0x45fb8c,_0x51f24e);break;case _0x0c23('0x6c'):if(_0x4f3df5[_0x0c23('0x64')]===_0x0c23('0x65')){_0x172dbd[_0x445d79]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x4f3df5[_0x0c23('0x61')]+'%',null);}else{_0x35c9a7=_[_0x0c23('0x5f')](_0x31bbd4,[_0x0c23('0x2d'),_0x0c23('0x6d')]);_0x4f3df5[_0x0c23('0x48')]=_0x0c23('0x6d');_0xd98c48=as[_0x0c23('0x68')](_0x51af13,_0x35c9a7[_0x0c23('0x39')],_0x4f3df5);_0x172dbd[_0x445d79](_0xd98c48['text'],_0xd98c48[_0x0c23('0x61')]['start'],_0xd98c48[_0x0c23('0x61')][_0x0c23('0x1f')]);}break;case _0x0c23('0x6e'):_0xd98c48=as[_0x0c23('0x68')]('me',null,_0x4f3df5);_0x172dbd[_0x445d79](_0xd98c48[_0x0c23('0x69')],_0xd98c48[_0x0c23('0x61')][_0x0c23('0x6f')],_0xd98c48[_0x0c23('0x61')]['end']);break;}}else{var _0xd98c48=as[_0x0c23('0x68')](_0x51af13,_0x35c9a7['type'],_0x4f3df5);_0x172dbd[_0x445d79](_0xd98c48[_0x0c23('0x69')],_0xd98c48['value'][_0x0c23('0x6f')],_0xd98c48['value'][_0x0c23('0x1f')]);}}}else{var _0x16712f=_(_0x57a8db[_0x0c23('0x3c')])[_0x0c23('0x3b')]()[_0x0c23('0x2f')](function(_0x5b3bbd){return _['some'](_0x31bbd4,['name',_0x5b3bbd])?_0x5b3bbd:undefined;})[_0x0c23('0x70')]()['value']();if(!_[_0x0c23('0x71')](_0x16712f)){_0x16712f[_0x0c23('0x33')](function(_0x69ceea){if(_0x69ceea===_0x0c23('0x72')){_0x1cdcba[_0x0c23('0x45')]('i.OpenchannelAccountId\x20IN\x20?',[]['concat'](_0x57a8db[_0x0c23('0x3c')][_0x69ceea]));}else if(_0x69ceea===_0x0c23('0x73')){var _0x44987e=JSON[_0x0c23('0x74')](_0x57a8db[_0x0c23('0x3c')][_0x69ceea])['$gte'];var _0x4a92fd=JSON[_0x0c23('0x74')](_0x57a8db['query'][_0x69ceea])[_0x0c23('0x75')];_0x1cdcba['where']('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x44987e,_0x4a92fd);}else{if(_0x57a8db[_0x0c23('0x3c')][_0x69ceea]===_0x0c23('0x76')){_0x1cdcba['where']('i.'+_0x69ceea+_0x0c23('0x77'));}else{_0x1cdcba[_0x0c23('0x45')]('i.'+_0x69ceea+_0x0c23('0x78'),_0x57a8db[_0x0c23('0x3c')][_0x69ceea]);}}});}if(_0x57a8db[_0x0c23('0x3c')]['read']){if(_0x57a8db[_0x0c23('0x3c')][_0x0c23('0x79')]==0x1){_0x1cdcba['having'](_0x0c23('0x7a'));}else{_0x1cdcba[_0x0c23('0x62')]('`unreadMessages`\x20>\x200');}}if(_0x57a8db[_0x0c23('0x3c')]['tag']){_0x45fb8c=_[_0x0c23('0x7b')](_0x57a8db['query'][_0x0c23('0x7c')])?_0x57a8db['query'][_0x0c23('0x7c')]:new Array(_0x57a8db[_0x0c23('0x3c')]['tag']);_0x45fb8c['forEach'](function(_0x562d0e){_0x15f266['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x562d0e+',%');});}if(_0x57a8db[_0x0c23('0x3c')][_0x0c23('0x7d')]){var _0x25492f=_0x57a8db[_0x0c23('0x3c')][_0x0c23('0x7d')][_0x0c23('0x7e')]('\x5c','\x5c\x5c')[_0x0c23('0x7e')]('\x27\x27','\x27\x27\x27\x27');if(qs['isNumeric'](_0x25492f)){_0x172dbd['or'](_0x0c23('0x7f'),_0x25492f+'%');}else{_0x172dbd['or'](_0x0c23('0x80'),qs[_0x0c23('0x81')](_0x25492f))['or']('i.from\x20LIKE\x20?',_0x25492f+'%')['or'](_0x0c23('0x82'),_0x25492f+'%');}}}_0x1cdcba['where'](_0x172dbd);_0x1cdcba[_0x0c23('0x83')](_0x0c23('0x84'));var _0x46e555={'type':db['Sequelize'][_0x0c23('0x85')][_0x0c23('0x86')],'raw':!![]};var _0x4e3eca=_0x1cdcba[_0x0c23('0x87')]();_0x4e3eca['field'](_0x0c23('0x84'));_0x4e3eca[_0x0c23('0x48')](_0x0c23('0x88'),_0x0c23('0x60'));if(_0x3cda90['order']){_0x3cda90[_0x0c23('0x43')][_0x0c23('0x33')](function(_0x39fafb){_0x1cdcba[_0x0c23('0x43')]('i.'+_0x39fafb[0x0],_0x39fafb[0x1]===_0x0c23('0x89')?![]:!![]);});}if(!_['isEmpty'](_0x45fb8c)){_0x1cdcba[_0x0c23('0x62')](_0x15f266);_0x4e3eca[_0x0c23('0x45')](_0x0c23('0x8a'),_0x45fb8c);}BPromise[_0x0c23('0x8b')]()[_0x0c23('0x28')](function(){if(!_0x4b7844){if(_0x57a8db['query'][_0x0c23('0x72')]||_0x57a8db[_0x0c23('0x3c')]['journey'])return;_0x4e3eca[_0x0c23('0x45')]('i.OpenchannelAccountId\x20IS\x20NOT\x20NULL');_0x1cdcba[_0x0c23('0x45')](_0x0c23('0x8c'));return;}return _0x57a8db['user'][_0x0c23('0x8d')]({'attributes':['id'],'raw':!![]})[_0x0c23('0x28')](function(_0x1e5210){if(_[_0x0c23('0x71')](_0x1e5210)){_0x4e3eca['where'](_0x0c23('0x8e'));_0x1cdcba[_0x0c23('0x45')]('i.OpenchannelAccountId\x20IS\x20NULL');}else{_0x4e3eca['where'](_0x0c23('0x8f'),_[_0x0c23('0x2f')](_0x1e5210,'id'));_0x1cdcba[_0x0c23('0x45')](_0x0c23('0x8f'),_[_0x0c23('0x2f')](_0x1e5210,'id'));}});})[_0x0c23('0x28')](function(){db['sequelize'][_0x0c23('0x3c')](_0x4e3eca[_0x0c23('0x90')](),_0x46e555)[_0x0c23('0x28')](function(_0x59f394){_0x3cf319['count']=_0x59f394[_0x0c23('0x5e')];if(_0x3cf319[_0x0c23('0x21')]===0x0)return[];return db[_0x0c23('0x91')][_0x0c23('0x3c')](_0xe06cfb[_0x0c23('0x90')](),_0x46e555)['then'](function(_0x1aa61a){_0x5108e6=_[_0x0c23('0x92')](_0x1aa61a,'id');_0x46e555=_[_0x0c23('0x93')](_0x46e555,{'model':db[_0x0c23('0x37')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x57a8db[_0x0c23('0x3c')][_0x0c23('0x40')]){_0x3cda90[_0x0c23('0x3e')][_0x0c23('0x33')](function(_0x223d56){_0x1cdcba['field']('i.'+_0x223d56);});}else{_0x1cdcba[_0x0c23('0x48')](_0x0c23('0x88'),_0x0c23('0x60'));_0x1cdcba[_0x0c23('0x48')]('a.key',_0x0c23('0x94'));_0x1cdcba[_0x0c23('0x48')]('a.mandatoryDisposition',_0x0c23('0x95'));_0x1cdcba['field'](_0x0c23('0x96'));_0x1cdcba[_0x0c23('0x48')](_0x0c23('0x97'),_0x0c23('0x98'));_0x1cdcba['field']('c.lastName',_0x0c23('0x99'));_0x1cdcba[_0x0c23('0x48')]('c.email','Contact.email');_0x1cdcba[_0x0c23('0x48')](_0x0c23('0x9a'),'Contact.phone');_0x1cdcba[_0x0c23('0x48')](_0x0c23('0x9b'),_0x0c23('0x9c'));_0x1cdcba[_0x0c23('0x48')]('c.fax',_0x0c23('0x9d'));_0x1cdcba[_0x0c23('0x48')]('o.fullname','Owner.fullname');_0x1cdcba[_0x0c23('0x48')](_0x0c23('0x9e'),_0x0c23('0x9f'));_0x1cdcba[_0x0c23('0x48')](_0x0c23('0xa0'),_0x0c23('0x32'));}_0x1cdcba[_0x0c23('0x23')](_0x3cda90[_0x0c23('0x23')]);_0x1cdcba[_0x0c23('0x22')](_0x3cda90['offset']);return db[_0x0c23('0x91')][_0x0c23('0x3c')](_0x1cdcba[_0x0c23('0x90')](),_0x46e555);})[_0x0c23('0x28')](function(_0x362d6d){_0x1c3d2f['where'](_0x0c23('0xa1'),_['map'](_0x362d6d,'id'));return db['sequelize'][_0x0c23('0x3c')](_0x1c3d2f[_0x0c23('0x90')](),_0x46e555)[_0x0c23('0x28')](function(_0x938fa7){var _0x29bfee=_[_0x0c23('0xa2')](_0x938fa7,'OpenchannelInteractionId');var _0x286983=[];_0x362d6d['forEach'](function(_0x32d89d){_0x286983[_0x0c23('0x34')](updateOpenchannelInteraction(_0x32d89d,_0x5108e6,_0x29bfee));});return BPromise[_0x0c23('0xa3')](_0x286983);});});})[_0x0c23('0x28')](function(_0x42fda7){_0x3cf319[_0x0c23('0xa4')]=_0x42fda7;return _0x3cf319;})[_0x0c23('0x28')](respondWithFilteredResult(_0x12cd3a,_0x3cda90));})[_0x0c23('0x35')](handleError(_0x12cd3a,null));};exports[_0x0c23('0xa5')]=function(_0x426513,_0x663c0d){var _0x597d1d={'raw':![],'where':{'id':_0x426513[_0x0c23('0xa6')]['id']}},_0x4d448d={};_0x4d448d[_0x0c23('0x3f')]=_['keys'](db[_0x0c23('0x37')]['rawAttributes']);_0x4d448d['query']=_[_0x0c23('0x3b')](_0x426513[_0x0c23('0x3c')]);_0x4d448d[_0x0c23('0x46')]=_[_0x0c23('0x3d')](_0x4d448d[_0x0c23('0x3f')],_0x4d448d['query']);_0x597d1d['attributes']=_[_0x0c23('0x3d')](_0x4d448d[_0x0c23('0x3f')],qs['fields'](_0x426513[_0x0c23('0x3c')]['fields']));_0x597d1d[_0x0c23('0x3e')]=_0x597d1d[_0x0c23('0x3e')][_0x0c23('0x5e')]?_0x597d1d[_0x0c23('0x3e')]:_0x4d448d['model'];if(_0x426513['query']['includeAll']){_0x597d1d[_0x0c23('0xa7')]=[{'all':!![]}];}_0x597d1d=_[_0x0c23('0x93')]({},_0x597d1d,_0x426513['options']);return db[_0x0c23('0x37')][_0x0c23('0x5f')](_0x597d1d)[_0x0c23('0x28')](handleEntityNotFound(_0x663c0d,null))[_0x0c23('0x28')](respondWithResult(_0x663c0d,null))[_0x0c23('0x35')](handleError(_0x663c0d,null));};exports[_0x0c23('0xa8')]=function(_0x7bdade,_0x9bbad4){return db['OpenchannelInteraction'][_0x0c23('0xa8')](_0x7bdade[_0x0c23('0x6e')],{})[_0x0c23('0x28')](respondWithResult(_0x9bbad4,0xc9))[_0x0c23('0x35')](handleError(_0x9bbad4,null));};exports[_0x0c23('0xa9')]=function(_0x2e9f3c,_0x52e127){if(_0x2e9f3c[_0x0c23('0x6e')]['id']){delete _0x2e9f3c[_0x0c23('0x6e')]['id'];}return db[_0x0c23('0x37')][_0x0c23('0x5f')]({'where':{'id':_0x2e9f3c[_0x0c23('0xa6')]['id']}})[_0x0c23('0x28')](handleEntityNotFound(_0x52e127,null))['then'](saveUpdates(_0x2e9f3c[_0x0c23('0x6e')],null))[_0x0c23('0x28')](respondWithResult(_0x52e127,null))[_0x0c23('0x35')](handleError(_0x52e127,null));};exports[_0x0c23('0x29')]=function(_0xe7756f,_0x2ee059){return db['OpenchannelInteraction'][_0x0c23('0x5f')]({'where':{'id':_0xe7756f['params']['id']}})['then'](handleEntityNotFound(_0x2ee059,null))['then'](removeEntity(_0x2ee059,null))[_0x0c23('0x35')](handleError(_0x2ee059,null));};exports[_0x0c23('0xaa')]=function(_0x3bb5f6,_0x1f9e9c){return db[_0x0c23('0x37')][_0x0c23('0xaa')]()[_0x0c23('0x28')](respondWithResult(_0x1f9e9c,null))[_0x0c23('0x35')](handleError(_0x1f9e9c,null));};exports[_0x0c23('0xab')]=function(_0x4b3015,_0x166b9f,_0x5e99de){return db[_0x0c23('0xac')][_0x0c23('0x5f')]({'where':{'id':_0x4b3015[_0x0c23('0xa6')]['id']}})[_0x0c23('0x28')](handleEntityNotFound(_0x166b9f,null))[_0x0c23('0x28')](function(_0x276d5d){if(_0x276d5d){return _0x276d5d[_0x0c23('0xab')](_0x4b3015[_0x0c23('0x6e')][_0x0c23('0xad')],_[_0x0c23('0xae')](_0x4b3015['body'],[_0x0c23('0xad'),'id'])||{});}})['then'](respondWithResult(_0x166b9f,null))[_0x0c23('0x35')](handleError(_0x166b9f,null));};exports[_0x0c23('0xaf')]=function(_0x373b5b,_0x232b2b,_0x3ed08d){var _0x391656={'raw':![],'where':{}};var _0x2cf138={};var _0x47cccd={'count':0x0,'rows':[]};return db[_0x0c23('0x37')][_0x0c23('0xb0')]({'where':{'id':_0x373b5b['params']['id']}})['then'](handleEntityNotFound(_0x232b2b,null))['then'](function(_0x147ffd){if(_0x147ffd){_0x2cf138[_0x0c23('0x3f')]=_[_0x0c23('0x3b')](db['OpenchannelMessage'][_0x0c23('0xb1')]);_0x2cf138[_0x0c23('0x3c')]=_[_0x0c23('0x3b')](_0x373b5b['query']);_0x2cf138[_0x0c23('0x46')]=_[_0x0c23('0x3d')](_0x2cf138[_0x0c23('0x3f')],_0x2cf138[_0x0c23('0x3c')]);_0x391656[_0x0c23('0x3e')]=_['intersection'](_0x2cf138[_0x0c23('0x3f')],qs[_0x0c23('0x40')](_0x373b5b['query'][_0x0c23('0x40')]));_0x391656[_0x0c23('0x3e')]=_0x391656[_0x0c23('0x3e')]['length']?_0x391656[_0x0c23('0x3e')]:_0x2cf138['model'];if(!_0x373b5b[_0x0c23('0x3c')]['hasOwnProperty']('nolimit')){_0x391656[_0x0c23('0x23')]=qs[_0x0c23('0x23')](_0x373b5b['query']['limit']);_0x391656['offset']=qs[_0x0c23('0x22')](_0x373b5b[_0x0c23('0x3c')]['offset']);}_0x391656[_0x0c23('0x43')]=qs[_0x0c23('0x44')](_0x373b5b[_0x0c23('0x3c')][_0x0c23('0x44')]);_0x391656['where']=qs[_0x0c23('0x46')](_[_0x0c23('0x47')](_0x373b5b[_0x0c23('0x3c')],_0x2cf138[_0x0c23('0x46')]));_0x391656['where'][_0x0c23('0xb2')]=_0x147ffd['id'];if(_0x373b5b[_0x0c23('0x3c')][_0x0c23('0x7d')]){_0x391656[_0x0c23('0x45')]=_[_0x0c23('0x93')](_0x391656[_0x0c23('0x45')],{'$or':_['map'](_0x391656['attributes'],function(_0x394008){var _0xb69d8a={};_0xb69d8a[_0x394008]={'$like':'%'+_0x373b5b[_0x0c23('0x3c')][_0x0c23('0x7d')]+'%'};return _0xb69d8a;})});}if(_0x373b5b['query'][_0x0c23('0xb3')]){var _0x4383f4=_0x373b5b['query'][_0x0c23('0xb3')][_0x0c23('0x6a')](',');var _0x345686={};_0x345686[_0x4383f4[0x0]]={'$gte':moment(_0x4383f4[0x1])[_0x0c23('0xb4')](_0x0c23('0xb5'))};_0x391656[_0x0c23('0x45')]=_[_0x0c23('0x93')](_0x391656['where'],_0x345686);}_0x391656=_[_0x0c23('0x93')]({},_0x391656,_0x373b5b[_0x0c23('0xb6')]);return db[_0x0c23('0xac')][_0x0c23('0x21')]({'where':_0x391656[_0x0c23('0x45')]})['then'](function(_0x471790){_0x47cccd['count']=_0x471790;if(_0x373b5b[_0x0c23('0x3c')][_0x0c23('0xb7')]){_0x391656[_0x0c23('0xa7')]=[{'all':!![]}];}return db[_0x0c23('0xac')][_0x0c23('0xb8')](_0x391656);})[_0x0c23('0x28')](function(_0x35d2dd){_0x47cccd[_0x0c23('0xa4')]=_0x35d2dd;return _0x47cccd;});}})[_0x0c23('0x28')](respondWithFilteredResult(_0x232b2b,_0x391656))[_0x0c23('0x35')](handleError(_0x232b2b,null));};exports[_0x0c23('0xb9')]=function(_0x4e6b78,_0x15f6a8,_0x22108f){return db[_0x0c23('0x37')][_0x0c23('0x5f')]({'where':{'id':_0x4e6b78['params']['id']}})[_0x0c23('0x28')](handleEntityNotFound(_0x15f6a8,null))[_0x0c23('0x28')](function(_0x4eb3ef){if(_0x4eb3ef){return _0x4eb3ef[_0x0c23('0xba')](_0x4e6b78[_0x0c23('0x6e')][_0x0c23('0xad')],_['omit'](_0x4e6b78[_0x0c23('0x6e')],[_0x0c23('0xad'),'id'])||{})[_0x0c23('0xbb')](function(){return db[_0x0c23('0xbc')][_0x0c23('0xb8')]({'attributes':['id',_0x0c23('0x2d'),_0x0c23('0x49')],'where':{'id':_0x4e6b78['body']['ids']}});})['then'](function(_0x43e527){socket[_0x0c23('0xbd')](_0x0c23('0xbe'),{'id':Number(_0x4e6b78['params']['id']),'tags':_0x43e527||[]});return{'id':Number(_0x4e6b78[_0x0c23('0xa6')]['id']),'tags':_0x43e527||[]};});}})[_0x0c23('0x28')](respondWithResult(_0x15f6a8,null))[_0x0c23('0x35')](handleError(_0x15f6a8,null));};exports['removeTags']=function(_0x270689,_0xd2eb98,_0x379e0d){return db['OpenchannelInteraction'][_0x0c23('0x5f')]({'where':{'id':_0x270689[_0x0c23('0xa6')]['id']}})[_0x0c23('0x28')](handleEntityNotFound(_0xd2eb98,null))[_0x0c23('0x28')](function(_0x510468){if(_0x510468){return _0x510468['removeTags'](_0x270689[_0x0c23('0x3c')]['ids']);}})['then'](respondWithStatusCode(_0xd2eb98,null))[_0x0c23('0x35')](handleError(_0xd2eb98,null));};exports[_0x0c23('0xbf')]=function(_0x291dcb,_0x303f1b){var _0x19c209=moment()[_0x0c23('0xc0')]()['toString']();var _0x3b76a4=path[_0x0c23('0xc1')](config['root'],_0x0c23('0xc2'),_0x0c23('0xc3'),_0x0c23('0xc4'));var _0x44eb78=path[_0x0c23('0xc1')](config[_0x0c23('0xc5')],_0x0c23('0xc2'),'files',_0x0c23('0xc6'));var _0x198965=path[_0x0c23('0xc1')](_0x3b76a4,_0x19c209);var _0x19e23a=util[_0x0c23('0xb4')](_0x0c23('0xc7'),_0x291dcb[_0x0c23('0xa6')]['id'],_0x19c209);var _0x3c41c2=path[_0x0c23('0xc1')](_0x3b76a4,_0x19e23a);var _0x29fdf1=[];_0x29fdf1[_0x0c23('0x34')]({'model':db[_0x0c23('0x6c')],'as':_0x0c23('0x6c'),'attributes':['id',_0x0c23('0x30')],'raw':!![]});_0x29fdf1[_0x0c23('0x34')]({'model':db[_0x0c23('0xc8')],'as':'Contact','attributes':['id',_0x0c23('0xc9'),'lastName'],'raw':!![]});if(_0x291dcb['query'][_0x0c23('0xc6')]){_0x29fdf1[_0x0c23('0x34')]({'model':db['Attachment'],'as':_0x0c23('0xca'),'raw':!![]});}var _0x53220d=[{'model':db['OpenchannelMessage'],'as':_0x0c23('0xcb'),'attributes':['id',_0x0c23('0x6e'),'createdAt',_0x0c23('0xcc'),_0x0c23('0xcd'),'read'],'include':_0x29fdf1}];_0x53220d[_0x0c23('0x34')]({'model':db[_0x0c23('0xce')],'as':_0x0c23('0xcf'),'attributes':['id','name']});_0x53220d[_0x0c23('0x34')]({'model':db[_0x0c23('0x6c')],'as':_0x0c23('0xd0'),'attributes':['id',_0x0c23('0x30')]});return db[_0x0c23('0x37')][_0x0c23('0x5f')]({'where':{'id':_0x291dcb[_0x0c23('0xa6')]['id']},'include':_0x53220d})[_0x0c23('0x28')](handleEntityNotFound(_0x303f1b,null))['then'](function(_0x40d94d){if(_0x40d94d){var _0x464cdb=_0x40d94d[_0x0c23('0xd1')]({'plain':!![]});fs[_0x0c23('0xd2')](_0x198965);var _0xd312fd={'format':'A4','border':_0x0c23('0xd3'),'header':{'height':_0x0c23('0xd4'),'contents':{'first':_0x0c23('0xd5')}},'footer':{'height':'30px','contents':{'default':util[_0x0c23('0xb4')](_0x0c23('0xd6'),util[_0x0c23('0xb4')](_0x0c23('0xd7'),_0x0c23('0xd8'),_0x464cdb['id']),moment()['format'](_0x0c23('0xd9'))[_0x0c23('0x90')]())}}};var _0x12c04c={'channel':'Openchannel','account':_0x464cdb[_0x0c23('0xcf')]['name'],'agent':_0x464cdb['Owner']?_0x464cdb[_0x0c23('0xd0')]['fullname']:_0x0c23('0xda'),'createdAt':moment(_0x464cdb[_0x0c23('0x73')])[_0x0c23('0xb4')](_0x0c23('0xb5'))['toString'](),'closedAt':_0x464cdb['closed']?moment(_0x464cdb[_0x0c23('0xdb')])['format'](_0x0c23('0xb5'))['toString']():'','disposition':_0x464cdb[_0x0c23('0xdc')],'visibility':_0x464cdb[_0x0c23('0xdd')]?'Public':'Private','messages':_(_0x464cdb[_0x0c23('0xcb')])[_0x0c23('0x7d')]({'secret':![]})[_0x0c23('0x2f')](function(_0x53cad3){if(_0x53cad3[_0x0c23('0xca')]){var _0x5ecab6=path[_0x0c23('0xc1')](_0x44eb78,_0x53cad3[_0x0c23('0xca')]['basename']);if(fs[_0x0c23('0xde')](_0x5ecab6)){fs[_0x0c23('0xdf')](_0x5ecab6)[_0x0c23('0xe0')](fs[_0x0c23('0xe1')](path[_0x0c23('0xc1')](_0x198965,_0x53cad3['Attachment'][_0x0c23('0xe2')])));}}return{'date':moment(_0x53cad3[_0x0c23('0x73')])['format']('YYYY-MM-DD\x20HH:mm:ss')[_0x0c23('0x90')](),'sender':_0x53cad3[_0x0c23('0xcc')]===_0x0c23('0xe3')?_0x53cad3['User']?_0x53cad3[_0x0c23('0x6c')][_0x0c23('0x30')]:_0x0c23('0xe4'):_0x53cad3[_0x0c23('0xe5')][_0x0c23('0xc9')]+(_0x53cad3[_0x0c23('0xe5')]['lastName']?'\x20'+_0x53cad3['Contact'][_0x0c23('0xe6')]:''),'body':_0x53cad3[_0x0c23('0xca')]?_0x53cad3[_0x0c23('0xca')][_0x0c23('0xe2')]:_0x53cad3[_0x0c23('0x6e')],'direction':_0x53cad3[_0x0c23('0xcc')]===_0x0c23('0xe3')?'A':'C','secret':_0x53cad3[_0x0c23('0xcd')],'read':_0x53cad3['read'],'attachment':_0x53cad3[_0x0c23('0xca')]};})[_0x0c23('0x61')]()};return ejs['renderFile'](path[_0x0c23('0xc1')](config[_0x0c23('0xc5')],_0x0c23('0xc2'),_0x0c23('0xe7'),_0x0c23('0xe8')),{'interaction':_0x12c04c})[_0x0c23('0x28')](function(_0x39f19f){return new BPromise(function(_0x5d521b,_0xf70b9c){pdf[_0x0c23('0xa8')](_0x39f19f,_0xd312fd)[_0x0c23('0xe9')](path[_0x0c23('0xc1')](_0x198965,_0x0c23('0xea')+_0x464cdb['id']+'-'+_0x19c209+_0x0c23('0xeb')),function(_0xecaa0d,_0x3a1991){if(_0xecaa0d)return _0xf70b9c(_0xecaa0d);_0x5d521b(_0x3a1991);});});})[_0x0c23('0x28')](function(){return new BPromise(function(_0xaf0f23,_0x1a9caf){zipdir(_0x198965,{'saveTo':_0x3c41c2},function(_0xcea710,_0x217f18){if(_0xcea710)return _0x1a9caf(_0xcea710);return _0xaf0f23(_0x217f18);});})[_0x0c23('0x28')](function(){return new BPromise(function(_0x97160c,_0x39ec39){rimraf(_0x198965,function(_0x5146cd){if(_0x5146cd)_0x39ec39(_0x5146cd);return _0x97160c();});});})[_0x0c23('0x28')](function(){return _0x303f1b[_0x0c23('0xbf')](_0x3c41c2,_0x19e23a,function(_0x4f3d00){if(_0x4f3d00){console[_0x0c23('0xec')](_0x0c23('0xed'),_0x4f3d00);}else{fs[_0x0c23('0xee')](_0x3c41c2);}});});});}else{return _0x303f1b[_0x0c23('0x2a')](0xc8);}})[_0x0c23('0x35')](handleError(_0x303f1b,null));};