Built motion from commit b5413ace.|2.6.9
[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 _0xb42a=['agentIdentifier','System','agent_alias','agent_fullname','createdAt','MM/DD/YYYY\x20HH:mm:ss','direction','secret','appendFileSync','MailAccount','MailServerOut','CloudProvider','Smtp','getSmtpOptions','SendMail','sendMail','\x22%s\x22\x20<%s>','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','ids','omit','getMessages','nolimit','sort','where','pick','ChatInteractionId','filter','$gte','split','YYYY-MM-DD\x20HH:mm:ss','options','rows','hasOwnProperty','includeAgent','push','addTags','setTags','emit','chatInteractionTags:save','removeTags','unix','toString','files','tmp','server','attachments','Contact','Account','Owner','mkdirSync','Chat','N.A.','closedAt','disposition','browserName','osName','customerPort','tail','basename','existsSync','pipe','out','firstName','lastName','read','value','views','transcript-','createPdfFromHTML','err','unlinkSync','rimraf','zip-dir','request-promise','bluebird','mustache','util','ejs','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','../../components/export/pdf','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInteraction.socket','register','jayson/promise','client','http','request','then','info','ChatInteraction,\x20%s,\x20%s','debug','error','code','message','request\x20sent','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','update','destroy','name','send','render','merge','contact','agent','index','map','ChatInteraction','rawAttributes','fieldName','type','key','findAll','chat','user','show','params','model','keys','query','filters','intersection','attributes','fields','length','includeAll','include','create','body','find','describe','findOne','ChatWebsite','ChatWebsiteId','vidaooApiKey','vidaooEscalation','vidaooTopic','vidaooNote','vidaooMetadata','fullname','email','account','POST','follow','isNull','parse','metadata','Sequelize','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','Error\x20in\x20Vidaoo\x20configuration','join_url','ChatMessage','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','customUpdate','CmContact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','UserId','closed','AbandonInteraction','attachmentUpload','file','mimetype','Attachment','join','root','server/files/attachments/','download','close','mailTranscript','server/files/chat/upload/','format','pathTranscript','Messages','User','ContactId','agentAlias','%s%d'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xb42a,0x110));var _0xab42=function(_0x48475b,_0x4d3077){_0x48475b=_0x48475b-0x0;var _0x3b241a=_0xb42a[_0x48475b];return _0x3b241a;};'use strict';var rimraf=require(_0xab42('0x0'));var zipdir=require(_0xab42('0x1'));var rp=require(_0xab42('0x2'));var moment=require('moment');var BPromise=require(_0xab42('0x3'));var Mustache=require(_0xab42('0x4'));var util=require(_0xab42('0x5'));var path=require('path');var ejs=require(_0xab42('0x6'));var fs=require('fs');var _=require(_0xab42('0x7'));var Redis=require(_0xab42('0x8'));var interaction=require(_0xab42('0x9'));var qs=require(_0xab42('0xa'));var pdf=require(_0xab42('0xb'));var logger=require(_0xab42('0xc'))(_0xab42('0xd'));var config=require(_0xab42('0xe'));var db=require(_0xab42('0xf'))['db'];config[_0xab42('0x10')]=_[_0xab42('0x11')](config[_0xab42('0x10')],{'host':_0xab42('0x12'),'port':0x18eb});var socket=require(_0xab42('0x13'))(new Redis(config['redis']));require(_0xab42('0x14'))[_0xab42('0x15')](socket);var jayson=require(_0xab42('0x16'));var client=jayson[_0xab42('0x17')][_0xab42('0x18')]({'port':0x232b});var client9004=jayson[_0xab42('0x17')][_0xab42('0x18')]({'port':0x232c});function respondWithRpcPromise(_0x26208f,_0x549129,_0x1e6aa9,_0xf6b3f5){return new BPromise(function(_0x148b85,_0x19cd3e){var _0x34af9e=_0xf6b3f5||client;return _0x34af9e[_0xab42('0x19')](_0x26208f,_0x1e6aa9)[_0xab42('0x1a')](function(_0x439ab9){logger[_0xab42('0x1b')](_0xab42('0x1c'),_0x549129,'request\x20sent');logger[_0xab42('0x1d')]('ChatInteraction,\x20%s,\x20%s,\x20%s',_0x549129,'request\x20sent',JSON['stringify'](_0x439ab9));if(_0x439ab9[_0xab42('0x1e')]){if(_0x439ab9[_0xab42('0x1e')][_0xab42('0x1f')]===0x1f4){logger[_0xab42('0x1e')]('ChatInteraction,\x20%s,\x20%s',_0x549129,_0x439ab9['error'][_0xab42('0x20')]);return _0x19cd3e(_0x439ab9[_0xab42('0x1e')]['message']);}logger['error'](_0xab42('0x1c'),_0x549129,_0x439ab9[_0xab42('0x1e')]['message']);return _0x148b85(_0x439ab9['error'][_0xab42('0x20')]);}else{logger['info'](_0xab42('0x1c'),_0x549129,_0xab42('0x21'));_0x148b85(_0x439ab9[_0xab42('0x22')][_0xab42('0x20')]);}})[_0xab42('0x23')](function(_0x226ce1){logger[_0xab42('0x1e')](_0xab42('0x1c'),_0x549129,_0x226ce1);_0x19cd3e(_0x226ce1);});});}function respondWithStatusCode(_0x2a81a6,_0x3858c8){_0x3858c8=_0x3858c8||0xcc;return function(_0x3fd9fe){if(_0x3fd9fe){return _0x2a81a6[_0xab42('0x24')](_0x3858c8);}return _0x2a81a6[_0xab42('0x25')](_0x3858c8)[_0xab42('0x26')]();};}function respondWithResult(_0x3de05f,_0x1be523){_0x1be523=_0x1be523||0xc8;return function(_0x48a975){if(_0x48a975){return _0x3de05f['status'](_0x1be523)[_0xab42('0x27')](_0x48a975);}};}function respondWithFilteredResult(_0x47c984,_0x256039){return function(_0x4bf345){if(_0x4bf345){var _0x1b0feb=typeof _0x256039[_0xab42('0x28')]===_0xab42('0x29')&&typeof _0x256039[_0xab42('0x2a')]===_0xab42('0x29');var _0x4453f1=_0x4bf345[_0xab42('0x2b')];var _0x3cdb48=_0x1b0feb?0x0:_0x256039[_0xab42('0x28')];var _0x17ed51=_0x1b0feb?_0x4bf345['count']:_0x256039[_0xab42('0x28')]+_0x256039[_0xab42('0x2a')];var _0x53d221;if(_0x17ed51>=_0x4453f1){_0x17ed51=_0x4453f1;_0x53d221=0xc8;}else{_0x53d221=0xce;}_0x47c984[_0xab42('0x25')](_0x53d221);return _0x47c984[_0xab42('0x2c')](_0xab42('0x2d'),_0x3cdb48+'-'+_0x17ed51+'/'+_0x4453f1)[_0xab42('0x27')](_0x4bf345);}return null;};}function saveUpdates(_0x4bf499){return function(_0xa5fa67){if(_0xa5fa67){return _0xa5fa67[_0xab42('0x2e')](_0x4bf499)[_0xab42('0x1a')](function(_0x5b3d48){return _0x5b3d48;});}return null;};}function removeEntity(_0x2ee732){return function(_0x1d2976){if(_0x1d2976){return _0x1d2976[_0xab42('0x2f')]()[_0xab42('0x1a')](function(){_0x2ee732[_0xab42('0x25')](0xcc)[_0xab42('0x26')]();});}};}function handleEntityNotFound(_0x1aa0be){return function(_0x281629){if(!_0x281629){_0x1aa0be[_0xab42('0x24')](0x194);}return _0x281629;};}function handleError(_0x29cfc8,_0x2c20e6){_0x2c20e6=_0x2c20e6||0x1f4;return function(_0x5b2457){logger[_0xab42('0x1e')](_0x5b2457['stack']);if(_0x5b2457['name']){delete _0x5b2457[_0xab42('0x30')];}_0x29cfc8[_0xab42('0x25')](_0x2c20e6)[_0xab42('0x31')](_0x5b2457);};}function getMustacheRender(_0x56d601,_0x48cdb7){return Mustache[_0xab42('0x32')](_0x56d601,_[_0xab42('0x33')](_0x48cdb7['body'],{'contact':_0x48cdb7[_0xab42('0x34')],'message':_0x48cdb7[_0xab42('0x20')],'agent':_0x48cdb7[_0xab42('0x35')],'interaction':_0x48cdb7['interaction'],'account':_0x48cdb7['account']}))||'';}exports[_0xab42('0x36')]=function(_0x8db059,_0x173ac9){var _0xbd4aee={};var _0x25fb3a=_[_0xab42('0x37')](db[_0xab42('0x38')][_0xab42('0x39')],function(_0x41c054){return{'name':_0x41c054[_0xab42('0x3a')],'type':_0x41c054[_0xab42('0x3b')][_0xab42('0x3c')]};});_0xbd4aee=qs['getOptions'](_0x25fb3a,_0x8db059);return interaction[_0xab42('0x3d')](_0xab42('0x3e'),_0x8db059['query'],_0x8db059[_0xab42('0x3f')],_0xbd4aee,_0x25fb3a)[_0xab42('0x1a')](respondWithFilteredResult(_0x173ac9,_0xbd4aee))[_0xab42('0x23')](handleError(_0x173ac9,null));};exports[_0xab42('0x40')]=function(_0x187e7c,_0x36d1ac){var _0x4ad4b7={'raw':![],'where':{'id':_0x187e7c[_0xab42('0x41')]['id']}},_0x541efc={};_0x541efc[_0xab42('0x42')]=_[_0xab42('0x43')](db[_0xab42('0x38')][_0xab42('0x39')]);_0x541efc['query']=_[_0xab42('0x43')](_0x187e7c[_0xab42('0x44')]);_0x541efc[_0xab42('0x45')]=_[_0xab42('0x46')](_0x541efc[_0xab42('0x42')],_0x541efc[_0xab42('0x44')]);_0x4ad4b7[_0xab42('0x47')]=_['intersection'](_0x541efc['model'],qs[_0xab42('0x48')](_0x187e7c[_0xab42('0x44')]['fields']));_0x4ad4b7[_0xab42('0x47')]=_0x4ad4b7[_0xab42('0x47')][_0xab42('0x49')]?_0x4ad4b7[_0xab42('0x47')]:_0x541efc[_0xab42('0x42')];if(_0x187e7c[_0xab42('0x44')][_0xab42('0x4a')]){_0x4ad4b7[_0xab42('0x4b')]=[{'all':!![]}];}_0x4ad4b7=_['merge']({},_0x4ad4b7,_0x187e7c['options']);return db[_0xab42('0x38')]['find'](_0x4ad4b7)[_0xab42('0x1a')](handleEntityNotFound(_0x36d1ac,null))[_0xab42('0x1a')](respondWithResult(_0x36d1ac,null))[_0xab42('0x23')](handleError(_0x36d1ac,null));};exports[_0xab42('0x4c')]=function(_0x5a3fa3,_0x5e4052){return db[_0xab42('0x38')][_0xab42('0x4c')](_0x5a3fa3[_0xab42('0x4d')],{})[_0xab42('0x1a')](respondWithResult(_0x5e4052,0xc9))[_0xab42('0x23')](handleError(_0x5e4052,null));};exports['update']=function(_0x293b52,_0x4029f3){if(_0x293b52['body']['id']){delete _0x293b52[_0xab42('0x4d')]['id'];}return db[_0xab42('0x38')][_0xab42('0x4e')]({'where':{'id':_0x293b52[_0xab42('0x41')]['id']}})[_0xab42('0x1a')](handleEntityNotFound(_0x4029f3,null))[_0xab42('0x1a')](saveUpdates(_0x293b52[_0xab42('0x4d')],null))[_0xab42('0x1a')](respondWithResult(_0x4029f3,null))[_0xab42('0x23')](handleError(_0x4029f3,null));};exports['destroy']=function(_0x5f0608,_0x3a2919){return db[_0xab42('0x38')][_0xab42('0x4e')]({'where':{'id':_0x5f0608[_0xab42('0x41')]['id']}})[_0xab42('0x1a')](handleEntityNotFound(_0x3a2919,null))[_0xab42('0x1a')](removeEntity(_0x3a2919,null))['catch'](handleError(_0x3a2919,null));};exports[_0xab42('0x4f')]=function(_0x2935aa,_0x6a45bc){return db[_0xab42('0x38')][_0xab42('0x4f')]()['then'](respondWithResult(_0x6a45bc,null))[_0xab42('0x23')](handleError(_0x6a45bc,null));};exports['createVidaooSession']=function(_0x434462,_0x5d546e){var _0xaf95ef=_0x434462[_0xab42('0x41')]['id'];var _0x584106;var _0x1380cf;var _0x2d223d;return db[_0xab42('0x38')][_0xab42('0x50')]({'where':{'id':_0xaf95ef}})[_0xab42('0x1a')](function(_0x399a42){_0x584106=_0x399a42;return db[_0xab42('0x51')][_0xab42('0x50')]({'where':{'id':_0x399a42[_0xab42('0x52')]},'attributes':['id',_0xab42('0x53'),_0xab42('0x54'),_0xab42('0x55'),_0xab42('0x56'),_0xab42('0x57')],'raw':!![]});})[_0xab42('0x1a')](function(_0x32f2f9){if(_0x32f2f9&&_0x32f2f9['vidaooApiKey']&&_0x32f2f9[_0xab42('0x54')]){_0x1380cf=_0x32f2f9;var _0x430bdf={'interaction':{'id':_0xaf95ef},'agent':{'id':_0x434462[_0xab42('0x3f')]['id'],'name':_0x434462['user'][_0xab42('0x30')],'fullname':_0x434462[_0xab42('0x3f')][_0xab42('0x58')],'email':_0x434462[_0xab42('0x3f')][_0xab42('0x59')]},'contact':_0x434462[_0xab42('0x4d')][_0xab42('0x34')],'account':_0x434462[_0xab42('0x4d')][_0xab42('0x5a')]};var _0x338939={'rejectUnauthorized':![],'method':_0xab42('0x5b'),'url':'https://api-vidaoo.xcally.com/api/v1/meetings','headers':{'X-APIKEY':_0x32f2f9['vidaooApiKey']},'body':{'duration':null,'scheduledAt':null,'participants':[_0x434462[_0xab42('0x3f')]['email']],'buttons':null,'topic':_0x1380cf[_0xab42('0x55')],'note':_['isNull'](_0x1380cf['vidaooNote'])?null:getMustacheRender(_0x1380cf[_0xab42('0x56')],_0x430bdf),'metadata':null},'redirect':_0xab42('0x5c'),'json':!![]};try{if(!_[_0xab42('0x5d')](_0x1380cf[_0xab42('0x57')])){var _0x522f17=getMustacheRender(_0x1380cf['vidaooMetadata'],_0x430bdf);var _0x2903eb=JSON[_0xab42('0x5e')](_0x522f17);_0x338939[_0xab42('0x4d')][_0xab42('0x5f')]=_0x2903eb;}}catch(_0x3b19fc){throw new db[(_0xab42('0x60'))][(_0xab42('0x61'))](_0xab42('0x62'));}return rp(_0x338939);}else{throw new db['Sequelize'][(_0xab42('0x61'))](_0xab42('0x63'));}})[_0xab42('0x1a')](function(_0x49f7e3){_0x2d223d=_0x49f7e3;if(_0x2d223d['id']){var _0x56e665={'body':_0x2d223d[_0xab42('0x64')],'ChatWebsiteId':_0x1380cf['id'],'ChatInteractionId':_0x584106['id'],'direction':'out','UserId':_0x434462['user']['id']};return db[_0xab42('0x65')]['create'](_0x56e665,{});}else{throw new db['Sequelize']['ValidationError'](_0xab42('0x66'));}})[_0xab42('0x1a')](function(){return _0x584106[_0xab42('0x67')]({'vidaooSessionId':_0x2d223d['id']});})[_0xab42('0x1a')](respondWithResult(_0x5d546e,null))[_0xab42('0x23')](handleError(_0x5d546e,null));};exports[_0xab42('0x68')]=function(_0x2ad7b7,_0xb4e750){if(_0x2ad7b7['body']['id']){delete _0x2ad7b7['body']['id'];}return db[_0xab42('0x38')][_0xab42('0x4e')]({'where':{'id':_0x2ad7b7[_0xab42('0x41')]['id']},'include':[{'model':db[_0xab42('0x69')],'as':'Contact'}]})[_0xab42('0x1a')](handleEntityNotFound(_0xb4e750,null))[_0xab42('0x1a')](saveUpdates(_0x2ad7b7[_0xab42('0x4d')],null))['then'](respondWithResult(_0xb4e750,null))[_0xab42('0x23')](handleError(_0xb4e750,null));};exports[_0xab42('0x6a')]=function(_0x1000db,_0x239f80){if(_0x1000db[_0xab42('0x4d')]['id']){delete _0x1000db[_0xab42('0x4d')]['id'];}return db[_0xab42('0x38')]['find']({'where':{'id':_0x1000db[_0xab42('0x41')]['id']}})[_0xab42('0x1a')](function(_0x4fc926){if(!_0x4fc926){logger[_0xab42('0x1e')](_0xab42('0x6b'),_0xab42('0x6a'),0x194,_0xab42('0x6c'));_0x239f80[_0xab42('0x24')](0x194);}else{if(_0x4fc926[_0xab42('0x6d')]){throw new db[(_0xab42('0x60'))][(_0xab42('0x61'))]('Interaction\x20already\x20assigned');}}return _0x4fc926;})[_0xab42('0x1a')](function(_0x2d456b){if(_0x2d456b){return _0x2d456b[_0xab42('0x2e')]({'closed':_0x1000db[_0xab42('0x4d')][_0xab42('0x6e')],'disposition':_0x1000db[_0xab42('0x4d')]['disposition']})[_0xab42('0x1a')](function(_0x26648d){return _0x26648d;});}})[_0xab42('0x1a')](function(){return respondWithRpcPromise(_0xab42('0x6f'),'abandon',_0x1000db['body'],client9004);})[_0xab42('0x1a')](respondWithResult(_0x239f80,null))[_0xab42('0x23')](handleError(_0x239f80,null));};exports[_0xab42('0x70')]=function(_0x3b8e53,_0x516380){_0x3b8e53[_0xab42('0x4d')][_0xab42('0x30')]=_0x3b8e53[_0xab42('0x71')]['originalname'];_0x3b8e53[_0xab42('0x4d')]['basename']=_0x3b8e53[_0xab42('0x71')]['filename'];_0x3b8e53['body'][_0xab42('0x3b')]=_0x3b8e53[_0xab42('0x71')][_0xab42('0x72')];return db[_0xab42('0x73')][_0xab42('0x4c')](_0x3b8e53['body'])['then'](respondWithResult(_0x516380,0xc9))[_0xab42('0x23')](handleError(_0x516380,null));};exports['attachmentDownload']=function(_0x32b29a,_0x442f2f){return db['ChatInteraction'][_0xab42('0x50')]({'where':{'id':_0x32b29a[_0xab42('0x41')]['id']},'raw':!![]})[_0xab42('0x1a')](handleEntityNotFound(_0x442f2f,null))[_0xab42('0x1a')](function(_0x21ee87){if(_0x21ee87){if(_0x21ee87['closed']){return _0x442f2f['status'](0x193)[_0xab42('0x27')]({'status':0x193,'message':'Unauthorized'});}return db[_0xab42('0x73')][_0xab42('0x50')]({'where':{'id':_0x32b29a[_0xab42('0x44')]['attachId']},'raw':!![]})[_0xab42('0x1a')](handleEntityNotFound(_0x442f2f,null));}})['then'](function(_0x39b707){if(_0x39b707){var _0x1a387e=_0x39b707['ChatOfflineMessageId']!==null;var _0x239cd4=path[_0xab42('0x74')](config[_0xab42('0x75')],_0xab42('0x76'));if(_0x1a387e){_0x239cd4=path[_0xab42('0x74')](_0x239cd4,'offline-chat/');}var _0x5a6621=path[_0xab42('0x74')](_0x239cd4,_0x39b707['basename']);return _0x442f2f[_0xab42('0x77')](_0x5a6621);}})[_0xab42('0x23')](handleError(_0x442f2f,null));};exports[_0xab42('0x78')]=function(_0x2104cb,_0x5cd485){var _0x15cb3c=null;var _0x79cc00=null;var _0x4951b9=null;if(_0x2104cb[_0xab42('0x4d')]['id']){delete _0x2104cb[_0xab42('0x4d')]['id'];}if(_0x2104cb[_0xab42('0x4d')][_0xab42('0x79')]){_0x4951b9=path[_0xab42('0x74')](config[_0xab42('0x75')],_0xab42('0x7a'),util[_0xab42('0x7b')]('transcript-%s.txt',Date['now']()));_0x2104cb[_0xab42('0x4d')][_0xab42('0x7c')]=_0x4951b9;}return db[_0xab42('0x38')][_0xab42('0x4e')]({'where':{'id':_0x2104cb['params']['id']},'include':[{'model':db['ChatMessage'],'as':_0xab42('0x7d'),'include':[{'model':db[_0xab42('0x7e')],'as':'User'}]}]})['then'](handleEntityNotFound(_0x5cd485,null))[_0xab42('0x1a')](saveUpdates(_0x2104cb[_0xab42('0x4d')],null))[_0xab42('0x1a')](function(_0x10ecaf){if(_0x10ecaf){_0x15cb3c=_0x10ecaf;return db['ChatWebsite']['find']({'where':{'id':_0x15cb3c['ChatWebsiteId']}});}})['then'](function(_0x424cd9){if(_0x424cd9){_0x79cc00=_0x424cd9;return db[_0xab42('0x69')][_0xab42('0x4e')]({'where':{'id':_0x15cb3c[_0xab42('0x7f')]}});}})['then'](function(_0x528396){if(_0x528396){if(_0x4951b9){var _0x592408=null;for(var _0x21005=0x1;_0x21005<_0x15cb3c[_0xab42('0x7d')][_0xab42('0x49')];++_0x21005){_0x592408=_0x15cb3c[_0xab42('0x7d')][_0x21005];var _0x50e603=_0x592408[_0xab42('0x6d')]?util[_0xab42('0x7b')]('%s%d',_0x79cc00[_0xab42('0x80')],_0x592408[_0xab42('0x6d')]):'System';var _0x1e8d84=_0x2104cb['body']['customer']||util['format'](_0xab42('0x81'),'Visitor',_0x592408[_0xab42('0x7f')]);switch(_0x79cc00[_0xab42('0x82')]){case'website_alias':_0x50e603=_0x592408['UserId']?util[_0xab42('0x7b')](_0xab42('0x81'),_0x79cc00[_0xab42('0x80')],_0x592408[_0xab42('0x6d')]):_0xab42('0x83');break;case _0xab42('0x84'):_0x50e603=_0x592408[_0xab42('0x6d')]?_0x592408[_0xab42('0x7e')]['alias']||_0x592408[_0xab42('0x7e')][_0xab42('0x58')]:'System';break;case _0xab42('0x85'):_0x50e603=_0x592408[_0xab42('0x6d')]?_0x592408['User']['fullname']:_0xab42('0x83');break;default:_0x50e603=_0x592408['UserId']?util[_0xab42('0x7b')](_0xab42('0x81'),_0x79cc00['agentAlias'],_0x592408['UserId']):'System';}var _0x5e05ed=util[_0xab42('0x7b')]('[%s]\x20%s:\x20%s\x0a',moment(_0x592408[_0xab42('0x86')])[_0xab42('0x7b')](_0xab42('0x87')),_0x592408[_0xab42('0x88')]==='in'?_0x1e8d84:_0x50e603,_0x592408[_0xab42('0x4d')]);if(!_0x592408[_0xab42('0x89')]){fs[_0xab42('0x8a')](_0x4951b9,_0x5e05ed);}}return db[_0xab42('0x8b')][_0xab42('0x50')]({'where':{'service':!![]},'include':[{'model':db[_0xab42('0x8c')],'as':'Smtp','raw':!![],'include':[{'model':db[_0xab42('0x8d')],'as':_0xab42('0x8d'),'raw':!![]}]}]});}}})['then'](function(_0x17a51e){if(!_0x17a51e||!_0x17a51e[_0xab42('0x8e')]||!_0x2104cb['body'])return _0x15cb3c;var _0x4e2d04=_0x17a51e[_0xab42('0x8f')]();return respondWithRpcPromise(_0xab42('0x90'),_0xab42('0x91'),{'account':_0x4e2d04,'message':{'from':util[_0xab42('0x7b')](_0xab42('0x92'),_0x17a51e[_0xab42('0x30')],_0x17a51e['email']||_0x17a51e[_0xab42('0x8e')][_0xab42('0x3f')]),'to':_0x2104cb['body'][_0xab42('0x79')],'subject':'Mail\x20Transcript','text':util[_0xab42('0x7b')](_0xab42('0x93'),_0x2104cb['body'][_0xab42('0x79')]),'attachments':[{'path':_0x4951b9}]}})[_0xab42('0x1a')](function(){return _0x15cb3c;})[_0xab42('0x23')](function(_0x5096a7){logger[_0xab42('0x1e')](_0x5096a7);});})['then'](respondWithStatusCode(_0x5cd485,0xc8))['catch'](handleError(_0x5cd485,null));};exports['addMessage']=function(_0xe42e41,_0x1e5919){return db[_0xab42('0x65')]['find']({'where':{'id':_0xe42e41[_0xab42('0x41')]['id']}})['then'](handleEntityNotFound(_0x1e5919,null))[_0xab42('0x1a')](function(_0x5abae1){if(_0x5abae1){return _0x5abae1['addMessage'](_0xe42e41[_0xab42('0x4d')][_0xab42('0x94')],_[_0xab42('0x95')](_0xe42e41[_0xab42('0x4d')],[_0xab42('0x94'),'id'])||{});}})['then'](respondWithResult(_0x1e5919,null))[_0xab42('0x23')](handleError(_0x1e5919,null));};exports[_0xab42('0x96')]=function(_0x23eba5,_0x52b16c){var _0x1a7fe8={'raw':![],'where':{}};var _0x5b0e6c={};var _0xe8302a={'count':0x0,'rows':[]};return db[_0xab42('0x38')][_0xab42('0x50')]({'where':{'id':_0x23eba5['params']['id']}})[_0xab42('0x1a')](handleEntityNotFound(_0x52b16c,null))[_0xab42('0x1a')](function(_0x2c5c7c){if(_0x2c5c7c){_0x5b0e6c[_0xab42('0x42')]=_[_0xab42('0x43')](db[_0xab42('0x65')][_0xab42('0x39')]);_0x5b0e6c[_0xab42('0x44')]=_['keys'](_0x23eba5[_0xab42('0x44')]);_0x5b0e6c[_0xab42('0x45')]=_[_0xab42('0x46')](_0x5b0e6c[_0xab42('0x42')],_0x5b0e6c[_0xab42('0x44')]);_0x1a7fe8[_0xab42('0x47')]=_[_0xab42('0x46')](_0x5b0e6c[_0xab42('0x42')],qs[_0xab42('0x48')](_0x23eba5['query'][_0xab42('0x48')]));_0x1a7fe8[_0xab42('0x47')]=_0x1a7fe8[_0xab42('0x47')]['length']?_0x1a7fe8[_0xab42('0x47')]:_0x5b0e6c[_0xab42('0x42')];if(!_0x23eba5['query']['hasOwnProperty'](_0xab42('0x97'))){_0x1a7fe8[_0xab42('0x2a')]=qs[_0xab42('0x2a')](_0x23eba5['query']['limit']);_0x1a7fe8[_0xab42('0x28')]=qs[_0xab42('0x28')](_0x23eba5[_0xab42('0x44')][_0xab42('0x28')]);}_0x1a7fe8['order']=qs['sort'](_0x23eba5[_0xab42('0x44')][_0xab42('0x98')]);_0x1a7fe8[_0xab42('0x99')]=qs['filters'](_[_0xab42('0x9a')](_0x23eba5[_0xab42('0x44')],_0x5b0e6c[_0xab42('0x45')]));_0x1a7fe8[_0xab42('0x99')][_0xab42('0x9b')]=_0x2c5c7c['id'];if(_0x23eba5[_0xab42('0x44')][_0xab42('0x9c')]){_0x1a7fe8['where']=_[_0xab42('0x33')](_0x1a7fe8[_0xab42('0x99')],{'$or':_[_0xab42('0x37')](_0x1a7fe8[_0xab42('0x47')],function(_0x26a77b){var _0x4769f8={};_0x4769f8[_0x26a77b]={'$like':'%'+_0x23eba5[_0xab42('0x44')][_0xab42('0x9c')]+'%'};return _0x4769f8;})});}if(_0x23eba5[_0xab42('0x44')]['$gte']){var _0x5cb029=_0x23eba5['query'][_0xab42('0x9d')][_0xab42('0x9e')](',');var _0x98bb44={};_0x98bb44[_0x5cb029[0x0]]={'$gte':moment(_0x5cb029[0x1])[_0xab42('0x7b')](_0xab42('0x9f'))};_0x1a7fe8['where']=_['merge'](_0x1a7fe8[_0xab42('0x99')],_0x98bb44);}_0x1a7fe8=_[_0xab42('0x33')]({},_0x1a7fe8,_0x23eba5[_0xab42('0xa0')]);return db[_0xab42('0x65')]['count']({'where':_0x1a7fe8[_0xab42('0x99')]})['then'](function(_0x4081db){_0xe8302a[_0xab42('0x2b')]=_0x4081db;if(_0x23eba5[_0xab42('0x44')][_0xab42('0x4a')]){_0x1a7fe8[_0xab42('0x4b')]=[{'all':!![]}];}return db['ChatMessage'][_0xab42('0x3d')](_0x1a7fe8);})[_0xab42('0x1a')](function(_0x32a9f7){_0xe8302a[_0xab42('0xa1')]=_0x32a9f7;return _0xe8302a;});}})['then'](respondWithFilteredResult(_0x52b16c,_0x1a7fe8))['catch'](handleError(_0x52b16c,null));};exports['getMyMessages']=function(_0x3d1e1e,_0x5d3044){var _0x470efd={'where':{}},_0x4ed69c={},_0x1ceca5={'count':0x0,'rows':[]};return db['ChatInteraction'][_0xab42('0x50')]({'where':{'id':_0x3d1e1e[_0xab42('0x41')]['id']}})[_0xab42('0x1a')](handleEntityNotFound(_0x5d3044,null))[_0xab42('0x1a')](function(_0x2dd6b8){if(_0x2dd6b8){_0x4ed69c['model']=_[_0xab42('0x43')](db[_0xab42('0x65')][_0xab42('0x39')]);_0x4ed69c['query']=_[_0xab42('0x43')](_0x3d1e1e[_0xab42('0x44')]);_0x4ed69c[_0xab42('0x45')]=_[_0xab42('0x46')](_0x4ed69c[_0xab42('0x42')],_0x4ed69c[_0xab42('0x44')]);_0x470efd[_0xab42('0x47')]=_[_0xab42('0x46')](_0x4ed69c[_0xab42('0x42')],qs[_0xab42('0x48')](_0x3d1e1e[_0xab42('0x44')]['fields']));_0x470efd['attributes']=_0x470efd['attributes']['length']?_0x470efd[_0xab42('0x47')]:_0x4ed69c[_0xab42('0x42')];if(!_0x3d1e1e[_0xab42('0x44')][_0xab42('0xa2')](_0xab42('0x97'))){_0x470efd[_0xab42('0x2a')]=qs['limit'](_0x3d1e1e[_0xab42('0x44')][_0xab42('0x2a')]);_0x470efd[_0xab42('0x28')]=qs[_0xab42('0x28')](_0x3d1e1e[_0xab42('0x44')][_0xab42('0x28')]);}_0x470efd['order']=qs[_0xab42('0x98')](_0x3d1e1e[_0xab42('0x44')][_0xab42('0x98')]);_0x470efd[_0xab42('0x99')]=qs[_0xab42('0x45')](_[_0xab42('0x9a')](_0x3d1e1e[_0xab42('0x44')],_0x4ed69c[_0xab42('0x45')]));_0x470efd[_0xab42('0x99')][_0xab42('0x9b')]=_0x2dd6b8['id'];if(_0x3d1e1e['query'][_0xab42('0x9c')]){_0x470efd[_0xab42('0x99')]=_[_0xab42('0x33')](_0x470efd[_0xab42('0x99')],{'$or':_[_0xab42('0x37')](_0x470efd[_0xab42('0x47')],function(_0x5e699c){var _0x49c77d={};_0x49c77d[_0x5e699c]={'$like':'%'+_0x3d1e1e['query'][_0xab42('0x9c')]+'%'};return _0x49c77d;})});}_0x470efd['where'][_0xab42('0x89')]=![];if(_0x3d1e1e[_0xab42('0x44')]['id']){_0x470efd[_0xab42('0x99')]['id']={'$gt':_0x3d1e1e['query']['id']};}_0x470efd=_['merge']({},_0x470efd,_0x3d1e1e[_0xab42('0xa0')]);return db['ChatMessage']['count']({'where':_0x470efd['where']})['then'](function(_0x2842f5){_0x1ceca5[_0xab42('0x2b')]=_0x2842f5;_0x470efd[_0xab42('0x4b')]=[];if(_0x3d1e1e['query'][_0xab42('0xa3')]){_0x470efd[_0xab42('0x4b')][_0xab42('0xa4')]({'model':db['User'],'as':_0xab42('0x7e'),'attributes':['id',_0xab42('0x58'),'alias']});}if(_0x3d1e1e[_0xab42('0x44')][_0xab42('0x4a')]){_0x470efd[_0xab42('0x4b')]=[{'all':!![]}];}return db[_0xab42('0x65')]['findAll'](_0x470efd);})[_0xab42('0x1a')](function(_0x3800e5){_0x1ceca5[_0xab42('0xa1')]=_0x3800e5;return _0x1ceca5;});}})[_0xab42('0x1a')](respondWithFilteredResult(_0x5d3044,_0x470efd))['catch'](handleError(_0x5d3044,null));};exports[_0xab42('0xa5')]=function(_0x2b049d,_0x27cc88){return db[_0xab42('0x38')]['find']({'where':{'id':_0x2b049d[_0xab42('0x41')]['id']}})['then'](handleEntityNotFound(_0x27cc88,null))['then'](function(_0x325532){if(_0x325532){return _0x325532[_0xab42('0xa6')](_0x2b049d[_0xab42('0x4d')][_0xab42('0x94')],_[_0xab42('0x95')](_0x2b049d[_0xab42('0x4d')],[_0xab42('0x94'),'id'])||{})['spread'](function(){return db['Tag'][_0xab42('0x3d')]({'attributes':['id',_0xab42('0x30'),'color'],'where':{'id':_0x2b049d[_0xab42('0x4d')][_0xab42('0x94')]}});})[_0xab42('0x1a')](function(_0x402b50){socket[_0xab42('0xa7')](_0xab42('0xa8'),{'id':Number(_0x2b049d[_0xab42('0x41')]['id']),'tags':_0x402b50||[]});return{'id':Number(_0x2b049d[_0xab42('0x41')]['id']),'tags':_0x402b50||[]};});}})[_0xab42('0x1a')](respondWithResult(_0x27cc88,null))[_0xab42('0x23')](handleError(_0x27cc88,null));};exports[_0xab42('0xa9')]=function(_0x195797,_0x17465e){return db['ChatInteraction']['find']({'where':{'id':_0x195797[_0xab42('0x41')]['id']}})[_0xab42('0x1a')](handleEntityNotFound(_0x17465e,null))['then'](function(_0x443fff){if(_0x443fff){return _0x443fff[_0xab42('0xa9')](_0x195797[_0xab42('0x44')][_0xab42('0x94')]);}})[_0xab42('0x1a')](respondWithStatusCode(_0x17465e,null))[_0xab42('0x23')](handleError(_0x17465e,null));};exports[_0xab42('0x77')]=function(_0x8ead8b,_0x28c8c1){var _0x1040f3=moment()[_0xab42('0xaa')]()[_0xab42('0xab')]();var _0x10723f=path['join'](config[_0xab42('0x75')],'server',_0xab42('0xac'),_0xab42('0xad'));var _0xf0e0f8=path[_0xab42('0x74')](config[_0xab42('0x75')],_0xab42('0xae'),_0xab42('0xac'),_0xab42('0xaf'));var _0x7ec0ea=path[_0xab42('0x74')](_0x10723f,_0x1040f3);var _0x4bf251=util[_0xab42('0x7b')]('transcript-%d-%s.zip',_0x8ead8b[_0xab42('0x41')]['id'],_0x1040f3);var _0x150141=path[_0xab42('0x74')](_0x10723f,_0x4bf251);var _0x52c6a5=[];_0x52c6a5[_0xab42('0xa4')]({'model':db[_0xab42('0x7e')],'as':_0xab42('0x7e'),'attributes':['id',_0xab42('0x58')],'raw':!![]});_0x52c6a5[_0xab42('0xa4')]({'model':db['CmContact'],'as':_0xab42('0xb0'),'attributes':['id','firstName','lastName'],'raw':!![]});if(_0x8ead8b[_0xab42('0x44')]['attachments']){_0x52c6a5['push']({'model':db[_0xab42('0x73')],'as':_0xab42('0x73'),'raw':!![]});}var _0x2ff3bb=[{'model':db[_0xab42('0x65')],'as':_0xab42('0x7d'),'attributes':['id',_0xab42('0x4d'),_0xab42('0x86'),_0xab42('0x88'),_0xab42('0x89'),'read'],'include':_0x52c6a5}];_0x2ff3bb[_0xab42('0xa4')]({'model':db[_0xab42('0x51')],'as':_0xab42('0xb1'),'attributes':['id',_0xab42('0x30')]});_0x2ff3bb[_0xab42('0xa4')]({'model':db[_0xab42('0x7e')],'as':_0xab42('0xb2'),'attributes':['id','fullname']});return db[_0xab42('0x38')][_0xab42('0x4e')]({'where':{'id':_0x8ead8b[_0xab42('0x41')]['id']},'include':_0x2ff3bb})[_0xab42('0x1a')](handleEntityNotFound(_0x28c8c1,null))[_0xab42('0x1a')](function(_0x302ebd){if(_0x302ebd){var _0x52efe2=_0x302ebd['get']({'plain':!![]});fs[_0xab42('0xb3')](_0x7ec0ea);var _0x58040a={'channel':_0xab42('0xb4'),'account':_0x52efe2[_0xab42('0xb1')][_0xab42('0x30')],'agent':_0x52efe2[_0xab42('0xb2')]?_0x52efe2[_0xab42('0xb2')][_0xab42('0x58')]:_0xab42('0xb5'),'createdAt':moment(_0x52efe2[_0xab42('0x86')])[_0xab42('0x7b')]('YYYY-MM-DD\x20HH:mm:ss')[_0xab42('0xab')](),'closedAt':_0x52efe2[_0xab42('0x6e')]?moment(_0x52efe2[_0xab42('0xb6')])['format']('YYYY-MM-DD\x20HH:mm:ss')['toString']():'','disposition':_0x52efe2[_0xab42('0xb7')],'chatInfo':{'browser':_0x52efe2[_0xab42('0xb8')],'os':_0x52efe2[_0xab42('0xb9')],'referer':_0x52efe2['referer'],'customerIp':_0x52efe2['customerIp'],'customerPort':_0x52efe2[_0xab42('0xba')]?_0x52efe2[_0xab42('0xba')]:_0xab42('0xb5')},'messages':_(_0x52efe2[_0xab42('0x7d')])[_0xab42('0xbb')]()[_0xab42('0x9c')]({'secret':![]})[_0xab42('0x37')](function(_0x5d6cdf){if(_0x5d6cdf[_0xab42('0x73')]){var _0x5dacea=path[_0xab42('0x74')](_0xf0e0f8,_0x5d6cdf[_0xab42('0x73')][_0xab42('0xbc')]);if(fs[_0xab42('0xbd')](_0x5dacea)){fs['createReadStream'](_0x5dacea)[_0xab42('0xbe')](fs['createWriteStream'](path['join'](_0x7ec0ea,_0x5d6cdf[_0xab42('0x73')][_0xab42('0xbc')])));}}return{'date':moment(_0x5d6cdf['createdAt'])['format'](_0xab42('0x9f'))[_0xab42('0xab')](),'sender':_0x5d6cdf[_0xab42('0x88')]===_0xab42('0xbf')?_0x5d6cdf[_0xab42('0x7e')]?_0x5d6cdf['User'][_0xab42('0x58')]:_0xab42('0x83'):_0x5d6cdf[_0xab42('0xb0')][_0xab42('0xc0')]+(_0x5d6cdf[_0xab42('0xb0')][_0xab42('0xc1')]?'\x20'+_0x5d6cdf[_0xab42('0xb0')][_0xab42('0xc1')]:''),'body':_0x5d6cdf[_0xab42('0x73')]?_0x5d6cdf[_0xab42('0x73')][_0xab42('0xbc')]:_0x5d6cdf[_0xab42('0x4d')],'direction':_0x5d6cdf[_0xab42('0x88')]===_0xab42('0xbf')?'A':'C','secret':_0x5d6cdf[_0xab42('0x89')],'read':_0x5d6cdf[_0xab42('0xc2')],'attachment':_0x5d6cdf[_0xab42('0x73')]};})[_0xab42('0xc3')]()};return ejs['renderFile'](path[_0xab42('0x74')](config[_0xab42('0x75')],'server',_0xab42('0xc4'),'downloadInteraction.ejs'),{'interaction':_0x58040a})['then'](function(_0x1a447f){var _0x3c069c=path['join'](_0x7ec0ea,_0xab42('0xc5')+_0x52efe2['id']+'-'+_0x1040f3+'.pdf');var _0xfad48e={'path':_0x3c069c,'channel':'Chat','interactionId':_0x52efe2['id']};return pdf[_0xab42('0xc6')](_0x1a447f,_0xfad48e);})[_0xab42('0x1a')](function(){return new Promise(function(_0x46092f,_0x2a5405){zipdir(_0x7ec0ea,{'saveTo':_0x150141},function(_0x5ac792,_0x26a9a2){if(_0x5ac792)return _0x2a5405(_0x5ac792);return _0x46092f(_0x26a9a2);});})[_0xab42('0x1a')](function(){return new BPromise(function(_0x393c5d,_0x1a52d1){rimraf(_0x7ec0ea,function(_0x59218c){if(_0x59218c)_0x1a52d1(_0x59218c);return _0x393c5d();});});})[_0xab42('0x1a')](function(){return _0x28c8c1[_0xab42('0x77')](_0x150141,_0x4bf251,function(_0xe1cbd3){if(_0xe1cbd3){logger['error'](_0xab42('0xc7'),_0xe1cbd3);}else{fs[_0xab42('0xc8')](_0x150141);}});});});}else{return _0x28c8c1[_0xab42('0x24')](0xc8);}})[_0xab42('0x23')](handleError(_0x28c8c1,null));};