Built motion from commit f7863d46.|2.5.41
[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 _0x662b=['OpenchannelAccount','Account','Owner','fullname','get','Openchannel','N.A.','disposition','Public','Private','basename','existsSync','pipe','out','renderFile','views','downloadInteraction.ejs','transcript-','createPdfFromHTML','log','err','zip-dir','fast-json-patch','request-promise','mustache','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','api','../../config/utils','../../mysqldb','defaults','redis','socket.io-emitter','./openchannelInteraction.socket','register','sendStatus','status','end','undefined','limit','count','offset','set','apply','then','destroy','error','name','send','TagIds','split','forEach','Tags','push','catch','waiting','talking','answered','unmanaged','closed','UserId','total','map','OpenchannelInteraction','rawAttributes','fieldName','key','query','keys','filters','intersection','attributes','model','fields','hasOwnProperty','nolimit','order','sort','where','select','color','from','tools_tags','u.id','field','u.fullname','users','u.id\x20=\x20ui.UserId','left_join','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','a.id\x20=\x20i.OpenchannelAccountId','openchannel_messages','me.OpenchannelInteractionId\x20=\x20i.id','openchannel_interaction_has_tags','it.OpenchannelInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','find','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','Contact','operator','length','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','ContactId','buildExpression','type','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','text','body','some','compact','isEmpty','createdAt','parse','$lte','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20>\x200','isArray','tag','replace','isNumeric','getFullTextValue','i.from\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','i.id','Sequelize','clone','contactName','t.id\x20IN\x20?','resolve','OpenchannelAccountId','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','user','agent','getOpenchannelAccounts','i.OpenchannelAccountId\x20IS\x20NULL','i.OpenchannelAccountId\x20IN\x20?','role','sequelize','toString','keyBy','merge','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','c.firstName','Contact.firstName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','ui.OpenchannelInteractionId\x20IN\x20?','groupBy','OpenchannelInteractionId','all','show','params','includeAll','include','create','update','addMessage','OpenchannelMessage','ids','getMessages','findOne','pick','filter','YYYY-MM-DD\x20HH:mm:ss','addTags','setTags','omit','spread','findAll','openchannelInteractionTags:save','removeTags','download','unix','join','root','files','tmp','server','attachments','format','CmContact','firstName','lastName','Attachment','Messages','direction','secret'];(function(_0x3c30a4,_0x152fd6){var _0x4f3e14=function(_0x28d11e){while(--_0x28d11e){_0x3c30a4['push'](_0x3c30a4['shift']());}};_0x4f3e14(++_0x152fd6);}(_0x662b,0x1d9));var _0xb662=function(_0x4e6dc4,_0x495f9a){_0x4e6dc4=_0x4e6dc4-0x0;var _0xf5db7c=_0x662b[_0x4e6dc4];return _0xf5db7c;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xb662('0x0'));var jsonpatch=require(_0xb662('0x1'));var rp=require(_0xb662('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xb662('0x3'));var util=require('util');var path=require('path');var sox=require(_0xb662('0x4'));var csv=require(_0xb662('0x5'));var ejs=require(_0xb662('0x6'));var fs=require('fs');var fs_extra=require(_0xb662('0x7'));var _=require(_0xb662('0x8'));var squel=require('squel');var crypto=require(_0xb662('0x9'));var jsforce=require(_0xb662('0xa'));var deskjs=require(_0xb662('0xb'));var toCsv=require(_0xb662('0x5'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xb662('0xc'));var authService=require(_0xb662('0xd'));var qs=require('../../components/parsers/qs');var as=require(_0xb662('0xe'));var pdf=require(_0xb662('0xf'));var hardwareService=require(_0xb662('0x10'));var logger=require('../../config/logger')(_0xb662('0x11'));var utils=require(_0xb662('0x12'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xb662('0x13'))['db'];config['redis']=_[_0xb662('0x14')](config[_0xb662('0x15')],{'host':'localhost','port':0x18eb});var socket=require(_0xb662('0x16'))(new Redis(config['redis']));require(_0xb662('0x17'))[_0xb662('0x18')](socket);function respondWithStatusCode(_0x33dc6a,_0x3e6443){_0x3e6443=_0x3e6443||0xcc;return function(_0x6b78ee){if(_0x6b78ee){return _0x33dc6a[_0xb662('0x19')](_0x3e6443);}return _0x33dc6a[_0xb662('0x1a')](_0x3e6443)[_0xb662('0x1b')]();};}function respondWithResult(_0x19f624,_0x1e968d){_0x1e968d=_0x1e968d||0xc8;return function(_0x2225fd){if(_0x2225fd){return _0x19f624['status'](_0x1e968d)['json'](_0x2225fd);}};}function respondWithFilteredResult(_0x355f5d,_0xb4f737){return function(_0x47167e){if(_0x47167e){var _0x478051=typeof _0xb4f737['offset']===_0xb662('0x1c')&&typeof _0xb4f737[_0xb662('0x1d')]==='undefined';var _0x4f016b=_0x47167e[_0xb662('0x1e')];var _0x3318fd=_0x478051?0x0:_0xb4f737[_0xb662('0x1f')];var _0x1d24a4=_0x478051?_0x47167e['count']:_0xb4f737[_0xb662('0x1f')]+_0xb4f737[_0xb662('0x1d')];var _0x52e4f2;if(_0x1d24a4>=_0x4f016b){_0x1d24a4=_0x4f016b;_0x52e4f2=0xc8;}else{_0x52e4f2=0xce;}_0x355f5d[_0xb662('0x1a')](_0x52e4f2);return _0x355f5d[_0xb662('0x20')]('Content-Range',_0x3318fd+'-'+_0x1d24a4+'/'+_0x4f016b)['json'](_0x47167e);}return null;};}function patchUpdates(_0x4f543d){return function(_0x3fe744){try{jsonpatch[_0xb662('0x21')](_0x3fe744,_0x4f543d,!![]);}catch(_0x46e792){return BPromise['reject'](_0x46e792);}return _0x3fe744['save']();};}function saveUpdates(_0x26af31,_0x4920e8){return function(_0x18da78){if(_0x18da78){return _0x18da78['update'](_0x26af31)[_0xb662('0x22')](function(_0xa7e8f1){return _0xa7e8f1;});}return null;};}function removeEntity(_0x73413a,_0x448f4c){return function(_0x32dc5e){if(_0x32dc5e){return _0x32dc5e[_0xb662('0x23')]()[_0xb662('0x22')](function(){_0x73413a['status'](0xcc)[_0xb662('0x1b')]();});}};}function handleEntityNotFound(_0x5166e2,_0xf3ca33){return function(_0x43e2d1){if(!_0x43e2d1){_0x5166e2[_0xb662('0x19')](0x194);}return _0x43e2d1;};}function handleError(_0x13cc7b,_0x337b33){_0x337b33=_0x337b33||0x1f4;return function(_0x22fcf5){logger[_0xb662('0x24')](_0x22fcf5['stack']);if(_0x22fcf5[_0xb662('0x25')]){delete _0x22fcf5[_0xb662('0x25')];}_0x13cc7b[_0xb662('0x1a')](_0x337b33)[_0xb662('0x26')](_0x22fcf5);};}function getInteractionUsers(_0x2d8046,_0x45fe06){return new BPromise(function(_0x659367,_0x2072e2){try{if(_0x45fe06[_0x2d8046['id']]){_0x2d8046['Users']=_['map'](_0x45fe06[_0x2d8046['id']],function(_0x27cee9){return{'id':_0x27cee9['id'],'fullname':_0x27cee9['fullname']};});}}catch(_0x2b04c9){_0x2072e2(_0x2b04c9);}_0x659367(_0x2d8046);});}function getInteractionTags(_0x1a741c,_0x6057ad){return new BPromise(function(_0x203648,_0x354901){try{if(_0x1a741c['TagIds']){_0x1a741c['Tags']=[];_0x1a741c[_0xb662('0x27')][_0xb662('0x28')](',')[_0xb662('0x29')](function(_0x2378ac){_0x1a741c[_0xb662('0x2a')][_0xb662('0x2b')](_0x6057ad[_0x2378ac]);});}delete _0x1a741c['TagIds'];}catch(_0x3bfb7f){_0x354901(_0x3bfb7f);}_0x203648(_0x1a741c);});}function updateOpenchannelInteraction(_0x3fd589,_0x1cb3c3,_0x239cc5){return new BPromise(function(_0x4f222b,_0x533bb7){return getInteractionUsers(_0x3fd589,_0x239cc5)['then'](function(_0x415fcb){return getInteractionTags(_0x415fcb,_0x1cb3c3);})['then'](function(_0x215bf2){return getStateInteraction(_0x215bf2);})[_0xb662('0x22')](function(_0x3dfd8a){_0x4f222b(_0x3dfd8a);})[_0xb662('0x2c')](function(_0x218c8d){_0x533bb7(_0x218c8d);});});}function getStateInteraction(_0x5b82c4){return new BPromise(function(_0x2ab148){_0x5b82c4[_0xb662('0x2d')]=0x0;_0x5b82c4[_0xb662('0x2e')]=0x0;_0x5b82c4[_0xb662('0x2f')]=0x0;_0x5b82c4[_0xb662('0x30')]=0x0;_0x5b82c4['total']=0x0;if(!_0x5b82c4[_0xb662('0x31')]&&!_0x5b82c4['UserId']){_0x5b82c4[_0xb662('0x2d')]+=0x1;}if(!_0x5b82c4[_0xb662('0x31')]&&_0x5b82c4[_0xb662('0x32')]){_0x5b82c4[_0xb662('0x2e')]+=0x1;if(_0x5b82c4[_0xb662('0x2d')]){_0x5b82c4[_0xb662('0x2d')]-=0x1;}}if(_0x5b82c4[_0xb662('0x31')]&&_0x5b82c4[_0xb662('0x32')]){_0x5b82c4[_0xb662('0x2f')]+=0x1;if(_0x5b82c4[_0xb662('0x2e')]){_0x5b82c4[_0xb662('0x2e')]-=0x1;}}if(_0x5b82c4[_0xb662('0x31')]&&!_0x5b82c4[_0xb662('0x32')]){_0x5b82c4[_0xb662('0x30')]+=0x1;if(_0x5b82c4['waiting']){_0x5b82c4[_0xb662('0x2d')]-=0x1;}}_0x5b82c4[_0xb662('0x33')]+=0x1;_0x2ab148(_0x5b82c4);});}exports['index']=function(_0xf6c808,_0x1a756c){var _0x3bcc82={},_0x147af1={},_0x5ad318={'count':0x0,'rows':[]};var _0x59cca2=_[_0xb662('0x34')](db[_0xb662('0x35')][_0xb662('0x36')],function(_0x1fb017){return{'name':_0x1fb017[_0xb662('0x37')],'type':_0x1fb017['type'][_0xb662('0x38')]};});_0x147af1['model']=_[_0xb662('0x34')](_0x59cca2,_0xb662('0x25'));_0x147af1[_0xb662('0x39')]=_[_0xb662('0x3a')](_0xf6c808['query']);_0x147af1[_0xb662('0x3b')]=_[_0xb662('0x3c')](_0x147af1['model'],_0x147af1['query']);_0x3bcc82[_0xb662('0x3d')]=_[_0xb662('0x3c')](_0x147af1[_0xb662('0x3e')],qs[_0xb662('0x3f')](_0xf6c808[_0xb662('0x39')][_0xb662('0x3f')]));_0x3bcc82[_0xb662('0x3d')]=_0x3bcc82[_0xb662('0x3d')]['length']?_0x3bcc82[_0xb662('0x3d')]:_0x147af1[_0xb662('0x3e')];if(!_0xf6c808['query'][_0xb662('0x40')](_0xb662('0x41'))){_0x3bcc82[_0xb662('0x1d')]=qs[_0xb662('0x1d')](_0xf6c808[_0xb662('0x39')][_0xb662('0x1d')]);_0x3bcc82[_0xb662('0x1f')]=qs['offset'](_0xf6c808[_0xb662('0x39')][_0xb662('0x1f')]);}_0x3bcc82[_0xb662('0x42')]=qs[_0xb662('0x43')](_0xf6c808[_0xb662('0x39')]['sort']);_0x3bcc82[_0xb662('0x44')]=qs['filters'](_['pick'](_0xf6c808[_0xb662('0x39')],_0x147af1[_0xb662('0x3b')]),_0x59cca2);var _0x1e272d=[];var _0x5998a9=squel[_0xb662('0x45')]()['field']('id')['field']('name')['field'](_0xb662('0x46'))[_0xb662('0x47')](_0xb662('0x48'));var _0x54deb2=squel[_0xb662('0x45')]()['field'](_0xb662('0x49'))[_0xb662('0x4a')](_0xb662('0x4b'))[_0xb662('0x4a')]('ui.OpenchannelInteractionId')[_0xb662('0x47')]('user_has_openchannel_interactions','ui')['left_join'](_0xb662('0x4c'),'u',_0xb662('0x4d'));var _0xca7ce9=squel[_0xb662('0x45')]()[_0xb662('0x47')]('openchannel_interactions','i')[_0xb662('0x4e')](_0xb662('0x4f'),'c',_0xb662('0x50'))['left_join'](_0xb662('0x4c'),'o',_0xb662('0x51'))[_0xb662('0x4e')]('openchannel_accounts','a',_0xb662('0x52'))[_0xb662('0x4e')](_0xb662('0x53'),'me',_0xb662('0x54'))[_0xb662('0x4e')](_0xb662('0x55'),'it',_0xb662('0x56'))[_0xb662('0x4e')]('tools_tags','t',_0xb662('0x57'));var _0x5c111f=squel[_0xb662('0x58')]();var _0x5d2ad9=[];var _0x3bbde1=squel[_0xb662('0x58')]();var _0x25ffac;if(_0xf6c808['query'][_0xb662('0x59')]){_0x25ffac=as[_0xb662('0x5a')](_0xf6c808[_0xb662('0x39')][_0xb662('0x59')]);var _0x30baa0=_0x25ffac[_0xb662('0x5b')];for(var _0x1c376e=0x0;_0x1c376e<_0x25ffac['conditions']['length'];_0x1c376e++){var _0x1fc8e6=_0x25ffac['conditions'][_0x1c376e];var _0x24cc7e='i';var _0x18f8ad=_[_0xb662('0x5c')](_0x59cca2,['name',_0x1fc8e6['field']]);if(!_0x18f8ad){switch(_0x1fc8e6[_0xb662('0x4a')]){case _0xb662('0x5d'):if(_0x1fc8e6[_0xb662('0x5e')]==0x1){_0xca7ce9[_0xb662('0x5f')]('`'+_0x1fc8e6[_0xb662('0x4a')]+_0xb662('0x60'));}else{_0xca7ce9['having']('`'+_0x1fc8e6[_0xb662('0x4a')]+_0xb662('0x61'));}break;case _0xb662('0x62'):if(_0x1fc8e6[_0xb662('0x63')]==='$substring'){if(_0x1fc8e6[_0xb662('0x5e')][_0xb662('0x28')]('\x20')[_0xb662('0x64')]>0x1){_0x5c111f[_0x30baa0](_0xb662('0x65'),qs['getFullTextValue'](_0x1fc8e6[_0xb662('0x5e')]),null);}else{var _0x433043='%'+_0x1fc8e6[_0xb662('0x5e')]+'%';_0x5c111f[_0x30baa0]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x433043,_0x433043,_0x433043);}}else{_0x18f8ad=_['find'](_0x59cca2,[_0xb662('0x25'),_0xb662('0x66')]);_0x1fc8e6[_0xb662('0x4a')]=_0xb662('0x66');_0x877e36=as[_0xb662('0x67')](_0x24cc7e,_0x18f8ad[_0xb662('0x68')],_0x1fc8e6);_0x5c111f[_0x30baa0](_0x877e36['text'],_0x877e36[_0xb662('0x5e')][_0xb662('0x69')],_0x877e36['value'][_0xb662('0x1b')]);}break;case _0xb662('0x6a'):var _0x39c907=_0x1fc8e6[_0xb662('0x5e')][_0xb662('0x28')](',')[_0xb662('0x34')](function(_0x54ab5e){return Number(_0x54ab5e);});_0x39c907[_0xb662('0x29')](function(_0x3941e9){_0x3bbde1['or'](_0xb662('0x6b'),'%,'+_0x3941e9+',%');});_0x5d2ad9=_[_0xb662('0x6c')](_0x5d2ad9,_0x39c907);break;case _0xb662('0x6d'):if(_0x1fc8e6[_0xb662('0x63')]==='$substring'){_0x5c111f[_0x30baa0]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x1fc8e6[_0xb662('0x5e')]+'%',null);}else{_0x18f8ad=_[_0xb662('0x5c')](_0x59cca2,[_0xb662('0x25'),'UserId']);_0x1fc8e6['field']='UserId';_0x877e36=as[_0xb662('0x67')](_0x24cc7e,_0x18f8ad[_0xb662('0x68')],_0x1fc8e6);_0x5c111f[_0x30baa0](_0x877e36[_0xb662('0x6e')],_0x877e36[_0xb662('0x5e')][_0xb662('0x69')],_0x877e36[_0xb662('0x5e')][_0xb662('0x1b')]);}break;case _0xb662('0x6f'):_0x877e36=as['buildExpression']('me',null,_0x1fc8e6);_0x5c111f[_0x30baa0](_0x877e36[_0xb662('0x6e')],_0x877e36['value'][_0xb662('0x69')],_0x877e36['value'][_0xb662('0x1b')]);break;}}else{var _0x877e36=as[_0xb662('0x67')](_0x24cc7e,_0x18f8ad[_0xb662('0x68')],_0x1fc8e6);_0x5c111f[_0x30baa0](_0x877e36[_0xb662('0x6e')],_0x877e36[_0xb662('0x5e')][_0xb662('0x69')],_0x877e36[_0xb662('0x5e')]['end']);}}}else{var _0x1464fb=_(_0xf6c808[_0xb662('0x39')])[_0xb662('0x3a')]()[_0xb662('0x34')](function(_0x30d7b7){return _[_0xb662('0x70')](_0x59cca2,[_0xb662('0x25'),_0x30d7b7])?_0x30d7b7:undefined;})[_0xb662('0x71')]()['value']();if(!_[_0xb662('0x72')](_0x1464fb)){_0x1464fb[_0xb662('0x29')](function(_0x327ea0){if(_0x327ea0==='OpenchannelAccountId'){_0xca7ce9[_0xb662('0x44')]('i.OpenchannelAccountId\x20IN\x20?',[]['concat'](_0xf6c808[_0xb662('0x39')][_0x327ea0]));}else if(_0x327ea0===_0xb662('0x73')){var _0x3fafd1=JSON[_0xb662('0x74')](_0xf6c808[_0xb662('0x39')][_0x327ea0])['$gte'];var _0x51262b=JSON[_0xb662('0x74')](_0xf6c808[_0xb662('0x39')][_0x327ea0])[_0xb662('0x75')];_0xca7ce9['where']('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x3fafd1,_0x51262b);}else{if(_0xf6c808[_0xb662('0x39')][_0x327ea0]===_0xb662('0x76')){_0xca7ce9['where']('i.'+_0x327ea0+_0xb662('0x77'));}else{_0xca7ce9[_0xb662('0x44')]('i.'+_0x327ea0+_0xb662('0x78'),_0xf6c808[_0xb662('0x39')][_0x327ea0]);}}});}if(_0xf6c808['query'][_0xb662('0x79')]){if(_0xf6c808[_0xb662('0x39')][_0xb662('0x79')]==0x1){_0xca7ce9[_0xb662('0x5f')]('`unreadMessages`\x20=\x200');}else{_0xca7ce9[_0xb662('0x5f')](_0xb662('0x7a'));}}if(_0xf6c808['query']['tag']){_0x5d2ad9=_[_0xb662('0x7b')](_0xf6c808[_0xb662('0x39')][_0xb662('0x7c')])?_0xf6c808[_0xb662('0x39')][_0xb662('0x7c')]:new Array(_0xf6c808[_0xb662('0x39')][_0xb662('0x7c')]);_0x5d2ad9[_0xb662('0x29')](function(_0x4b90b2){_0x3bbde1['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x4b90b2+',%');});}if(_0xf6c808[_0xb662('0x39')]['filter']){var _0x44acd4=_0xf6c808[_0xb662('0x39')]['filter']['replace']('\x5c','\x5c\x5c')[_0xb662('0x7d')](/'/g,'\x27\x27');if(qs[_0xb662('0x7e')](_0x44acd4)){_0x5c111f['or']('i.id\x20LIKE\x20?',_0x44acd4+'%');}else{_0x5c111f['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0xb662('0x7f')](_0x44acd4))['or'](_0xb662('0x80'),_0x44acd4+'%')['or'](_0xb662('0x81'),_0x44acd4+'%');}}}_0xca7ce9['where'](_0x5c111f);_0xca7ce9['group'](_0xb662('0x82'));var _0x30a312={'type':db[_0xb662('0x83')]['QueryTypes']['SELECT'],'raw':!![]};var _0x28b183=_0xca7ce9[_0xb662('0x84')]();_0x28b183[_0xb662('0x4a')](_0xb662('0x82'));_0x28b183[_0xb662('0x4a')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','unreadMessages');if(_0x3bcc82[_0xb662('0x42')]){_0x3bcc82[_0xb662('0x42')][_0xb662('0x29')](function(_0x57de70){var _0x38697c=_0x57de70[0x0]===_0xb662('0x85')?_0x57de70[0x0]:'i.'+_0x57de70[0x0];_0xca7ce9['order'](_0x38697c,_0x57de70[0x1]==='DESC'?![]:!![]);});}if(!_[_0xb662('0x72')](_0x5d2ad9)){_0xca7ce9[_0xb662('0x5f')](_0x3bbde1);_0x28b183[_0xb662('0x44')](_0xb662('0x86'),_0x5d2ad9);}BPromise[_0xb662('0x87')]()[_0xb662('0x22')](function(){if(!_0x25ffac){if(_0xf6c808[_0xb662('0x39')][_0xb662('0x88')])return;_0x28b183[_0xb662('0x44')](_0xb662('0x89'));_0xca7ce9[_0xb662('0x44')](_0xb662('0x89'));return;}if(_0xf6c808[_0xb662('0x8a')]['role']!==_0xb662('0x8b'))return;return _0xf6c808[_0xb662('0x8a')][_0xb662('0x8c')]({'attributes':['id'],'raw':!![]})[_0xb662('0x22')](function(_0x59d3d2){if(_[_0xb662('0x72')](_0x59d3d2)){_0x28b183[_0xb662('0x44')](_0xb662('0x8d'));_0xca7ce9[_0xb662('0x44')](_0xb662('0x8d'));}else{_0x28b183['where'](_0xb662('0x8e'),_[_0xb662('0x34')](_0x59d3d2,'id'));_0xca7ce9['where'](_0xb662('0x8e'),_['map'](_0x59d3d2,'id'));}});})[_0xb662('0x22')](function(){if(_0xf6c808[_0xb662('0x8a')][_0xb662('0x8f')]===_0xb662('0x8b')&&!_0x25ffac&&!_0xf6c808[_0xb662('0x39')]['OpenchannelAccountId'])return[];return db[_0xb662('0x90')][_0xb662('0x39')](_0x28b183[_0xb662('0x91')](),_0x30a312);})[_0xb662('0x22')](function(_0x4e4a1d){_0x5ad318['count']=_0x4e4a1d[_0xb662('0x64')];if(_0x5ad318['count']===0x0)return[];return db['sequelize'][_0xb662('0x39')](_0x5998a9['toString'](),_0x30a312)[_0xb662('0x22')](function(_0x5e8d95){_0x1e272d=_[_0xb662('0x92')](_0x5e8d95,'id');_0x30a312=_[_0xb662('0x93')](_0x30a312,{'model':db[_0xb662('0x35')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0xf6c808[_0xb662('0x39')][_0xb662('0x3f')]){_0x3bcc82[_0xb662('0x3d')][_0xb662('0x29')](function(_0x57939d){_0xca7ce9[_0xb662('0x4a')]('i.'+_0x57939d);});}else{_0xca7ce9[_0xb662('0x4a')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0xb662('0x5d'));_0xca7ce9[_0xb662('0x4a')]('a.key',_0xb662('0x94'));_0xca7ce9[_0xb662('0x4a')]('a.mandatoryDisposition',_0xb662('0x95'));_0xca7ce9['field'](_0xb662('0x96'),_0xb662('0x85'));_0xca7ce9['field']('i.*');_0xca7ce9[_0xb662('0x4a')](_0xb662('0x97'),_0xb662('0x98'));_0xca7ce9[_0xb662('0x4a')]('c.lastName',_0xb662('0x99'));_0xca7ce9[_0xb662('0x4a')](_0xb662('0x9a'),_0xb662('0x9b'));_0xca7ce9[_0xb662('0x4a')](_0xb662('0x9c'),_0xb662('0x9d'));_0xca7ce9[_0xb662('0x4a')](_0xb662('0x9e'),'Contact.mobile');_0xca7ce9[_0xb662('0x4a')]('c.fax',_0xb662('0x9f'));_0xca7ce9['field'](_0xb662('0xa0'),_0xb662('0xa1'));_0xca7ce9['field'](_0xb662('0xa2'),_0xb662('0xa3'));_0xca7ce9['field']('GROUP_CONCAT(DISTINCT\x20t.id)',_0xb662('0x27'));}if(_0x3bcc82['limit'])_0xca7ce9[_0xb662('0x1d')](_0x3bcc82[_0xb662('0x1d')]);if(_0x3bcc82[_0xb662('0x1f')])_0xca7ce9['offset'](_0x3bcc82[_0xb662('0x1f')]);return db[_0xb662('0x90')][_0xb662('0x39')](_0xca7ce9['toString'](),_0x30a312);})[_0xb662('0x22')](function(_0x425334){if(_0x425334[_0xb662('0x64')]>0x0)_0x54deb2['where'](_0xb662('0xa4'),_['map'](_0x425334,'id'));return db['sequelize']['query'](_0x54deb2[_0xb662('0x91')](),_0x30a312)[_0xb662('0x22')](function(_0x40f3af){var _0x268a7c=_[_0xb662('0xa5')](_0x40f3af,_0xb662('0xa6'));var _0x441705=[];_0x425334[_0xb662('0x29')](function(_0x1c794e){_0x441705[_0xb662('0x2b')](updateOpenchannelInteraction(_0x1c794e,_0x1e272d,_0x268a7c));});return BPromise[_0xb662('0xa7')](_0x441705);});});})['then'](function(_0x2f9ffb){_0x5ad318['rows']=_0x2f9ffb;return _0x5ad318;})[_0xb662('0x22')](respondWithFilteredResult(_0x1a756c,_0x3bcc82))[_0xb662('0x2c')](handleError(_0x1a756c,null));};exports[_0xb662('0xa8')]=function(_0x1dad9e,_0x1b296d){var _0x31e89f={};if(_0x1dad9e[_0xb662('0x39')][_0xb662('0x68')]&&_0x1dad9e['query']['type']===_0xb662('0x47')){_0x31e89f[_0xb662('0x47')]=_0x1dad9e[_0xb662('0xa9')]['id'];}else{_0x31e89f['id']=_0x1dad9e[_0xb662('0xa9')]['id'];}var _0x2726df={'raw':![],'where':_0x31e89f},_0x181507={};_0x181507['model']=_['keys'](db[_0xb662('0x35')]['rawAttributes']);_0x181507[_0xb662('0x39')]=_['keys'](_0x1dad9e[_0xb662('0x39')]);_0x181507[_0xb662('0x3b')]=_['intersection'](_0x181507[_0xb662('0x3e')],_0x181507[_0xb662('0x39')]);_0x2726df[_0xb662('0x3d')]=_['intersection'](_0x181507[_0xb662('0x3e')],qs[_0xb662('0x3f')](_0x1dad9e[_0xb662('0x39')][_0xb662('0x3f')]));_0x2726df[_0xb662('0x3d')]=_0x2726df['attributes'][_0xb662('0x64')]?_0x2726df['attributes']:_0x181507['model'];if(_0x1dad9e[_0xb662('0x39')][_0xb662('0xaa')]){_0x2726df[_0xb662('0xab')]=[{'all':!![]}];}_0x2726df=_[_0xb662('0x93')]({},_0x2726df,_0x1dad9e['options']);return db[_0xb662('0x35')][_0xb662('0x5c')](_0x2726df)[_0xb662('0x22')](handleEntityNotFound(_0x1b296d,null))[_0xb662('0x22')](respondWithResult(_0x1b296d,null))['catch'](handleError(_0x1b296d,null));};exports[_0xb662('0xac')]=function(_0x4535bc,_0x34f239){return db[_0xb662('0x35')]['create'](_0x4535bc[_0xb662('0x6f')],{})[_0xb662('0x22')](respondWithResult(_0x34f239,0xc9))[_0xb662('0x2c')](handleError(_0x34f239,null));};exports[_0xb662('0xad')]=function(_0x276898,_0x4aa58b){if(_0x276898[_0xb662('0x6f')]['id']){delete _0x276898['body']['id'];}return db[_0xb662('0x35')][_0xb662('0x5c')]({'where':{'id':_0x276898['params']['id']}})[_0xb662('0x22')](handleEntityNotFound(_0x4aa58b,null))['then'](saveUpdates(_0x276898[_0xb662('0x6f')],null))['then'](respondWithResult(_0x4aa58b,null))[_0xb662('0x2c')](handleError(_0x4aa58b,null));};exports[_0xb662('0x23')]=function(_0xa6195c,_0x30bc19){return db[_0xb662('0x35')][_0xb662('0x5c')]({'where':{'id':_0xa6195c[_0xb662('0xa9')]['id']}})[_0xb662('0x22')](handleEntityNotFound(_0x30bc19,null))[_0xb662('0x22')](removeEntity(_0x30bc19,null))['catch'](handleError(_0x30bc19,null));};exports['describe']=function(_0x2a895a,_0x56865f){return db[_0xb662('0x35')]['describe']()[_0xb662('0x22')](respondWithResult(_0x56865f,null))[_0xb662('0x2c')](handleError(_0x56865f,null));};exports[_0xb662('0xae')]=function(_0x3238e5,_0x2c437e,_0xa66194){return db[_0xb662('0xaf')][_0xb662('0x5c')]({'where':{'id':_0x3238e5[_0xb662('0xa9')]['id']}})[_0xb662('0x22')](handleEntityNotFound(_0x2c437e,null))[_0xb662('0x22')](function(_0xb6420b){if(_0xb6420b){return _0xb6420b[_0xb662('0xae')](_0x3238e5[_0xb662('0x6f')][_0xb662('0xb0')],_['omit'](_0x3238e5[_0xb662('0x6f')],[_0xb662('0xb0'),'id'])||{});}})[_0xb662('0x22')](respondWithResult(_0x2c437e,null))['catch'](handleError(_0x2c437e,null));};exports[_0xb662('0xb1')]=function(_0x9894b3,_0x403419,_0x2d93b2){var _0x36d911={'raw':![],'where':{}};var _0x26311d={};var _0x4f8dd4={'count':0x0,'rows':[]};return db['OpenchannelInteraction'][_0xb662('0xb2')]({'where':{'id':_0x9894b3[_0xb662('0xa9')]['id']}})[_0xb662('0x22')](handleEntityNotFound(_0x403419,null))[_0xb662('0x22')](function(_0x1721e4){if(_0x1721e4){_0x26311d['model']=_['keys'](db['OpenchannelMessage'][_0xb662('0x36')]);_0x26311d['query']=_['keys'](_0x9894b3['query']);_0x26311d[_0xb662('0x3b')]=_[_0xb662('0x3c')](_0x26311d[_0xb662('0x3e')],_0x26311d['query']);_0x36d911[_0xb662('0x3d')]=_[_0xb662('0x3c')](_0x26311d[_0xb662('0x3e')],qs[_0xb662('0x3f')](_0x9894b3[_0xb662('0x39')][_0xb662('0x3f')]));_0x36d911[_0xb662('0x3d')]=_0x36d911[_0xb662('0x3d')][_0xb662('0x64')]?_0x36d911[_0xb662('0x3d')]:_0x26311d[_0xb662('0x3e')];if(!_0x9894b3[_0xb662('0x39')][_0xb662('0x40')](_0xb662('0x41'))){_0x36d911[_0xb662('0x1d')]=qs[_0xb662('0x1d')](_0x9894b3[_0xb662('0x39')]['limit']);_0x36d911[_0xb662('0x1f')]=qs[_0xb662('0x1f')](_0x9894b3['query'][_0xb662('0x1f')]);}_0x36d911[_0xb662('0x42')]=qs[_0xb662('0x43')](_0x9894b3[_0xb662('0x39')][_0xb662('0x43')]);_0x36d911[_0xb662('0x44')]=qs['filters'](_[_0xb662('0xb3')](_0x9894b3[_0xb662('0x39')],_0x26311d[_0xb662('0x3b')]));_0x36d911[_0xb662('0x44')][_0xb662('0xa6')]=_0x1721e4['id'];if(_0x9894b3[_0xb662('0x39')][_0xb662('0xb4')]){_0x36d911[_0xb662('0x44')]=_[_0xb662('0x93')](_0x36d911[_0xb662('0x44')],{'$or':_[_0xb662('0x34')](_0x36d911[_0xb662('0x3d')],function(_0x5c47ba){var _0xa9170a={};_0xa9170a[_0x5c47ba]={'$like':'%'+_0x9894b3[_0xb662('0x39')][_0xb662('0xb4')]+'%'};return _0xa9170a;})});}if(_0x9894b3[_0xb662('0x39')]['$gte']){var _0x32f29d=_0x9894b3['query']['$gte'][_0xb662('0x28')](',');var _0x813c66={};_0x813c66[_0x32f29d[0x0]]={'$gte':moment(_0x32f29d[0x1])['format'](_0xb662('0xb5'))};_0x36d911[_0xb662('0x44')]=_[_0xb662('0x93')](_0x36d911[_0xb662('0x44')],_0x813c66);}_0x36d911=_[_0xb662('0x93')]({},_0x36d911,_0x9894b3['options']);return db[_0xb662('0xaf')][_0xb662('0x1e')]({'where':_0x36d911[_0xb662('0x44')]})['then'](function(_0x4802f9){_0x4f8dd4[_0xb662('0x1e')]=_0x4802f9;if(_0x9894b3[_0xb662('0x39')]['includeAll']){_0x36d911[_0xb662('0xab')]=[{'all':!![]}];}return db[_0xb662('0xaf')]['findAll'](_0x36d911);})[_0xb662('0x22')](function(_0x36aae9){_0x4f8dd4['rows']=_0x36aae9;return _0x4f8dd4;});}})[_0xb662('0x22')](respondWithFilteredResult(_0x403419,_0x36d911))['catch'](handleError(_0x403419,null));};exports[_0xb662('0xb6')]=function(_0x5cf73a,_0x1e86f8,_0x2a42a6){return db[_0xb662('0x35')][_0xb662('0x5c')]({'where':{'id':_0x5cf73a[_0xb662('0xa9')]['id']}})['then'](handleEntityNotFound(_0x1e86f8,null))[_0xb662('0x22')](function(_0x3fc41b){if(_0x3fc41b){return _0x3fc41b[_0xb662('0xb7')](_0x5cf73a[_0xb662('0x6f')]['ids'],_[_0xb662('0xb8')](_0x5cf73a[_0xb662('0x6f')],['ids','id'])||{})[_0xb662('0xb9')](function(){return db['Tag'][_0xb662('0xba')]({'attributes':['id',_0xb662('0x25'),'color'],'where':{'id':_0x5cf73a[_0xb662('0x6f')]['ids']}});})[_0xb662('0x22')](function(_0x30214e){socket['emit'](_0xb662('0xbb'),{'id':Number(_0x5cf73a[_0xb662('0xa9')]['id']),'tags':_0x30214e||[]});return{'id':Number(_0x5cf73a['params']['id']),'tags':_0x30214e||[]};});}})[_0xb662('0x22')](respondWithResult(_0x1e86f8,null))[_0xb662('0x2c')](handleError(_0x1e86f8,null));};exports[_0xb662('0xbc')]=function(_0x503f58,_0xd0aa72,_0x1149f0){return db[_0xb662('0x35')][_0xb662('0x5c')]({'where':{'id':_0x503f58['params']['id']}})[_0xb662('0x22')](handleEntityNotFound(_0xd0aa72,null))[_0xb662('0x22')](function(_0x1c2ae2){if(_0x1c2ae2){return _0x1c2ae2[_0xb662('0xbc')](_0x503f58[_0xb662('0x39')][_0xb662('0xb0')]);}})[_0xb662('0x22')](respondWithStatusCode(_0xd0aa72,null))[_0xb662('0x2c')](handleError(_0xd0aa72,null));};exports[_0xb662('0xbd')]=function(_0x4f5187,_0x379072){var _0x571aed=moment()[_0xb662('0xbe')]()[_0xb662('0x91')]();var _0x2e7711=path[_0xb662('0xbf')](config[_0xb662('0xc0')],'server',_0xb662('0xc1'),_0xb662('0xc2'));var _0x3519d7=path['join'](config[_0xb662('0xc0')],_0xb662('0xc3'),_0xb662('0xc1'),_0xb662('0xc4'));var _0x535e57=path['join'](_0x2e7711,_0x571aed);var _0x54c043=util[_0xb662('0xc5')]('transcript-%d-%s.zip',_0x4f5187[_0xb662('0xa9')]['id'],_0x571aed);var _0x501dbf=path[_0xb662('0xbf')](_0x2e7711,_0x54c043);var _0x3c7975=[];_0x3c7975[_0xb662('0x2b')]({'model':db[_0xb662('0x6d')],'as':'User','attributes':['id','fullname'],'raw':!![]});_0x3c7975[_0xb662('0x2b')]({'model':db[_0xb662('0xc6')],'as':'Contact','attributes':['id',_0xb662('0xc7'),_0xb662('0xc8')],'raw':!![]});if(_0x4f5187[_0xb662('0x39')][_0xb662('0xc4')]){_0x3c7975[_0xb662('0x2b')]({'model':db[_0xb662('0xc9')],'as':_0xb662('0xc9'),'raw':!![]});}var _0x55b1d2=[{'model':db[_0xb662('0xaf')],'as':_0xb662('0xca'),'attributes':['id',_0xb662('0x6f'),_0xb662('0x73'),_0xb662('0xcb'),_0xb662('0xcc'),_0xb662('0x79')],'include':_0x3c7975}];_0x55b1d2[_0xb662('0x2b')]({'model':db[_0xb662('0xcd')],'as':_0xb662('0xce'),'attributes':['id',_0xb662('0x25')]});_0x55b1d2[_0xb662('0x2b')]({'model':db['User'],'as':_0xb662('0xcf'),'attributes':['id',_0xb662('0xd0')]});return db[_0xb662('0x35')]['find']({'where':{'id':_0x4f5187[_0xb662('0xa9')]['id']},'include':_0x55b1d2})[_0xb662('0x22')](handleEntityNotFound(_0x379072,null))[_0xb662('0x22')](function(_0x10bfec){if(_0x10bfec){var _0x64c65a=_0x10bfec[_0xb662('0xd1')]({'plain':!![]});fs['mkdirSync'](_0x535e57);var _0x2ff138={'channel':_0xb662('0xd2'),'account':_0x64c65a['Account'][_0xb662('0x25')],'agent':_0x64c65a[_0xb662('0xcf')]?_0x64c65a['Owner'][_0xb662('0xd0')]:_0xb662('0xd3'),'createdAt':moment(_0x64c65a[_0xb662('0x73')])[_0xb662('0xc5')](_0xb662('0xb5'))[_0xb662('0x91')](),'closedAt':_0x64c65a[_0xb662('0x31')]?moment(_0x64c65a['closedAt'])[_0xb662('0xc5')](_0xb662('0xb5'))['toString']():'','disposition':_0x64c65a[_0xb662('0xd4')],'visibility':_0x64c65a['threadId']?_0xb662('0xd5'):_0xb662('0xd6'),'messages':_(_0x64c65a[_0xb662('0xca')])[_0xb662('0xb4')]({'secret':![]})['map'](function(_0x15408e){if(_0x15408e[_0xb662('0xc9')]){var _0x4568c3=path[_0xb662('0xbf')](_0x3519d7,_0x15408e[_0xb662('0xc9')][_0xb662('0xd7')]);if(fs[_0xb662('0xd8')](_0x4568c3)){fs['createReadStream'](_0x4568c3)[_0xb662('0xd9')](fs['createWriteStream'](path[_0xb662('0xbf')](_0x535e57,_0x15408e[_0xb662('0xc9')]['basename'])));}}return{'date':moment(_0x15408e['createdAt'])[_0xb662('0xc5')](_0xb662('0xb5'))[_0xb662('0x91')](),'sender':_0x15408e[_0xb662('0xcb')]==='out'?_0x15408e[_0xb662('0x6d')]?_0x15408e['User']['fullname']:'System':_0x15408e[_0xb662('0x62')][_0xb662('0xc7')]+(_0x15408e[_0xb662('0x62')]['lastName']?'\x20'+_0x15408e[_0xb662('0x62')][_0xb662('0xc8')]:''),'body':_0x15408e['Attachment']?_0x15408e['Attachment'][_0xb662('0xd7')]:_0x15408e['body'],'direction':_0x15408e[_0xb662('0xcb')]===_0xb662('0xda')?'A':'C','secret':_0x15408e['secret'],'read':_0x15408e[_0xb662('0x79')],'attachment':_0x15408e[_0xb662('0xc9')]};})['value']()};return ejs[_0xb662('0xdb')](path[_0xb662('0xbf')](config['root'],_0xb662('0xc3'),_0xb662('0xdc'),_0xb662('0xdd')),{'interaction':_0x2ff138})[_0xb662('0x22')](function(_0x5bb1aa){var _0x3a59ec=path[_0xb662('0xbf')](_0x535e57,_0xb662('0xde')+_0x64c65a['id']+'-'+_0x571aed+'.pdf');var _0x40fb7a={'path':_0x3a59ec,'channel':_0xb662('0xd2'),'interactionId':_0x64c65a['id']};return pdf[_0xb662('0xdf')](_0x5bb1aa,_0x40fb7a);})['then'](function(){return new BPromise(function(_0x81c24a,_0x7b622d){zipdir(_0x535e57,{'saveTo':_0x501dbf},function(_0x36db4e,_0x56d056){if(_0x36db4e)return _0x7b622d(_0x36db4e);return _0x81c24a(_0x56d056);});})[_0xb662('0x22')](function(){return new BPromise(function(_0x2772ea,_0x268b02){rimraf(_0x535e57,function(_0x1053b3){if(_0x1053b3)_0x268b02(_0x1053b3);return _0x2772ea();});});})['then'](function(){return _0x379072[_0xb662('0xbd')](_0x501dbf,_0x54c043,function(_0xe55d22){if(_0xe55d22){console[_0xb662('0xe0')](_0xb662('0xe1'),_0xe55d22);}else{fs['unlinkSync'](_0x501dbf);}});});});}else{return _0x379072[_0xb662('0x19')](0xc8);}})[_0xb662('0x2c')](handleError(_0x379072,null));};