Built motion from commit ffdca78c.|2.6.24
[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 _0xe4e0=['findOne','ChatWebsite','ChatWebsiteId','vidaooApiKey','vidaooEscalation','vidaooNote','fullname','email','POST','https://api-vidaoo.xcally.com/api/v1/meetings','vidaooTopic','isNull','follow','vidaooMetadata','parse','metadata','Sequelize','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','Error\x20in\x20Vidaoo\x20configuration','join_url','out','Unable\x20to\x20create\x20Vidaoo\x20session','CmContact','Contact','abandonInteraction,\x20%s,\x20%s,\x20%s','abandon','entity\x20not\x20found','UserId','Interaction\x20already\x20assigned','closed','AbandonInteraction','attachmentUpload','file','originalname','filename','mimetype','Unauthorized','attachId','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','download','close','mailTranscript','format','transcript-%s.txt','pathTranscript','ChatMessage','Messages','User','ContactId','length','%s%d','agentAlias','System','customer','Visitor','agentIdentifier','website_alias','alias','agent_fullname','[%s]\x20%s:\x20%s\x0a','createdAt','MM/DD/YYYY\x20HH:mm:ss','direction','secret','appendFileSync','MailAccount','MailServerOut','Smtp','CloudProvider','getSmtpOptions','SendMail','sendMail','\x22%s\x22\x20<%s>','addMessage','ids','getMessages','hasOwnProperty','nolimit','order','sort','where','pick','ChatInteractionId','map','$gte','split','YYYY-MM-DD\x20HH:mm:ss','rows','getMyMessages','filter','includeAgent','addTags','spread','Tag','color','emit','removeTags','unix','server','files','tmp','attachments','transcript-%d-%s.zip','push','firstName','Attachment','read','Owner','get','mkdirSync','Account','N.A.','toString','closedAt','disposition','browserName','osName','customerIp','customerPort','basename','existsSync','createReadStream','pipe','createWriteStream','lastName','value','renderFile','views','downloadInteraction.ejs','transcript-','.pdf','Chat','createPdfFromHTML','unlinkSync','moment','bluebird','mustache','util','path','ejs','lodash','ioredis','../../components/interaction/service','../../components/export/pdf','../../config/logger','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','register','jayson/promise','client','http','request','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','sendStatus','status','end','json','offset','undefined','count','limit','Content-Range','update','destroy','stack','name','render','merge','body','contact','agent','account','index','rawAttributes','fieldName','type','key','findAll','chat','query','user','catch','show','model','keys','ChatInteraction','filters','intersection','fields','attributes','includeAll','include','options','find','create','params','describe','createVidaooSession'];(function(_0x1e27aa,_0x526f36){var _0x167d59=function(_0x129e49){while(--_0x129e49){_0x1e27aa['push'](_0x1e27aa['shift']());}};_0x167d59(++_0x526f36);}(_0xe4e0,0x8b));var _0x0e4e=function(_0x187ee1,_0x3fd1e6){_0x187ee1=_0x187ee1-0x0;var _0x388160=_0xe4e0[_0x187ee1];return _0x388160;};'use strict';var rimraf=require('rimraf');var zipdir=require('zip-dir');var rp=require('request-promise');var moment=require(_0x0e4e('0x0'));var BPromise=require(_0x0e4e('0x1'));var Mustache=require(_0x0e4e('0x2'));var util=require(_0x0e4e('0x3'));var path=require(_0x0e4e('0x4'));var ejs=require(_0x0e4e('0x5'));var fs=require('fs');var _=require(_0x0e4e('0x6'));var Redis=require(_0x0e4e('0x7'));var interaction=require(_0x0e4e('0x8'));var qs=require('../../components/parsers/qs');var pdf=require(_0x0e4e('0x9'));var logger=require(_0x0e4e('0xa'))('api');var config=require(_0x0e4e('0xb'));var db=require(_0x0e4e('0xc'))['db'];config['redis']=_[_0x0e4e('0xd')](config[_0x0e4e('0xe')],{'host':_0x0e4e('0xf'),'port':0x18eb});var socket=require(_0x0e4e('0x10'))(new Redis(config[_0x0e4e('0xe')]));require('./chatInteraction.socket')[_0x0e4e('0x11')](socket);var jayson=require(_0x0e4e('0x12'));var client=jayson[_0x0e4e('0x13')][_0x0e4e('0x14')]({'port':0x232b});var client9004=jayson[_0x0e4e('0x13')]['http']({'port':0x232c});function respondWithRpcPromise(_0x16648d,_0x3c5068,_0x140445,_0x1472c9){return new BPromise(function(_0x2e9d13,_0x15b353){var _0x514090=_0x1472c9||client;return _0x514090[_0x0e4e('0x15')](_0x16648d,_0x140445)[_0x0e4e('0x16')](function(_0x9e577c){logger[_0x0e4e('0x17')](_0x0e4e('0x18'),_0x3c5068,_0x0e4e('0x19'));logger[_0x0e4e('0x1a')]('ChatInteraction,\x20%s,\x20%s,\x20%s',_0x3c5068,_0x0e4e('0x19'),JSON[_0x0e4e('0x1b')](_0x9e577c));if(_0x9e577c['error']){if(_0x9e577c[_0x0e4e('0x1c')][_0x0e4e('0x1d')]===0x1f4){logger[_0x0e4e('0x1c')]('ChatInteraction,\x20%s,\x20%s',_0x3c5068,_0x9e577c[_0x0e4e('0x1c')][_0x0e4e('0x1e')]);return _0x15b353(_0x9e577c[_0x0e4e('0x1c')][_0x0e4e('0x1e')]);}logger[_0x0e4e('0x1c')](_0x0e4e('0x18'),_0x3c5068,_0x9e577c['error'][_0x0e4e('0x1e')]);return _0x2e9d13(_0x9e577c[_0x0e4e('0x1c')][_0x0e4e('0x1e')]);}else{logger[_0x0e4e('0x17')]('ChatInteraction,\x20%s,\x20%s',_0x3c5068,_0x0e4e('0x19'));_0x2e9d13(_0x9e577c['result'][_0x0e4e('0x1e')]);}})['catch'](function(_0x253881){logger[_0x0e4e('0x1c')](_0x0e4e('0x18'),_0x3c5068,_0x253881);_0x15b353(_0x253881);});});}function respondWithStatusCode(_0xcbac0,_0x56b376){_0x56b376=_0x56b376||0xcc;return function(_0x879f5c){if(_0x879f5c){return _0xcbac0[_0x0e4e('0x1f')](_0x56b376);}return _0xcbac0[_0x0e4e('0x20')](_0x56b376)[_0x0e4e('0x21')]();};}function respondWithResult(_0x379052,_0x1a950f){_0x1a950f=_0x1a950f||0xc8;return function(_0x4fa4f7){if(_0x4fa4f7){return _0x379052[_0x0e4e('0x20')](_0x1a950f)[_0x0e4e('0x22')](_0x4fa4f7);}};}function respondWithFilteredResult(_0x7e6b45,_0x3692ab){return function(_0xe94861){if(_0xe94861){var _0x5878ba=typeof _0x3692ab[_0x0e4e('0x23')]===_0x0e4e('0x24')&&typeof _0x3692ab['limit']===_0x0e4e('0x24');var _0x3afbd3=_0xe94861[_0x0e4e('0x25')];var _0x1c0cee=_0x5878ba?0x0:_0x3692ab[_0x0e4e('0x23')];var _0x3e1716=_0x5878ba?_0xe94861[_0x0e4e('0x25')]:_0x3692ab[_0x0e4e('0x23')]+_0x3692ab[_0x0e4e('0x26')];var _0x359406;if(_0x3e1716>=_0x3afbd3){_0x3e1716=_0x3afbd3;_0x359406=0xc8;}else{_0x359406=0xce;}_0x7e6b45['status'](_0x359406);return _0x7e6b45['set'](_0x0e4e('0x27'),_0x1c0cee+'-'+_0x3e1716+'/'+_0x3afbd3)[_0x0e4e('0x22')](_0xe94861);}return null;};}function saveUpdates(_0x1b012d){return function(_0x30b9ac){if(_0x30b9ac){return _0x30b9ac[_0x0e4e('0x28')](_0x1b012d)[_0x0e4e('0x16')](function(_0x190657){return _0x190657;});}return null;};}function removeEntity(_0x54ed68){return function(_0x228be0){if(_0x228be0){return _0x228be0[_0x0e4e('0x29')]()['then'](function(){_0x54ed68[_0x0e4e('0x20')](0xcc)['end']();});}};}function handleEntityNotFound(_0x37ac4a){return function(_0x3e2acc){if(!_0x3e2acc){_0x37ac4a[_0x0e4e('0x1f')](0x194);}return _0x3e2acc;};}function handleError(_0x4d3fd4,_0x1623e8){_0x1623e8=_0x1623e8||0x1f4;return function(_0x3bedad){logger['error'](_0x3bedad[_0x0e4e('0x2a')]);if(_0x3bedad[_0x0e4e('0x2b')]){delete _0x3bedad[_0x0e4e('0x2b')];}_0x4d3fd4[_0x0e4e('0x20')](_0x1623e8)['send'](_0x3bedad);};}function getMustacheRender(_0x2cbda0,_0x14f3c4){return Mustache[_0x0e4e('0x2c')](_0x2cbda0,_[_0x0e4e('0x2d')](_0x14f3c4[_0x0e4e('0x2e')],{'contact':_0x14f3c4[_0x0e4e('0x2f')],'message':_0x14f3c4[_0x0e4e('0x1e')],'agent':_0x14f3c4[_0x0e4e('0x30')],'interaction':_0x14f3c4['interaction'],'account':_0x14f3c4[_0x0e4e('0x31')]}))||'';}exports[_0x0e4e('0x32')]=function(_0x20a20a,_0x495ef2){var _0x2acc79={};var _0x3d32b5=_['map'](db['ChatInteraction'][_0x0e4e('0x33')],function(_0x66e561){return{'name':_0x66e561[_0x0e4e('0x34')],'type':_0x66e561[_0x0e4e('0x35')][_0x0e4e('0x36')]};});_0x2acc79=qs['getOptions'](_0x3d32b5,_0x20a20a);return interaction[_0x0e4e('0x37')](_0x0e4e('0x38'),_0x20a20a[_0x0e4e('0x39')],_0x20a20a[_0x0e4e('0x3a')],_0x2acc79,_0x3d32b5)[_0x0e4e('0x16')](respondWithFilteredResult(_0x495ef2,_0x2acc79))[_0x0e4e('0x3b')](handleError(_0x495ef2,null));};exports[_0x0e4e('0x3c')]=function(_0x54841a,_0x1d82db){var _0x1b6869={'raw':![],'where':{'id':_0x54841a['params']['id']}},_0x1fd7ad={};_0x1fd7ad[_0x0e4e('0x3d')]=_[_0x0e4e('0x3e')](db[_0x0e4e('0x3f')]['rawAttributes']);_0x1fd7ad[_0x0e4e('0x39')]=_[_0x0e4e('0x3e')](_0x54841a[_0x0e4e('0x39')]);_0x1fd7ad[_0x0e4e('0x40')]=_[_0x0e4e('0x41')](_0x1fd7ad['model'],_0x1fd7ad[_0x0e4e('0x39')]);_0x1b6869['attributes']=_[_0x0e4e('0x41')](_0x1fd7ad[_0x0e4e('0x3d')],qs['fields'](_0x54841a[_0x0e4e('0x39')][_0x0e4e('0x42')]));_0x1b6869['attributes']=_0x1b6869[_0x0e4e('0x43')]['length']?_0x1b6869[_0x0e4e('0x43')]:_0x1fd7ad['model'];if(_0x54841a['query'][_0x0e4e('0x44')]){_0x1b6869[_0x0e4e('0x45')]=[{'all':!![]}];}_0x1b6869=_[_0x0e4e('0x2d')]({},_0x1b6869,_0x54841a[_0x0e4e('0x46')]);return db['ChatInteraction'][_0x0e4e('0x47')](_0x1b6869)[_0x0e4e('0x16')](handleEntityNotFound(_0x1d82db,null))[_0x0e4e('0x16')](respondWithResult(_0x1d82db,null))[_0x0e4e('0x3b')](handleError(_0x1d82db,null));};exports['create']=function(_0x88c14b,_0x5a3c3b){return db[_0x0e4e('0x3f')][_0x0e4e('0x48')](_0x88c14b['body'],{})[_0x0e4e('0x16')](respondWithResult(_0x5a3c3b,0xc9))[_0x0e4e('0x3b')](handleError(_0x5a3c3b,null));};exports[_0x0e4e('0x28')]=function(_0x488327,_0x184d0e){if(_0x488327[_0x0e4e('0x2e')]['id']){delete _0x488327[_0x0e4e('0x2e')]['id'];}return db['ChatInteraction'][_0x0e4e('0x47')]({'where':{'id':_0x488327[_0x0e4e('0x49')]['id']}})[_0x0e4e('0x16')](handleEntityNotFound(_0x184d0e,null))['then'](saveUpdates(_0x488327['body'],null))[_0x0e4e('0x16')](respondWithResult(_0x184d0e,null))[_0x0e4e('0x3b')](handleError(_0x184d0e,null));};exports['destroy']=function(_0x5e3ed3,_0x44d7ac){return db[_0x0e4e('0x3f')][_0x0e4e('0x47')]({'where':{'id':_0x5e3ed3[_0x0e4e('0x49')]['id']}})['then'](handleEntityNotFound(_0x44d7ac,null))[_0x0e4e('0x16')](removeEntity(_0x44d7ac,null))[_0x0e4e('0x3b')](handleError(_0x44d7ac,null));};exports[_0x0e4e('0x4a')]=function(_0x47139b,_0x43b7c0){return db[_0x0e4e('0x3f')][_0x0e4e('0x4a')]()[_0x0e4e('0x16')](respondWithResult(_0x43b7c0,null))[_0x0e4e('0x3b')](handleError(_0x43b7c0,null));};exports[_0x0e4e('0x4b')]=function(_0x1b2ea3,_0xb06a86){var _0x4d3c0b=_0x1b2ea3[_0x0e4e('0x49')]['id'];var _0x5d2402;var _0x3fad7b;var _0x4bffa3;return db[_0x0e4e('0x3f')][_0x0e4e('0x4c')]({'where':{'id':_0x4d3c0b}})[_0x0e4e('0x16')](function(_0x406c0d){_0x5d2402=_0x406c0d;return db[_0x0e4e('0x4d')][_0x0e4e('0x4c')]({'where':{'id':_0x406c0d[_0x0e4e('0x4e')]},'attributes':['id',_0x0e4e('0x4f'),_0x0e4e('0x50'),'vidaooTopic',_0x0e4e('0x51'),'vidaooMetadata'],'raw':!![]});})[_0x0e4e('0x16')](function(_0xfd8533){if(_0xfd8533&&_0xfd8533[_0x0e4e('0x4f')]&&_0xfd8533[_0x0e4e('0x50')]){_0x3fad7b=_0xfd8533;var _0xc1164f={'interaction':{'id':_0x4d3c0b},'agent':{'id':_0x1b2ea3[_0x0e4e('0x3a')]['id'],'name':_0x1b2ea3[_0x0e4e('0x3a')]['name'],'fullname':_0x1b2ea3[_0x0e4e('0x3a')][_0x0e4e('0x52')],'email':_0x1b2ea3[_0x0e4e('0x3a')][_0x0e4e('0x53')]},'contact':_0x1b2ea3[_0x0e4e('0x2e')][_0x0e4e('0x2f')],'account':_0x1b2ea3[_0x0e4e('0x2e')][_0x0e4e('0x31')]};var _0x4d6ff0={'rejectUnauthorized':![],'method':_0x0e4e('0x54'),'url':_0x0e4e('0x55'),'headers':{'X-APIKEY':_0xfd8533[_0x0e4e('0x4f')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x1b2ea3[_0x0e4e('0x3a')][_0x0e4e('0x53')]],'buttons':null,'topic':_0x3fad7b[_0x0e4e('0x56')],'note':_[_0x0e4e('0x57')](_0x3fad7b['vidaooNote'])?null:getMustacheRender(_0x3fad7b[_0x0e4e('0x51')],_0xc1164f),'metadata':null},'redirect':_0x0e4e('0x58'),'json':!![]};try{if(!_[_0x0e4e('0x57')](_0x3fad7b['vidaooMetadata'])){var _0x5ad30a=getMustacheRender(_0x3fad7b[_0x0e4e('0x59')],_0xc1164f);var _0x54b303=JSON[_0x0e4e('0x5a')](_0x5ad30a);_0x4d6ff0['body'][_0x0e4e('0x5b')]=_0x54b303;}}catch(_0x3dd578){throw new db[(_0x0e4e('0x5c'))][(_0x0e4e('0x5d'))](_0x0e4e('0x5e'));}return rp(_0x4d6ff0);}else{throw new db[(_0x0e4e('0x5c'))]['ValidationError'](_0x0e4e('0x5f'));}})[_0x0e4e('0x16')](function(_0x53c41a){_0x4bffa3=_0x53c41a;if(_0x4bffa3['id']){var _0x2c347b={'body':_0x4bffa3[_0x0e4e('0x60')],'ChatWebsiteId':_0x3fad7b['id'],'ChatInteractionId':_0x5d2402['id'],'direction':_0x0e4e('0x61'),'UserId':_0x1b2ea3[_0x0e4e('0x3a')]['id']};return db['ChatMessage'][_0x0e4e('0x48')](_0x2c347b,{});}else{throw new db[(_0x0e4e('0x5c'))][(_0x0e4e('0x5d'))](_0x0e4e('0x62'));}})['then'](function(){return _0x5d2402['updateAttributes']({'vidaooSessionId':_0x4bffa3['id']});})[_0x0e4e('0x16')](respondWithResult(_0xb06a86,null))[_0x0e4e('0x3b')](handleError(_0xb06a86,null));};exports['customUpdate']=function(_0xcfa4a1,_0x3cdc42){if(_0xcfa4a1[_0x0e4e('0x2e')]['id']){delete _0xcfa4a1[_0x0e4e('0x2e')]['id'];}return db['ChatInteraction'][_0x0e4e('0x47')]({'where':{'id':_0xcfa4a1[_0x0e4e('0x49')]['id']},'include':[{'model':db[_0x0e4e('0x63')],'as':_0x0e4e('0x64')}]})[_0x0e4e('0x16')](handleEntityNotFound(_0x3cdc42,null))['then'](saveUpdates(_0xcfa4a1[_0x0e4e('0x2e')],null))['then'](respondWithResult(_0x3cdc42,null))[_0x0e4e('0x3b')](handleError(_0x3cdc42,null));};exports['abandon']=function(_0x3ae2f5,_0x6de7ac){if(_0x3ae2f5[_0x0e4e('0x2e')]['id']){delete _0x3ae2f5['body']['id'];}return db[_0x0e4e('0x3f')][_0x0e4e('0x47')]({'where':{'id':_0x3ae2f5[_0x0e4e('0x49')]['id']}})[_0x0e4e('0x16')](function(_0x559801){if(!_0x559801){logger[_0x0e4e('0x1c')](_0x0e4e('0x65'),_0x0e4e('0x66'),0x194,_0x0e4e('0x67'));_0x6de7ac['sendStatus'](0x194);}else{if(_0x559801[_0x0e4e('0x68')]){throw new db[(_0x0e4e('0x5c'))]['ValidationError'](_0x0e4e('0x69'));}}return _0x559801;})[_0x0e4e('0x16')](function(_0x3a1c64){if(_0x3a1c64){return _0x3a1c64['update']({'closed':_0x3ae2f5[_0x0e4e('0x2e')][_0x0e4e('0x6a')],'disposition':_0x3ae2f5[_0x0e4e('0x2e')]['disposition']})[_0x0e4e('0x16')](function(_0x1d8c71){return _0x1d8c71;});}})['then'](function(){return respondWithRpcPromise(_0x0e4e('0x6b'),_0x0e4e('0x66'),_0x3ae2f5[_0x0e4e('0x2e')],client9004);})[_0x0e4e('0x16')](respondWithResult(_0x6de7ac,null))[_0x0e4e('0x3b')](handleError(_0x6de7ac,null));};exports[_0x0e4e('0x6c')]=function(_0x205a72,_0x2f2d72){_0x205a72[_0x0e4e('0x2e')][_0x0e4e('0x2b')]=_0x205a72[_0x0e4e('0x6d')][_0x0e4e('0x6e')];_0x205a72[_0x0e4e('0x2e')]['basename']=_0x205a72[_0x0e4e('0x6d')][_0x0e4e('0x6f')];_0x205a72[_0x0e4e('0x2e')][_0x0e4e('0x35')]=_0x205a72[_0x0e4e('0x6d')][_0x0e4e('0x70')];return db['Attachment'][_0x0e4e('0x48')](_0x205a72[_0x0e4e('0x2e')])[_0x0e4e('0x16')](respondWithResult(_0x2f2d72,0xc9))[_0x0e4e('0x3b')](handleError(_0x2f2d72,null));};exports['attachmentDownload']=function(_0x1c01c9,_0x1d9470){return db[_0x0e4e('0x3f')][_0x0e4e('0x4c')]({'where':{'id':_0x1c01c9['params']['id']},'raw':!![]})[_0x0e4e('0x16')](handleEntityNotFound(_0x1d9470,null))[_0x0e4e('0x16')](function(_0xa3aea0){if(_0xa3aea0){if(_0xa3aea0['closed']){return _0x1d9470[_0x0e4e('0x20')](0x193)[_0x0e4e('0x22')]({'status':0x193,'message':_0x0e4e('0x71')});}return db['Attachment'][_0x0e4e('0x4c')]({'where':{'id':_0x1c01c9['query'][_0x0e4e('0x72')]},'raw':!![]})['then'](handleEntityNotFound(_0x1d9470,null));}})[_0x0e4e('0x16')](function(_0x5b1f39){if(_0x5b1f39){var _0x2402a4=_0x5b1f39[_0x0e4e('0x73')]!==null;var _0x252d9d=path[_0x0e4e('0x74')](config[_0x0e4e('0x75')],_0x0e4e('0x76'));if(_0x2402a4){_0x252d9d=path[_0x0e4e('0x74')](_0x252d9d,_0x0e4e('0x77'));}var _0x11902f=path['join'](_0x252d9d,_0x5b1f39['basename']);return _0x1d9470[_0x0e4e('0x78')](_0x11902f);}})[_0x0e4e('0x3b')](handleError(_0x1d9470,null));};exports[_0x0e4e('0x79')]=function(_0x2d728a,_0x5c41ae){var _0x58d33a=null;var _0x12ba08=null;var _0x279f56=null;if(_0x2d728a[_0x0e4e('0x2e')]['id']){delete _0x2d728a[_0x0e4e('0x2e')]['id'];}if(_0x2d728a[_0x0e4e('0x2e')][_0x0e4e('0x7a')]){_0x279f56=path['join'](config[_0x0e4e('0x75')],'server/files/chat/upload/',util[_0x0e4e('0x7b')](_0x0e4e('0x7c'),Date['now']()));_0x2d728a[_0x0e4e('0x2e')][_0x0e4e('0x7d')]=_0x279f56;}return db['ChatInteraction'][_0x0e4e('0x47')]({'where':{'id':_0x2d728a[_0x0e4e('0x49')]['id']},'include':[{'model':db[_0x0e4e('0x7e')],'as':_0x0e4e('0x7f'),'include':[{'model':db[_0x0e4e('0x80')],'as':'User'}]}]})[_0x0e4e('0x16')](handleEntityNotFound(_0x5c41ae,null))[_0x0e4e('0x16')](saveUpdates(_0x2d728a[_0x0e4e('0x2e')],null))['then'](function(_0x699c8f){if(_0x699c8f){_0x58d33a=_0x699c8f;return db['ChatWebsite'][_0x0e4e('0x47')]({'where':{'id':_0x58d33a[_0x0e4e('0x4e')]}});}})['then'](function(_0x3fe045){if(_0x3fe045){_0x12ba08=_0x3fe045;return db[_0x0e4e('0x63')]['find']({'where':{'id':_0x58d33a[_0x0e4e('0x81')]}});}})[_0x0e4e('0x16')](function(_0x3d1c49){if(_0x3d1c49){if(_0x279f56){var _0x460797=null;for(var _0x5147be=0x1;_0x5147be<_0x58d33a[_0x0e4e('0x7f')][_0x0e4e('0x82')];++_0x5147be){_0x460797=_0x58d33a[_0x0e4e('0x7f')][_0x5147be];var _0x246128=_0x460797[_0x0e4e('0x68')]?util[_0x0e4e('0x7b')](_0x0e4e('0x83'),_0x12ba08[_0x0e4e('0x84')],_0x460797[_0x0e4e('0x68')]):_0x0e4e('0x85');var _0x2cfe24=_0x2d728a['body'][_0x0e4e('0x86')]||util[_0x0e4e('0x7b')](_0x0e4e('0x83'),_0x0e4e('0x87'),_0x460797[_0x0e4e('0x81')]);switch(_0x12ba08[_0x0e4e('0x88')]){case _0x0e4e('0x89'):_0x246128=_0x460797['UserId']?util[_0x0e4e('0x7b')](_0x0e4e('0x83'),_0x12ba08[_0x0e4e('0x84')],_0x460797['UserId']):_0x0e4e('0x85');break;case'agent_alias':_0x246128=_0x460797[_0x0e4e('0x68')]?_0x460797[_0x0e4e('0x80')][_0x0e4e('0x8a')]||_0x460797[_0x0e4e('0x80')][_0x0e4e('0x52')]:_0x0e4e('0x85');break;case _0x0e4e('0x8b'):_0x246128=_0x460797['UserId']?_0x460797[_0x0e4e('0x80')][_0x0e4e('0x52')]:_0x0e4e('0x85');break;default:_0x246128=_0x460797[_0x0e4e('0x68')]?util[_0x0e4e('0x7b')](_0x0e4e('0x83'),_0x12ba08[_0x0e4e('0x84')],_0x460797['UserId']):_0x0e4e('0x85');}var _0x44b24e=util[_0x0e4e('0x7b')](_0x0e4e('0x8c'),moment(_0x460797[_0x0e4e('0x8d')])[_0x0e4e('0x7b')](_0x0e4e('0x8e')),_0x460797[_0x0e4e('0x8f')]==='in'?_0x2cfe24:_0x246128,_0x460797[_0x0e4e('0x2e')]);if(!_0x460797[_0x0e4e('0x90')]){fs[_0x0e4e('0x91')](_0x279f56,_0x44b24e);}}return db[_0x0e4e('0x92')][_0x0e4e('0x4c')]({'where':{'service':!![]},'include':[{'model':db[_0x0e4e('0x93')],'as':_0x0e4e('0x94'),'raw':!![],'include':[{'model':db[_0x0e4e('0x95')],'as':'CloudProvider','raw':!![]}]}]});}}})[_0x0e4e('0x16')](function(_0x5c2258){if(!_0x5c2258||!_0x5c2258[_0x0e4e('0x94')]||!_0x2d728a[_0x0e4e('0x2e')])return _0x58d33a;var _0x4c545d=_0x5c2258[_0x0e4e('0x96')]();return respondWithRpcPromise(_0x0e4e('0x97'),_0x0e4e('0x98'),{'account':_0x4c545d,'message':{'from':util['format'](_0x0e4e('0x99'),_0x5c2258[_0x0e4e('0x2b')],_0x5c2258[_0x0e4e('0x53')]||_0x5c2258[_0x0e4e('0x94')][_0x0e4e('0x3a')]),'to':_0x2d728a[_0x0e4e('0x2e')][_0x0e4e('0x7a')],'subject':'Mail\x20Transcript','text':util['format']('Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a',_0x2d728a['body'][_0x0e4e('0x7a')]),'attachments':[{'path':_0x279f56}]}})[_0x0e4e('0x16')](function(){return _0x58d33a;})[_0x0e4e('0x3b')](function(_0x2dca78){logger['error'](_0x2dca78);});})[_0x0e4e('0x16')](respondWithStatusCode(_0x5c41ae,0xc8))['catch'](handleError(_0x5c41ae,null));};exports[_0x0e4e('0x9a')]=function(_0x48178b,_0x473439){return db['ChatMessage']['find']({'where':{'id':_0x48178b[_0x0e4e('0x49')]['id']}})[_0x0e4e('0x16')](handleEntityNotFound(_0x473439,null))['then'](function(_0x21fec2){if(_0x21fec2){return _0x21fec2['addMessage'](_0x48178b[_0x0e4e('0x2e')][_0x0e4e('0x9b')],_['omit'](_0x48178b['body'],['ids','id'])||{});}})[_0x0e4e('0x16')](respondWithResult(_0x473439,null))[_0x0e4e('0x3b')](handleError(_0x473439,null));};exports[_0x0e4e('0x9c')]=function(_0x2c9697,_0x5c7ff8){var _0x55618b={'raw':![],'where':{}};var _0xed133b={};var _0x181179={'count':0x0,'rows':[]};return db[_0x0e4e('0x3f')]['findOne']({'where':{'id':_0x2c9697[_0x0e4e('0x49')]['id']}})['then'](handleEntityNotFound(_0x5c7ff8,null))['then'](function(_0x4aca3c){if(_0x4aca3c){_0xed133b[_0x0e4e('0x3d')]=_['keys'](db[_0x0e4e('0x7e')][_0x0e4e('0x33')]);_0xed133b[_0x0e4e('0x39')]=_[_0x0e4e('0x3e')](_0x2c9697[_0x0e4e('0x39')]);_0xed133b[_0x0e4e('0x40')]=_['intersection'](_0xed133b['model'],_0xed133b[_0x0e4e('0x39')]);_0x55618b[_0x0e4e('0x43')]=_['intersection'](_0xed133b[_0x0e4e('0x3d')],qs[_0x0e4e('0x42')](_0x2c9697[_0x0e4e('0x39')][_0x0e4e('0x42')]));_0x55618b[_0x0e4e('0x43')]=_0x55618b[_0x0e4e('0x43')]['length']?_0x55618b[_0x0e4e('0x43')]:_0xed133b[_0x0e4e('0x3d')];if(!_0x2c9697[_0x0e4e('0x39')][_0x0e4e('0x9d')](_0x0e4e('0x9e'))){_0x55618b[_0x0e4e('0x26')]=qs[_0x0e4e('0x26')](_0x2c9697['query']['limit']);_0x55618b[_0x0e4e('0x23')]=qs[_0x0e4e('0x23')](_0x2c9697[_0x0e4e('0x39')][_0x0e4e('0x23')]);}_0x55618b[_0x0e4e('0x9f')]=qs[_0x0e4e('0xa0')](_0x2c9697[_0x0e4e('0x39')]['sort']);_0x55618b[_0x0e4e('0xa1')]=qs['filters'](_[_0x0e4e('0xa2')](_0x2c9697['query'],_0xed133b['filters']));_0x55618b[_0x0e4e('0xa1')][_0x0e4e('0xa3')]=_0x4aca3c['id'];if(_0x2c9697[_0x0e4e('0x39')]['filter']){_0x55618b['where']=_[_0x0e4e('0x2d')](_0x55618b[_0x0e4e('0xa1')],{'$or':_[_0x0e4e('0xa4')](_0x55618b[_0x0e4e('0x43')],function(_0x37a5ab){var _0xf4761e={};_0xf4761e[_0x37a5ab]={'$like':'%'+_0x2c9697[_0x0e4e('0x39')]['filter']+'%'};return _0xf4761e;})});}if(_0x2c9697[_0x0e4e('0x39')]['$gte']){var _0x117a64=_0x2c9697[_0x0e4e('0x39')][_0x0e4e('0xa5')][_0x0e4e('0xa6')](',');var _0x28adce={};_0x28adce[_0x117a64[0x0]]={'$gte':moment(_0x117a64[0x1])[_0x0e4e('0x7b')](_0x0e4e('0xa7'))};_0x55618b[_0x0e4e('0xa1')]=_[_0x0e4e('0x2d')](_0x55618b[_0x0e4e('0xa1')],_0x28adce);}_0x55618b=_[_0x0e4e('0x2d')]({},_0x55618b,_0x2c9697[_0x0e4e('0x46')]);return db['ChatMessage'][_0x0e4e('0x25')]({'where':_0x55618b[_0x0e4e('0xa1')]})[_0x0e4e('0x16')](function(_0x520e32){_0x181179['count']=_0x520e32;if(_0x2c9697[_0x0e4e('0x39')]['includeAll']){_0x55618b[_0x0e4e('0x45')]=[{'all':!![]}];}return db[_0x0e4e('0x7e')][_0x0e4e('0x37')](_0x55618b);})[_0x0e4e('0x16')](function(_0xc10a16){_0x181179[_0x0e4e('0xa8')]=_0xc10a16;return _0x181179;});}})[_0x0e4e('0x16')](respondWithFilteredResult(_0x5c7ff8,_0x55618b))[_0x0e4e('0x3b')](handleError(_0x5c7ff8,null));};exports[_0x0e4e('0xa9')]=function(_0x83d830,_0x4b0904){var _0x326250={'where':{}},_0x5b27f7={},_0x4d9338={'count':0x0,'rows':[]};return db[_0x0e4e('0x3f')]['findOne']({'where':{'id':_0x83d830[_0x0e4e('0x49')]['id']}})[_0x0e4e('0x16')](handleEntityNotFound(_0x4b0904,null))[_0x0e4e('0x16')](function(_0xfe7c54){if(_0xfe7c54){_0x5b27f7[_0x0e4e('0x3d')]=_['keys'](db['ChatMessage'][_0x0e4e('0x33')]);_0x5b27f7['query']=_[_0x0e4e('0x3e')](_0x83d830['query']);_0x5b27f7[_0x0e4e('0x40')]=_['intersection'](_0x5b27f7[_0x0e4e('0x3d')],_0x5b27f7[_0x0e4e('0x39')]);_0x326250[_0x0e4e('0x43')]=_[_0x0e4e('0x41')](_0x5b27f7[_0x0e4e('0x3d')],qs[_0x0e4e('0x42')](_0x83d830[_0x0e4e('0x39')][_0x0e4e('0x42')]));_0x326250['attributes']=_0x326250[_0x0e4e('0x43')][_0x0e4e('0x82')]?_0x326250[_0x0e4e('0x43')]:_0x5b27f7['model'];if(!_0x83d830[_0x0e4e('0x39')]['hasOwnProperty']('nolimit')){_0x326250[_0x0e4e('0x26')]=qs['limit'](_0x83d830['query']['limit']);_0x326250[_0x0e4e('0x23')]=qs[_0x0e4e('0x23')](_0x83d830[_0x0e4e('0x39')][_0x0e4e('0x23')]);}_0x326250[_0x0e4e('0x9f')]=qs[_0x0e4e('0xa0')](_0x83d830['query'][_0x0e4e('0xa0')]);_0x326250[_0x0e4e('0xa1')]=qs['filters'](_[_0x0e4e('0xa2')](_0x83d830[_0x0e4e('0x39')],_0x5b27f7['filters']));_0x326250[_0x0e4e('0xa1')][_0x0e4e('0xa3')]=_0xfe7c54['id'];if(_0x83d830[_0x0e4e('0x39')][_0x0e4e('0xaa')]){_0x326250[_0x0e4e('0xa1')]=_['merge'](_0x326250[_0x0e4e('0xa1')],{'$or':_[_0x0e4e('0xa4')](_0x326250[_0x0e4e('0x43')],function(_0x36949b){var _0x3221a7={};_0x3221a7[_0x36949b]={'$like':'%'+_0x83d830[_0x0e4e('0x39')]['filter']+'%'};return _0x3221a7;})});}_0x326250[_0x0e4e('0xa1')][_0x0e4e('0x90')]=![];if(_0x83d830[_0x0e4e('0x39')]['id']){_0x326250[_0x0e4e('0xa1')]['id']={'$gt':_0x83d830[_0x0e4e('0x39')]['id']};}_0x326250=_['merge']({},_0x326250,_0x83d830[_0x0e4e('0x46')]);return db[_0x0e4e('0x7e')][_0x0e4e('0x25')]({'where':_0x326250[_0x0e4e('0xa1')]})[_0x0e4e('0x16')](function(_0x585239){_0x4d9338[_0x0e4e('0x25')]=_0x585239;_0x326250['include']=[];if(_0x83d830[_0x0e4e('0x39')][_0x0e4e('0xab')]){_0x326250[_0x0e4e('0x45')]['push']({'model':db[_0x0e4e('0x80')],'as':_0x0e4e('0x80'),'attributes':['id',_0x0e4e('0x52'),_0x0e4e('0x8a')]});}if(_0x83d830[_0x0e4e('0x39')][_0x0e4e('0x44')]){_0x326250[_0x0e4e('0x45')]=[{'all':!![]}];}return db[_0x0e4e('0x7e')][_0x0e4e('0x37')](_0x326250);})[_0x0e4e('0x16')](function(_0x1f9e84){_0x4d9338['rows']=_0x1f9e84;return _0x4d9338;});}})[_0x0e4e('0x16')](respondWithFilteredResult(_0x4b0904,_0x326250))[_0x0e4e('0x3b')](handleError(_0x4b0904,null));};exports[_0x0e4e('0xac')]=function(_0xbd90f4,_0x46bbfd){return db[_0x0e4e('0x3f')][_0x0e4e('0x47')]({'where':{'id':_0xbd90f4[_0x0e4e('0x49')]['id']}})['then'](handleEntityNotFound(_0x46bbfd,null))[_0x0e4e('0x16')](function(_0x461772){if(_0x461772){return _0x461772['setTags'](_0xbd90f4[_0x0e4e('0x2e')]['ids'],_['omit'](_0xbd90f4[_0x0e4e('0x2e')],['ids','id'])||{})[_0x0e4e('0xad')](function(){return db[_0x0e4e('0xae')][_0x0e4e('0x37')]({'attributes':['id',_0x0e4e('0x2b'),_0x0e4e('0xaf')],'where':{'id':_0xbd90f4[_0x0e4e('0x2e')][_0x0e4e('0x9b')]}});})[_0x0e4e('0x16')](function(_0x451b60){socket[_0x0e4e('0xb0')]('chatInteractionTags:save',{'id':Number(_0xbd90f4['params']['id']),'tags':_0x451b60||[]});return{'id':Number(_0xbd90f4['params']['id']),'tags':_0x451b60||[]};});}})[_0x0e4e('0x16')](respondWithResult(_0x46bbfd,null))['catch'](handleError(_0x46bbfd,null));};exports[_0x0e4e('0xb1')]=function(_0x10ef03,_0x223ab4){return db[_0x0e4e('0x3f')][_0x0e4e('0x47')]({'where':{'id':_0x10ef03[_0x0e4e('0x49')]['id']}})['then'](handleEntityNotFound(_0x223ab4,null))[_0x0e4e('0x16')](function(_0x5212c2){if(_0x5212c2){return _0x5212c2[_0x0e4e('0xb1')](_0x10ef03[_0x0e4e('0x39')][_0x0e4e('0x9b')]);}})[_0x0e4e('0x16')](respondWithStatusCode(_0x223ab4,null))[_0x0e4e('0x3b')](handleError(_0x223ab4,null));};exports[_0x0e4e('0x78')]=function(_0x5405c8,_0x2fe9bc){var _0xc5f96d=moment()[_0x0e4e('0xb2')]()['toString']();var _0x148175=path[_0x0e4e('0x74')](config['root'],_0x0e4e('0xb3'),_0x0e4e('0xb4'),_0x0e4e('0xb5'));var _0x154747=path[_0x0e4e('0x74')](config[_0x0e4e('0x75')],'server','files',_0x0e4e('0xb6'));var _0x1b1ed6=path[_0x0e4e('0x74')](_0x148175,_0xc5f96d);var _0x323a48=util[_0x0e4e('0x7b')](_0x0e4e('0xb7'),_0x5405c8['params']['id'],_0xc5f96d);var _0x93654f=path['join'](_0x148175,_0x323a48);var _0x315f94=[];_0x315f94[_0x0e4e('0xb8')]({'model':db['User'],'as':_0x0e4e('0x80'),'attributes':['id','fullname'],'raw':!![]});_0x315f94[_0x0e4e('0xb8')]({'model':db['CmContact'],'as':'Contact','attributes':['id',_0x0e4e('0xb9'),'lastName'],'raw':!![]});if(_0x5405c8[_0x0e4e('0x39')][_0x0e4e('0xb6')]){_0x315f94['push']({'model':db[_0x0e4e('0xba')],'as':_0x0e4e('0xba'),'raw':!![]});}var _0xb4c5f6=[{'model':db[_0x0e4e('0x7e')],'as':_0x0e4e('0x7f'),'attributes':['id',_0x0e4e('0x2e'),_0x0e4e('0x8d'),'direction',_0x0e4e('0x90'),_0x0e4e('0xbb')],'include':_0x315f94}];_0xb4c5f6[_0x0e4e('0xb8')]({'model':db[_0x0e4e('0x4d')],'as':'Account','attributes':['id',_0x0e4e('0x2b')]});_0xb4c5f6[_0x0e4e('0xb8')]({'model':db[_0x0e4e('0x80')],'as':_0x0e4e('0xbc'),'attributes':['id',_0x0e4e('0x52')]});return db['ChatInteraction'][_0x0e4e('0x47')]({'where':{'id':_0x5405c8[_0x0e4e('0x49')]['id']},'include':_0xb4c5f6})['then'](handleEntityNotFound(_0x2fe9bc,null))[_0x0e4e('0x16')](function(_0x2d9f8c){if(_0x2d9f8c){var _0x1e3550=_0x2d9f8c[_0x0e4e('0xbd')]({'plain':!![]});fs[_0x0e4e('0xbe')](_0x1b1ed6);var _0x103c90={'channel':'Chat','account':_0x1e3550[_0x0e4e('0xbf')][_0x0e4e('0x2b')],'agent':_0x1e3550['Owner']?_0x1e3550[_0x0e4e('0xbc')][_0x0e4e('0x52')]:_0x0e4e('0xc0'),'createdAt':moment(_0x1e3550['createdAt'])[_0x0e4e('0x7b')](_0x0e4e('0xa7'))[_0x0e4e('0xc1')](),'closedAt':_0x1e3550['closed']?moment(_0x1e3550[_0x0e4e('0xc2')])[_0x0e4e('0x7b')]('YYYY-MM-DD\x20HH:mm:ss')['toString']():'','disposition':_0x1e3550[_0x0e4e('0xc3')],'chatInfo':{'browser':_0x1e3550[_0x0e4e('0xc4')],'os':_0x1e3550[_0x0e4e('0xc5')],'referer':_0x1e3550['referer'],'customerIp':_0x1e3550[_0x0e4e('0xc6')],'customerPort':_0x1e3550[_0x0e4e('0xc7')]?_0x1e3550['customerPort']:'N.A.'},'messages':_(_0x1e3550['Messages'])['tail']()[_0x0e4e('0xaa')]({'secret':![]})[_0x0e4e('0xa4')](function(_0x1fd243){if(_0x1fd243[_0x0e4e('0xba')]){var _0x5ba5de=path[_0x0e4e('0x74')](_0x154747,_0x1fd243[_0x0e4e('0xba')][_0x0e4e('0xc8')]);if(fs[_0x0e4e('0xc9')](_0x5ba5de)){fs[_0x0e4e('0xca')](_0x5ba5de)[_0x0e4e('0xcb')](fs[_0x0e4e('0xcc')](path['join'](_0x1b1ed6,_0x1fd243['Attachment'][_0x0e4e('0xc8')])));}}return{'date':moment(_0x1fd243['createdAt'])[_0x0e4e('0x7b')](_0x0e4e('0xa7'))[_0x0e4e('0xc1')](),'sender':_0x1fd243[_0x0e4e('0x8f')]===_0x0e4e('0x61')?_0x1fd243[_0x0e4e('0x80')]?_0x1fd243[_0x0e4e('0x80')][_0x0e4e('0x52')]:_0x0e4e('0x85'):_0x1fd243[_0x0e4e('0x64')]['firstName']+(_0x1fd243[_0x0e4e('0x64')][_0x0e4e('0xcd')]?'\x20'+_0x1fd243[_0x0e4e('0x64')][_0x0e4e('0xcd')]:''),'body':_0x1fd243[_0x0e4e('0xba')]?_0x1fd243[_0x0e4e('0xba')][_0x0e4e('0xc8')]:_0x1fd243[_0x0e4e('0x2e')],'direction':_0x1fd243[_0x0e4e('0x8f')]===_0x0e4e('0x61')?'A':'C','secret':_0x1fd243['secret'],'read':_0x1fd243[_0x0e4e('0xbb')],'attachment':_0x1fd243['Attachment']};})[_0x0e4e('0xce')]()};return ejs[_0x0e4e('0xcf')](path[_0x0e4e('0x74')](config[_0x0e4e('0x75')],_0x0e4e('0xb3'),_0x0e4e('0xd0'),_0x0e4e('0xd1')),{'interaction':_0x103c90})['then'](function(_0x2b4274){var _0x4e5ee7=path[_0x0e4e('0x74')](_0x1b1ed6,_0x0e4e('0xd2')+_0x1e3550['id']+'-'+_0xc5f96d+_0x0e4e('0xd3'));var _0x53e156={'path':_0x4e5ee7,'channel':_0x0e4e('0xd4'),'interactionId':_0x1e3550['id']};return pdf[_0x0e4e('0xd5')](_0x2b4274,_0x53e156);})[_0x0e4e('0x16')](function(){return new Promise(function(_0x1f979f,_0x1a38a8){zipdir(_0x1b1ed6,{'saveTo':_0x93654f},function(_0x56720b,_0x5c109d){if(_0x56720b)return _0x1a38a8(_0x56720b);return _0x1f979f(_0x5c109d);});})['then'](function(){return new BPromise(function(_0x4e833a,_0x3db42d){rimraf(_0x1b1ed6,function(_0x507c40){if(_0x507c40)_0x3db42d(_0x507c40);return _0x4e833a();});});})['then'](function(){return _0x2fe9bc['download'](_0x93654f,_0x323a48,function(_0x4944d0){if(_0x4944d0){logger[_0x0e4e('0x1c')]('err',_0x4944d0);}else{fs[_0x0e4e('0xd6')](_0x93654f);}});});});}else{return _0x2fe9bc['sendStatus'](0xc8);}})[_0x0e4e('0x3b')](handleError(_0x2fe9bc,null));};