Built motion from commit fe909640.|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 _0x330c=['nolimit','sort','where','filter','$gte','split','rawAttributes','pick','includeAgent','push','rows','setTags','Tag','color','emit','removeTags','toString','server','tmp','files','attachments','transcript-%d-%s.zip','firstName','lastName','direction','read','Owner','get','mkdirSync','Chat','YYYY-MM-DD\x20HH:mm:ss','browserName','osName','customerPort','N.A.','tail','existsSync','createReadStream','createWriteStream','Contact','views','downloadInteraction.ejs','.pdf','createPdfFromHTML','download','err','unlinkSync','rimraf','bluebird','util','path','ejs','ioredis','../../components/interaction/service','../../components/export/pdf','../../config/logger','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','client','http','request','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','sendStatus','status','json','offset','undefined','limit','count','set','update','destroy','end','stack','send','render','merge','body','contact','interaction','index','map','fieldName','key','getOptions','findAll','chat','query','user','catch','show','params','keys','filters','intersection','model','attributes','fields','includeAll','include','options','ChatInteraction','find','describe','createVidaooSession','findOne','vidaooApiKey','vidaooEscalation','vidaooTopic','vidaooNote','vidaooMetadata','email','account','https://api-vidaoo.xcally.com/api/v1/meetings','isNull','follow','parse','metadata','Sequelize','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','Error\x20in\x20Vidaoo\x20configuration','join_url','out','ChatMessage','create','Unable\x20to\x20create\x20Vidaoo\x20session','customUpdate','CmContact','abandon','entity\x20not\x20found','UserId','Interaction\x20already\x20assigned','closed','disposition','AbandonInteraction','attachmentUpload','name','file','originalname','basename','filename','type','mimetype','Attachment','attachmentDownload','Unauthorized','join','close','mailTranscript','root','server/files/chat/upload/','format','now','pathTranscript','User','ContactId','length','Messages','%s%d','agentAlias','System','customer','agentIdentifier','agent_alias','alias','fullname','[%s]\x20%s:\x20%s\x0a','createdAt','secret','appendFileSync','MailServerOut','Smtp','CloudProvider','getSmtpOptions','SendMail','sendMail','\x22%s\x22\x20<%s>','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','ids','omit','hasOwnProperty'];(function(_0x3548d8,_0x2b64ef){var _0x538d14=function(_0xbbf0ed){while(--_0xbbf0ed){_0x3548d8['push'](_0x3548d8['shift']());}};_0x538d14(++_0x2b64ef);}(_0x330c,0xf5));var _0xc330=function(_0x1d5685,_0x2f2491){_0x1d5685=_0x1d5685-0x0;var _0x4bdd3e=_0x330c[_0x1d5685];return _0x4bdd3e;};'use strict';var rimraf=require(_0xc330('0x0'));var zipdir=require('zip-dir');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xc330('0x1'));var Mustache=require('mustache');var util=require(_0xc330('0x2'));var path=require(_0xc330('0x3'));var ejs=require(_0xc330('0x4'));var fs=require('fs');var _=require('lodash');var Redis=require(_0xc330('0x5'));var interaction=require(_0xc330('0x6'));var qs=require('../../components/parsers/qs');var pdf=require(_0xc330('0x7'));var logger=require(_0xc330('0x8'))('api');var config=require(_0xc330('0x9'));var db=require(_0xc330('0xa'))['db'];config[_0xc330('0xb')]=_[_0xc330('0xc')](config[_0xc330('0xb')],{'host':_0xc330('0xd'),'port':0x18eb});var socket=require(_0xc330('0xe'))(new Redis(config[_0xc330('0xb')]));require('./chatInteraction.socket')[_0xc330('0xf')](socket);var jayson=require('jayson/promise');var client=jayson[_0xc330('0x10')][_0xc330('0x11')]({'port':0x232b});var client9004=jayson[_0xc330('0x10')][_0xc330('0x11')]({'port':0x232c});function respondWithRpcPromise(_0x45cbeb,_0x56fc3f,_0x4a01f4,_0x2aa6a8){return new BPromise(function(_0xabdeff,_0x583b55){var _0x1e16e2=_0x2aa6a8||client;return _0x1e16e2[_0xc330('0x12')](_0x45cbeb,_0x4a01f4)[_0xc330('0x13')](function(_0x34a232){logger[_0xc330('0x14')](_0xc330('0x15'),_0x56fc3f,_0xc330('0x16'));logger[_0xc330('0x17')]('ChatInteraction,\x20%s,\x20%s,\x20%s',_0x56fc3f,_0xc330('0x16'),JSON[_0xc330('0x18')](_0x34a232));if(_0x34a232[_0xc330('0x19')]){if(_0x34a232[_0xc330('0x19')][_0xc330('0x1a')]===0x1f4){logger[_0xc330('0x19')](_0xc330('0x15'),_0x56fc3f,_0x34a232[_0xc330('0x19')][_0xc330('0x1b')]);return _0x583b55(_0x34a232['error'][_0xc330('0x1b')]);}logger[_0xc330('0x19')](_0xc330('0x15'),_0x56fc3f,_0x34a232['error'][_0xc330('0x1b')]);return _0xabdeff(_0x34a232[_0xc330('0x19')]['message']);}else{logger[_0xc330('0x14')](_0xc330('0x15'),_0x56fc3f,_0xc330('0x16'));_0xabdeff(_0x34a232[_0xc330('0x1c')][_0xc330('0x1b')]);}})['catch'](function(_0x460e0d){logger[_0xc330('0x19')]('ChatInteraction,\x20%s,\x20%s',_0x56fc3f,_0x460e0d);_0x583b55(_0x460e0d);});});}function respondWithStatusCode(_0x452129,_0x493bd8){_0x493bd8=_0x493bd8||0xcc;return function(_0x53f22e){if(_0x53f22e){return _0x452129[_0xc330('0x1d')](_0x493bd8);}return _0x452129[_0xc330('0x1e')](_0x493bd8)['end']();};}function respondWithResult(_0x2ee91e,_0x399715){_0x399715=_0x399715||0xc8;return function(_0x198448){if(_0x198448){return _0x2ee91e['status'](_0x399715)[_0xc330('0x1f')](_0x198448);}};}function respondWithFilteredResult(_0x41af34,_0xb1aa5e){return function(_0x43cbdc){if(_0x43cbdc){var _0x4a403b=typeof _0xb1aa5e[_0xc330('0x20')]===_0xc330('0x21')&&typeof _0xb1aa5e[_0xc330('0x22')]===_0xc330('0x21');var _0x210357=_0x43cbdc[_0xc330('0x23')];var _0x3cbd9d=_0x4a403b?0x0:_0xb1aa5e['offset'];var _0x14a47b=_0x4a403b?_0x43cbdc[_0xc330('0x23')]:_0xb1aa5e['offset']+_0xb1aa5e['limit'];var _0x1e18f2;if(_0x14a47b>=_0x210357){_0x14a47b=_0x210357;_0x1e18f2=0xc8;}else{_0x1e18f2=0xce;}_0x41af34['status'](_0x1e18f2);return _0x41af34[_0xc330('0x24')]('Content-Range',_0x3cbd9d+'-'+_0x14a47b+'/'+_0x210357)[_0xc330('0x1f')](_0x43cbdc);}return null;};}function saveUpdates(_0x4c0630){return function(_0x94f52b){if(_0x94f52b){return _0x94f52b[_0xc330('0x25')](_0x4c0630)[_0xc330('0x13')](function(_0x244e8a){return _0x244e8a;});}return null;};}function removeEntity(_0x42df58){return function(_0x4f6e1e){if(_0x4f6e1e){return _0x4f6e1e[_0xc330('0x26')]()[_0xc330('0x13')](function(){_0x42df58[_0xc330('0x1e')](0xcc)[_0xc330('0x27')]();});}};}function handleEntityNotFound(_0x3892fb){return function(_0x10cfa9){if(!_0x10cfa9){_0x3892fb['sendStatus'](0x194);}return _0x10cfa9;};}function handleError(_0x12f7e5,_0x55557c){_0x55557c=_0x55557c||0x1f4;return function(_0x5bd59a){logger[_0xc330('0x19')](_0x5bd59a[_0xc330('0x28')]);if(_0x5bd59a['name']){delete _0x5bd59a['name'];}_0x12f7e5[_0xc330('0x1e')](_0x55557c)[_0xc330('0x29')](_0x5bd59a);};}function getMustacheRender(_0x329248,_0x20d8f2){return Mustache[_0xc330('0x2a')](_0x329248,_[_0xc330('0x2b')](_0x20d8f2[_0xc330('0x2c')],{'contact':_0x20d8f2[_0xc330('0x2d')],'message':_0x20d8f2['message'],'agent':_0x20d8f2['agent'],'interaction':_0x20d8f2[_0xc330('0x2e')],'account':_0x20d8f2['account']}))||'';}exports[_0xc330('0x2f')]=function(_0x37fc68,_0x30ca0f){var _0x1dcc86={};var _0x5a2dc2=_[_0xc330('0x30')](db['ChatInteraction']['rawAttributes'],function(_0x28aeb2){return{'name':_0x28aeb2[_0xc330('0x31')],'type':_0x28aeb2['type'][_0xc330('0x32')]};});_0x1dcc86=qs[_0xc330('0x33')](_0x5a2dc2,_0x37fc68);return interaction[_0xc330('0x34')](_0xc330('0x35'),_0x37fc68[_0xc330('0x36')],_0x37fc68[_0xc330('0x37')],_0x1dcc86,_0x5a2dc2)[_0xc330('0x13')](respondWithFilteredResult(_0x30ca0f,_0x1dcc86))[_0xc330('0x38')](handleError(_0x30ca0f,null));};exports[_0xc330('0x39')]=function(_0x68a8f3,_0x26bb4e){var _0x576acd={'raw':![],'where':{'id':_0x68a8f3[_0xc330('0x3a')]['id']}},_0xa2966={};_0xa2966['model']=_[_0xc330('0x3b')](db['ChatInteraction']['rawAttributes']);_0xa2966[_0xc330('0x36')]=_[_0xc330('0x3b')](_0x68a8f3[_0xc330('0x36')]);_0xa2966[_0xc330('0x3c')]=_[_0xc330('0x3d')](_0xa2966[_0xc330('0x3e')],_0xa2966[_0xc330('0x36')]);_0x576acd[_0xc330('0x3f')]=_[_0xc330('0x3d')](_0xa2966['model'],qs[_0xc330('0x40')](_0x68a8f3['query'][_0xc330('0x40')]));_0x576acd[_0xc330('0x3f')]=_0x576acd[_0xc330('0x3f')]['length']?_0x576acd[_0xc330('0x3f')]:_0xa2966[_0xc330('0x3e')];if(_0x68a8f3[_0xc330('0x36')][_0xc330('0x41')]){_0x576acd[_0xc330('0x42')]=[{'all':!![]}];}_0x576acd=_[_0xc330('0x2b')]({},_0x576acd,_0x68a8f3[_0xc330('0x43')]);return db[_0xc330('0x44')][_0xc330('0x45')](_0x576acd)['then'](handleEntityNotFound(_0x26bb4e,null))['then'](respondWithResult(_0x26bb4e,null))['catch'](handleError(_0x26bb4e,null));};exports['create']=function(_0x23c316,_0x4a569f){return db[_0xc330('0x44')]['create'](_0x23c316[_0xc330('0x2c')],{})[_0xc330('0x13')](respondWithResult(_0x4a569f,0xc9))[_0xc330('0x38')](handleError(_0x4a569f,null));};exports[_0xc330('0x25')]=function(_0x508dc6,_0x50aae7){if(_0x508dc6['body']['id']){delete _0x508dc6['body']['id'];}return db['ChatInteraction'][_0xc330('0x45')]({'where':{'id':_0x508dc6[_0xc330('0x3a')]['id']}})[_0xc330('0x13')](handleEntityNotFound(_0x50aae7,null))['then'](saveUpdates(_0x508dc6[_0xc330('0x2c')],null))[_0xc330('0x13')](respondWithResult(_0x50aae7,null))[_0xc330('0x38')](handleError(_0x50aae7,null));};exports[_0xc330('0x26')]=function(_0x45271d,_0x28da9){return db[_0xc330('0x44')][_0xc330('0x45')]({'where':{'id':_0x45271d[_0xc330('0x3a')]['id']}})[_0xc330('0x13')](handleEntityNotFound(_0x28da9,null))[_0xc330('0x13')](removeEntity(_0x28da9,null))[_0xc330('0x38')](handleError(_0x28da9,null));};exports[_0xc330('0x46')]=function(_0xb8af6d,_0x4d60a4){return db[_0xc330('0x44')][_0xc330('0x46')]()['then'](respondWithResult(_0x4d60a4,null))['catch'](handleError(_0x4d60a4,null));};exports[_0xc330('0x47')]=function(_0x4c9f01,_0x2eb45f){var _0x18facf=_0x4c9f01['params']['id'];var _0xb80ef9;var _0x1fd014;var _0x145005;return db[_0xc330('0x44')][_0xc330('0x48')]({'where':{'id':_0x18facf}})['then'](function(_0x463524){_0xb80ef9=_0x463524;return db['ChatWebsite'][_0xc330('0x48')]({'where':{'id':_0x463524['ChatWebsiteId']},'attributes':['id',_0xc330('0x49'),_0xc330('0x4a'),_0xc330('0x4b'),_0xc330('0x4c'),_0xc330('0x4d')],'raw':!![]});})[_0xc330('0x13')](function(_0x10d8bc){if(_0x10d8bc&&_0x10d8bc[_0xc330('0x49')]&&_0x10d8bc[_0xc330('0x4a')]){_0x1fd014=_0x10d8bc;var _0x1c4898={'interaction':{'id':_0x18facf},'agent':{'id':_0x4c9f01['user']['id'],'name':_0x4c9f01[_0xc330('0x37')]['name'],'fullname':_0x4c9f01[_0xc330('0x37')]['fullname'],'email':_0x4c9f01['user'][_0xc330('0x4e')]},'contact':_0x4c9f01[_0xc330('0x2c')][_0xc330('0x2d')],'account':_0x4c9f01['body'][_0xc330('0x4f')]};var _0x5e2885={'rejectUnauthorized':![],'method':'POST','url':_0xc330('0x50'),'headers':{'X-APIKEY':_0x10d8bc[_0xc330('0x49')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x4c9f01[_0xc330('0x37')][_0xc330('0x4e')]],'buttons':null,'topic':_0x1fd014[_0xc330('0x4b')],'note':_[_0xc330('0x51')](_0x1fd014[_0xc330('0x4c')])?null:getMustacheRender(_0x1fd014[_0xc330('0x4c')],_0x1c4898),'metadata':null},'redirect':_0xc330('0x52'),'json':!![]};try{if(!_[_0xc330('0x51')](_0x1fd014[_0xc330('0x4d')])){var _0x470a11=getMustacheRender(_0x1fd014[_0xc330('0x4d')],_0x1c4898);var _0x346ad4=JSON[_0xc330('0x53')](_0x470a11);_0x5e2885[_0xc330('0x2c')][_0xc330('0x54')]=_0x346ad4;}}catch(_0x5a8d4b){throw new db[(_0xc330('0x55'))][(_0xc330('0x56'))](_0xc330('0x57'));}return rp(_0x5e2885);}else{throw new db[(_0xc330('0x55'))][(_0xc330('0x56'))](_0xc330('0x58'));}})[_0xc330('0x13')](function(_0x55c14f){_0x145005=_0x55c14f;if(_0x145005['id']){var _0x47b4e0={'body':_0x145005[_0xc330('0x59')],'ChatWebsiteId':_0x1fd014['id'],'ChatInteractionId':_0xb80ef9['id'],'direction':_0xc330('0x5a'),'UserId':_0x4c9f01[_0xc330('0x37')]['id']};return db[_0xc330('0x5b')][_0xc330('0x5c')](_0x47b4e0,{});}else{throw new db[(_0xc330('0x55'))][(_0xc330('0x56'))](_0xc330('0x5d'));}})[_0xc330('0x13')](function(){return _0xb80ef9['updateAttributes']({'vidaooSessionId':_0x145005['id']});})[_0xc330('0x13')](respondWithResult(_0x2eb45f,null))[_0xc330('0x38')](handleError(_0x2eb45f,null));};exports[_0xc330('0x5e')]=function(_0x21037f,_0x4bf36f){if(_0x21037f[_0xc330('0x2c')]['id']){delete _0x21037f[_0xc330('0x2c')]['id'];}return db[_0xc330('0x44')][_0xc330('0x45')]({'where':{'id':_0x21037f['params']['id']},'include':[{'model':db[_0xc330('0x5f')],'as':'Contact'}]})[_0xc330('0x13')](handleEntityNotFound(_0x4bf36f,null))['then'](saveUpdates(_0x21037f[_0xc330('0x2c')],null))['then'](respondWithResult(_0x4bf36f,null))[_0xc330('0x38')](handleError(_0x4bf36f,null));};exports[_0xc330('0x60')]=function(_0x335f8c,_0x1f77ac){if(_0x335f8c[_0xc330('0x2c')]['id']){delete _0x335f8c['body']['id'];}return db['ChatInteraction']['find']({'where':{'id':_0x335f8c['params']['id']}})[_0xc330('0x13')](function(_0x26d7a2){if(!_0x26d7a2){logger[_0xc330('0x19')]('abandonInteraction,\x20%s,\x20%s,\x20%s',_0xc330('0x60'),0x194,_0xc330('0x61'));_0x1f77ac[_0xc330('0x1d')](0x194);}else{if(_0x26d7a2[_0xc330('0x62')]){throw new db['Sequelize'][(_0xc330('0x56'))](_0xc330('0x63'));}}return _0x26d7a2;})['then'](function(_0x4682bc){if(_0x4682bc){return _0x4682bc['update']({'closed':_0x335f8c[_0xc330('0x2c')][_0xc330('0x64')],'disposition':_0x335f8c[_0xc330('0x2c')][_0xc330('0x65')]})[_0xc330('0x13')](function(_0xb7670e){return _0xb7670e;});}})[_0xc330('0x13')](function(){return respondWithRpcPromise(_0xc330('0x66'),'abandon',_0x335f8c[_0xc330('0x2c')],client9004);})['then'](respondWithResult(_0x1f77ac,null))[_0xc330('0x38')](handleError(_0x1f77ac,null));};exports[_0xc330('0x67')]=function(_0x4cb416,_0x289375){_0x4cb416[_0xc330('0x2c')][_0xc330('0x68')]=_0x4cb416[_0xc330('0x69')][_0xc330('0x6a')];_0x4cb416[_0xc330('0x2c')][_0xc330('0x6b')]=_0x4cb416[_0xc330('0x69')][_0xc330('0x6c')];_0x4cb416[_0xc330('0x2c')][_0xc330('0x6d')]=_0x4cb416[_0xc330('0x69')][_0xc330('0x6e')];return db[_0xc330('0x6f')]['create'](_0x4cb416[_0xc330('0x2c')])[_0xc330('0x13')](respondWithResult(_0x289375,0xc9))[_0xc330('0x38')](handleError(_0x289375,null));};exports[_0xc330('0x70')]=function(_0x3cd061,_0x1eccef){return db['ChatInteraction'][_0xc330('0x48')]({'where':{'id':_0x3cd061[_0xc330('0x3a')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x1eccef,null))[_0xc330('0x13')](function(_0x54751a){if(_0x54751a){if(_0x54751a[_0xc330('0x64')]){return _0x1eccef[_0xc330('0x1e')](0x193)[_0xc330('0x1f')]({'status':0x193,'message':_0xc330('0x71')});}return db[_0xc330('0x6f')][_0xc330('0x48')]({'where':{'id':_0x3cd061[_0xc330('0x36')]['attachId']},'raw':!![]})[_0xc330('0x13')](handleEntityNotFound(_0x1eccef,null));}})[_0xc330('0x13')](function(_0x1cde64){if(_0x1cde64){var _0x73e12e=_0x1cde64['ChatOfflineMessageId']!==null;var _0x2f5495=path[_0xc330('0x72')](config['root'],'server/files/attachments/');if(_0x73e12e){_0x2f5495=path[_0xc330('0x72')](_0x2f5495,'offline-chat/');}var _0x2bd370=path['join'](_0x2f5495,_0x1cde64[_0xc330('0x6b')]);return _0x1eccef['download'](_0x2bd370);}})[_0xc330('0x38')](handleError(_0x1eccef,null));};exports[_0xc330('0x73')]=function(_0x4564ad,_0x11d060){var _0xdbe901=null;var _0x57815b=null;var _0x260c48=null;if(_0x4564ad[_0xc330('0x2c')]['id']){delete _0x4564ad[_0xc330('0x2c')]['id'];}if(_0x4564ad['body'][_0xc330('0x74')]){_0x260c48=path[_0xc330('0x72')](config[_0xc330('0x75')],_0xc330('0x76'),util[_0xc330('0x77')]('transcript-%s.txt',Date[_0xc330('0x78')]()));_0x4564ad[_0xc330('0x2c')][_0xc330('0x79')]=_0x260c48;}return db[_0xc330('0x44')][_0xc330('0x45')]({'where':{'id':_0x4564ad['params']['id']},'include':[{'model':db[_0xc330('0x5b')],'as':'Messages','include':[{'model':db[_0xc330('0x7a')],'as':_0xc330('0x7a')}]}]})[_0xc330('0x13')](handleEntityNotFound(_0x11d060,null))[_0xc330('0x13')](saveUpdates(_0x4564ad['body'],null))['then'](function(_0x10ce5d){if(_0x10ce5d){_0xdbe901=_0x10ce5d;return db['ChatWebsite']['find']({'where':{'id':_0xdbe901['ChatWebsiteId']}});}})[_0xc330('0x13')](function(_0x3abedf){if(_0x3abedf){_0x57815b=_0x3abedf;return db[_0xc330('0x5f')][_0xc330('0x45')]({'where':{'id':_0xdbe901[_0xc330('0x7b')]}});}})['then'](function(_0x4f57f4){if(_0x4f57f4){if(_0x260c48){var _0x3fb57c=null;for(var _0x2a3691=0x1;_0x2a3691<_0xdbe901['Messages'][_0xc330('0x7c')];++_0x2a3691){_0x3fb57c=_0xdbe901[_0xc330('0x7d')][_0x2a3691];var _0x4fb493=_0x3fb57c[_0xc330('0x62')]?util[_0xc330('0x77')](_0xc330('0x7e'),_0x57815b[_0xc330('0x7f')],_0x3fb57c[_0xc330('0x62')]):_0xc330('0x80');var _0x2276e2=_0x4564ad[_0xc330('0x2c')][_0xc330('0x81')]||util['format'](_0xc330('0x7e'),'Visitor',_0x3fb57c[_0xc330('0x7b')]);switch(_0x57815b[_0xc330('0x82')]){case'website_alias':_0x4fb493=_0x3fb57c[_0xc330('0x62')]?util[_0xc330('0x77')](_0xc330('0x7e'),_0x57815b[_0xc330('0x7f')],_0x3fb57c[_0xc330('0x62')]):_0xc330('0x80');break;case _0xc330('0x83'):_0x4fb493=_0x3fb57c['UserId']?_0x3fb57c[_0xc330('0x7a')][_0xc330('0x84')]||_0x3fb57c[_0xc330('0x7a')][_0xc330('0x85')]:_0xc330('0x80');break;case'agent_fullname':_0x4fb493=_0x3fb57c['UserId']?_0x3fb57c[_0xc330('0x7a')][_0xc330('0x85')]:'System';break;default:_0x4fb493=_0x3fb57c[_0xc330('0x62')]?util[_0xc330('0x77')]('%s%d',_0x57815b['agentAlias'],_0x3fb57c[_0xc330('0x62')]):'System';}var _0x1dbd1d=util['format'](_0xc330('0x86'),moment(_0x3fb57c[_0xc330('0x87')])[_0xc330('0x77')]('MM/DD/YYYY\x20HH:mm:ss'),_0x3fb57c['direction']==='in'?_0x2276e2:_0x4fb493,_0x3fb57c[_0xc330('0x2c')]);if(!_0x3fb57c[_0xc330('0x88')]){fs[_0xc330('0x89')](_0x260c48,_0x1dbd1d);}}return db['MailAccount'][_0xc330('0x48')]({'where':{'service':!![]},'include':[{'model':db[_0xc330('0x8a')],'as':_0xc330('0x8b'),'raw':!![],'include':[{'model':db[_0xc330('0x8c')],'as':_0xc330('0x8c'),'raw':!![]}]}]});}}})['then'](function(_0x5401d9){if(!_0x5401d9||!_0x5401d9[_0xc330('0x8b')]||!_0x4564ad[_0xc330('0x2c')])return _0xdbe901;var _0x3f61e2=_0x5401d9[_0xc330('0x8d')]();return respondWithRpcPromise(_0xc330('0x8e'),_0xc330('0x8f'),{'account':_0x3f61e2,'message':{'from':util[_0xc330('0x77')](_0xc330('0x90'),_0x5401d9[_0xc330('0x68')],_0x5401d9['email']||_0x5401d9[_0xc330('0x8b')][_0xc330('0x37')]),'to':_0x4564ad[_0xc330('0x2c')][_0xc330('0x74')],'subject':_0xc330('0x91'),'text':util[_0xc330('0x77')](_0xc330('0x92'),_0x4564ad[_0xc330('0x2c')][_0xc330('0x74')]),'attachments':[{'path':_0x260c48}]}})[_0xc330('0x13')](function(){return _0xdbe901;})[_0xc330('0x38')](function(_0x3cdb4a){logger['error'](_0x3cdb4a);});})[_0xc330('0x13')](respondWithStatusCode(_0x11d060,0xc8))[_0xc330('0x38')](handleError(_0x11d060,null));};exports['addMessage']=function(_0x311094,_0x4267a3){return db['ChatMessage'][_0xc330('0x45')]({'where':{'id':_0x311094[_0xc330('0x3a')]['id']}})['then'](handleEntityNotFound(_0x4267a3,null))['then'](function(_0x4a185d){if(_0x4a185d){return _0x4a185d[_0xc330('0x93')](_0x311094[_0xc330('0x2c')][_0xc330('0x94')],_[_0xc330('0x95')](_0x311094[_0xc330('0x2c')],[_0xc330('0x94'),'id'])||{});}})[_0xc330('0x13')](respondWithResult(_0x4267a3,null))[_0xc330('0x38')](handleError(_0x4267a3,null));};exports['getMessages']=function(_0x23eb3b,_0x119167){var _0x49c005={'raw':![],'where':{}};var _0xd28745={};var _0x2e8b92={'count':0x0,'rows':[]};return db[_0xc330('0x44')][_0xc330('0x48')]({'where':{'id':_0x23eb3b['params']['id']}})[_0xc330('0x13')](handleEntityNotFound(_0x119167,null))[_0xc330('0x13')](function(_0x450f34){if(_0x450f34){_0xd28745[_0xc330('0x3e')]=_[_0xc330('0x3b')](db['ChatMessage']['rawAttributes']);_0xd28745['query']=_['keys'](_0x23eb3b[_0xc330('0x36')]);_0xd28745[_0xc330('0x3c')]=_['intersection'](_0xd28745[_0xc330('0x3e')],_0xd28745[_0xc330('0x36')]);_0x49c005['attributes']=_[_0xc330('0x3d')](_0xd28745['model'],qs['fields'](_0x23eb3b['query'][_0xc330('0x40')]));_0x49c005[_0xc330('0x3f')]=_0x49c005[_0xc330('0x3f')][_0xc330('0x7c')]?_0x49c005[_0xc330('0x3f')]:_0xd28745['model'];if(!_0x23eb3b[_0xc330('0x36')][_0xc330('0x96')](_0xc330('0x97'))){_0x49c005['limit']=qs[_0xc330('0x22')](_0x23eb3b[_0xc330('0x36')][_0xc330('0x22')]);_0x49c005[_0xc330('0x20')]=qs['offset'](_0x23eb3b[_0xc330('0x36')]['offset']);}_0x49c005['order']=qs[_0xc330('0x98')](_0x23eb3b[_0xc330('0x36')][_0xc330('0x98')]);_0x49c005[_0xc330('0x99')]=qs[_0xc330('0x3c')](_['pick'](_0x23eb3b[_0xc330('0x36')],_0xd28745[_0xc330('0x3c')]));_0x49c005['where']['ChatInteractionId']=_0x450f34['id'];if(_0x23eb3b[_0xc330('0x36')][_0xc330('0x9a')]){_0x49c005[_0xc330('0x99')]=_[_0xc330('0x2b')](_0x49c005[_0xc330('0x99')],{'$or':_[_0xc330('0x30')](_0x49c005[_0xc330('0x3f')],function(_0x31d8ed){var _0x164009={};_0x164009[_0x31d8ed]={'$like':'%'+_0x23eb3b['query'][_0xc330('0x9a')]+'%'};return _0x164009;})});}if(_0x23eb3b['query']['$gte']){var _0x578fc0=_0x23eb3b[_0xc330('0x36')][_0xc330('0x9b')][_0xc330('0x9c')](',');var _0x130de0={};_0x130de0[_0x578fc0[0x0]]={'$gte':moment(_0x578fc0[0x1])['format']('YYYY-MM-DD\x20HH:mm:ss')};_0x49c005['where']=_[_0xc330('0x2b')](_0x49c005[_0xc330('0x99')],_0x130de0);}_0x49c005=_[_0xc330('0x2b')]({},_0x49c005,_0x23eb3b[_0xc330('0x43')]);return db['ChatMessage']['count']({'where':_0x49c005[_0xc330('0x99')]})[_0xc330('0x13')](function(_0x2948a3){_0x2e8b92['count']=_0x2948a3;if(_0x23eb3b[_0xc330('0x36')][_0xc330('0x41')]){_0x49c005['include']=[{'all':!![]}];}return db[_0xc330('0x5b')][_0xc330('0x34')](_0x49c005);})[_0xc330('0x13')](function(_0x4d8d74){_0x2e8b92['rows']=_0x4d8d74;return _0x2e8b92;});}})['then'](respondWithFilteredResult(_0x119167,_0x49c005))[_0xc330('0x38')](handleError(_0x119167,null));};exports['getMyMessages']=function(_0x260f37,_0x49ce13){var _0x1ee5c7={'where':{}},_0x354465={},_0x39c588={'count':0x0,'rows':[]};return db[_0xc330('0x44')][_0xc330('0x48')]({'where':{'id':_0x260f37[_0xc330('0x3a')]['id']}})[_0xc330('0x13')](handleEntityNotFound(_0x49ce13,null))[_0xc330('0x13')](function(_0x419893){if(_0x419893){_0x354465[_0xc330('0x3e')]=_['keys'](db['ChatMessage'][_0xc330('0x9d')]);_0x354465[_0xc330('0x36')]=_[_0xc330('0x3b')](_0x260f37[_0xc330('0x36')]);_0x354465[_0xc330('0x3c')]=_[_0xc330('0x3d')](_0x354465[_0xc330('0x3e')],_0x354465['query']);_0x1ee5c7[_0xc330('0x3f')]=_[_0xc330('0x3d')](_0x354465[_0xc330('0x3e')],qs[_0xc330('0x40')](_0x260f37[_0xc330('0x36')][_0xc330('0x40')]));_0x1ee5c7['attributes']=_0x1ee5c7['attributes'][_0xc330('0x7c')]?_0x1ee5c7['attributes']:_0x354465[_0xc330('0x3e')];if(!_0x260f37[_0xc330('0x36')][_0xc330('0x96')](_0xc330('0x97'))){_0x1ee5c7[_0xc330('0x22')]=qs[_0xc330('0x22')](_0x260f37[_0xc330('0x36')][_0xc330('0x22')]);_0x1ee5c7[_0xc330('0x20')]=qs[_0xc330('0x20')](_0x260f37[_0xc330('0x36')][_0xc330('0x20')]);}_0x1ee5c7['order']=qs[_0xc330('0x98')](_0x260f37[_0xc330('0x36')][_0xc330('0x98')]);_0x1ee5c7[_0xc330('0x99')]=qs['filters'](_[_0xc330('0x9e')](_0x260f37[_0xc330('0x36')],_0x354465['filters']));_0x1ee5c7[_0xc330('0x99')]['ChatInteractionId']=_0x419893['id'];if(_0x260f37[_0xc330('0x36')][_0xc330('0x9a')]){_0x1ee5c7[_0xc330('0x99')]=_[_0xc330('0x2b')](_0x1ee5c7[_0xc330('0x99')],{'$or':_[_0xc330('0x30')](_0x1ee5c7[_0xc330('0x3f')],function(_0x3988e3){var _0xdb8347={};_0xdb8347[_0x3988e3]={'$like':'%'+_0x260f37[_0xc330('0x36')]['filter']+'%'};return _0xdb8347;})});}_0x1ee5c7[_0xc330('0x99')][_0xc330('0x88')]=![];if(_0x260f37[_0xc330('0x36')]['id']){_0x1ee5c7['where']['id']={'$gt':_0x260f37['query']['id']};}_0x1ee5c7=_['merge']({},_0x1ee5c7,_0x260f37[_0xc330('0x43')]);return db[_0xc330('0x5b')]['count']({'where':_0x1ee5c7[_0xc330('0x99')]})[_0xc330('0x13')](function(_0x3cd0ca){_0x39c588[_0xc330('0x23')]=_0x3cd0ca;_0x1ee5c7['include']=[];if(_0x260f37[_0xc330('0x36')][_0xc330('0x9f')]){_0x1ee5c7[_0xc330('0x42')][_0xc330('0xa0')]({'model':db[_0xc330('0x7a')],'as':_0xc330('0x7a'),'attributes':['id',_0xc330('0x85'),_0xc330('0x84')]});}if(_0x260f37[_0xc330('0x36')]['includeAll']){_0x1ee5c7['include']=[{'all':!![]}];}return db[_0xc330('0x5b')][_0xc330('0x34')](_0x1ee5c7);})['then'](function(_0xb58543){_0x39c588[_0xc330('0xa1')]=_0xb58543;return _0x39c588;});}})['then'](respondWithFilteredResult(_0x49ce13,_0x1ee5c7))[_0xc330('0x38')](handleError(_0x49ce13,null));};exports['addTags']=function(_0x1d5e2d,_0x9de27d){return db['ChatInteraction'][_0xc330('0x45')]({'where':{'id':_0x1d5e2d[_0xc330('0x3a')]['id']}})[_0xc330('0x13')](handleEntityNotFound(_0x9de27d,null))[_0xc330('0x13')](function(_0x33d28e){if(_0x33d28e){return _0x33d28e[_0xc330('0xa2')](_0x1d5e2d[_0xc330('0x2c')][_0xc330('0x94')],_['omit'](_0x1d5e2d['body'],[_0xc330('0x94'),'id'])||{})['spread'](function(){return db[_0xc330('0xa3')]['findAll']({'attributes':['id',_0xc330('0x68'),_0xc330('0xa4')],'where':{'id':_0x1d5e2d['body'][_0xc330('0x94')]}});})[_0xc330('0x13')](function(_0x1ba637){socket[_0xc330('0xa5')]('chatInteractionTags:save',{'id':Number(_0x1d5e2d['params']['id']),'tags':_0x1ba637||[]});return{'id':Number(_0x1d5e2d['params']['id']),'tags':_0x1ba637||[]};});}})[_0xc330('0x13')](respondWithResult(_0x9de27d,null))[_0xc330('0x38')](handleError(_0x9de27d,null));};exports[_0xc330('0xa6')]=function(_0x1ec229,_0x215487){return db['ChatInteraction'][_0xc330('0x45')]({'where':{'id':_0x1ec229['params']['id']}})['then'](handleEntityNotFound(_0x215487,null))[_0xc330('0x13')](function(_0x5d0a09){if(_0x5d0a09){return _0x5d0a09[_0xc330('0xa6')](_0x1ec229[_0xc330('0x36')][_0xc330('0x94')]);}})[_0xc330('0x13')](respondWithStatusCode(_0x215487,null))['catch'](handleError(_0x215487,null));};exports['download']=function(_0x460eac,_0x5681d0){var _0x2de29c=moment()['unix']()[_0xc330('0xa7')]();var _0x2bc3a4=path[_0xc330('0x72')](config['root'],_0xc330('0xa8'),'files',_0xc330('0xa9'));var _0x4d0473=path[_0xc330('0x72')](config['root'],_0xc330('0xa8'),_0xc330('0xaa'),_0xc330('0xab'));var _0x57cca0=path[_0xc330('0x72')](_0x2bc3a4,_0x2de29c);var _0x2d150c=util[_0xc330('0x77')](_0xc330('0xac'),_0x460eac[_0xc330('0x3a')]['id'],_0x2de29c);var _0x566d77=path['join'](_0x2bc3a4,_0x2d150c);var _0x20c093=[];_0x20c093[_0xc330('0xa0')]({'model':db[_0xc330('0x7a')],'as':_0xc330('0x7a'),'attributes':['id',_0xc330('0x85')],'raw':!![]});_0x20c093[_0xc330('0xa0')]({'model':db[_0xc330('0x5f')],'as':'Contact','attributes':['id',_0xc330('0xad'),_0xc330('0xae')],'raw':!![]});if(_0x460eac[_0xc330('0x36')][_0xc330('0xab')]){_0x20c093[_0xc330('0xa0')]({'model':db[_0xc330('0x6f')],'as':_0xc330('0x6f'),'raw':!![]});}var _0x5c39a1=[{'model':db[_0xc330('0x5b')],'as':'Messages','attributes':['id',_0xc330('0x2c'),_0xc330('0x87'),_0xc330('0xaf'),_0xc330('0x88'),_0xc330('0xb0')],'include':_0x20c093}];_0x5c39a1['push']({'model':db['ChatWebsite'],'as':'Account','attributes':['id','name']});_0x5c39a1['push']({'model':db[_0xc330('0x7a')],'as':_0xc330('0xb1'),'attributes':['id',_0xc330('0x85')]});return db[_0xc330('0x44')][_0xc330('0x45')]({'where':{'id':_0x460eac['params']['id']},'include':_0x5c39a1})['then'](handleEntityNotFound(_0x5681d0,null))['then'](function(_0x4881b3){if(_0x4881b3){var _0x6a6737=_0x4881b3[_0xc330('0xb2')]({'plain':!![]});fs[_0xc330('0xb3')](_0x57cca0);var _0x524899={'channel':_0xc330('0xb4'),'account':_0x6a6737['Account']['name'],'agent':_0x6a6737[_0xc330('0xb1')]?_0x6a6737[_0xc330('0xb1')][_0xc330('0x85')]:'N.A.','createdAt':moment(_0x6a6737['createdAt'])['format'](_0xc330('0xb5'))[_0xc330('0xa7')](),'closedAt':_0x6a6737[_0xc330('0x64')]?moment(_0x6a6737['closedAt'])['format']('YYYY-MM-DD\x20HH:mm:ss')[_0xc330('0xa7')]():'','disposition':_0x6a6737[_0xc330('0x65')],'chatInfo':{'browser':_0x6a6737[_0xc330('0xb6')],'os':_0x6a6737[_0xc330('0xb7')],'referer':_0x6a6737['referer'],'customerIp':_0x6a6737['customerIp'],'customerPort':_0x6a6737['customerPort']?_0x6a6737[_0xc330('0xb8')]:_0xc330('0xb9')},'messages':_(_0x6a6737[_0xc330('0x7d')])[_0xc330('0xba')]()['filter']({'secret':![]})[_0xc330('0x30')](function(_0x4a6662){if(_0x4a6662[_0xc330('0x6f')]){var _0x34adf=path[_0xc330('0x72')](_0x4d0473,_0x4a6662[_0xc330('0x6f')]['basename']);if(fs[_0xc330('0xbb')](_0x34adf)){fs[_0xc330('0xbc')](_0x34adf)['pipe'](fs[_0xc330('0xbd')](path[_0xc330('0x72')](_0x57cca0,_0x4a6662['Attachment'][_0xc330('0x6b')])));}}return{'date':moment(_0x4a6662[_0xc330('0x87')])['format'](_0xc330('0xb5'))[_0xc330('0xa7')](),'sender':_0x4a6662['direction']===_0xc330('0x5a')?_0x4a6662['User']?_0x4a6662[_0xc330('0x7a')][_0xc330('0x85')]:_0xc330('0x80'):_0x4a6662[_0xc330('0xbe')][_0xc330('0xad')]+(_0x4a6662[_0xc330('0xbe')][_0xc330('0xae')]?'\x20'+_0x4a6662['Contact'][_0xc330('0xae')]:''),'body':_0x4a6662[_0xc330('0x6f')]?_0x4a6662['Attachment'][_0xc330('0x6b')]:_0x4a6662['body'],'direction':_0x4a6662[_0xc330('0xaf')]===_0xc330('0x5a')?'A':'C','secret':_0x4a6662[_0xc330('0x88')],'read':_0x4a6662[_0xc330('0xb0')],'attachment':_0x4a6662['Attachment']};})['value']()};return ejs['renderFile'](path[_0xc330('0x72')](config[_0xc330('0x75')],_0xc330('0xa8'),_0xc330('0xbf'),_0xc330('0xc0')),{'interaction':_0x524899})['then'](function(_0x5a38b0){var _0x2dd72c=path[_0xc330('0x72')](_0x57cca0,'transcript-'+_0x6a6737['id']+'-'+_0x2de29c+_0xc330('0xc1'));var _0x559719={'path':_0x2dd72c,'channel':'Chat','interactionId':_0x6a6737['id']};return pdf[_0xc330('0xc2')](_0x5a38b0,_0x559719);})[_0xc330('0x13')](function(){return new Promise(function(_0xd27b68,_0x4fad44){zipdir(_0x57cca0,{'saveTo':_0x566d77},function(_0x510df5,_0xaf222){if(_0x510df5)return _0x4fad44(_0x510df5);return _0xd27b68(_0xaf222);});})['then'](function(){return new BPromise(function(_0x54f8cf,_0x3155bb){rimraf(_0x57cca0,function(_0x222a26){if(_0x222a26)_0x3155bb(_0x222a26);return _0x54f8cf();});});})[_0xc330('0x13')](function(){return _0x5681d0[_0xc330('0xc3')](_0x566d77,_0x2d150c,function(_0x10238d){if(_0x10238d){logger[_0xc330('0x19')](_0xc330('0xc4'),_0x10238d);}else{fs[_0xc330('0xc5')](_0x566d77);}});});});}else{return _0x5681d0[_0xc330('0x1d')](0xc8);}})[_0xc330('0x38')](handleError(_0x5681d0,null));};