25d7536ef96664206e3781a64b1bcd4b98bc96d6
[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 _0x380e=['i.*','c.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.OpenchannelInteractionId\x20IN\x20?','push','all','show','params','include','create','update','body','destroy','describe','addMessage','OpenchannelMessage','ids','getMessages','hasOwnProperty','OpenchannelInteractionId','merge','format','YYYY-MM-DD\x20HH:mm:ss','options','includeAll','rows','setTags','omit','spread','Tag','findAll','color','openchannelInteractionTags:save','removeTags','download','unix','join','root','server','files','tmp','transcript-%d-%s.zip','CmContact','firstName','lastName','attachments','Attachment','Messages','direction','secret','read','OpenchannelAccount','Account','Owner','get','mkdirSync','Openchannel','N.A.','closedAt','threadId','Public','Private','basename','existsSync','pipe','createWriteStream','out','System','downloadInteraction.ejs','transcript-','.pdf','createPdfFromHTML','log','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/logger','api','../../mysqldb','redis','socket.io-emitter','./openchannelInteraction.socket','sendStatus','end','status','json','offset','limit','undefined','count','set','apply','then','error','stack','name','send','Users','fullname','TagIds','Tags','split','forEach','catch','waiting','talking','answered','unmanaged','total','closed','UserId','index','map','OpenchannelInteraction','rawAttributes','fieldName','type','model','keys','filters','intersection','query','attributes','fields','nolimit','sort','where','pick','field','from','tools_tags','u.id','u.fullname','ui.OpenchannelInteractionId','left_join','users','u.id\x20=\x20ui.UserId','select','openchannel_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','openchannel_accounts','openchannel_messages','me.OpenchannelInteractionId\x20=\x20i.id','openchannel_interaction_has_tags','it.OpenchannelInteractionId\x20=\x20i.id','expr','search','sqlOperator','conditions','length','find','unreadMessages','having','`\x20=\x200','Contact','operator','value','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','text','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','start','compact','isEmpty','OpenchannelAccountId','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20=\x20?','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','i.from\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','i.id','Sequelize','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','contactName','DESC','t.id\x20IN\x20?','resolve','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','user','i.OpenchannelAccountId\x20IS\x20NULL','i.OpenchannelAccountId\x20IN\x20?','role','agent','sequelize','toString','keyBy','a.key','Account.key','Account.mandatoryDisposition','CASE\x20WHEN\x20i.from\x20IS\x20NOT\x20NULL\x20AND\x20i.from\x20<>\x20\x27\x27\x20THEN\x20i.from\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END'];(function(_0x48b308,_0xc424ea){var _0x3ea12e=function(_0x378588){while(--_0x378588){_0x48b308['push'](_0x48b308['shift']());}};_0x3ea12e(++_0xc424ea);}(_0x380e,0x150));var _0xe380=function(_0x1925a5,_0xcd2508){_0x1925a5=_0x1925a5-0x0;var _0x51d6b9=_0x380e[_0x1925a5];return _0x51d6b9;};'use strict';var emlformat=require(_0xe380('0x0'));var rimraf=require(_0xe380('0x1'));var zipdir=require(_0xe380('0x2'));var jsonpatch=require(_0xe380('0x3'));var rp=require(_0xe380('0x4'));var moment=require('moment');var BPromise=require(_0xe380('0x5'));var Mustache=require(_0xe380('0x6'));var util=require(_0xe380('0x7'));var path=require('path');var sox=require(_0xe380('0x8'));var csv=require(_0xe380('0x9'));var ejs=require(_0xe380('0xa'));var fs=require('fs');var fs_extra=require(_0xe380('0xb'));var _=require('lodash');var squel=require(_0xe380('0xc'));var crypto=require(_0xe380('0xd'));var jsforce=require(_0xe380('0xe'));var deskjs=require(_0xe380('0xf'));var toCsv=require('to-csv');var querystring=require(_0xe380('0x10'));var Papa=require(_0xe380('0x11'));var Redis=require(_0xe380('0x12'));var authService=require(_0xe380('0x13'));var qs=require(_0xe380('0x14'));var as=require(_0xe380('0x15'));var pdf=require(_0xe380('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xe380('0x17'))(_0xe380('0x18'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xe380('0x19'))['db'];config[_0xe380('0x1a')]=_['defaults'](config[_0xe380('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0xe380('0x1b'))(new Redis(config[_0xe380('0x1a')]));require(_0xe380('0x1c'))['register'](socket);function respondWithStatusCode(_0x59a8ac,_0x3cc92a){_0x3cc92a=_0x3cc92a||0xcc;return function(_0x1cca0a){if(_0x1cca0a){return _0x59a8ac[_0xe380('0x1d')](_0x3cc92a);}return _0x59a8ac['status'](_0x3cc92a)[_0xe380('0x1e')]();};}function respondWithResult(_0x26cffc,_0x397d9b){_0x397d9b=_0x397d9b||0xc8;return function(_0x4b7c2d){if(_0x4b7c2d){return _0x26cffc[_0xe380('0x1f')](_0x397d9b)[_0xe380('0x20')](_0x4b7c2d);}};}function respondWithFilteredResult(_0x273e46,_0x2de90c){return function(_0x6e6c89){if(_0x6e6c89){var _0x2b4a9a=typeof _0x2de90c[_0xe380('0x21')]==='undefined'&&typeof _0x2de90c[_0xe380('0x22')]===_0xe380('0x23');var _0x3e8c75=_0x6e6c89[_0xe380('0x24')];var _0x273019=_0x2b4a9a?0x0:_0x2de90c['offset'];var _0x1cead7=_0x2b4a9a?_0x6e6c89[_0xe380('0x24')]:_0x2de90c[_0xe380('0x21')]+_0x2de90c[_0xe380('0x22')];var _0x195cb4;if(_0x1cead7>=_0x3e8c75){_0x1cead7=_0x3e8c75;_0x195cb4=0xc8;}else{_0x195cb4=0xce;}_0x273e46[_0xe380('0x1f')](_0x195cb4);return _0x273e46[_0xe380('0x25')]('Content-Range',_0x273019+'-'+_0x1cead7+'/'+_0x3e8c75)[_0xe380('0x20')](_0x6e6c89);}return null;};}function patchUpdates(_0x4c4505){return function(_0x57272b){try{jsonpatch[_0xe380('0x26')](_0x57272b,_0x4c4505,!![]);}catch(_0x27a61b){return BPromise['reject'](_0x27a61b);}return _0x57272b['save']();};}function saveUpdates(_0xa047bd,_0x59f916){return function(_0x1bf6cc){if(_0x1bf6cc){return _0x1bf6cc['update'](_0xa047bd)[_0xe380('0x27')](function(_0x4c6212){return _0x4c6212;});}return null;};}function removeEntity(_0x348e28,_0x182b9e){return function(_0x36b918){if(_0x36b918){return _0x36b918['destroy']()['then'](function(){_0x348e28[_0xe380('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2df5a3,_0x1f3c16){return function(_0x26c580){if(!_0x26c580){_0x2df5a3[_0xe380('0x1d')](0x194);}return _0x26c580;};}function handleError(_0x194d50,_0x115146){_0x115146=_0x115146||0x1f4;return function(_0x4b4ed3){logger[_0xe380('0x28')](_0x4b4ed3[_0xe380('0x29')]);if(_0x4b4ed3[_0xe380('0x2a')]){delete _0x4b4ed3[_0xe380('0x2a')];}_0x194d50[_0xe380('0x1f')](_0x115146)[_0xe380('0x2b')](_0x4b4ed3);};}function getInteractionUsers(_0x1335ae,_0x27a209){return new BPromise(function(_0xa14c4e,_0x564f63){try{if(_0x27a209[_0x1335ae['id']]){_0x1335ae[_0xe380('0x2c')]=_['map'](_0x27a209[_0x1335ae['id']],function(_0x2677e3){return{'id':_0x2677e3['id'],'fullname':_0x2677e3[_0xe380('0x2d')]};});}}catch(_0x628cfb){_0x564f63(_0x628cfb);}_0xa14c4e(_0x1335ae);});}function getInteractionTags(_0x4b7e84,_0x336246){return new BPromise(function(_0x3ba807,_0x3bbd50){try{if(_0x4b7e84[_0xe380('0x2e')]){_0x4b7e84[_0xe380('0x2f')]=[];_0x4b7e84[_0xe380('0x2e')][_0xe380('0x30')](',')[_0xe380('0x31')](function(_0xcea280){_0x4b7e84['Tags']['push'](_0x336246[_0xcea280]);});}delete _0x4b7e84[_0xe380('0x2e')];}catch(_0x26c7e6){_0x3bbd50(_0x26c7e6);}_0x3ba807(_0x4b7e84);});}function updateOpenchannelInteraction(_0x246c62,_0x3df7b8,_0x4d89ec){return new BPromise(function(_0x17d97a,_0x27b6d2){return getInteractionUsers(_0x246c62,_0x4d89ec)['then'](function(_0x384d95){return getInteractionTags(_0x384d95,_0x3df7b8);})[_0xe380('0x27')](function(_0x3955cb){return getStateInteraction(_0x3955cb);})[_0xe380('0x27')](function(_0x2115f6){_0x17d97a(_0x2115f6);})[_0xe380('0x32')](function(_0x182155){_0x27b6d2(_0x182155);});});}function getStateInteraction(_0x347e11){return new BPromise(function(_0x4db177){_0x347e11[_0xe380('0x33')]=0x0;_0x347e11[_0xe380('0x34')]=0x0;_0x347e11[_0xe380('0x35')]=0x0;_0x347e11[_0xe380('0x36')]=0x0;_0x347e11[_0xe380('0x37')]=0x0;if(!_0x347e11['closed']&&!_0x347e11['UserId']){_0x347e11['waiting']+=0x1;}if(!_0x347e11[_0xe380('0x38')]&&_0x347e11[_0xe380('0x39')]){_0x347e11[_0xe380('0x34')]+=0x1;if(_0x347e11[_0xe380('0x33')]){_0x347e11[_0xe380('0x33')]-=0x1;}}if(_0x347e11[_0xe380('0x38')]&&_0x347e11[_0xe380('0x39')]){_0x347e11[_0xe380('0x35')]+=0x1;if(_0x347e11[_0xe380('0x34')]){_0x347e11['talking']-=0x1;}}if(_0x347e11[_0xe380('0x38')]&&!_0x347e11[_0xe380('0x39')]){_0x347e11[_0xe380('0x36')]+=0x1;if(_0x347e11[_0xe380('0x33')]){_0x347e11[_0xe380('0x33')]-=0x1;}}_0x347e11['total']+=0x1;_0x4db177(_0x347e11);});}exports[_0xe380('0x3a')]=function(_0x52cc42,_0x35dce8){var _0x3d7842={},_0x5a1626={},_0x3961f8={'count':0x0,'rows':[]};var _0x56dfa9=_[_0xe380('0x3b')](db[_0xe380('0x3c')][_0xe380('0x3d')],function(_0x1a7ac3){return{'name':_0x1a7ac3[_0xe380('0x3e')],'type':_0x1a7ac3[_0xe380('0x3f')]['key']};});_0x5a1626[_0xe380('0x40')]=_[_0xe380('0x3b')](_0x56dfa9,_0xe380('0x2a'));_0x5a1626['query']=_[_0xe380('0x41')](_0x52cc42['query']);_0x5a1626[_0xe380('0x42')]=_[_0xe380('0x43')](_0x5a1626['model'],_0x5a1626[_0xe380('0x44')]);_0x3d7842[_0xe380('0x45')]=_['intersection'](_0x5a1626[_0xe380('0x40')],qs[_0xe380('0x46')](_0x52cc42[_0xe380('0x44')][_0xe380('0x46')]));_0x3d7842[_0xe380('0x45')]=_0x3d7842[_0xe380('0x45')]['length']?_0x3d7842[_0xe380('0x45')]:_0x5a1626[_0xe380('0x40')];if(!_0x52cc42['query']['hasOwnProperty'](_0xe380('0x47'))){_0x3d7842[_0xe380('0x22')]=qs[_0xe380('0x22')](_0x52cc42['query']['limit']);_0x3d7842[_0xe380('0x21')]=qs[_0xe380('0x21')](_0x52cc42[_0xe380('0x44')][_0xe380('0x21')]);}_0x3d7842['order']=qs[_0xe380('0x48')](_0x52cc42['query'][_0xe380('0x48')]);_0x3d7842[_0xe380('0x49')]=qs['filters'](_[_0xe380('0x4a')](_0x52cc42['query'],_0x5a1626[_0xe380('0x42')]),_0x56dfa9);var _0x314f00=[];var _0x390fca=squel['select']()[_0xe380('0x4b')]('id')[_0xe380('0x4b')](_0xe380('0x2a'))[_0xe380('0x4b')]('color')[_0xe380('0x4c')](_0xe380('0x4d'));var _0x24c6f5=squel['select']()['field'](_0xe380('0x4e'))[_0xe380('0x4b')](_0xe380('0x4f'))[_0xe380('0x4b')](_0xe380('0x50'))[_0xe380('0x4c')]('user_has_openchannel_interactions','ui')[_0xe380('0x51')](_0xe380('0x52'),'u',_0xe380('0x53'));var _0x2e9dc2=squel[_0xe380('0x54')]()[_0xe380('0x4c')](_0xe380('0x55'),'i')[_0xe380('0x51')](_0xe380('0x56'),'c',_0xe380('0x57'))[_0xe380('0x51')](_0xe380('0x52'),'o',_0xe380('0x58'))[_0xe380('0x51')](_0xe380('0x59'),'a','a.id\x20=\x20i.OpenchannelAccountId')[_0xe380('0x51')](_0xe380('0x5a'),'me',_0xe380('0x5b'))['left_join'](_0xe380('0x5c'),'it',_0xe380('0x5d'))[_0xe380('0x51')](_0xe380('0x4d'),'t','t.id\x20=\x20it.TagId');var _0x2646b1=squel[_0xe380('0x5e')]();var _0x3c9da7=[];var _0x117bba=squel[_0xe380('0x5e')]();var _0x520ce7;if(_0x52cc42[_0xe380('0x44')][_0xe380('0x5f')]){_0x520ce7=as['parseSearch'](_0x52cc42[_0xe380('0x44')][_0xe380('0x5f')]);var _0x6d22f4=_0x520ce7[_0xe380('0x60')];for(var _0x21a0aa=0x0;_0x21a0aa<_0x520ce7[_0xe380('0x61')][_0xe380('0x62')];_0x21a0aa++){var _0x41ff74=_0x520ce7['conditions'][_0x21a0aa];var _0x50c37c='i';var _0x103f43=_[_0xe380('0x63')](_0x56dfa9,[_0xe380('0x2a'),_0x41ff74[_0xe380('0x4b')]]);if(!_0x103f43){switch(_0x41ff74[_0xe380('0x4b')]){case _0xe380('0x64'):if(_0x41ff74['value']==0x1){_0x2e9dc2[_0xe380('0x65')]('`'+_0x41ff74[_0xe380('0x4b')]+_0xe380('0x66'));}else{_0x2e9dc2[_0xe380('0x65')]('`'+_0x41ff74[_0xe380('0x4b')]+'`\x20>\x200');}break;case _0xe380('0x67'):if(_0x41ff74[_0xe380('0x68')]==='$substring'){if(_0x41ff74[_0xe380('0x69')][_0xe380('0x30')]('\x20')['length']>0x1){_0x2646b1[_0x6d22f4](_0xe380('0x6a'),qs[_0xe380('0x6b')](_0x41ff74[_0xe380('0x69')]),null);}else{var _0x3f3ccd='%'+_0x41ff74['value']+'%';_0x2646b1[_0x6d22f4](_0xe380('0x6c'),_0x3f3ccd,_0x3f3ccd,_0x3f3ccd);}}else{_0x103f43=_[_0xe380('0x63')](_0x56dfa9,[_0xe380('0x2a'),_0xe380('0x6d')]);_0x41ff74['field']=_0xe380('0x6d');_0xe0c14=as[_0xe380('0x6e')](_0x50c37c,_0x103f43[_0xe380('0x3f')],_0x41ff74);_0x2646b1[_0x6d22f4](_0xe0c14[_0xe380('0x6f')],_0xe0c14[_0xe380('0x69')]['start'],_0xe0c14['value'][_0xe380('0x1e')]);}break;case'Tag':var _0x2a3526=_0x41ff74[_0xe380('0x69')][_0xe380('0x30')](',')['map'](function(_0xc5128a){return Number(_0xc5128a);});_0x2a3526['forEach'](function(_0x3accfa){_0x117bba['or'](_0xe380('0x70'),'%,'+_0x3accfa+',%');});_0x3c9da7=_[_0xe380('0x71')](_0x3c9da7,_0x2a3526);break;case _0xe380('0x72'):if(_0x41ff74['operator']==='$substring'){_0x2646b1[_0x6d22f4](_0xe380('0x73'),'%'+_0x41ff74[_0xe380('0x69')]+'%',null);}else{_0x103f43=_[_0xe380('0x63')](_0x56dfa9,[_0xe380('0x2a'),_0xe380('0x39')]);_0x41ff74[_0xe380('0x4b')]='UserId';_0xe0c14=as[_0xe380('0x6e')](_0x50c37c,_0x103f43[_0xe380('0x3f')],_0x41ff74);_0x2646b1[_0x6d22f4](_0xe0c14[_0xe380('0x6f')],_0xe0c14['value'][_0xe380('0x74')],_0xe0c14[_0xe380('0x69')]['end']);}break;case'body':_0xe0c14=as[_0xe380('0x6e')]('me',null,_0x41ff74);_0x2646b1[_0x6d22f4](_0xe0c14[_0xe380('0x6f')],_0xe0c14[_0xe380('0x69')][_0xe380('0x74')],_0xe0c14[_0xe380('0x69')][_0xe380('0x1e')]);break;}}else{var _0xe0c14=as[_0xe380('0x6e')](_0x50c37c,_0x103f43[_0xe380('0x3f')],_0x41ff74);_0x2646b1[_0x6d22f4](_0xe0c14['text'],_0xe0c14[_0xe380('0x69')][_0xe380('0x74')],_0xe0c14[_0xe380('0x69')][_0xe380('0x1e')]);}}}else{var _0x42ad83=_(_0x52cc42['query'])[_0xe380('0x41')]()[_0xe380('0x3b')](function(_0x4d2e7a){return _['some'](_0x56dfa9,[_0xe380('0x2a'),_0x4d2e7a])?_0x4d2e7a:undefined;})[_0xe380('0x75')]()[_0xe380('0x69')]();if(!_[_0xe380('0x76')](_0x42ad83)){_0x42ad83['forEach'](function(_0x459caa){if(_0x459caa===_0xe380('0x77')){_0x2e9dc2[_0xe380('0x49')]('i.OpenchannelAccountId\x20IN\x20?',[][_0xe380('0x78')](_0x52cc42[_0xe380('0x44')][_0x459caa]));}else if(_0x459caa===_0xe380('0x79')){var _0x2668ac=JSON[_0xe380('0x7a')](_0x52cc42[_0xe380('0x44')][_0x459caa])[_0xe380('0x7b')];var _0x3b2d8e=JSON[_0xe380('0x7a')](_0x52cc42[_0xe380('0x44')][_0x459caa])[_0xe380('0x7c')];_0x2e9dc2[_0xe380('0x49')](_0xe380('0x7d'),_0x2668ac,_0x3b2d8e);}else{if(_0x52cc42['query'][_0x459caa]===_0xe380('0x7e')){_0x2e9dc2[_0xe380('0x49')]('i.'+_0x459caa+'\x20IS\x20NULL');}else{_0x2e9dc2[_0xe380('0x49')]('i.'+_0x459caa+_0xe380('0x7f'),_0x52cc42['query'][_0x459caa]);}}});}if(_0x52cc42[_0xe380('0x44')]['read']){if(_0x52cc42[_0xe380('0x44')]['read']==0x1){_0x2e9dc2[_0xe380('0x65')](_0xe380('0x80'));}else{_0x2e9dc2['having'](_0xe380('0x81'));}}if(_0x52cc42[_0xe380('0x44')][_0xe380('0x82')]){_0x3c9da7=_[_0xe380('0x83')](_0x52cc42[_0xe380('0x44')][_0xe380('0x82')])?_0x52cc42['query'][_0xe380('0x82')]:new Array(_0x52cc42[_0xe380('0x44')][_0xe380('0x82')]);_0x3c9da7[_0xe380('0x31')](function(_0x1208f1){_0x117bba['or'](_0xe380('0x70'),'%,'+_0x1208f1+',%');});}if(_0x52cc42[_0xe380('0x44')][_0xe380('0x84')]){var _0x46162f=_0x52cc42[_0xe380('0x44')]['filter']['replace']('\x5c','\x5c\x5c')[_0xe380('0x85')](/'/g,'\x27\x27');if(qs[_0xe380('0x86')](_0x46162f)){_0x2646b1['or'](_0xe380('0x87'),_0x46162f+'%');}else{_0x2646b1['or'](_0xe380('0x88'),qs['getFullTextValue'](_0x46162f))['or'](_0xe380('0x89'),_0x46162f+'%')['or'](_0xe380('0x8a'),_0x46162f+'%');}}}_0x2e9dc2[_0xe380('0x49')](_0x2646b1);_0x2e9dc2['group'](_0xe380('0x8b'));var _0x1758a8={'type':db[_0xe380('0x8c')]['QueryTypes'][_0xe380('0x8d')],'raw':!![]};var _0x1a6ddc=_0x2e9dc2[_0xe380('0x8e')]();_0x1a6ddc[_0xe380('0x4b')](_0xe380('0x8b'));_0x1a6ddc['field'](_0xe380('0x8f'),_0xe380('0x64'));if(_0x3d7842[_0xe380('0x90')]){_0x3d7842['order']['forEach'](function(_0x8d3c07){var _0x4bb1e1=_0x8d3c07[0x0]===_0xe380('0x91')?_0x8d3c07[0x0]:'i.'+_0x8d3c07[0x0];_0x2e9dc2[_0xe380('0x90')](_0x4bb1e1,_0x8d3c07[0x1]===_0xe380('0x92')?![]:!![]);});}if(!_[_0xe380('0x76')](_0x3c9da7)){_0x2e9dc2[_0xe380('0x65')](_0x117bba);_0x1a6ddc[_0xe380('0x49')](_0xe380('0x93'),_0x3c9da7);}BPromise[_0xe380('0x94')]()['then'](function(){if(!_0x520ce7){if(_0x52cc42[_0xe380('0x44')]['OpenchannelAccountId'])return;_0x1a6ddc[_0xe380('0x49')](_0xe380('0x95'));_0x2e9dc2[_0xe380('0x49')](_0xe380('0x95'));return;}if(_0x52cc42['user']['role']!=='agent')return;return _0x52cc42[_0xe380('0x96')]['getOpenchannelAccounts']({'attributes':['id'],'raw':!![]})[_0xe380('0x27')](function(_0x406393){if(_['isEmpty'](_0x406393)){_0x1a6ddc[_0xe380('0x49')](_0xe380('0x97'));_0x2e9dc2[_0xe380('0x49')](_0xe380('0x97'));}else{_0x1a6ddc[_0xe380('0x49')](_0xe380('0x98'),_['map'](_0x406393,'id'));_0x2e9dc2['where'](_0xe380('0x98'),_[_0xe380('0x3b')](_0x406393,'id'));}});})['then'](function(){if(_0x52cc42[_0xe380('0x96')][_0xe380('0x99')]===_0xe380('0x9a')&&!_0x520ce7&&!_0x52cc42[_0xe380('0x44')][_0xe380('0x77')])return[];return db[_0xe380('0x9b')][_0xe380('0x44')](_0x1a6ddc[_0xe380('0x9c')](),_0x1758a8);})[_0xe380('0x27')](function(_0x1864d2){_0x3961f8[_0xe380('0x24')]=_0x1864d2[_0xe380('0x62')];if(_0x3961f8['count']===0x0)return[];return db[_0xe380('0x9b')][_0xe380('0x44')](_0x390fca['toString'](),_0x1758a8)['then'](function(_0x1af892){_0x314f00=_[_0xe380('0x9d')](_0x1af892,'id');_0x1758a8=_['merge'](_0x1758a8,{'model':db['OpenchannelInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x52cc42[_0xe380('0x44')][_0xe380('0x46')]){_0x3d7842['attributes'][_0xe380('0x31')](function(_0x2ff669){_0x2e9dc2['field']('i.'+_0x2ff669);});}else{_0x2e9dc2[_0xe380('0x4b')](_0xe380('0x8f'),_0xe380('0x64'));_0x2e9dc2[_0xe380('0x4b')](_0xe380('0x9e'),_0xe380('0x9f'));_0x2e9dc2['field']('a.mandatoryDisposition',_0xe380('0xa0'));_0x2e9dc2['field'](_0xe380('0xa1'),_0xe380('0x91'));_0x2e9dc2[_0xe380('0x4b')](_0xe380('0xa2'));_0x2e9dc2[_0xe380('0x4b')](_0xe380('0xa3'),'Contact.firstName');_0x2e9dc2['field'](_0xe380('0xa4'),_0xe380('0xa5'));_0x2e9dc2[_0xe380('0x4b')](_0xe380('0xa6'),_0xe380('0xa7'));_0x2e9dc2[_0xe380('0x4b')](_0xe380('0xa8'),_0xe380('0xa9'));_0x2e9dc2[_0xe380('0x4b')](_0xe380('0xaa'),_0xe380('0xab'));_0x2e9dc2['field'](_0xe380('0xac'),_0xe380('0xad'));_0x2e9dc2[_0xe380('0x4b')]('o.fullname',_0xe380('0xae'));_0x2e9dc2[_0xe380('0x4b')](_0xe380('0xaf'),_0xe380('0xb0'));_0x2e9dc2[_0xe380('0x4b')](_0xe380('0xb1'),_0xe380('0x2e'));}if(_0x3d7842[_0xe380('0x22')])_0x2e9dc2[_0xe380('0x22')](_0x3d7842['limit']);if(_0x3d7842[_0xe380('0x21')])_0x2e9dc2[_0xe380('0x21')](_0x3d7842[_0xe380('0x21')]);return db[_0xe380('0x9b')][_0xe380('0x44')](_0x2e9dc2[_0xe380('0x9c')](),_0x1758a8);})[_0xe380('0x27')](function(_0x4d3062){if(_0x4d3062[_0xe380('0x62')]>0x0)_0x24c6f5[_0xe380('0x49')](_0xe380('0xb2'),_['map'](_0x4d3062,'id'));return db[_0xe380('0x9b')][_0xe380('0x44')](_0x24c6f5[_0xe380('0x9c')](),_0x1758a8)['then'](function(_0x5e7ddf){var _0x308911=_['groupBy'](_0x5e7ddf,'OpenchannelInteractionId');var _0x293537=[];_0x4d3062[_0xe380('0x31')](function(_0x3183d0){_0x293537[_0xe380('0xb3')](updateOpenchannelInteraction(_0x3183d0,_0x314f00,_0x308911));});return BPromise[_0xe380('0xb4')](_0x293537);});});})['then'](function(_0x453686){_0x3961f8['rows']=_0x453686;return _0x3961f8;})['then'](respondWithFilteredResult(_0x35dce8,_0x3d7842))[_0xe380('0x32')](handleError(_0x35dce8,null));};exports[_0xe380('0xb5')]=function(_0x2b3b66,_0x4e8585){var _0x51172c={};if(_0x2b3b66[_0xe380('0x44')][_0xe380('0x3f')]&&_0x2b3b66[_0xe380('0x44')][_0xe380('0x3f')]===_0xe380('0x4c')){_0x51172c[_0xe380('0x4c')]=_0x2b3b66['params']['id'];}else{_0x51172c['id']=_0x2b3b66[_0xe380('0xb6')]['id'];}var _0x49ccdd={'raw':![],'where':_0x51172c},_0x13808a={};_0x13808a[_0xe380('0x40')]=_[_0xe380('0x41')](db['OpenchannelInteraction'][_0xe380('0x3d')]);_0x13808a[_0xe380('0x44')]=_[_0xe380('0x41')](_0x2b3b66['query']);_0x13808a['filters']=_[_0xe380('0x43')](_0x13808a['model'],_0x13808a[_0xe380('0x44')]);_0x49ccdd[_0xe380('0x45')]=_['intersection'](_0x13808a['model'],qs[_0xe380('0x46')](_0x2b3b66['query'][_0xe380('0x46')]));_0x49ccdd[_0xe380('0x45')]=_0x49ccdd['attributes'][_0xe380('0x62')]?_0x49ccdd['attributes']:_0x13808a[_0xe380('0x40')];if(_0x2b3b66[_0xe380('0x44')]['includeAll']){_0x49ccdd[_0xe380('0xb7')]=[{'all':!![]}];}_0x49ccdd=_['merge']({},_0x49ccdd,_0x2b3b66['options']);return db[_0xe380('0x3c')][_0xe380('0x63')](_0x49ccdd)['then'](handleEntityNotFound(_0x4e8585,null))[_0xe380('0x27')](respondWithResult(_0x4e8585,null))['catch'](handleError(_0x4e8585,null));};exports[_0xe380('0xb8')]=function(_0x57e605,_0x11c210){return db['OpenchannelInteraction'][_0xe380('0xb8')](_0x57e605['body'],{})['then'](respondWithResult(_0x11c210,0xc9))[_0xe380('0x32')](handleError(_0x11c210,null));};exports[_0xe380('0xb9')]=function(_0x9afbbf,_0x3d041b){if(_0x9afbbf[_0xe380('0xba')]['id']){delete _0x9afbbf[_0xe380('0xba')]['id'];}return db[_0xe380('0x3c')][_0xe380('0x63')]({'where':{'id':_0x9afbbf[_0xe380('0xb6')]['id']}})[_0xe380('0x27')](handleEntityNotFound(_0x3d041b,null))['then'](saveUpdates(_0x9afbbf['body'],null))[_0xe380('0x27')](respondWithResult(_0x3d041b,null))[_0xe380('0x32')](handleError(_0x3d041b,null));};exports[_0xe380('0xbb')]=function(_0x10655e,_0x53703e){return db[_0xe380('0x3c')][_0xe380('0x63')]({'where':{'id':_0x10655e['params']['id']}})[_0xe380('0x27')](handleEntityNotFound(_0x53703e,null))[_0xe380('0x27')](removeEntity(_0x53703e,null))[_0xe380('0x32')](handleError(_0x53703e,null));};exports[_0xe380('0xbc')]=function(_0x3d50aa,_0x14af50){return db[_0xe380('0x3c')][_0xe380('0xbc')]()[_0xe380('0x27')](respondWithResult(_0x14af50,null))[_0xe380('0x32')](handleError(_0x14af50,null));};exports[_0xe380('0xbd')]=function(_0x2ff264,_0x47bb0b,_0x43e3b0){return db[_0xe380('0xbe')][_0xe380('0x63')]({'where':{'id':_0x2ff264[_0xe380('0xb6')]['id']}})[_0xe380('0x27')](handleEntityNotFound(_0x47bb0b,null))[_0xe380('0x27')](function(_0x5877a5){if(_0x5877a5){return _0x5877a5[_0xe380('0xbd')](_0x2ff264[_0xe380('0xba')][_0xe380('0xbf')],_['omit'](_0x2ff264[_0xe380('0xba')],[_0xe380('0xbf'),'id'])||{});}})[_0xe380('0x27')](respondWithResult(_0x47bb0b,null))[_0xe380('0x32')](handleError(_0x47bb0b,null));};exports[_0xe380('0xc0')]=function(_0x38511a,_0x3f48c6,_0x56cfb2){var _0x173fdd={'raw':![],'where':{}};var _0x1bdc7b={};var _0x497b6c={'count':0x0,'rows':[]};return db[_0xe380('0x3c')]['findOne']({'where':{'id':_0x38511a[_0xe380('0xb6')]['id']}})['then'](handleEntityNotFound(_0x3f48c6,null))['then'](function(_0x445124){if(_0x445124){_0x1bdc7b['model']=_[_0xe380('0x41')](db[_0xe380('0xbe')][_0xe380('0x3d')]);_0x1bdc7b[_0xe380('0x44')]=_['keys'](_0x38511a[_0xe380('0x44')]);_0x1bdc7b[_0xe380('0x42')]=_[_0xe380('0x43')](_0x1bdc7b['model'],_0x1bdc7b['query']);_0x173fdd[_0xe380('0x45')]=_[_0xe380('0x43')](_0x1bdc7b[_0xe380('0x40')],qs['fields'](_0x38511a[_0xe380('0x44')][_0xe380('0x46')]));_0x173fdd[_0xe380('0x45')]=_0x173fdd[_0xe380('0x45')][_0xe380('0x62')]?_0x173fdd[_0xe380('0x45')]:_0x1bdc7b['model'];if(!_0x38511a[_0xe380('0x44')][_0xe380('0xc1')](_0xe380('0x47'))){_0x173fdd[_0xe380('0x22')]=qs[_0xe380('0x22')](_0x38511a[_0xe380('0x44')][_0xe380('0x22')]);_0x173fdd['offset']=qs[_0xe380('0x21')](_0x38511a[_0xe380('0x44')][_0xe380('0x21')]);}_0x173fdd[_0xe380('0x90')]=qs[_0xe380('0x48')](_0x38511a[_0xe380('0x44')][_0xe380('0x48')]);_0x173fdd[_0xe380('0x49')]=qs[_0xe380('0x42')](_[_0xe380('0x4a')](_0x38511a[_0xe380('0x44')],_0x1bdc7b[_0xe380('0x42')]));_0x173fdd[_0xe380('0x49')][_0xe380('0xc2')]=_0x445124['id'];if(_0x38511a['query'][_0xe380('0x84')]){_0x173fdd[_0xe380('0x49')]=_[_0xe380('0xc3')](_0x173fdd['where'],{'$or':_[_0xe380('0x3b')](_0x173fdd[_0xe380('0x45')],function(_0x598163){var _0x444152={};_0x444152[_0x598163]={'$like':'%'+_0x38511a[_0xe380('0x44')][_0xe380('0x84')]+'%'};return _0x444152;})});}if(_0x38511a[_0xe380('0x44')][_0xe380('0x7b')]){var _0x10142b=_0x38511a[_0xe380('0x44')][_0xe380('0x7b')][_0xe380('0x30')](',');var _0x2913d7={};_0x2913d7[_0x10142b[0x0]]={'$gte':moment(_0x10142b[0x1])[_0xe380('0xc4')](_0xe380('0xc5'))};_0x173fdd['where']=_[_0xe380('0xc3')](_0x173fdd['where'],_0x2913d7);}_0x173fdd=_[_0xe380('0xc3')]({},_0x173fdd,_0x38511a[_0xe380('0xc6')]);return db[_0xe380('0xbe')]['count']({'where':_0x173fdd[_0xe380('0x49')]})[_0xe380('0x27')](function(_0x3c89d5){_0x497b6c[_0xe380('0x24')]=_0x3c89d5;if(_0x38511a[_0xe380('0x44')][_0xe380('0xc7')]){_0x173fdd['include']=[{'all':!![]}];}return db[_0xe380('0xbe')]['findAll'](_0x173fdd);})['then'](function(_0xb2cfbb){_0x497b6c[_0xe380('0xc8')]=_0xb2cfbb;return _0x497b6c;});}})[_0xe380('0x27')](respondWithFilteredResult(_0x3f48c6,_0x173fdd))[_0xe380('0x32')](handleError(_0x3f48c6,null));};exports['addTags']=function(_0x4ec669,_0xc6a6c9,_0x2bb70c){return db[_0xe380('0x3c')][_0xe380('0x63')]({'where':{'id':_0x4ec669['params']['id']}})[_0xe380('0x27')](handleEntityNotFound(_0xc6a6c9,null))[_0xe380('0x27')](function(_0x193784){if(_0x193784){return _0x193784[_0xe380('0xc9')](_0x4ec669[_0xe380('0xba')][_0xe380('0xbf')],_[_0xe380('0xca')](_0x4ec669[_0xe380('0xba')],[_0xe380('0xbf'),'id'])||{})[_0xe380('0xcb')](function(){return db[_0xe380('0xcc')][_0xe380('0xcd')]({'attributes':['id',_0xe380('0x2a'),_0xe380('0xce')],'where':{'id':_0x4ec669[_0xe380('0xba')][_0xe380('0xbf')]}});})[_0xe380('0x27')](function(_0x136884){socket['emit'](_0xe380('0xcf'),{'id':Number(_0x4ec669['params']['id']),'tags':_0x136884||[]});return{'id':Number(_0x4ec669[_0xe380('0xb6')]['id']),'tags':_0x136884||[]};});}})[_0xe380('0x27')](respondWithResult(_0xc6a6c9,null))[_0xe380('0x32')](handleError(_0xc6a6c9,null));};exports[_0xe380('0xd0')]=function(_0x5b09fc,_0x375118,_0x1db0d8){return db['OpenchannelInteraction'][_0xe380('0x63')]({'where':{'id':_0x5b09fc['params']['id']}})[_0xe380('0x27')](handleEntityNotFound(_0x375118,null))[_0xe380('0x27')](function(_0x2ed155){if(_0x2ed155){return _0x2ed155[_0xe380('0xd0')](_0x5b09fc[_0xe380('0x44')][_0xe380('0xbf')]);}})['then'](respondWithStatusCode(_0x375118,null))[_0xe380('0x32')](handleError(_0x375118,null));};exports[_0xe380('0xd1')]=function(_0x386c93,_0x1c98bd){var _0xac5ceb=moment()[_0xe380('0xd2')]()['toString']();var _0x8300a8=path[_0xe380('0xd3')](config[_0xe380('0xd4')],_0xe380('0xd5'),_0xe380('0xd6'),_0xe380('0xd7'));var _0x5b2366=path[_0xe380('0xd3')](config[_0xe380('0xd4')],'server',_0xe380('0xd6'),'attachments');var _0x106825=path['join'](_0x8300a8,_0xac5ceb);var _0x4f5a0c=util[_0xe380('0xc4')](_0xe380('0xd8'),_0x386c93[_0xe380('0xb6')]['id'],_0xac5ceb);var _0x5ca46f=path[_0xe380('0xd3')](_0x8300a8,_0x4f5a0c);var _0x2a569b=[];_0x2a569b[_0xe380('0xb3')]({'model':db[_0xe380('0x72')],'as':_0xe380('0x72'),'attributes':['id','fullname'],'raw':!![]});_0x2a569b[_0xe380('0xb3')]({'model':db[_0xe380('0xd9')],'as':_0xe380('0x67'),'attributes':['id',_0xe380('0xda'),_0xe380('0xdb')],'raw':!![]});if(_0x386c93[_0xe380('0x44')][_0xe380('0xdc')]){_0x2a569b['push']({'model':db[_0xe380('0xdd')],'as':'Attachment','raw':!![]});}var _0x3a83c6=[{'model':db[_0xe380('0xbe')],'as':_0xe380('0xde'),'attributes':['id',_0xe380('0xba'),_0xe380('0x79'),_0xe380('0xdf'),_0xe380('0xe0'),_0xe380('0xe1')],'include':_0x2a569b}];_0x3a83c6[_0xe380('0xb3')]({'model':db[_0xe380('0xe2')],'as':_0xe380('0xe3'),'attributes':['id',_0xe380('0x2a')]});_0x3a83c6[_0xe380('0xb3')]({'model':db[_0xe380('0x72')],'as':_0xe380('0xe4'),'attributes':['id',_0xe380('0x2d')]});return db[_0xe380('0x3c')]['find']({'where':{'id':_0x386c93[_0xe380('0xb6')]['id']},'include':_0x3a83c6})[_0xe380('0x27')](handleEntityNotFound(_0x1c98bd,null))[_0xe380('0x27')](function(_0x4138f5){if(_0x4138f5){var _0x4f1def=_0x4138f5[_0xe380('0xe5')]({'plain':!![]});fs[_0xe380('0xe6')](_0x106825);var _0x54d125={'channel':_0xe380('0xe7'),'account':_0x4f1def[_0xe380('0xe3')]['name'],'agent':_0x4f1def[_0xe380('0xe4')]?_0x4f1def[_0xe380('0xe4')][_0xe380('0x2d')]:_0xe380('0xe8'),'createdAt':moment(_0x4f1def[_0xe380('0x79')])[_0xe380('0xc4')](_0xe380('0xc5'))[_0xe380('0x9c')](),'closedAt':_0x4f1def[_0xe380('0x38')]?moment(_0x4f1def[_0xe380('0xe9')])[_0xe380('0xc4')](_0xe380('0xc5'))[_0xe380('0x9c')]():'','disposition':_0x4f1def['disposition'],'visibility':_0x4f1def[_0xe380('0xea')]?_0xe380('0xeb'):_0xe380('0xec'),'messages':_(_0x4f1def[_0xe380('0xde')])[_0xe380('0x84')]({'secret':![]})['map'](function(_0x13b7c2){if(_0x13b7c2['Attachment']){var _0x1a00f0=path[_0xe380('0xd3')](_0x5b2366,_0x13b7c2[_0xe380('0xdd')][_0xe380('0xed')]);if(fs[_0xe380('0xee')](_0x1a00f0)){fs['createReadStream'](_0x1a00f0)[_0xe380('0xef')](fs[_0xe380('0xf0')](path[_0xe380('0xd3')](_0x106825,_0x13b7c2[_0xe380('0xdd')][_0xe380('0xed')])));}}return{'date':moment(_0x13b7c2['createdAt'])[_0xe380('0xc4')](_0xe380('0xc5'))[_0xe380('0x9c')](),'sender':_0x13b7c2[_0xe380('0xdf')]===_0xe380('0xf1')?_0x13b7c2[_0xe380('0x72')]?_0x13b7c2[_0xe380('0x72')]['fullname']:_0xe380('0xf2'):_0x13b7c2[_0xe380('0x67')][_0xe380('0xda')]+(_0x13b7c2['Contact'][_0xe380('0xdb')]?'\x20'+_0x13b7c2['Contact'][_0xe380('0xdb')]:''),'body':_0x13b7c2['Attachment']?_0x13b7c2[_0xe380('0xdd')][_0xe380('0xed')]:_0x13b7c2[_0xe380('0xba')],'direction':_0x13b7c2[_0xe380('0xdf')]===_0xe380('0xf1')?'A':'C','secret':_0x13b7c2[_0xe380('0xe0')],'read':_0x13b7c2[_0xe380('0xe1')],'attachment':_0x13b7c2[_0xe380('0xdd')]};})[_0xe380('0x69')]()};return ejs['renderFile'](path[_0xe380('0xd3')](config[_0xe380('0xd4')],_0xe380('0xd5'),'views',_0xe380('0xf3')),{'interaction':_0x54d125})[_0xe380('0x27')](function(_0x192af3){var _0x4d01b4=path[_0xe380('0xd3')](_0x106825,_0xe380('0xf4')+_0x4f1def['id']+'-'+_0xac5ceb+_0xe380('0xf5'));var _0x517fd2={'path':_0x4d01b4,'channel':_0xe380('0xe7'),'interactionId':_0x4f1def['id']};return pdf[_0xe380('0xf6')](_0x192af3,_0x517fd2);})['then'](function(){return new BPromise(function(_0x314b59,_0x1f7231){zipdir(_0x106825,{'saveTo':_0x5ca46f},function(_0x35ec3a,_0x3d8348){if(_0x35ec3a)return _0x1f7231(_0x35ec3a);return _0x314b59(_0x3d8348);});})[_0xe380('0x27')](function(){return new BPromise(function(_0xb80324,_0x4613b9){rimraf(_0x106825,function(_0x25c0b0){if(_0x25c0b0)_0x4613b9(_0x25c0b0);return _0xb80324();});});})[_0xe380('0x27')](function(){return _0x1c98bd[_0xe380('0xd1')](_0x5ca46f,_0x4f5a0c,function(_0x49e631){if(_0x49e631){console[_0xe380('0xf7')]('err',_0x49e631);}else{fs[_0xe380('0xf8')](_0x5ca46f);}});});});}else{return _0x1c98bd[_0xe380('0x1d')](0xc8);}})[_0xe380('0x32')](handleError(_0x1c98bd,null));};