e06125dd5fa9b888b29183c87e78a9b09e80fa25
[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 _0xa802=['mimetype','Attachment','Unauthorized','attachId','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','download','close','mailTranscript','format','transcript-%s.txt','pathTranscript','Messages','User','ChatWebsite','ContactId','UserId','%s%d','agentAlias','System','customer','agentIdentifier','website_alias','agent_alias','[%s]\x20%s:\x20%s\x0a','createdAt','MM/DD/YYYY\x20HH:mm:ss','appendFileSync','MailAccount','Smtp','CloudProvider','getSmtpOptions','SendMail','sendMail','\x22%s\x22\x20<%s>','Mail\x20Transcript','addMessage','omit','ids','order','sort','where','ChatInteractionId','filter','merge','$gte','split','YYYY-MM-DD\x20HH:mm:ss','options','include','rows','getMyMessages','hasOwnProperty','secret','includeAgent','alias','findAll','addTags','setTags','spread','Tag','color','emit','chatInteractionTags:save','removeTags','unix','toString','tmp','server','files','attachments','transcript-%d-%s.zip','push','direction','Account','Owner','get','mkdirSync','Chat','N.A.','closedAt','disposition','customerIp','customerPort','tail','existsSync','createReadStream','pipe','createWriteStream','Contact','firstName','lastName','read','value','views','downloadInteraction.ejs','transcript-','.pdf','createPdfFromHTML','err','rimraf','bluebird','mustache','util','path','lodash','ioredis','../../components/parsers/qs','../../components/export/pdf','../../config/logger','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','jayson/promise','client','http','request','info','ChatInteraction,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','catch','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','update','destroy','then','end','stack','name','render','body','contact','agent','interaction','account','index','map','ChatInteraction','type','key','getOptions','query','show','model','keys','rawAttributes','filters','intersection','attributes','fields','length','includeAll','find','create','params','describe','createVidaooSession','findOne','ChatWebsiteId','vidaooApiKey','vidaooEscalation','vidaooTopic','vidaooNote','vidaooMetadata','user','fullname','email','POST','https://api-vidaoo.xcally.com/api/v1/meetings','isNull','follow','parse','metadata','Sequelize','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','out','ChatMessage','customUpdate','CmContact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','closed','attachmentUpload','file','originalname','basename'];(function(_0x342ebe,_0x459563){var _0x2898af=function(_0x4bf08d){while(--_0x4bf08d){_0x342ebe['push'](_0x342ebe['shift']());}};_0x2898af(++_0x459563);}(_0xa802,0x67));var _0x2a80=function(_0x18dfcf,_0x4709ca){_0x18dfcf=_0x18dfcf-0x0;var _0x422850=_0xa802[_0x18dfcf];return _0x422850;};'use strict';var rimraf=require(_0x2a80('0x0'));var zipdir=require('zip-dir');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x2a80('0x1'));var Mustache=require(_0x2a80('0x2'));var util=require(_0x2a80('0x3'));var path=require(_0x2a80('0x4'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x2a80('0x5'));var Redis=require(_0x2a80('0x6'));var interaction=require('../../components/interaction/service');var qs=require(_0x2a80('0x7'));var pdf=require(_0x2a80('0x8'));var logger=require(_0x2a80('0x9'))('api');var config=require(_0x2a80('0xa'));var db=require(_0x2a80('0xb'))['db'];config[_0x2a80('0xc')]=_[_0x2a80('0xd')](config['redis'],{'host':_0x2a80('0xe'),'port':0x18eb});var socket=require(_0x2a80('0xf'))(new Redis(config['redis']));require('./chatInteraction.socket')[_0x2a80('0x10')](socket);var jayson=require(_0x2a80('0x11'));var client=jayson[_0x2a80('0x12')][_0x2a80('0x13')]({'port':0x232b});var client9004=jayson[_0x2a80('0x12')][_0x2a80('0x13')]({'port':0x232c});function respondWithRpcPromise(_0x5819de,_0x3ade2c,_0x15b660,_0x56e43f){return new BPromise(function(_0xc17ce7,_0x449713){var _0x5d8f21=_0x56e43f||client;return _0x5d8f21[_0x2a80('0x14')](_0x5819de,_0x15b660)['then'](function(_0x1de562){logger[_0x2a80('0x15')](_0x2a80('0x16'),_0x3ade2c,'request\x20sent');logger['debug']('ChatInteraction,\x20%s,\x20%s,\x20%s',_0x3ade2c,'request\x20sent',JSON[_0x2a80('0x17')](_0x1de562));if(_0x1de562['error']){if(_0x1de562[_0x2a80('0x18')][_0x2a80('0x19')]===0x1f4){logger[_0x2a80('0x18')](_0x2a80('0x16'),_0x3ade2c,_0x1de562['error'][_0x2a80('0x1a')]);return _0x449713(_0x1de562[_0x2a80('0x18')][_0x2a80('0x1a')]);}logger['error'](_0x2a80('0x16'),_0x3ade2c,_0x1de562['error']['message']);return _0xc17ce7(_0x1de562[_0x2a80('0x18')][_0x2a80('0x1a')]);}else{logger[_0x2a80('0x15')](_0x2a80('0x16'),_0x3ade2c,_0x2a80('0x1b'));_0xc17ce7(_0x1de562['result'][_0x2a80('0x1a')]);}})[_0x2a80('0x1c')](function(_0x20424b){logger[_0x2a80('0x18')](_0x2a80('0x16'),_0x3ade2c,_0x20424b);_0x449713(_0x20424b);});});}function respondWithStatusCode(_0x4f9185,_0x3a2d0e){_0x3a2d0e=_0x3a2d0e||0xcc;return function(_0x49c2c6){if(_0x49c2c6){return _0x4f9185[_0x2a80('0x1d')](_0x3a2d0e);}return _0x4f9185['status'](_0x3a2d0e)['end']();};}function respondWithResult(_0x16e922,_0x483f92){_0x483f92=_0x483f92||0xc8;return function(_0x39f2de){if(_0x39f2de){return _0x16e922[_0x2a80('0x1e')](_0x483f92)[_0x2a80('0x1f')](_0x39f2de);}};}function respondWithFilteredResult(_0x47bfb2,_0x2803e5){return function(_0xb4fdfa){if(_0xb4fdfa){var _0x15059d=typeof _0x2803e5[_0x2a80('0x20')]===_0x2a80('0x21')&&typeof _0x2803e5[_0x2a80('0x22')]==='undefined';var _0x2ef3b7=_0xb4fdfa['count'];var _0x5bfe69=_0x15059d?0x0:_0x2803e5[_0x2a80('0x20')];var _0x23c8a5=_0x15059d?_0xb4fdfa[_0x2a80('0x23')]:_0x2803e5[_0x2a80('0x20')]+_0x2803e5[_0x2a80('0x22')];var _0x1a4903;if(_0x23c8a5>=_0x2ef3b7){_0x23c8a5=_0x2ef3b7;_0x1a4903=0xc8;}else{_0x1a4903=0xce;}_0x47bfb2[_0x2a80('0x1e')](_0x1a4903);return _0x47bfb2[_0x2a80('0x24')](_0x2a80('0x25'),_0x5bfe69+'-'+_0x23c8a5+'/'+_0x2ef3b7)['json'](_0xb4fdfa);}return null;};}function saveUpdates(_0x58d46f){return function(_0x3ad276){if(_0x3ad276){return _0x3ad276[_0x2a80('0x26')](_0x58d46f)['then'](function(_0x1078c3){return _0x1078c3;});}return null;};}function removeEntity(_0x46c4b6){return function(_0xbde15a){if(_0xbde15a){return _0xbde15a[_0x2a80('0x27')]()[_0x2a80('0x28')](function(){_0x46c4b6[_0x2a80('0x1e')](0xcc)[_0x2a80('0x29')]();});}};}function handleEntityNotFound(_0x5afffb){return function(_0xf3b647){if(!_0xf3b647){_0x5afffb['sendStatus'](0x194);}return _0xf3b647;};}function handleError(_0x134638,_0x4ef250){_0x4ef250=_0x4ef250||0x1f4;return function(_0x136d71){logger['error'](_0x136d71[_0x2a80('0x2a')]);if(_0x136d71[_0x2a80('0x2b')]){delete _0x136d71[_0x2a80('0x2b')];}_0x134638[_0x2a80('0x1e')](_0x4ef250)['send'](_0x136d71);};}function getMustacheRender(_0xca47ac,_0x341d12){return Mustache[_0x2a80('0x2c')](_0xca47ac,_['merge'](_0x341d12[_0x2a80('0x2d')],{'contact':_0x341d12[_0x2a80('0x2e')],'message':_0x341d12[_0x2a80('0x1a')],'agent':_0x341d12[_0x2a80('0x2f')],'interaction':_0x341d12[_0x2a80('0x30')],'account':_0x341d12[_0x2a80('0x31')]}))||'';}exports[_0x2a80('0x32')]=function(_0x3ce1e6,_0x33115a){var _0x9edccb={};var _0x2f9a99=_[_0x2a80('0x33')](db[_0x2a80('0x34')]['rawAttributes'],function(_0x810e4a){return{'name':_0x810e4a['fieldName'],'type':_0x810e4a[_0x2a80('0x35')][_0x2a80('0x36')]};});_0x9edccb=qs[_0x2a80('0x37')](_0x2f9a99,_0x3ce1e6);return interaction['findAll']('chat',_0x3ce1e6[_0x2a80('0x38')],_0x3ce1e6['user'],_0x9edccb,_0x2f9a99)[_0x2a80('0x28')](respondWithFilteredResult(_0x33115a,_0x9edccb))[_0x2a80('0x1c')](handleError(_0x33115a,null));};exports[_0x2a80('0x39')]=function(_0x405982,_0xdb004f){var _0x18c957={'raw':![],'where':{'id':_0x405982['params']['id']}},_0x5e934b={};_0x5e934b[_0x2a80('0x3a')]=_[_0x2a80('0x3b')](db[_0x2a80('0x34')][_0x2a80('0x3c')]);_0x5e934b[_0x2a80('0x38')]=_[_0x2a80('0x3b')](_0x405982[_0x2a80('0x38')]);_0x5e934b[_0x2a80('0x3d')]=_[_0x2a80('0x3e')](_0x5e934b[_0x2a80('0x3a')],_0x5e934b[_0x2a80('0x38')]);_0x18c957[_0x2a80('0x3f')]=_[_0x2a80('0x3e')](_0x5e934b[_0x2a80('0x3a')],qs['fields'](_0x405982[_0x2a80('0x38')][_0x2a80('0x40')]));_0x18c957[_0x2a80('0x3f')]=_0x18c957[_0x2a80('0x3f')][_0x2a80('0x41')]?_0x18c957[_0x2a80('0x3f')]:_0x5e934b[_0x2a80('0x3a')];if(_0x405982[_0x2a80('0x38')][_0x2a80('0x42')]){_0x18c957['include']=[{'all':!![]}];}_0x18c957=_['merge']({},_0x18c957,_0x405982['options']);return db[_0x2a80('0x34')][_0x2a80('0x43')](_0x18c957)[_0x2a80('0x28')](handleEntityNotFound(_0xdb004f,null))['then'](respondWithResult(_0xdb004f,null))[_0x2a80('0x1c')](handleError(_0xdb004f,null));};exports[_0x2a80('0x44')]=function(_0x596960,_0x4a29a2){return db[_0x2a80('0x34')][_0x2a80('0x44')](_0x596960[_0x2a80('0x2d')],{})[_0x2a80('0x28')](respondWithResult(_0x4a29a2,0xc9))[_0x2a80('0x1c')](handleError(_0x4a29a2,null));};exports[_0x2a80('0x26')]=function(_0x1f4735,_0x166e60){if(_0x1f4735[_0x2a80('0x2d')]['id']){delete _0x1f4735['body']['id'];}return db['ChatInteraction'][_0x2a80('0x43')]({'where':{'id':_0x1f4735[_0x2a80('0x45')]['id']}})[_0x2a80('0x28')](handleEntityNotFound(_0x166e60,null))[_0x2a80('0x28')](saveUpdates(_0x1f4735[_0x2a80('0x2d')],null))[_0x2a80('0x28')](respondWithResult(_0x166e60,null))[_0x2a80('0x1c')](handleError(_0x166e60,null));};exports[_0x2a80('0x27')]=function(_0x399513,_0x2380fe){return db[_0x2a80('0x34')]['find']({'where':{'id':_0x399513[_0x2a80('0x45')]['id']}})[_0x2a80('0x28')](handleEntityNotFound(_0x2380fe,null))['then'](removeEntity(_0x2380fe,null))[_0x2a80('0x1c')](handleError(_0x2380fe,null));};exports[_0x2a80('0x46')]=function(_0x596ad7,_0x478d02){return db[_0x2a80('0x34')][_0x2a80('0x46')]()['then'](respondWithResult(_0x478d02,null))['catch'](handleError(_0x478d02,null));};exports[_0x2a80('0x47')]=function(_0x4653a1,_0x5eb007){var _0x35ec34=_0x4653a1[_0x2a80('0x45')]['id'];var _0x1e6ae8;var _0x5732b9;var _0x2410ae;return db[_0x2a80('0x34')][_0x2a80('0x48')]({'where':{'id':_0x35ec34}})['then'](function(_0x37a375){_0x1e6ae8=_0x37a375;return db['ChatWebsite'][_0x2a80('0x48')]({'where':{'id':_0x37a375[_0x2a80('0x49')]},'attributes':['id',_0x2a80('0x4a'),_0x2a80('0x4b'),_0x2a80('0x4c'),_0x2a80('0x4d'),_0x2a80('0x4e')],'raw':!![]});})[_0x2a80('0x28')](function(_0x285df3){if(_0x285df3&&_0x285df3[_0x2a80('0x4a')]&&_0x285df3[_0x2a80('0x4b')]){_0x5732b9=_0x285df3;var _0x5e354d={'interaction':{'id':_0x35ec34},'agent':{'id':_0x4653a1['user']['id'],'name':_0x4653a1[_0x2a80('0x4f')]['name'],'fullname':_0x4653a1[_0x2a80('0x4f')][_0x2a80('0x50')],'email':_0x4653a1[_0x2a80('0x4f')][_0x2a80('0x51')]},'contact':_0x4653a1[_0x2a80('0x2d')]['contact'],'account':_0x4653a1['body']['account']};var _0x49cbeb={'rejectUnauthorized':![],'method':_0x2a80('0x52'),'url':_0x2a80('0x53'),'headers':{'X-APIKEY':_0x285df3[_0x2a80('0x4a')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x4653a1[_0x2a80('0x4f')][_0x2a80('0x51')]],'buttons':null,'topic':_0x5732b9[_0x2a80('0x4c')],'note':_[_0x2a80('0x54')](_0x5732b9[_0x2a80('0x4d')])?null:getMustacheRender(_0x5732b9[_0x2a80('0x4d')],_0x5e354d),'metadata':null},'redirect':_0x2a80('0x55'),'json':!![]};try{if(!_['isNull'](_0x5732b9['vidaooMetadata'])){var _0x4bf632=getMustacheRender(_0x5732b9['vidaooMetadata'],_0x5e354d);var _0x269fc2=JSON[_0x2a80('0x56')](_0x4bf632);_0x49cbeb[_0x2a80('0x2d')][_0x2a80('0x57')]=_0x269fc2;}}catch(_0x4a938f){throw new db[(_0x2a80('0x58'))][(_0x2a80('0x59'))](_0x2a80('0x5a'));}return rp(_0x49cbeb);}else{throw new db[(_0x2a80('0x58'))][(_0x2a80('0x59'))]('Error\x20in\x20Vidaoo\x20configuration');}})['then'](function(_0x15db2c){_0x2410ae=_0x15db2c;if(_0x2410ae['id']){var _0x4811da={'body':_0x2410ae['join_url'],'ChatWebsiteId':_0x5732b9['id'],'ChatInteractionId':_0x1e6ae8['id'],'direction':_0x2a80('0x5b'),'UserId':_0x4653a1[_0x2a80('0x4f')]['id']};return db[_0x2a80('0x5c')]['create'](_0x4811da,{});}else{throw new db[(_0x2a80('0x58'))][(_0x2a80('0x59'))]('Unable\x20to\x20create\x20Vidaoo\x20session');}})['then'](function(){return _0x1e6ae8['updateAttributes']({'vidaooSessionId':_0x2410ae['id']});})['then'](respondWithResult(_0x5eb007,null))['catch'](handleError(_0x5eb007,null));};exports[_0x2a80('0x5d')]=function(_0x313fb1,_0x3022a1){if(_0x313fb1[_0x2a80('0x2d')]['id']){delete _0x313fb1['body']['id'];}return db[_0x2a80('0x34')][_0x2a80('0x43')]({'where':{'id':_0x313fb1[_0x2a80('0x45')]['id']},'include':[{'model':db[_0x2a80('0x5e')],'as':'Contact'}]})[_0x2a80('0x28')](handleEntityNotFound(_0x3022a1,null))[_0x2a80('0x28')](saveUpdates(_0x313fb1[_0x2a80('0x2d')],null))[_0x2a80('0x28')](respondWithResult(_0x3022a1,null))['catch'](handleError(_0x3022a1,null));};exports[_0x2a80('0x5f')]=function(_0x3fdd1c,_0x432284){if(_0x3fdd1c['body']['id']){delete _0x3fdd1c['body']['id'];}return db[_0x2a80('0x34')][_0x2a80('0x43')]({'where':{'id':_0x3fdd1c[_0x2a80('0x45')]['id']}})[_0x2a80('0x28')](function(_0x79a41c){if(!_0x79a41c){logger[_0x2a80('0x18')](_0x2a80('0x60'),_0x2a80('0x5f'),0x194,'entity\x20not\x20found');_0x432284['sendStatus'](0x194);}else{if(_0x79a41c['UserId']){throw new db[(_0x2a80('0x58'))][(_0x2a80('0x59'))]('Interaction\x20already\x20assigned');}}return _0x79a41c;})[_0x2a80('0x28')](function(_0xd37d00){if(_0xd37d00){return _0xd37d00[_0x2a80('0x26')]({'closed':_0x3fdd1c[_0x2a80('0x2d')][_0x2a80('0x61')],'disposition':_0x3fdd1c[_0x2a80('0x2d')]['disposition']})[_0x2a80('0x28')](function(_0x747ebe){return _0x747ebe;});}})[_0x2a80('0x28')](function(){return respondWithRpcPromise('AbandonInteraction',_0x2a80('0x5f'),_0x3fdd1c[_0x2a80('0x2d')],client9004);})[_0x2a80('0x28')](respondWithResult(_0x432284,null))['catch'](handleError(_0x432284,null));};exports[_0x2a80('0x62')]=function(_0x55a432,_0x1e9f02){_0x55a432[_0x2a80('0x2d')][_0x2a80('0x2b')]=_0x55a432[_0x2a80('0x63')][_0x2a80('0x64')];_0x55a432['body'][_0x2a80('0x65')]=_0x55a432['file']['filename'];_0x55a432[_0x2a80('0x2d')][_0x2a80('0x35')]=_0x55a432[_0x2a80('0x63')][_0x2a80('0x66')];return db[_0x2a80('0x67')][_0x2a80('0x44')](_0x55a432[_0x2a80('0x2d')])[_0x2a80('0x28')](respondWithResult(_0x1e9f02,0xc9))['catch'](handleError(_0x1e9f02,null));};exports['attachmentDownload']=function(_0x2b9c7e,_0x55b52a){return db[_0x2a80('0x34')]['findOne']({'where':{'id':_0x2b9c7e[_0x2a80('0x45')]['id']},'raw':!![]})[_0x2a80('0x28')](handleEntityNotFound(_0x55b52a,null))[_0x2a80('0x28')](function(_0x56968c){if(_0x56968c){if(_0x56968c[_0x2a80('0x61')]){return _0x55b52a['status'](0x193)[_0x2a80('0x1f')]({'status':0x193,'message':_0x2a80('0x68')});}return db['Attachment'][_0x2a80('0x48')]({'where':{'id':_0x2b9c7e[_0x2a80('0x38')][_0x2a80('0x69')]},'raw':!![]})['then'](handleEntityNotFound(_0x55b52a,null));}})['then'](function(_0x1363dd){if(_0x1363dd){var _0x28771d=_0x1363dd[_0x2a80('0x6a')]!==null;var _0x2dd35f=path[_0x2a80('0x6b')](config[_0x2a80('0x6c')],_0x2a80('0x6d'));if(_0x28771d){_0x2dd35f=path[_0x2a80('0x6b')](_0x2dd35f,_0x2a80('0x6e'));}var _0x170736=path['join'](_0x2dd35f,_0x1363dd['basename']);return _0x55b52a[_0x2a80('0x6f')](_0x170736);}})['catch'](handleError(_0x55b52a,null));};exports[_0x2a80('0x70')]=function(_0x2c843a,_0x4cdd96){var _0x5cb57b=null;var _0x24bd89=null;var _0x5d6511=null;if(_0x2c843a['body']['id']){delete _0x2c843a[_0x2a80('0x2d')]['id'];}if(_0x2c843a['body'][_0x2a80('0x71')]){_0x5d6511=path['join'](config['root'],'server/files/chat/upload/',util[_0x2a80('0x72')](_0x2a80('0x73'),Date['now']()));_0x2c843a[_0x2a80('0x2d')][_0x2a80('0x74')]=_0x5d6511;}return db['ChatInteraction'][_0x2a80('0x43')]({'where':{'id':_0x2c843a[_0x2a80('0x45')]['id']},'include':[{'model':db[_0x2a80('0x5c')],'as':_0x2a80('0x75'),'include':[{'model':db[_0x2a80('0x76')],'as':'User'}]}]})[_0x2a80('0x28')](handleEntityNotFound(_0x4cdd96,null))[_0x2a80('0x28')](saveUpdates(_0x2c843a[_0x2a80('0x2d')],null))[_0x2a80('0x28')](function(_0x3542fb){if(_0x3542fb){_0x5cb57b=_0x3542fb;return db[_0x2a80('0x77')][_0x2a80('0x43')]({'where':{'id':_0x5cb57b[_0x2a80('0x49')]}});}})[_0x2a80('0x28')](function(_0x499360){if(_0x499360){_0x24bd89=_0x499360;return db[_0x2a80('0x5e')][_0x2a80('0x43')]({'where':{'id':_0x5cb57b[_0x2a80('0x78')]}});}})[_0x2a80('0x28')](function(_0x2bdc5f){if(_0x2bdc5f){if(_0x5d6511){var _0x420c5a=null;for(var _0x327b83=0x1;_0x327b83<_0x5cb57b['Messages'][_0x2a80('0x41')];++_0x327b83){_0x420c5a=_0x5cb57b[_0x2a80('0x75')][_0x327b83];var _0x4e8382=_0x420c5a[_0x2a80('0x79')]?util['format'](_0x2a80('0x7a'),_0x24bd89[_0x2a80('0x7b')],_0x420c5a['UserId']):_0x2a80('0x7c');var _0x27f868=_0x2c843a[_0x2a80('0x2d')][_0x2a80('0x7d')]||util[_0x2a80('0x72')](_0x2a80('0x7a'),'Visitor',_0x420c5a[_0x2a80('0x78')]);switch(_0x24bd89[_0x2a80('0x7e')]){case _0x2a80('0x7f'):_0x4e8382=_0x420c5a[_0x2a80('0x79')]?util[_0x2a80('0x72')]('%s%d',_0x24bd89['agentAlias'],_0x420c5a[_0x2a80('0x79')]):_0x2a80('0x7c');break;case _0x2a80('0x80'):_0x4e8382=_0x420c5a[_0x2a80('0x79')]?_0x420c5a[_0x2a80('0x76')]['alias']||_0x420c5a[_0x2a80('0x76')]['fullname']:_0x2a80('0x7c');break;case'agent_fullname':_0x4e8382=_0x420c5a[_0x2a80('0x79')]?_0x420c5a[_0x2a80('0x76')]['fullname']:_0x2a80('0x7c');break;default:_0x4e8382=_0x420c5a[_0x2a80('0x79')]?util['format'](_0x2a80('0x7a'),_0x24bd89[_0x2a80('0x7b')],_0x420c5a[_0x2a80('0x79')]):_0x2a80('0x7c');}var _0x511070=util[_0x2a80('0x72')](_0x2a80('0x81'),moment(_0x420c5a[_0x2a80('0x82')])[_0x2a80('0x72')](_0x2a80('0x83')),_0x420c5a['direction']==='in'?_0x27f868:_0x4e8382,_0x420c5a[_0x2a80('0x2d')]);if(!_0x420c5a['secret']){fs[_0x2a80('0x84')](_0x5d6511,_0x511070);}}return db[_0x2a80('0x85')]['findOne']({'where':{'service':!![]},'include':[{'model':db['MailServerOut'],'as':_0x2a80('0x86'),'raw':!![],'include':[{'model':db[_0x2a80('0x87')],'as':'CloudProvider','raw':!![]}]}]});}}})['then'](function(_0x41370e){if(!_0x41370e||!_0x41370e[_0x2a80('0x86')]||!_0x2c843a[_0x2a80('0x2d')])return _0x5cb57b;var _0x10d27d=_0x41370e[_0x2a80('0x88')]();return respondWithRpcPromise(_0x2a80('0x89'),_0x2a80('0x8a'),{'account':_0x10d27d,'message':{'from':util[_0x2a80('0x72')](_0x2a80('0x8b'),_0x41370e[_0x2a80('0x2b')],_0x41370e[_0x2a80('0x51')]||_0x41370e[_0x2a80('0x86')][_0x2a80('0x4f')]),'to':_0x2c843a[_0x2a80('0x2d')]['mailTranscript'],'subject':_0x2a80('0x8c'),'text':util[_0x2a80('0x72')]('Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a',_0x2c843a['body'][_0x2a80('0x71')]),'attachments':[{'path':_0x5d6511}]}})[_0x2a80('0x28')](function(){return _0x5cb57b;})[_0x2a80('0x1c')](function(_0x265256){logger['error'](_0x265256);});})['then'](respondWithStatusCode(_0x4cdd96,0xc8))[_0x2a80('0x1c')](handleError(_0x4cdd96,null));};exports[_0x2a80('0x8d')]=function(_0x569a43,_0x1d5f6f){return db[_0x2a80('0x5c')][_0x2a80('0x43')]({'where':{'id':_0x569a43['params']['id']}})[_0x2a80('0x28')](handleEntityNotFound(_0x1d5f6f,null))[_0x2a80('0x28')](function(_0x840be0){if(_0x840be0){return _0x840be0['addMessage'](_0x569a43['body']['ids'],_[_0x2a80('0x8e')](_0x569a43[_0x2a80('0x2d')],[_0x2a80('0x8f'),'id'])||{});}})['then'](respondWithResult(_0x1d5f6f,null))['catch'](handleError(_0x1d5f6f,null));};exports['getMessages']=function(_0x2f851c,_0x52e202){var _0x2633bd={'raw':![],'where':{}};var _0x36bc88={};var _0x54b6a5={'count':0x0,'rows':[]};return db[_0x2a80('0x34')]['findOne']({'where':{'id':_0x2f851c[_0x2a80('0x45')]['id']}})[_0x2a80('0x28')](handleEntityNotFound(_0x52e202,null))[_0x2a80('0x28')](function(_0x17dae5){if(_0x17dae5){_0x36bc88[_0x2a80('0x3a')]=_[_0x2a80('0x3b')](db['ChatMessage']['rawAttributes']);_0x36bc88[_0x2a80('0x38')]=_[_0x2a80('0x3b')](_0x2f851c['query']);_0x36bc88[_0x2a80('0x3d')]=_[_0x2a80('0x3e')](_0x36bc88[_0x2a80('0x3a')],_0x36bc88[_0x2a80('0x38')]);_0x2633bd[_0x2a80('0x3f')]=_[_0x2a80('0x3e')](_0x36bc88['model'],qs[_0x2a80('0x40')](_0x2f851c['query'][_0x2a80('0x40')]));_0x2633bd['attributes']=_0x2633bd[_0x2a80('0x3f')][_0x2a80('0x41')]?_0x2633bd[_0x2a80('0x3f')]:_0x36bc88[_0x2a80('0x3a')];if(!_0x2f851c[_0x2a80('0x38')]['hasOwnProperty']('nolimit')){_0x2633bd[_0x2a80('0x22')]=qs[_0x2a80('0x22')](_0x2f851c[_0x2a80('0x38')][_0x2a80('0x22')]);_0x2633bd[_0x2a80('0x20')]=qs[_0x2a80('0x20')](_0x2f851c[_0x2a80('0x38')][_0x2a80('0x20')]);}_0x2633bd[_0x2a80('0x90')]=qs[_0x2a80('0x91')](_0x2f851c[_0x2a80('0x38')][_0x2a80('0x91')]);_0x2633bd['where']=qs[_0x2a80('0x3d')](_['pick'](_0x2f851c['query'],_0x36bc88['filters']));_0x2633bd[_0x2a80('0x92')][_0x2a80('0x93')]=_0x17dae5['id'];if(_0x2f851c['query'][_0x2a80('0x94')]){_0x2633bd[_0x2a80('0x92')]=_[_0x2a80('0x95')](_0x2633bd[_0x2a80('0x92')],{'$or':_['map'](_0x2633bd[_0x2a80('0x3f')],function(_0x2aae8c){var _0x7d2b18={};_0x7d2b18[_0x2aae8c]={'$like':'%'+_0x2f851c[_0x2a80('0x38')][_0x2a80('0x94')]+'%'};return _0x7d2b18;})});}if(_0x2f851c[_0x2a80('0x38')]['$gte']){var _0x33d5d=_0x2f851c['query'][_0x2a80('0x96')][_0x2a80('0x97')](',');var _0x5e007f={};_0x5e007f[_0x33d5d[0x0]]={'$gte':moment(_0x33d5d[0x1])[_0x2a80('0x72')](_0x2a80('0x98'))};_0x2633bd[_0x2a80('0x92')]=_[_0x2a80('0x95')](_0x2633bd['where'],_0x5e007f);}_0x2633bd=_[_0x2a80('0x95')]({},_0x2633bd,_0x2f851c[_0x2a80('0x99')]);return db[_0x2a80('0x5c')][_0x2a80('0x23')]({'where':_0x2633bd[_0x2a80('0x92')]})[_0x2a80('0x28')](function(_0x342a29){_0x54b6a5[_0x2a80('0x23')]=_0x342a29;if(_0x2f851c[_0x2a80('0x38')][_0x2a80('0x42')]){_0x2633bd[_0x2a80('0x9a')]=[{'all':!![]}];}return db[_0x2a80('0x5c')]['findAll'](_0x2633bd);})[_0x2a80('0x28')](function(_0x19ccee){_0x54b6a5[_0x2a80('0x9b')]=_0x19ccee;return _0x54b6a5;});}})[_0x2a80('0x28')](respondWithFilteredResult(_0x52e202,_0x2633bd))[_0x2a80('0x1c')](handleError(_0x52e202,null));};exports[_0x2a80('0x9c')]=function(_0x5a218c,_0x4be3ec){var _0x58da3a={'where':{}},_0x2abf5c={},_0x2b40cc={'count':0x0,'rows':[]};return db['ChatInteraction'][_0x2a80('0x48')]({'where':{'id':_0x5a218c[_0x2a80('0x45')]['id']}})[_0x2a80('0x28')](handleEntityNotFound(_0x4be3ec,null))[_0x2a80('0x28')](function(_0x34ee72){if(_0x34ee72){_0x2abf5c['model']=_[_0x2a80('0x3b')](db[_0x2a80('0x5c')]['rawAttributes']);_0x2abf5c['query']=_[_0x2a80('0x3b')](_0x5a218c[_0x2a80('0x38')]);_0x2abf5c[_0x2a80('0x3d')]=_['intersection'](_0x2abf5c[_0x2a80('0x3a')],_0x2abf5c['query']);_0x58da3a[_0x2a80('0x3f')]=_[_0x2a80('0x3e')](_0x2abf5c[_0x2a80('0x3a')],qs['fields'](_0x5a218c[_0x2a80('0x38')][_0x2a80('0x40')]));_0x58da3a['attributes']=_0x58da3a['attributes'][_0x2a80('0x41')]?_0x58da3a[_0x2a80('0x3f')]:_0x2abf5c[_0x2a80('0x3a')];if(!_0x5a218c['query'][_0x2a80('0x9d')]('nolimit')){_0x58da3a[_0x2a80('0x22')]=qs[_0x2a80('0x22')](_0x5a218c[_0x2a80('0x38')][_0x2a80('0x22')]);_0x58da3a[_0x2a80('0x20')]=qs['offset'](_0x5a218c['query']['offset']);}_0x58da3a[_0x2a80('0x90')]=qs['sort'](_0x5a218c[_0x2a80('0x38')]['sort']);_0x58da3a[_0x2a80('0x92')]=qs[_0x2a80('0x3d')](_['pick'](_0x5a218c[_0x2a80('0x38')],_0x2abf5c['filters']));_0x58da3a['where'][_0x2a80('0x93')]=_0x34ee72['id'];if(_0x5a218c[_0x2a80('0x38')][_0x2a80('0x94')]){_0x58da3a[_0x2a80('0x92')]=_['merge'](_0x58da3a[_0x2a80('0x92')],{'$or':_[_0x2a80('0x33')](_0x58da3a[_0x2a80('0x3f')],function(_0x3a4a2c){var _0xe73cf3={};_0xe73cf3[_0x3a4a2c]={'$like':'%'+_0x5a218c['query']['filter']+'%'};return _0xe73cf3;})});}_0x58da3a[_0x2a80('0x92')][_0x2a80('0x9e')]=![];if(_0x5a218c[_0x2a80('0x38')]['id']){_0x58da3a['where']['id']={'$gt':_0x5a218c[_0x2a80('0x38')]['id']};}_0x58da3a=_[_0x2a80('0x95')]({},_0x58da3a,_0x5a218c[_0x2a80('0x99')]);return db[_0x2a80('0x5c')][_0x2a80('0x23')]({'where':_0x58da3a[_0x2a80('0x92')]})[_0x2a80('0x28')](function(_0x21a697){_0x2b40cc[_0x2a80('0x23')]=_0x21a697;_0x58da3a[_0x2a80('0x9a')]=[];if(_0x5a218c[_0x2a80('0x38')][_0x2a80('0x9f')]){_0x58da3a[_0x2a80('0x9a')]['push']({'model':db['User'],'as':_0x2a80('0x76'),'attributes':['id',_0x2a80('0x50'),_0x2a80('0xa0')]});}if(_0x5a218c[_0x2a80('0x38')][_0x2a80('0x42')]){_0x58da3a['include']=[{'all':!![]}];}return db[_0x2a80('0x5c')][_0x2a80('0xa1')](_0x58da3a);})[_0x2a80('0x28')](function(_0x5afebe){_0x2b40cc[_0x2a80('0x9b')]=_0x5afebe;return _0x2b40cc;});}})[_0x2a80('0x28')](respondWithFilteredResult(_0x4be3ec,_0x58da3a))['catch'](handleError(_0x4be3ec,null));};exports[_0x2a80('0xa2')]=function(_0x69bc1d,_0xdbac0d){return db[_0x2a80('0x34')][_0x2a80('0x43')]({'where':{'id':_0x69bc1d['params']['id']}})['then'](handleEntityNotFound(_0xdbac0d,null))[_0x2a80('0x28')](function(_0x3e0595){if(_0x3e0595){return _0x3e0595[_0x2a80('0xa3')](_0x69bc1d[_0x2a80('0x2d')]['ids'],_[_0x2a80('0x8e')](_0x69bc1d[_0x2a80('0x2d')],[_0x2a80('0x8f'),'id'])||{})[_0x2a80('0xa4')](function(){return db[_0x2a80('0xa5')][_0x2a80('0xa1')]({'attributes':['id',_0x2a80('0x2b'),_0x2a80('0xa6')],'where':{'id':_0x69bc1d[_0x2a80('0x2d')]['ids']}});})[_0x2a80('0x28')](function(_0x513eec){socket[_0x2a80('0xa7')](_0x2a80('0xa8'),{'id':Number(_0x69bc1d[_0x2a80('0x45')]['id']),'tags':_0x513eec||[]});return{'id':Number(_0x69bc1d['params']['id']),'tags':_0x513eec||[]};});}})[_0x2a80('0x28')](respondWithResult(_0xdbac0d,null))[_0x2a80('0x1c')](handleError(_0xdbac0d,null));};exports[_0x2a80('0xa9')]=function(_0x52a402,_0x4da365){return db['ChatInteraction'][_0x2a80('0x43')]({'where':{'id':_0x52a402[_0x2a80('0x45')]['id']}})[_0x2a80('0x28')](handleEntityNotFound(_0x4da365,null))[_0x2a80('0x28')](function(_0x412093){if(_0x412093){return _0x412093[_0x2a80('0xa9')](_0x52a402[_0x2a80('0x38')]['ids']);}})[_0x2a80('0x28')](respondWithStatusCode(_0x4da365,null))[_0x2a80('0x1c')](handleError(_0x4da365,null));};exports[_0x2a80('0x6f')]=function(_0x59db0d,_0x2afa41){var _0x503f3d=moment()[_0x2a80('0xaa')]()[_0x2a80('0xab')]();var _0x69ffab=path[_0x2a80('0x6b')](config[_0x2a80('0x6c')],'server','files',_0x2a80('0xac'));var _0x111dfe=path[_0x2a80('0x6b')](config[_0x2a80('0x6c')],_0x2a80('0xad'),_0x2a80('0xae'),_0x2a80('0xaf'));var _0x988ee3=path['join'](_0x69ffab,_0x503f3d);var _0xa7224b=util[_0x2a80('0x72')](_0x2a80('0xb0'),_0x59db0d[_0x2a80('0x45')]['id'],_0x503f3d);var _0x46d2e2=path[_0x2a80('0x6b')](_0x69ffab,_0xa7224b);var _0x28002a=[];_0x28002a['push']({'model':db[_0x2a80('0x76')],'as':_0x2a80('0x76'),'attributes':['id','fullname'],'raw':!![]});_0x28002a[_0x2a80('0xb1')]({'model':db[_0x2a80('0x5e')],'as':'Contact','attributes':['id','firstName','lastName'],'raw':!![]});if(_0x59db0d['query'][_0x2a80('0xaf')]){_0x28002a[_0x2a80('0xb1')]({'model':db[_0x2a80('0x67')],'as':_0x2a80('0x67'),'raw':!![]});}var _0x3bc1fd=[{'model':db[_0x2a80('0x5c')],'as':_0x2a80('0x75'),'attributes':['id',_0x2a80('0x2d'),_0x2a80('0x82'),_0x2a80('0xb2'),'secret','read'],'include':_0x28002a}];_0x3bc1fd[_0x2a80('0xb1')]({'model':db[_0x2a80('0x77')],'as':_0x2a80('0xb3'),'attributes':['id',_0x2a80('0x2b')]});_0x3bc1fd[_0x2a80('0xb1')]({'model':db[_0x2a80('0x76')],'as':_0x2a80('0xb4'),'attributes':['id',_0x2a80('0x50')]});return db[_0x2a80('0x34')][_0x2a80('0x43')]({'where':{'id':_0x59db0d[_0x2a80('0x45')]['id']},'include':_0x3bc1fd})[_0x2a80('0x28')](handleEntityNotFound(_0x2afa41,null))[_0x2a80('0x28')](function(_0x5ddf5c){if(_0x5ddf5c){var _0x4cc4ec=_0x5ddf5c[_0x2a80('0xb5')]({'plain':!![]});fs[_0x2a80('0xb6')](_0x988ee3);var _0x5d6ff2={'channel':_0x2a80('0xb7'),'account':_0x4cc4ec[_0x2a80('0xb3')][_0x2a80('0x2b')],'agent':_0x4cc4ec[_0x2a80('0xb4')]?_0x4cc4ec[_0x2a80('0xb4')][_0x2a80('0x50')]:_0x2a80('0xb8'),'createdAt':moment(_0x4cc4ec[_0x2a80('0x82')])[_0x2a80('0x72')](_0x2a80('0x98'))['toString'](),'closedAt':_0x4cc4ec[_0x2a80('0x61')]?moment(_0x4cc4ec[_0x2a80('0xb9')])['format']('YYYY-MM-DD\x20HH:mm:ss')['toString']():'','disposition':_0x4cc4ec[_0x2a80('0xba')],'chatInfo':{'browser':_0x4cc4ec['browserName'],'os':_0x4cc4ec['osName'],'referer':_0x4cc4ec['referer'],'customerIp':_0x4cc4ec[_0x2a80('0xbb')],'customerPort':_0x4cc4ec[_0x2a80('0xbc')]?_0x4cc4ec[_0x2a80('0xbc')]:'N.A.'},'messages':_(_0x4cc4ec[_0x2a80('0x75')])[_0x2a80('0xbd')]()['filter']({'secret':![]})[_0x2a80('0x33')](function(_0x3ec931){if(_0x3ec931[_0x2a80('0x67')]){var _0x1c5251=path[_0x2a80('0x6b')](_0x111dfe,_0x3ec931[_0x2a80('0x67')][_0x2a80('0x65')]);if(fs[_0x2a80('0xbe')](_0x1c5251)){fs[_0x2a80('0xbf')](_0x1c5251)[_0x2a80('0xc0')](fs[_0x2a80('0xc1')](path[_0x2a80('0x6b')](_0x988ee3,_0x3ec931['Attachment']['basename'])));}}return{'date':moment(_0x3ec931[_0x2a80('0x82')])[_0x2a80('0x72')]('YYYY-MM-DD\x20HH:mm:ss')['toString'](),'sender':_0x3ec931['direction']===_0x2a80('0x5b')?_0x3ec931[_0x2a80('0x76')]?_0x3ec931[_0x2a80('0x76')][_0x2a80('0x50')]:_0x2a80('0x7c'):_0x3ec931[_0x2a80('0xc2')][_0x2a80('0xc3')]+(_0x3ec931[_0x2a80('0xc2')][_0x2a80('0xc4')]?'\x20'+_0x3ec931[_0x2a80('0xc2')]['lastName']:''),'body':_0x3ec931[_0x2a80('0x67')]?_0x3ec931[_0x2a80('0x67')][_0x2a80('0x65')]:_0x3ec931[_0x2a80('0x2d')],'direction':_0x3ec931[_0x2a80('0xb2')]===_0x2a80('0x5b')?'A':'C','secret':_0x3ec931['secret'],'read':_0x3ec931[_0x2a80('0xc5')],'attachment':_0x3ec931[_0x2a80('0x67')]};})[_0x2a80('0xc6')]()};return ejs['renderFile'](path[_0x2a80('0x6b')](config[_0x2a80('0x6c')],_0x2a80('0xad'),_0x2a80('0xc7'),_0x2a80('0xc8')),{'interaction':_0x5d6ff2})[_0x2a80('0x28')](function(_0x442201){var _0x5374e9=path[_0x2a80('0x6b')](_0x988ee3,_0x2a80('0xc9')+_0x4cc4ec['id']+'-'+_0x503f3d+_0x2a80('0xca'));var _0x15dc02={'path':_0x5374e9,'channel':_0x2a80('0xb7'),'interactionId':_0x4cc4ec['id']};return pdf[_0x2a80('0xcb')](_0x442201,_0x15dc02);})[_0x2a80('0x28')](function(){return new Promise(function(_0x1f9bf8,_0x3bd597){zipdir(_0x988ee3,{'saveTo':_0x46d2e2},function(_0x51ecb2,_0x4e524c){if(_0x51ecb2)return _0x3bd597(_0x51ecb2);return _0x1f9bf8(_0x4e524c);});})[_0x2a80('0x28')](function(){return new BPromise(function(_0x13a087,_0x1f77e2){rimraf(_0x988ee3,function(_0x3569d3){if(_0x3569d3)_0x1f77e2(_0x3569d3);return _0x13a087();});});})[_0x2a80('0x28')](function(){return _0x2afa41[_0x2a80('0x6f')](_0x46d2e2,_0xa7224b,function(_0x586217){if(_0x586217){logger[_0x2a80('0x18')](_0x2a80('0xcc'),_0x586217);}else{fs['unlinkSync'](_0x46d2e2);}});});});}else{return _0x2afa41[_0x2a80('0x1d')](0xc8);}})[_0x2a80('0x1c')](handleError(_0x2afa41,null));};