Built motion from commit 85f716e9.|2.6.8
[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 _0xcd0e=['find','create','update','body','describe','createVidaooSession','findOne','ChatWebsite','ChatWebsiteId','vidaooEscalation','vidaooNote','vidaooMetadata','vidaooApiKey','user','fullname','email','POST','https://api-vidaoo.xcally.com/api/v1/meetings','vidaooTopic','isNull','follow','parse','metadata','Sequelize','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','join_url','out','ChatMessage','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','customUpdate','CmContact','Contact','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','UserId','Interaction\x20already\x20assigned','AbandonInteraction','abandon','attachmentUpload','file','basename','mimetype','Attachment','attachmentDownload','attachId','join','root','server/files/attachments/','offline-chat/','download','close','mailTranscript','server/files/chat/upload/','format','pathTranscript','Messages','User','ContactId','agentAlias','customer','%s%d','Visitor','agentIdentifier','website_alias','System','agent_alias','alias','createdAt','MM/DD/YYYY\x20HH:mm:ss','direction','secret','appendFileSync','Smtp','CloudProvider','getSmtpOptions','SendMail','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','ids','getMessages','hasOwnProperty','nolimit','sort','where','pick','ChatInteractionId','filter','$gte','split','YYYY-MM-DD\x20HH:mm:ss','options','include','rows','getMyMessages','order','push','addTags','setTags','omit','spread','Tag','color','removeTags','unix','toString','server','files','tmp','attachments','lastName','Account','Owner','get','mkdirSync','Chat','N.A.','closed','closedAt','osName','referer','customerIp','customerPort','existsSync','createReadStream','pipe','createWriteStream','firstName','value','renderFile','views','.pdf','createPdfFromHTML','err','unlinkSync','zip-dir','request-promise','moment','bluebird','mustache','util','path','ejs','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInteraction.socket','jayson/promise','client','http','request','then','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','catch','sendStatus','end','json','undefined','limit','count','offset','status','set','Content-Range','stack','name','render','merge','contact','agent','interaction','account','map','ChatInteraction','fieldName','type','getOptions','findAll','chat','query','params','model','keys','rawAttributes','filters','intersection','attributes','fields','length','includeAll'];(function(_0x2c61b5,_0x4b0b86){var _0x37e837=function(_0x321b9d){while(--_0x321b9d){_0x2c61b5['push'](_0x2c61b5['shift']());}};_0x37e837(++_0x4b0b86);}(_0xcd0e,0x159));var _0xecd0=function(_0x49c057,_0xc808ed){_0x49c057=_0x49c057-0x0;var _0xd8f0e6=_0xcd0e[_0x49c057];return _0xd8f0e6;};'use strict';var rimraf=require('rimraf');var zipdir=require(_0xecd0('0x0'));var rp=require(_0xecd0('0x1'));var moment=require(_0xecd0('0x2'));var BPromise=require(_0xecd0('0x3'));var Mustache=require(_0xecd0('0x4'));var util=require(_0xecd0('0x5'));var path=require(_0xecd0('0x6'));var ejs=require(_0xecd0('0x7'));var fs=require('fs');var _=require(_0xecd0('0x8'));var Redis=require(_0xecd0('0x9'));var interaction=require('../../components/interaction/service');var qs=require(_0xecd0('0xa'));var pdf=require('../../components/export/pdf');var logger=require(_0xecd0('0xb'))(_0xecd0('0xc'));var config=require(_0xecd0('0xd'));var db=require(_0xecd0('0xe'))['db'];config[_0xecd0('0xf')]=_[_0xecd0('0x10')](config[_0xecd0('0xf')],{'host':_0xecd0('0x11'),'port':0x18eb});var socket=require(_0xecd0('0x12'))(new Redis(config['redis']));require(_0xecd0('0x13'))['register'](socket);var jayson=require(_0xecd0('0x14'));var client=jayson[_0xecd0('0x15')][_0xecd0('0x16')]({'port':0x232b});var client9004=jayson[_0xecd0('0x15')][_0xecd0('0x16')]({'port':0x232c});function respondWithRpcPromise(_0x2e5093,_0x914f4d,_0x102b88,_0xb89747){return new BPromise(function(_0x57f81d,_0x1ff457){var _0x6ff328=_0xb89747||client;return _0x6ff328[_0xecd0('0x17')](_0x2e5093,_0x102b88)[_0xecd0('0x18')](function(_0xd94c8e){logger['info'](_0xecd0('0x19'),_0x914f4d,_0xecd0('0x1a'));logger[_0xecd0('0x1b')](_0xecd0('0x1c'),_0x914f4d,_0xecd0('0x1a'),JSON[_0xecd0('0x1d')](_0xd94c8e));if(_0xd94c8e['error']){if(_0xd94c8e[_0xecd0('0x1e')]['code']===0x1f4){logger[_0xecd0('0x1e')](_0xecd0('0x19'),_0x914f4d,_0xd94c8e[_0xecd0('0x1e')]['message']);return _0x1ff457(_0xd94c8e[_0xecd0('0x1e')][_0xecd0('0x1f')]);}logger['error'](_0xecd0('0x19'),_0x914f4d,_0xd94c8e[_0xecd0('0x1e')][_0xecd0('0x1f')]);return _0x57f81d(_0xd94c8e[_0xecd0('0x1e')][_0xecd0('0x1f')]);}else{logger[_0xecd0('0x20')](_0xecd0('0x19'),_0x914f4d,_0xecd0('0x1a'));_0x57f81d(_0xd94c8e[_0xecd0('0x21')][_0xecd0('0x1f')]);}})[_0xecd0('0x22')](function(_0x868542){logger['error'](_0xecd0('0x19'),_0x914f4d,_0x868542);_0x1ff457(_0x868542);});});}function respondWithStatusCode(_0x4dbb35,_0x513685){_0x513685=_0x513685||0xcc;return function(_0x3f5282){if(_0x3f5282){return _0x4dbb35[_0xecd0('0x23')](_0x513685);}return _0x4dbb35['status'](_0x513685)[_0xecd0('0x24')]();};}function respondWithResult(_0x103514,_0x5468b5){_0x5468b5=_0x5468b5||0xc8;return function(_0x5a6f8e){if(_0x5a6f8e){return _0x103514['status'](_0x5468b5)[_0xecd0('0x25')](_0x5a6f8e);}};}function respondWithFilteredResult(_0x361f15,_0x762689){return function(_0x4ecc42){if(_0x4ecc42){var _0x26f12f=typeof _0x762689['offset']===_0xecd0('0x26')&&typeof _0x762689[_0xecd0('0x27')]==='undefined';var _0x123a4e=_0x4ecc42[_0xecd0('0x28')];var _0x280143=_0x26f12f?0x0:_0x762689[_0xecd0('0x29')];var _0x3f91c0=_0x26f12f?_0x4ecc42[_0xecd0('0x28')]:_0x762689[_0xecd0('0x29')]+_0x762689[_0xecd0('0x27')];var _0x42a196;if(_0x3f91c0>=_0x123a4e){_0x3f91c0=_0x123a4e;_0x42a196=0xc8;}else{_0x42a196=0xce;}_0x361f15[_0xecd0('0x2a')](_0x42a196);return _0x361f15[_0xecd0('0x2b')](_0xecd0('0x2c'),_0x280143+'-'+_0x3f91c0+'/'+_0x123a4e)[_0xecd0('0x25')](_0x4ecc42);}return null;};}function saveUpdates(_0xb97f9c){return function(_0x3fc44a){if(_0x3fc44a){return _0x3fc44a['update'](_0xb97f9c)['then'](function(_0x4395af){return _0x4395af;});}return null;};}function removeEntity(_0x253436){return function(_0x14720e){if(_0x14720e){return _0x14720e['destroy']()[_0xecd0('0x18')](function(){_0x253436['status'](0xcc)[_0xecd0('0x24')]();});}};}function handleEntityNotFound(_0x83d44e){return function(_0x42de38){if(!_0x42de38){_0x83d44e[_0xecd0('0x23')](0x194);}return _0x42de38;};}function handleError(_0x490266,_0x29fdc3){_0x29fdc3=_0x29fdc3||0x1f4;return function(_0x3c7218){logger[_0xecd0('0x1e')](_0x3c7218[_0xecd0('0x2d')]);if(_0x3c7218['name']){delete _0x3c7218[_0xecd0('0x2e')];}_0x490266[_0xecd0('0x2a')](_0x29fdc3)['send'](_0x3c7218);};}function getMustacheRender(_0x3e5c16,_0x145c63){return Mustache[_0xecd0('0x2f')](_0x3e5c16,_[_0xecd0('0x30')](_0x145c63['body'],{'contact':_0x145c63[_0xecd0('0x31')],'message':_0x145c63[_0xecd0('0x1f')],'agent':_0x145c63[_0xecd0('0x32')],'interaction':_0x145c63[_0xecd0('0x33')],'account':_0x145c63[_0xecd0('0x34')]}))||'';}exports['index']=function(_0x226e88,_0x5df8d6){var _0x37ba38={};var _0x172f2a=_[_0xecd0('0x35')](db[_0xecd0('0x36')]['rawAttributes'],function(_0x4cd988){return{'name':_0x4cd988[_0xecd0('0x37')],'type':_0x4cd988[_0xecd0('0x38')]['key']};});_0x37ba38=qs[_0xecd0('0x39')](_0x172f2a,_0x226e88);return interaction[_0xecd0('0x3a')](_0xecd0('0x3b'),_0x226e88[_0xecd0('0x3c')],_0x226e88['user'],_0x37ba38,_0x172f2a)[_0xecd0('0x18')](respondWithFilteredResult(_0x5df8d6,_0x37ba38))[_0xecd0('0x22')](handleError(_0x5df8d6,null));};exports['show']=function(_0x587308,_0xd241d1){var _0x5c4e66={'raw':![],'where':{'id':_0x587308[_0xecd0('0x3d')]['id']}},_0x1ffe67={};_0x1ffe67[_0xecd0('0x3e')]=_[_0xecd0('0x3f')](db['ChatInteraction'][_0xecd0('0x40')]);_0x1ffe67[_0xecd0('0x3c')]=_['keys'](_0x587308[_0xecd0('0x3c')]);_0x1ffe67[_0xecd0('0x41')]=_[_0xecd0('0x42')](_0x1ffe67[_0xecd0('0x3e')],_0x1ffe67[_0xecd0('0x3c')]);_0x5c4e66[_0xecd0('0x43')]=_['intersection'](_0x1ffe67['model'],qs['fields'](_0x587308['query'][_0xecd0('0x44')]));_0x5c4e66[_0xecd0('0x43')]=_0x5c4e66[_0xecd0('0x43')][_0xecd0('0x45')]?_0x5c4e66['attributes']:_0x1ffe67[_0xecd0('0x3e')];if(_0x587308['query'][_0xecd0('0x46')]){_0x5c4e66['include']=[{'all':!![]}];}_0x5c4e66=_['merge']({},_0x5c4e66,_0x587308['options']);return db['ChatInteraction'][_0xecd0('0x47')](_0x5c4e66)[_0xecd0('0x18')](handleEntityNotFound(_0xd241d1,null))[_0xecd0('0x18')](respondWithResult(_0xd241d1,null))[_0xecd0('0x22')](handleError(_0xd241d1,null));};exports[_0xecd0('0x48')]=function(_0x477f6e,_0x59ba16){return db[_0xecd0('0x36')][_0xecd0('0x48')](_0x477f6e['body'],{})[_0xecd0('0x18')](respondWithResult(_0x59ba16,0xc9))[_0xecd0('0x22')](handleError(_0x59ba16,null));};exports[_0xecd0('0x49')]=function(_0x299a12,_0x5e96a2){if(_0x299a12[_0xecd0('0x4a')]['id']){delete _0x299a12['body']['id'];}return db[_0xecd0('0x36')]['find']({'where':{'id':_0x299a12[_0xecd0('0x3d')]['id']}})[_0xecd0('0x18')](handleEntityNotFound(_0x5e96a2,null))[_0xecd0('0x18')](saveUpdates(_0x299a12['body'],null))['then'](respondWithResult(_0x5e96a2,null))['catch'](handleError(_0x5e96a2,null));};exports['destroy']=function(_0x46280f,_0x616fad){return db[_0xecd0('0x36')][_0xecd0('0x47')]({'where':{'id':_0x46280f[_0xecd0('0x3d')]['id']}})[_0xecd0('0x18')](handleEntityNotFound(_0x616fad,null))[_0xecd0('0x18')](removeEntity(_0x616fad,null))[_0xecd0('0x22')](handleError(_0x616fad,null));};exports['describe']=function(_0x16f9d0,_0x12321a){return db[_0xecd0('0x36')][_0xecd0('0x4b')]()[_0xecd0('0x18')](respondWithResult(_0x12321a,null))[_0xecd0('0x22')](handleError(_0x12321a,null));};exports[_0xecd0('0x4c')]=function(_0x206dc9,_0x59232e){var _0x24c86f=_0x206dc9[_0xecd0('0x3d')]['id'];var _0x1d7369;var _0x4e7236;var _0x411339;return db[_0xecd0('0x36')][_0xecd0('0x4d')]({'where':{'id':_0x24c86f}})[_0xecd0('0x18')](function(_0x163299){_0x1d7369=_0x163299;return db[_0xecd0('0x4e')][_0xecd0('0x4d')]({'where':{'id':_0x163299[_0xecd0('0x4f')]},'attributes':['id','vidaooApiKey',_0xecd0('0x50'),'vidaooTopic',_0xecd0('0x51'),_0xecd0('0x52')],'raw':!![]});})[_0xecd0('0x18')](function(_0x40792b){if(_0x40792b&&_0x40792b[_0xecd0('0x53')]&&_0x40792b[_0xecd0('0x50')]){_0x4e7236=_0x40792b;var _0x24e711={'interaction':{'id':_0x24c86f},'agent':{'id':_0x206dc9[_0xecd0('0x54')]['id'],'name':_0x206dc9[_0xecd0('0x54')][_0xecd0('0x2e')],'fullname':_0x206dc9[_0xecd0('0x54')][_0xecd0('0x55')],'email':_0x206dc9[_0xecd0('0x54')][_0xecd0('0x56')]},'contact':_0x206dc9[_0xecd0('0x4a')]['contact'],'account':_0x206dc9[_0xecd0('0x4a')]['account']};var _0x501c7e={'rejectUnauthorized':![],'method':_0xecd0('0x57'),'url':_0xecd0('0x58'),'headers':{'X-APIKEY':_0x40792b['vidaooApiKey']},'body':{'duration':null,'scheduledAt':null,'participants':[_0x206dc9[_0xecd0('0x54')]['email']],'buttons':null,'topic':_0x4e7236[_0xecd0('0x59')],'note':_[_0xecd0('0x5a')](_0x4e7236['vidaooNote'])?null:getMustacheRender(_0x4e7236[_0xecd0('0x51')],_0x24e711),'metadata':null},'redirect':_0xecd0('0x5b'),'json':!![]};try{if(!_[_0xecd0('0x5a')](_0x4e7236['vidaooMetadata'])){var _0x52978e=getMustacheRender(_0x4e7236[_0xecd0('0x52')],_0x24e711);var _0x199b96=JSON[_0xecd0('0x5c')](_0x52978e);_0x501c7e[_0xecd0('0x4a')][_0xecd0('0x5d')]=_0x199b96;}}catch(_0x752bbc){throw new db[(_0xecd0('0x5e'))][(_0xecd0('0x5f'))](_0xecd0('0x60'));}return rp(_0x501c7e);}else{throw new db['Sequelize'][(_0xecd0('0x5f'))]('Error\x20in\x20Vidaoo\x20configuration');}})[_0xecd0('0x18')](function(_0x44a789){_0x411339=_0x44a789;if(_0x411339['id']){var _0x38ba9d={'body':_0x411339[_0xecd0('0x61')],'ChatWebsiteId':_0x4e7236['id'],'ChatInteractionId':_0x1d7369['id'],'direction':_0xecd0('0x62'),'UserId':_0x206dc9['user']['id']};return db[_0xecd0('0x63')][_0xecd0('0x48')](_0x38ba9d,{});}else{throw new db[(_0xecd0('0x5e'))][(_0xecd0('0x5f'))](_0xecd0('0x64'));}})[_0xecd0('0x18')](function(){return _0x1d7369[_0xecd0('0x65')]({'vidaooSessionId':_0x411339['id']});})[_0xecd0('0x18')](respondWithResult(_0x59232e,null))[_0xecd0('0x22')](handleError(_0x59232e,null));};exports[_0xecd0('0x66')]=function(_0x558b2b,_0x10bd69){if(_0x558b2b[_0xecd0('0x4a')]['id']){delete _0x558b2b['body']['id'];}return db[_0xecd0('0x36')][_0xecd0('0x47')]({'where':{'id':_0x558b2b[_0xecd0('0x3d')]['id']},'include':[{'model':db[_0xecd0('0x67')],'as':_0xecd0('0x68')}]})[_0xecd0('0x18')](handleEntityNotFound(_0x10bd69,null))['then'](saveUpdates(_0x558b2b[_0xecd0('0x4a')],null))[_0xecd0('0x18')](respondWithResult(_0x10bd69,null))[_0xecd0('0x22')](handleError(_0x10bd69,null));};exports['abandon']=function(_0x9f04d4,_0x5b8457){if(_0x9f04d4[_0xecd0('0x4a')]['id']){delete _0x9f04d4[_0xecd0('0x4a')]['id'];}return db['ChatInteraction'][_0xecd0('0x47')]({'where':{'id':_0x9f04d4['params']['id']}})[_0xecd0('0x18')](function(_0x56113b){if(!_0x56113b){logger[_0xecd0('0x1e')](_0xecd0('0x69'),'abandon',0x194,_0xecd0('0x6a'));_0x5b8457[_0xecd0('0x23')](0x194);}else{if(_0x56113b[_0xecd0('0x6b')]){throw new db[(_0xecd0('0x5e'))][(_0xecd0('0x5f'))](_0xecd0('0x6c'));}}return _0x56113b;})['then'](function(_0x1e3878){if(_0x1e3878){return _0x1e3878[_0xecd0('0x49')]({'closed':_0x9f04d4[_0xecd0('0x4a')]['closed'],'disposition':_0x9f04d4[_0xecd0('0x4a')]['disposition']})[_0xecd0('0x18')](function(_0x311c2e){return _0x311c2e;});}})[_0xecd0('0x18')](function(){return respondWithRpcPromise(_0xecd0('0x6d'),_0xecd0('0x6e'),_0x9f04d4['body'],client9004);})[_0xecd0('0x18')](respondWithResult(_0x5b8457,null))['catch'](handleError(_0x5b8457,null));};exports[_0xecd0('0x6f')]=function(_0x541934,_0x89cc66){_0x541934[_0xecd0('0x4a')][_0xecd0('0x2e')]=_0x541934[_0xecd0('0x70')]['originalname'];_0x541934[_0xecd0('0x4a')][_0xecd0('0x71')]=_0x541934[_0xecd0('0x70')]['filename'];_0x541934[_0xecd0('0x4a')][_0xecd0('0x38')]=_0x541934[_0xecd0('0x70')][_0xecd0('0x72')];return db[_0xecd0('0x73')]['create'](_0x541934[_0xecd0('0x4a')])[_0xecd0('0x18')](respondWithResult(_0x89cc66,0xc9))[_0xecd0('0x22')](handleError(_0x89cc66,null));};exports[_0xecd0('0x74')]=function(_0x276447,_0x4fd463){return db[_0xecd0('0x36')][_0xecd0('0x4d')]({'where':{'id':_0x276447[_0xecd0('0x3d')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x4fd463,null))['then'](function(_0x415833){if(_0x415833){if(_0x415833['closed']){return _0x4fd463['status'](0x193)[_0xecd0('0x25')]({'status':0x193,'message':'Unauthorized'});}return db['Attachment'][_0xecd0('0x4d')]({'where':{'id':_0x276447['query'][_0xecd0('0x75')]},'raw':!![]})['then'](handleEntityNotFound(_0x4fd463,null));}})[_0xecd0('0x18')](function(_0x5ae533){if(_0x5ae533){var _0x16987f=_0x5ae533['ChatOfflineMessageId']!==null;var _0x3167dc=path[_0xecd0('0x76')](config[_0xecd0('0x77')],_0xecd0('0x78'));if(_0x16987f){_0x3167dc=path[_0xecd0('0x76')](_0x3167dc,_0xecd0('0x79'));}var _0x52b2d2=path['join'](_0x3167dc,_0x5ae533[_0xecd0('0x71')]);return _0x4fd463[_0xecd0('0x7a')](_0x52b2d2);}})[_0xecd0('0x22')](handleError(_0x4fd463,null));};exports[_0xecd0('0x7b')]=function(_0x30e5fb,_0x5c5117){var _0xe859c3=null;var _0x49a8f6=null;var _0x1f5275=null;if(_0x30e5fb[_0xecd0('0x4a')]['id']){delete _0x30e5fb['body']['id'];}if(_0x30e5fb['body'][_0xecd0('0x7c')]){_0x1f5275=path['join'](config[_0xecd0('0x77')],_0xecd0('0x7d'),util[_0xecd0('0x7e')]('transcript-%s.txt',Date['now']()));_0x30e5fb[_0xecd0('0x4a')][_0xecd0('0x7f')]=_0x1f5275;}return db[_0xecd0('0x36')][_0xecd0('0x47')]({'where':{'id':_0x30e5fb['params']['id']},'include':[{'model':db[_0xecd0('0x63')],'as':_0xecd0('0x80'),'include':[{'model':db[_0xecd0('0x81')],'as':'User'}]}]})['then'](handleEntityNotFound(_0x5c5117,null))[_0xecd0('0x18')](saveUpdates(_0x30e5fb[_0xecd0('0x4a')],null))[_0xecd0('0x18')](function(_0x45c5df){if(_0x45c5df){_0xe859c3=_0x45c5df;return db['ChatWebsite'][_0xecd0('0x47')]({'where':{'id':_0xe859c3[_0xecd0('0x4f')]}});}})['then'](function(_0x23ea99){if(_0x23ea99){_0x49a8f6=_0x23ea99;return db['CmContact']['find']({'where':{'id':_0xe859c3[_0xecd0('0x82')]}});}})[_0xecd0('0x18')](function(_0xf0e27e){if(_0xf0e27e){if(_0x1f5275){var _0x22ed6b=null;for(var _0x543ecb=0x1;_0x543ecb<_0xe859c3[_0xecd0('0x80')][_0xecd0('0x45')];++_0x543ecb){_0x22ed6b=_0xe859c3[_0xecd0('0x80')][_0x543ecb];var _0x3f9684=_0x22ed6b['UserId']?util[_0xecd0('0x7e')]('%s%d',_0x49a8f6[_0xecd0('0x83')],_0x22ed6b[_0xecd0('0x6b')]):'System';var _0x1151d2=_0x30e5fb[_0xecd0('0x4a')][_0xecd0('0x84')]||util[_0xecd0('0x7e')](_0xecd0('0x85'),_0xecd0('0x86'),_0x22ed6b[_0xecd0('0x82')]);switch(_0x49a8f6[_0xecd0('0x87')]){case _0xecd0('0x88'):_0x3f9684=_0x22ed6b['UserId']?util['format'](_0xecd0('0x85'),_0x49a8f6[_0xecd0('0x83')],_0x22ed6b[_0xecd0('0x6b')]):_0xecd0('0x89');break;case _0xecd0('0x8a'):_0x3f9684=_0x22ed6b[_0xecd0('0x6b')]?_0x22ed6b['User'][_0xecd0('0x8b')]||_0x22ed6b[_0xecd0('0x81')][_0xecd0('0x55')]:_0xecd0('0x89');break;case'agent_fullname':_0x3f9684=_0x22ed6b[_0xecd0('0x6b')]?_0x22ed6b[_0xecd0('0x81')][_0xecd0('0x55')]:_0xecd0('0x89');break;default:_0x3f9684=_0x22ed6b[_0xecd0('0x6b')]?util[_0xecd0('0x7e')](_0xecd0('0x85'),_0x49a8f6[_0xecd0('0x83')],_0x22ed6b[_0xecd0('0x6b')]):_0xecd0('0x89');}var _0x5a64b2=util[_0xecd0('0x7e')]('[%s]\x20%s:\x20%s\x0a',moment(_0x22ed6b[_0xecd0('0x8c')])[_0xecd0('0x7e')](_0xecd0('0x8d')),_0x22ed6b[_0xecd0('0x8e')]==='in'?_0x1151d2:_0x3f9684,_0x22ed6b['body']);if(!_0x22ed6b[_0xecd0('0x8f')]){fs[_0xecd0('0x90')](_0x1f5275,_0x5a64b2);}}return db['MailAccount']['findOne']({'where':{'service':!![]},'include':[{'model':db['MailServerOut'],'as':_0xecd0('0x91'),'raw':!![],'include':[{'model':db[_0xecd0('0x92')],'as':_0xecd0('0x92'),'raw':!![]}]}]});}}})[_0xecd0('0x18')](function(_0x434f8b){if(!_0x434f8b||!_0x434f8b['Smtp']||!_0x30e5fb[_0xecd0('0x4a')])return _0xe859c3;var _0x432ee2=_0x434f8b[_0xecd0('0x93')]();return respondWithRpcPromise(_0xecd0('0x94'),'sendMail',{'account':_0x432ee2,'message':{'from':util['format']('\x22%s\x22\x20<%s>',_0x434f8b['name'],_0x434f8b[_0xecd0('0x56')]||_0x434f8b[_0xecd0('0x91')][_0xecd0('0x54')]),'to':_0x30e5fb[_0xecd0('0x4a')]['mailTranscript'],'subject':_0xecd0('0x95'),'text':util[_0xecd0('0x7e')](_0xecd0('0x96'),_0x30e5fb[_0xecd0('0x4a')][_0xecd0('0x7c')]),'attachments':[{'path':_0x1f5275}]}})['then'](function(){return _0xe859c3;})[_0xecd0('0x22')](function(_0x449a37){logger[_0xecd0('0x1e')](_0x449a37);});})[_0xecd0('0x18')](respondWithStatusCode(_0x5c5117,0xc8))['catch'](handleError(_0x5c5117,null));};exports['addMessage']=function(_0x124771,_0x5bc4db){return db[_0xecd0('0x63')][_0xecd0('0x47')]({'where':{'id':_0x124771[_0xecd0('0x3d')]['id']}})[_0xecd0('0x18')](handleEntityNotFound(_0x5bc4db,null))['then'](function(_0x4d552a){if(_0x4d552a){return _0x4d552a[_0xecd0('0x97')](_0x124771['body']['ids'],_['omit'](_0x124771[_0xecd0('0x4a')],[_0xecd0('0x98'),'id'])||{});}})['then'](respondWithResult(_0x5bc4db,null))[_0xecd0('0x22')](handleError(_0x5bc4db,null));};exports[_0xecd0('0x99')]=function(_0x5a1dbd,_0x4c4b42){var _0x11ec5c={'raw':![],'where':{}};var _0xa5dce2={};var _0x4c98a4={'count':0x0,'rows':[]};return db[_0xecd0('0x36')][_0xecd0('0x4d')]({'where':{'id':_0x5a1dbd[_0xecd0('0x3d')]['id']}})[_0xecd0('0x18')](handleEntityNotFound(_0x4c4b42,null))['then'](function(_0x232d48){if(_0x232d48){_0xa5dce2[_0xecd0('0x3e')]=_['keys'](db[_0xecd0('0x63')][_0xecd0('0x40')]);_0xa5dce2[_0xecd0('0x3c')]=_['keys'](_0x5a1dbd[_0xecd0('0x3c')]);_0xa5dce2[_0xecd0('0x41')]=_[_0xecd0('0x42')](_0xa5dce2['model'],_0xa5dce2[_0xecd0('0x3c')]);_0x11ec5c['attributes']=_[_0xecd0('0x42')](_0xa5dce2[_0xecd0('0x3e')],qs[_0xecd0('0x44')](_0x5a1dbd[_0xecd0('0x3c')][_0xecd0('0x44')]));_0x11ec5c['attributes']=_0x11ec5c[_0xecd0('0x43')][_0xecd0('0x45')]?_0x11ec5c['attributes']:_0xa5dce2[_0xecd0('0x3e')];if(!_0x5a1dbd[_0xecd0('0x3c')][_0xecd0('0x9a')](_0xecd0('0x9b'))){_0x11ec5c[_0xecd0('0x27')]=qs[_0xecd0('0x27')](_0x5a1dbd[_0xecd0('0x3c')][_0xecd0('0x27')]);_0x11ec5c['offset']=qs['offset'](_0x5a1dbd[_0xecd0('0x3c')][_0xecd0('0x29')]);}_0x11ec5c['order']=qs[_0xecd0('0x9c')](_0x5a1dbd[_0xecd0('0x3c')]['sort']);_0x11ec5c[_0xecd0('0x9d')]=qs[_0xecd0('0x41')](_[_0xecd0('0x9e')](_0x5a1dbd[_0xecd0('0x3c')],_0xa5dce2[_0xecd0('0x41')]));_0x11ec5c[_0xecd0('0x9d')][_0xecd0('0x9f')]=_0x232d48['id'];if(_0x5a1dbd[_0xecd0('0x3c')][_0xecd0('0xa0')]){_0x11ec5c['where']=_[_0xecd0('0x30')](_0x11ec5c[_0xecd0('0x9d')],{'$or':_[_0xecd0('0x35')](_0x11ec5c[_0xecd0('0x43')],function(_0x2e31c6){var _0x3218c6={};_0x3218c6[_0x2e31c6]={'$like':'%'+_0x5a1dbd[_0xecd0('0x3c')][_0xecd0('0xa0')]+'%'};return _0x3218c6;})});}if(_0x5a1dbd[_0xecd0('0x3c')][_0xecd0('0xa1')]){var _0x948b95=_0x5a1dbd[_0xecd0('0x3c')][_0xecd0('0xa1')][_0xecd0('0xa2')](',');var _0x23c7e6={};_0x23c7e6[_0x948b95[0x0]]={'$gte':moment(_0x948b95[0x1])['format'](_0xecd0('0xa3'))};_0x11ec5c[_0xecd0('0x9d')]=_[_0xecd0('0x30')](_0x11ec5c[_0xecd0('0x9d')],_0x23c7e6);}_0x11ec5c=_['merge']({},_0x11ec5c,_0x5a1dbd[_0xecd0('0xa4')]);return db[_0xecd0('0x63')][_0xecd0('0x28')]({'where':_0x11ec5c[_0xecd0('0x9d')]})[_0xecd0('0x18')](function(_0x3a2d08){_0x4c98a4[_0xecd0('0x28')]=_0x3a2d08;if(_0x5a1dbd[_0xecd0('0x3c')][_0xecd0('0x46')]){_0x11ec5c[_0xecd0('0xa5')]=[{'all':!![]}];}return db['ChatMessage'][_0xecd0('0x3a')](_0x11ec5c);})['then'](function(_0x4bdaed){_0x4c98a4[_0xecd0('0xa6')]=_0x4bdaed;return _0x4c98a4;});}})['then'](respondWithFilteredResult(_0x4c4b42,_0x11ec5c))['catch'](handleError(_0x4c4b42,null));};exports[_0xecd0('0xa7')]=function(_0x3d6ae2,_0x1a0824){var _0x4b218a={'where':{}},_0x3f4f54={},_0x22f9ba={'count':0x0,'rows':[]};return db[_0xecd0('0x36')][_0xecd0('0x4d')]({'where':{'id':_0x3d6ae2[_0xecd0('0x3d')]['id']}})[_0xecd0('0x18')](handleEntityNotFound(_0x1a0824,null))['then'](function(_0x563903){if(_0x563903){_0x3f4f54[_0xecd0('0x3e')]=_[_0xecd0('0x3f')](db['ChatMessage'][_0xecd0('0x40')]);_0x3f4f54['query']=_[_0xecd0('0x3f')](_0x3d6ae2['query']);_0x3f4f54[_0xecd0('0x41')]=_[_0xecd0('0x42')](_0x3f4f54[_0xecd0('0x3e')],_0x3f4f54[_0xecd0('0x3c')]);_0x4b218a[_0xecd0('0x43')]=_[_0xecd0('0x42')](_0x3f4f54[_0xecd0('0x3e')],qs[_0xecd0('0x44')](_0x3d6ae2[_0xecd0('0x3c')][_0xecd0('0x44')]));_0x4b218a[_0xecd0('0x43')]=_0x4b218a['attributes'][_0xecd0('0x45')]?_0x4b218a[_0xecd0('0x43')]:_0x3f4f54['model'];if(!_0x3d6ae2[_0xecd0('0x3c')][_0xecd0('0x9a')]('nolimit')){_0x4b218a[_0xecd0('0x27')]=qs[_0xecd0('0x27')](_0x3d6ae2['query'][_0xecd0('0x27')]);_0x4b218a['offset']=qs[_0xecd0('0x29')](_0x3d6ae2[_0xecd0('0x3c')][_0xecd0('0x29')]);}_0x4b218a[_0xecd0('0xa8')]=qs[_0xecd0('0x9c')](_0x3d6ae2[_0xecd0('0x3c')][_0xecd0('0x9c')]);_0x4b218a[_0xecd0('0x9d')]=qs[_0xecd0('0x41')](_[_0xecd0('0x9e')](_0x3d6ae2[_0xecd0('0x3c')],_0x3f4f54[_0xecd0('0x41')]));_0x4b218a[_0xecd0('0x9d')][_0xecd0('0x9f')]=_0x563903['id'];if(_0x3d6ae2[_0xecd0('0x3c')][_0xecd0('0xa0')]){_0x4b218a['where']=_[_0xecd0('0x30')](_0x4b218a['where'],{'$or':_['map'](_0x4b218a[_0xecd0('0x43')],function(_0x232fb6){var _0x19dfc8={};_0x19dfc8[_0x232fb6]={'$like':'%'+_0x3d6ae2[_0xecd0('0x3c')]['filter']+'%'};return _0x19dfc8;})});}_0x4b218a[_0xecd0('0x9d')][_0xecd0('0x8f')]=![];if(_0x3d6ae2[_0xecd0('0x3c')]['id']){_0x4b218a['where']['id']={'$gt':_0x3d6ae2[_0xecd0('0x3c')]['id']};}_0x4b218a=_[_0xecd0('0x30')]({},_0x4b218a,_0x3d6ae2['options']);return db[_0xecd0('0x63')][_0xecd0('0x28')]({'where':_0x4b218a['where']})[_0xecd0('0x18')](function(_0x5266d1){_0x22f9ba[_0xecd0('0x28')]=_0x5266d1;_0x4b218a[_0xecd0('0xa5')]=[];if(_0x3d6ae2[_0xecd0('0x3c')]['includeAgent']){_0x4b218a['include'][_0xecd0('0xa9')]({'model':db[_0xecd0('0x81')],'as':_0xecd0('0x81'),'attributes':['id',_0xecd0('0x55'),_0xecd0('0x8b')]});}if(_0x3d6ae2[_0xecd0('0x3c')][_0xecd0('0x46')]){_0x4b218a['include']=[{'all':!![]}];}return db['ChatMessage']['findAll'](_0x4b218a);})['then'](function(_0x361b00){_0x22f9ba[_0xecd0('0xa6')]=_0x361b00;return _0x22f9ba;});}})[_0xecd0('0x18')](respondWithFilteredResult(_0x1a0824,_0x4b218a))['catch'](handleError(_0x1a0824,null));};exports[_0xecd0('0xaa')]=function(_0x2b44e6,_0xc643f6){return db[_0xecd0('0x36')]['find']({'where':{'id':_0x2b44e6[_0xecd0('0x3d')]['id']}})[_0xecd0('0x18')](handleEntityNotFound(_0xc643f6,null))['then'](function(_0x32134f){if(_0x32134f){return _0x32134f[_0xecd0('0xab')](_0x2b44e6['body'][_0xecd0('0x98')],_[_0xecd0('0xac')](_0x2b44e6[_0xecd0('0x4a')],[_0xecd0('0x98'),'id'])||{})[_0xecd0('0xad')](function(){return db[_0xecd0('0xae')]['findAll']({'attributes':['id',_0xecd0('0x2e'),_0xecd0('0xaf')],'where':{'id':_0x2b44e6[_0xecd0('0x4a')][_0xecd0('0x98')]}});})[_0xecd0('0x18')](function(_0x198403){socket['emit']('chatInteractionTags:save',{'id':Number(_0x2b44e6[_0xecd0('0x3d')]['id']),'tags':_0x198403||[]});return{'id':Number(_0x2b44e6[_0xecd0('0x3d')]['id']),'tags':_0x198403||[]};});}})['then'](respondWithResult(_0xc643f6,null))['catch'](handleError(_0xc643f6,null));};exports[_0xecd0('0xb0')]=function(_0x273827,_0xd5d3c6){return db[_0xecd0('0x36')][_0xecd0('0x47')]({'where':{'id':_0x273827['params']['id']}})['then'](handleEntityNotFound(_0xd5d3c6,null))[_0xecd0('0x18')](function(_0x1ec402){if(_0x1ec402){return _0x1ec402['removeTags'](_0x273827[_0xecd0('0x3c')]['ids']);}})['then'](respondWithStatusCode(_0xd5d3c6,null))['catch'](handleError(_0xd5d3c6,null));};exports[_0xecd0('0x7a')]=function(_0x39a0df,_0x1f00c7){var _0x5e8df6=moment()[_0xecd0('0xb1')]()[_0xecd0('0xb2')]();var _0x3ffdf8=path[_0xecd0('0x76')](config[_0xecd0('0x77')],_0xecd0('0xb3'),_0xecd0('0xb4'),_0xecd0('0xb5'));var _0x513202=path[_0xecd0('0x76')](config[_0xecd0('0x77')],'server',_0xecd0('0xb4'),_0xecd0('0xb6'));var _0x51dff0=path[_0xecd0('0x76')](_0x3ffdf8,_0x5e8df6);var _0x1a6a41=util['format']('transcript-%d-%s.zip',_0x39a0df['params']['id'],_0x5e8df6);var _0x4a7351=path[_0xecd0('0x76')](_0x3ffdf8,_0x1a6a41);var _0x23f5bf=[];_0x23f5bf['push']({'model':db[_0xecd0('0x81')],'as':_0xecd0('0x81'),'attributes':['id','fullname'],'raw':!![]});_0x23f5bf['push']({'model':db[_0xecd0('0x67')],'as':'Contact','attributes':['id','firstName',_0xecd0('0xb7')],'raw':!![]});if(_0x39a0df[_0xecd0('0x3c')][_0xecd0('0xb6')]){_0x23f5bf[_0xecd0('0xa9')]({'model':db[_0xecd0('0x73')],'as':'Attachment','raw':!![]});}var _0x2b5144=[{'model':db[_0xecd0('0x63')],'as':_0xecd0('0x80'),'attributes':['id',_0xecd0('0x4a'),_0xecd0('0x8c'),_0xecd0('0x8e'),_0xecd0('0x8f'),'read'],'include':_0x23f5bf}];_0x2b5144[_0xecd0('0xa9')]({'model':db[_0xecd0('0x4e')],'as':_0xecd0('0xb8'),'attributes':['id',_0xecd0('0x2e')]});_0x2b5144['push']({'model':db['User'],'as':_0xecd0('0xb9'),'attributes':['id','fullname']});return db['ChatInteraction'][_0xecd0('0x47')]({'where':{'id':_0x39a0df['params']['id']},'include':_0x2b5144})[_0xecd0('0x18')](handleEntityNotFound(_0x1f00c7,null))['then'](function(_0x516c6f){if(_0x516c6f){var _0x452e6a=_0x516c6f[_0xecd0('0xba')]({'plain':!![]});fs[_0xecd0('0xbb')](_0x51dff0);var _0x6593ea={'channel':_0xecd0('0xbc'),'account':_0x452e6a['Account'][_0xecd0('0x2e')],'agent':_0x452e6a[_0xecd0('0xb9')]?_0x452e6a[_0xecd0('0xb9')][_0xecd0('0x55')]:_0xecd0('0xbd'),'createdAt':moment(_0x452e6a['createdAt'])[_0xecd0('0x7e')](_0xecd0('0xa3'))[_0xecd0('0xb2')](),'closedAt':_0x452e6a[_0xecd0('0xbe')]?moment(_0x452e6a[_0xecd0('0xbf')])[_0xecd0('0x7e')](_0xecd0('0xa3'))[_0xecd0('0xb2')]():'','disposition':_0x452e6a['disposition'],'chatInfo':{'browser':_0x452e6a['browserName'],'os':_0x452e6a[_0xecd0('0xc0')],'referer':_0x452e6a[_0xecd0('0xc1')],'customerIp':_0x452e6a[_0xecd0('0xc2')],'customerPort':_0x452e6a[_0xecd0('0xc3')]?_0x452e6a[_0xecd0('0xc3')]:_0xecd0('0xbd')},'messages':_(_0x452e6a[_0xecd0('0x80')])['tail']()[_0xecd0('0xa0')]({'secret':![]})[_0xecd0('0x35')](function(_0x58f733){if(_0x58f733['Attachment']){var _0x12dc01=path['join'](_0x513202,_0x58f733[_0xecd0('0x73')][_0xecd0('0x71')]);if(fs[_0xecd0('0xc4')](_0x12dc01)){fs[_0xecd0('0xc5')](_0x12dc01)[_0xecd0('0xc6')](fs[_0xecd0('0xc7')](path[_0xecd0('0x76')](_0x51dff0,_0x58f733[_0xecd0('0x73')][_0xecd0('0x71')])));}}return{'date':moment(_0x58f733[_0xecd0('0x8c')])[_0xecd0('0x7e')](_0xecd0('0xa3'))[_0xecd0('0xb2')](),'sender':_0x58f733[_0xecd0('0x8e')]===_0xecd0('0x62')?_0x58f733['User']?_0x58f733['User'][_0xecd0('0x55')]:_0xecd0('0x89'):_0x58f733[_0xecd0('0x68')][_0xecd0('0xc8')]+(_0x58f733['Contact'][_0xecd0('0xb7')]?'\x20'+_0x58f733['Contact']['lastName']:''),'body':_0x58f733['Attachment']?_0x58f733[_0xecd0('0x73')]['basename']:_0x58f733['body'],'direction':_0x58f733['direction']===_0xecd0('0x62')?'A':'C','secret':_0x58f733[_0xecd0('0x8f')],'read':_0x58f733['read'],'attachment':_0x58f733[_0xecd0('0x73')]};})[_0xecd0('0xc9')]()};return ejs[_0xecd0('0xca')](path['join'](config[_0xecd0('0x77')],_0xecd0('0xb3'),_0xecd0('0xcb'),'downloadInteraction.ejs'),{'interaction':_0x6593ea})[_0xecd0('0x18')](function(_0x25ed1a){var _0x5cb3d7=path[_0xecd0('0x76')](_0x51dff0,'transcript-'+_0x452e6a['id']+'-'+_0x5e8df6+_0xecd0('0xcc'));var _0x1eee15={'path':_0x5cb3d7,'channel':'Chat','interactionId':_0x452e6a['id']};return pdf[_0xecd0('0xcd')](_0x25ed1a,_0x1eee15);})['then'](function(){return new Promise(function(_0x2496c5,_0x4c9192){zipdir(_0x51dff0,{'saveTo':_0x4a7351},function(_0x50cefd,_0xc35eb5){if(_0x50cefd)return _0x4c9192(_0x50cefd);return _0x2496c5(_0xc35eb5);});})['then'](function(){return new BPromise(function(_0x108fd4,_0xa75bc4){rimraf(_0x51dff0,function(_0x1083b2){if(_0x1083b2)_0xa75bc4(_0x1083b2);return _0x108fd4();});});})[_0xecd0('0x18')](function(){return _0x1f00c7[_0xecd0('0x7a')](_0x4a7351,_0x1a6a41,function(_0x406d68){if(_0x406d68){logger[_0xecd0('0x1e')](_0xecd0('0xce'),_0x406d68);}else{fs[_0xecd0('0xcf')](_0x4a7351);}});});});}else{return _0x1f00c7[_0xecd0('0x23')](0xc8);}})['catch'](handleError(_0x1f00c7,null));};