Built motion from commit 9d5c653a.|2.5.44
[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 _0xbace=['select','u.id','u.fullname','user_has_openchannel_interactions','left_join','users','u.id\x20=\x20ui.UserId','openchannel_interactions','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','openchannel_accounts','a.id\x20=\x20i.OpenchannelAccountId','me.OpenchannelInteractionId\x20=\x20i.id','openchannel_interaction_has_tags','it.OpenchannelInteractionId\x20=\x20i.id','tools_tags','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','field','unreadMessages','value','having','`\x20=\x200','Contact','operator','$substring','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','text','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','type','body','some','compact','forEach','OpenchannelAccountId','i.OpenchannelAccountId\x20IN\x20?','concat','createdAt','parse','$gte','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','isArray','tag','filter','isNumeric','i.id\x20LIKE\x20?','i.from\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','Sequelize','SELECT','i.id','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','DESC','isEmpty','t.id\x20IN\x20?','resolve','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getOpenchannelAccounts','i.OpenchannelAccountId\x20IS\x20NULL','sequelize','toString','keyBy','merge','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','c.firstName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','Owner.fullname','o.internal','Owner.internal','rows','show','params','includeAll','include','options','create','describe','addMessage','OpenchannelMessage','ids','omit','getMessages','findOne','pick','OpenchannelInteractionId','format','YYYY-MM-DD\x20HH:mm:ss','findAll','setTags','spread','emit','openchannelInteractionTags:save','removeTags','download','unix','join','root','server','files','transcript-%d-%s.zip','User','CmContact','firstName','lastName','attachments','Attachment','Messages','direction','secret','OpenchannelAccount','Owner','get','mkdirSync','Openchannel','Account','closedAt','disposition','threadId','basename','existsSync','createReadStream','pipe','createWriteStream','out','renderFile','views','transcript-','.pdf','createPdfFromHTML','log','err','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/environment','../../config/license/util','../../mysqldb','defaults','localhost','socket.io-emitter','redis','register','sendStatus','end','status','json','offset','undefined','limit','count','Content-Range','apply','save','update','then','destroy','error','stack','name','Users','map','fullname','TagIds','Tags','split','push','catch','waiting','talking','unmanaged','total','closed','UserId','answered','index','OpenchannelInteraction','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','color','from'];(function(_0x30f07a,_0x98341){var _0xb38461=function(_0x7b287a){while(--_0x7b287a){_0x30f07a['push'](_0x30f07a['shift']());}};_0xb38461(++_0x98341);}(_0xbace,0x19c));var _0xebac=function(_0x465a0c,_0x19d4d5){_0x465a0c=_0x465a0c-0x0;var _0x1e202e=_0xbace[_0x465a0c];return _0x1e202e;};'use strict';var emlformat=require(_0xebac('0x0'));var rimraf=require(_0xebac('0x1'));var zipdir=require(_0xebac('0x2'));var jsonpatch=require(_0xebac('0x3'));var rp=require(_0xebac('0x4'));var moment=require(_0xebac('0x5'));var BPromise=require(_0xebac('0x6'));var Mustache=require(_0xebac('0x7'));var util=require(_0xebac('0x8'));var path=require(_0xebac('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xebac('0xa'));var fs=require('fs');var fs_extra=require(_0xebac('0xb'));var _=require('lodash');var squel=require(_0xebac('0xc'));var crypto=require(_0xebac('0xd'));var jsforce=require(_0xebac('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xebac('0xf'));var Papa=require(_0xebac('0x10'));var Redis=require(_0xebac('0x11'));var authService=require(_0xebac('0x12'));var qs=require(_0xebac('0x13'));var as=require(_0xebac('0x14'));var pdf=require('../../components/export/pdf');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xebac('0x15'));var utils=require('../../config/utils');var config=require(_0xebac('0x16'));var licenseUtil=require(_0xebac('0x17'));var db=require(_0xebac('0x18'))['db'];config['redis']=_[_0xebac('0x19')](config['redis'],{'host':_0xebac('0x1a'),'port':0x18eb});var socket=require(_0xebac('0x1b'))(new Redis(config[_0xebac('0x1c')]));require('./openchannelInteraction.socket')[_0xebac('0x1d')](socket);function respondWithStatusCode(_0x5b07f1,_0x369c67){_0x369c67=_0x369c67||0xcc;return function(_0x54c589){if(_0x54c589){return _0x5b07f1[_0xebac('0x1e')](_0x369c67);}return _0x5b07f1['status'](_0x369c67)[_0xebac('0x1f')]();};}function respondWithResult(_0x566982,_0x3d3dcc){_0x3d3dcc=_0x3d3dcc||0xc8;return function(_0x21265a){if(_0x21265a){return _0x566982[_0xebac('0x20')](_0x3d3dcc)[_0xebac('0x21')](_0x21265a);}};}function respondWithFilteredResult(_0x231444,_0x155c83){return function(_0x4fecd9){if(_0x4fecd9){var _0x5a4fff=typeof _0x155c83[_0xebac('0x22')]===_0xebac('0x23')&&typeof _0x155c83[_0xebac('0x24')]===_0xebac('0x23');var _0xa5070b=_0x4fecd9['count'];var _0x4f18cc=_0x5a4fff?0x0:_0x155c83[_0xebac('0x22')];var _0x24c268=_0x5a4fff?_0x4fecd9[_0xebac('0x25')]:_0x155c83[_0xebac('0x22')]+_0x155c83[_0xebac('0x24')];var _0x1d2bf2;if(_0x24c268>=_0xa5070b){_0x24c268=_0xa5070b;_0x1d2bf2=0xc8;}else{_0x1d2bf2=0xce;}_0x231444['status'](_0x1d2bf2);return _0x231444['set'](_0xebac('0x26'),_0x4f18cc+'-'+_0x24c268+'/'+_0xa5070b)[_0xebac('0x21')](_0x4fecd9);}return null;};}function patchUpdates(_0x4251e0){return function(_0x439e5b){try{jsonpatch[_0xebac('0x27')](_0x439e5b,_0x4251e0,!![]);}catch(_0x5b2364){return BPromise['reject'](_0x5b2364);}return _0x439e5b[_0xebac('0x28')]();};}function saveUpdates(_0x2c9e03,_0x54584c){return function(_0x44082d){if(_0x44082d){return _0x44082d[_0xebac('0x29')](_0x2c9e03)[_0xebac('0x2a')](function(_0x21a64a){return _0x21a64a;});}return null;};}function removeEntity(_0x49e35e,_0x58897e){return function(_0x125f44){if(_0x125f44){return _0x125f44[_0xebac('0x2b')]()[_0xebac('0x2a')](function(){_0x49e35e['status'](0xcc)[_0xebac('0x1f')]();});}};}function handleEntityNotFound(_0xa8867,_0x3b8640){return function(_0x2b9e64){if(!_0x2b9e64){_0xa8867[_0xebac('0x1e')](0x194);}return _0x2b9e64;};}function handleError(_0x495192,_0x531dc3){_0x531dc3=_0x531dc3||0x1f4;return function(_0x584023){logger[_0xebac('0x2c')](_0x584023[_0xebac('0x2d')]);if(_0x584023['name']){delete _0x584023[_0xebac('0x2e')];}_0x495192[_0xebac('0x20')](_0x531dc3)['send'](_0x584023);};}function getInteractionUsers(_0x459ff3,_0x7c26e7){return new BPromise(function(_0x58af0b,_0x517d3b){try{if(_0x7c26e7[_0x459ff3['id']]){_0x459ff3[_0xebac('0x2f')]=_[_0xebac('0x30')](_0x7c26e7[_0x459ff3['id']],function(_0x5913ed){return{'id':_0x5913ed['id'],'fullname':_0x5913ed[_0xebac('0x31')]};});}}catch(_0x4ab54f){_0x517d3b(_0x4ab54f);}_0x58af0b(_0x459ff3);});}function getInteractionTags(_0x3d4fb0,_0x368e14){return new BPromise(function(_0x20f6e9,_0x4dc5fd){try{if(_0x3d4fb0[_0xebac('0x32')]){_0x3d4fb0[_0xebac('0x33')]=[];_0x3d4fb0[_0xebac('0x32')][_0xebac('0x34')](',')['forEach'](function(_0x50e541){_0x3d4fb0[_0xebac('0x33')][_0xebac('0x35')](_0x368e14[_0x50e541]);});}delete _0x3d4fb0['TagIds'];}catch(_0x55c36f){_0x4dc5fd(_0x55c36f);}_0x20f6e9(_0x3d4fb0);});}function updateOpenchannelInteraction(_0x4b9eb3,_0x3e1ee6,_0x236b05){return new BPromise(function(_0x26925f,_0x555504){return getInteractionUsers(_0x4b9eb3,_0x236b05)[_0xebac('0x2a')](function(_0x39913b){return getInteractionTags(_0x39913b,_0x3e1ee6);})[_0xebac('0x2a')](function(_0x163a0a){return getStateInteraction(_0x163a0a);})[_0xebac('0x2a')](function(_0x5dab01){_0x26925f(_0x5dab01);})[_0xebac('0x36')](function(_0x25aa7a){_0x555504(_0x25aa7a);});});}function getStateInteraction(_0x41f93b){return new BPromise(function(_0xd8163b){_0x41f93b[_0xebac('0x37')]=0x0;_0x41f93b[_0xebac('0x38')]=0x0;_0x41f93b['answered']=0x0;_0x41f93b[_0xebac('0x39')]=0x0;_0x41f93b[_0xebac('0x3a')]=0x0;if(!_0x41f93b[_0xebac('0x3b')]&&!_0x41f93b[_0xebac('0x3c')]){_0x41f93b[_0xebac('0x37')]+=0x1;}if(!_0x41f93b['closed']&&_0x41f93b['UserId']){_0x41f93b[_0xebac('0x38')]+=0x1;if(_0x41f93b[_0xebac('0x37')]){_0x41f93b[_0xebac('0x37')]-=0x1;}}if(_0x41f93b[_0xebac('0x3b')]&&_0x41f93b[_0xebac('0x3c')]){_0x41f93b[_0xebac('0x3d')]+=0x1;if(_0x41f93b[_0xebac('0x38')]){_0x41f93b[_0xebac('0x38')]-=0x1;}}if(_0x41f93b[_0xebac('0x3b')]&&!_0x41f93b['UserId']){_0x41f93b[_0xebac('0x39')]+=0x1;if(_0x41f93b[_0xebac('0x37')]){_0x41f93b[_0xebac('0x37')]-=0x1;}}_0x41f93b[_0xebac('0x3a')]+=0x1;_0xd8163b(_0x41f93b);});}exports[_0xebac('0x3e')]=function(_0x1adb88,_0x197755){var _0x2d80b7={},_0x158998={},_0x583f3c={'count':0x0,'rows':[]};var _0x54cd60=_[_0xebac('0x30')](db[_0xebac('0x3f')][_0xebac('0x40')],function(_0x2dc811){return{'name':_0x2dc811[_0xebac('0x41')],'type':_0x2dc811['type'][_0xebac('0x42')]};});_0x158998[_0xebac('0x43')]=_[_0xebac('0x30')](_0x54cd60,_0xebac('0x2e'));_0x158998['query']=_[_0xebac('0x44')](_0x1adb88[_0xebac('0x45')]);_0x158998[_0xebac('0x46')]=_[_0xebac('0x47')](_0x158998[_0xebac('0x43')],_0x158998[_0xebac('0x45')]);_0x2d80b7[_0xebac('0x48')]=_['intersection'](_0x158998[_0xebac('0x43')],qs['fields'](_0x1adb88[_0xebac('0x45')][_0xebac('0x49')]));_0x2d80b7[_0xebac('0x48')]=_0x2d80b7[_0xebac('0x48')][_0xebac('0x4a')]?_0x2d80b7[_0xebac('0x48')]:_0x158998[_0xebac('0x43')];if(!_0x1adb88['query'][_0xebac('0x4b')](_0xebac('0x4c'))){_0x2d80b7['limit']=qs[_0xebac('0x24')](_0x1adb88[_0xebac('0x45')][_0xebac('0x24')]);_0x2d80b7[_0xebac('0x22')]=qs[_0xebac('0x22')](_0x1adb88[_0xebac('0x45')][_0xebac('0x22')]);}_0x2d80b7[_0xebac('0x4d')]=qs[_0xebac('0x4e')](_0x1adb88[_0xebac('0x45')]['sort']);_0x2d80b7[_0xebac('0x4f')]=qs['filters'](_['pick'](_0x1adb88[_0xebac('0x45')],_0x158998[_0xebac('0x46')]),_0x54cd60);var _0x4153f8=[];var _0x799224=squel['select']()['field']('id')['field'](_0xebac('0x2e'))['field'](_0xebac('0x50'))[_0xebac('0x51')]('tools_tags');var _0x164218=squel[_0xebac('0x52')]()['field'](_0xebac('0x53'))['field'](_0xebac('0x54'))['field']('ui.OpenchannelInteractionId')['from'](_0xebac('0x55'),'ui')[_0xebac('0x56')](_0xebac('0x57'),'u',_0xebac('0x58'));var _0x3172df=squel[_0xebac('0x52')]()['from'](_0xebac('0x59'),'i')[_0xebac('0x56')]('cm_contacts','c',_0xebac('0x5a'))[_0xebac('0x56')]('users','o',_0xebac('0x5b'))[_0xebac('0x56')](_0xebac('0x5c'),'a',_0xebac('0x5d'))[_0xebac('0x56')]('openchannel_messages','me',_0xebac('0x5e'))[_0xebac('0x56')](_0xebac('0x5f'),'it',_0xebac('0x60'))['left_join'](_0xebac('0x61'),'t',_0xebac('0x62'));var _0x30b3e5=squel[_0xebac('0x63')]();var _0x43e9d1=[];var _0x1dbed7=squel[_0xebac('0x63')]();var _0x4f5b40;if(_0x1adb88[_0xebac('0x45')][_0xebac('0x64')]){_0x4f5b40=as[_0xebac('0x65')](_0x1adb88[_0xebac('0x45')]['search']);var _0x162529=_0x4f5b40[_0xebac('0x66')];for(var _0x4c94be=0x0;_0x4c94be<_0x4f5b40[_0xebac('0x67')]['length'];_0x4c94be++){var _0x7f1fdd=_0x4f5b40[_0xebac('0x67')][_0x4c94be];var _0x3baeb7='i';var _0x22ee83=_[_0xebac('0x68')](_0x54cd60,[_0xebac('0x2e'),_0x7f1fdd['field']]);if(!_0x22ee83){switch(_0x7f1fdd[_0xebac('0x69')]){case _0xebac('0x6a'):if(_0x7f1fdd[_0xebac('0x6b')]==0x1){_0x3172df[_0xebac('0x6c')]('`'+_0x7f1fdd[_0xebac('0x69')]+_0xebac('0x6d'));}else{_0x3172df[_0xebac('0x6c')]('`'+_0x7f1fdd[_0xebac('0x69')]+'`\x20>\x200');}break;case _0xebac('0x6e'):if(_0x7f1fdd[_0xebac('0x6f')]===_0xebac('0x70')){if(_0x7f1fdd[_0xebac('0x6b')]['split']('\x20')[_0xebac('0x4a')]>0x1){_0x30b3e5[_0x162529]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0xebac('0x71')](_0x7f1fdd[_0xebac('0x6b')]),null);}else{var _0x5d1426='%'+_0x7f1fdd['value']+'%';_0x30b3e5[_0x162529](_0xebac('0x72'),_0x5d1426,_0x5d1426,_0x5d1426);}}else{_0x22ee83=_[_0xebac('0x68')](_0x54cd60,[_0xebac('0x2e'),_0xebac('0x73')]);_0x7f1fdd[_0xebac('0x69')]='ContactId';_0x266822=as[_0xebac('0x74')](_0x3baeb7,_0x22ee83['type'],_0x7f1fdd);_0x30b3e5[_0x162529](_0x266822[_0xebac('0x75')],_0x266822[_0xebac('0x6b')][_0xebac('0x76')],_0x266822[_0xebac('0x6b')][_0xebac('0x1f')]);}break;case _0xebac('0x77'):var _0x582b11=_0x7f1fdd[_0xebac('0x6b')][_0xebac('0x34')](',')[_0xebac('0x30')](function(_0x1c3b1e){return Number(_0x1c3b1e);});_0x582b11['forEach'](function(_0x209afa){_0x1dbed7['or'](_0xebac('0x78'),'%,'+_0x209afa+',%');});_0x43e9d1=_[_0xebac('0x79')](_0x43e9d1,_0x582b11);break;case'User':if(_0x7f1fdd[_0xebac('0x6f')]===_0xebac('0x70')){_0x30b3e5[_0x162529](_0xebac('0x7a'),'%'+_0x7f1fdd[_0xebac('0x6b')]+'%',null);}else{_0x22ee83=_[_0xebac('0x68')](_0x54cd60,[_0xebac('0x2e'),_0xebac('0x3c')]);_0x7f1fdd[_0xebac('0x69')]=_0xebac('0x3c');_0x266822=as[_0xebac('0x74')](_0x3baeb7,_0x22ee83[_0xebac('0x7b')],_0x7f1fdd);_0x30b3e5[_0x162529](_0x266822[_0xebac('0x75')],_0x266822[_0xebac('0x6b')][_0xebac('0x76')],_0x266822[_0xebac('0x6b')][_0xebac('0x1f')]);}break;case _0xebac('0x7c'):_0x266822=as[_0xebac('0x74')]('me',null,_0x7f1fdd);_0x30b3e5[_0x162529](_0x266822[_0xebac('0x75')],_0x266822[_0xebac('0x6b')][_0xebac('0x76')],_0x266822['value']['end']);break;}}else{var _0x266822=as[_0xebac('0x74')](_0x3baeb7,_0x22ee83[_0xebac('0x7b')],_0x7f1fdd);_0x30b3e5[_0x162529](_0x266822['text'],_0x266822['value'][_0xebac('0x76')],_0x266822['value'][_0xebac('0x1f')]);}}}else{var _0x21b3ec=_(_0x1adb88[_0xebac('0x45')])['keys']()[_0xebac('0x30')](function(_0x4fbcb5){return _[_0xebac('0x7d')](_0x54cd60,['name',_0x4fbcb5])?_0x4fbcb5:undefined;})[_0xebac('0x7e')]()[_0xebac('0x6b')]();if(!_['isEmpty'](_0x21b3ec)){_0x21b3ec[_0xebac('0x7f')](function(_0x14d593){if(_0x14d593===_0xebac('0x80')){_0x3172df[_0xebac('0x4f')](_0xebac('0x81'),[][_0xebac('0x82')](_0x1adb88[_0xebac('0x45')][_0x14d593]));}else if(_0x14d593===_0xebac('0x83')){var _0xf4bd74=JSON[_0xebac('0x84')](_0x1adb88['query'][_0x14d593])[_0xebac('0x85')];var _0x2cd06c=JSON['parse'](_0x1adb88[_0xebac('0x45')][_0x14d593])['$lte'];_0x3172df[_0xebac('0x4f')]('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0xf4bd74,_0x2cd06c);}else{if(_0x1adb88['query'][_0x14d593]===_0xebac('0x86')){_0x3172df[_0xebac('0x4f')]('i.'+_0x14d593+_0xebac('0x87'));}else{_0x3172df['where']('i.'+_0x14d593+_0xebac('0x88'),_0x1adb88[_0xebac('0x45')][_0x14d593]);}}});}if(_0x1adb88[_0xebac('0x45')][_0xebac('0x89')]){if(_0x1adb88[_0xebac('0x45')]['read']==0x1){_0x3172df[_0xebac('0x6c')](_0xebac('0x8a'));}else{_0x3172df[_0xebac('0x6c')](_0xebac('0x8b'));}}if(_0x1adb88[_0xebac('0x45')]['tag']){_0x43e9d1=_[_0xebac('0x8c')](_0x1adb88[_0xebac('0x45')][_0xebac('0x8d')])?_0x1adb88[_0xebac('0x45')]['tag']:new Array(_0x1adb88[_0xebac('0x45')][_0xebac('0x8d')]);_0x43e9d1[_0xebac('0x7f')](function(_0x4a121d){_0x1dbed7['or'](_0xebac('0x78'),'%,'+_0x4a121d+',%');});}if(_0x1adb88['query'][_0xebac('0x8e')]){var _0x490976=_0x1adb88['query']['filter']['replace']('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0xebac('0x8f')](_0x490976)){_0x30b3e5['or'](_0xebac('0x90'),_0x490976+'%');}else{_0x30b3e5['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0xebac('0x71')](_0x490976))['or'](_0xebac('0x91'),_0x490976+'%')['or'](_0xebac('0x92'),_0x490976+'%');}}}_0x3172df[_0xebac('0x4f')](_0x30b3e5);_0x3172df[_0xebac('0x93')]('i.id');var _0x283de5={'type':db[_0xebac('0x94')]['QueryTypes'][_0xebac('0x95')],'raw':!![]};var _0x4020f9=_0x3172df['clone']();_0x4020f9[_0xebac('0x69')](_0xebac('0x96'));_0x4020f9[_0xebac('0x69')](_0xebac('0x97'),_0xebac('0x6a'));if(_0x2d80b7[_0xebac('0x4d')]){_0x2d80b7['order'][_0xebac('0x7f')](function(_0x4966ff){var _0x273e8c=_0x4966ff[0x0]==='contactName'?_0x4966ff[0x0]:'i.'+_0x4966ff[0x0];_0x3172df[_0xebac('0x4d')](_0x273e8c,_0x4966ff[0x1]===_0xebac('0x98')?![]:!![]);});}if(!_[_0xebac('0x99')](_0x43e9d1)){_0x3172df['having'](_0x1dbed7);_0x4020f9[_0xebac('0x4f')](_0xebac('0x9a'),_0x43e9d1);}BPromise[_0xebac('0x9b')]()[_0xebac('0x2a')](function(){if(!_0x4f5b40){if(_0x1adb88[_0xebac('0x45')][_0xebac('0x80')])return;_0x4020f9[_0xebac('0x4f')](_0xebac('0x9c'));_0x3172df[_0xebac('0x4f')](_0xebac('0x9c'));return;}if(_0x1adb88[_0xebac('0x9d')][_0xebac('0x9e')]!==_0xebac('0x9f'))return;return _0x1adb88[_0xebac('0x9d')][_0xebac('0xa0')]({'attributes':['id'],'raw':!![]})[_0xebac('0x2a')](function(_0x3c7b60){if(_['isEmpty'](_0x3c7b60)){_0x4020f9[_0xebac('0x4f')]('i.OpenchannelAccountId\x20IS\x20NULL');_0x3172df[_0xebac('0x4f')](_0xebac('0xa1'));}else{_0x4020f9[_0xebac('0x4f')](_0xebac('0x81'),_[_0xebac('0x30')](_0x3c7b60,'id'));_0x3172df['where'](_0xebac('0x81'),_[_0xebac('0x30')](_0x3c7b60,'id'));}});})[_0xebac('0x2a')](function(){if(_0x1adb88['user'][_0xebac('0x9e')]==='agent'&&!_0x4f5b40&&!_0x1adb88[_0xebac('0x45')]['OpenchannelAccountId'])return[];return db[_0xebac('0xa2')][_0xebac('0x45')](_0x4020f9[_0xebac('0xa3')](),_0x283de5);})['then'](function(_0x29e909){_0x583f3c[_0xebac('0x25')]=_0x29e909[_0xebac('0x4a')];if(_0x583f3c['count']===0x0)return[];return db['sequelize'][_0xebac('0x45')](_0x799224[_0xebac('0xa3')](),_0x283de5)['then'](function(_0x56a8ca){_0x4153f8=_[_0xebac('0xa4')](_0x56a8ca,'id');_0x283de5=_[_0xebac('0xa5')](_0x283de5,{'model':db[_0xebac('0x3f')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x1adb88[_0xebac('0x45')][_0xebac('0x49')]){_0x2d80b7[_0xebac('0x48')][_0xebac('0x7f')](function(_0x5d8b32){_0x3172df[_0xebac('0x69')]('i.'+_0x5d8b32);});}else{_0x3172df[_0xebac('0x69')](_0xebac('0x97'),_0xebac('0x6a'));_0x3172df['field'](_0xebac('0xa6'),_0xebac('0xa7'));_0x3172df['field'](_0xebac('0xa8'),_0xebac('0xa9'));_0x3172df['field'](_0xebac('0xaa'),'contactName');_0x3172df[_0xebac('0x69')]('i.*');_0x3172df[_0xebac('0x69')](_0xebac('0xab'),'Contact.firstName');_0x3172df[_0xebac('0x69')]('c.lastName',_0xebac('0xac'));_0x3172df[_0xebac('0x69')](_0xebac('0xad'),_0xebac('0xae'));_0x3172df[_0xebac('0x69')](_0xebac('0xaf'),_0xebac('0xb0'));_0x3172df[_0xebac('0x69')](_0xebac('0xb1'),_0xebac('0xb2'));_0x3172df[_0xebac('0x69')](_0xebac('0xb3'),_0xebac('0xb4'));_0x3172df[_0xebac('0x69')]('o.fullname',_0xebac('0xb5'));_0x3172df[_0xebac('0x69')](_0xebac('0xb6'),_0xebac('0xb7'));_0x3172df[_0xebac('0x69')]('GROUP_CONCAT(DISTINCT\x20t.id)',_0xebac('0x32'));}if(_0x2d80b7[_0xebac('0x24')])_0x3172df[_0xebac('0x24')](_0x2d80b7[_0xebac('0x24')]);if(_0x2d80b7['offset'])_0x3172df['offset'](_0x2d80b7[_0xebac('0x22')]);return db[_0xebac('0xa2')][_0xebac('0x45')](_0x3172df[_0xebac('0xa3')](),_0x283de5);})['then'](function(_0x1f3cb7){if(_0x1f3cb7[_0xebac('0x4a')]>0x0)_0x164218[_0xebac('0x4f')]('ui.OpenchannelInteractionId\x20IN\x20?',_[_0xebac('0x30')](_0x1f3cb7,'id'));return db[_0xebac('0xa2')][_0xebac('0x45')](_0x164218[_0xebac('0xa3')](),_0x283de5)[_0xebac('0x2a')](function(_0x2667f2){var _0x33a2cc=_['groupBy'](_0x2667f2,'OpenchannelInteractionId');var _0x5093df=[];_0x1f3cb7['forEach'](function(_0x18fc0e){_0x5093df['push'](updateOpenchannelInteraction(_0x18fc0e,_0x4153f8,_0x33a2cc));});return BPromise['all'](_0x5093df);});});})[_0xebac('0x2a')](function(_0x191cca){_0x583f3c[_0xebac('0xb8')]=_0x191cca;return _0x583f3c;})[_0xebac('0x2a')](respondWithFilteredResult(_0x197755,_0x2d80b7))[_0xebac('0x36')](handleError(_0x197755,null));};exports[_0xebac('0xb9')]=function(_0x211cc8,_0xb8ea07){var _0x5c6e3a={};if(_0x211cc8[_0xebac('0x45')][_0xebac('0x7b')]&&_0x211cc8[_0xebac('0x45')]['type']==='from'){_0x5c6e3a[_0xebac('0x51')]=_0x211cc8[_0xebac('0xba')]['id'];}else{_0x5c6e3a['id']=_0x211cc8['params']['id'];}var _0x2da180={'raw':![],'where':_0x5c6e3a},_0xf4c9fb={};_0xf4c9fb[_0xebac('0x43')]=_[_0xebac('0x44')](db['OpenchannelInteraction']['rawAttributes']);_0xf4c9fb[_0xebac('0x45')]=_[_0xebac('0x44')](_0x211cc8['query']);_0xf4c9fb['filters']=_[_0xebac('0x47')](_0xf4c9fb[_0xebac('0x43')],_0xf4c9fb[_0xebac('0x45')]);_0x2da180[_0xebac('0x48')]=_[_0xebac('0x47')](_0xf4c9fb[_0xebac('0x43')],qs[_0xebac('0x49')](_0x211cc8[_0xebac('0x45')][_0xebac('0x49')]));_0x2da180[_0xebac('0x48')]=_0x2da180['attributes'][_0xebac('0x4a')]?_0x2da180[_0xebac('0x48')]:_0xf4c9fb[_0xebac('0x43')];if(_0x211cc8['query'][_0xebac('0xbb')]){_0x2da180[_0xebac('0xbc')]=[{'all':!![]}];}_0x2da180=_[_0xebac('0xa5')]({},_0x2da180,_0x211cc8[_0xebac('0xbd')]);return db[_0xebac('0x3f')]['find'](_0x2da180)[_0xebac('0x2a')](handleEntityNotFound(_0xb8ea07,null))[_0xebac('0x2a')](respondWithResult(_0xb8ea07,null))[_0xebac('0x36')](handleError(_0xb8ea07,null));};exports[_0xebac('0xbe')]=function(_0x129741,_0x47b733){return db[_0xebac('0x3f')][_0xebac('0xbe')](_0x129741['body'],{})[_0xebac('0x2a')](respondWithResult(_0x47b733,0xc9))['catch'](handleError(_0x47b733,null));};exports[_0xebac('0x29')]=function(_0x40a479,_0x18712c){if(_0x40a479[_0xebac('0x7c')]['id']){delete _0x40a479[_0xebac('0x7c')]['id'];}return db[_0xebac('0x3f')]['find']({'where':{'id':_0x40a479[_0xebac('0xba')]['id']}})[_0xebac('0x2a')](handleEntityNotFound(_0x18712c,null))[_0xebac('0x2a')](saveUpdates(_0x40a479[_0xebac('0x7c')],null))[_0xebac('0x2a')](respondWithResult(_0x18712c,null))[_0xebac('0x36')](handleError(_0x18712c,null));};exports[_0xebac('0x2b')]=function(_0x5b2268,_0x243950){return db['OpenchannelInteraction'][_0xebac('0x68')]({'where':{'id':_0x5b2268['params']['id']}})[_0xebac('0x2a')](handleEntityNotFound(_0x243950,null))['then'](removeEntity(_0x243950,null))['catch'](handleError(_0x243950,null));};exports[_0xebac('0xbf')]=function(_0x18fa98,_0x48e875){return db[_0xebac('0x3f')]['describe']()[_0xebac('0x2a')](respondWithResult(_0x48e875,null))[_0xebac('0x36')](handleError(_0x48e875,null));};exports[_0xebac('0xc0')]=function(_0x5539a2,_0x189f82,_0x3aabee){return db[_0xebac('0xc1')][_0xebac('0x68')]({'where':{'id':_0x5539a2[_0xebac('0xba')]['id']}})['then'](handleEntityNotFound(_0x189f82,null))['then'](function(_0x34e6a2){if(_0x34e6a2){return _0x34e6a2['addMessage'](_0x5539a2[_0xebac('0x7c')][_0xebac('0xc2')],_[_0xebac('0xc3')](_0x5539a2[_0xebac('0x7c')],[_0xebac('0xc2'),'id'])||{});}})[_0xebac('0x2a')](respondWithResult(_0x189f82,null))[_0xebac('0x36')](handleError(_0x189f82,null));};exports[_0xebac('0xc4')]=function(_0x257533,_0x2becbc,_0x55413b){var _0x2e197f={'raw':![],'where':{}};var _0x152a55={};var _0x3c2b54={'count':0x0,'rows':[]};return db[_0xebac('0x3f')][_0xebac('0xc5')]({'where':{'id':_0x257533[_0xebac('0xba')]['id']}})[_0xebac('0x2a')](handleEntityNotFound(_0x2becbc,null))['then'](function(_0x2db086){if(_0x2db086){_0x152a55[_0xebac('0x43')]=_[_0xebac('0x44')](db[_0xebac('0xc1')][_0xebac('0x40')]);_0x152a55[_0xebac('0x45')]=_[_0xebac('0x44')](_0x257533[_0xebac('0x45')]);_0x152a55[_0xebac('0x46')]=_[_0xebac('0x47')](_0x152a55[_0xebac('0x43')],_0x152a55[_0xebac('0x45')]);_0x2e197f[_0xebac('0x48')]=_[_0xebac('0x47')](_0x152a55[_0xebac('0x43')],qs['fields'](_0x257533[_0xebac('0x45')]['fields']));_0x2e197f[_0xebac('0x48')]=_0x2e197f['attributes'][_0xebac('0x4a')]?_0x2e197f[_0xebac('0x48')]:_0x152a55[_0xebac('0x43')];if(!_0x257533[_0xebac('0x45')][_0xebac('0x4b')](_0xebac('0x4c'))){_0x2e197f['limit']=qs[_0xebac('0x24')](_0x257533[_0xebac('0x45')][_0xebac('0x24')]);_0x2e197f[_0xebac('0x22')]=qs[_0xebac('0x22')](_0x257533['query'][_0xebac('0x22')]);}_0x2e197f[_0xebac('0x4d')]=qs[_0xebac('0x4e')](_0x257533[_0xebac('0x45')]['sort']);_0x2e197f[_0xebac('0x4f')]=qs[_0xebac('0x46')](_[_0xebac('0xc6')](_0x257533[_0xebac('0x45')],_0x152a55[_0xebac('0x46')]));_0x2e197f[_0xebac('0x4f')][_0xebac('0xc7')]=_0x2db086['id'];if(_0x257533[_0xebac('0x45')][_0xebac('0x8e')]){_0x2e197f[_0xebac('0x4f')]=_[_0xebac('0xa5')](_0x2e197f[_0xebac('0x4f')],{'$or':_['map'](_0x2e197f[_0xebac('0x48')],function(_0x96ccca){var _0x359e3e={};_0x359e3e[_0x96ccca]={'$like':'%'+_0x257533[_0xebac('0x45')][_0xebac('0x8e')]+'%'};return _0x359e3e;})});}if(_0x257533[_0xebac('0x45')][_0xebac('0x85')]){var _0x54b7ee=_0x257533[_0xebac('0x45')][_0xebac('0x85')][_0xebac('0x34')](',');var _0x567453={};_0x567453[_0x54b7ee[0x0]]={'$gte':moment(_0x54b7ee[0x1])[_0xebac('0xc8')](_0xebac('0xc9'))};_0x2e197f[_0xebac('0x4f')]=_[_0xebac('0xa5')](_0x2e197f[_0xebac('0x4f')],_0x567453);}_0x2e197f=_['merge']({},_0x2e197f,_0x257533['options']);return db[_0xebac('0xc1')][_0xebac('0x25')]({'where':_0x2e197f[_0xebac('0x4f')]})[_0xebac('0x2a')](function(_0x422b93){_0x3c2b54[_0xebac('0x25')]=_0x422b93;if(_0x257533[_0xebac('0x45')]['includeAll']){_0x2e197f[_0xebac('0xbc')]=[{'all':!![]}];}return db[_0xebac('0xc1')][_0xebac('0xca')](_0x2e197f);})[_0xebac('0x2a')](function(_0x1c027e){_0x3c2b54[_0xebac('0xb8')]=_0x1c027e;return _0x3c2b54;});}})[_0xebac('0x2a')](respondWithFilteredResult(_0x2becbc,_0x2e197f))['catch'](handleError(_0x2becbc,null));};exports['addTags']=function(_0x5d8f4d,_0x3f3922,_0x2586f3){return db[_0xebac('0x3f')][_0xebac('0x68')]({'where':{'id':_0x5d8f4d[_0xebac('0xba')]['id']}})['then'](handleEntityNotFound(_0x3f3922,null))[_0xebac('0x2a')](function(_0x1b3dd3){if(_0x1b3dd3){return _0x1b3dd3[_0xebac('0xcb')](_0x5d8f4d[_0xebac('0x7c')][_0xebac('0xc2')],_[_0xebac('0xc3')](_0x5d8f4d['body'],[_0xebac('0xc2'),'id'])||{})[_0xebac('0xcc')](function(){return db['Tag'][_0xebac('0xca')]({'attributes':['id',_0xebac('0x2e'),_0xebac('0x50')],'where':{'id':_0x5d8f4d[_0xebac('0x7c')]['ids']}});})[_0xebac('0x2a')](function(_0x29053a){socket[_0xebac('0xcd')](_0xebac('0xce'),{'id':Number(_0x5d8f4d[_0xebac('0xba')]['id']),'tags':_0x29053a||[]});return{'id':Number(_0x5d8f4d['params']['id']),'tags':_0x29053a||[]};});}})['then'](respondWithResult(_0x3f3922,null))[_0xebac('0x36')](handleError(_0x3f3922,null));};exports[_0xebac('0xcf')]=function(_0x5ba614,_0x1e7975,_0x563884){return db['OpenchannelInteraction'][_0xebac('0x68')]({'where':{'id':_0x5ba614['params']['id']}})[_0xebac('0x2a')](handleEntityNotFound(_0x1e7975,null))['then'](function(_0x354e66){if(_0x354e66){return _0x354e66['removeTags'](_0x5ba614[_0xebac('0x45')][_0xebac('0xc2')]);}})[_0xebac('0x2a')](respondWithStatusCode(_0x1e7975,null))['catch'](handleError(_0x1e7975,null));};exports[_0xebac('0xd0')]=function(_0x2ecd9a,_0x42c069){var _0x1b2fa3=moment()[_0xebac('0xd1')]()[_0xebac('0xa3')]();var _0x4a86cb=path[_0xebac('0xd2')](config[_0xebac('0xd3')],_0xebac('0xd4'),_0xebac('0xd5'),'tmp');var _0x3b4187=path[_0xebac('0xd2')](config['root'],_0xebac('0xd4'),_0xebac('0xd5'),'attachments');var _0x41cf97=path[_0xebac('0xd2')](_0x4a86cb,_0x1b2fa3);var _0xbbae37=util[_0xebac('0xc8')](_0xebac('0xd6'),_0x2ecd9a['params']['id'],_0x1b2fa3);var _0x20478d=path['join'](_0x4a86cb,_0xbbae37);var _0x59d338=[];_0x59d338[_0xebac('0x35')]({'model':db[_0xebac('0xd7')],'as':_0xebac('0xd7'),'attributes':['id',_0xebac('0x31')],'raw':!![]});_0x59d338['push']({'model':db[_0xebac('0xd8')],'as':_0xebac('0x6e'),'attributes':['id',_0xebac('0xd9'),_0xebac('0xda')],'raw':!![]});if(_0x2ecd9a[_0xebac('0x45')][_0xebac('0xdb')]){_0x59d338['push']({'model':db['Attachment'],'as':_0xebac('0xdc'),'raw':!![]});}var _0x1d7838=[{'model':db['OpenchannelMessage'],'as':_0xebac('0xdd'),'attributes':['id',_0xebac('0x7c'),_0xebac('0x83'),_0xebac('0xde'),_0xebac('0xdf'),_0xebac('0x89')],'include':_0x59d338}];_0x1d7838[_0xebac('0x35')]({'model':db[_0xebac('0xe0')],'as':'Account','attributes':['id',_0xebac('0x2e')]});_0x1d7838[_0xebac('0x35')]({'model':db['User'],'as':_0xebac('0xe1'),'attributes':['id',_0xebac('0x31')]});return db[_0xebac('0x3f')]['find']({'where':{'id':_0x2ecd9a[_0xebac('0xba')]['id']},'include':_0x1d7838})[_0xebac('0x2a')](handleEntityNotFound(_0x42c069,null))[_0xebac('0x2a')](function(_0x207d26){if(_0x207d26){var _0x5f395b=_0x207d26[_0xebac('0xe2')]({'plain':!![]});fs[_0xebac('0xe3')](_0x41cf97);var _0x3907a7={'channel':_0xebac('0xe4'),'account':_0x5f395b[_0xebac('0xe5')]['name'],'agent':_0x5f395b['Owner']?_0x5f395b[_0xebac('0xe1')][_0xebac('0x31')]:'N.A.','createdAt':moment(_0x5f395b[_0xebac('0x83')])['format'](_0xebac('0xc9'))[_0xebac('0xa3')](),'closedAt':_0x5f395b[_0xebac('0x3b')]?moment(_0x5f395b[_0xebac('0xe6')])['format'](_0xebac('0xc9'))[_0xebac('0xa3')]():'','disposition':_0x5f395b[_0xebac('0xe7')],'visibility':_0x5f395b[_0xebac('0xe8')]?'Public':'Private','messages':_(_0x5f395b[_0xebac('0xdd')])[_0xebac('0x8e')]({'secret':![]})['map'](function(_0x2fbdf0){if(_0x2fbdf0[_0xebac('0xdc')]){var _0x3957d4=path[_0xebac('0xd2')](_0x3b4187,_0x2fbdf0[_0xebac('0xdc')][_0xebac('0xe9')]);if(fs[_0xebac('0xea')](_0x3957d4)){fs[_0xebac('0xeb')](_0x3957d4)[_0xebac('0xec')](fs[_0xebac('0xed')](path[_0xebac('0xd2')](_0x41cf97,_0x2fbdf0[_0xebac('0xdc')][_0xebac('0xe9')])));}}return{'date':moment(_0x2fbdf0[_0xebac('0x83')])[_0xebac('0xc8')]('YYYY-MM-DD\x20HH:mm:ss')[_0xebac('0xa3')](),'sender':_0x2fbdf0['direction']==='out'?_0x2fbdf0[_0xebac('0xd7')]?_0x2fbdf0[_0xebac('0xd7')]['fullname']:'System':_0x2fbdf0[_0xebac('0x6e')][_0xebac('0xd9')]+(_0x2fbdf0[_0xebac('0x6e')][_0xebac('0xda')]?'\x20'+_0x2fbdf0[_0xebac('0x6e')][_0xebac('0xda')]:''),'body':_0x2fbdf0['Attachment']?_0x2fbdf0['Attachment'][_0xebac('0xe9')]:_0x2fbdf0['body'],'direction':_0x2fbdf0[_0xebac('0xde')]===_0xebac('0xee')?'A':'C','secret':_0x2fbdf0[_0xebac('0xdf')],'read':_0x2fbdf0[_0xebac('0x89')],'attachment':_0x2fbdf0[_0xebac('0xdc')]};})[_0xebac('0x6b')]()};return ejs[_0xebac('0xef')](path[_0xebac('0xd2')](config[_0xebac('0xd3')],'server',_0xebac('0xf0'),'downloadInteraction.ejs'),{'interaction':_0x3907a7})[_0xebac('0x2a')](function(_0x342620){var _0x494c46=path[_0xebac('0xd2')](_0x41cf97,_0xebac('0xf1')+_0x5f395b['id']+'-'+_0x1b2fa3+_0xebac('0xf2'));var _0x597a0c={'path':_0x494c46,'channel':_0xebac('0xe4'),'interactionId':_0x5f395b['id']};return pdf[_0xebac('0xf3')](_0x342620,_0x597a0c);})[_0xebac('0x2a')](function(){return new BPromise(function(_0x2744aa,_0x239108){zipdir(_0x41cf97,{'saveTo':_0x20478d},function(_0x4a985f,_0x1708c8){if(_0x4a985f)return _0x239108(_0x4a985f);return _0x2744aa(_0x1708c8);});})[_0xebac('0x2a')](function(){return new BPromise(function(_0x5c4783,_0x40d83e){rimraf(_0x41cf97,function(_0x2f8f73){if(_0x2f8f73)_0x40d83e(_0x2f8f73);return _0x5c4783();});});})[_0xebac('0x2a')](function(){return _0x42c069['download'](_0x20478d,_0xbbae37,function(_0x51f9d6){if(_0x51f9d6){console[_0xebac('0xf4')](_0xebac('0xf5'),_0x51f9d6);}else{fs[_0xebac('0xf6')](_0x20478d);}});});});}else{return _0x42c069[_0xebac('0x1e')](0xc8);}})[_0xebac('0x36')](handleError(_0x42c069,null));};