afc7f365a6890da5c6f71005a2c3a6553af5e229
[motion2.git] / server / api / chatInteraction / chatInteraction.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 _0xa456=['Owner','closedAt','browserName','osName','referer','customerIp','customerPort','N.A.','tail','existsSync','createReadStream','createWriteStream','out','renderFile','views','downloadInteraction.html','toFile','.pdf','log','err','unlinkSync','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','redis','localhost','socket.io-emitter','./chatInteraction.socket','client','http','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','then','ChatInteraction,\x20%s,\x20%s','request\x20sent','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','message','info','catch','sendStatus','status','end','json','count','offset','Content-Range','apply','reject','save','update','stack','name','send','Users','map','fullname','TagIds','forEach','Tags','push','index','rawAttributes','type','key','query','keys','filters','model','attributes','intersection','hasOwnProperty','limit','sort','where','pick','field','from','tools_tags','u.fullname','ui.ChatInteractionId','user_has_chat_interactions','left_join','users','u.id\x20=\x20ui.UserId','select','chat_interactions','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','chat_websites','a.id\x20=\x20i.ChatWebsiteId','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','length','find','unreadMessages','having','Contact','operator','split','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','value','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','text','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','$substring','UserId','some','isEmpty','concat','createdAt','parse','$gte','$lte','null','\x20IS\x20NULL','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','isArray','tag','filter','replace','isNumeric','i.id\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','i.id','QueryTypes','clone','order','DESC','t.id\x20IN\x20?','resolve','ChatWebsiteId','journey','i.ChatWebsiteId\x20IS\x20NOT\x20NULL','user','getChatWebsites','i.ChatWebsiteId\x20IS\x20NULL','i.ChatWebsiteId\x20IN\x20?','sequelize','toString','keyBy','ChatInteraction','fields','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','c.firstName','Contact.lastName','c.email','Contact.email','Contact.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.ChatInteractionId\x20IN\x20?','groupBy','ChatInteractionId','all','rows','params','includeAll','merge','options','create','body','describe','createVidaooSession','findOne','ChatWebsite','vidaooApiKey','vidaooEscalation','POST','https://api-vidaoo.xcally.com/api/v1/sessions','MotionCWB:','follow','Sequelize','ChatMessage','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','Interaction\x20already\x20assigned','closed','disposition','AbandonInteraction','attachmentUpload','originalname','basename','file','filename','Attachment','attachmentDownload','download','root','server/files/attachments/','close','mailTranscript','join','format','transcript-%s.txt','pathTranscript','Messages','CmContact','%s%d','System','customer','Visitor','agentIdentifier','website_alias','agentAlias','agent_alias','alias','agent_fullname','MM/DD/YYYY\x20HH:mm:ss','direction','secret','appendFileSync','MailAccount','Smtp','service','host','port','secure','auth','pass','\x22%s\x22\x20<%s>','email','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','ids','omit','YYYY-MM-DD\x20HH:mm:ss','include','findAll','getMyMessages','nolimit','addTags','setTags','spread','color','emit','chatInteractionTags:save','removeTags','server','files','tmp','attachments','transcript-%d-%s.zip','firstName','lastName','Account','get','mkdirSync','40px','30px','<hr\x20class=\x22separator\x22/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22footer\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22left\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>%s</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22center\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>{{page}}/{{pages}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22right\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>%s</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>','Chat','YYYY-MM-DD'];(function(_0x10e3ed,_0x23af0e){var _0x8f5c5f=function(_0x148c27){while(--_0x148c27){_0x10e3ed['push'](_0x10e3ed['shift']());}};_0x8f5c5f(++_0x23af0e);}(_0xa456,0x142));var _0x6a45=function(_0x39096d,_0x51f8a0){_0x39096d=_0x39096d-0x0;var _0x13da4f=_0xa456[_0x39096d];return _0x13da4f;};'use strict';var pdf=require(_0x6a45('0x0'));var emlformat=require(_0x6a45('0x1'));var rimraf=require(_0x6a45('0x2'));var zipdir=require(_0x6a45('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6a45('0x4'));var moment=require(_0x6a45('0x5'));var BPromise=require(_0x6a45('0x6'));var Mustache=require('mustache');var util=require(_0x6a45('0x7'));var path=require(_0x6a45('0x8'));var sox=require(_0x6a45('0x9'));var csv=require(_0x6a45('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x6a45('0xb'));var squel=require(_0x6a45('0xc'));var crypto=require(_0x6a45('0xd'));var jsforce=require(_0x6a45('0xe'));var deskjs=require(_0x6a45('0xf'));var toCsv=require('to-csv');var querystring=require(_0x6a45('0x10'));var Papa=require('papaparse');var Redis=require(_0x6a45('0x11'));var authService=require(_0x6a45('0x12'));var qs=require(_0x6a45('0x13'));var as=require(_0x6a45('0x14'));var hardwareService=require(_0x6a45('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0x6a45('0x16'));var config=require(_0x6a45('0x17'));var db=require('../../mysqldb')['db'];config['redis']=_['defaults'](config[_0x6a45('0x18')],{'host':_0x6a45('0x19'),'port':0x18eb});var socket=require(_0x6a45('0x1a'))(new Redis(config[_0x6a45('0x18')]));require(_0x6a45('0x1b'))['register'](socket);var jayson=require('jayson/promise');var client=jayson[_0x6a45('0x1c')][_0x6a45('0x1d')]({'port':0x232b});var client9004=jayson['client'][_0x6a45('0x1d')]({'port':0x232c});function checkPasswordPattern(_0x171176,_0x3fab82,_0x13adc0){if(_0x13adc0){var _0x548634=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x548634['test'](_0x3fab82)){return _0x171176;}else{throw new db['Sequelize'][(_0x6a45('0x1e'))](_0x6a45('0x1f'));}}else{return _0x171176;}}function respondWithRpcPromise(_0x360b7f,_0x52a055,_0x379c22,_0x102981){return new BPromise(function(_0x3439c8,_0x49fc10){var _0x52e7bf=_0x102981||client;return _0x52e7bf['request'](_0x360b7f,_0x379c22)[_0x6a45('0x20')](function(_0x2ed1e5){logger['info'](_0x6a45('0x21'),_0x52a055,_0x6a45('0x22'));logger['debug'](_0x6a45('0x23'),_0x52a055,_0x6a45('0x22'),JSON[_0x6a45('0x24')](_0x2ed1e5));if(_0x2ed1e5[_0x6a45('0x25')]){if(_0x2ed1e5[_0x6a45('0x25')]['code']===0x1f4){logger['error'](_0x6a45('0x21'),_0x52a055,_0x2ed1e5[_0x6a45('0x25')][_0x6a45('0x26')]);return _0x49fc10(_0x2ed1e5[_0x6a45('0x25')][_0x6a45('0x26')]);}logger[_0x6a45('0x25')](_0x6a45('0x21'),_0x52a055,_0x2ed1e5[_0x6a45('0x25')][_0x6a45('0x26')]);return _0x3439c8(_0x2ed1e5[_0x6a45('0x25')][_0x6a45('0x26')]);}else{logger[_0x6a45('0x27')]('ChatInteraction,\x20%s,\x20%s',_0x52a055,_0x6a45('0x22'));_0x3439c8(_0x2ed1e5['result'][_0x6a45('0x26')]);}})[_0x6a45('0x28')](function(_0x28bdf0){logger[_0x6a45('0x25')](_0x6a45('0x21'),_0x52a055,_0x28bdf0);_0x49fc10(_0x28bdf0);});});}function respondWithStatusCode(_0x526062,_0x2b8cc8){_0x2b8cc8=_0x2b8cc8||0xcc;return function(_0x308003){if(_0x308003){return _0x526062[_0x6a45('0x29')](_0x2b8cc8);}return _0x526062[_0x6a45('0x2a')](_0x2b8cc8)[_0x6a45('0x2b')]();};}function respondWithResult(_0x227b6f,_0x3fac9b){_0x3fac9b=_0x3fac9b||0xc8;return function(_0x313c13){if(_0x313c13){return _0x227b6f['status'](_0x3fac9b)[_0x6a45('0x2c')](_0x313c13);}};}function respondWithFilteredResult(_0x1eedbe,_0x22b320){return function(_0x201369){if(_0x201369){var _0x3b07a1=_0x201369[_0x6a45('0x2d')],_0x5dc288=_0x22b320[_0x6a45('0x2e')],_0x1f95d4=_0x22b320['offset']+_0x22b320['limit'],_0x1f96bf;if(_0x1f95d4>=_0x3b07a1){_0x1f95d4=_0x3b07a1;_0x1f96bf=0xc8;}else{_0x1f96bf=0xce;}_0x1eedbe[_0x6a45('0x2a')](_0x1f96bf);return _0x1eedbe['set'](_0x6a45('0x2f'),_0x5dc288+'-'+_0x1f95d4+'/'+_0x3b07a1)['json'](_0x201369);}return null;};}function patchUpdates(_0x3dcddf){return function(_0x101a0f){try{jsonpatch[_0x6a45('0x30')](_0x101a0f,_0x3dcddf,!![]);}catch(_0x203727){return BPromise[_0x6a45('0x31')](_0x203727);}return _0x101a0f[_0x6a45('0x32')]();};}function saveUpdates(_0x351e70,_0x2b6cc5){return function(_0x8c8cc3){if(_0x8c8cc3){return _0x8c8cc3[_0x6a45('0x33')](_0x351e70)[_0x6a45('0x20')](function(_0x1893b9){return _0x1893b9;});}return null;};}function removeEntity(_0x44c1cc,_0x483b00){return function(_0x2bc67b){if(_0x2bc67b){return _0x2bc67b['destroy']()[_0x6a45('0x20')](function(){_0x44c1cc[_0x6a45('0x2a')](0xcc)[_0x6a45('0x2b')]();});}};}function handleEntityNotFound(_0x2b052e,_0x462d1f){return function(_0x2199c1){if(!_0x2199c1){_0x2b052e['sendStatus'](0x194);}return _0x2199c1;};}function handleError(_0x2030a2,_0x2abd19){_0x2abd19=_0x2abd19||0x1f4;return function(_0x2b75f6){logger[_0x6a45('0x25')](_0x2b75f6[_0x6a45('0x34')]);if(_0x2b75f6[_0x6a45('0x35')]){delete _0x2b75f6['name'];}_0x2030a2[_0x6a45('0x2a')](_0x2abd19)[_0x6a45('0x36')](_0x2b75f6);};}function getInteractionUsers(_0x5c76bd,_0xb99ba3){return new BPromise(function(_0x32f014,_0x10cb71){try{if(_0xb99ba3[_0x5c76bd['id']]){_0x5c76bd[_0x6a45('0x37')]=_[_0x6a45('0x38')](_0xb99ba3[_0x5c76bd['id']],function(_0x50ebe0){return{'id':_0x50ebe0['id'],'fullname':_0x50ebe0[_0x6a45('0x39')]};});}}catch(_0xca32dd){_0x10cb71(_0xca32dd);}_0x32f014(_0x5c76bd);});}function getInteractionTags(_0x205afd,_0x405093){return new BPromise(function(_0x2e781b,_0x35c9dc){try{if(_0x205afd[_0x6a45('0x3a')]){_0x205afd['Tags']=[];_0x205afd[_0x6a45('0x3a')]['split'](',')[_0x6a45('0x3b')](function(_0x402d7f){_0x205afd[_0x6a45('0x3c')][_0x6a45('0x3d')](_0x405093[_0x402d7f]);});}delete _0x205afd['TagIds'];}catch(_0x4805dd){_0x35c9dc(_0x4805dd);}_0x2e781b(_0x205afd);});}function updateChatInteraction(_0x4736c9,_0x21d951,_0x51bc51){return new BPromise(function(_0x39331b,_0x3d8513){return getInteractionUsers(_0x4736c9,_0x51bc51)[_0x6a45('0x20')](function(_0x33347b){return getInteractionTags(_0x33347b,_0x21d951);})['then'](function(_0x508cdc){_0x39331b(_0x508cdc);})['catch'](function(_0x5b9798){_0x3d8513(_0x5b9798);});});}exports[_0x6a45('0x3e')]=function(_0xb5d191,_0x328d9f){var _0xcf722b={},_0x2a0eac={},_0x26d9b7={'count':0x0,'rows':[]};var _0x1114eb=_[_0x6a45('0x38')](db['ChatInteraction'][_0x6a45('0x3f')],function(_0x575ab9){return{'name':_0x575ab9['fieldName'],'type':_0x575ab9[_0x6a45('0x40')][_0x6a45('0x41')]};});_0x2a0eac['model']=_[_0x6a45('0x38')](_0x1114eb,'name');_0x2a0eac[_0x6a45('0x42')]=_[_0x6a45('0x43')](_0xb5d191[_0x6a45('0x42')]);_0x2a0eac[_0x6a45('0x44')]=_['intersection'](_0x2a0eac[_0x6a45('0x45')],_0x2a0eac[_0x6a45('0x42')]);_0xcf722b[_0x6a45('0x46')]=_[_0x6a45('0x47')](_0x2a0eac[_0x6a45('0x45')],qs['fields'](_0xb5d191[_0x6a45('0x42')]['fields']));_0xcf722b[_0x6a45('0x46')]=_0xcf722b[_0x6a45('0x46')]['length']?_0xcf722b[_0x6a45('0x46')]:_0x2a0eac[_0x6a45('0x45')];if(!_0xb5d191[_0x6a45('0x42')][_0x6a45('0x48')]('nolimit')){_0xcf722b[_0x6a45('0x49')]=qs['limit'](_0xb5d191[_0x6a45('0x42')]['limit']);_0xcf722b[_0x6a45('0x2e')]=qs[_0x6a45('0x2e')](_0xb5d191[_0x6a45('0x42')][_0x6a45('0x2e')]);}_0xcf722b['order']=qs[_0x6a45('0x4a')](_0xb5d191[_0x6a45('0x42')][_0x6a45('0x4a')]);_0xcf722b[_0x6a45('0x4b')]=qs[_0x6a45('0x44')](_[_0x6a45('0x4c')](_0xb5d191[_0x6a45('0x42')],_0x2a0eac[_0x6a45('0x44')]),_0x1114eb);var _0x134ace=[];var _0x265fa1=squel['select']()[_0x6a45('0x4d')]('id')[_0x6a45('0x4d')](_0x6a45('0x35'))[_0x6a45('0x4d')]('color')[_0x6a45('0x4e')](_0x6a45('0x4f'));var _0x3f3639=squel['select']()['field']('u.id')[_0x6a45('0x4d')](_0x6a45('0x50'))[_0x6a45('0x4d')](_0x6a45('0x51'))['from'](_0x6a45('0x52'),'ui')[_0x6a45('0x53')](_0x6a45('0x54'),'u',_0x6a45('0x55'));var _0x562c0d=squel[_0x6a45('0x56')]()[_0x6a45('0x4e')](_0x6a45('0x57'),'i')['left_join']('cm_contacts','c',_0x6a45('0x58'))[_0x6a45('0x53')]('users','o',_0x6a45('0x59'))[_0x6a45('0x53')](_0x6a45('0x5a'),'a',_0x6a45('0x5b'))[_0x6a45('0x53')]('chat_messages','me','me.ChatInteractionId\x20=\x20i.id')[_0x6a45('0x53')]('chat_interaction_has_tags','it','it.ChatInteractionId\x20=\x20i.id')['left_join'](_0x6a45('0x4f'),'t',_0x6a45('0x5c'));var _0x1a8604=squel[_0x6a45('0x5d')]();var _0x52e50d=[];var _0x4f3309=squel[_0x6a45('0x5d')]();var _0x5f6158;if(_0xb5d191[_0x6a45('0x42')][_0x6a45('0x5e')]){_0x5f6158=as[_0x6a45('0x5f')](_0xb5d191['query'][_0x6a45('0x5e')]);var _0x162cff=_0x5f6158[_0x6a45('0x60')];for(var _0x3dd06f=0x0;_0x3dd06f<_0x5f6158[_0x6a45('0x61')][_0x6a45('0x62')];_0x3dd06f++){var _0x1e4a91=_0x5f6158[_0x6a45('0x61')][_0x3dd06f];var _0x141546='i';var _0x4a6f4c=_[_0x6a45('0x63')](_0x1114eb,[_0x6a45('0x35'),_0x1e4a91[_0x6a45('0x4d')]]);if(!_0x4a6f4c){switch(_0x1e4a91['field']){case _0x6a45('0x64'):if(_0x1e4a91['value']==0x1){_0x562c0d[_0x6a45('0x65')]('`'+_0x1e4a91[_0x6a45('0x4d')]+'`\x20=\x200');}else{_0x562c0d[_0x6a45('0x65')]('`'+_0x1e4a91[_0x6a45('0x4d')]+'`\x20>\x200');}break;case _0x6a45('0x66'):if(_0x1e4a91[_0x6a45('0x67')]==='$substring'){if(_0x1e4a91['value'][_0x6a45('0x68')]('\x20')[_0x6a45('0x62')]>0x1){_0x1a8604[_0x162cff](_0x6a45('0x69'),qs[_0x6a45('0x6a')](_0x1e4a91[_0x6a45('0x6b')]),null);}else{var _0x482b3e='%'+_0x1e4a91['value']+'%';_0x1a8604[_0x162cff](_0x6a45('0x6c'),_0x482b3e,_0x482b3e,_0x482b3e);}}else{_0x4a6f4c=_[_0x6a45('0x63')](_0x1114eb,['name',_0x6a45('0x6d')]);_0x1e4a91[_0x6a45('0x4d')]=_0x6a45('0x6d');_0x1cef70=as[_0x6a45('0x6e')](_0x141546,_0x4a6f4c['type'],_0x1e4a91);_0x1a8604[_0x162cff](_0x1cef70[_0x6a45('0x6f')],_0x1cef70[_0x6a45('0x6b')][_0x6a45('0x70')],_0x1cef70[_0x6a45('0x6b')][_0x6a45('0x2b')]);}break;case _0x6a45('0x71'):var _0x3a87bf=_0x1e4a91[_0x6a45('0x6b')][_0x6a45('0x68')](',')[_0x6a45('0x38')](function(_0x403711){return Number(_0x403711);});_0x3a87bf[_0x6a45('0x3b')](function(_0x66285d){_0x4f3309['or'](_0x6a45('0x72'),'%,'+_0x66285d+',%');});_0x52e50d=_[_0x6a45('0x73')](_0x52e50d,_0x3a87bf);break;case _0x6a45('0x74'):if(_0x1e4a91[_0x6a45('0x67')]===_0x6a45('0x75')){_0x1a8604[_0x162cff]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x1e4a91[_0x6a45('0x6b')]+'%',null);}else{_0x4a6f4c=_['find'](_0x1114eb,[_0x6a45('0x35'),'UserId']);_0x1e4a91[_0x6a45('0x4d')]=_0x6a45('0x76');_0x1cef70=as[_0x6a45('0x6e')](_0x141546,_0x4a6f4c[_0x6a45('0x40')],_0x1e4a91);_0x1a8604[_0x162cff](_0x1cef70[_0x6a45('0x6f')],_0x1cef70[_0x6a45('0x6b')][_0x6a45('0x70')],_0x1cef70[_0x6a45('0x6b')][_0x6a45('0x2b')]);}break;case'body':_0x1cef70=as[_0x6a45('0x6e')]('me',null,_0x1e4a91);_0x1a8604[_0x162cff](_0x1cef70['text'],_0x1cef70[_0x6a45('0x6b')][_0x6a45('0x70')],_0x1cef70[_0x6a45('0x6b')]['end']);break;}}else{var _0x1cef70=as[_0x6a45('0x6e')](_0x141546,_0x4a6f4c[_0x6a45('0x40')],_0x1e4a91);_0x1a8604[_0x162cff](_0x1cef70[_0x6a45('0x6f')],_0x1cef70[_0x6a45('0x6b')][_0x6a45('0x70')],_0x1cef70[_0x6a45('0x6b')]['end']);}}}else{var _0x5c6ded=_(_0xb5d191[_0x6a45('0x42')])[_0x6a45('0x43')]()[_0x6a45('0x38')](function(_0xf3ba74){return _[_0x6a45('0x77')](_0x1114eb,[_0x6a45('0x35'),_0xf3ba74])?_0xf3ba74:undefined;})['compact']()[_0x6a45('0x6b')]();if(!_[_0x6a45('0x78')](_0x5c6ded)){_0x5c6ded['forEach'](function(_0x3173ce){if(_0x3173ce==='ChatWebsiteId'){_0x562c0d['where']('i.ChatWebsiteId\x20IN\x20?',[][_0x6a45('0x79')](_0xb5d191[_0x6a45('0x42')][_0x3173ce]));}else if(_0x3173ce===_0x6a45('0x7a')){var _0x4dea29=JSON[_0x6a45('0x7b')](_0xb5d191[_0x6a45('0x42')][_0x3173ce])[_0x6a45('0x7c')];var _0x197c3a=JSON[_0x6a45('0x7b')](_0xb5d191[_0x6a45('0x42')][_0x3173ce])[_0x6a45('0x7d')];_0x562c0d['where']('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x4dea29,_0x197c3a);}else{if(_0xb5d191[_0x6a45('0x42')][_0x3173ce]===_0x6a45('0x7e')){_0x562c0d[_0x6a45('0x4b')]('i.'+_0x3173ce+_0x6a45('0x7f'));}else{_0x562c0d[_0x6a45('0x4b')]('i.'+_0x3173ce+'\x20=\x20?',_0xb5d191[_0x6a45('0x42')][_0x3173ce]);}}});}if(_0xb5d191[_0x6a45('0x42')][_0x6a45('0x80')]){if(_0xb5d191[_0x6a45('0x42')][_0x6a45('0x80')]==0x1){_0x562c0d[_0x6a45('0x65')](_0x6a45('0x81'));}else{_0x562c0d['having'](_0x6a45('0x82'));}}if(_0xb5d191[_0x6a45('0x42')]['tag']){_0x52e50d=_[_0x6a45('0x83')](_0xb5d191[_0x6a45('0x42')][_0x6a45('0x84')])?_0xb5d191[_0x6a45('0x42')]['tag']:new Array(_0xb5d191[_0x6a45('0x42')][_0x6a45('0x84')]);_0x52e50d['forEach'](function(_0x45f49f){_0x4f3309['or'](_0x6a45('0x72'),'%,'+_0x45f49f+',%');});}if(_0xb5d191[_0x6a45('0x42')]['filter']){var _0x275cdf=_0xb5d191[_0x6a45('0x42')][_0x6a45('0x85')][_0x6a45('0x86')]('\x5c','\x5c\x5c')[_0x6a45('0x86')]('\x27\x27','\x27\x27\x27\x27');if(qs[_0x6a45('0x87')](_0x275cdf)){_0x1a8604['or'](_0x6a45('0x88'),_0x275cdf+'%');}else{_0x1a8604['or'](_0x6a45('0x89'),qs[_0x6a45('0x6a')](_0x275cdf))['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x275cdf+'%');}}}_0x562c0d[_0x6a45('0x4b')](_0x1a8604);_0x562c0d[_0x6a45('0x8a')](_0x6a45('0x8b'));var _0x50c92b={'type':db['Sequelize'][_0x6a45('0x8c')]['SELECT'],'raw':!![]};var _0x203108=_0x562c0d[_0x6a45('0x8d')]();_0x203108[_0x6a45('0x4d')]('i.id');_0x203108['field']('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x6a45('0x64'));if(_0xcf722b[_0x6a45('0x8e')]){_0xcf722b[_0x6a45('0x8e')][_0x6a45('0x3b')](function(_0x3cfa02){_0x562c0d['order']('i.'+_0x3cfa02[0x0],_0x3cfa02[0x1]===_0x6a45('0x8f')?![]:!![]);});}if(!_['isEmpty'](_0x52e50d)){_0x562c0d['having'](_0x4f3309);_0x203108[_0x6a45('0x4b')](_0x6a45('0x90'),_0x52e50d);}BPromise[_0x6a45('0x91')]()[_0x6a45('0x20')](function(){if(!_0x5f6158){if(_0xb5d191['query'][_0x6a45('0x92')]||_0xb5d191['query'][_0x6a45('0x93')])return;_0x203108[_0x6a45('0x4b')](_0x6a45('0x94'));_0x562c0d[_0x6a45('0x4b')](_0x6a45('0x94'));return;}return _0xb5d191[_0x6a45('0x95')][_0x6a45('0x96')]({'attributes':['id'],'raw':!![]})[_0x6a45('0x20')](function(_0xc6b82b){if(_[_0x6a45('0x78')](_0xc6b82b)){_0x203108[_0x6a45('0x4b')](_0x6a45('0x97'));_0x562c0d[_0x6a45('0x4b')]('i.ChatWebsiteId\x20IS\x20NULL');}else{_0x203108['where'](_0x6a45('0x98'),_['map'](_0xc6b82b,'id'));_0x562c0d[_0x6a45('0x4b')](_0x6a45('0x98'),_[_0x6a45('0x38')](_0xc6b82b,'id'));}});})[_0x6a45('0x20')](function(){db[_0x6a45('0x99')][_0x6a45('0x42')](_0x203108[_0x6a45('0x9a')](),_0x50c92b)[_0x6a45('0x20')](function(_0x57a61e){_0x26d9b7[_0x6a45('0x2d')]=_0x57a61e['length'];if(_0x26d9b7['count']===0x0)return[];return db['sequelize'][_0x6a45('0x42')](_0x265fa1[_0x6a45('0x9a')](),_0x50c92b)[_0x6a45('0x20')](function(_0x1e6a12){_0x134ace=_[_0x6a45('0x9b')](_0x1e6a12,'id');_0x50c92b=_['merge'](_0x50c92b,{'model':db[_0x6a45('0x9c')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0xb5d191[_0x6a45('0x42')][_0x6a45('0x9d')]){_0xcf722b[_0x6a45('0x46')][_0x6a45('0x3b')](function(_0x637030){_0x562c0d[_0x6a45('0x4d')]('i.'+_0x637030);});}else{_0x562c0d[_0x6a45('0x4d')](_0x6a45('0x9e'),'unreadMessages');_0x562c0d['field']('a.key',_0x6a45('0x9f'));_0x562c0d[_0x6a45('0x4d')](_0x6a45('0xa0'),_0x6a45('0xa1'));_0x562c0d['field']('i.*');_0x562c0d['field'](_0x6a45('0xa2'),'Contact.firstName');_0x562c0d['field']('c.lastName',_0x6a45('0xa3'));_0x562c0d[_0x6a45('0x4d')](_0x6a45('0xa4'),_0x6a45('0xa5'));_0x562c0d[_0x6a45('0x4d')]('c.phone',_0x6a45('0xa6'));_0x562c0d['field'](_0x6a45('0xa7'),_0x6a45('0xa8'));_0x562c0d[_0x6a45('0x4d')](_0x6a45('0xa9'),_0x6a45('0xaa'));_0x562c0d['field']('o.fullname','Owner.fullname');_0x562c0d[_0x6a45('0x4d')](_0x6a45('0xab'),_0x6a45('0xac'));_0x562c0d[_0x6a45('0x4d')](_0x6a45('0xad'),_0x6a45('0x3a'));}if(_0xcf722b[_0x6a45('0x49')])_0x562c0d[_0x6a45('0x49')](_0xcf722b[_0x6a45('0x49')]);if(_0xcf722b['offset'])_0x562c0d[_0x6a45('0x2e')](_0xcf722b[_0x6a45('0x2e')]);return db[_0x6a45('0x99')]['query'](_0x562c0d[_0x6a45('0x9a')](),_0x50c92b);})['then'](function(_0x204203){_0x3f3639[_0x6a45('0x4b')](_0x6a45('0xae'),_[_0x6a45('0x38')](_0x204203,'id'));return db[_0x6a45('0x99')]['query'](_0x3f3639[_0x6a45('0x9a')](),_0x50c92b)['then'](function(_0x3d39be){var _0x75e646=_[_0x6a45('0xaf')](_0x3d39be,_0x6a45('0xb0'));var _0x2b0379=[];_0x204203[_0x6a45('0x3b')](function(_0x4436a9){_0x2b0379[_0x6a45('0x3d')](updateChatInteraction(_0x4436a9,_0x134ace,_0x75e646));});return BPromise[_0x6a45('0xb1')](_0x2b0379);});});})[_0x6a45('0x20')](function(_0x4b473e){_0x26d9b7[_0x6a45('0xb2')]=_0x4b473e;return _0x26d9b7;})[_0x6a45('0x20')](respondWithFilteredResult(_0x328d9f,_0xcf722b));})[_0x6a45('0x28')](handleError(_0x328d9f,null));};exports['show']=function(_0x46a541,_0x27ebe8){var _0x3da0a3={'raw':![],'where':{'id':_0x46a541[_0x6a45('0xb3')]['id']}},_0x3834ad={};_0x3834ad['model']=_[_0x6a45('0x43')](db[_0x6a45('0x9c')]['rawAttributes']);_0x3834ad[_0x6a45('0x42')]=_[_0x6a45('0x43')](_0x46a541[_0x6a45('0x42')]);_0x3834ad[_0x6a45('0x44')]=_['intersection'](_0x3834ad['model'],_0x3834ad['query']);_0x3da0a3['attributes']=_['intersection'](_0x3834ad['model'],qs['fields'](_0x46a541[_0x6a45('0x42')][_0x6a45('0x9d')]));_0x3da0a3['attributes']=_0x3da0a3[_0x6a45('0x46')][_0x6a45('0x62')]?_0x3da0a3[_0x6a45('0x46')]:_0x3834ad[_0x6a45('0x45')];if(_0x46a541[_0x6a45('0x42')][_0x6a45('0xb4')]){_0x3da0a3['include']=[{'all':!![]}];}_0x3da0a3=_[_0x6a45('0xb5')]({},_0x3da0a3,_0x46a541[_0x6a45('0xb6')]);return db[_0x6a45('0x9c')][_0x6a45('0x63')](_0x3da0a3)[_0x6a45('0x20')](handleEntityNotFound(_0x27ebe8,null))[_0x6a45('0x20')](respondWithResult(_0x27ebe8,null))['catch'](handleError(_0x27ebe8,null));};exports[_0x6a45('0xb7')]=function(_0x40992d,_0x2fd06d){return db['ChatInteraction'][_0x6a45('0xb7')](_0x40992d['body'],{})['then'](respondWithResult(_0x2fd06d,0xc9))[_0x6a45('0x28')](handleError(_0x2fd06d,null));};exports['update']=function(_0x3d30bb,_0x414d90){if(_0x3d30bb[_0x6a45('0xb8')]['id']){delete _0x3d30bb[_0x6a45('0xb8')]['id'];}return db[_0x6a45('0x9c')][_0x6a45('0x63')]({'where':{'id':_0x3d30bb[_0x6a45('0xb3')]['id']}})[_0x6a45('0x20')](handleEntityNotFound(_0x414d90,null))['then'](saveUpdates(_0x3d30bb[_0x6a45('0xb8')],null))[_0x6a45('0x20')](respondWithResult(_0x414d90,null))[_0x6a45('0x28')](handleError(_0x414d90,null));};exports['destroy']=function(_0x50f589,_0x5a8b49){return db[_0x6a45('0x9c')][_0x6a45('0x63')]({'where':{'id':_0x50f589['params']['id']}})[_0x6a45('0x20')](handleEntityNotFound(_0x5a8b49,null))['then'](removeEntity(_0x5a8b49,null))[_0x6a45('0x28')](handleError(_0x5a8b49,null));};exports[_0x6a45('0xb9')]=function(_0x3d3d51,_0x306602){return db[_0x6a45('0x9c')][_0x6a45('0xb9')]()[_0x6a45('0x20')](respondWithResult(_0x306602,null))['catch'](handleError(_0x306602,null));};exports[_0x6a45('0xba')]=function(_0x5423be,_0x203c41){var _0xd7f425=_0x5423be['params']['id'];var _0x5a157f;var _0x5020fe;var _0x48f416;return db[_0x6a45('0x9c')][_0x6a45('0xbb')]({'where':{'id':_0xd7f425}})[_0x6a45('0x20')](function(_0x4f2083){_0x5a157f=_0x4f2083;return db[_0x6a45('0xbc')]['findOne']({'where':{'id':_0x4f2083[_0x6a45('0x92')]},'attributes':['id','vidaooApiKey','vidaooEscalation'],'raw':!![]});})[_0x6a45('0x20')](function(_0x5d7a17){if(_0x5d7a17&&_0x5d7a17[_0x6a45('0xbd')]&&_0x5d7a17[_0x6a45('0xbe')]){_0x5020fe=_0x5d7a17;var _0x460bce={'rejectUnauthorized':![],'method':_0x6a45('0xbf'),'uri':_0x6a45('0xc0'),'headers':{'X-APIKEY':_0x5d7a17['vidaooApiKey']},'body':{'name':_0x6a45('0xc1')+_0xd7f425},'redirect':_0x6a45('0xc2'),'json':!![]};return rp(_0x460bce);}else{throw new db[(_0x6a45('0xc3'))]['ValidationError']('Error\x20in\x20Vidaoo\x20configuration');}})[_0x6a45('0x20')](function(_0x4e2bc1){_0x48f416=_0x4e2bc1;if(_0x48f416['id']){var _0x5ae627={'body':_0x48f416['join_url'],'ChatWebsiteId':_0x5020fe['id'],'ChatInteractionId':_0x5a157f['id'],'direction':'out','UserId':_0x5423be[_0x6a45('0x95')]['id']};return db[_0x6a45('0xc4')][_0x6a45('0xb7')](_0x5ae627,{});}else{throw new db[(_0x6a45('0xc3'))][(_0x6a45('0x1e'))](_0x6a45('0xc5'));}})[_0x6a45('0x20')](function(){return _0x5a157f[_0x6a45('0xc6')]({'vidaooSessionId':_0x48f416['id']});})[_0x6a45('0x20')](respondWithResult(_0x203c41,null))[_0x6a45('0x28')](handleError(_0x203c41,null));};exports['customUpdate']=function(_0x439b03,_0x389e0a){if(_0x439b03[_0x6a45('0xb8')]['id']){delete _0x439b03[_0x6a45('0xb8')]['id'];}return db[_0x6a45('0x9c')][_0x6a45('0x63')]({'where':{'id':_0x439b03[_0x6a45('0xb3')]['id']}})['then'](handleEntityNotFound(_0x389e0a,null))[_0x6a45('0x20')](saveUpdates(_0x439b03['body'],null))[_0x6a45('0x20')](respondWithResult(_0x389e0a,null))[_0x6a45('0x28')](handleError(_0x389e0a,null));};exports[_0x6a45('0xc7')]=function(_0x4edfc9,_0x28890c,_0x9ba680){if(_0x4edfc9[_0x6a45('0xb8')]['id']){delete _0x4edfc9['body']['id'];}return db[_0x6a45('0x9c')][_0x6a45('0x63')]({'where':{'id':_0x4edfc9[_0x6a45('0xb3')]['id']}})[_0x6a45('0x20')](function(_0xf628d6){if(!_0xf628d6){logger[_0x6a45('0x25')](_0x6a45('0xc8'),'abandon',0x194,_0x6a45('0xc9'));_0x28890c['sendStatus'](0x194);}else{if(_0xf628d6[_0x6a45('0x76')]){throw new db['Sequelize'][(_0x6a45('0x1e'))](_0x6a45('0xca'));}}return _0xf628d6;})[_0x6a45('0x20')](function(_0x3d7252){if(_0x3d7252){return _0x3d7252[_0x6a45('0x33')]({'closed':_0x4edfc9[_0x6a45('0xb8')][_0x6a45('0xcb')],'disposition':_0x4edfc9[_0x6a45('0xb8')][_0x6a45('0xcc')]})[_0x6a45('0x20')](function(_0x1b92a6){return _0x1b92a6;});}})[_0x6a45('0x20')](function(_0xa71ee9){return respondWithRpcPromise(_0x6a45('0xcd'),_0x6a45('0xc7'),_0x4edfc9['body'],client9004);})['then'](respondWithResult(_0x28890c,null))[_0x6a45('0x28')](handleError(_0x28890c,null));};exports[_0x6a45('0xce')]=function(_0x9417a4,_0x40bc80,_0x26729d){_0x9417a4[_0x6a45('0xb8')][_0x6a45('0x35')]=_0x9417a4['file'][_0x6a45('0xcf')];_0x9417a4[_0x6a45('0xb8')][_0x6a45('0xd0')]=_0x9417a4[_0x6a45('0xd1')][_0x6a45('0xd2')];_0x9417a4['body'][_0x6a45('0x40')]=_0x9417a4[_0x6a45('0xd1')]['mimetype'];return db[_0x6a45('0xd3')][_0x6a45('0xb7')](_0x9417a4[_0x6a45('0xb8')])[_0x6a45('0x20')](respondWithResult(_0x40bc80,0xc9))[_0x6a45('0x28')](handleError(_0x40bc80,null));};exports[_0x6a45('0xd4')]=function(_0x47fd9a,_0x422252,_0x39c5e8){return db[_0x6a45('0x9c')][_0x6a45('0xbb')]({'where':{'id':_0x47fd9a[_0x6a45('0xb3')]['id']},'raw':!![]})[_0x6a45('0x20')](handleEntityNotFound(_0x422252,null))['then'](function(_0x40d467){if(_0x40d467){if(_0x40d467['closed']){return _0x422252[_0x6a45('0x2a')](0x193)['json']({'status':0x193,'message':'Unauthorized'});}return db[_0x6a45('0xd3')][_0x6a45('0xbb')]({'where':{'id':_0x47fd9a[_0x6a45('0x42')]['attachId']},'raw':!![]})['then'](handleEntityNotFound(_0x422252,null));}})[_0x6a45('0x20')](function(_0x14de7a){if(_0x14de7a){return _0x422252[_0x6a45('0xd5')](path['join'](config[_0x6a45('0xd6')],_0x6a45('0xd7'),_0x14de7a[_0x6a45('0xd0')]));}})[_0x6a45('0x28')](handleError(_0x422252,null));};exports[_0x6a45('0xd8')]=function(_0x1213c4,_0x57e72e){var _0x5acf10=null;var _0x5336d2=null;var _0x1a180d=null;var _0x832862=null;if(_0x1213c4[_0x6a45('0xb8')]['id']){delete _0x1213c4[_0x6a45('0xb8')]['id'];}if(_0x1213c4[_0x6a45('0xb8')][_0x6a45('0xd9')]){_0x832862=path[_0x6a45('0xda')](config['root'],'server/files/chat/upload/',util[_0x6a45('0xdb')](_0x6a45('0xdc'),Date['now']()));_0x1213c4[_0x6a45('0xb8')][_0x6a45('0xdd')]=_0x832862;}return db[_0x6a45('0x9c')]['find']({'where':{'id':_0x1213c4[_0x6a45('0xb3')]['id']},'include':[{'model':db[_0x6a45('0xc4')],'as':_0x6a45('0xde'),'include':[{'model':db['User'],'as':_0x6a45('0x74')}]}]})[_0x6a45('0x20')](handleEntityNotFound(_0x57e72e,null))['then'](saveUpdates(_0x1213c4['body'],null))[_0x6a45('0x20')](function(_0x40e8d8){if(_0x40e8d8){_0x5acf10=_0x40e8d8;return db[_0x6a45('0xbc')][_0x6a45('0x63')]({'where':{'id':_0x5acf10['ChatWebsiteId']}});}})[_0x6a45('0x20')](function(_0x33d6fc){if(_0x33d6fc){_0x1a180d=_0x33d6fc;return db[_0x6a45('0xdf')][_0x6a45('0x63')]({'where':{'id':_0x5acf10[_0x6a45('0x6d')]}});}})[_0x6a45('0x20')](function(_0x2c17b5){if(_0x2c17b5){_0x5336d2=_0x2c17b5;if(_0x832862){var _0xabba0d=null;for(var _0x250c6d=0x1;_0x250c6d<_0x5acf10['Messages'][_0x6a45('0x62')];++_0x250c6d){_0xabba0d=_0x5acf10['Messages'][_0x250c6d];var _0x3708d7=_0xabba0d[_0x6a45('0x76')]?util[_0x6a45('0xdb')](_0x6a45('0xe0'),_0x1a180d['agentAlias'],_0xabba0d['UserId']):_0x6a45('0xe1');var _0x17603d=_0x1213c4[_0x6a45('0xb8')][_0x6a45('0xe2')]||util[_0x6a45('0xdb')](_0x6a45('0xe0'),_0x6a45('0xe3'),_0xabba0d[_0x6a45('0x6d')]);switch(_0x1a180d[_0x6a45('0xe4')]){case _0x6a45('0xe5'):_0x3708d7=_0xabba0d['UserId']?util[_0x6a45('0xdb')](_0x6a45('0xe0'),_0x1a180d[_0x6a45('0xe6')],_0xabba0d[_0x6a45('0x76')]):_0x6a45('0xe1');break;case _0x6a45('0xe7'):_0x3708d7=_0xabba0d[_0x6a45('0x76')]?_0xabba0d[_0x6a45('0x74')][_0x6a45('0xe8')]||_0xabba0d['User']['fullname']:'System';break;case _0x6a45('0xe9'):_0x3708d7=_0xabba0d[_0x6a45('0x76')]?_0xabba0d[_0x6a45('0x74')][_0x6a45('0x39')]:_0x6a45('0xe1');break;default:_0x3708d7=_0xabba0d[_0x6a45('0x76')]?util['format']('%s%d',_0x1a180d[_0x6a45('0xe6')],_0xabba0d[_0x6a45('0x76')]):_0x6a45('0xe1');}var _0x307d95=util[_0x6a45('0xdb')]('[%s]\x20%s:\x20%s\x0a',moment(_0xabba0d[_0x6a45('0x7a')])[_0x6a45('0xdb')](_0x6a45('0xea')),_0xabba0d[_0x6a45('0xeb')]==='in'?_0x17603d:_0x3708d7,_0xabba0d[_0x6a45('0xb8')]);if(!_0xabba0d[_0x6a45('0xec')]){fs[_0x6a45('0xed')](_0x832862,_0x307d95);}}return db[_0x6a45('0xee')][_0x6a45('0xbb')]({'where':{'service':!![]},'include':[{'model':db['MailServerOut'],'as':_0x6a45('0xef'),'raw':!![]}]});}}})[_0x6a45('0x20')](function(_0x404650){if(_0x404650&&_0x404650['Smtp']&&_0x1213c4[_0x6a45('0xb8')]){var _0x141f55={'tls':{'rejectUnauthorized':![]}};if(_0x404650['Smtp']['service']){_0x141f55[_0x6a45('0xf0')]=_0x404650[_0x6a45('0xef')][_0x6a45('0xf0')];}else{_0x141f55[_0x6a45('0xf1')]=_0x404650[_0x6a45('0xef')][_0x6a45('0xf1')];_0x141f55[_0x6a45('0xf2')]=_0x404650['Smtp'][_0x6a45('0xf2')];_0x141f55[_0x6a45('0xf3')]=_0x404650[_0x6a45('0xef')]['secure'];}if(_0x404650[_0x6a45('0xef')]['authentication']){_0x141f55[_0x6a45('0xf4')]={'user':_0x404650[_0x6a45('0xef')]['user'],'pass':_0x404650['Smtp'][_0x6a45('0xf5')]};}return respondWithRpcPromise('SendMail','sendMail',{'account':_0x141f55,'message':{'from':util[_0x6a45('0xdb')](_0x6a45('0xf6'),_0x404650['name'],_0x404650[_0x6a45('0xf7')]||_0x404650['Smtp'][_0x6a45('0x95')]),'to':_0x1213c4[_0x6a45('0xb8')]['mailTranscript'],'subject':_0x6a45('0xf8'),'text':util['format'](_0x6a45('0xf9'),_0x1213c4[_0x6a45('0xb8')][_0x6a45('0xd9')]),'attachments':[{'path':_0x832862}]}})['then'](function(){return _0x5acf10;})[_0x6a45('0x28')](function(_0x475dda){console[_0x6a45('0x25')](_0x475dda);});}else{return _0x5acf10;}})['then'](respondWithStatusCode(_0x57e72e,0xc8))['catch'](handleError(_0x57e72e,null));};exports[_0x6a45('0xfa')]=function(_0x42b7ea,_0x30de7c,_0x89bcd6){return db[_0x6a45('0xc4')][_0x6a45('0x63')]({'where':{'id':_0x42b7ea['params']['id']}})[_0x6a45('0x20')](handleEntityNotFound(_0x30de7c,null))[_0x6a45('0x20')](function(_0x2c6696){if(_0x2c6696){return _0x2c6696[_0x6a45('0xfa')](_0x42b7ea[_0x6a45('0xb8')][_0x6a45('0xfb')],_[_0x6a45('0xfc')](_0x42b7ea[_0x6a45('0xb8')],[_0x6a45('0xfb'),'id'])||{});}})[_0x6a45('0x20')](respondWithResult(_0x30de7c,null))['catch'](handleError(_0x30de7c,null));};exports['getMessages']=function(_0x29ae99,_0xdf0d3a,_0x352102){var _0x5951a1={'raw':![],'where':{}};var _0x27f5a2={};var _0x18b3b4={'count':0x0,'rows':[]};return db['ChatInteraction']['findOne']({'where':{'id':_0x29ae99[_0x6a45('0xb3')]['id']}})[_0x6a45('0x20')](handleEntityNotFound(_0xdf0d3a,null))['then'](function(_0x980678){if(_0x980678){_0x27f5a2[_0x6a45('0x45')]=_['keys'](db['ChatMessage']['rawAttributes']);_0x27f5a2[_0x6a45('0x42')]=_['keys'](_0x29ae99[_0x6a45('0x42')]);_0x27f5a2[_0x6a45('0x44')]=_[_0x6a45('0x47')](_0x27f5a2[_0x6a45('0x45')],_0x27f5a2[_0x6a45('0x42')]);_0x5951a1[_0x6a45('0x46')]=_['intersection'](_0x27f5a2[_0x6a45('0x45')],qs[_0x6a45('0x9d')](_0x29ae99['query'][_0x6a45('0x9d')]));_0x5951a1[_0x6a45('0x46')]=_0x5951a1[_0x6a45('0x46')][_0x6a45('0x62')]?_0x5951a1[_0x6a45('0x46')]:_0x27f5a2[_0x6a45('0x45')];if(!_0x29ae99[_0x6a45('0x42')][_0x6a45('0x48')]('nolimit')){_0x5951a1['limit']=qs[_0x6a45('0x49')](_0x29ae99[_0x6a45('0x42')]['limit']);_0x5951a1[_0x6a45('0x2e')]=qs['offset'](_0x29ae99[_0x6a45('0x42')][_0x6a45('0x2e')]);}_0x5951a1['order']=qs[_0x6a45('0x4a')](_0x29ae99[_0x6a45('0x42')]['sort']);_0x5951a1[_0x6a45('0x4b')]=qs[_0x6a45('0x44')](_['pick'](_0x29ae99[_0x6a45('0x42')],_0x27f5a2[_0x6a45('0x44')]));_0x5951a1[_0x6a45('0x4b')]['ChatInteractionId']=_0x980678['id'];if(_0x29ae99[_0x6a45('0x42')][_0x6a45('0x85')]){_0x5951a1[_0x6a45('0x4b')]=_['merge'](_0x5951a1['where'],{'$or':_[_0x6a45('0x38')](_0x5951a1['attributes'],function(_0x17bd18){var _0x308201={};_0x308201[_0x17bd18]={'$like':'%'+_0x29ae99[_0x6a45('0x42')][_0x6a45('0x85')]+'%'};return _0x308201;})});}if(_0x29ae99['query']['$gte']){var _0x9ce2b9=_0x29ae99['query'][_0x6a45('0x7c')][_0x6a45('0x68')](',');var _0xd1d978={};_0xd1d978[_0x9ce2b9[0x0]]={'$gte':moment(_0x9ce2b9[0x1])[_0x6a45('0xdb')](_0x6a45('0xfd'))};_0x5951a1[_0x6a45('0x4b')]=_['merge'](_0x5951a1[_0x6a45('0x4b')],_0xd1d978);}_0x5951a1=_[_0x6a45('0xb5')]({},_0x5951a1,_0x29ae99['options']);return db[_0x6a45('0xc4')][_0x6a45('0x2d')]({'where':_0x5951a1[_0x6a45('0x4b')]})[_0x6a45('0x20')](function(_0x5e60b1){_0x18b3b4['count']=_0x5e60b1;if(_0x29ae99['query']['includeAll']){_0x5951a1[_0x6a45('0xfe')]=[{'all':!![]}];}return db[_0x6a45('0xc4')][_0x6a45('0xff')](_0x5951a1);})[_0x6a45('0x20')](function(_0x32d9a0){_0x18b3b4[_0x6a45('0xb2')]=_0x32d9a0;return _0x18b3b4;});}})[_0x6a45('0x20')](respondWithFilteredResult(_0xdf0d3a,_0x5951a1))[_0x6a45('0x28')](handleError(_0xdf0d3a,null));};exports[_0x6a45('0x100')]=function(_0x169c2e,_0x64041a,_0x1c469b){var _0x3af792={'where':{}},_0x4d5976={},_0x24be7d={'count':0x0,'rows':[]};return db[_0x6a45('0x9c')]['findOne']({'where':{'id':_0x169c2e[_0x6a45('0xb3')]['id']}})['then'](handleEntityNotFound(_0x64041a,null))[_0x6a45('0x20')](function(_0x2d4f24){if(_0x2d4f24){_0x4d5976['model']=_[_0x6a45('0x43')](db[_0x6a45('0xc4')][_0x6a45('0x3f')]);_0x4d5976[_0x6a45('0x42')]=_['keys'](_0x169c2e['query']);_0x4d5976['filters']=_[_0x6a45('0x47')](_0x4d5976[_0x6a45('0x45')],_0x4d5976['query']);_0x3af792['attributes']=_[_0x6a45('0x47')](_0x4d5976[_0x6a45('0x45')],qs[_0x6a45('0x9d')](_0x169c2e[_0x6a45('0x42')][_0x6a45('0x9d')]));_0x3af792[_0x6a45('0x46')]=_0x3af792[_0x6a45('0x46')]['length']?_0x3af792['attributes']:_0x4d5976[_0x6a45('0x45')];if(!_0x169c2e['query'][_0x6a45('0x48')](_0x6a45('0x101'))){_0x3af792['limit']=qs[_0x6a45('0x49')](_0x169c2e[_0x6a45('0x42')]['limit']);_0x3af792[_0x6a45('0x2e')]=qs['offset'](_0x169c2e[_0x6a45('0x42')][_0x6a45('0x2e')]);}_0x3af792[_0x6a45('0x8e')]=qs[_0x6a45('0x4a')](_0x169c2e[_0x6a45('0x42')][_0x6a45('0x4a')]);_0x3af792[_0x6a45('0x4b')]=qs['filters'](_[_0x6a45('0x4c')](_0x169c2e[_0x6a45('0x42')],_0x4d5976['filters']));_0x3af792['where'][_0x6a45('0xb0')]=_0x2d4f24['id'];if(_0x169c2e[_0x6a45('0x42')]['filter']){_0x3af792[_0x6a45('0x4b')]=_[_0x6a45('0xb5')](_0x3af792[_0x6a45('0x4b')],{'$or':_['map'](_0x3af792[_0x6a45('0x46')],function(_0x3b00f7){var _0x2eedb1={};_0x2eedb1[_0x3b00f7]={'$like':'%'+_0x169c2e[_0x6a45('0x42')][_0x6a45('0x85')]+'%'};return _0x2eedb1;})});}_0x3af792['where'][_0x6a45('0xec')]=![];if(_0x169c2e[_0x6a45('0x42')]['id']){_0x3af792['where']['id']={'$gt':_0x169c2e[_0x6a45('0x42')]['id']};}_0x3af792=_[_0x6a45('0xb5')]({},_0x3af792,_0x169c2e[_0x6a45('0xb6')]);return db['ChatMessage'][_0x6a45('0x2d')]({'where':_0x3af792[_0x6a45('0x4b')]})[_0x6a45('0x20')](function(_0x402b1b){_0x24be7d[_0x6a45('0x2d')]=_0x402b1b;_0x3af792[_0x6a45('0xfe')]=[];if(_0x169c2e['query']['includeAgent']){_0x3af792[_0x6a45('0xfe')][_0x6a45('0x3d')]({'model':db[_0x6a45('0x74')],'as':_0x6a45('0x74'),'attributes':['id',_0x6a45('0x39'),_0x6a45('0xe8')]});}if(_0x169c2e[_0x6a45('0x42')][_0x6a45('0xb4')]){_0x3af792[_0x6a45('0xfe')]=[{'all':!![]}];}return db[_0x6a45('0xc4')][_0x6a45('0xff')](_0x3af792);})[_0x6a45('0x20')](function(_0xca41aa){_0x24be7d[_0x6a45('0xb2')]=_0xca41aa;return _0x24be7d;});}})[_0x6a45('0x20')](respondWithFilteredResult(_0x64041a,_0x3af792))['catch'](handleError(_0x64041a,null));};exports[_0x6a45('0x102')]=function(_0x55d538,_0x37406a,_0x77507f){return db['ChatInteraction'][_0x6a45('0x63')]({'where':{'id':_0x55d538[_0x6a45('0xb3')]['id']}})[_0x6a45('0x20')](handleEntityNotFound(_0x37406a,null))['then'](function(_0x534bd3){if(_0x534bd3){return _0x534bd3[_0x6a45('0x103')](_0x55d538['body'][_0x6a45('0xfb')],_[_0x6a45('0xfc')](_0x55d538[_0x6a45('0xb8')],[_0x6a45('0xfb'),'id'])||{})[_0x6a45('0x104')](function(){return db[_0x6a45('0x71')][_0x6a45('0xff')]({'attributes':['id','name',_0x6a45('0x105')],'where':{'id':_0x55d538[_0x6a45('0xb8')][_0x6a45('0xfb')]}});})[_0x6a45('0x20')](function(_0x5b6951){socket[_0x6a45('0x106')](_0x6a45('0x107'),{'id':Number(_0x55d538[_0x6a45('0xb3')]['id']),'tags':_0x5b6951||[]});return{'id':Number(_0x55d538[_0x6a45('0xb3')]['id']),'tags':_0x5b6951||[]};});}})[_0x6a45('0x20')](respondWithResult(_0x37406a,null))[_0x6a45('0x28')](handleError(_0x37406a,null));};exports[_0x6a45('0x108')]=function(_0x3d810c,_0x450fe2,_0x463413){return db[_0x6a45('0x9c')][_0x6a45('0x63')]({'where':{'id':_0x3d810c[_0x6a45('0xb3')]['id']}})[_0x6a45('0x20')](handleEntityNotFound(_0x450fe2,null))[_0x6a45('0x20')](function(_0x3c4255){if(_0x3c4255){return _0x3c4255[_0x6a45('0x108')](_0x3d810c[_0x6a45('0x42')][_0x6a45('0xfb')]);}})[_0x6a45('0x20')](respondWithStatusCode(_0x450fe2,null))[_0x6a45('0x28')](handleError(_0x450fe2,null));};exports['download']=function(_0x115e18,_0x350fc9){var _0x98971f=moment()['unix']()[_0x6a45('0x9a')]();var _0x4568c3=path['join'](config[_0x6a45('0xd6')],_0x6a45('0x109'),_0x6a45('0x10a'),_0x6a45('0x10b'));var _0x18fc14=path[_0x6a45('0xda')](config['root'],_0x6a45('0x109'),_0x6a45('0x10a'),_0x6a45('0x10c'));var _0x49f56b=path['join'](_0x4568c3,_0x98971f);var _0xac2eee=util[_0x6a45('0xdb')](_0x6a45('0x10d'),_0x115e18['params']['id'],_0x98971f);var _0x4abd75=path[_0x6a45('0xda')](_0x4568c3,_0xac2eee);var _0x340481=[];_0x340481[_0x6a45('0x3d')]({'model':db['User'],'as':_0x6a45('0x74'),'attributes':['id','fullname'],'raw':!![]});_0x340481[_0x6a45('0x3d')]({'model':db[_0x6a45('0xdf')],'as':_0x6a45('0x66'),'attributes':['id',_0x6a45('0x10e'),_0x6a45('0x10f')],'raw':!![]});if(_0x115e18['query'][_0x6a45('0x10c')]){_0x340481[_0x6a45('0x3d')]({'model':db[_0x6a45('0xd3')],'as':'Attachment','raw':!![]});}var _0x4b14d4=[{'model':db[_0x6a45('0xc4')],'as':_0x6a45('0xde'),'attributes':['id',_0x6a45('0xb8'),_0x6a45('0x7a'),_0x6a45('0xeb'),_0x6a45('0xec'),'read'],'include':_0x340481}];_0x4b14d4[_0x6a45('0x3d')]({'model':db[_0x6a45('0xbc')],'as':_0x6a45('0x110'),'attributes':['id','name']});_0x4b14d4[_0x6a45('0x3d')]({'model':db[_0x6a45('0x74')],'as':'Owner','attributes':['id','fullname']});return db[_0x6a45('0x9c')][_0x6a45('0x63')]({'where':{'id':_0x115e18['params']['id']},'include':_0x4b14d4})[_0x6a45('0x20')](handleEntityNotFound(_0x350fc9,null))[_0x6a45('0x20')](function(_0x20e6b6){if(_0x20e6b6){var _0x6112b4=_0x20e6b6[_0x6a45('0x111')]({'plain':!![]});fs[_0x6a45('0x112')](_0x49f56b);var _0x19207c={'format':'A4','border':'10px','header':{'height':_0x6a45('0x113'),'contents':{'first':'<div\x20class=\x22header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h5>Interaction\x20Transcript</h5>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>'}},'footer':{'height':_0x6a45('0x114'),'contents':{'default':util[_0x6a45('0xdb')](_0x6a45('0x115'),util[_0x6a45('0xdb')]('%s\x20#%d',_0x6a45('0x116'),_0x6112b4['id']),moment()[_0x6a45('0xdb')](_0x6a45('0x117'))[_0x6a45('0x9a')]())}}};var _0x306314={'channel':_0x6a45('0x116'),'account':_0x6112b4['Account'][_0x6a45('0x35')],'agent':_0x6112b4[_0x6a45('0x118')]?_0x6112b4['Owner'][_0x6a45('0x39')]:'N.A.','createdAt':moment(_0x6112b4[_0x6a45('0x7a')])[_0x6a45('0xdb')](_0x6a45('0xfd'))['toString'](),'closedAt':_0x6112b4[_0x6a45('0xcb')]?moment(_0x6112b4[_0x6a45('0x119')])[_0x6a45('0xdb')](_0x6a45('0xfd'))['toString']():'','disposition':_0x6112b4[_0x6a45('0xcc')],'chatInfo':{'browser':_0x6112b4[_0x6a45('0x11a')],'os':_0x6112b4[_0x6a45('0x11b')],'referer':_0x6112b4[_0x6a45('0x11c')],'customerIp':_0x6112b4[_0x6a45('0x11d')],'customerPort':_0x6112b4[_0x6a45('0x11e')]?_0x6112b4[_0x6a45('0x11e')]:_0x6a45('0x11f')},'messages':_(_0x6112b4[_0x6a45('0xde')])[_0x6a45('0x120')]()[_0x6a45('0x85')]({'secret':![]})['map'](function(_0x422cfb){if(_0x422cfb[_0x6a45('0xd3')]){var _0x22fd7d=path['join'](_0x18fc14,_0x422cfb['Attachment'][_0x6a45('0xd0')]);if(fs[_0x6a45('0x121')](_0x22fd7d)){fs[_0x6a45('0x122')](_0x22fd7d)['pipe'](fs[_0x6a45('0x123')](path[_0x6a45('0xda')](_0x49f56b,_0x422cfb[_0x6a45('0xd3')][_0x6a45('0xd0')])));}}return{'date':moment(_0x422cfb[_0x6a45('0x7a')])['format']('YYYY-MM-DD\x20HH:mm:ss')[_0x6a45('0x9a')](),'sender':_0x422cfb['direction']===_0x6a45('0x124')?_0x422cfb[_0x6a45('0x74')]?_0x422cfb[_0x6a45('0x74')][_0x6a45('0x39')]:_0x6a45('0xe1'):_0x422cfb[_0x6a45('0x66')][_0x6a45('0x10e')]+(_0x422cfb[_0x6a45('0x66')][_0x6a45('0x10f')]?'\x20'+_0x422cfb['Contact'][_0x6a45('0x10f')]:''),'body':_0x422cfb[_0x6a45('0xd3')]?_0x422cfb['Attachment']['basename']:_0x422cfb[_0x6a45('0xb8')],'direction':_0x422cfb[_0x6a45('0xeb')]===_0x6a45('0x124')?'A':'C','secret':_0x422cfb['secret'],'read':_0x422cfb[_0x6a45('0x80')],'attachment':_0x422cfb[_0x6a45('0xd3')]};})[_0x6a45('0x6b')]()};return ejs[_0x6a45('0x125')](path[_0x6a45('0xda')](config[_0x6a45('0xd6')],_0x6a45('0x109'),_0x6a45('0x126'),_0x6a45('0x127')),{'interaction':_0x306314})[_0x6a45('0x20')](function(_0x2570c8){return new BPromise(function(_0xedcdff,_0x1cea00){pdf[_0x6a45('0xb7')](_0x2570c8,_0x19207c)[_0x6a45('0x128')](path[_0x6a45('0xda')](_0x49f56b,'transcript-'+_0x6112b4['id']+'-'+_0x98971f+_0x6a45('0x129')),function(_0x25373f,_0x162071){if(_0x25373f)return _0x1cea00(_0x25373f);_0xedcdff(_0x162071);});});})[_0x6a45('0x20')](function(){return new BPromise(function(_0x2f10a5,_0x3587a0){zipdir(_0x49f56b,{'saveTo':_0x4abd75},function(_0x285d69,_0x17ef90){if(_0x285d69)return _0x3587a0(_0x285d69);return _0x2f10a5(_0x17ef90);});})['then'](function(){return new BPromise(function(_0x49bdbf,_0x4b6bc3){rimraf(_0x49f56b,function(_0x303a6c){if(_0x303a6c)_0x4b6bc3(_0x303a6c);return _0x49bdbf();});});})[_0x6a45('0x20')](function(){return _0x350fc9['download'](_0x4abd75,_0xac2eee,function(_0x4a7818){if(_0x4a7818){console[_0x6a45('0x12a')](_0x6a45('0x12b'),_0x4a7818);}else{fs[_0x6a45('0x12c')](_0x4abd75);}});});});}else{return _0x350fc9['sendStatus'](0xc8);}})[_0x6a45('0x28')](handleError(_0x350fc9,null));};