Built motion from commit 47436d59.|2.6.7
[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 _0x5f28=['../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','jayson/promise','client','http','request','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','undefined','limit','offset','set','Content-Range','update','destroy','stack','name','send','merge','body','contact','agent','interaction','account','index','map','ChatInteraction','rawAttributes','type','key','findAll','chat','query','then','show','params','model','keys','filters','intersection','attributes','length','find','create','createVidaooSession','findOne','ChatWebsite','vidaooTopic','vidaooNote','vidaooMetadata','vidaooApiKey','vidaooEscalation','user','email','POST','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','Interaction\x20already\x20assigned','closed','AbandonInteraction','file','originalname','basename','mimetype','Attachment','attachmentDownload','Unauthorized','attachId','root','server/files/attachments/','join','offline-chat/','download','close','mailTranscript','server/files/chat/upload/','transcript-%s.txt','pathTranscript','Messages','User','ContactId','format','%s%d','System','customer','Visitor','agentIdentifier','website_alias','agentAlias','agent_alias','fullname','[%s]\x20%s:\x20%s\x0a','createdAt','MM/DD/YYYY\x20HH:mm:ss','direction','secret','MailAccount','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','omit','ids','getMessages','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','split','YYYY-MM-DD\x20HH:mm:ss','options','count','includeAll','include','rows','includeAgent','push','alias','addTags','setTags','spread','Tag','color','removeTags','unix','toString','server','files','transcript-%d-%s.zip','Contact','firstName','lastName','Account','get','mkdirSync','Chat','Owner','N.A.','closedAt','browserName','osName','referer','customerIp','customerPort','tail','existsSync','createReadStream','pipe','createWriteStream','read','value','views','downloadInteraction.ejs','.pdf','createPdfFromHTML','err','rimraf','zip-dir','moment','bluebird','mustache','util','ejs','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','../../components/export/pdf','../../config/logger','api'];(function(_0x136619,_0x31c9b2){var _0x38c4a5=function(_0x10b74d){while(--_0x10b74d){_0x136619['push'](_0x136619['shift']());}};_0x38c4a5(++_0x31c9b2);}(_0x5f28,0xc7));var _0x85f2=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x5f28[_0x3dd15e];return _0x231fd0;};'use strict';var rimraf=require(_0x85f2('0x0'));var zipdir=require(_0x85f2('0x1'));var rp=require('request-promise');var moment=require(_0x85f2('0x2'));var BPromise=require(_0x85f2('0x3'));var Mustache=require(_0x85f2('0x4'));var util=require(_0x85f2('0x5'));var path=require('path');var ejs=require(_0x85f2('0x6'));var fs=require('fs');var _=require(_0x85f2('0x7'));var Redis=require(_0x85f2('0x8'));var interaction=require(_0x85f2('0x9'));var qs=require(_0x85f2('0xa'));var pdf=require(_0x85f2('0xb'));var logger=require(_0x85f2('0xc'))(_0x85f2('0xd'));var config=require(_0x85f2('0xe'));var db=require(_0x85f2('0xf'))['db'];config[_0x85f2('0x10')]=_[_0x85f2('0x11')](config[_0x85f2('0x10')],{'host':_0x85f2('0x12'),'port':0x18eb});var socket=require(_0x85f2('0x13'))(new Redis(config[_0x85f2('0x10')]));require('./chatInteraction.socket')[_0x85f2('0x14')](socket);var jayson=require(_0x85f2('0x15'));var client=jayson[_0x85f2('0x16')][_0x85f2('0x17')]({'port':0x232b});var client9004=jayson[_0x85f2('0x16')][_0x85f2('0x17')]({'port':0x232c});function respondWithRpcPromise(_0x163745,_0x955e34,_0x5c09ed,_0x4db9ea){return new BPromise(function(_0x55b3f7,_0x43f2c8){var _0x513202=_0x4db9ea||client;return _0x513202[_0x85f2('0x18')](_0x163745,_0x5c09ed)['then'](function(_0x49b908){logger[_0x85f2('0x19')](_0x85f2('0x1a'),_0x955e34,_0x85f2('0x1b'));logger[_0x85f2('0x1c')](_0x85f2('0x1d'),_0x955e34,_0x85f2('0x1b'),JSON[_0x85f2('0x1e')](_0x49b908));if(_0x49b908[_0x85f2('0x1f')]){if(_0x49b908['error'][_0x85f2('0x20')]===0x1f4){logger['error'](_0x85f2('0x1a'),_0x955e34,_0x49b908[_0x85f2('0x1f')][_0x85f2('0x21')]);return _0x43f2c8(_0x49b908['error'][_0x85f2('0x21')]);}logger['error'](_0x85f2('0x1a'),_0x955e34,_0x49b908[_0x85f2('0x1f')]['message']);return _0x55b3f7(_0x49b908[_0x85f2('0x1f')][_0x85f2('0x21')]);}else{logger[_0x85f2('0x19')](_0x85f2('0x1a'),_0x955e34,_0x85f2('0x1b'));_0x55b3f7(_0x49b908[_0x85f2('0x22')]['message']);}})[_0x85f2('0x23')](function(_0x46d2f4){logger[_0x85f2('0x1f')](_0x85f2('0x1a'),_0x955e34,_0x46d2f4);_0x43f2c8(_0x46d2f4);});});}function respondWithStatusCode(_0x23b47d,_0x27739d){_0x27739d=_0x27739d||0xcc;return function(_0x337f49){if(_0x337f49){return _0x23b47d[_0x85f2('0x24')](_0x27739d);}return _0x23b47d[_0x85f2('0x25')](_0x27739d)[_0x85f2('0x26')]();};}function respondWithResult(_0x113dcd,_0x50b7f0){_0x50b7f0=_0x50b7f0||0xc8;return function(_0x334dca){if(_0x334dca){return _0x113dcd[_0x85f2('0x25')](_0x50b7f0)[_0x85f2('0x27')](_0x334dca);}};}function respondWithFilteredResult(_0x10e18c,_0x264c2c){return function(_0x4eb42d){if(_0x4eb42d){var _0x523d88=typeof _0x264c2c['offset']===_0x85f2('0x28')&&typeof _0x264c2c[_0x85f2('0x29')]===_0x85f2('0x28');var _0x4e21b1=_0x4eb42d['count'];var _0xa32b42=_0x523d88?0x0:_0x264c2c[_0x85f2('0x2a')];var _0x2e04e5=_0x523d88?_0x4eb42d['count']:_0x264c2c[_0x85f2('0x2a')]+_0x264c2c[_0x85f2('0x29')];var _0x33bec0;if(_0x2e04e5>=_0x4e21b1){_0x2e04e5=_0x4e21b1;_0x33bec0=0xc8;}else{_0x33bec0=0xce;}_0x10e18c[_0x85f2('0x25')](_0x33bec0);return _0x10e18c[_0x85f2('0x2b')](_0x85f2('0x2c'),_0xa32b42+'-'+_0x2e04e5+'/'+_0x4e21b1)[_0x85f2('0x27')](_0x4eb42d);}return null;};}function saveUpdates(_0x322789){return function(_0x1280c5){if(_0x1280c5){return _0x1280c5[_0x85f2('0x2d')](_0x322789)['then'](function(_0x4d8548){return _0x4d8548;});}return null;};}function removeEntity(_0x2b3b7f){return function(_0x340d99){if(_0x340d99){return _0x340d99[_0x85f2('0x2e')]()['then'](function(){_0x2b3b7f['status'](0xcc)[_0x85f2('0x26')]();});}};}function handleEntityNotFound(_0x3c6354){return function(_0x2139d8){if(!_0x2139d8){_0x3c6354[_0x85f2('0x24')](0x194);}return _0x2139d8;};}function handleError(_0x2bfe8f,_0x4adc38){_0x4adc38=_0x4adc38||0x1f4;return function(_0x25b248){logger[_0x85f2('0x1f')](_0x25b248[_0x85f2('0x2f')]);if(_0x25b248['name']){delete _0x25b248[_0x85f2('0x30')];}_0x2bfe8f[_0x85f2('0x25')](_0x4adc38)[_0x85f2('0x31')](_0x25b248);};}function getMustacheRender(_0x563b97,_0x31a17c){return Mustache['render'](_0x563b97,_[_0x85f2('0x32')](_0x31a17c[_0x85f2('0x33')],{'contact':_0x31a17c[_0x85f2('0x34')],'message':_0x31a17c['message'],'agent':_0x31a17c[_0x85f2('0x35')],'interaction':_0x31a17c[_0x85f2('0x36')],'account':_0x31a17c[_0x85f2('0x37')]}))||'';}exports[_0x85f2('0x38')]=function(_0x3ac0df,_0x58d5a1){var _0x53210b={};var _0x32edf6=_[_0x85f2('0x39')](db[_0x85f2('0x3a')][_0x85f2('0x3b')],function(_0x346a88){return{'name':_0x346a88['fieldName'],'type':_0x346a88[_0x85f2('0x3c')][_0x85f2('0x3d')]};});_0x53210b=qs['getOptions'](_0x32edf6,_0x3ac0df);return interaction[_0x85f2('0x3e')](_0x85f2('0x3f'),_0x3ac0df[_0x85f2('0x40')],_0x3ac0df['user'],_0x53210b,_0x32edf6)[_0x85f2('0x41')](respondWithFilteredResult(_0x58d5a1,_0x53210b))[_0x85f2('0x23')](handleError(_0x58d5a1,null));};exports[_0x85f2('0x42')]=function(_0x49f350,_0x27a38a){var _0x42c263={'raw':![],'where':{'id':_0x49f350[_0x85f2('0x43')]['id']}},_0x46309b={};_0x46309b[_0x85f2('0x44')]=_[_0x85f2('0x45')](db[_0x85f2('0x3a')][_0x85f2('0x3b')]);_0x46309b[_0x85f2('0x40')]=_[_0x85f2('0x45')](_0x49f350[_0x85f2('0x40')]);_0x46309b[_0x85f2('0x46')]=_[_0x85f2('0x47')](_0x46309b[_0x85f2('0x44')],_0x46309b[_0x85f2('0x40')]);_0x42c263[_0x85f2('0x48')]=_['intersection'](_0x46309b[_0x85f2('0x44')],qs['fields'](_0x49f350[_0x85f2('0x40')]['fields']));_0x42c263[_0x85f2('0x48')]=_0x42c263[_0x85f2('0x48')][_0x85f2('0x49')]?_0x42c263['attributes']:_0x46309b[_0x85f2('0x44')];if(_0x49f350[_0x85f2('0x40')]['includeAll']){_0x42c263['include']=[{'all':!![]}];}_0x42c263=_[_0x85f2('0x32')]({},_0x42c263,_0x49f350['options']);return db['ChatInteraction'][_0x85f2('0x4a')](_0x42c263)[_0x85f2('0x41')](handleEntityNotFound(_0x27a38a,null))[_0x85f2('0x41')](respondWithResult(_0x27a38a,null))[_0x85f2('0x23')](handleError(_0x27a38a,null));};exports[_0x85f2('0x4b')]=function(_0x2555ca,_0x2d1f74){return db['ChatInteraction'][_0x85f2('0x4b')](_0x2555ca['body'],{})[_0x85f2('0x41')](respondWithResult(_0x2d1f74,0xc9))[_0x85f2('0x23')](handleError(_0x2d1f74,null));};exports[_0x85f2('0x2d')]=function(_0x3827fa,_0x4d8d4b){if(_0x3827fa[_0x85f2('0x33')]['id']){delete _0x3827fa[_0x85f2('0x33')]['id'];}return db[_0x85f2('0x3a')][_0x85f2('0x4a')]({'where':{'id':_0x3827fa['params']['id']}})[_0x85f2('0x41')](handleEntityNotFound(_0x4d8d4b,null))[_0x85f2('0x41')](saveUpdates(_0x3827fa['body'],null))[_0x85f2('0x41')](respondWithResult(_0x4d8d4b,null))[_0x85f2('0x23')](handleError(_0x4d8d4b,null));};exports[_0x85f2('0x2e')]=function(_0x192b6e,_0x2979aa){return db[_0x85f2('0x3a')][_0x85f2('0x4a')]({'where':{'id':_0x192b6e['params']['id']}})[_0x85f2('0x41')](handleEntityNotFound(_0x2979aa,null))[_0x85f2('0x41')](removeEntity(_0x2979aa,null))[_0x85f2('0x23')](handleError(_0x2979aa,null));};exports['describe']=function(_0x1fb234,_0xf5e44){return db[_0x85f2('0x3a')]['describe']()[_0x85f2('0x41')](respondWithResult(_0xf5e44,null))[_0x85f2('0x23')](handleError(_0xf5e44,null));};exports[_0x85f2('0x4c')]=function(_0x5c852c,_0xe421cd){var _0x1eb743=_0x5c852c['params']['id'];var _0x131b74;var _0x229d0e;var _0x577feb;return db[_0x85f2('0x3a')][_0x85f2('0x4d')]({'where':{'id':_0x1eb743}})['then'](function(_0x547a6a){_0x131b74=_0x547a6a;return db[_0x85f2('0x4e')][_0x85f2('0x4d')]({'where':{'id':_0x547a6a['ChatWebsiteId']},'attributes':['id','vidaooApiKey','vidaooEscalation',_0x85f2('0x4f'),_0x85f2('0x50'),_0x85f2('0x51')],'raw':!![]});})[_0x85f2('0x41')](function(_0x133fc6){if(_0x133fc6&&_0x133fc6[_0x85f2('0x52')]&&_0x133fc6[_0x85f2('0x53')]){_0x229d0e=_0x133fc6;var _0x163c06={'interaction':{'id':_0x1eb743},'agent':{'id':_0x5c852c['user']['id'],'name':_0x5c852c[_0x85f2('0x54')]['name'],'fullname':_0x5c852c[_0x85f2('0x54')]['fullname'],'email':_0x5c852c[_0x85f2('0x54')][_0x85f2('0x55')]},'contact':_0x5c852c[_0x85f2('0x33')][_0x85f2('0x34')],'account':_0x5c852c[_0x85f2('0x33')]['account']};var _0x21be76={'rejectUnauthorized':![],'method':_0x85f2('0x56'),'url':'https://api-vidaoo.xcally.com/api/v1/meetings','headers':{'X-APIKEY':_0x133fc6[_0x85f2('0x52')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x5c852c[_0x85f2('0x54')][_0x85f2('0x55')]],'buttons':null,'topic':_0x229d0e['vidaooTopic'],'note':_[_0x85f2('0x57')](_0x229d0e[_0x85f2('0x50')])?null:getMustacheRender(_0x229d0e[_0x85f2('0x50')],_0x163c06),'metadata':null},'redirect':'follow','json':!![]};try{if(!_[_0x85f2('0x57')](_0x229d0e[_0x85f2('0x51')])){var _0x4bd56b=getMustacheRender(_0x229d0e['vidaooMetadata'],_0x163c06);var _0x461d8a=JSON[_0x85f2('0x58')](_0x4bd56b);_0x21be76[_0x85f2('0x33')][_0x85f2('0x59')]=_0x461d8a;}}catch(_0x5257a9){throw new db[(_0x85f2('0x5a'))][(_0x85f2('0x5b'))](_0x85f2('0x5c'));}return rp(_0x21be76);}else{throw new db[(_0x85f2('0x5a'))][(_0x85f2('0x5b'))](_0x85f2('0x5d'));}})[_0x85f2('0x41')](function(_0x480ce6){_0x577feb=_0x480ce6;if(_0x577feb['id']){var _0x30569f={'body':_0x577feb[_0x85f2('0x5e')],'ChatWebsiteId':_0x229d0e['id'],'ChatInteractionId':_0x131b74['id'],'direction':'out','UserId':_0x5c852c[_0x85f2('0x54')]['id']};return db[_0x85f2('0x5f')][_0x85f2('0x4b')](_0x30569f,{});}else{throw new db[(_0x85f2('0x5a'))][(_0x85f2('0x5b'))](_0x85f2('0x60'));}})[_0x85f2('0x41')](function(){return _0x131b74[_0x85f2('0x61')]({'vidaooSessionId':_0x577feb['id']});})[_0x85f2('0x41')](respondWithResult(_0xe421cd,null))[_0x85f2('0x23')](handleError(_0xe421cd,null));};exports[_0x85f2('0x62')]=function(_0x1fa742,_0x491337){if(_0x1fa742[_0x85f2('0x33')]['id']){delete _0x1fa742[_0x85f2('0x33')]['id'];}return db[_0x85f2('0x3a')]['find']({'where':{'id':_0x1fa742['params']['id']},'include':[{'model':db[_0x85f2('0x63')],'as':'Contact'}]})[_0x85f2('0x41')](handleEntityNotFound(_0x491337,null))[_0x85f2('0x41')](saveUpdates(_0x1fa742[_0x85f2('0x33')],null))[_0x85f2('0x41')](respondWithResult(_0x491337,null))[_0x85f2('0x23')](handleError(_0x491337,null));};exports[_0x85f2('0x64')]=function(_0x4cb869,_0x9c8245){if(_0x4cb869[_0x85f2('0x33')]['id']){delete _0x4cb869[_0x85f2('0x33')]['id'];}return db['ChatInteraction']['find']({'where':{'id':_0x4cb869['params']['id']}})[_0x85f2('0x41')](function(_0x562820){if(!_0x562820){logger['error'](_0x85f2('0x65'),_0x85f2('0x64'),0x194,_0x85f2('0x66'));_0x9c8245['sendStatus'](0x194);}else{if(_0x562820[_0x85f2('0x67')]){throw new db[(_0x85f2('0x5a'))]['ValidationError'](_0x85f2('0x68'));}}return _0x562820;})[_0x85f2('0x41')](function(_0x1bcfb7){if(_0x1bcfb7){return _0x1bcfb7['update']({'closed':_0x4cb869['body'][_0x85f2('0x69')],'disposition':_0x4cb869[_0x85f2('0x33')]['disposition']})[_0x85f2('0x41')](function(_0xb77739){return _0xb77739;});}})[_0x85f2('0x41')](function(){return respondWithRpcPromise(_0x85f2('0x6a'),_0x85f2('0x64'),_0x4cb869[_0x85f2('0x33')],client9004);})[_0x85f2('0x41')](respondWithResult(_0x9c8245,null))[_0x85f2('0x23')](handleError(_0x9c8245,null));};exports['attachmentUpload']=function(_0xb98f07,_0x155791){_0xb98f07[_0x85f2('0x33')]['name']=_0xb98f07[_0x85f2('0x6b')][_0x85f2('0x6c')];_0xb98f07['body'][_0x85f2('0x6d')]=_0xb98f07[_0x85f2('0x6b')]['filename'];_0xb98f07[_0x85f2('0x33')][_0x85f2('0x3c')]=_0xb98f07[_0x85f2('0x6b')][_0x85f2('0x6e')];return db[_0x85f2('0x6f')][_0x85f2('0x4b')](_0xb98f07[_0x85f2('0x33')])[_0x85f2('0x41')](respondWithResult(_0x155791,0xc9))[_0x85f2('0x23')](handleError(_0x155791,null));};exports[_0x85f2('0x70')]=function(_0x199f58,_0x2e3fb4){return db[_0x85f2('0x3a')][_0x85f2('0x4d')]({'where':{'id':_0x199f58[_0x85f2('0x43')]['id']},'raw':!![]})[_0x85f2('0x41')](handleEntityNotFound(_0x2e3fb4,null))[_0x85f2('0x41')](function(_0x1a61dd){if(_0x1a61dd){if(_0x1a61dd[_0x85f2('0x69')]){return _0x2e3fb4[_0x85f2('0x25')](0x193)[_0x85f2('0x27')]({'status':0x193,'message':_0x85f2('0x71')});}return db[_0x85f2('0x6f')]['findOne']({'where':{'id':_0x199f58[_0x85f2('0x40')][_0x85f2('0x72')]},'raw':!![]})[_0x85f2('0x41')](handleEntityNotFound(_0x2e3fb4,null));}})[_0x85f2('0x41')](function(_0x57c417){if(_0x57c417){var _0x5031eb=_0x57c417['ChatOfflineMessageId']!==null;var _0x2724dd=path['join'](config[_0x85f2('0x73')],_0x85f2('0x74'));if(_0x5031eb){_0x2724dd=path[_0x85f2('0x75')](_0x2724dd,_0x85f2('0x76'));}var _0x142b6c=path[_0x85f2('0x75')](_0x2724dd,_0x57c417['basename']);return _0x2e3fb4[_0x85f2('0x77')](_0x142b6c);}})[_0x85f2('0x23')](handleError(_0x2e3fb4,null));};exports[_0x85f2('0x78')]=function(_0x3933e2,_0x4d39c5){var _0xb50cd4=null;var _0x35a242=null;var _0xf0496c=null;if(_0x3933e2[_0x85f2('0x33')]['id']){delete _0x3933e2[_0x85f2('0x33')]['id'];}if(_0x3933e2[_0x85f2('0x33')][_0x85f2('0x79')]){_0xf0496c=path[_0x85f2('0x75')](config[_0x85f2('0x73')],_0x85f2('0x7a'),util['format'](_0x85f2('0x7b'),Date['now']()));_0x3933e2[_0x85f2('0x33')][_0x85f2('0x7c')]=_0xf0496c;}return db[_0x85f2('0x3a')][_0x85f2('0x4a')]({'where':{'id':_0x3933e2['params']['id']},'include':[{'model':db[_0x85f2('0x5f')],'as':_0x85f2('0x7d'),'include':[{'model':db[_0x85f2('0x7e')],'as':_0x85f2('0x7e')}]}]})[_0x85f2('0x41')](handleEntityNotFound(_0x4d39c5,null))[_0x85f2('0x41')](saveUpdates(_0x3933e2['body'],null))[_0x85f2('0x41')](function(_0x172f6c){if(_0x172f6c){_0xb50cd4=_0x172f6c;return db[_0x85f2('0x4e')][_0x85f2('0x4a')]({'where':{'id':_0xb50cd4['ChatWebsiteId']}});}})[_0x85f2('0x41')](function(_0x4c17b7){if(_0x4c17b7){_0x35a242=_0x4c17b7;return db[_0x85f2('0x63')]['find']({'where':{'id':_0xb50cd4[_0x85f2('0x7f')]}});}})[_0x85f2('0x41')](function(_0x3e57b8){if(_0x3e57b8){if(_0xf0496c){var _0x5c5140=null;for(var _0xd753f2=0x1;_0xd753f2<_0xb50cd4['Messages']['length'];++_0xd753f2){_0x5c5140=_0xb50cd4[_0x85f2('0x7d')][_0xd753f2];var _0x2550c2=_0x5c5140[_0x85f2('0x67')]?util[_0x85f2('0x80')](_0x85f2('0x81'),_0x35a242['agentAlias'],_0x5c5140['UserId']):_0x85f2('0x82');var _0x2afeb5=_0x3933e2['body'][_0x85f2('0x83')]||util[_0x85f2('0x80')]('%s%d',_0x85f2('0x84'),_0x5c5140[_0x85f2('0x7f')]);switch(_0x35a242[_0x85f2('0x85')]){case _0x85f2('0x86'):_0x2550c2=_0x5c5140[_0x85f2('0x67')]?util['format']('%s%d',_0x35a242[_0x85f2('0x87')],_0x5c5140[_0x85f2('0x67')]):'System';break;case _0x85f2('0x88'):_0x2550c2=_0x5c5140[_0x85f2('0x67')]?_0x5c5140[_0x85f2('0x7e')]['alias']||_0x5c5140[_0x85f2('0x7e')][_0x85f2('0x89')]:_0x85f2('0x82');break;case'agent_fullname':_0x2550c2=_0x5c5140[_0x85f2('0x67')]?_0x5c5140[_0x85f2('0x7e')][_0x85f2('0x89')]:'System';break;default:_0x2550c2=_0x5c5140['UserId']?util[_0x85f2('0x80')](_0x85f2('0x81'),_0x35a242[_0x85f2('0x87')],_0x5c5140['UserId']):_0x85f2('0x82');}var _0x2b3cdc=util[_0x85f2('0x80')](_0x85f2('0x8a'),moment(_0x5c5140[_0x85f2('0x8b')])[_0x85f2('0x80')](_0x85f2('0x8c')),_0x5c5140[_0x85f2('0x8d')]==='in'?_0x2afeb5:_0x2550c2,_0x5c5140[_0x85f2('0x33')]);if(!_0x5c5140[_0x85f2('0x8e')]){fs['appendFileSync'](_0xf0496c,_0x2b3cdc);}}return db[_0x85f2('0x8f')][_0x85f2('0x4d')]({'where':{'service':!![]},'include':[{'model':db[_0x85f2('0x90')],'as':_0x85f2('0x91'),'raw':!![],'include':[{'model':db[_0x85f2('0x92')],'as':_0x85f2('0x92'),'raw':!![]}]}]});}}})[_0x85f2('0x41')](function(_0x252a5c){if(!_0x252a5c||!_0x252a5c[_0x85f2('0x91')]||!_0x3933e2[_0x85f2('0x33')])return _0xb50cd4;var _0x71ae21=_0x252a5c[_0x85f2('0x93')]();return respondWithRpcPromise(_0x85f2('0x94'),_0x85f2('0x95'),{'account':_0x71ae21,'message':{'from':util[_0x85f2('0x80')](_0x85f2('0x96'),_0x252a5c[_0x85f2('0x30')],_0x252a5c['email']||_0x252a5c[_0x85f2('0x91')]['user']),'to':_0x3933e2[_0x85f2('0x33')][_0x85f2('0x79')],'subject':_0x85f2('0x97'),'text':util['format'](_0x85f2('0x98'),_0x3933e2['body'][_0x85f2('0x79')]),'attachments':[{'path':_0xf0496c}]}})[_0x85f2('0x41')](function(){return _0xb50cd4;})[_0x85f2('0x23')](function(_0x5a4bcc){logger[_0x85f2('0x1f')](_0x5a4bcc);});})[_0x85f2('0x41')](respondWithStatusCode(_0x4d39c5,0xc8))[_0x85f2('0x23')](handleError(_0x4d39c5,null));};exports[_0x85f2('0x99')]=function(_0x4faf63,_0xb1b859){return db['ChatMessage'][_0x85f2('0x4a')]({'where':{'id':_0x4faf63[_0x85f2('0x43')]['id']}})[_0x85f2('0x41')](handleEntityNotFound(_0xb1b859,null))['then'](function(_0x3ede47){if(_0x3ede47){return _0x3ede47[_0x85f2('0x99')](_0x4faf63['body']['ids'],_[_0x85f2('0x9a')](_0x4faf63[_0x85f2('0x33')],[_0x85f2('0x9b'),'id'])||{});}})[_0x85f2('0x41')](respondWithResult(_0xb1b859,null))['catch'](handleError(_0xb1b859,null));};exports[_0x85f2('0x9c')]=function(_0x1823c2,_0x2f8bb0){var _0x28e4ad={'raw':![],'where':{}};var _0x1f755d={};var _0x253c6e={'count':0x0,'rows':[]};return db[_0x85f2('0x3a')][_0x85f2('0x4d')]({'where':{'id':_0x1823c2[_0x85f2('0x43')]['id']}})['then'](handleEntityNotFound(_0x2f8bb0,null))[_0x85f2('0x41')](function(_0x2c7a00){if(_0x2c7a00){_0x1f755d[_0x85f2('0x44')]=_[_0x85f2('0x45')](db[_0x85f2('0x5f')][_0x85f2('0x3b')]);_0x1f755d[_0x85f2('0x40')]=_[_0x85f2('0x45')](_0x1823c2[_0x85f2('0x40')]);_0x1f755d['filters']=_[_0x85f2('0x47')](_0x1f755d['model'],_0x1f755d[_0x85f2('0x40')]);_0x28e4ad['attributes']=_[_0x85f2('0x47')](_0x1f755d['model'],qs['fields'](_0x1823c2[_0x85f2('0x40')][_0x85f2('0x9d')]));_0x28e4ad[_0x85f2('0x48')]=_0x28e4ad[_0x85f2('0x48')][_0x85f2('0x49')]?_0x28e4ad[_0x85f2('0x48')]:_0x1f755d[_0x85f2('0x44')];if(!_0x1823c2[_0x85f2('0x40')][_0x85f2('0x9e')](_0x85f2('0x9f'))){_0x28e4ad[_0x85f2('0x29')]=qs[_0x85f2('0x29')](_0x1823c2[_0x85f2('0x40')][_0x85f2('0x29')]);_0x28e4ad[_0x85f2('0x2a')]=qs[_0x85f2('0x2a')](_0x1823c2[_0x85f2('0x40')][_0x85f2('0x2a')]);}_0x28e4ad[_0x85f2('0xa0')]=qs[_0x85f2('0xa1')](_0x1823c2[_0x85f2('0x40')][_0x85f2('0xa1')]);_0x28e4ad[_0x85f2('0xa2')]=qs[_0x85f2('0x46')](_[_0x85f2('0xa3')](_0x1823c2[_0x85f2('0x40')],_0x1f755d[_0x85f2('0x46')]));_0x28e4ad[_0x85f2('0xa2')]['ChatInteractionId']=_0x2c7a00['id'];if(_0x1823c2[_0x85f2('0x40')][_0x85f2('0xa4')]){_0x28e4ad[_0x85f2('0xa2')]=_[_0x85f2('0x32')](_0x28e4ad[_0x85f2('0xa2')],{'$or':_[_0x85f2('0x39')](_0x28e4ad[_0x85f2('0x48')],function(_0x509954){var _0x26453d={};_0x26453d[_0x509954]={'$like':'%'+_0x1823c2[_0x85f2('0x40')][_0x85f2('0xa4')]+'%'};return _0x26453d;})});}if(_0x1823c2[_0x85f2('0x40')]['$gte']){var _0x1a5553=_0x1823c2[_0x85f2('0x40')]['$gte'][_0x85f2('0xa5')](',');var _0x162f68={};_0x162f68[_0x1a5553[0x0]]={'$gte':moment(_0x1a5553[0x1])[_0x85f2('0x80')](_0x85f2('0xa6'))};_0x28e4ad[_0x85f2('0xa2')]=_['merge'](_0x28e4ad['where'],_0x162f68);}_0x28e4ad=_[_0x85f2('0x32')]({},_0x28e4ad,_0x1823c2[_0x85f2('0xa7')]);return db[_0x85f2('0x5f')]['count']({'where':_0x28e4ad[_0x85f2('0xa2')]})['then'](function(_0x4dd3be){_0x253c6e[_0x85f2('0xa8')]=_0x4dd3be;if(_0x1823c2[_0x85f2('0x40')][_0x85f2('0xa9')]){_0x28e4ad[_0x85f2('0xaa')]=[{'all':!![]}];}return db[_0x85f2('0x5f')][_0x85f2('0x3e')](_0x28e4ad);})['then'](function(_0x5c40ea){_0x253c6e[_0x85f2('0xab')]=_0x5c40ea;return _0x253c6e;});}})[_0x85f2('0x41')](respondWithFilteredResult(_0x2f8bb0,_0x28e4ad))[_0x85f2('0x23')](handleError(_0x2f8bb0,null));};exports['getMyMessages']=function(_0x5924cc,_0x3c7980){var _0x195386={'where':{}},_0x237a21={},_0x40ce4c={'count':0x0,'rows':[]};return db[_0x85f2('0x3a')]['findOne']({'where':{'id':_0x5924cc['params']['id']}})[_0x85f2('0x41')](handleEntityNotFound(_0x3c7980,null))[_0x85f2('0x41')](function(_0x3ea6eb){if(_0x3ea6eb){_0x237a21[_0x85f2('0x44')]=_[_0x85f2('0x45')](db[_0x85f2('0x5f')][_0x85f2('0x3b')]);_0x237a21[_0x85f2('0x40')]=_[_0x85f2('0x45')](_0x5924cc[_0x85f2('0x40')]);_0x237a21[_0x85f2('0x46')]=_[_0x85f2('0x47')](_0x237a21[_0x85f2('0x44')],_0x237a21['query']);_0x195386[_0x85f2('0x48')]=_[_0x85f2('0x47')](_0x237a21[_0x85f2('0x44')],qs[_0x85f2('0x9d')](_0x5924cc[_0x85f2('0x40')]['fields']));_0x195386[_0x85f2('0x48')]=_0x195386[_0x85f2('0x48')][_0x85f2('0x49')]?_0x195386[_0x85f2('0x48')]:_0x237a21['model'];if(!_0x5924cc[_0x85f2('0x40')]['hasOwnProperty'](_0x85f2('0x9f'))){_0x195386[_0x85f2('0x29')]=qs[_0x85f2('0x29')](_0x5924cc['query'][_0x85f2('0x29')]);_0x195386['offset']=qs['offset'](_0x5924cc['query'][_0x85f2('0x2a')]);}_0x195386[_0x85f2('0xa0')]=qs[_0x85f2('0xa1')](_0x5924cc['query'][_0x85f2('0xa1')]);_0x195386[_0x85f2('0xa2')]=qs[_0x85f2('0x46')](_[_0x85f2('0xa3')](_0x5924cc[_0x85f2('0x40')],_0x237a21[_0x85f2('0x46')]));_0x195386['where']['ChatInteractionId']=_0x3ea6eb['id'];if(_0x5924cc['query'][_0x85f2('0xa4')]){_0x195386[_0x85f2('0xa2')]=_[_0x85f2('0x32')](_0x195386[_0x85f2('0xa2')],{'$or':_['map'](_0x195386[_0x85f2('0x48')],function(_0x2946b1){var _0x566b76={};_0x566b76[_0x2946b1]={'$like':'%'+_0x5924cc[_0x85f2('0x40')]['filter']+'%'};return _0x566b76;})});}_0x195386[_0x85f2('0xa2')][_0x85f2('0x8e')]=![];if(_0x5924cc[_0x85f2('0x40')]['id']){_0x195386[_0x85f2('0xa2')]['id']={'$gt':_0x5924cc[_0x85f2('0x40')]['id']};}_0x195386=_['merge']({},_0x195386,_0x5924cc[_0x85f2('0xa7')]);return db[_0x85f2('0x5f')][_0x85f2('0xa8')]({'where':_0x195386['where']})[_0x85f2('0x41')](function(_0x2e90ff){_0x40ce4c['count']=_0x2e90ff;_0x195386[_0x85f2('0xaa')]=[];if(_0x5924cc['query'][_0x85f2('0xac')]){_0x195386[_0x85f2('0xaa')][_0x85f2('0xad')]({'model':db['User'],'as':_0x85f2('0x7e'),'attributes':['id',_0x85f2('0x89'),_0x85f2('0xae')]});}if(_0x5924cc[_0x85f2('0x40')][_0x85f2('0xa9')]){_0x195386[_0x85f2('0xaa')]=[{'all':!![]}];}return db[_0x85f2('0x5f')][_0x85f2('0x3e')](_0x195386);})[_0x85f2('0x41')](function(_0x5159e1){_0x40ce4c['rows']=_0x5159e1;return _0x40ce4c;});}})['then'](respondWithFilteredResult(_0x3c7980,_0x195386))[_0x85f2('0x23')](handleError(_0x3c7980,null));};exports[_0x85f2('0xaf')]=function(_0x49266a,_0x59c5f8){return db[_0x85f2('0x3a')][_0x85f2('0x4a')]({'where':{'id':_0x49266a['params']['id']}})['then'](handleEntityNotFound(_0x59c5f8,null))[_0x85f2('0x41')](function(_0x382201){if(_0x382201){return _0x382201[_0x85f2('0xb0')](_0x49266a[_0x85f2('0x33')]['ids'],_['omit'](_0x49266a[_0x85f2('0x33')],[_0x85f2('0x9b'),'id'])||{})[_0x85f2('0xb1')](function(){return db[_0x85f2('0xb2')][_0x85f2('0x3e')]({'attributes':['id',_0x85f2('0x30'),_0x85f2('0xb3')],'where':{'id':_0x49266a['body'][_0x85f2('0x9b')]}});})[_0x85f2('0x41')](function(_0x335def){socket['emit']('chatInteractionTags:save',{'id':Number(_0x49266a[_0x85f2('0x43')]['id']),'tags':_0x335def||[]});return{'id':Number(_0x49266a[_0x85f2('0x43')]['id']),'tags':_0x335def||[]};});}})['then'](respondWithResult(_0x59c5f8,null))['catch'](handleError(_0x59c5f8,null));};exports[_0x85f2('0xb4')]=function(_0x16b6fc,_0x15b750){return db[_0x85f2('0x3a')][_0x85f2('0x4a')]({'where':{'id':_0x16b6fc[_0x85f2('0x43')]['id']}})[_0x85f2('0x41')](handleEntityNotFound(_0x15b750,null))['then'](function(_0x4f5c2a){if(_0x4f5c2a){return _0x4f5c2a[_0x85f2('0xb4')](_0x16b6fc['query'][_0x85f2('0x9b')]);}})['then'](respondWithStatusCode(_0x15b750,null))[_0x85f2('0x23')](handleError(_0x15b750,null));};exports[_0x85f2('0x77')]=function(_0x43adae,_0x368f6a){var _0x552182=moment()[_0x85f2('0xb5')]()[_0x85f2('0xb6')]();var _0x27b3a4=path[_0x85f2('0x75')](config[_0x85f2('0x73')],_0x85f2('0xb7'),_0x85f2('0xb8'),'tmp');var _0x16a77f=path[_0x85f2('0x75')](config[_0x85f2('0x73')],'server','files','attachments');var _0x55b4ec=path[_0x85f2('0x75')](_0x27b3a4,_0x552182);var _0x5884db=util[_0x85f2('0x80')](_0x85f2('0xb9'),_0x43adae[_0x85f2('0x43')]['id'],_0x552182);var _0x3a9e75=path[_0x85f2('0x75')](_0x27b3a4,_0x5884db);var _0x445010=[];_0x445010[_0x85f2('0xad')]({'model':db[_0x85f2('0x7e')],'as':_0x85f2('0x7e'),'attributes':['id','fullname'],'raw':!![]});_0x445010[_0x85f2('0xad')]({'model':db[_0x85f2('0x63')],'as':_0x85f2('0xba'),'attributes':['id',_0x85f2('0xbb'),_0x85f2('0xbc')],'raw':!![]});if(_0x43adae[_0x85f2('0x40')]['attachments']){_0x445010[_0x85f2('0xad')]({'model':db[_0x85f2('0x6f')],'as':_0x85f2('0x6f'),'raw':!![]});}var _0xc90cd7=[{'model':db[_0x85f2('0x5f')],'as':_0x85f2('0x7d'),'attributes':['id',_0x85f2('0x33'),_0x85f2('0x8b'),_0x85f2('0x8d'),_0x85f2('0x8e'),'read'],'include':_0x445010}];_0xc90cd7['push']({'model':db[_0x85f2('0x4e')],'as':_0x85f2('0xbd'),'attributes':['id',_0x85f2('0x30')]});_0xc90cd7[_0x85f2('0xad')]({'model':db['User'],'as':'Owner','attributes':['id','fullname']});return db['ChatInteraction'][_0x85f2('0x4a')]({'where':{'id':_0x43adae['params']['id']},'include':_0xc90cd7})[_0x85f2('0x41')](handleEntityNotFound(_0x368f6a,null))[_0x85f2('0x41')](function(_0x30f134){if(_0x30f134){var _0x16189b=_0x30f134[_0x85f2('0xbe')]({'plain':!![]});fs[_0x85f2('0xbf')](_0x55b4ec);var _0x162704={'channel':_0x85f2('0xc0'),'account':_0x16189b[_0x85f2('0xbd')][_0x85f2('0x30')],'agent':_0x16189b['Owner']?_0x16189b[_0x85f2('0xc1')][_0x85f2('0x89')]:_0x85f2('0xc2'),'createdAt':moment(_0x16189b[_0x85f2('0x8b')])[_0x85f2('0x80')]('YYYY-MM-DD\x20HH:mm:ss')[_0x85f2('0xb6')](),'closedAt':_0x16189b['closed']?moment(_0x16189b[_0x85f2('0xc3')])['format'](_0x85f2('0xa6'))[_0x85f2('0xb6')]():'','disposition':_0x16189b['disposition'],'chatInfo':{'browser':_0x16189b[_0x85f2('0xc4')],'os':_0x16189b[_0x85f2('0xc5')],'referer':_0x16189b[_0x85f2('0xc6')],'customerIp':_0x16189b[_0x85f2('0xc7')],'customerPort':_0x16189b[_0x85f2('0xc8')]?_0x16189b[_0x85f2('0xc8')]:_0x85f2('0xc2')},'messages':_(_0x16189b[_0x85f2('0x7d')])[_0x85f2('0xc9')]()['filter']({'secret':![]})[_0x85f2('0x39')](function(_0x55d1fb){if(_0x55d1fb[_0x85f2('0x6f')]){var _0x5926a9=path[_0x85f2('0x75')](_0x16a77f,_0x55d1fb[_0x85f2('0x6f')][_0x85f2('0x6d')]);if(fs[_0x85f2('0xca')](_0x5926a9)){fs[_0x85f2('0xcb')](_0x5926a9)[_0x85f2('0xcc')](fs[_0x85f2('0xcd')](path[_0x85f2('0x75')](_0x55b4ec,_0x55d1fb[_0x85f2('0x6f')][_0x85f2('0x6d')])));}}return{'date':moment(_0x55d1fb['createdAt'])['format']('YYYY-MM-DD\x20HH:mm:ss')[_0x85f2('0xb6')](),'sender':_0x55d1fb[_0x85f2('0x8d')]==='out'?_0x55d1fb[_0x85f2('0x7e')]?_0x55d1fb[_0x85f2('0x7e')]['fullname']:_0x85f2('0x82'):_0x55d1fb['Contact'][_0x85f2('0xbb')]+(_0x55d1fb['Contact']['lastName']?'\x20'+_0x55d1fb[_0x85f2('0xba')][_0x85f2('0xbc')]:''),'body':_0x55d1fb[_0x85f2('0x6f')]?_0x55d1fb['Attachment']['basename']:_0x55d1fb[_0x85f2('0x33')],'direction':_0x55d1fb['direction']==='out'?'A':'C','secret':_0x55d1fb['secret'],'read':_0x55d1fb[_0x85f2('0xce')],'attachment':_0x55d1fb[_0x85f2('0x6f')]};})[_0x85f2('0xcf')]()};return ejs['renderFile'](path[_0x85f2('0x75')](config[_0x85f2('0x73')],_0x85f2('0xb7'),_0x85f2('0xd0'),_0x85f2('0xd1')),{'interaction':_0x162704})[_0x85f2('0x41')](function(_0x31d7ec){var _0x3066f5=path[_0x85f2('0x75')](_0x55b4ec,'transcript-'+_0x16189b['id']+'-'+_0x552182+_0x85f2('0xd2'));var _0x47a5ef={'path':_0x3066f5,'channel':'Chat','interactionId':_0x16189b['id']};return pdf[_0x85f2('0xd3')](_0x31d7ec,_0x47a5ef);})['then'](function(){return new Promise(function(_0x3dddfa,_0x3d2882){zipdir(_0x55b4ec,{'saveTo':_0x3a9e75},function(_0x598875,_0x4eccae){if(_0x598875)return _0x3d2882(_0x598875);return _0x3dddfa(_0x4eccae);});})[_0x85f2('0x41')](function(){return new BPromise(function(_0x2e891b,_0x2f8185){rimraf(_0x55b4ec,function(_0x5873ca){if(_0x5873ca)_0x2f8185(_0x5873ca);return _0x2e891b();});});})[_0x85f2('0x41')](function(){return _0x368f6a[_0x85f2('0x77')](_0x3a9e75,_0x5884db,function(_0x15467e){if(_0x15467e){logger[_0x85f2('0x1f')](_0x85f2('0xd4'),_0x15467e);}else{fs['unlinkSync'](_0x3a9e75);}});});});}else{return _0x368f6a['sendStatus'](0xc8);}})[_0x85f2('0x23')](handleError(_0x368f6a,null));};