132f737bea1ba13ad6832732a258ae612544971a
[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 _0xce1d=['length','includeAll','options','find','create','destroy','describe','createVidaooSession','findOne','ChatWebsite','ChatWebsiteId','vidaooEscalation','vidaooTopic','vidaooNote','user','fullname','account','POST','vidaooApiKey','email','isNull','follow','vidaooMetadata','parse','metadata','ValidationError','Sequelize','Error\x20in\x20Vidaoo\x20configuration','join_url','out','Unable\x20to\x20create\x20Vidaoo\x20session','CmContact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','UserId','closed','disposition','AbandonInteraction','originalname','filename','file','mimetype','Attachment','attachmentDownload','Unauthorized','attachId','ChatOfflineMessageId','join','basename','download','close','mailTranscript','server/files/chat/upload/','format','transcript-%s.txt','pathTranscript','ChatMessage','Messages','User','%s%d','System','customer','Visitor','ContactId','agentIdentifier','website_alias','agent_alias','alias','agentAlias','[%s]\x20%s:\x20%s\x0a','MM/DD/YYYY\x20HH:mm:ss','secret','appendFileSync','MailAccount','MailServerOut','Smtp','CloudProvider','SendMail','sendMail','\x22%s\x22\x20<%s>','Mail\x20Transcript','addMessage','ids','omit','getMessages','hasOwnProperty','nolimit','order','sort','where','pick','ChatInteractionId','filter','$gte','split','YYYY-MM-DD\x20HH:mm:ss','include','rows','getMyMessages','includeAgent','addTags','setTags','spread','Tag','findAll','chatInteractionTags:save','removeTags','unix','server','files','tmp','attachments','transcript-%d-%s.zip','push','Contact','firstName','lastName','direction','read','Account','Owner','get','mkdirSync','Chat','N.A.','createdAt','toString','osName','customerIp','customerPort','tail','existsSync','createReadStream','pipe','createWriteStream','renderFile','root','views','.pdf','createPdfFromHTML','err','unlinkSync','zip-dir','request-promise','moment','bluebird','mustache','util','path','ejs','ioredis','../../components/interaction/service','../../components/parsers/qs','../../components/export/pdf','api','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./chatInteraction.socket','jayson/promise','http','client','request','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','status','end','json','offset','undefined','limit','count','update','then','sendStatus','stack','name','render','merge','body','contact','agent','interaction','index','map','ChatInteraction','rawAttributes','fieldName','type','key','getOptions','chat','query','params','model','keys','filters','intersection','attributes','fields'];(function(_0x2c2009,_0x17aa0f){var _0x790e65=function(_0x5ed354){while(--_0x5ed354){_0x2c2009['push'](_0x2c2009['shift']());}};_0x790e65(++_0x17aa0f);}(_0xce1d,0x162));var _0xdce1=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xce1d[_0x3dd15e];return _0x231fd0;};'use strict';var rimraf=require('rimraf');var zipdir=require(_0xdce1('0x0'));var rp=require(_0xdce1('0x1'));var moment=require(_0xdce1('0x2'));var BPromise=require(_0xdce1('0x3'));var Mustache=require(_0xdce1('0x4'));var util=require(_0xdce1('0x5'));var path=require(_0xdce1('0x6'));var ejs=require(_0xdce1('0x7'));var fs=require('fs');var _=require('lodash');var Redis=require(_0xdce1('0x8'));var interaction=require(_0xdce1('0x9'));var qs=require(_0xdce1('0xa'));var pdf=require(_0xdce1('0xb'));var logger=require('../../config/logger')(_0xdce1('0xc'));var config=require(_0xdce1('0xd'));var db=require(_0xdce1('0xe'))['db'];config[_0xdce1('0xf')]=_[_0xdce1('0x10')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xdce1('0x11'))(new Redis(config[_0xdce1('0xf')]));require(_0xdce1('0x12'))['register'](socket);var jayson=require(_0xdce1('0x13'));var client=jayson['client'][_0xdce1('0x14')]({'port':0x232b});var client9004=jayson[_0xdce1('0x15')]['http']({'port':0x232c});function respondWithRpcPromise(_0x16e721,_0x3be332,_0xb36539,_0x380904){return new BPromise(function(_0x415a14,_0x24719a){var _0x39570a=_0x380904||client;return _0x39570a[_0xdce1('0x16')](_0x16e721,_0xb36539)['then'](function(_0x4ce681){logger[_0xdce1('0x17')](_0xdce1('0x18'),_0x3be332,_0xdce1('0x19'));logger['debug'](_0xdce1('0x1a'),_0x3be332,_0xdce1('0x19'),JSON[_0xdce1('0x1b')](_0x4ce681));if(_0x4ce681[_0xdce1('0x1c')]){if(_0x4ce681[_0xdce1('0x1c')][_0xdce1('0x1d')]===0x1f4){logger[_0xdce1('0x1c')](_0xdce1('0x18'),_0x3be332,_0x4ce681[_0xdce1('0x1c')][_0xdce1('0x1e')]);return _0x24719a(_0x4ce681['error'][_0xdce1('0x1e')]);}logger[_0xdce1('0x1c')](_0xdce1('0x18'),_0x3be332,_0x4ce681['error'][_0xdce1('0x1e')]);return _0x415a14(_0x4ce681[_0xdce1('0x1c')]['message']);}else{logger[_0xdce1('0x17')]('ChatInteraction,\x20%s,\x20%s',_0x3be332,'request\x20sent');_0x415a14(_0x4ce681[_0xdce1('0x1f')][_0xdce1('0x1e')]);}})[_0xdce1('0x20')](function(_0x58e14d){logger['error'](_0xdce1('0x18'),_0x3be332,_0x58e14d);_0x24719a(_0x58e14d);});});}function respondWithStatusCode(_0x58d39d,_0x213102){_0x213102=_0x213102||0xcc;return function(_0x38dba8){if(_0x38dba8){return _0x58d39d['sendStatus'](_0x213102);}return _0x58d39d[_0xdce1('0x21')](_0x213102)[_0xdce1('0x22')]();};}function respondWithResult(_0x38e4a0,_0x4cacef){_0x4cacef=_0x4cacef||0xc8;return function(_0x4a4135){if(_0x4a4135){return _0x38e4a0[_0xdce1('0x21')](_0x4cacef)[_0xdce1('0x23')](_0x4a4135);}};}function respondWithFilteredResult(_0x15899e,_0x3c697a){return function(_0x18fbd7){if(_0x18fbd7){var _0x3ddde2=typeof _0x3c697a[_0xdce1('0x24')]===_0xdce1('0x25')&&typeof _0x3c697a[_0xdce1('0x26')]===_0xdce1('0x25');var _0x39492c=_0x18fbd7[_0xdce1('0x27')];var _0x2a91c1=_0x3ddde2?0x0:_0x3c697a['offset'];var _0x10d380=_0x3ddde2?_0x18fbd7[_0xdce1('0x27')]:_0x3c697a['offset']+_0x3c697a[_0xdce1('0x26')];var _0x3d7542;if(_0x10d380>=_0x39492c){_0x10d380=_0x39492c;_0x3d7542=0xc8;}else{_0x3d7542=0xce;}_0x15899e[_0xdce1('0x21')](_0x3d7542);return _0x15899e['set']('Content-Range',_0x2a91c1+'-'+_0x10d380+'/'+_0x39492c)[_0xdce1('0x23')](_0x18fbd7);}return null;};}function saveUpdates(_0x3daab5){return function(_0x56900c){if(_0x56900c){return _0x56900c[_0xdce1('0x28')](_0x3daab5)[_0xdce1('0x29')](function(_0x2c88c6){return _0x2c88c6;});}return null;};}function removeEntity(_0x1da12f){return function(_0x3d76d0){if(_0x3d76d0){return _0x3d76d0['destroy']()['then'](function(){_0x1da12f[_0xdce1('0x21')](0xcc)[_0xdce1('0x22')]();});}};}function handleEntityNotFound(_0x5267a5){return function(_0x5acfc4){if(!_0x5acfc4){_0x5267a5[_0xdce1('0x2a')](0x194);}return _0x5acfc4;};}function handleError(_0x3d9e83,_0x41370d){_0x41370d=_0x41370d||0x1f4;return function(_0x42cdee){logger['error'](_0x42cdee[_0xdce1('0x2b')]);if(_0x42cdee[_0xdce1('0x2c')]){delete _0x42cdee[_0xdce1('0x2c')];}_0x3d9e83[_0xdce1('0x21')](_0x41370d)['send'](_0x42cdee);};}function getMustacheRender(_0x58b49c,_0x4760ab){return Mustache[_0xdce1('0x2d')](_0x58b49c,_[_0xdce1('0x2e')](_0x4760ab[_0xdce1('0x2f')],{'contact':_0x4760ab[_0xdce1('0x30')],'message':_0x4760ab[_0xdce1('0x1e')],'agent':_0x4760ab[_0xdce1('0x31')],'interaction':_0x4760ab[_0xdce1('0x32')],'account':_0x4760ab['account']}))||'';}exports[_0xdce1('0x33')]=function(_0x20d8b6,_0x4e7aa8){var _0x33f9ec={};var _0x499732=_[_0xdce1('0x34')](db[_0xdce1('0x35')][_0xdce1('0x36')],function(_0x531804){return{'name':_0x531804[_0xdce1('0x37')],'type':_0x531804[_0xdce1('0x38')][_0xdce1('0x39')]};});_0x33f9ec=qs[_0xdce1('0x3a')](_0x499732,_0x20d8b6);return interaction['findAll'](_0xdce1('0x3b'),_0x20d8b6[_0xdce1('0x3c')],_0x20d8b6['user'],_0x33f9ec,_0x499732)[_0xdce1('0x29')](respondWithFilteredResult(_0x4e7aa8,_0x33f9ec))[_0xdce1('0x20')](handleError(_0x4e7aa8,null));};exports['show']=function(_0x4694af,_0x42d422){var _0xa5519b={'raw':![],'where':{'id':_0x4694af[_0xdce1('0x3d')]['id']}},_0x4d2efe={};_0x4d2efe[_0xdce1('0x3e')]=_[_0xdce1('0x3f')](db[_0xdce1('0x35')][_0xdce1('0x36')]);_0x4d2efe[_0xdce1('0x3c')]=_[_0xdce1('0x3f')](_0x4694af[_0xdce1('0x3c')]);_0x4d2efe[_0xdce1('0x40')]=_[_0xdce1('0x41')](_0x4d2efe['model'],_0x4d2efe[_0xdce1('0x3c')]);_0xa5519b[_0xdce1('0x42')]=_[_0xdce1('0x41')](_0x4d2efe['model'],qs[_0xdce1('0x43')](_0x4694af[_0xdce1('0x3c')][_0xdce1('0x43')]));_0xa5519b[_0xdce1('0x42')]=_0xa5519b['attributes'][_0xdce1('0x44')]?_0xa5519b['attributes']:_0x4d2efe[_0xdce1('0x3e')];if(_0x4694af[_0xdce1('0x3c')][_0xdce1('0x45')]){_0xa5519b['include']=[{'all':!![]}];}_0xa5519b=_[_0xdce1('0x2e')]({},_0xa5519b,_0x4694af[_0xdce1('0x46')]);return db[_0xdce1('0x35')][_0xdce1('0x47')](_0xa5519b)['then'](handleEntityNotFound(_0x42d422,null))['then'](respondWithResult(_0x42d422,null))['catch'](handleError(_0x42d422,null));};exports[_0xdce1('0x48')]=function(_0x281c50,_0xcc5971){return db[_0xdce1('0x35')][_0xdce1('0x48')](_0x281c50['body'],{})[_0xdce1('0x29')](respondWithResult(_0xcc5971,0xc9))[_0xdce1('0x20')](handleError(_0xcc5971,null));};exports[_0xdce1('0x28')]=function(_0x4abe89,_0x90448b){if(_0x4abe89['body']['id']){delete _0x4abe89[_0xdce1('0x2f')]['id'];}return db[_0xdce1('0x35')][_0xdce1('0x47')]({'where':{'id':_0x4abe89[_0xdce1('0x3d')]['id']}})[_0xdce1('0x29')](handleEntityNotFound(_0x90448b,null))[_0xdce1('0x29')](saveUpdates(_0x4abe89[_0xdce1('0x2f')],null))[_0xdce1('0x29')](respondWithResult(_0x90448b,null))[_0xdce1('0x20')](handleError(_0x90448b,null));};exports[_0xdce1('0x49')]=function(_0x5eb96d,_0x567bb3){return db[_0xdce1('0x35')][_0xdce1('0x47')]({'where':{'id':_0x5eb96d[_0xdce1('0x3d')]['id']}})[_0xdce1('0x29')](handleEntityNotFound(_0x567bb3,null))[_0xdce1('0x29')](removeEntity(_0x567bb3,null))[_0xdce1('0x20')](handleError(_0x567bb3,null));};exports[_0xdce1('0x4a')]=function(_0x574366,_0x7ece0){return db[_0xdce1('0x35')][_0xdce1('0x4a')]()['then'](respondWithResult(_0x7ece0,null))['catch'](handleError(_0x7ece0,null));};exports[_0xdce1('0x4b')]=function(_0x22f2da,_0x4bad02){var _0x428f2a=_0x22f2da[_0xdce1('0x3d')]['id'];var _0x361b26;var _0x51fd19;var _0x432484;return db[_0xdce1('0x35')][_0xdce1('0x4c')]({'where':{'id':_0x428f2a}})[_0xdce1('0x29')](function(_0x3072a3){_0x361b26=_0x3072a3;return db[_0xdce1('0x4d')]['findOne']({'where':{'id':_0x3072a3[_0xdce1('0x4e')]},'attributes':['id','vidaooApiKey',_0xdce1('0x4f'),_0xdce1('0x50'),_0xdce1('0x51'),'vidaooMetadata'],'raw':!![]});})[_0xdce1('0x29')](function(_0x339c0a){if(_0x339c0a&&_0x339c0a['vidaooApiKey']&&_0x339c0a[_0xdce1('0x4f')]){_0x51fd19=_0x339c0a;var _0x5c879d={'interaction':{'id':_0x428f2a},'agent':{'id':_0x22f2da[_0xdce1('0x52')]['id'],'name':_0x22f2da['user'][_0xdce1('0x2c')],'fullname':_0x22f2da[_0xdce1('0x52')][_0xdce1('0x53')],'email':_0x22f2da['user']['email']},'contact':_0x22f2da[_0xdce1('0x2f')][_0xdce1('0x30')],'account':_0x22f2da[_0xdce1('0x2f')][_0xdce1('0x54')]};var _0x4b35b5={'rejectUnauthorized':![],'method':_0xdce1('0x55'),'url':'https://api-vidaoo.xcally.com/api/v1/meetings','headers':{'X-APIKEY':_0x339c0a[_0xdce1('0x56')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x22f2da[_0xdce1('0x52')][_0xdce1('0x57')]],'buttons':null,'topic':_0x51fd19[_0xdce1('0x50')],'note':_[_0xdce1('0x58')](_0x51fd19[_0xdce1('0x51')])?null:getMustacheRender(_0x51fd19['vidaooNote'],_0x5c879d),'metadata':null},'redirect':_0xdce1('0x59'),'json':!![]};try{if(!_[_0xdce1('0x58')](_0x51fd19[_0xdce1('0x5a')])){var _0x684908=getMustacheRender(_0x51fd19[_0xdce1('0x5a')],_0x5c879d);var _0x1c9155=JSON[_0xdce1('0x5b')](_0x684908);_0x4b35b5['body'][_0xdce1('0x5c')]=_0x1c9155;}}catch(_0x9b4f3b){throw new db['Sequelize'][(_0xdce1('0x5d'))]('Error\x20in\x20conversion\x20vidaooMetadata');}return rp(_0x4b35b5);}else{throw new db[(_0xdce1('0x5e'))][(_0xdce1('0x5d'))](_0xdce1('0x5f'));}})['then'](function(_0x1a7919){_0x432484=_0x1a7919;if(_0x432484['id']){var _0x4efcd8={'body':_0x432484[_0xdce1('0x60')],'ChatWebsiteId':_0x51fd19['id'],'ChatInteractionId':_0x361b26['id'],'direction':_0xdce1('0x61'),'UserId':_0x22f2da[_0xdce1('0x52')]['id']};return db['ChatMessage'][_0xdce1('0x48')](_0x4efcd8,{});}else{throw new db[(_0xdce1('0x5e'))][(_0xdce1('0x5d'))](_0xdce1('0x62'));}})[_0xdce1('0x29')](function(){return _0x361b26['updateAttributes']({'vidaooSessionId':_0x432484['id']});})['then'](respondWithResult(_0x4bad02,null))[_0xdce1('0x20')](handleError(_0x4bad02,null));};exports['customUpdate']=function(_0x5c99ed,_0x136676){if(_0x5c99ed['body']['id']){delete _0x5c99ed[_0xdce1('0x2f')]['id'];}return db['ChatInteraction'][_0xdce1('0x47')]({'where':{'id':_0x5c99ed['params']['id']},'include':[{'model':db[_0xdce1('0x63')],'as':'Contact'}]})[_0xdce1('0x29')](handleEntityNotFound(_0x136676,null))[_0xdce1('0x29')](saveUpdates(_0x5c99ed[_0xdce1('0x2f')],null))[_0xdce1('0x29')](respondWithResult(_0x136676,null))[_0xdce1('0x20')](handleError(_0x136676,null));};exports[_0xdce1('0x64')]=function(_0x57d04d,_0x66259){if(_0x57d04d[_0xdce1('0x2f')]['id']){delete _0x57d04d[_0xdce1('0x2f')]['id'];}return db[_0xdce1('0x35')]['find']({'where':{'id':_0x57d04d[_0xdce1('0x3d')]['id']}})['then'](function(_0x2158c9){if(!_0x2158c9){logger[_0xdce1('0x1c')](_0xdce1('0x65'),'abandon',0x194,_0xdce1('0x66'));_0x66259[_0xdce1('0x2a')](0x194);}else{if(_0x2158c9[_0xdce1('0x67')]){throw new db[(_0xdce1('0x5e'))]['ValidationError']('Interaction\x20already\x20assigned');}}return _0x2158c9;})['then'](function(_0x3049b1){if(_0x3049b1){return _0x3049b1['update']({'closed':_0x57d04d['body'][_0xdce1('0x68')],'disposition':_0x57d04d[_0xdce1('0x2f')][_0xdce1('0x69')]})[_0xdce1('0x29')](function(_0x501ebe){return _0x501ebe;});}})['then'](function(){return respondWithRpcPromise(_0xdce1('0x6a'),_0xdce1('0x64'),_0x57d04d[_0xdce1('0x2f')],client9004);})[_0xdce1('0x29')](respondWithResult(_0x66259,null))[_0xdce1('0x20')](handleError(_0x66259,null));};exports['attachmentUpload']=function(_0x306c7d,_0x13c018){_0x306c7d['body'][_0xdce1('0x2c')]=_0x306c7d['file'][_0xdce1('0x6b')];_0x306c7d[_0xdce1('0x2f')]['basename']=_0x306c7d['file'][_0xdce1('0x6c')];_0x306c7d[_0xdce1('0x2f')]['type']=_0x306c7d[_0xdce1('0x6d')][_0xdce1('0x6e')];return db[_0xdce1('0x6f')]['create'](_0x306c7d[_0xdce1('0x2f')])[_0xdce1('0x29')](respondWithResult(_0x13c018,0xc9))[_0xdce1('0x20')](handleError(_0x13c018,null));};exports[_0xdce1('0x70')]=function(_0x53eba7,_0xbe50dd){return db[_0xdce1('0x35')][_0xdce1('0x4c')]({'where':{'id':_0x53eba7[_0xdce1('0x3d')]['id']},'raw':!![]})[_0xdce1('0x29')](handleEntityNotFound(_0xbe50dd,null))[_0xdce1('0x29')](function(_0x5e8847){if(_0x5e8847){if(_0x5e8847[_0xdce1('0x68')]){return _0xbe50dd[_0xdce1('0x21')](0x193)['json']({'status':0x193,'message':_0xdce1('0x71')});}return db['Attachment']['findOne']({'where':{'id':_0x53eba7['query'][_0xdce1('0x72')]},'raw':!![]})[_0xdce1('0x29')](handleEntityNotFound(_0xbe50dd,null));}})[_0xdce1('0x29')](function(_0x4879e5){if(_0x4879e5){var _0x3699cf=_0x4879e5[_0xdce1('0x73')]!==null;var _0xc6b51a=path[_0xdce1('0x74')](config['root'],'server/files/attachments/');if(_0x3699cf){_0xc6b51a=path[_0xdce1('0x74')](_0xc6b51a,'offline-chat/');}var _0x3d076a=path[_0xdce1('0x74')](_0xc6b51a,_0x4879e5[_0xdce1('0x75')]);return _0xbe50dd[_0xdce1('0x76')](_0x3d076a);}})[_0xdce1('0x20')](handleError(_0xbe50dd,null));};exports[_0xdce1('0x77')]=function(_0x26c2ae,_0x253a13){var _0x2a92fc=null;var _0xe6aac0=null;var _0x3d86c4=null;if(_0x26c2ae[_0xdce1('0x2f')]['id']){delete _0x26c2ae[_0xdce1('0x2f')]['id'];}if(_0x26c2ae['body'][_0xdce1('0x78')]){_0x3d86c4=path[_0xdce1('0x74')](config['root'],_0xdce1('0x79'),util[_0xdce1('0x7a')](_0xdce1('0x7b'),Date['now']()));_0x26c2ae[_0xdce1('0x2f')][_0xdce1('0x7c')]=_0x3d86c4;}return db[_0xdce1('0x35')][_0xdce1('0x47')]({'where':{'id':_0x26c2ae[_0xdce1('0x3d')]['id']},'include':[{'model':db[_0xdce1('0x7d')],'as':_0xdce1('0x7e'),'include':[{'model':db[_0xdce1('0x7f')],'as':_0xdce1('0x7f')}]}]})[_0xdce1('0x29')](handleEntityNotFound(_0x253a13,null))[_0xdce1('0x29')](saveUpdates(_0x26c2ae[_0xdce1('0x2f')],null))[_0xdce1('0x29')](function(_0x262b2b){if(_0x262b2b){_0x2a92fc=_0x262b2b;return db['ChatWebsite']['find']({'where':{'id':_0x2a92fc['ChatWebsiteId']}});}})[_0xdce1('0x29')](function(_0x4590a4){if(_0x4590a4){_0xe6aac0=_0x4590a4;return db[_0xdce1('0x63')][_0xdce1('0x47')]({'where':{'id':_0x2a92fc['ContactId']}});}})[_0xdce1('0x29')](function(_0x40b1b1){if(_0x40b1b1){if(_0x3d86c4){var _0x342c3f=null;for(var _0x4b6925=0x1;_0x4b6925<_0x2a92fc[_0xdce1('0x7e')]['length'];++_0x4b6925){_0x342c3f=_0x2a92fc[_0xdce1('0x7e')][_0x4b6925];var _0xb8dddf=_0x342c3f['UserId']?util['format'](_0xdce1('0x80'),_0xe6aac0['agentAlias'],_0x342c3f[_0xdce1('0x67')]):_0xdce1('0x81');var _0x6b0a8b=_0x26c2ae['body'][_0xdce1('0x82')]||util[_0xdce1('0x7a')](_0xdce1('0x80'),_0xdce1('0x83'),_0x342c3f[_0xdce1('0x84')]);switch(_0xe6aac0[_0xdce1('0x85')]){case _0xdce1('0x86'):_0xb8dddf=_0x342c3f[_0xdce1('0x67')]?util[_0xdce1('0x7a')](_0xdce1('0x80'),_0xe6aac0['agentAlias'],_0x342c3f[_0xdce1('0x67')]):_0xdce1('0x81');break;case _0xdce1('0x87'):_0xb8dddf=_0x342c3f[_0xdce1('0x67')]?_0x342c3f[_0xdce1('0x7f')][_0xdce1('0x88')]||_0x342c3f[_0xdce1('0x7f')]['fullname']:_0xdce1('0x81');break;case'agent_fullname':_0xb8dddf=_0x342c3f['UserId']?_0x342c3f[_0xdce1('0x7f')][_0xdce1('0x53')]:_0xdce1('0x81');break;default:_0xb8dddf=_0x342c3f[_0xdce1('0x67')]?util[_0xdce1('0x7a')](_0xdce1('0x80'),_0xe6aac0[_0xdce1('0x89')],_0x342c3f[_0xdce1('0x67')]):_0xdce1('0x81');}var _0x48e612=util[_0xdce1('0x7a')](_0xdce1('0x8a'),moment(_0x342c3f['createdAt'])[_0xdce1('0x7a')](_0xdce1('0x8b')),_0x342c3f['direction']==='in'?_0x6b0a8b:_0xb8dddf,_0x342c3f[_0xdce1('0x2f')]);if(!_0x342c3f[_0xdce1('0x8c')]){fs[_0xdce1('0x8d')](_0x3d86c4,_0x48e612);}}return db[_0xdce1('0x8e')]['findOne']({'where':{'service':!![]},'include':[{'model':db[_0xdce1('0x8f')],'as':_0xdce1('0x90'),'raw':!![],'include':[{'model':db[_0xdce1('0x91')],'as':_0xdce1('0x91'),'raw':!![]}]}]});}}})[_0xdce1('0x29')](function(_0x1f807e){if(!_0x1f807e||!_0x1f807e[_0xdce1('0x90')]||!_0x26c2ae[_0xdce1('0x2f')])return _0x2a92fc;var _0x2254eb=_0x1f807e['getSmtpOptions']();return respondWithRpcPromise(_0xdce1('0x92'),_0xdce1('0x93'),{'account':_0x2254eb,'message':{'from':util['format'](_0xdce1('0x94'),_0x1f807e['name'],_0x1f807e['email']||_0x1f807e[_0xdce1('0x90')]['user']),'to':_0x26c2ae[_0xdce1('0x2f')][_0xdce1('0x78')],'subject':_0xdce1('0x95'),'text':util[_0xdce1('0x7a')]('Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a',_0x26c2ae[_0xdce1('0x2f')]['mailTranscript']),'attachments':[{'path':_0x3d86c4}]}})['then'](function(){return _0x2a92fc;})['catch'](function(_0x273555){logger[_0xdce1('0x1c')](_0x273555);});})[_0xdce1('0x29')](respondWithStatusCode(_0x253a13,0xc8))[_0xdce1('0x20')](handleError(_0x253a13,null));};exports[_0xdce1('0x96')]=function(_0xd83b60,_0x2e0964){return db[_0xdce1('0x7d')]['find']({'where':{'id':_0xd83b60[_0xdce1('0x3d')]['id']}})[_0xdce1('0x29')](handleEntityNotFound(_0x2e0964,null))['then'](function(_0x4bbe28){if(_0x4bbe28){return _0x4bbe28[_0xdce1('0x96')](_0xd83b60[_0xdce1('0x2f')][_0xdce1('0x97')],_[_0xdce1('0x98')](_0xd83b60[_0xdce1('0x2f')],[_0xdce1('0x97'),'id'])||{});}})[_0xdce1('0x29')](respondWithResult(_0x2e0964,null))[_0xdce1('0x20')](handleError(_0x2e0964,null));};exports[_0xdce1('0x99')]=function(_0x271f46,_0x5091cd){var _0x2c1941={'raw':![],'where':{}};var _0x265a68={};var _0x27cdac={'count':0x0,'rows':[]};return db[_0xdce1('0x35')]['findOne']({'where':{'id':_0x271f46[_0xdce1('0x3d')]['id']}})[_0xdce1('0x29')](handleEntityNotFound(_0x5091cd,null))[_0xdce1('0x29')](function(_0x43510b){if(_0x43510b){_0x265a68[_0xdce1('0x3e')]=_['keys'](db[_0xdce1('0x7d')][_0xdce1('0x36')]);_0x265a68[_0xdce1('0x3c')]=_[_0xdce1('0x3f')](_0x271f46[_0xdce1('0x3c')]);_0x265a68['filters']=_[_0xdce1('0x41')](_0x265a68[_0xdce1('0x3e')],_0x265a68['query']);_0x2c1941[_0xdce1('0x42')]=_[_0xdce1('0x41')](_0x265a68[_0xdce1('0x3e')],qs[_0xdce1('0x43')](_0x271f46['query'][_0xdce1('0x43')]));_0x2c1941[_0xdce1('0x42')]=_0x2c1941[_0xdce1('0x42')]['length']?_0x2c1941[_0xdce1('0x42')]:_0x265a68[_0xdce1('0x3e')];if(!_0x271f46[_0xdce1('0x3c')][_0xdce1('0x9a')](_0xdce1('0x9b'))){_0x2c1941[_0xdce1('0x26')]=qs[_0xdce1('0x26')](_0x271f46[_0xdce1('0x3c')][_0xdce1('0x26')]);_0x2c1941[_0xdce1('0x24')]=qs['offset'](_0x271f46['query'][_0xdce1('0x24')]);}_0x2c1941[_0xdce1('0x9c')]=qs[_0xdce1('0x9d')](_0x271f46[_0xdce1('0x3c')][_0xdce1('0x9d')]);_0x2c1941[_0xdce1('0x9e')]=qs[_0xdce1('0x40')](_[_0xdce1('0x9f')](_0x271f46[_0xdce1('0x3c')],_0x265a68['filters']));_0x2c1941[_0xdce1('0x9e')][_0xdce1('0xa0')]=_0x43510b['id'];if(_0x271f46[_0xdce1('0x3c')][_0xdce1('0xa1')]){_0x2c1941[_0xdce1('0x9e')]=_[_0xdce1('0x2e')](_0x2c1941[_0xdce1('0x9e')],{'$or':_['map'](_0x2c1941[_0xdce1('0x42')],function(_0x1f3a24){var _0x2a04b9={};_0x2a04b9[_0x1f3a24]={'$like':'%'+_0x271f46[_0xdce1('0x3c')]['filter']+'%'};return _0x2a04b9;})});}if(_0x271f46[_0xdce1('0x3c')][_0xdce1('0xa2')]){var _0x3b7c8d=_0x271f46[_0xdce1('0x3c')][_0xdce1('0xa2')][_0xdce1('0xa3')](',');var _0x193f2b={};_0x193f2b[_0x3b7c8d[0x0]]={'$gte':moment(_0x3b7c8d[0x1])['format'](_0xdce1('0xa4'))};_0x2c1941['where']=_[_0xdce1('0x2e')](_0x2c1941[_0xdce1('0x9e')],_0x193f2b);}_0x2c1941=_[_0xdce1('0x2e')]({},_0x2c1941,_0x271f46['options']);return db[_0xdce1('0x7d')][_0xdce1('0x27')]({'where':_0x2c1941[_0xdce1('0x9e')]})[_0xdce1('0x29')](function(_0x4dc612){_0x27cdac['count']=_0x4dc612;if(_0x271f46[_0xdce1('0x3c')][_0xdce1('0x45')]){_0x2c1941[_0xdce1('0xa5')]=[{'all':!![]}];}return db[_0xdce1('0x7d')]['findAll'](_0x2c1941);})[_0xdce1('0x29')](function(_0x596b42){_0x27cdac[_0xdce1('0xa6')]=_0x596b42;return _0x27cdac;});}})[_0xdce1('0x29')](respondWithFilteredResult(_0x5091cd,_0x2c1941))[_0xdce1('0x20')](handleError(_0x5091cd,null));};exports[_0xdce1('0xa7')]=function(_0x38ef77,_0x29fd73){var _0x4a096a={'where':{}},_0x4d1bb4={},_0xf06b39={'count':0x0,'rows':[]};return db[_0xdce1('0x35')][_0xdce1('0x4c')]({'where':{'id':_0x38ef77[_0xdce1('0x3d')]['id']}})[_0xdce1('0x29')](handleEntityNotFound(_0x29fd73,null))[_0xdce1('0x29')](function(_0x475d43){if(_0x475d43){_0x4d1bb4[_0xdce1('0x3e')]=_[_0xdce1('0x3f')](db[_0xdce1('0x7d')][_0xdce1('0x36')]);_0x4d1bb4['query']=_['keys'](_0x38ef77['query']);_0x4d1bb4[_0xdce1('0x40')]=_[_0xdce1('0x41')](_0x4d1bb4[_0xdce1('0x3e')],_0x4d1bb4[_0xdce1('0x3c')]);_0x4a096a[_0xdce1('0x42')]=_[_0xdce1('0x41')](_0x4d1bb4[_0xdce1('0x3e')],qs[_0xdce1('0x43')](_0x38ef77[_0xdce1('0x3c')][_0xdce1('0x43')]));_0x4a096a[_0xdce1('0x42')]=_0x4a096a[_0xdce1('0x42')][_0xdce1('0x44')]?_0x4a096a[_0xdce1('0x42')]:_0x4d1bb4['model'];if(!_0x38ef77['query']['hasOwnProperty']('nolimit')){_0x4a096a[_0xdce1('0x26')]=qs['limit'](_0x38ef77[_0xdce1('0x3c')][_0xdce1('0x26')]);_0x4a096a[_0xdce1('0x24')]=qs[_0xdce1('0x24')](_0x38ef77['query'][_0xdce1('0x24')]);}_0x4a096a[_0xdce1('0x9c')]=qs[_0xdce1('0x9d')](_0x38ef77[_0xdce1('0x3c')][_0xdce1('0x9d')]);_0x4a096a[_0xdce1('0x9e')]=qs[_0xdce1('0x40')](_[_0xdce1('0x9f')](_0x38ef77[_0xdce1('0x3c')],_0x4d1bb4[_0xdce1('0x40')]));_0x4a096a[_0xdce1('0x9e')]['ChatInteractionId']=_0x475d43['id'];if(_0x38ef77[_0xdce1('0x3c')][_0xdce1('0xa1')]){_0x4a096a[_0xdce1('0x9e')]=_[_0xdce1('0x2e')](_0x4a096a[_0xdce1('0x9e')],{'$or':_[_0xdce1('0x34')](_0x4a096a[_0xdce1('0x42')],function(_0x43f4f0){var _0x998989={};_0x998989[_0x43f4f0]={'$like':'%'+_0x38ef77['query']['filter']+'%'};return _0x998989;})});}_0x4a096a[_0xdce1('0x9e')][_0xdce1('0x8c')]=![];if(_0x38ef77[_0xdce1('0x3c')]['id']){_0x4a096a[_0xdce1('0x9e')]['id']={'$gt':_0x38ef77[_0xdce1('0x3c')]['id']};}_0x4a096a=_[_0xdce1('0x2e')]({},_0x4a096a,_0x38ef77[_0xdce1('0x46')]);return db[_0xdce1('0x7d')][_0xdce1('0x27')]({'where':_0x4a096a[_0xdce1('0x9e')]})[_0xdce1('0x29')](function(_0x5738c5){_0xf06b39[_0xdce1('0x27')]=_0x5738c5;_0x4a096a[_0xdce1('0xa5')]=[];if(_0x38ef77[_0xdce1('0x3c')][_0xdce1('0xa8')]){_0x4a096a[_0xdce1('0xa5')]['push']({'model':db[_0xdce1('0x7f')],'as':'User','attributes':['id',_0xdce1('0x53'),_0xdce1('0x88')]});}if(_0x38ef77[_0xdce1('0x3c')][_0xdce1('0x45')]){_0x4a096a[_0xdce1('0xa5')]=[{'all':!![]}];}return db['ChatMessage']['findAll'](_0x4a096a);})['then'](function(_0x2662b4){_0xf06b39[_0xdce1('0xa6')]=_0x2662b4;return _0xf06b39;});}})[_0xdce1('0x29')](respondWithFilteredResult(_0x29fd73,_0x4a096a))[_0xdce1('0x20')](handleError(_0x29fd73,null));};exports[_0xdce1('0xa9')]=function(_0x4cfc53,_0x1898b5){return db[_0xdce1('0x35')][_0xdce1('0x47')]({'where':{'id':_0x4cfc53[_0xdce1('0x3d')]['id']}})[_0xdce1('0x29')](handleEntityNotFound(_0x1898b5,null))['then'](function(_0x34873b){if(_0x34873b){return _0x34873b[_0xdce1('0xaa')](_0x4cfc53[_0xdce1('0x2f')][_0xdce1('0x97')],_[_0xdce1('0x98')](_0x4cfc53[_0xdce1('0x2f')],[_0xdce1('0x97'),'id'])||{})[_0xdce1('0xab')](function(){return db[_0xdce1('0xac')][_0xdce1('0xad')]({'attributes':['id',_0xdce1('0x2c'),'color'],'where':{'id':_0x4cfc53['body'][_0xdce1('0x97')]}});})[_0xdce1('0x29')](function(_0x436354){socket['emit'](_0xdce1('0xae'),{'id':Number(_0x4cfc53[_0xdce1('0x3d')]['id']),'tags':_0x436354||[]});return{'id':Number(_0x4cfc53[_0xdce1('0x3d')]['id']),'tags':_0x436354||[]};});}})['then'](respondWithResult(_0x1898b5,null))[_0xdce1('0x20')](handleError(_0x1898b5,null));};exports[_0xdce1('0xaf')]=function(_0x3b3df6,_0x1fdd32){return db['ChatInteraction'][_0xdce1('0x47')]({'where':{'id':_0x3b3df6['params']['id']}})[_0xdce1('0x29')](handleEntityNotFound(_0x1fdd32,null))['then'](function(_0x4c92ae){if(_0x4c92ae){return _0x4c92ae[_0xdce1('0xaf')](_0x3b3df6[_0xdce1('0x3c')][_0xdce1('0x97')]);}})['then'](respondWithStatusCode(_0x1fdd32,null))[_0xdce1('0x20')](handleError(_0x1fdd32,null));};exports['download']=function(_0x278fbb,_0xb5dfa6){var _0x1b254d=moment()[_0xdce1('0xb0')]()['toString']();var _0x160e88=path[_0xdce1('0x74')](config['root'],_0xdce1('0xb1'),_0xdce1('0xb2'),_0xdce1('0xb3'));var _0x4d0bb7=path[_0xdce1('0x74')](config['root'],_0xdce1('0xb1'),'files',_0xdce1('0xb4'));var _0x43a8e9=path[_0xdce1('0x74')](_0x160e88,_0x1b254d);var _0x2b9d27=util['format'](_0xdce1('0xb5'),_0x278fbb[_0xdce1('0x3d')]['id'],_0x1b254d);var _0x2f4c31=path[_0xdce1('0x74')](_0x160e88,_0x2b9d27);var _0x34343=[];_0x34343[_0xdce1('0xb6')]({'model':db[_0xdce1('0x7f')],'as':_0xdce1('0x7f'),'attributes':['id',_0xdce1('0x53')],'raw':!![]});_0x34343[_0xdce1('0xb6')]({'model':db[_0xdce1('0x63')],'as':_0xdce1('0xb7'),'attributes':['id',_0xdce1('0xb8'),_0xdce1('0xb9')],'raw':!![]});if(_0x278fbb[_0xdce1('0x3c')][_0xdce1('0xb4')]){_0x34343[_0xdce1('0xb6')]({'model':db['Attachment'],'as':'Attachment','raw':!![]});}var _0x271344=[{'model':db[_0xdce1('0x7d')],'as':'Messages','attributes':['id','body','createdAt',_0xdce1('0xba'),_0xdce1('0x8c'),_0xdce1('0xbb')],'include':_0x34343}];_0x271344[_0xdce1('0xb6')]({'model':db['ChatWebsite'],'as':_0xdce1('0xbc'),'attributes':['id','name']});_0x271344['push']({'model':db['User'],'as':_0xdce1('0xbd'),'attributes':['id','fullname']});return db[_0xdce1('0x35')][_0xdce1('0x47')]({'where':{'id':_0x278fbb['params']['id']},'include':_0x271344})[_0xdce1('0x29')](handleEntityNotFound(_0xb5dfa6,null))[_0xdce1('0x29')](function(_0x1bc542){if(_0x1bc542){var _0x4270fe=_0x1bc542[_0xdce1('0xbe')]({'plain':!![]});fs[_0xdce1('0xbf')](_0x43a8e9);var _0x3da28e={'channel':_0xdce1('0xc0'),'account':_0x4270fe[_0xdce1('0xbc')][_0xdce1('0x2c')],'agent':_0x4270fe[_0xdce1('0xbd')]?_0x4270fe[_0xdce1('0xbd')][_0xdce1('0x53')]:_0xdce1('0xc1'),'createdAt':moment(_0x4270fe[_0xdce1('0xc2')])[_0xdce1('0x7a')]('YYYY-MM-DD\x20HH:mm:ss')[_0xdce1('0xc3')](),'closedAt':_0x4270fe[_0xdce1('0x68')]?moment(_0x4270fe['closedAt'])[_0xdce1('0x7a')]('YYYY-MM-DD\x20HH:mm:ss')['toString']():'','disposition':_0x4270fe[_0xdce1('0x69')],'chatInfo':{'browser':_0x4270fe['browserName'],'os':_0x4270fe[_0xdce1('0xc4')],'referer':_0x4270fe['referer'],'customerIp':_0x4270fe[_0xdce1('0xc5')],'customerPort':_0x4270fe[_0xdce1('0xc6')]?_0x4270fe[_0xdce1('0xc6')]:_0xdce1('0xc1')},'messages':_(_0x4270fe[_0xdce1('0x7e')])[_0xdce1('0xc7')]()[_0xdce1('0xa1')]({'secret':![]})['map'](function(_0x2065fc){if(_0x2065fc['Attachment']){var _0x286b19=path[_0xdce1('0x74')](_0x4d0bb7,_0x2065fc['Attachment'][_0xdce1('0x75')]);if(fs[_0xdce1('0xc8')](_0x286b19)){fs[_0xdce1('0xc9')](_0x286b19)[_0xdce1('0xca')](fs[_0xdce1('0xcb')](path[_0xdce1('0x74')](_0x43a8e9,_0x2065fc[_0xdce1('0x6f')]['basename'])));}}return{'date':moment(_0x2065fc[_0xdce1('0xc2')])[_0xdce1('0x7a')](_0xdce1('0xa4'))[_0xdce1('0xc3')](),'sender':_0x2065fc[_0xdce1('0xba')]===_0xdce1('0x61')?_0x2065fc[_0xdce1('0x7f')]?_0x2065fc[_0xdce1('0x7f')][_0xdce1('0x53')]:_0xdce1('0x81'):_0x2065fc['Contact'][_0xdce1('0xb8')]+(_0x2065fc[_0xdce1('0xb7')][_0xdce1('0xb9')]?'\x20'+_0x2065fc['Contact'][_0xdce1('0xb9')]:''),'body':_0x2065fc['Attachment']?_0x2065fc[_0xdce1('0x6f')]['basename']:_0x2065fc[_0xdce1('0x2f')],'direction':_0x2065fc[_0xdce1('0xba')]==='out'?'A':'C','secret':_0x2065fc['secret'],'read':_0x2065fc[_0xdce1('0xbb')],'attachment':_0x2065fc[_0xdce1('0x6f')]};})['value']()};return ejs[_0xdce1('0xcc')](path['join'](config[_0xdce1('0xcd')],_0xdce1('0xb1'),_0xdce1('0xce'),'downloadInteraction.ejs'),{'interaction':_0x3da28e})['then'](function(_0x344456){var _0x266d91=path[_0xdce1('0x74')](_0x43a8e9,'transcript-'+_0x4270fe['id']+'-'+_0x1b254d+_0xdce1('0xcf'));var _0x144659={'path':_0x266d91,'channel':_0xdce1('0xc0'),'interactionId':_0x4270fe['id']};return pdf[_0xdce1('0xd0')](_0x344456,_0x144659);})[_0xdce1('0x29')](function(){return new Promise(function(_0x540e01,_0x404aa3){zipdir(_0x43a8e9,{'saveTo':_0x2f4c31},function(_0x30e6c4,_0x4fec55){if(_0x30e6c4)return _0x404aa3(_0x30e6c4);return _0x540e01(_0x4fec55);});})[_0xdce1('0x29')](function(){return new BPromise(function(_0x2bad5f,_0x3a6f6b){rimraf(_0x43a8e9,function(_0x9cc285){if(_0x9cc285)_0x3a6f6b(_0x9cc285);return _0x2bad5f();});});})[_0xdce1('0x29')](function(){return _0xb5dfa6['download'](_0x2f4c31,_0x2b9d27,function(_0x38fc66){if(_0x38fc66){logger['error'](_0xdce1('0xd1'),_0x38fc66);}else{fs[_0xdce1('0xd2')](_0x2f4c31);}});});});}else{return _0xb5dfa6['sendStatus'](0xc8);}})[_0xdce1('0x20')](handleError(_0xb5dfa6,null));};