Built motion from commit eddce310.|2.6.12
[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 _0xc7d6=['http','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','update','stack','name','render','merge','body','contact','agent','interaction','account','index','map','ChatInteraction','rawAttributes','fieldName','type','getOptions','findAll','chat','user','show','params','keys','query','model','attributes','intersection','fields','length','includeAll','include','find','create','destroy','describe','createVidaooSession','findOne','ChatWebsite','ChatWebsiteId','vidaooEscalation','vidaooTopic','vidaooNote','vidaooApiKey','fullname','email','POST','isNull','vidaooMetadata','parse','Sequelize','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','Error\x20in\x20Vidaoo\x20configuration','join_url','out','customUpdate','CmContact','Contact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','UserId','closed','AbandonInteraction','attachmentUpload','file','basename','filename','Attachment','attachmentDownload','Unauthorized','attachId','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','download','mailTranscript','format','transcript-%s.txt','Messages','User','ContactId','%s%d','agentAlias','customer','Visitor','agentIdentifier','website_alias','agent_alias','alias','System','createdAt','MM/DD/YYYY\x20HH:mm:ss','direction','secret','appendFileSync','MailAccount','Smtp','CloudProvider','SendMail','\x22%s\x22\x20<%s>','Mail\x20Transcript','addMessage','ChatMessage','ids','omit','getMessages','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','$gte','split','YYYY-MM-DD\x20HH:mm:ss','options','rows','includeAgent','push','addTags','setTags','spread','Tag','color','removeTags','unix','toString','files','tmp','server','firstName','lastName','attachments','read','Owner','mkdirSync','Chat','Account','N.A.','closedAt','disposition','referer','customerPort','tail','pipe','createWriteStream','renderFile','views','downloadInteraction.ejs','transcript-','err','unlinkSync','rimraf','request-promise','moment','bluebird','mustache','path','ejs','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','../../components/export/pdf','../../config/logger','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','register','jayson/promise','client'];(function(_0x88c32c,_0x58bd6e){var _0x5d5ede=function(_0x32504e){while(--_0x32504e){_0x88c32c['push'](_0x88c32c['shift']());}};_0x5d5ede(++_0x58bd6e);}(_0xc7d6,0xb2));var _0x6c7d=function(_0x58ed06,_0x5211ee){_0x58ed06=_0x58ed06-0x0;var _0x5a4847=_0xc7d6[_0x58ed06];return _0x5a4847;};'use strict';var rimraf=require(_0x6c7d('0x0'));var zipdir=require('zip-dir');var rp=require(_0x6c7d('0x1'));var moment=require(_0x6c7d('0x2'));var BPromise=require(_0x6c7d('0x3'));var Mustache=require(_0x6c7d('0x4'));var util=require('util');var path=require(_0x6c7d('0x5'));var ejs=require(_0x6c7d('0x6'));var fs=require('fs');var _=require(_0x6c7d('0x7'));var Redis=require(_0x6c7d('0x8'));var interaction=require(_0x6c7d('0x9'));var qs=require(_0x6c7d('0xa'));var pdf=require(_0x6c7d('0xb'));var logger=require(_0x6c7d('0xc'))('api');var config=require(_0x6c7d('0xd'));var db=require(_0x6c7d('0xe'))['db'];config[_0x6c7d('0xf')]=_['defaults'](config[_0x6c7d('0xf')],{'host':_0x6c7d('0x10'),'port':0x18eb});var socket=require(_0x6c7d('0x11'))(new Redis(config[_0x6c7d('0xf')]));require('./chatInteraction.socket')[_0x6c7d('0x12')](socket);var jayson=require(_0x6c7d('0x13'));var client=jayson[_0x6c7d('0x14')]['http']({'port':0x232b});var client9004=jayson[_0x6c7d('0x14')][_0x6c7d('0x15')]({'port':0x232c});function respondWithRpcPromise(_0x4b8fcc,_0x50f2ba,_0x162ac5,_0x4bc5f6){return new BPromise(function(_0x1ade8f,_0x1eab3e){var _0x35f57c=_0x4bc5f6||client;return _0x35f57c['request'](_0x4b8fcc,_0x162ac5)[_0x6c7d('0x16')](function(_0xf536a6){logger[_0x6c7d('0x17')](_0x6c7d('0x18'),_0x50f2ba,_0x6c7d('0x19'));logger[_0x6c7d('0x1a')]('ChatInteraction,\x20%s,\x20%s,\x20%s',_0x50f2ba,_0x6c7d('0x19'),JSON[_0x6c7d('0x1b')](_0xf536a6));if(_0xf536a6[_0x6c7d('0x1c')]){if(_0xf536a6[_0x6c7d('0x1c')][_0x6c7d('0x1d')]===0x1f4){logger[_0x6c7d('0x1c')](_0x6c7d('0x18'),_0x50f2ba,_0xf536a6[_0x6c7d('0x1c')][_0x6c7d('0x1e')]);return _0x1eab3e(_0xf536a6[_0x6c7d('0x1c')][_0x6c7d('0x1e')]);}logger[_0x6c7d('0x1c')](_0x6c7d('0x18'),_0x50f2ba,_0xf536a6[_0x6c7d('0x1c')][_0x6c7d('0x1e')]);return _0x1ade8f(_0xf536a6['error'][_0x6c7d('0x1e')]);}else{logger[_0x6c7d('0x17')]('ChatInteraction,\x20%s,\x20%s',_0x50f2ba,_0x6c7d('0x19'));_0x1ade8f(_0xf536a6[_0x6c7d('0x1f')]['message']);}})[_0x6c7d('0x20')](function(_0x59a6dd){logger[_0x6c7d('0x1c')](_0x6c7d('0x18'),_0x50f2ba,_0x59a6dd);_0x1eab3e(_0x59a6dd);});});}function respondWithStatusCode(_0x20ed49,_0x160abd){_0x160abd=_0x160abd||0xcc;return function(_0x5a773b){if(_0x5a773b){return _0x20ed49[_0x6c7d('0x21')](_0x160abd);}return _0x20ed49[_0x6c7d('0x22')](_0x160abd)[_0x6c7d('0x23')]();};}function respondWithResult(_0xe6f51e,_0x4df99e){_0x4df99e=_0x4df99e||0xc8;return function(_0x219663){if(_0x219663){return _0xe6f51e[_0x6c7d('0x22')](_0x4df99e)[_0x6c7d('0x24')](_0x219663);}};}function respondWithFilteredResult(_0x2b3c59,_0x82fc05){return function(_0x926fd3){if(_0x926fd3){var _0x3882a0=typeof _0x82fc05[_0x6c7d('0x25')]===_0x6c7d('0x26')&&typeof _0x82fc05[_0x6c7d('0x27')]==='undefined';var _0x9edee=_0x926fd3['count'];var _0x374977=_0x3882a0?0x0:_0x82fc05[_0x6c7d('0x25')];var _0x7620dd=_0x3882a0?_0x926fd3[_0x6c7d('0x28')]:_0x82fc05[_0x6c7d('0x25')]+_0x82fc05[_0x6c7d('0x27')];var _0x2ec108;if(_0x7620dd>=_0x9edee){_0x7620dd=_0x9edee;_0x2ec108=0xc8;}else{_0x2ec108=0xce;}_0x2b3c59[_0x6c7d('0x22')](_0x2ec108);return _0x2b3c59['set'](_0x6c7d('0x29'),_0x374977+'-'+_0x7620dd+'/'+_0x9edee)[_0x6c7d('0x24')](_0x926fd3);}return null;};}function saveUpdates(_0x2188dd){return function(_0x3cad25){if(_0x3cad25){return _0x3cad25[_0x6c7d('0x2a')](_0x2188dd)[_0x6c7d('0x16')](function(_0x412ec8){return _0x412ec8;});}return null;};}function removeEntity(_0x520607){return function(_0xa55e2c){if(_0xa55e2c){return _0xa55e2c['destroy']()[_0x6c7d('0x16')](function(){_0x520607['status'](0xcc)[_0x6c7d('0x23')]();});}};}function handleEntityNotFound(_0x924202){return function(_0x13e105){if(!_0x13e105){_0x924202[_0x6c7d('0x21')](0x194);}return _0x13e105;};}function handleError(_0x3ad548,_0x4907f2){_0x4907f2=_0x4907f2||0x1f4;return function(_0x551139){logger[_0x6c7d('0x1c')](_0x551139[_0x6c7d('0x2b')]);if(_0x551139[_0x6c7d('0x2c')]){delete _0x551139[_0x6c7d('0x2c')];}_0x3ad548[_0x6c7d('0x22')](_0x4907f2)['send'](_0x551139);};}function getMustacheRender(_0x4ea9e4,_0x34bb58){return Mustache[_0x6c7d('0x2d')](_0x4ea9e4,_[_0x6c7d('0x2e')](_0x34bb58[_0x6c7d('0x2f')],{'contact':_0x34bb58[_0x6c7d('0x30')],'message':_0x34bb58[_0x6c7d('0x1e')],'agent':_0x34bb58[_0x6c7d('0x31')],'interaction':_0x34bb58[_0x6c7d('0x32')],'account':_0x34bb58[_0x6c7d('0x33')]}))||'';}exports[_0x6c7d('0x34')]=function(_0x4746cd,_0x4fa762){var _0xe48ed0={};var _0x2337f7=_[_0x6c7d('0x35')](db[_0x6c7d('0x36')][_0x6c7d('0x37')],function(_0x1d09b2){return{'name':_0x1d09b2[_0x6c7d('0x38')],'type':_0x1d09b2[_0x6c7d('0x39')]['key']};});_0xe48ed0=qs[_0x6c7d('0x3a')](_0x2337f7,_0x4746cd);return interaction[_0x6c7d('0x3b')](_0x6c7d('0x3c'),_0x4746cd['query'],_0x4746cd[_0x6c7d('0x3d')],_0xe48ed0,_0x2337f7)[_0x6c7d('0x16')](respondWithFilteredResult(_0x4fa762,_0xe48ed0))[_0x6c7d('0x20')](handleError(_0x4fa762,null));};exports[_0x6c7d('0x3e')]=function(_0x6f4bf6,_0x16fbf9){var _0x575669={'raw':![],'where':{'id':_0x6f4bf6[_0x6c7d('0x3f')]['id']}},_0x1fbf26={};_0x1fbf26['model']=_[_0x6c7d('0x40')](db[_0x6c7d('0x36')][_0x6c7d('0x37')]);_0x1fbf26[_0x6c7d('0x41')]=_['keys'](_0x6f4bf6[_0x6c7d('0x41')]);_0x1fbf26['filters']=_['intersection'](_0x1fbf26[_0x6c7d('0x42')],_0x1fbf26[_0x6c7d('0x41')]);_0x575669[_0x6c7d('0x43')]=_[_0x6c7d('0x44')](_0x1fbf26[_0x6c7d('0x42')],qs[_0x6c7d('0x45')](_0x6f4bf6[_0x6c7d('0x41')][_0x6c7d('0x45')]));_0x575669[_0x6c7d('0x43')]=_0x575669['attributes'][_0x6c7d('0x46')]?_0x575669[_0x6c7d('0x43')]:_0x1fbf26[_0x6c7d('0x42')];if(_0x6f4bf6[_0x6c7d('0x41')][_0x6c7d('0x47')]){_0x575669[_0x6c7d('0x48')]=[{'all':!![]}];}_0x575669=_['merge']({},_0x575669,_0x6f4bf6['options']);return db[_0x6c7d('0x36')][_0x6c7d('0x49')](_0x575669)['then'](handleEntityNotFound(_0x16fbf9,null))[_0x6c7d('0x16')](respondWithResult(_0x16fbf9,null))['catch'](handleError(_0x16fbf9,null));};exports[_0x6c7d('0x4a')]=function(_0x3ddcf9,_0x1e263b){return db[_0x6c7d('0x36')][_0x6c7d('0x4a')](_0x3ddcf9[_0x6c7d('0x2f')],{})[_0x6c7d('0x16')](respondWithResult(_0x1e263b,0xc9))[_0x6c7d('0x20')](handleError(_0x1e263b,null));};exports['update']=function(_0x51c506,_0x15977c){if(_0x51c506[_0x6c7d('0x2f')]['id']){delete _0x51c506[_0x6c7d('0x2f')]['id'];}return db['ChatInteraction']['find']({'where':{'id':_0x51c506['params']['id']}})['then'](handleEntityNotFound(_0x15977c,null))[_0x6c7d('0x16')](saveUpdates(_0x51c506[_0x6c7d('0x2f')],null))[_0x6c7d('0x16')](respondWithResult(_0x15977c,null))[_0x6c7d('0x20')](handleError(_0x15977c,null));};exports[_0x6c7d('0x4b')]=function(_0x20264c,_0x1ad3f3){return db[_0x6c7d('0x36')]['find']({'where':{'id':_0x20264c[_0x6c7d('0x3f')]['id']}})[_0x6c7d('0x16')](handleEntityNotFound(_0x1ad3f3,null))['then'](removeEntity(_0x1ad3f3,null))[_0x6c7d('0x20')](handleError(_0x1ad3f3,null));};exports[_0x6c7d('0x4c')]=function(_0x57bf82,_0x373db4){return db[_0x6c7d('0x36')][_0x6c7d('0x4c')]()['then'](respondWithResult(_0x373db4,null))['catch'](handleError(_0x373db4,null));};exports[_0x6c7d('0x4d')]=function(_0x254481,_0xad49cd){var _0x2260b6=_0x254481[_0x6c7d('0x3f')]['id'];var _0x3454dc;var _0x504da7;var _0x2ac95f;return db['ChatInteraction'][_0x6c7d('0x4e')]({'where':{'id':_0x2260b6}})[_0x6c7d('0x16')](function(_0x25053e){_0x3454dc=_0x25053e;return db[_0x6c7d('0x4f')][_0x6c7d('0x4e')]({'where':{'id':_0x25053e[_0x6c7d('0x50')]},'attributes':['id','vidaooApiKey',_0x6c7d('0x51'),_0x6c7d('0x52'),_0x6c7d('0x53'),'vidaooMetadata'],'raw':!![]});})[_0x6c7d('0x16')](function(_0x56d4bf){if(_0x56d4bf&&_0x56d4bf[_0x6c7d('0x54')]&&_0x56d4bf[_0x6c7d('0x51')]){_0x504da7=_0x56d4bf;var _0x25377e={'interaction':{'id':_0x2260b6},'agent':{'id':_0x254481[_0x6c7d('0x3d')]['id'],'name':_0x254481[_0x6c7d('0x3d')][_0x6c7d('0x2c')],'fullname':_0x254481[_0x6c7d('0x3d')][_0x6c7d('0x55')],'email':_0x254481[_0x6c7d('0x3d')][_0x6c7d('0x56')]},'contact':_0x254481['body'][_0x6c7d('0x30')],'account':_0x254481['body'][_0x6c7d('0x33')]};var _0x42b763={'rejectUnauthorized':![],'method':_0x6c7d('0x57'),'url':'https://api-vidaoo.xcally.com/api/v1/meetings','headers':{'X-APIKEY':_0x56d4bf[_0x6c7d('0x54')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x254481[_0x6c7d('0x3d')][_0x6c7d('0x56')]],'buttons':null,'topic':_0x504da7[_0x6c7d('0x52')],'note':_['isNull'](_0x504da7['vidaooNote'])?null:getMustacheRender(_0x504da7['vidaooNote'],_0x25377e),'metadata':null},'redirect':'follow','json':!![]};try{if(!_[_0x6c7d('0x58')](_0x504da7[_0x6c7d('0x59')])){var _0x177335=getMustacheRender(_0x504da7[_0x6c7d('0x59')],_0x25377e);var _0x47bf11=JSON[_0x6c7d('0x5a')](_0x177335);_0x42b763[_0x6c7d('0x2f')]['metadata']=_0x47bf11;}}catch(_0x46fa44){throw new db[(_0x6c7d('0x5b'))][(_0x6c7d('0x5c'))](_0x6c7d('0x5d'));}return rp(_0x42b763);}else{throw new db[(_0x6c7d('0x5b'))][(_0x6c7d('0x5c'))](_0x6c7d('0x5e'));}})[_0x6c7d('0x16')](function(_0x128563){_0x2ac95f=_0x128563;if(_0x2ac95f['id']){var _0x221854={'body':_0x2ac95f[_0x6c7d('0x5f')],'ChatWebsiteId':_0x504da7['id'],'ChatInteractionId':_0x3454dc['id'],'direction':_0x6c7d('0x60'),'UserId':_0x254481['user']['id']};return db['ChatMessage']['create'](_0x221854,{});}else{throw new db['Sequelize'][(_0x6c7d('0x5c'))]('Unable\x20to\x20create\x20Vidaoo\x20session');}})[_0x6c7d('0x16')](function(){return _0x3454dc['updateAttributes']({'vidaooSessionId':_0x2ac95f['id']});})[_0x6c7d('0x16')](respondWithResult(_0xad49cd,null))['catch'](handleError(_0xad49cd,null));};exports[_0x6c7d('0x61')]=function(_0x3d1723,_0xafedaf){if(_0x3d1723[_0x6c7d('0x2f')]['id']){delete _0x3d1723[_0x6c7d('0x2f')]['id'];}return db[_0x6c7d('0x36')][_0x6c7d('0x49')]({'where':{'id':_0x3d1723[_0x6c7d('0x3f')]['id']},'include':[{'model':db[_0x6c7d('0x62')],'as':_0x6c7d('0x63')}]})[_0x6c7d('0x16')](handleEntityNotFound(_0xafedaf,null))[_0x6c7d('0x16')](saveUpdates(_0x3d1723[_0x6c7d('0x2f')],null))[_0x6c7d('0x16')](respondWithResult(_0xafedaf,null))[_0x6c7d('0x20')](handleError(_0xafedaf,null));};exports[_0x6c7d('0x64')]=function(_0x4ff600,_0x34a3d3){if(_0x4ff600['body']['id']){delete _0x4ff600[_0x6c7d('0x2f')]['id'];}return db[_0x6c7d('0x36')]['find']({'where':{'id':_0x4ff600[_0x6c7d('0x3f')]['id']}})[_0x6c7d('0x16')](function(_0x1bfd5e){if(!_0x1bfd5e){logger[_0x6c7d('0x1c')](_0x6c7d('0x65'),_0x6c7d('0x64'),0x194,_0x6c7d('0x66'));_0x34a3d3['sendStatus'](0x194);}else{if(_0x1bfd5e[_0x6c7d('0x67')]){throw new db[(_0x6c7d('0x5b'))][(_0x6c7d('0x5c'))]('Interaction\x20already\x20assigned');}}return _0x1bfd5e;})['then'](function(_0x416311){if(_0x416311){return _0x416311['update']({'closed':_0x4ff600[_0x6c7d('0x2f')][_0x6c7d('0x68')],'disposition':_0x4ff600['body']['disposition']})['then'](function(_0x44c80a){return _0x44c80a;});}})[_0x6c7d('0x16')](function(){return respondWithRpcPromise(_0x6c7d('0x69'),_0x6c7d('0x64'),_0x4ff600['body'],client9004);})[_0x6c7d('0x16')](respondWithResult(_0x34a3d3,null))[_0x6c7d('0x20')](handleError(_0x34a3d3,null));};exports[_0x6c7d('0x6a')]=function(_0xfbc3eb,_0x572d48){_0xfbc3eb[_0x6c7d('0x2f')]['name']=_0xfbc3eb[_0x6c7d('0x6b')]['originalname'];_0xfbc3eb[_0x6c7d('0x2f')][_0x6c7d('0x6c')]=_0xfbc3eb[_0x6c7d('0x6b')][_0x6c7d('0x6d')];_0xfbc3eb[_0x6c7d('0x2f')][_0x6c7d('0x39')]=_0xfbc3eb[_0x6c7d('0x6b')]['mimetype'];return db[_0x6c7d('0x6e')]['create'](_0xfbc3eb['body'])[_0x6c7d('0x16')](respondWithResult(_0x572d48,0xc9))['catch'](handleError(_0x572d48,null));};exports[_0x6c7d('0x6f')]=function(_0x417b03,_0x6469d4){return db[_0x6c7d('0x36')][_0x6c7d('0x4e')]({'where':{'id':_0x417b03['params']['id']},'raw':!![]})['then'](handleEntityNotFound(_0x6469d4,null))[_0x6c7d('0x16')](function(_0x960ad9){if(_0x960ad9){if(_0x960ad9[_0x6c7d('0x68')]){return _0x6469d4['status'](0x193)[_0x6c7d('0x24')]({'status':0x193,'message':_0x6c7d('0x70')});}return db[_0x6c7d('0x6e')][_0x6c7d('0x4e')]({'where':{'id':_0x417b03[_0x6c7d('0x41')][_0x6c7d('0x71')]},'raw':!![]})[_0x6c7d('0x16')](handleEntityNotFound(_0x6469d4,null));}})[_0x6c7d('0x16')](function(_0x589c50){if(_0x589c50){var _0x476c2f=_0x589c50[_0x6c7d('0x72')]!==null;var _0x38291d=path[_0x6c7d('0x73')](config[_0x6c7d('0x74')],_0x6c7d('0x75'));if(_0x476c2f){_0x38291d=path[_0x6c7d('0x73')](_0x38291d,_0x6c7d('0x76'));}var _0xc5c87=path['join'](_0x38291d,_0x589c50['basename']);return _0x6469d4[_0x6c7d('0x77')](_0xc5c87);}})['catch'](handleError(_0x6469d4,null));};exports['close']=function(_0x2ad0da,_0x3ef974){var _0x493bba=null;var _0xb77029=null;var _0x2f1136=null;if(_0x2ad0da[_0x6c7d('0x2f')]['id']){delete _0x2ad0da[_0x6c7d('0x2f')]['id'];}if(_0x2ad0da['body'][_0x6c7d('0x78')]){_0x2f1136=path[_0x6c7d('0x73')](config[_0x6c7d('0x74')],'server/files/chat/upload/',util[_0x6c7d('0x79')](_0x6c7d('0x7a'),Date['now']()));_0x2ad0da[_0x6c7d('0x2f')]['pathTranscript']=_0x2f1136;}return db[_0x6c7d('0x36')][_0x6c7d('0x49')]({'where':{'id':_0x2ad0da['params']['id']},'include':[{'model':db['ChatMessage'],'as':_0x6c7d('0x7b'),'include':[{'model':db[_0x6c7d('0x7c')],'as':'User'}]}]})['then'](handleEntityNotFound(_0x3ef974,null))[_0x6c7d('0x16')](saveUpdates(_0x2ad0da['body'],null))[_0x6c7d('0x16')](function(_0x4398fe){if(_0x4398fe){_0x493bba=_0x4398fe;return db[_0x6c7d('0x4f')]['find']({'where':{'id':_0x493bba[_0x6c7d('0x50')]}});}})[_0x6c7d('0x16')](function(_0x251826){if(_0x251826){_0xb77029=_0x251826;return db[_0x6c7d('0x62')][_0x6c7d('0x49')]({'where':{'id':_0x493bba[_0x6c7d('0x7d')]}});}})['then'](function(_0x2e0ff1){if(_0x2e0ff1){if(_0x2f1136){var _0x4baf51=null;for(var _0x9baf88=0x1;_0x9baf88<_0x493bba[_0x6c7d('0x7b')][_0x6c7d('0x46')];++_0x9baf88){_0x4baf51=_0x493bba[_0x6c7d('0x7b')][_0x9baf88];var _0x3fc977=_0x4baf51['UserId']?util[_0x6c7d('0x79')](_0x6c7d('0x7e'),_0xb77029[_0x6c7d('0x7f')],_0x4baf51[_0x6c7d('0x67')]):'System';var _0x3a2afc=_0x2ad0da[_0x6c7d('0x2f')][_0x6c7d('0x80')]||util[_0x6c7d('0x79')](_0x6c7d('0x7e'),_0x6c7d('0x81'),_0x4baf51[_0x6c7d('0x7d')]);switch(_0xb77029[_0x6c7d('0x82')]){case _0x6c7d('0x83'):_0x3fc977=_0x4baf51[_0x6c7d('0x67')]?util[_0x6c7d('0x79')]('%s%d',_0xb77029[_0x6c7d('0x7f')],_0x4baf51[_0x6c7d('0x67')]):'System';break;case _0x6c7d('0x84'):_0x3fc977=_0x4baf51[_0x6c7d('0x67')]?_0x4baf51['User'][_0x6c7d('0x85')]||_0x4baf51[_0x6c7d('0x7c')][_0x6c7d('0x55')]:_0x6c7d('0x86');break;case'agent_fullname':_0x3fc977=_0x4baf51[_0x6c7d('0x67')]?_0x4baf51[_0x6c7d('0x7c')]['fullname']:_0x6c7d('0x86');break;default:_0x3fc977=_0x4baf51[_0x6c7d('0x67')]?util[_0x6c7d('0x79')](_0x6c7d('0x7e'),_0xb77029['agentAlias'],_0x4baf51[_0x6c7d('0x67')]):_0x6c7d('0x86');}var _0x2b60f6=util['format']('[%s]\x20%s:\x20%s\x0a',moment(_0x4baf51[_0x6c7d('0x87')])['format'](_0x6c7d('0x88')),_0x4baf51[_0x6c7d('0x89')]==='in'?_0x3a2afc:_0x3fc977,_0x4baf51[_0x6c7d('0x2f')]);if(!_0x4baf51[_0x6c7d('0x8a')]){fs[_0x6c7d('0x8b')](_0x2f1136,_0x2b60f6);}}return db[_0x6c7d('0x8c')][_0x6c7d('0x4e')]({'where':{'service':!![]},'include':[{'model':db['MailServerOut'],'as':_0x6c7d('0x8d'),'raw':!![],'include':[{'model':db[_0x6c7d('0x8e')],'as':_0x6c7d('0x8e'),'raw':!![]}]}]});}}})[_0x6c7d('0x16')](function(_0x1d4804){if(!_0x1d4804||!_0x1d4804['Smtp']||!_0x2ad0da[_0x6c7d('0x2f')])return _0x493bba;var _0x1e46a8=_0x1d4804['getSmtpOptions']();return respondWithRpcPromise(_0x6c7d('0x8f'),'sendMail',{'account':_0x1e46a8,'message':{'from':util[_0x6c7d('0x79')](_0x6c7d('0x90'),_0x1d4804[_0x6c7d('0x2c')],_0x1d4804[_0x6c7d('0x56')]||_0x1d4804[_0x6c7d('0x8d')][_0x6c7d('0x3d')]),'to':_0x2ad0da[_0x6c7d('0x2f')][_0x6c7d('0x78')],'subject':_0x6c7d('0x91'),'text':util[_0x6c7d('0x79')]('Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a',_0x2ad0da['body'][_0x6c7d('0x78')]),'attachments':[{'path':_0x2f1136}]}})['then'](function(){return _0x493bba;})[_0x6c7d('0x20')](function(_0x22b83e){logger[_0x6c7d('0x1c')](_0x22b83e);});})[_0x6c7d('0x16')](respondWithStatusCode(_0x3ef974,0xc8))[_0x6c7d('0x20')](handleError(_0x3ef974,null));};exports[_0x6c7d('0x92')]=function(_0x501fe7,_0x340bc0){return db[_0x6c7d('0x93')][_0x6c7d('0x49')]({'where':{'id':_0x501fe7[_0x6c7d('0x3f')]['id']}})[_0x6c7d('0x16')](handleEntityNotFound(_0x340bc0,null))[_0x6c7d('0x16')](function(_0x15137c){if(_0x15137c){return _0x15137c[_0x6c7d('0x92')](_0x501fe7[_0x6c7d('0x2f')][_0x6c7d('0x94')],_[_0x6c7d('0x95')](_0x501fe7['body'],['ids','id'])||{});}})[_0x6c7d('0x16')](respondWithResult(_0x340bc0,null))[_0x6c7d('0x20')](handleError(_0x340bc0,null));};exports[_0x6c7d('0x96')]=function(_0x12c9e6,_0x1c10af){var _0x326255={'raw':![],'where':{}};var _0x4d8315={};var _0xd62a40={'count':0x0,'rows':[]};return db[_0x6c7d('0x36')][_0x6c7d('0x4e')]({'where':{'id':_0x12c9e6['params']['id']}})[_0x6c7d('0x16')](handleEntityNotFound(_0x1c10af,null))['then'](function(_0x324513){if(_0x324513){_0x4d8315[_0x6c7d('0x42')]=_['keys'](db[_0x6c7d('0x93')][_0x6c7d('0x37')]);_0x4d8315[_0x6c7d('0x41')]=_[_0x6c7d('0x40')](_0x12c9e6[_0x6c7d('0x41')]);_0x4d8315['filters']=_['intersection'](_0x4d8315[_0x6c7d('0x42')],_0x4d8315[_0x6c7d('0x41')]);_0x326255['attributes']=_['intersection'](_0x4d8315[_0x6c7d('0x42')],qs[_0x6c7d('0x45')](_0x12c9e6['query'][_0x6c7d('0x45')]));_0x326255[_0x6c7d('0x43')]=_0x326255[_0x6c7d('0x43')][_0x6c7d('0x46')]?_0x326255['attributes']:_0x4d8315[_0x6c7d('0x42')];if(!_0x12c9e6[_0x6c7d('0x41')][_0x6c7d('0x97')](_0x6c7d('0x98'))){_0x326255['limit']=qs[_0x6c7d('0x27')](_0x12c9e6['query'][_0x6c7d('0x27')]);_0x326255[_0x6c7d('0x25')]=qs[_0x6c7d('0x25')](_0x12c9e6[_0x6c7d('0x41')][_0x6c7d('0x25')]);}_0x326255[_0x6c7d('0x99')]=qs[_0x6c7d('0x9a')](_0x12c9e6['query'][_0x6c7d('0x9a')]);_0x326255[_0x6c7d('0x9b')]=qs[_0x6c7d('0x9c')](_[_0x6c7d('0x9d')](_0x12c9e6[_0x6c7d('0x41')],_0x4d8315['filters']));_0x326255['where']['ChatInteractionId']=_0x324513['id'];if(_0x12c9e6[_0x6c7d('0x41')][_0x6c7d('0x9e')]){_0x326255[_0x6c7d('0x9b')]=_[_0x6c7d('0x2e')](_0x326255[_0x6c7d('0x9b')],{'$or':_[_0x6c7d('0x35')](_0x326255['attributes'],function(_0x5a1aa5){var _0x129a83={};_0x129a83[_0x5a1aa5]={'$like':'%'+_0x12c9e6[_0x6c7d('0x41')]['filter']+'%'};return _0x129a83;})});}if(_0x12c9e6[_0x6c7d('0x41')][_0x6c7d('0x9f')]){var _0x225188=_0x12c9e6[_0x6c7d('0x41')][_0x6c7d('0x9f')][_0x6c7d('0xa0')](',');var _0x202f99={};_0x202f99[_0x225188[0x0]]={'$gte':moment(_0x225188[0x1])[_0x6c7d('0x79')](_0x6c7d('0xa1'))};_0x326255[_0x6c7d('0x9b')]=_[_0x6c7d('0x2e')](_0x326255[_0x6c7d('0x9b')],_0x202f99);}_0x326255=_[_0x6c7d('0x2e')]({},_0x326255,_0x12c9e6[_0x6c7d('0xa2')]);return db[_0x6c7d('0x93')][_0x6c7d('0x28')]({'where':_0x326255['where']})[_0x6c7d('0x16')](function(_0x2a5bc4){_0xd62a40[_0x6c7d('0x28')]=_0x2a5bc4;if(_0x12c9e6[_0x6c7d('0x41')]['includeAll']){_0x326255[_0x6c7d('0x48')]=[{'all':!![]}];}return db['ChatMessage'][_0x6c7d('0x3b')](_0x326255);})[_0x6c7d('0x16')](function(_0x14cf1f){_0xd62a40[_0x6c7d('0xa3')]=_0x14cf1f;return _0xd62a40;});}})[_0x6c7d('0x16')](respondWithFilteredResult(_0x1c10af,_0x326255))[_0x6c7d('0x20')](handleError(_0x1c10af,null));};exports['getMyMessages']=function(_0x3d7664,_0x4b0805){var _0x2a091b={'where':{}},_0x345546={},_0x31e9bf={'count':0x0,'rows':[]};return db[_0x6c7d('0x36')][_0x6c7d('0x4e')]({'where':{'id':_0x3d7664[_0x6c7d('0x3f')]['id']}})[_0x6c7d('0x16')](handleEntityNotFound(_0x4b0805,null))[_0x6c7d('0x16')](function(_0x5a5173){if(_0x5a5173){_0x345546[_0x6c7d('0x42')]=_[_0x6c7d('0x40')](db['ChatMessage']['rawAttributes']);_0x345546['query']=_[_0x6c7d('0x40')](_0x3d7664['query']);_0x345546[_0x6c7d('0x9c')]=_[_0x6c7d('0x44')](_0x345546[_0x6c7d('0x42')],_0x345546['query']);_0x2a091b['attributes']=_['intersection'](_0x345546['model'],qs['fields'](_0x3d7664['query'][_0x6c7d('0x45')]));_0x2a091b[_0x6c7d('0x43')]=_0x2a091b[_0x6c7d('0x43')][_0x6c7d('0x46')]?_0x2a091b['attributes']:_0x345546['model'];if(!_0x3d7664[_0x6c7d('0x41')][_0x6c7d('0x97')]('nolimit')){_0x2a091b['limit']=qs[_0x6c7d('0x27')](_0x3d7664[_0x6c7d('0x41')][_0x6c7d('0x27')]);_0x2a091b[_0x6c7d('0x25')]=qs[_0x6c7d('0x25')](_0x3d7664[_0x6c7d('0x41')]['offset']);}_0x2a091b[_0x6c7d('0x99')]=qs[_0x6c7d('0x9a')](_0x3d7664['query'][_0x6c7d('0x9a')]);_0x2a091b['where']=qs[_0x6c7d('0x9c')](_['pick'](_0x3d7664['query'],_0x345546[_0x6c7d('0x9c')]));_0x2a091b['where']['ChatInteractionId']=_0x5a5173['id'];if(_0x3d7664[_0x6c7d('0x41')][_0x6c7d('0x9e')]){_0x2a091b['where']=_['merge'](_0x2a091b[_0x6c7d('0x9b')],{'$or':_[_0x6c7d('0x35')](_0x2a091b[_0x6c7d('0x43')],function(_0x2c1e1d){var _0x3fc3d7={};_0x3fc3d7[_0x2c1e1d]={'$like':'%'+_0x3d7664[_0x6c7d('0x41')][_0x6c7d('0x9e')]+'%'};return _0x3fc3d7;})});}_0x2a091b['where']['secret']=![];if(_0x3d7664[_0x6c7d('0x41')]['id']){_0x2a091b[_0x6c7d('0x9b')]['id']={'$gt':_0x3d7664[_0x6c7d('0x41')]['id']};}_0x2a091b=_[_0x6c7d('0x2e')]({},_0x2a091b,_0x3d7664[_0x6c7d('0xa2')]);return db[_0x6c7d('0x93')][_0x6c7d('0x28')]({'where':_0x2a091b['where']})[_0x6c7d('0x16')](function(_0x2ae8f3){_0x31e9bf[_0x6c7d('0x28')]=_0x2ae8f3;_0x2a091b['include']=[];if(_0x3d7664[_0x6c7d('0x41')][_0x6c7d('0xa4')]){_0x2a091b['include'][_0x6c7d('0xa5')]({'model':db[_0x6c7d('0x7c')],'as':'User','attributes':['id','fullname','alias']});}if(_0x3d7664[_0x6c7d('0x41')][_0x6c7d('0x47')]){_0x2a091b[_0x6c7d('0x48')]=[{'all':!![]}];}return db[_0x6c7d('0x93')][_0x6c7d('0x3b')](_0x2a091b);})[_0x6c7d('0x16')](function(_0x527f8f){_0x31e9bf[_0x6c7d('0xa3')]=_0x527f8f;return _0x31e9bf;});}})[_0x6c7d('0x16')](respondWithFilteredResult(_0x4b0805,_0x2a091b))[_0x6c7d('0x20')](handleError(_0x4b0805,null));};exports[_0x6c7d('0xa6')]=function(_0x1dd395,_0x1cb779){return db['ChatInteraction'][_0x6c7d('0x49')]({'where':{'id':_0x1dd395[_0x6c7d('0x3f')]['id']}})[_0x6c7d('0x16')](handleEntityNotFound(_0x1cb779,null))[_0x6c7d('0x16')](function(_0x441029){if(_0x441029){return _0x441029[_0x6c7d('0xa7')](_0x1dd395['body'][_0x6c7d('0x94')],_['omit'](_0x1dd395[_0x6c7d('0x2f')],[_0x6c7d('0x94'),'id'])||{})[_0x6c7d('0xa8')](function(){return db[_0x6c7d('0xa9')]['findAll']({'attributes':['id',_0x6c7d('0x2c'),_0x6c7d('0xaa')],'where':{'id':_0x1dd395['body'][_0x6c7d('0x94')]}});})['then'](function(_0x3d68af){socket['emit']('chatInteractionTags:save',{'id':Number(_0x1dd395[_0x6c7d('0x3f')]['id']),'tags':_0x3d68af||[]});return{'id':Number(_0x1dd395[_0x6c7d('0x3f')]['id']),'tags':_0x3d68af||[]};});}})[_0x6c7d('0x16')](respondWithResult(_0x1cb779,null))['catch'](handleError(_0x1cb779,null));};exports[_0x6c7d('0xab')]=function(_0x4f74a2,_0x34c6fd){return db[_0x6c7d('0x36')][_0x6c7d('0x49')]({'where':{'id':_0x4f74a2[_0x6c7d('0x3f')]['id']}})['then'](handleEntityNotFound(_0x34c6fd,null))['then'](function(_0x30f34c){if(_0x30f34c){return _0x30f34c[_0x6c7d('0xab')](_0x4f74a2[_0x6c7d('0x41')][_0x6c7d('0x94')]);}})[_0x6c7d('0x16')](respondWithStatusCode(_0x34c6fd,null))[_0x6c7d('0x20')](handleError(_0x34c6fd,null));};exports[_0x6c7d('0x77')]=function(_0x1363d5,_0x5068f0){var _0x1cf8c7=moment()[_0x6c7d('0xac')]()[_0x6c7d('0xad')]();var _0x2c7025=path[_0x6c7d('0x73')](config[_0x6c7d('0x74')],'server',_0x6c7d('0xae'),_0x6c7d('0xaf'));var _0x26c2ca=path[_0x6c7d('0x73')](config[_0x6c7d('0x74')],_0x6c7d('0xb0'),_0x6c7d('0xae'),'attachments');var _0x3d45fd=path[_0x6c7d('0x73')](_0x2c7025,_0x1cf8c7);var _0x3f4cfd=util[_0x6c7d('0x79')]('transcript-%d-%s.zip',_0x1363d5[_0x6c7d('0x3f')]['id'],_0x1cf8c7);var _0x3b17ff=path[_0x6c7d('0x73')](_0x2c7025,_0x3f4cfd);var _0x542c50=[];_0x542c50[_0x6c7d('0xa5')]({'model':db[_0x6c7d('0x7c')],'as':_0x6c7d('0x7c'),'attributes':['id','fullname'],'raw':!![]});_0x542c50[_0x6c7d('0xa5')]({'model':db[_0x6c7d('0x62')],'as':_0x6c7d('0x63'),'attributes':['id',_0x6c7d('0xb1'),_0x6c7d('0xb2')],'raw':!![]});if(_0x1363d5[_0x6c7d('0x41')][_0x6c7d('0xb3')]){_0x542c50['push']({'model':db['Attachment'],'as':_0x6c7d('0x6e'),'raw':!![]});}var _0x8087cb=[{'model':db['ChatMessage'],'as':_0x6c7d('0x7b'),'attributes':['id',_0x6c7d('0x2f'),_0x6c7d('0x87'),_0x6c7d('0x89'),_0x6c7d('0x8a'),_0x6c7d('0xb4')],'include':_0x542c50}];_0x8087cb[_0x6c7d('0xa5')]({'model':db[_0x6c7d('0x4f')],'as':'Account','attributes':['id',_0x6c7d('0x2c')]});_0x8087cb[_0x6c7d('0xa5')]({'model':db[_0x6c7d('0x7c')],'as':_0x6c7d('0xb5'),'attributes':['id',_0x6c7d('0x55')]});return db['ChatInteraction'][_0x6c7d('0x49')]({'where':{'id':_0x1363d5['params']['id']},'include':_0x8087cb})[_0x6c7d('0x16')](handleEntityNotFound(_0x5068f0,null))[_0x6c7d('0x16')](function(_0x3748cd){if(_0x3748cd){var _0x25341d=_0x3748cd['get']({'plain':!![]});fs[_0x6c7d('0xb6')](_0x3d45fd);var _0x56e340={'channel':_0x6c7d('0xb7'),'account':_0x25341d[_0x6c7d('0xb8')][_0x6c7d('0x2c')],'agent':_0x25341d[_0x6c7d('0xb5')]?_0x25341d[_0x6c7d('0xb5')][_0x6c7d('0x55')]:_0x6c7d('0xb9'),'createdAt':moment(_0x25341d[_0x6c7d('0x87')])[_0x6c7d('0x79')]('YYYY-MM-DD\x20HH:mm:ss')[_0x6c7d('0xad')](),'closedAt':_0x25341d['closed']?moment(_0x25341d[_0x6c7d('0xba')])[_0x6c7d('0x79')](_0x6c7d('0xa1'))[_0x6c7d('0xad')]():'','disposition':_0x25341d[_0x6c7d('0xbb')],'chatInfo':{'browser':_0x25341d['browserName'],'os':_0x25341d['osName'],'referer':_0x25341d[_0x6c7d('0xbc')],'customerIp':_0x25341d['customerIp'],'customerPort':_0x25341d[_0x6c7d('0xbd')]?_0x25341d[_0x6c7d('0xbd')]:_0x6c7d('0xb9')},'messages':_(_0x25341d[_0x6c7d('0x7b')])[_0x6c7d('0xbe')]()['filter']({'secret':![]})[_0x6c7d('0x35')](function(_0x195319){if(_0x195319[_0x6c7d('0x6e')]){var _0x503f50=path[_0x6c7d('0x73')](_0x26c2ca,_0x195319['Attachment'][_0x6c7d('0x6c')]);if(fs['existsSync'](_0x503f50)){fs['createReadStream'](_0x503f50)[_0x6c7d('0xbf')](fs[_0x6c7d('0xc0')](path[_0x6c7d('0x73')](_0x3d45fd,_0x195319[_0x6c7d('0x6e')][_0x6c7d('0x6c')])));}}return{'date':moment(_0x195319[_0x6c7d('0x87')])[_0x6c7d('0x79')](_0x6c7d('0xa1'))[_0x6c7d('0xad')](),'sender':_0x195319[_0x6c7d('0x89')]===_0x6c7d('0x60')?_0x195319[_0x6c7d('0x7c')]?_0x195319[_0x6c7d('0x7c')][_0x6c7d('0x55')]:_0x6c7d('0x86'):_0x195319[_0x6c7d('0x63')][_0x6c7d('0xb1')]+(_0x195319[_0x6c7d('0x63')][_0x6c7d('0xb2')]?'\x20'+_0x195319[_0x6c7d('0x63')][_0x6c7d('0xb2')]:''),'body':_0x195319['Attachment']?_0x195319[_0x6c7d('0x6e')][_0x6c7d('0x6c')]:_0x195319['body'],'direction':_0x195319[_0x6c7d('0x89')]===_0x6c7d('0x60')?'A':'C','secret':_0x195319[_0x6c7d('0x8a')],'read':_0x195319[_0x6c7d('0xb4')],'attachment':_0x195319[_0x6c7d('0x6e')]};})['value']()};return ejs[_0x6c7d('0xc1')](path[_0x6c7d('0x73')](config[_0x6c7d('0x74')],_0x6c7d('0xb0'),_0x6c7d('0xc2'),_0x6c7d('0xc3')),{'interaction':_0x56e340})[_0x6c7d('0x16')](function(_0x973c7f){var _0x15e636=path[_0x6c7d('0x73')](_0x3d45fd,_0x6c7d('0xc4')+_0x25341d['id']+'-'+_0x1cf8c7+'.pdf');var _0x5c5d38={'path':_0x15e636,'channel':_0x6c7d('0xb7'),'interactionId':_0x25341d['id']};return pdf['createPdfFromHTML'](_0x973c7f,_0x5c5d38);})[_0x6c7d('0x16')](function(){return new Promise(function(_0x24bf21,_0x5abd8e){zipdir(_0x3d45fd,{'saveTo':_0x3b17ff},function(_0x21714a,_0x39910e){if(_0x21714a)return _0x5abd8e(_0x21714a);return _0x24bf21(_0x39910e);});})[_0x6c7d('0x16')](function(){return new BPromise(function(_0x7785b6,_0x3744a8){rimraf(_0x3d45fd,function(_0x51d96c){if(_0x51d96c)_0x3744a8(_0x51d96c);return _0x7785b6();});});})[_0x6c7d('0x16')](function(){return _0x5068f0[_0x6c7d('0x77')](_0x3b17ff,_0x3f4cfd,function(_0x3129e5){if(_0x3129e5){logger[_0x6c7d('0x1c')](_0x6c7d('0xc5'),_0x3129e5);}else{fs[_0x6c7d('0xc6')](_0x3b17ff);}});});});}else{return _0x5068f0['sendStatus'](0xc8);}})['catch'](handleError(_0x5068f0,null));};