0a1eb5d022f953cb221c6ad3f55b69581a13b368
[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 _0x4522=['jayson/promise','client','http','request','then','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','result','sendStatus','status','end','json','offset','undefined','limit','count','update','destroy','stack','name','render','merge','body','contact','agent','interaction','account','map','rawAttributes','type','key','getOptions','chat','query','user','catch','params','model','ChatInteraction','filters','intersection','attributes','fields','length','includeAll','include','options','create','find','describe','createVidaooSession','findOne','ChatWebsiteId','vidaooApiKey','vidaooEscalation','vidaooTopic','vidaooMetadata','POST','https://api-vidaoo.xcally.com/api/v1/meetings','isNull','vidaooNote','follow','metadata','Sequelize','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','Error\x20in\x20Vidaoo\x20configuration','join_url','out','ChatMessage','updateAttributes','CmContact','Contact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','UserId','Interaction\x20already\x20assigned','disposition','attachmentUpload','file','basename','Attachment','attachmentDownload','closed','attachId','join','root','server/files/attachments/','download','close','server/files/chat/upload/','format','transcript-%s.txt','User','ChatWebsite','Messages','%s%d','agentAlias','System','customer','Visitor','agentIdentifier','website_alias','agent_alias','agent_fullname','fullname','[%s]\x20%s:\x20%s\x0a','MM/DD/YYYY\x20HH:mm:ss','secret','appendFileSync','MailAccount','MailServerOut','Smtp','getSmtpOptions','\x22%s\x22\x20<%s>','email','mailTranscript','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','ids','omit','getMessages','keys','hasOwnProperty','nolimit','order','sort','where','pick','ChatInteractionId','filter','$gte','YYYY-MM-DD\x20HH:mm:ss','findAll','rows','getMyMessages','includeAgent','alias','addTags','setTags','Tag','color','chatInteractionTags:save','removeTags','unix','toString','files','tmp','server','attachments','transcript-%d-%s.zip','push','lastName','createdAt','direction','read','Account','Owner','mkdirSync','Chat','browserName','osName','referer','customerIp','customerPort','tail','createReadStream','createWriteStream','renderFile','views','downloadInteraction.ejs','.pdf','createPdfFromHTML','err','rimraf','zip-dir','request-promise','moment','util','path','ejs','lodash','ioredis','../../components/interaction/service','../../components/export/pdf','api','redis','defaults','localhost','register'];(function(_0x567ac9,_0x43b49e){var _0x101959=function(_0x543727){while(--_0x543727){_0x567ac9['push'](_0x567ac9['shift']());}};_0x101959(++_0x43b49e);}(_0x4522,0x17c));var _0x2452=function(_0x5182be,_0x52dcde){_0x5182be=_0x5182be-0x0;var _0x2538b1=_0x4522[_0x5182be];return _0x2538b1;};'use strict';var rimraf=require(_0x2452('0x0'));var zipdir=require(_0x2452('0x1'));var rp=require(_0x2452('0x2'));var moment=require(_0x2452('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x2452('0x4'));var path=require(_0x2452('0x5'));var ejs=require(_0x2452('0x6'));var fs=require('fs');var _=require(_0x2452('0x7'));var Redis=require(_0x2452('0x8'));var interaction=require(_0x2452('0x9'));var qs=require('../../components/parsers/qs');var pdf=require(_0x2452('0xa'));var logger=require('../../config/logger')(_0x2452('0xb'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];config[_0x2452('0xc')]=_[_0x2452('0xd')](config[_0x2452('0xc')],{'host':_0x2452('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x2452('0xc')]));require('./chatInteraction.socket')[_0x2452('0xf')](socket);var jayson=require(_0x2452('0x10'));var client=jayson[_0x2452('0x11')]['http']({'port':0x232b});var client9004=jayson[_0x2452('0x11')][_0x2452('0x12')]({'port':0x232c});function respondWithRpcPromise(_0x1aae9a,_0x3df8d8,_0x481830,_0x2952b7){return new BPromise(function(_0x206c77,_0x1b1c88){var _0x5b2045=_0x2952b7||client;return _0x5b2045[_0x2452('0x13')](_0x1aae9a,_0x481830)[_0x2452('0x14')](function(_0x2240ae){logger['info'](_0x2452('0x15'),_0x3df8d8,_0x2452('0x16'));logger[_0x2452('0x17')]('ChatInteraction,\x20%s,\x20%s,\x20%s',_0x3df8d8,_0x2452('0x16'),JSON[_0x2452('0x18')](_0x2240ae));if(_0x2240ae[_0x2452('0x19')]){if(_0x2240ae[_0x2452('0x19')][_0x2452('0x1a')]===0x1f4){logger[_0x2452('0x19')](_0x2452('0x15'),_0x3df8d8,_0x2240ae[_0x2452('0x19')][_0x2452('0x1b')]);return _0x1b1c88(_0x2240ae[_0x2452('0x19')][_0x2452('0x1b')]);}logger['error']('ChatInteraction,\x20%s,\x20%s',_0x3df8d8,_0x2240ae[_0x2452('0x19')]['message']);return _0x206c77(_0x2240ae[_0x2452('0x19')]['message']);}else{logger[_0x2452('0x1c')]('ChatInteraction,\x20%s,\x20%s',_0x3df8d8,_0x2452('0x16'));_0x206c77(_0x2240ae[_0x2452('0x1d')][_0x2452('0x1b')]);}})['catch'](function(_0x501601){logger[_0x2452('0x19')](_0x2452('0x15'),_0x3df8d8,_0x501601);_0x1b1c88(_0x501601);});});}function respondWithStatusCode(_0x44d98d,_0x410c5e){_0x410c5e=_0x410c5e||0xcc;return function(_0x19fb50){if(_0x19fb50){return _0x44d98d[_0x2452('0x1e')](_0x410c5e);}return _0x44d98d[_0x2452('0x1f')](_0x410c5e)[_0x2452('0x20')]();};}function respondWithResult(_0x396059,_0x21fe73){_0x21fe73=_0x21fe73||0xc8;return function(_0x34467d){if(_0x34467d){return _0x396059[_0x2452('0x1f')](_0x21fe73)[_0x2452('0x21')](_0x34467d);}};}function respondWithFilteredResult(_0x487e5c,_0x162ca3){return function(_0x4c2ec5){if(_0x4c2ec5){var _0x4c5d97=typeof _0x162ca3[_0x2452('0x22')]===_0x2452('0x23')&&typeof _0x162ca3[_0x2452('0x24')]===_0x2452('0x23');var _0x2f28d6=_0x4c2ec5[_0x2452('0x25')];var _0x257f06=_0x4c5d97?0x0:_0x162ca3[_0x2452('0x22')];var _0x3c6ac9=_0x4c5d97?_0x4c2ec5[_0x2452('0x25')]:_0x162ca3[_0x2452('0x22')]+_0x162ca3[_0x2452('0x24')];var _0x29a479;if(_0x3c6ac9>=_0x2f28d6){_0x3c6ac9=_0x2f28d6;_0x29a479=0xc8;}else{_0x29a479=0xce;}_0x487e5c['status'](_0x29a479);return _0x487e5c['set']('Content-Range',_0x257f06+'-'+_0x3c6ac9+'/'+_0x2f28d6)[_0x2452('0x21')](_0x4c2ec5);}return null;};}function saveUpdates(_0x6e5a4a){return function(_0x576dfd){if(_0x576dfd){return _0x576dfd[_0x2452('0x26')](_0x6e5a4a)[_0x2452('0x14')](function(_0x328ea6){return _0x328ea6;});}return null;};}function removeEntity(_0x12e224){return function(_0x3a319a){if(_0x3a319a){return _0x3a319a[_0x2452('0x27')]()['then'](function(){_0x12e224['status'](0xcc)[_0x2452('0x20')]();});}};}function handleEntityNotFound(_0x1c5d83){return function(_0x3ae622){if(!_0x3ae622){_0x1c5d83[_0x2452('0x1e')](0x194);}return _0x3ae622;};}function handleError(_0x5d36d7,_0x3374b1){_0x3374b1=_0x3374b1||0x1f4;return function(_0xc1a78d){logger['error'](_0xc1a78d[_0x2452('0x28')]);if(_0xc1a78d[_0x2452('0x29')]){delete _0xc1a78d['name'];}_0x5d36d7[_0x2452('0x1f')](_0x3374b1)['send'](_0xc1a78d);};}function getMustacheRender(_0x987c07,_0x1fd399){return Mustache[_0x2452('0x2a')](_0x987c07,_[_0x2452('0x2b')](_0x1fd399[_0x2452('0x2c')],{'contact':_0x1fd399[_0x2452('0x2d')],'message':_0x1fd399[_0x2452('0x1b')],'agent':_0x1fd399[_0x2452('0x2e')],'interaction':_0x1fd399[_0x2452('0x2f')],'account':_0x1fd399[_0x2452('0x30')]}))||'';}exports['index']=function(_0x1058a2,_0x24b0c1){var _0x30f077={};var _0x28c31e=_[_0x2452('0x31')](db['ChatInteraction'][_0x2452('0x32')],function(_0x45a258){return{'name':_0x45a258['fieldName'],'type':_0x45a258[_0x2452('0x33')][_0x2452('0x34')]};});_0x30f077=qs[_0x2452('0x35')](_0x28c31e,_0x1058a2);return interaction['findAll'](_0x2452('0x36'),_0x1058a2[_0x2452('0x37')],_0x1058a2[_0x2452('0x38')],_0x30f077,_0x28c31e)[_0x2452('0x14')](respondWithFilteredResult(_0x24b0c1,_0x30f077))[_0x2452('0x39')](handleError(_0x24b0c1,null));};exports['show']=function(_0x48fe34,_0x5a3af0){var _0x15308a={'raw':![],'where':{'id':_0x48fe34[_0x2452('0x3a')]['id']}},_0x345d03={};_0x345d03[_0x2452('0x3b')]=_['keys'](db[_0x2452('0x3c')][_0x2452('0x32')]);_0x345d03['query']=_['keys'](_0x48fe34[_0x2452('0x37')]);_0x345d03[_0x2452('0x3d')]=_[_0x2452('0x3e')](_0x345d03[_0x2452('0x3b')],_0x345d03[_0x2452('0x37')]);_0x15308a[_0x2452('0x3f')]=_[_0x2452('0x3e')](_0x345d03[_0x2452('0x3b')],qs[_0x2452('0x40')](_0x48fe34[_0x2452('0x37')][_0x2452('0x40')]));_0x15308a[_0x2452('0x3f')]=_0x15308a[_0x2452('0x3f')][_0x2452('0x41')]?_0x15308a[_0x2452('0x3f')]:_0x345d03[_0x2452('0x3b')];if(_0x48fe34[_0x2452('0x37')][_0x2452('0x42')]){_0x15308a[_0x2452('0x43')]=[{'all':!![]}];}_0x15308a=_['merge']({},_0x15308a,_0x48fe34[_0x2452('0x44')]);return db[_0x2452('0x3c')]['find'](_0x15308a)['then'](handleEntityNotFound(_0x5a3af0,null))[_0x2452('0x14')](respondWithResult(_0x5a3af0,null))[_0x2452('0x39')](handleError(_0x5a3af0,null));};exports[_0x2452('0x45')]=function(_0x479132,_0x2304c0){return db[_0x2452('0x3c')][_0x2452('0x45')](_0x479132[_0x2452('0x2c')],{})[_0x2452('0x14')](respondWithResult(_0x2304c0,0xc9))[_0x2452('0x39')](handleError(_0x2304c0,null));};exports[_0x2452('0x26')]=function(_0x125bcf,_0x1c8f86){if(_0x125bcf[_0x2452('0x2c')]['id']){delete _0x125bcf[_0x2452('0x2c')]['id'];}return db[_0x2452('0x3c')][_0x2452('0x46')]({'where':{'id':_0x125bcf['params']['id']}})[_0x2452('0x14')](handleEntityNotFound(_0x1c8f86,null))['then'](saveUpdates(_0x125bcf[_0x2452('0x2c')],null))[_0x2452('0x14')](respondWithResult(_0x1c8f86,null))[_0x2452('0x39')](handleError(_0x1c8f86,null));};exports[_0x2452('0x27')]=function(_0x4ae977,_0x490e57){return db[_0x2452('0x3c')][_0x2452('0x46')]({'where':{'id':_0x4ae977[_0x2452('0x3a')]['id']}})[_0x2452('0x14')](handleEntityNotFound(_0x490e57,null))[_0x2452('0x14')](removeEntity(_0x490e57,null))[_0x2452('0x39')](handleError(_0x490e57,null));};exports[_0x2452('0x47')]=function(_0x1e6d26,_0x60b3b8){return db[_0x2452('0x3c')]['describe']()[_0x2452('0x14')](respondWithResult(_0x60b3b8,null))[_0x2452('0x39')](handleError(_0x60b3b8,null));};exports[_0x2452('0x48')]=function(_0x12691c,_0x11ad25){var _0x4ee23e=_0x12691c[_0x2452('0x3a')]['id'];var _0x4e14c4;var _0x3ce6af;var _0x51a357;return db[_0x2452('0x3c')][_0x2452('0x49')]({'where':{'id':_0x4ee23e}})[_0x2452('0x14')](function(_0x548847){_0x4e14c4=_0x548847;return db['ChatWebsite'][_0x2452('0x49')]({'where':{'id':_0x548847[_0x2452('0x4a')]},'attributes':['id',_0x2452('0x4b'),_0x2452('0x4c'),_0x2452('0x4d'),'vidaooNote',_0x2452('0x4e')],'raw':!![]});})[_0x2452('0x14')](function(_0x380736){if(_0x380736&&_0x380736[_0x2452('0x4b')]&&_0x380736['vidaooEscalation']){_0x3ce6af=_0x380736;var _0x300eeb={'interaction':{'id':_0x4ee23e},'agent':{'id':_0x12691c['user']['id'],'name':_0x12691c[_0x2452('0x38')][_0x2452('0x29')],'fullname':_0x12691c['user']['fullname'],'email':_0x12691c[_0x2452('0x38')]['email']},'contact':_0x12691c[_0x2452('0x2c')][_0x2452('0x2d')],'account':_0x12691c['body'][_0x2452('0x30')]};var _0x227c24={'rejectUnauthorized':![],'method':_0x2452('0x4f'),'url':_0x2452('0x50'),'headers':{'X-APIKEY':_0x380736[_0x2452('0x4b')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x12691c[_0x2452('0x38')]['email']],'buttons':null,'topic':_0x3ce6af['vidaooTopic'],'note':_[_0x2452('0x51')](_0x3ce6af[_0x2452('0x52')])?null:getMustacheRender(_0x3ce6af[_0x2452('0x52')],_0x300eeb),'metadata':null},'redirect':_0x2452('0x53'),'json':!![]};try{if(!_[_0x2452('0x51')](_0x3ce6af[_0x2452('0x4e')])){var _0x122ed7=getMustacheRender(_0x3ce6af[_0x2452('0x4e')],_0x300eeb);var _0x107efb=JSON['parse'](_0x122ed7);_0x227c24['body'][_0x2452('0x54')]=_0x107efb;}}catch(_0x169e05){throw new db[(_0x2452('0x55'))][(_0x2452('0x56'))](_0x2452('0x57'));}return rp(_0x227c24);}else{throw new db['Sequelize'][(_0x2452('0x56'))](_0x2452('0x58'));}})[_0x2452('0x14')](function(_0x56629f){_0x51a357=_0x56629f;if(_0x51a357['id']){var _0x3f419c={'body':_0x51a357[_0x2452('0x59')],'ChatWebsiteId':_0x3ce6af['id'],'ChatInteractionId':_0x4e14c4['id'],'direction':_0x2452('0x5a'),'UserId':_0x12691c[_0x2452('0x38')]['id']};return db[_0x2452('0x5b')][_0x2452('0x45')](_0x3f419c,{});}else{throw new db[(_0x2452('0x55'))][(_0x2452('0x56'))]('Unable\x20to\x20create\x20Vidaoo\x20session');}})[_0x2452('0x14')](function(){return _0x4e14c4[_0x2452('0x5c')]({'vidaooSessionId':_0x51a357['id']});})[_0x2452('0x14')](respondWithResult(_0x11ad25,null))[_0x2452('0x39')](handleError(_0x11ad25,null));};exports['customUpdate']=function(_0x3c2deb,_0x1e2245){if(_0x3c2deb['body']['id']){delete _0x3c2deb[_0x2452('0x2c')]['id'];}return db[_0x2452('0x3c')]['find']({'where':{'id':_0x3c2deb[_0x2452('0x3a')]['id']},'include':[{'model':db[_0x2452('0x5d')],'as':_0x2452('0x5e')}]})[_0x2452('0x14')](handleEntityNotFound(_0x1e2245,null))['then'](saveUpdates(_0x3c2deb[_0x2452('0x2c')],null))['then'](respondWithResult(_0x1e2245,null))[_0x2452('0x39')](handleError(_0x1e2245,null));};exports[_0x2452('0x5f')]=function(_0x1242a8,_0xa799ca){if(_0x1242a8[_0x2452('0x2c')]['id']){delete _0x1242a8[_0x2452('0x2c')]['id'];}return db[_0x2452('0x3c')][_0x2452('0x46')]({'where':{'id':_0x1242a8[_0x2452('0x3a')]['id']}})[_0x2452('0x14')](function(_0x348b0c){if(!_0x348b0c){logger[_0x2452('0x19')](_0x2452('0x60'),_0x2452('0x5f'),0x194,_0x2452('0x61'));_0xa799ca[_0x2452('0x1e')](0x194);}else{if(_0x348b0c[_0x2452('0x62')]){throw new db['Sequelize']['ValidationError'](_0x2452('0x63'));}}return _0x348b0c;})[_0x2452('0x14')](function(_0x15eba4){if(_0x15eba4){return _0x15eba4[_0x2452('0x26')]({'closed':_0x1242a8[_0x2452('0x2c')]['closed'],'disposition':_0x1242a8['body'][_0x2452('0x64')]})[_0x2452('0x14')](function(_0x3d0985){return _0x3d0985;});}})['then'](function(){return respondWithRpcPromise('AbandonInteraction',_0x2452('0x5f'),_0x1242a8[_0x2452('0x2c')],client9004);})[_0x2452('0x14')](respondWithResult(_0xa799ca,null))[_0x2452('0x39')](handleError(_0xa799ca,null));};exports[_0x2452('0x65')]=function(_0x77a3c8,_0x5c872e){_0x77a3c8[_0x2452('0x2c')][_0x2452('0x29')]=_0x77a3c8[_0x2452('0x66')]['originalname'];_0x77a3c8[_0x2452('0x2c')][_0x2452('0x67')]=_0x77a3c8[_0x2452('0x66')]['filename'];_0x77a3c8[_0x2452('0x2c')][_0x2452('0x33')]=_0x77a3c8['file']['mimetype'];return db[_0x2452('0x68')]['create'](_0x77a3c8[_0x2452('0x2c')])[_0x2452('0x14')](respondWithResult(_0x5c872e,0xc9))['catch'](handleError(_0x5c872e,null));};exports[_0x2452('0x69')]=function(_0x54252f,_0x2f5d91){return db['ChatInteraction'][_0x2452('0x49')]({'where':{'id':_0x54252f['params']['id']},'raw':!![]})[_0x2452('0x14')](handleEntityNotFound(_0x2f5d91,null))[_0x2452('0x14')](function(_0x3d9cda){if(_0x3d9cda){if(_0x3d9cda[_0x2452('0x6a')]){return _0x2f5d91[_0x2452('0x1f')](0x193)[_0x2452('0x21')]({'status':0x193,'message':'Unauthorized'});}return db[_0x2452('0x68')][_0x2452('0x49')]({'where':{'id':_0x54252f[_0x2452('0x37')][_0x2452('0x6b')]},'raw':!![]})[_0x2452('0x14')](handleEntityNotFound(_0x2f5d91,null));}})[_0x2452('0x14')](function(_0x39678d){if(_0x39678d){var _0x5b660b=_0x39678d['ChatOfflineMessageId']!==null;var _0x179613=path[_0x2452('0x6c')](config[_0x2452('0x6d')],_0x2452('0x6e'));if(_0x5b660b){_0x179613=path['join'](_0x179613,'offline-chat/');}var _0x4d1778=path[_0x2452('0x6c')](_0x179613,_0x39678d[_0x2452('0x67')]);return _0x2f5d91[_0x2452('0x6f')](_0x4d1778);}})[_0x2452('0x39')](handleError(_0x2f5d91,null));};exports[_0x2452('0x70')]=function(_0x443ab3,_0x6f25fe){var _0x10dd96=null;var _0x5cd2dc=null;var _0x3217ce=null;if(_0x443ab3['body']['id']){delete _0x443ab3[_0x2452('0x2c')]['id'];}if(_0x443ab3[_0x2452('0x2c')]['mailTranscript']){_0x3217ce=path[_0x2452('0x6c')](config[_0x2452('0x6d')],_0x2452('0x71'),util[_0x2452('0x72')](_0x2452('0x73'),Date['now']()));_0x443ab3[_0x2452('0x2c')]['pathTranscript']=_0x3217ce;}return db[_0x2452('0x3c')][_0x2452('0x46')]({'where':{'id':_0x443ab3[_0x2452('0x3a')]['id']},'include':[{'model':db[_0x2452('0x5b')],'as':'Messages','include':[{'model':db[_0x2452('0x74')],'as':_0x2452('0x74')}]}]})['then'](handleEntityNotFound(_0x6f25fe,null))[_0x2452('0x14')](saveUpdates(_0x443ab3[_0x2452('0x2c')],null))[_0x2452('0x14')](function(_0x2a18f3){if(_0x2a18f3){_0x10dd96=_0x2a18f3;return db[_0x2452('0x75')][_0x2452('0x46')]({'where':{'id':_0x10dd96['ChatWebsiteId']}});}})['then'](function(_0x524228){if(_0x524228){_0x5cd2dc=_0x524228;return db[_0x2452('0x5d')][_0x2452('0x46')]({'where':{'id':_0x10dd96['ContactId']}});}})[_0x2452('0x14')](function(_0x276be5){if(_0x276be5){if(_0x3217ce){var _0x4bb9bf=null;for(var _0x16d188=0x1;_0x16d188<_0x10dd96[_0x2452('0x76')][_0x2452('0x41')];++_0x16d188){_0x4bb9bf=_0x10dd96['Messages'][_0x16d188];var _0x388b95=_0x4bb9bf[_0x2452('0x62')]?util[_0x2452('0x72')](_0x2452('0x77'),_0x5cd2dc[_0x2452('0x78')],_0x4bb9bf['UserId']):_0x2452('0x79');var _0x2fa2d8=_0x443ab3[_0x2452('0x2c')][_0x2452('0x7a')]||util[_0x2452('0x72')](_0x2452('0x77'),_0x2452('0x7b'),_0x4bb9bf['ContactId']);switch(_0x5cd2dc[_0x2452('0x7c')]){case _0x2452('0x7d'):_0x388b95=_0x4bb9bf[_0x2452('0x62')]?util[_0x2452('0x72')](_0x2452('0x77'),_0x5cd2dc[_0x2452('0x78')],_0x4bb9bf['UserId']):_0x2452('0x79');break;case _0x2452('0x7e'):_0x388b95=_0x4bb9bf[_0x2452('0x62')]?_0x4bb9bf[_0x2452('0x74')]['alias']||_0x4bb9bf['User']['fullname']:_0x2452('0x79');break;case _0x2452('0x7f'):_0x388b95=_0x4bb9bf[_0x2452('0x62')]?_0x4bb9bf['User'][_0x2452('0x80')]:_0x2452('0x79');break;default:_0x388b95=_0x4bb9bf[_0x2452('0x62')]?util[_0x2452('0x72')](_0x2452('0x77'),_0x5cd2dc['agentAlias'],_0x4bb9bf[_0x2452('0x62')]):'System';}var _0x21f868=util[_0x2452('0x72')](_0x2452('0x81'),moment(_0x4bb9bf['createdAt'])[_0x2452('0x72')](_0x2452('0x82')),_0x4bb9bf['direction']==='in'?_0x2fa2d8:_0x388b95,_0x4bb9bf[_0x2452('0x2c')]);if(!_0x4bb9bf[_0x2452('0x83')]){fs[_0x2452('0x84')](_0x3217ce,_0x21f868);}}return db[_0x2452('0x85')][_0x2452('0x49')]({'where':{'service':!![]},'include':[{'model':db[_0x2452('0x86')],'as':'Smtp','raw':!![],'include':[{'model':db['CloudProvider'],'as':'CloudProvider','raw':!![]}]}]});}}})[_0x2452('0x14')](function(_0x1c5f31){if(!_0x1c5f31||!_0x1c5f31[_0x2452('0x87')]||!_0x443ab3[_0x2452('0x2c')])return _0x10dd96;var _0x401a7c=_0x1c5f31[_0x2452('0x88')]();return respondWithRpcPromise('SendMail','sendMail',{'account':_0x401a7c,'message':{'from':util['format'](_0x2452('0x89'),_0x1c5f31[_0x2452('0x29')],_0x1c5f31[_0x2452('0x8a')]||_0x1c5f31[_0x2452('0x87')][_0x2452('0x38')]),'to':_0x443ab3['body'][_0x2452('0x8b')],'subject':_0x2452('0x8c'),'text':util['format'](_0x2452('0x8d'),_0x443ab3[_0x2452('0x2c')][_0x2452('0x8b')]),'attachments':[{'path':_0x3217ce}]}})[_0x2452('0x14')](function(){return _0x10dd96;})[_0x2452('0x39')](function(_0x3c4764){logger[_0x2452('0x19')](_0x3c4764);});})['then'](respondWithStatusCode(_0x6f25fe,0xc8))['catch'](handleError(_0x6f25fe,null));};exports[_0x2452('0x8e')]=function(_0x4d98a2,_0x7649dc){return db[_0x2452('0x5b')]['find']({'where':{'id':_0x4d98a2[_0x2452('0x3a')]['id']}})[_0x2452('0x14')](handleEntityNotFound(_0x7649dc,null))[_0x2452('0x14')](function(_0x524f33){if(_0x524f33){return _0x524f33[_0x2452('0x8e')](_0x4d98a2['body'][_0x2452('0x8f')],_[_0x2452('0x90')](_0x4d98a2[_0x2452('0x2c')],['ids','id'])||{});}})['then'](respondWithResult(_0x7649dc,null))[_0x2452('0x39')](handleError(_0x7649dc,null));};exports[_0x2452('0x91')]=function(_0x5ae59b,_0x4f58c0){var _0x531592={'raw':![],'where':{}};var _0xafc7d3={};var _0x14e0bd={'count':0x0,'rows':[]};return db[_0x2452('0x3c')][_0x2452('0x49')]({'where':{'id':_0x5ae59b[_0x2452('0x3a')]['id']}})[_0x2452('0x14')](handleEntityNotFound(_0x4f58c0,null))[_0x2452('0x14')](function(_0x1d8acf){if(_0x1d8acf){_0xafc7d3[_0x2452('0x3b')]=_[_0x2452('0x92')](db[_0x2452('0x5b')][_0x2452('0x32')]);_0xafc7d3['query']=_['keys'](_0x5ae59b['query']);_0xafc7d3[_0x2452('0x3d')]=_[_0x2452('0x3e')](_0xafc7d3[_0x2452('0x3b')],_0xafc7d3[_0x2452('0x37')]);_0x531592[_0x2452('0x3f')]=_[_0x2452('0x3e')](_0xafc7d3[_0x2452('0x3b')],qs[_0x2452('0x40')](_0x5ae59b['query'][_0x2452('0x40')]));_0x531592[_0x2452('0x3f')]=_0x531592[_0x2452('0x3f')][_0x2452('0x41')]?_0x531592[_0x2452('0x3f')]:_0xafc7d3[_0x2452('0x3b')];if(!_0x5ae59b[_0x2452('0x37')][_0x2452('0x93')](_0x2452('0x94'))){_0x531592[_0x2452('0x24')]=qs[_0x2452('0x24')](_0x5ae59b[_0x2452('0x37')][_0x2452('0x24')]);_0x531592[_0x2452('0x22')]=qs['offset'](_0x5ae59b[_0x2452('0x37')][_0x2452('0x22')]);}_0x531592[_0x2452('0x95')]=qs['sort'](_0x5ae59b[_0x2452('0x37')][_0x2452('0x96')]);_0x531592[_0x2452('0x97')]=qs[_0x2452('0x3d')](_[_0x2452('0x98')](_0x5ae59b['query'],_0xafc7d3[_0x2452('0x3d')]));_0x531592['where'][_0x2452('0x99')]=_0x1d8acf['id'];if(_0x5ae59b['query'][_0x2452('0x9a')]){_0x531592[_0x2452('0x97')]=_[_0x2452('0x2b')](_0x531592['where'],{'$or':_[_0x2452('0x31')](_0x531592['attributes'],function(_0x6719c4){var _0x1c0380={};_0x1c0380[_0x6719c4]={'$like':'%'+_0x5ae59b[_0x2452('0x37')]['filter']+'%'};return _0x1c0380;})});}if(_0x5ae59b[_0x2452('0x37')][_0x2452('0x9b')]){var _0x1ca1b0=_0x5ae59b[_0x2452('0x37')][_0x2452('0x9b')]['split'](',');var _0x45bf6f={};_0x45bf6f[_0x1ca1b0[0x0]]={'$gte':moment(_0x1ca1b0[0x1])[_0x2452('0x72')](_0x2452('0x9c'))};_0x531592[_0x2452('0x97')]=_[_0x2452('0x2b')](_0x531592[_0x2452('0x97')],_0x45bf6f);}_0x531592=_['merge']({},_0x531592,_0x5ae59b[_0x2452('0x44')]);return db['ChatMessage'][_0x2452('0x25')]({'where':_0x531592[_0x2452('0x97')]})[_0x2452('0x14')](function(_0x1b252b){_0x14e0bd[_0x2452('0x25')]=_0x1b252b;if(_0x5ae59b[_0x2452('0x37')][_0x2452('0x42')]){_0x531592['include']=[{'all':!![]}];}return db['ChatMessage'][_0x2452('0x9d')](_0x531592);})[_0x2452('0x14')](function(_0xa1b2f3){_0x14e0bd[_0x2452('0x9e')]=_0xa1b2f3;return _0x14e0bd;});}})[_0x2452('0x14')](respondWithFilteredResult(_0x4f58c0,_0x531592))[_0x2452('0x39')](handleError(_0x4f58c0,null));};exports[_0x2452('0x9f')]=function(_0x48d261,_0x2431e4){var _0x21b2c3={'where':{}},_0x2f1700={},_0x4be58f={'count':0x0,'rows':[]};return db[_0x2452('0x3c')][_0x2452('0x49')]({'where':{'id':_0x48d261[_0x2452('0x3a')]['id']}})['then'](handleEntityNotFound(_0x2431e4,null))[_0x2452('0x14')](function(_0x3c4885){if(_0x3c4885){_0x2f1700[_0x2452('0x3b')]=_[_0x2452('0x92')](db[_0x2452('0x5b')][_0x2452('0x32')]);_0x2f1700[_0x2452('0x37')]=_[_0x2452('0x92')](_0x48d261[_0x2452('0x37')]);_0x2f1700[_0x2452('0x3d')]=_[_0x2452('0x3e')](_0x2f1700[_0x2452('0x3b')],_0x2f1700[_0x2452('0x37')]);_0x21b2c3[_0x2452('0x3f')]=_[_0x2452('0x3e')](_0x2f1700[_0x2452('0x3b')],qs[_0x2452('0x40')](_0x48d261[_0x2452('0x37')]['fields']));_0x21b2c3[_0x2452('0x3f')]=_0x21b2c3[_0x2452('0x3f')]['length']?_0x21b2c3['attributes']:_0x2f1700['model'];if(!_0x48d261[_0x2452('0x37')]['hasOwnProperty']('nolimit')){_0x21b2c3['limit']=qs[_0x2452('0x24')](_0x48d261[_0x2452('0x37')][_0x2452('0x24')]);_0x21b2c3[_0x2452('0x22')]=qs[_0x2452('0x22')](_0x48d261[_0x2452('0x37')][_0x2452('0x22')]);}_0x21b2c3[_0x2452('0x95')]=qs[_0x2452('0x96')](_0x48d261[_0x2452('0x37')][_0x2452('0x96')]);_0x21b2c3[_0x2452('0x97')]=qs[_0x2452('0x3d')](_[_0x2452('0x98')](_0x48d261[_0x2452('0x37')],_0x2f1700['filters']));_0x21b2c3[_0x2452('0x97')][_0x2452('0x99')]=_0x3c4885['id'];if(_0x48d261['query'][_0x2452('0x9a')]){_0x21b2c3[_0x2452('0x97')]=_[_0x2452('0x2b')](_0x21b2c3['where'],{'$or':_[_0x2452('0x31')](_0x21b2c3[_0x2452('0x3f')],function(_0x761d2b){var _0x4bc394={};_0x4bc394[_0x761d2b]={'$like':'%'+_0x48d261['query'][_0x2452('0x9a')]+'%'};return _0x4bc394;})});}_0x21b2c3[_0x2452('0x97')][_0x2452('0x83')]=![];if(_0x48d261[_0x2452('0x37')]['id']){_0x21b2c3[_0x2452('0x97')]['id']={'$gt':_0x48d261[_0x2452('0x37')]['id']};}_0x21b2c3=_['merge']({},_0x21b2c3,_0x48d261[_0x2452('0x44')]);return db[_0x2452('0x5b')][_0x2452('0x25')]({'where':_0x21b2c3[_0x2452('0x97')]})[_0x2452('0x14')](function(_0x1361f1){_0x4be58f[_0x2452('0x25')]=_0x1361f1;_0x21b2c3[_0x2452('0x43')]=[];if(_0x48d261[_0x2452('0x37')][_0x2452('0xa0')]){_0x21b2c3[_0x2452('0x43')]['push']({'model':db[_0x2452('0x74')],'as':_0x2452('0x74'),'attributes':['id',_0x2452('0x80'),_0x2452('0xa1')]});}if(_0x48d261[_0x2452('0x37')][_0x2452('0x42')]){_0x21b2c3[_0x2452('0x43')]=[{'all':!![]}];}return db[_0x2452('0x5b')][_0x2452('0x9d')](_0x21b2c3);})[_0x2452('0x14')](function(_0x447f0b){_0x4be58f[_0x2452('0x9e')]=_0x447f0b;return _0x4be58f;});}})[_0x2452('0x14')](respondWithFilteredResult(_0x2431e4,_0x21b2c3))[_0x2452('0x39')](handleError(_0x2431e4,null));};exports[_0x2452('0xa2')]=function(_0x53d649,_0x10b0a3){return db[_0x2452('0x3c')][_0x2452('0x46')]({'where':{'id':_0x53d649['params']['id']}})[_0x2452('0x14')](handleEntityNotFound(_0x10b0a3,null))[_0x2452('0x14')](function(_0x174a93){if(_0x174a93){return _0x174a93[_0x2452('0xa3')](_0x53d649[_0x2452('0x2c')][_0x2452('0x8f')],_[_0x2452('0x90')](_0x53d649['body'],[_0x2452('0x8f'),'id'])||{})['spread'](function(){return db[_0x2452('0xa4')][_0x2452('0x9d')]({'attributes':['id',_0x2452('0x29'),_0x2452('0xa5')],'where':{'id':_0x53d649[_0x2452('0x2c')][_0x2452('0x8f')]}});})[_0x2452('0x14')](function(_0x6b1d62){socket['emit'](_0x2452('0xa6'),{'id':Number(_0x53d649['params']['id']),'tags':_0x6b1d62||[]});return{'id':Number(_0x53d649[_0x2452('0x3a')]['id']),'tags':_0x6b1d62||[]};});}})[_0x2452('0x14')](respondWithResult(_0x10b0a3,null))[_0x2452('0x39')](handleError(_0x10b0a3,null));};exports[_0x2452('0xa7')]=function(_0x15c08e,_0x224ed5){return db[_0x2452('0x3c')]['find']({'where':{'id':_0x15c08e['params']['id']}})[_0x2452('0x14')](handleEntityNotFound(_0x224ed5,null))[_0x2452('0x14')](function(_0x32e86f){if(_0x32e86f){return _0x32e86f[_0x2452('0xa7')](_0x15c08e['query']['ids']);}})[_0x2452('0x14')](respondWithStatusCode(_0x224ed5,null))[_0x2452('0x39')](handleError(_0x224ed5,null));};exports['download']=function(_0x25127e,_0x20eb36){var _0x3aff48=moment()[_0x2452('0xa8')]()[_0x2452('0xa9')]();var _0x406a28=path[_0x2452('0x6c')](config[_0x2452('0x6d')],'server',_0x2452('0xaa'),_0x2452('0xab'));var _0x3e57ad=path[_0x2452('0x6c')](config[_0x2452('0x6d')],_0x2452('0xac'),'files',_0x2452('0xad'));var _0x9c5bbb=path['join'](_0x406a28,_0x3aff48);var _0x748b85=util['format'](_0x2452('0xae'),_0x25127e['params']['id'],_0x3aff48);var _0x499578=path[_0x2452('0x6c')](_0x406a28,_0x748b85);var _0x35e949=[];_0x35e949[_0x2452('0xaf')]({'model':db[_0x2452('0x74')],'as':_0x2452('0x74'),'attributes':['id',_0x2452('0x80')],'raw':!![]});_0x35e949[_0x2452('0xaf')]({'model':db[_0x2452('0x5d')],'as':_0x2452('0x5e'),'attributes':['id','firstName',_0x2452('0xb0')],'raw':!![]});if(_0x25127e[_0x2452('0x37')]['attachments']){_0x35e949[_0x2452('0xaf')]({'model':db[_0x2452('0x68')],'as':'Attachment','raw':!![]});}var _0x379289=[{'model':db['ChatMessage'],'as':_0x2452('0x76'),'attributes':['id','body',_0x2452('0xb1'),_0x2452('0xb2'),_0x2452('0x83'),_0x2452('0xb3')],'include':_0x35e949}];_0x379289[_0x2452('0xaf')]({'model':db[_0x2452('0x75')],'as':_0x2452('0xb4'),'attributes':['id',_0x2452('0x29')]});_0x379289['push']({'model':db[_0x2452('0x74')],'as':_0x2452('0xb5'),'attributes':['id',_0x2452('0x80')]});return db['ChatInteraction'][_0x2452('0x46')]({'where':{'id':_0x25127e[_0x2452('0x3a')]['id']},'include':_0x379289})['then'](handleEntityNotFound(_0x20eb36,null))['then'](function(_0x6f89a8){if(_0x6f89a8){var _0x3e4acf=_0x6f89a8['get']({'plain':!![]});fs[_0x2452('0xb6')](_0x9c5bbb);var _0x355089={'channel':_0x2452('0xb7'),'account':_0x3e4acf['Account']['name'],'agent':_0x3e4acf['Owner']?_0x3e4acf['Owner']['fullname']:'N.A.','createdAt':moment(_0x3e4acf[_0x2452('0xb1')])[_0x2452('0x72')]('YYYY-MM-DD\x20HH:mm:ss')[_0x2452('0xa9')](),'closedAt':_0x3e4acf[_0x2452('0x6a')]?moment(_0x3e4acf['closedAt'])[_0x2452('0x72')](_0x2452('0x9c'))[_0x2452('0xa9')]():'','disposition':_0x3e4acf[_0x2452('0x64')],'chatInfo':{'browser':_0x3e4acf[_0x2452('0xb8')],'os':_0x3e4acf[_0x2452('0xb9')],'referer':_0x3e4acf[_0x2452('0xba')],'customerIp':_0x3e4acf[_0x2452('0xbb')],'customerPort':_0x3e4acf[_0x2452('0xbc')]?_0x3e4acf[_0x2452('0xbc')]:'N.A.'},'messages':_(_0x3e4acf['Messages'])[_0x2452('0xbd')]()[_0x2452('0x9a')]({'secret':![]})[_0x2452('0x31')](function(_0x35a5a4){if(_0x35a5a4[_0x2452('0x68')]){var _0x51aaeb=path[_0x2452('0x6c')](_0x3e57ad,_0x35a5a4[_0x2452('0x68')][_0x2452('0x67')]);if(fs['existsSync'](_0x51aaeb)){fs[_0x2452('0xbe')](_0x51aaeb)['pipe'](fs[_0x2452('0xbf')](path[_0x2452('0x6c')](_0x9c5bbb,_0x35a5a4[_0x2452('0x68')]['basename'])));}}return{'date':moment(_0x35a5a4[_0x2452('0xb1')])[_0x2452('0x72')](_0x2452('0x9c'))[_0x2452('0xa9')](),'sender':_0x35a5a4[_0x2452('0xb2')]===_0x2452('0x5a')?_0x35a5a4[_0x2452('0x74')]?_0x35a5a4['User'][_0x2452('0x80')]:_0x2452('0x79'):_0x35a5a4[_0x2452('0x5e')]['firstName']+(_0x35a5a4[_0x2452('0x5e')][_0x2452('0xb0')]?'\x20'+_0x35a5a4[_0x2452('0x5e')][_0x2452('0xb0')]:''),'body':_0x35a5a4[_0x2452('0x68')]?_0x35a5a4['Attachment'][_0x2452('0x67')]:_0x35a5a4[_0x2452('0x2c')],'direction':_0x35a5a4[_0x2452('0xb2')]===_0x2452('0x5a')?'A':'C','secret':_0x35a5a4[_0x2452('0x83')],'read':_0x35a5a4[_0x2452('0xb3')],'attachment':_0x35a5a4[_0x2452('0x68')]};})['value']()};return ejs[_0x2452('0xc0')](path['join'](config['root'],'server',_0x2452('0xc1'),_0x2452('0xc2')),{'interaction':_0x355089})[_0x2452('0x14')](function(_0x120771){var _0x2b393b=path['join'](_0x9c5bbb,'transcript-'+_0x3e4acf['id']+'-'+_0x3aff48+_0x2452('0xc3'));var _0x8a7404={'path':_0x2b393b,'channel':_0x2452('0xb7'),'interactionId':_0x3e4acf['id']};return pdf[_0x2452('0xc4')](_0x120771,_0x8a7404);})['then'](function(){return new Promise(function(_0x48140b,_0x3baa35){zipdir(_0x9c5bbb,{'saveTo':_0x499578},function(_0x8f8bf4,_0x2ce874){if(_0x8f8bf4)return _0x3baa35(_0x8f8bf4);return _0x48140b(_0x2ce874);});})['then'](function(){return new BPromise(function(_0x3bd5bc,_0x51f697){rimraf(_0x9c5bbb,function(_0x4d7d9b){if(_0x4d7d9b)_0x51f697(_0x4d7d9b);return _0x3bd5bc();});});})['then'](function(){return _0x20eb36[_0x2452('0x6f')](_0x499578,_0x748b85,function(_0x270b30){if(_0x270b30){logger[_0x2452('0x19')](_0x2452('0xc5'),_0x270b30);}else{fs['unlinkSync'](_0x499578);}});});});}else{return _0x20eb36[_0x2452('0x1e')](0xc8);}})['catch'](handleError(_0x20eb36,null));};