41e49fc9f25f705caab99b150917149135156140
[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 _0x049b=['YYYY-MM-DD\x20HH:mm:ss','findAll','rows','setTags','spread','emit','openchannelInteractionTags:save','removeTags','download','join','server','files','tmp','root','attachments','CmContact','Contact','firstName','Attachment','Messages','direction','secret','OpenchannelAccount','Owner','get','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>','30px','<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','Account','createdAt','closed','closedAt','disposition','threadId','Public','Private','basename','existsSync','pipe','out','lastName','renderFile','views','downloadInteraction.html','toFile','transcript-','.pdf','log','err','unlinkSync','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/advancedSearch','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./openchannelInteraction.socket','register','sendStatus','end','status','json','count','offset','limit','set','Content-Range','reject','save','then','destroy','error','name','send','map','fullname','TagIds','Tags','split','forEach','push','catch','index','OpenchannelInteraction','fieldName','type','model','query','intersection','fields','attributes','length','nolimit','order','filters','field','color','from','tools_tags','select','u.id','u.fullname','user_has_openchannel_interactions','left_join','users','u.id\x20=\x20ui.UserId','openchannel_interactions','cm_contacts','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','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','having','`\x20=\x200','`\x20>\x200','operator','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','value','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','text','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','$substring','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','body','keys','where','i.OpenchannelAccountId\x20IN\x20?','concat','parse','$gte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','\x27\x27\x27\x27','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?','i.id','Sequelize','QueryTypes','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','unreadMessages','DESC','isEmpty','resolve','OpenchannelAccountId','journey','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','user','getOpenchannelAccounts','i.OpenchannelAccountId\x20IS\x20NULL','sequelize','toString','keyBy','a.key','Account.mandatoryDisposition','i.*','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','Contact.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.OpenchannelInteractionId\x20IN\x20?','OpenchannelInteractionId','all','params','includeAll','include','options','create','update','describe','OpenchannelMessage','addMessage','omit','ids','getMessages','findOne','rawAttributes','hasOwnProperty','sort','pick','format'];(function(_0x22ea31,_0x4f2b3b){var _0x403ce8=function(_0x412d93){while(--_0x412d93){_0x22ea31['push'](_0x22ea31['shift']());}};_0x403ce8(++_0x4f2b3b);}(_0x049b,0x126));var _0xb049=function(_0x97b3e7,_0x19d219){_0x97b3e7=_0x97b3e7-0x0;var _0x4d9b45=_0x049b[_0x97b3e7];return _0x4d9b45;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xb049('0x0'));var rimraf=require(_0xb049('0x1'));var zipdir=require(_0xb049('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb049('0x3'));var moment=require(_0xb049('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xb049('0x5'));var util=require(_0xb049('0x6'));var path=require(_0xb049('0x7'));var sox=require(_0xb049('0x8'));var csv=require(_0xb049('0x9'));var ejs=require(_0xb049('0xa'));var fs=require('fs');var _=require(_0xb049('0xb'));var squel=require(_0xb049('0xc'));var crypto=require(_0xb049('0xd'));var jsforce=require(_0xb049('0xe'));var deskjs=require(_0xb049('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xb049('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xb049('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0xb049('0x12'));var db=require(_0xb049('0x13'))['db'];config[_0xb049('0x14')]=_['defaults'](config['redis'],{'host':_0xb049('0x15'),'port':0x18eb});var socket=require(_0xb049('0x16'))(new Redis(config[_0xb049('0x14')]));require(_0xb049('0x17'))[_0xb049('0x18')](socket);function respondWithStatusCode(_0x39937e,_0x2cadbb){_0x2cadbb=_0x2cadbb||0xcc;return function(_0x467752){if(_0x467752){return _0x39937e[_0xb049('0x19')](_0x2cadbb);}return _0x39937e['status'](_0x2cadbb)[_0xb049('0x1a')]();};}function respondWithResult(_0x226ec0,_0x24dd0c){_0x24dd0c=_0x24dd0c||0xc8;return function(_0x4b167e){if(_0x4b167e){return _0x226ec0[_0xb049('0x1b')](_0x24dd0c)[_0xb049('0x1c')](_0x4b167e);}};}function respondWithFilteredResult(_0x205631,_0x5609c9){return function(_0x4034de){if(_0x4034de){var _0x3b5519=_0x4034de[_0xb049('0x1d')],_0x2d5f87=_0x5609c9[_0xb049('0x1e')],_0x4771f3=_0x5609c9[_0xb049('0x1e')]+_0x5609c9[_0xb049('0x1f')],_0x47e4c4;if(_0x4771f3>=_0x3b5519){_0x4771f3=_0x3b5519;_0x47e4c4=0xc8;}else{_0x47e4c4=0xce;}_0x205631[_0xb049('0x1b')](_0x47e4c4);return _0x205631[_0xb049('0x20')](_0xb049('0x21'),_0x2d5f87+'-'+_0x4771f3+'/'+_0x3b5519)[_0xb049('0x1c')](_0x4034de);}return null;};}function patchUpdates(_0x55e3b6){return function(_0x3ec2be){try{jsonpatch['apply'](_0x3ec2be,_0x55e3b6,!![]);}catch(_0x1ee53a){return BPromise[_0xb049('0x22')](_0x1ee53a);}return _0x3ec2be[_0xb049('0x23')]();};}function saveUpdates(_0x39e0fb,_0x16b852){return function(_0x56239a){if(_0x56239a){return _0x56239a['update'](_0x39e0fb)[_0xb049('0x24')](function(_0x53dabc){return _0x53dabc;});}return null;};}function removeEntity(_0x21bfcf,_0x4bffa4){return function(_0x32cd38){if(_0x32cd38){return _0x32cd38[_0xb049('0x25')]()[_0xb049('0x24')](function(){_0x21bfcf[_0xb049('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3761eb,_0x2f3458){return function(_0x4019df){if(!_0x4019df){_0x3761eb['sendStatus'](0x194);}return _0x4019df;};}function handleError(_0xc63fa7,_0xfe8572){_0xfe8572=_0xfe8572||0x1f4;return function(_0x1b247b){logger[_0xb049('0x26')](_0x1b247b['stack']);if(_0x1b247b[_0xb049('0x27')]){delete _0x1b247b[_0xb049('0x27')];}_0xc63fa7[_0xb049('0x1b')](_0xfe8572)[_0xb049('0x28')](_0x1b247b);};}function getInteractionUsers(_0x149b83,_0x137d0a){return new BPromise(function(_0x915515,_0x1c9de3){try{if(_0x137d0a[_0x149b83['id']]){_0x149b83['Users']=_[_0xb049('0x29')](_0x137d0a[_0x149b83['id']],function(_0x2b1986){return{'id':_0x2b1986['id'],'fullname':_0x2b1986[_0xb049('0x2a')]};});}}catch(_0x4cce5f){_0x1c9de3(_0x4cce5f);}_0x915515(_0x149b83);});}function getInteractionTags(_0x56aeef,_0x5f4201){return new BPromise(function(_0x38ee95,_0x54d705){try{if(_0x56aeef[_0xb049('0x2b')]){_0x56aeef[_0xb049('0x2c')]=[];_0x56aeef[_0xb049('0x2b')][_0xb049('0x2d')](',')[_0xb049('0x2e')](function(_0x332ad7){_0x56aeef[_0xb049('0x2c')][_0xb049('0x2f')](_0x5f4201[_0x332ad7]);});}delete _0x56aeef[_0xb049('0x2b')];}catch(_0x1072de){_0x54d705(_0x1072de);}_0x38ee95(_0x56aeef);});}function updateOpenchannelInteraction(_0x4d5d7e,_0x1c1b59,_0x5ac819){return new BPromise(function(_0xd32d2f,_0x2a0a50){return getInteractionUsers(_0x4d5d7e,_0x5ac819)[_0xb049('0x24')](function(_0x30ed62){return getInteractionTags(_0x30ed62,_0x1c1b59);})['then'](function(_0xe0bf35){_0xd32d2f(_0xe0bf35);})[_0xb049('0x30')](function(_0x5cc3b9){_0x2a0a50(_0x5cc3b9);});});}exports[_0xb049('0x31')]=function(_0x5e5e29,_0x1b3049){var _0x255a19={},_0xd93324={},_0x258c07={'count':0x0,'rows':[]};var _0x47152a=_[_0xb049('0x29')](db[_0xb049('0x32')]['rawAttributes'],function(_0x4ff269){return{'name':_0x4ff269[_0xb049('0x33')],'type':_0x4ff269[_0xb049('0x34')]['key']};});_0xd93324[_0xb049('0x35')]=_[_0xb049('0x29')](_0x47152a,_0xb049('0x27'));_0xd93324[_0xb049('0x36')]=_['keys'](_0x5e5e29['query']);_0xd93324['filters']=_[_0xb049('0x37')](_0xd93324['model'],_0xd93324[_0xb049('0x36')]);_0x255a19['attributes']=_[_0xb049('0x37')](_0xd93324[_0xb049('0x35')],qs[_0xb049('0x38')](_0x5e5e29[_0xb049('0x36')][_0xb049('0x38')]));_0x255a19[_0xb049('0x39')]=_0x255a19[_0xb049('0x39')][_0xb049('0x3a')]?_0x255a19['attributes']:_0xd93324[_0xb049('0x35')];if(!_0x5e5e29[_0xb049('0x36')]['hasOwnProperty'](_0xb049('0x3b'))){_0x255a19[_0xb049('0x1f')]=qs['limit'](_0x5e5e29[_0xb049('0x36')][_0xb049('0x1f')]);_0x255a19[_0xb049('0x1e')]=qs[_0xb049('0x1e')](_0x5e5e29[_0xb049('0x36')][_0xb049('0x1e')]);}_0x255a19[_0xb049('0x3c')]=qs['sort'](_0x5e5e29[_0xb049('0x36')]['sort']);_0x255a19['where']=qs[_0xb049('0x3d')](_['pick'](_0x5e5e29[_0xb049('0x36')],_0xd93324[_0xb049('0x3d')]));var _0x2ddaf2=[];var _0x3b854a=squel['select']()[_0xb049('0x3e')]('id')[_0xb049('0x3e')](_0xb049('0x27'))['field'](_0xb049('0x3f'))[_0xb049('0x40')](_0xb049('0x41'));var _0xca4cc8=squel[_0xb049('0x42')]()[_0xb049('0x3e')](_0xb049('0x43'))['field'](_0xb049('0x44'))[_0xb049('0x3e')]('ui.OpenchannelInteractionId')['from'](_0xb049('0x45'),'ui')[_0xb049('0x46')](_0xb049('0x47'),'u',_0xb049('0x48'));var _0x9c3da2=squel[_0xb049('0x42')]()[_0xb049('0x40')](_0xb049('0x49'),'i')[_0xb049('0x46')](_0xb049('0x4a'),'c',_0xb049('0x4b'))[_0xb049('0x46')](_0xb049('0x47'),'o',_0xb049('0x4c'))[_0xb049('0x46')](_0xb049('0x4d'),'a',_0xb049('0x4e'))['left_join'](_0xb049('0x4f'),'me',_0xb049('0x50'))[_0xb049('0x46')](_0xb049('0x51'),'it','it.OpenchannelInteractionId\x20=\x20i.id')[_0xb049('0x46')](_0xb049('0x41'),'t',_0xb049('0x52'));var _0x45d85e=squel[_0xb049('0x53')]();var _0x44838b=[];var _0x4c17d0=squel[_0xb049('0x53')]();var _0x470538;if(_0x5e5e29[_0xb049('0x36')][_0xb049('0x54')]){_0x470538=as[_0xb049('0x55')](_0x5e5e29[_0xb049('0x36')]['search']);var _0x581c94=_0x470538[_0xb049('0x56')];for(var _0xe71d29=0x0;_0xe71d29<_0x470538[_0xb049('0x57')][_0xb049('0x3a')];_0xe71d29++){var _0x205adb=_0x470538[_0xb049('0x57')][_0xe71d29];var _0x422307='i';var _0x5b30ab=_[_0xb049('0x58')](_0x47152a,[_0xb049('0x27'),_0x205adb[_0xb049('0x3e')]]);if(!_0x5b30ab){switch(_0x205adb[_0xb049('0x3e')]){case'unreadMessages':if(_0x205adb['value']==0x1){_0x9c3da2[_0xb049('0x59')]('`'+_0x205adb['field']+_0xb049('0x5a'));}else{_0x9c3da2[_0xb049('0x59')]('`'+_0x205adb['field']+_0xb049('0x5b'));}break;case'Contact':if(_0x205adb[_0xb049('0x5c')]==='$substring'){if(_0x205adb['value']['split']('\x20')[_0xb049('0x3a')]>0x1){_0x45d85e[_0x581c94](_0xb049('0x5d'),qs[_0xb049('0x5e')](_0x205adb['value']),null);}else{var _0x2d91d3='%'+_0x205adb[_0xb049('0x5f')]+'%';_0x45d85e[_0x581c94](_0xb049('0x60'),_0x2d91d3,_0x2d91d3,_0x2d91d3);}}else{_0x5b30ab=_[_0xb049('0x58')](_0x47152a,['name',_0xb049('0x61')]);_0x205adb[_0xb049('0x3e')]=_0xb049('0x61');_0x209c4f=as[_0xb049('0x62')](_0x422307,_0x5b30ab[_0xb049('0x34')],_0x205adb);_0x45d85e[_0x581c94](_0x209c4f[_0xb049('0x63')],_0x209c4f[_0xb049('0x5f')][_0xb049('0x64')],_0x209c4f[_0xb049('0x5f')][_0xb049('0x1a')]);}break;case _0xb049('0x65'):var _0x55f5c2=_0x205adb[_0xb049('0x5f')][_0xb049('0x2d')](',')['map'](function(_0x51537c){return Number(_0x51537c);});_0x55f5c2[_0xb049('0x2e')](function(_0x1ff7aa){_0x4c17d0['or'](_0xb049('0x66'),'%,'+_0x1ff7aa+',%');});_0x44838b=_[_0xb049('0x67')](_0x44838b,_0x55f5c2);break;case _0xb049('0x68'):if(_0x205adb['operator']===_0xb049('0x69')){_0x45d85e[_0x581c94](_0xb049('0x6a'),'%'+_0x205adb[_0xb049('0x5f')]+'%',null);}else{_0x5b30ab=_[_0xb049('0x58')](_0x47152a,[_0xb049('0x27'),_0xb049('0x6b')]);_0x205adb[_0xb049('0x3e')]=_0xb049('0x6b');_0x209c4f=as['buildExpression'](_0x422307,_0x5b30ab[_0xb049('0x34')],_0x205adb);_0x45d85e[_0x581c94](_0x209c4f[_0xb049('0x63')],_0x209c4f[_0xb049('0x5f')]['start'],_0x209c4f['value'][_0xb049('0x1a')]);}break;case _0xb049('0x6c'):_0x209c4f=as['buildExpression']('me',null,_0x205adb);_0x45d85e[_0x581c94](_0x209c4f[_0xb049('0x63')],_0x209c4f['value'][_0xb049('0x64')],_0x209c4f[_0xb049('0x5f')][_0xb049('0x1a')]);break;}}else{var _0x209c4f=as[_0xb049('0x62')](_0x422307,_0x5b30ab['type'],_0x205adb);_0x45d85e[_0x581c94](_0x209c4f[_0xb049('0x63')],_0x209c4f[_0xb049('0x5f')]['start'],_0x209c4f[_0xb049('0x5f')]['end']);}}}else{var _0x1d9885=_(_0x5e5e29[_0xb049('0x36')])[_0xb049('0x6d')]()[_0xb049('0x29')](function(_0x9d4ddd){return _['some'](_0x47152a,[_0xb049('0x27'),_0x9d4ddd])?_0x9d4ddd:undefined;})['compact']()['value']();if(!_['isEmpty'](_0x1d9885)){_0x1d9885[_0xb049('0x2e')](function(_0x2d141b){if(_0x2d141b==='OpenchannelAccountId'){_0x9c3da2[_0xb049('0x6e')](_0xb049('0x6f'),[][_0xb049('0x70')](_0x5e5e29[_0xb049('0x36')][_0x2d141b]));}else if(_0x2d141b==='createdAt'){var _0x4ee68f=JSON[_0xb049('0x71')](_0x5e5e29[_0xb049('0x36')][_0x2d141b])[_0xb049('0x72')];var _0x3a3ba3=JSON[_0xb049('0x71')](_0x5e5e29['query'][_0x2d141b])['$lte'];_0x9c3da2[_0xb049('0x6e')](_0xb049('0x73'),_0x4ee68f,_0x3a3ba3);}else{if(_0x5e5e29[_0xb049('0x36')][_0x2d141b]==='null'){_0x9c3da2[_0xb049('0x6e')]('i.'+_0x2d141b+_0xb049('0x74'));}else{_0x9c3da2[_0xb049('0x6e')]('i.'+_0x2d141b+_0xb049('0x75'),_0x5e5e29[_0xb049('0x36')][_0x2d141b]);}}});}if(_0x5e5e29[_0xb049('0x36')][_0xb049('0x76')]){if(_0x5e5e29[_0xb049('0x36')][_0xb049('0x76')]==0x1){_0x9c3da2['having'](_0xb049('0x77'));}else{_0x9c3da2[_0xb049('0x59')](_0xb049('0x78'));}}if(_0x5e5e29[_0xb049('0x36')][_0xb049('0x79')]){_0x44838b=_[_0xb049('0x7a')](_0x5e5e29[_0xb049('0x36')][_0xb049('0x79')])?_0x5e5e29[_0xb049('0x36')]['tag']:new Array(_0x5e5e29['query'][_0xb049('0x79')]);_0x44838b[_0xb049('0x2e')](function(_0x577674){_0x4c17d0['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x577674+',%');});}if(_0x5e5e29['query'][_0xb049('0x7b')]){var _0x28af47=_0x5e5e29[_0xb049('0x36')]['filter']['replace']('\x5c','\x5c\x5c')[_0xb049('0x7c')]('\x27\x27',_0xb049('0x7d'));if(qs['isNumeric'](_0x28af47)){_0x45d85e['or'](_0xb049('0x7e'),_0x28af47+'%');}else{_0x45d85e['or'](_0xb049('0x7f'),qs[_0xb049('0x5e')](_0x28af47))['or'](_0xb049('0x80'),_0x28af47+'%')['or'](_0xb049('0x81'),_0x28af47+'%');}}}_0x9c3da2[_0xb049('0x6e')](_0x45d85e);_0x9c3da2['group'](_0xb049('0x82'));var _0x316e3b={'type':db[_0xb049('0x83')][_0xb049('0x84')]['SELECT'],'raw':!![]};var _0x32fbe0=_0x9c3da2[_0xb049('0x85')]();_0x32fbe0[_0xb049('0x3e')](_0xb049('0x82'));_0x32fbe0['field'](_0xb049('0x86'),_0xb049('0x87'));if(_0x255a19['order']){_0x255a19[_0xb049('0x3c')][_0xb049('0x2e')](function(_0x3142e9){_0x9c3da2[_0xb049('0x3c')]('i.'+_0x3142e9[0x0],_0x3142e9[0x1]===_0xb049('0x88')?![]:!![]);});}if(!_[_0xb049('0x89')](_0x44838b)){_0x9c3da2['having'](_0x4c17d0);_0x32fbe0[_0xb049('0x6e')]('t.id\x20IN\x20?',_0x44838b);}BPromise[_0xb049('0x8a')]()[_0xb049('0x24')](function(){if(!_0x470538){if(_0x5e5e29[_0xb049('0x36')][_0xb049('0x8b')]||_0x5e5e29[_0xb049('0x36')][_0xb049('0x8c')])return;_0x32fbe0[_0xb049('0x6e')](_0xb049('0x8d'));_0x9c3da2[_0xb049('0x6e')](_0xb049('0x8d'));return;}return _0x5e5e29[_0xb049('0x8e')][_0xb049('0x8f')]({'attributes':['id'],'raw':!![]})[_0xb049('0x24')](function(_0x40d1cc){if(_['isEmpty'](_0x40d1cc)){_0x32fbe0[_0xb049('0x6e')](_0xb049('0x90'));_0x9c3da2['where'](_0xb049('0x90'));}else{_0x32fbe0[_0xb049('0x6e')](_0xb049('0x6f'),_[_0xb049('0x29')](_0x40d1cc,'id'));_0x9c3da2['where'](_0xb049('0x6f'),_['map'](_0x40d1cc,'id'));}});})['then'](function(){db[_0xb049('0x91')][_0xb049('0x36')](_0x32fbe0[_0xb049('0x92')](),_0x316e3b)[_0xb049('0x24')](function(_0x54a16d){_0x258c07['count']=_0x54a16d[_0xb049('0x3a')];if(_0x258c07['count']===0x0)return[];return db[_0xb049('0x91')][_0xb049('0x36')](_0x3b854a[_0xb049('0x92')](),_0x316e3b)[_0xb049('0x24')](function(_0x24c137){_0x2ddaf2=_[_0xb049('0x93')](_0x24c137,'id');_0x316e3b=_['merge'](_0x316e3b,{'model':db[_0xb049('0x32')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x5e5e29[_0xb049('0x36')][_0xb049('0x38')]){_0x255a19[_0xb049('0x39')][_0xb049('0x2e')](function(_0x455136){_0x9c3da2[_0xb049('0x3e')]('i.'+_0x455136);});}else{_0x9c3da2[_0xb049('0x3e')](_0xb049('0x86'),_0xb049('0x87'));_0x9c3da2[_0xb049('0x3e')](_0xb049('0x94'),'Account.key');_0x9c3da2['field']('a.mandatoryDisposition',_0xb049('0x95'));_0x9c3da2[_0xb049('0x3e')](_0xb049('0x96'));_0x9c3da2['field']('c.firstName','Contact.firstName');_0x9c3da2[_0xb049('0x3e')](_0xb049('0x97'),_0xb049('0x98'));_0x9c3da2['field'](_0xb049('0x99'),_0xb049('0x9a'));_0x9c3da2['field'](_0xb049('0x9b'),_0xb049('0x9c'));_0x9c3da2[_0xb049('0x3e')]('c.mobile',_0xb049('0x9d'));_0x9c3da2[_0xb049('0x3e')](_0xb049('0x9e'),_0xb049('0x9f'));_0x9c3da2[_0xb049('0x3e')](_0xb049('0xa0'),_0xb049('0xa1'));_0x9c3da2[_0xb049('0x3e')](_0xb049('0xa2'),_0xb049('0xa3'));_0x9c3da2[_0xb049('0x3e')](_0xb049('0xa4'),_0xb049('0x2b'));}_0x9c3da2['limit'](_0x255a19[_0xb049('0x1f')]);_0x9c3da2['offset'](_0x255a19['offset']);return db['sequelize']['query'](_0x9c3da2[_0xb049('0x92')](),_0x316e3b);})[_0xb049('0x24')](function(_0x214ab4){_0xca4cc8[_0xb049('0x6e')](_0xb049('0xa5'),_[_0xb049('0x29')](_0x214ab4,'id'));return db[_0xb049('0x91')]['query'](_0xca4cc8[_0xb049('0x92')](),_0x316e3b)[_0xb049('0x24')](function(_0x225f62){var _0x5cb431=_['groupBy'](_0x225f62,_0xb049('0xa6'));var _0x3adc53=[];_0x214ab4[_0xb049('0x2e')](function(_0x252552){_0x3adc53[_0xb049('0x2f')](updateOpenchannelInteraction(_0x252552,_0x2ddaf2,_0x5cb431));});return BPromise[_0xb049('0xa7')](_0x3adc53);});});})['then'](function(_0x52c652){_0x258c07['rows']=_0x52c652;return _0x258c07;})[_0xb049('0x24')](respondWithFilteredResult(_0x1b3049,_0x255a19));})[_0xb049('0x30')](handleError(_0x1b3049,null));};exports['show']=function(_0xfee1d8,_0x3ebf98){var _0x5ec95b={'raw':![],'where':{'id':_0xfee1d8[_0xb049('0xa8')]['id']}},_0x6c4853={};_0x6c4853[_0xb049('0x35')]=_[_0xb049('0x6d')](db[_0xb049('0x32')]['rawAttributes']);_0x6c4853[_0xb049('0x36')]=_[_0xb049('0x6d')](_0xfee1d8[_0xb049('0x36')]);_0x6c4853[_0xb049('0x3d')]=_[_0xb049('0x37')](_0x6c4853[_0xb049('0x35')],_0x6c4853[_0xb049('0x36')]);_0x5ec95b[_0xb049('0x39')]=_[_0xb049('0x37')](_0x6c4853[_0xb049('0x35')],qs[_0xb049('0x38')](_0xfee1d8[_0xb049('0x36')][_0xb049('0x38')]));_0x5ec95b['attributes']=_0x5ec95b[_0xb049('0x39')][_0xb049('0x3a')]?_0x5ec95b[_0xb049('0x39')]:_0x6c4853[_0xb049('0x35')];if(_0xfee1d8[_0xb049('0x36')][_0xb049('0xa9')]){_0x5ec95b[_0xb049('0xaa')]=[{'all':!![]}];}_0x5ec95b=_['merge']({},_0x5ec95b,_0xfee1d8[_0xb049('0xab')]);return db[_0xb049('0x32')][_0xb049('0x58')](_0x5ec95b)['then'](handleEntityNotFound(_0x3ebf98,null))[_0xb049('0x24')](respondWithResult(_0x3ebf98,null))[_0xb049('0x30')](handleError(_0x3ebf98,null));};exports[_0xb049('0xac')]=function(_0x406822,_0x26e42c){return db[_0xb049('0x32')]['create'](_0x406822[_0xb049('0x6c')],{})[_0xb049('0x24')](respondWithResult(_0x26e42c,0xc9))[_0xb049('0x30')](handleError(_0x26e42c,null));};exports[_0xb049('0xad')]=function(_0x78dbaf,_0x557809){if(_0x78dbaf[_0xb049('0x6c')]['id']){delete _0x78dbaf['body']['id'];}return db[_0xb049('0x32')][_0xb049('0x58')]({'where':{'id':_0x78dbaf[_0xb049('0xa8')]['id']}})['then'](handleEntityNotFound(_0x557809,null))[_0xb049('0x24')](saveUpdates(_0x78dbaf[_0xb049('0x6c')],null))['then'](respondWithResult(_0x557809,null))[_0xb049('0x30')](handleError(_0x557809,null));};exports[_0xb049('0x25')]=function(_0x5337e1,_0x59bb44){return db[_0xb049('0x32')][_0xb049('0x58')]({'where':{'id':_0x5337e1[_0xb049('0xa8')]['id']}})['then'](handleEntityNotFound(_0x59bb44,null))['then'](removeEntity(_0x59bb44,null))[_0xb049('0x30')](handleError(_0x59bb44,null));};exports[_0xb049('0xae')]=function(_0xea26a2,_0x27c05d){return db[_0xb049('0x32')][_0xb049('0xae')]()['then'](respondWithResult(_0x27c05d,null))['catch'](handleError(_0x27c05d,null));};exports['addMessage']=function(_0x50e65b,_0x4d8e6c,_0x5d0b63){return db[_0xb049('0xaf')]['find']({'where':{'id':_0x50e65b[_0xb049('0xa8')]['id']}})[_0xb049('0x24')](handleEntityNotFound(_0x4d8e6c,null))[_0xb049('0x24')](function(_0x3a4eb5){if(_0x3a4eb5){return _0x3a4eb5[_0xb049('0xb0')](_0x50e65b[_0xb049('0x6c')]['ids'],_[_0xb049('0xb1')](_0x50e65b[_0xb049('0x6c')],[_0xb049('0xb2'),'id'])||{});}})[_0xb049('0x24')](respondWithResult(_0x4d8e6c,null))[_0xb049('0x30')](handleError(_0x4d8e6c,null));};exports[_0xb049('0xb3')]=function(_0x538aca,_0x3de893,_0x289c43){var _0x35691e={'raw':![],'where':{}};var _0x59cc2b={};var _0x39fc11={'count':0x0,'rows':[]};return db['OpenchannelInteraction'][_0xb049('0xb4')]({'where':{'id':_0x538aca[_0xb049('0xa8')]['id']}})[_0xb049('0x24')](handleEntityNotFound(_0x3de893,null))[_0xb049('0x24')](function(_0x47ab3c){if(_0x47ab3c){_0x59cc2b[_0xb049('0x35')]=_[_0xb049('0x6d')](db[_0xb049('0xaf')][_0xb049('0xb5')]);_0x59cc2b[_0xb049('0x36')]=_[_0xb049('0x6d')](_0x538aca[_0xb049('0x36')]);_0x59cc2b['filters']=_['intersection'](_0x59cc2b['model'],_0x59cc2b['query']);_0x35691e[_0xb049('0x39')]=_[_0xb049('0x37')](_0x59cc2b['model'],qs['fields'](_0x538aca[_0xb049('0x36')][_0xb049('0x38')]));_0x35691e['attributes']=_0x35691e['attributes'][_0xb049('0x3a')]?_0x35691e[_0xb049('0x39')]:_0x59cc2b[_0xb049('0x35')];if(!_0x538aca[_0xb049('0x36')][_0xb049('0xb6')](_0xb049('0x3b'))){_0x35691e[_0xb049('0x1f')]=qs[_0xb049('0x1f')](_0x538aca['query'][_0xb049('0x1f')]);_0x35691e[_0xb049('0x1e')]=qs['offset'](_0x538aca[_0xb049('0x36')][_0xb049('0x1e')]);}_0x35691e['order']=qs['sort'](_0x538aca[_0xb049('0x36')][_0xb049('0xb7')]);_0x35691e['where']=qs['filters'](_[_0xb049('0xb8')](_0x538aca['query'],_0x59cc2b[_0xb049('0x3d')]));_0x35691e[_0xb049('0x6e')][_0xb049('0xa6')]=_0x47ab3c['id'];if(_0x538aca[_0xb049('0x36')][_0xb049('0x7b')]){_0x35691e[_0xb049('0x6e')]=_['merge'](_0x35691e[_0xb049('0x6e')],{'$or':_[_0xb049('0x29')](_0x35691e[_0xb049('0x39')],function(_0x40b07d){var _0x3773e7={};_0x3773e7[_0x40b07d]={'$like':'%'+_0x538aca[_0xb049('0x36')]['filter']+'%'};return _0x3773e7;})});}if(_0x538aca[_0xb049('0x36')][_0xb049('0x72')]){var _0x2d77f8=_0x538aca[_0xb049('0x36')][_0xb049('0x72')][_0xb049('0x2d')](',');var _0x3b0bce={};_0x3b0bce[_0x2d77f8[0x0]]={'$gte':moment(_0x2d77f8[0x1])[_0xb049('0xb9')](_0xb049('0xba'))};_0x35691e[_0xb049('0x6e')]=_['merge'](_0x35691e['where'],_0x3b0bce);}_0x35691e=_['merge']({},_0x35691e,_0x538aca[_0xb049('0xab')]);return db[_0xb049('0xaf')][_0xb049('0x1d')]({'where':_0x35691e[_0xb049('0x6e')]})[_0xb049('0x24')](function(_0x29ee34){_0x39fc11[_0xb049('0x1d')]=_0x29ee34;if(_0x538aca[_0xb049('0x36')][_0xb049('0xa9')]){_0x35691e[_0xb049('0xaa')]=[{'all':!![]}];}return db[_0xb049('0xaf')][_0xb049('0xbb')](_0x35691e);})['then'](function(_0x451fc7){_0x39fc11[_0xb049('0xbc')]=_0x451fc7;return _0x39fc11;});}})[_0xb049('0x24')](respondWithFilteredResult(_0x3de893,_0x35691e))[_0xb049('0x30')](handleError(_0x3de893,null));};exports['addTags']=function(_0x48059a,_0x209def,_0x44aed2){return db[_0xb049('0x32')][_0xb049('0x58')]({'where':{'id':_0x48059a[_0xb049('0xa8')]['id']}})[_0xb049('0x24')](handleEntityNotFound(_0x209def,null))[_0xb049('0x24')](function(_0x422af8){if(_0x422af8){return _0x422af8[_0xb049('0xbd')](_0x48059a[_0xb049('0x6c')][_0xb049('0xb2')],_[_0xb049('0xb1')](_0x48059a['body'],[_0xb049('0xb2'),'id'])||{})[_0xb049('0xbe')](function(){return db[_0xb049('0x65')][_0xb049('0xbb')]({'attributes':['id',_0xb049('0x27'),_0xb049('0x3f')],'where':{'id':_0x48059a[_0xb049('0x6c')][_0xb049('0xb2')]}});})[_0xb049('0x24')](function(_0x4d7182){socket[_0xb049('0xbf')](_0xb049('0xc0'),{'id':Number(_0x48059a[_0xb049('0xa8')]['id']),'tags':_0x4d7182||[]});return{'id':Number(_0x48059a[_0xb049('0xa8')]['id']),'tags':_0x4d7182||[]};});}})[_0xb049('0x24')](respondWithResult(_0x209def,null))[_0xb049('0x30')](handleError(_0x209def,null));};exports[_0xb049('0xc1')]=function(_0xe0cb9e,_0x541c37,_0x50dab8){return db[_0xb049('0x32')][_0xb049('0x58')]({'where':{'id':_0xe0cb9e[_0xb049('0xa8')]['id']}})[_0xb049('0x24')](handleEntityNotFound(_0x541c37,null))['then'](function(_0x12b2ff){if(_0x12b2ff){return _0x12b2ff[_0xb049('0xc1')](_0xe0cb9e[_0xb049('0x36')]['ids']);}})[_0xb049('0x24')](respondWithStatusCode(_0x541c37,null))[_0xb049('0x30')](handleError(_0x541c37,null));};exports[_0xb049('0xc2')]=function(_0x8426b9,_0x4aa5e7){var _0x496378=moment()['unix']()[_0xb049('0x92')]();var _0x590aed=path[_0xb049('0xc3')](config['root'],_0xb049('0xc4'),_0xb049('0xc5'),_0xb049('0xc6'));var _0x4e73e0=path['join'](config[_0xb049('0xc7')],_0xb049('0xc4'),_0xb049('0xc5'),_0xb049('0xc8'));var _0x416a19=path[_0xb049('0xc3')](_0x590aed,_0x496378);var _0x5db7bd=util[_0xb049('0xb9')]('transcript-%d-%s.zip',_0x8426b9[_0xb049('0xa8')]['id'],_0x496378);var _0x295bee=path['join'](_0x590aed,_0x5db7bd);var _0x1cf9a9=[];_0x1cf9a9[_0xb049('0x2f')]({'model':db['User'],'as':'User','attributes':['id',_0xb049('0x2a')],'raw':!![]});_0x1cf9a9[_0xb049('0x2f')]({'model':db[_0xb049('0xc9')],'as':_0xb049('0xca'),'attributes':['id',_0xb049('0xcb'),'lastName'],'raw':!![]});if(_0x8426b9['query']['attachments']){_0x1cf9a9[_0xb049('0x2f')]({'model':db[_0xb049('0xcc')],'as':_0xb049('0xcc'),'raw':!![]});}var _0x21040c=[{'model':db[_0xb049('0xaf')],'as':_0xb049('0xcd'),'attributes':['id',_0xb049('0x6c'),'createdAt',_0xb049('0xce'),_0xb049('0xcf'),_0xb049('0x76')],'include':_0x1cf9a9}];_0x21040c[_0xb049('0x2f')]({'model':db[_0xb049('0xd0')],'as':'Account','attributes':['id',_0xb049('0x27')]});_0x21040c[_0xb049('0x2f')]({'model':db[_0xb049('0x68')],'as':_0xb049('0xd1'),'attributes':['id',_0xb049('0x2a')]});return db[_0xb049('0x32')][_0xb049('0x58')]({'where':{'id':_0x8426b9['params']['id']},'include':_0x21040c})[_0xb049('0x24')](handleEntityNotFound(_0x4aa5e7,null))['then'](function(_0x4f56b5){if(_0x4f56b5){var _0x17ea76=_0x4f56b5[_0xb049('0xd2')]({'plain':!![]});fs['mkdirSync'](_0x416a19);var _0xfd1e91={'format':'A4','border':_0xb049('0xd3'),'header':{'height':_0xb049('0xd4'),'contents':{'first':_0xb049('0xd5')}},'footer':{'height':_0xb049('0xd6'),'contents':{'default':util[_0xb049('0xb9')](_0xb049('0xd7'),util['format'](_0xb049('0xd8'),_0xb049('0xd9'),_0x17ea76['id']),moment()['format']('YYYY-MM-DD')[_0xb049('0x92')]())}}};var _0x3d0c90={'channel':_0xb049('0xd9'),'account':_0x17ea76[_0xb049('0xda')][_0xb049('0x27')],'agent':_0x17ea76[_0xb049('0xd1')]?_0x17ea76[_0xb049('0xd1')]['fullname']:'N.A.','createdAt':moment(_0x17ea76[_0xb049('0xdb')])[_0xb049('0xb9')](_0xb049('0xba'))[_0xb049('0x92')](),'closedAt':_0x17ea76[_0xb049('0xdc')]?moment(_0x17ea76[_0xb049('0xdd')])[_0xb049('0xb9')]('YYYY-MM-DD\x20HH:mm:ss')[_0xb049('0x92')]():'','disposition':_0x17ea76[_0xb049('0xde')],'visibility':_0x17ea76[_0xb049('0xdf')]?_0xb049('0xe0'):_0xb049('0xe1'),'messages':_(_0x17ea76[_0xb049('0xcd')])[_0xb049('0x7b')]({'secret':![]})['map'](function(_0x4c4dc1){if(_0x4c4dc1[_0xb049('0xcc')]){var _0x163730=path['join'](_0x4e73e0,_0x4c4dc1[_0xb049('0xcc')][_0xb049('0xe2')]);if(fs[_0xb049('0xe3')](_0x163730)){fs['createReadStream'](_0x163730)[_0xb049('0xe4')](fs['createWriteStream'](path[_0xb049('0xc3')](_0x416a19,_0x4c4dc1['Attachment'][_0xb049('0xe2')])));}}return{'date':moment(_0x4c4dc1[_0xb049('0xdb')])[_0xb049('0xb9')]('YYYY-MM-DD\x20HH:mm:ss')[_0xb049('0x92')](),'sender':_0x4c4dc1[_0xb049('0xce')]===_0xb049('0xe5')?_0x4c4dc1[_0xb049('0x68')]?_0x4c4dc1[_0xb049('0x68')]['fullname']:'System':_0x4c4dc1[_0xb049('0xca')][_0xb049('0xcb')]+(_0x4c4dc1['Contact'][_0xb049('0xe6')]?'\x20'+_0x4c4dc1[_0xb049('0xca')][_0xb049('0xe6')]:''),'body':_0x4c4dc1[_0xb049('0xcc')]?_0x4c4dc1['Attachment'][_0xb049('0xe2')]:_0x4c4dc1[_0xb049('0x6c')],'direction':_0x4c4dc1['direction']===_0xb049('0xe5')?'A':'C','secret':_0x4c4dc1[_0xb049('0xcf')],'read':_0x4c4dc1[_0xb049('0x76')],'attachment':_0x4c4dc1[_0xb049('0xcc')]};})[_0xb049('0x5f')]()};return ejs[_0xb049('0xe7')](path[_0xb049('0xc3')](config[_0xb049('0xc7')],_0xb049('0xc4'),_0xb049('0xe8'),_0xb049('0xe9')),{'interaction':_0x3d0c90})[_0xb049('0x24')](function(_0x4b8e51){return new BPromise(function(_0x34f614,_0x19e0fd){pdf[_0xb049('0xac')](_0x4b8e51,_0xfd1e91)[_0xb049('0xea')](path[_0xb049('0xc3')](_0x416a19,_0xb049('0xeb')+_0x17ea76['id']+'-'+_0x496378+_0xb049('0xec')),function(_0x481867,_0x10e7b9){if(_0x481867)return _0x19e0fd(_0x481867);_0x34f614(_0x10e7b9);});});})['then'](function(){return new BPromise(function(_0x20052d,_0x5f8ba4){zipdir(_0x416a19,{'saveTo':_0x295bee},function(_0x31932f,_0x2a0690){if(_0x31932f)return _0x5f8ba4(_0x31932f);return _0x20052d(_0x2a0690);});})[_0xb049('0x24')](function(){return new BPromise(function(_0x1ce268,_0x49a9cf){rimraf(_0x416a19,function(_0x4c5ddb){if(_0x4c5ddb)_0x49a9cf(_0x4c5ddb);return _0x1ce268();});});})[_0xb049('0x24')](function(){return _0x4aa5e7[_0xb049('0xc2')](_0x295bee,_0x5db7bd,function(_0x1c8ef2){if(_0x1c8ef2){console[_0xb049('0xed')](_0xb049('0xee'),_0x1c8ef2);}else{fs[_0xb049('0xef')](_0x295bee);}});});});}else{return _0x4aa5e7['sendStatus'](0xc8);}})['catch'](handleError(_0x4aa5e7,null));};