Built motion from commit da617fac.|2.6.6
[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 _0xf2bb=['direction','read','get','mkdirSync','Account','Owner','N.A.','closed','toString','browserName','osName','referer','customerIp','customerPort','tail','existsSync','createReadStream','pipe','createWriteStream','value','renderFile','views','downloadInteraction.ejs','Chat','err','unlinkSync','rimraf','zip-dir','request-promise','moment','bluebird','util','path','ejs','lodash','ioredis','../../components/interaction/service','../../components/export/pdf','../../config/logger','api','../../config/environment','redis','defaults','socket.io-emitter','./chatInteraction.socket','register','client','http','request','then','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','offset','undefined','limit','count','set','Content-Range','update','stack','send','merge','contact','agent','account','index','ChatInteraction','type','key','query','user','show','params','model','keys','intersection','attributes','fields','length','includeAll','include','options','find','create','body','describe','findOne','ChatWebsiteId','vidaooApiKey','vidaooEscalation','vidaooTopic','vidaooNote','name','fullname','POST','https://api-vidaoo.xcally.com/api/v1/meetings','email','isNull','follow','vidaooMetadata','parse','metadata','Sequelize','Error\x20in\x20Vidaoo\x20configuration','join_url','out','ChatMessage','ValidationError','updateAttributes','customUpdate','CmContact','Contact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','Interaction\x20already\x20assigned','disposition','AbandonInteraction','file','originalname','filename','mimetype','attachmentDownload','Unauthorized','attachId','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','basename','download','close','server/files/chat/upload/','format','transcript-%s.txt','now','pathTranscript','User','ChatWebsite','Messages','%s%d','UserId','customer','Visitor','ContactId','website_alias','agentAlias','alias','System','agent_fullname','[%s]\x20%s:\x20%s\x0a','createdAt','MM/DD/YYYY\x20HH:mm:ss','appendFileSync','MailAccount','MailServerOut','Smtp','CloudProvider','getSmtpOptions','SendMail','sendMail','addMessage','ids','getMessages','rawAttributes','filters','hasOwnProperty','nolimit','sort','where','pick','ChatInteractionId','filter','$gte','split','YYYY-MM-DD\x20HH:mm:ss','getMyMessages','secret','includeAgent','findAll','rows','addTags','setTags','omit','Tag','color','emit','removeTags','server','files','tmp','transcript-%d-%s.zip','push','firstName','lastName','attachments','Attachment'];(function(_0x4cdd4d,_0x3cce1e){var _0x1bbd06=function(_0x4578cf){while(--_0x4578cf){_0x4cdd4d['push'](_0x4cdd4d['shift']());}};_0x1bbd06(++_0x3cce1e);}(_0xf2bb,0xed));var _0xbf2b=function(_0xd0b415,_0x149675){_0xd0b415=_0xd0b415-0x0;var _0x2bdf2c=_0xf2bb[_0xd0b415];return _0x2bdf2c;};'use strict';var rimraf=require(_0xbf2b('0x0'));var zipdir=require(_0xbf2b('0x1'));var rp=require(_0xbf2b('0x2'));var moment=require(_0xbf2b('0x3'));var BPromise=require(_0xbf2b('0x4'));var Mustache=require('mustache');var util=require(_0xbf2b('0x5'));var path=require(_0xbf2b('0x6'));var ejs=require(_0xbf2b('0x7'));var fs=require('fs');var _=require(_0xbf2b('0x8'));var Redis=require(_0xbf2b('0x9'));var interaction=require(_0xbf2b('0xa'));var qs=require('../../components/parsers/qs');var pdf=require(_0xbf2b('0xb'));var logger=require(_0xbf2b('0xc'))(_0xbf2b('0xd'));var config=require(_0xbf2b('0xe'));var db=require('../../mysqldb')['db'];config[_0xbf2b('0xf')]=_[_0xbf2b('0x10')](config[_0xbf2b('0xf')],{'host':'localhost','port':0x18eb});var socket=require(_0xbf2b('0x11'))(new Redis(config[_0xbf2b('0xf')]));require(_0xbf2b('0x12'))[_0xbf2b('0x13')](socket);var jayson=require('jayson/promise');var client=jayson[_0xbf2b('0x14')][_0xbf2b('0x15')]({'port':0x232b});var client9004=jayson[_0xbf2b('0x14')][_0xbf2b('0x15')]({'port':0x232c});function respondWithRpcPromise(_0x3db67b,_0x4627c7,_0x27fa8c,_0x12f222){return new BPromise(function(_0x507266,_0x15706f){var _0x4c07ec=_0x12f222||client;return _0x4c07ec[_0xbf2b('0x16')](_0x3db67b,_0x27fa8c)[_0xbf2b('0x17')](function(_0x3d5795){logger[_0xbf2b('0x18')](_0xbf2b('0x19'),_0x4627c7,_0xbf2b('0x1a'));logger[_0xbf2b('0x1b')](_0xbf2b('0x1c'),_0x4627c7,'request\x20sent',JSON[_0xbf2b('0x1d')](_0x3d5795));if(_0x3d5795[_0xbf2b('0x1e')]){if(_0x3d5795[_0xbf2b('0x1e')][_0xbf2b('0x1f')]===0x1f4){logger[_0xbf2b('0x1e')](_0xbf2b('0x19'),_0x4627c7,_0x3d5795['error'][_0xbf2b('0x20')]);return _0x15706f(_0x3d5795['error'][_0xbf2b('0x20')]);}logger[_0xbf2b('0x1e')](_0xbf2b('0x19'),_0x4627c7,_0x3d5795[_0xbf2b('0x1e')][_0xbf2b('0x20')]);return _0x507266(_0x3d5795[_0xbf2b('0x1e')]['message']);}else{logger[_0xbf2b('0x18')]('ChatInteraction,\x20%s,\x20%s',_0x4627c7,_0xbf2b('0x1a'));_0x507266(_0x3d5795[_0xbf2b('0x21')][_0xbf2b('0x20')]);}})[_0xbf2b('0x22')](function(_0x2eba96){logger['error']('ChatInteraction,\x20%s,\x20%s',_0x4627c7,_0x2eba96);_0x15706f(_0x2eba96);});});}function respondWithStatusCode(_0x2026cb,_0x1ea33a){_0x1ea33a=_0x1ea33a||0xcc;return function(_0x46dafa){if(_0x46dafa){return _0x2026cb[_0xbf2b('0x23')](_0x1ea33a);}return _0x2026cb[_0xbf2b('0x24')](_0x1ea33a)[_0xbf2b('0x25')]();};}function respondWithResult(_0x3bfa21,_0x4a48c0){_0x4a48c0=_0x4a48c0||0xc8;return function(_0x53d797){if(_0x53d797){return _0x3bfa21['status'](_0x4a48c0)[_0xbf2b('0x26')](_0x53d797);}};}function respondWithFilteredResult(_0x4639bc,_0x5d3130){return function(_0x5ab4d0){if(_0x5ab4d0){var _0x1b531e=typeof _0x5d3130[_0xbf2b('0x27')]===_0xbf2b('0x28')&&typeof _0x5d3130[_0xbf2b('0x29')]===_0xbf2b('0x28');var _0x1d9011=_0x5ab4d0[_0xbf2b('0x2a')];var _0x520adc=_0x1b531e?0x0:_0x5d3130['offset'];var _0x585a4b=_0x1b531e?_0x5ab4d0[_0xbf2b('0x2a')]:_0x5d3130[_0xbf2b('0x27')]+_0x5d3130[_0xbf2b('0x29')];var _0x122ecd;if(_0x585a4b>=_0x1d9011){_0x585a4b=_0x1d9011;_0x122ecd=0xc8;}else{_0x122ecd=0xce;}_0x4639bc[_0xbf2b('0x24')](_0x122ecd);return _0x4639bc[_0xbf2b('0x2b')](_0xbf2b('0x2c'),_0x520adc+'-'+_0x585a4b+'/'+_0x1d9011)[_0xbf2b('0x26')](_0x5ab4d0);}return null;};}function saveUpdates(_0x44c42c){return function(_0x2c5946){if(_0x2c5946){return _0x2c5946[_0xbf2b('0x2d')](_0x44c42c)[_0xbf2b('0x17')](function(_0x3bfbf9){return _0x3bfbf9;});}return null;};}function removeEntity(_0x46ee1f){return function(_0x373c85){if(_0x373c85){return _0x373c85['destroy']()[_0xbf2b('0x17')](function(){_0x46ee1f[_0xbf2b('0x24')](0xcc)[_0xbf2b('0x25')]();});}};}function handleEntityNotFound(_0x365f73){return function(_0x231f97){if(!_0x231f97){_0x365f73[_0xbf2b('0x23')](0x194);}return _0x231f97;};}function handleError(_0x69912f,_0x37e5f7){_0x37e5f7=_0x37e5f7||0x1f4;return function(_0xc71953){logger['error'](_0xc71953[_0xbf2b('0x2e')]);if(_0xc71953['name']){delete _0xc71953['name'];}_0x69912f['status'](_0x37e5f7)[_0xbf2b('0x2f')](_0xc71953);};}function getMustacheRender(_0x2f7f0d,_0x418a79){return Mustache['render'](_0x2f7f0d,_[_0xbf2b('0x30')](_0x418a79['body'],{'contact':_0x418a79[_0xbf2b('0x31')],'message':_0x418a79['message'],'agent':_0x418a79[_0xbf2b('0x32')],'interaction':_0x418a79['interaction'],'account':_0x418a79[_0xbf2b('0x33')]}))||'';}exports[_0xbf2b('0x34')]=function(_0x27dc4e,_0x5caa7e){var _0x381b16={};var _0x513a40=_['map'](db[_0xbf2b('0x35')]['rawAttributes'],function(_0x571188){return{'name':_0x571188['fieldName'],'type':_0x571188[_0xbf2b('0x36')][_0xbf2b('0x37')]};});_0x381b16=qs['getOptions'](_0x513a40,_0x27dc4e);return interaction['findAll']('chat',_0x27dc4e[_0xbf2b('0x38')],_0x27dc4e[_0xbf2b('0x39')],_0x381b16,_0x513a40)['then'](respondWithFilteredResult(_0x5caa7e,_0x381b16))['catch'](handleError(_0x5caa7e,null));};exports[_0xbf2b('0x3a')]=function(_0x320ebd,_0x1847ad){var _0xabc739={'raw':![],'where':{'id':_0x320ebd[_0xbf2b('0x3b')]['id']}},_0x298a8f={};_0x298a8f[_0xbf2b('0x3c')]=_[_0xbf2b('0x3d')](db[_0xbf2b('0x35')]['rawAttributes']);_0x298a8f['query']=_[_0xbf2b('0x3d')](_0x320ebd['query']);_0x298a8f['filters']=_[_0xbf2b('0x3e')](_0x298a8f[_0xbf2b('0x3c')],_0x298a8f[_0xbf2b('0x38')]);_0xabc739[_0xbf2b('0x3f')]=_['intersection'](_0x298a8f[_0xbf2b('0x3c')],qs[_0xbf2b('0x40')](_0x320ebd[_0xbf2b('0x38')][_0xbf2b('0x40')]));_0xabc739[_0xbf2b('0x3f')]=_0xabc739['attributes'][_0xbf2b('0x41')]?_0xabc739[_0xbf2b('0x3f')]:_0x298a8f[_0xbf2b('0x3c')];if(_0x320ebd[_0xbf2b('0x38')][_0xbf2b('0x42')]){_0xabc739[_0xbf2b('0x43')]=[{'all':!![]}];}_0xabc739=_['merge']({},_0xabc739,_0x320ebd[_0xbf2b('0x44')]);return db[_0xbf2b('0x35')][_0xbf2b('0x45')](_0xabc739)[_0xbf2b('0x17')](handleEntityNotFound(_0x1847ad,null))[_0xbf2b('0x17')](respondWithResult(_0x1847ad,null))[_0xbf2b('0x22')](handleError(_0x1847ad,null));};exports['create']=function(_0x4f5dc1,_0x3881f3){return db['ChatInteraction'][_0xbf2b('0x46')](_0x4f5dc1[_0xbf2b('0x47')],{})[_0xbf2b('0x17')](respondWithResult(_0x3881f3,0xc9))[_0xbf2b('0x22')](handleError(_0x3881f3,null));};exports['update']=function(_0x44077e,_0x18fbc1){if(_0x44077e[_0xbf2b('0x47')]['id']){delete _0x44077e[_0xbf2b('0x47')]['id'];}return db[_0xbf2b('0x35')][_0xbf2b('0x45')]({'where':{'id':_0x44077e['params']['id']}})['then'](handleEntityNotFound(_0x18fbc1,null))['then'](saveUpdates(_0x44077e[_0xbf2b('0x47')],null))[_0xbf2b('0x17')](respondWithResult(_0x18fbc1,null))['catch'](handleError(_0x18fbc1,null));};exports['destroy']=function(_0x3b8dff,_0x46aa72){return db[_0xbf2b('0x35')]['find']({'where':{'id':_0x3b8dff[_0xbf2b('0x3b')]['id']}})[_0xbf2b('0x17')](handleEntityNotFound(_0x46aa72,null))[_0xbf2b('0x17')](removeEntity(_0x46aa72,null))[_0xbf2b('0x22')](handleError(_0x46aa72,null));};exports[_0xbf2b('0x48')]=function(_0x5cd796,_0x17c5ca){return db[_0xbf2b('0x35')]['describe']()[_0xbf2b('0x17')](respondWithResult(_0x17c5ca,null))[_0xbf2b('0x22')](handleError(_0x17c5ca,null));};exports['createVidaooSession']=function(_0x4ae39b,_0x5e34ec){var _0x2a72f4=_0x4ae39b['params']['id'];var _0x3f9124;var _0x2cbd4d;var _0x139375;return db['ChatInteraction'][_0xbf2b('0x49')]({'where':{'id':_0x2a72f4}})[_0xbf2b('0x17')](function(_0x225444){_0x3f9124=_0x225444;return db['ChatWebsite'][_0xbf2b('0x49')]({'where':{'id':_0x225444[_0xbf2b('0x4a')]},'attributes':['id',_0xbf2b('0x4b'),_0xbf2b('0x4c'),_0xbf2b('0x4d'),_0xbf2b('0x4e'),'vidaooMetadata'],'raw':!![]});})[_0xbf2b('0x17')](function(_0x350154){if(_0x350154&&_0x350154['vidaooApiKey']&&_0x350154[_0xbf2b('0x4c')]){_0x2cbd4d=_0x350154;var _0x477b0f={'interaction':{'id':_0x2a72f4},'agent':{'id':_0x4ae39b[_0xbf2b('0x39')]['id'],'name':_0x4ae39b[_0xbf2b('0x39')][_0xbf2b('0x4f')],'fullname':_0x4ae39b[_0xbf2b('0x39')][_0xbf2b('0x50')],'email':_0x4ae39b['user']['email']},'contact':_0x4ae39b[_0xbf2b('0x47')][_0xbf2b('0x31')],'account':_0x4ae39b[_0xbf2b('0x47')][_0xbf2b('0x33')]};var _0x1636db={'rejectUnauthorized':![],'method':_0xbf2b('0x51'),'url':_0xbf2b('0x52'),'headers':{'X-APIKEY':_0x350154[_0xbf2b('0x4b')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x4ae39b['user'][_0xbf2b('0x53')]],'buttons':null,'topic':_0x2cbd4d['vidaooTopic'],'note':_[_0xbf2b('0x54')](_0x2cbd4d[_0xbf2b('0x4e')])?null:getMustacheRender(_0x2cbd4d['vidaooNote'],_0x477b0f),'metadata':null},'redirect':_0xbf2b('0x55'),'json':!![]};try{if(!_['isNull'](_0x2cbd4d[_0xbf2b('0x56')])){var _0x2dbe47=getMustacheRender(_0x2cbd4d[_0xbf2b('0x56')],_0x477b0f);var _0x2c0529=JSON[_0xbf2b('0x57')](_0x2dbe47);_0x1636db[_0xbf2b('0x47')][_0xbf2b('0x58')]=_0x2c0529;}}catch(_0x5885ca){throw new db[(_0xbf2b('0x59'))]['ValidationError']('Error\x20in\x20conversion\x20vidaooMetadata');}return rp(_0x1636db);}else{throw new db[(_0xbf2b('0x59'))]['ValidationError'](_0xbf2b('0x5a'));}})['then'](function(_0x2d089a){_0x139375=_0x2d089a;if(_0x139375['id']){var _0x427984={'body':_0x139375[_0xbf2b('0x5b')],'ChatWebsiteId':_0x2cbd4d['id'],'ChatInteractionId':_0x3f9124['id'],'direction':_0xbf2b('0x5c'),'UserId':_0x4ae39b[_0xbf2b('0x39')]['id']};return db[_0xbf2b('0x5d')][_0xbf2b('0x46')](_0x427984,{});}else{throw new db[(_0xbf2b('0x59'))][(_0xbf2b('0x5e'))]('Unable\x20to\x20create\x20Vidaoo\x20session');}})[_0xbf2b('0x17')](function(){return _0x3f9124[_0xbf2b('0x5f')]({'vidaooSessionId':_0x139375['id']});})[_0xbf2b('0x17')](respondWithResult(_0x5e34ec,null))[_0xbf2b('0x22')](handleError(_0x5e34ec,null));};exports[_0xbf2b('0x60')]=function(_0x58ada7,_0xa9e7b5){if(_0x58ada7['body']['id']){delete _0x58ada7[_0xbf2b('0x47')]['id'];}return db[_0xbf2b('0x35')][_0xbf2b('0x45')]({'where':{'id':_0x58ada7[_0xbf2b('0x3b')]['id']},'include':[{'model':db[_0xbf2b('0x61')],'as':_0xbf2b('0x62')}]})[_0xbf2b('0x17')](handleEntityNotFound(_0xa9e7b5,null))[_0xbf2b('0x17')](saveUpdates(_0x58ada7[_0xbf2b('0x47')],null))[_0xbf2b('0x17')](respondWithResult(_0xa9e7b5,null))[_0xbf2b('0x22')](handleError(_0xa9e7b5,null));};exports[_0xbf2b('0x63')]=function(_0x3ee321,_0x2c798a){if(_0x3ee321[_0xbf2b('0x47')]['id']){delete _0x3ee321[_0xbf2b('0x47')]['id'];}return db['ChatInteraction'][_0xbf2b('0x45')]({'where':{'id':_0x3ee321[_0xbf2b('0x3b')]['id']}})[_0xbf2b('0x17')](function(_0xd66c32){if(!_0xd66c32){logger[_0xbf2b('0x1e')](_0xbf2b('0x64'),_0xbf2b('0x63'),0x194,_0xbf2b('0x65'));_0x2c798a[_0xbf2b('0x23')](0x194);}else{if(_0xd66c32['UserId']){throw new db[(_0xbf2b('0x59'))][(_0xbf2b('0x5e'))](_0xbf2b('0x66'));}}return _0xd66c32;})[_0xbf2b('0x17')](function(_0x1a85f6){if(_0x1a85f6){return _0x1a85f6[_0xbf2b('0x2d')]({'closed':_0x3ee321[_0xbf2b('0x47')]['closed'],'disposition':_0x3ee321[_0xbf2b('0x47')][_0xbf2b('0x67')]})['then'](function(_0x5241b1){return _0x5241b1;});}})['then'](function(){return respondWithRpcPromise(_0xbf2b('0x68'),_0xbf2b('0x63'),_0x3ee321[_0xbf2b('0x47')],client9004);})[_0xbf2b('0x17')](respondWithResult(_0x2c798a,null))['catch'](handleError(_0x2c798a,null));};exports['attachmentUpload']=function(_0x343080,_0x5c90ba){_0x343080[_0xbf2b('0x47')][_0xbf2b('0x4f')]=_0x343080[_0xbf2b('0x69')][_0xbf2b('0x6a')];_0x343080['body']['basename']=_0x343080[_0xbf2b('0x69')][_0xbf2b('0x6b')];_0x343080[_0xbf2b('0x47')][_0xbf2b('0x36')]=_0x343080[_0xbf2b('0x69')][_0xbf2b('0x6c')];return db['Attachment'][_0xbf2b('0x46')](_0x343080['body'])[_0xbf2b('0x17')](respondWithResult(_0x5c90ba,0xc9))[_0xbf2b('0x22')](handleError(_0x5c90ba,null));};exports[_0xbf2b('0x6d')]=function(_0xcff1fe,_0x5cc341){return db[_0xbf2b('0x35')]['findOne']({'where':{'id':_0xcff1fe[_0xbf2b('0x3b')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x5cc341,null))[_0xbf2b('0x17')](function(_0x36dea8){if(_0x36dea8){if(_0x36dea8['closed']){return _0x5cc341[_0xbf2b('0x24')](0x193)['json']({'status':0x193,'message':_0xbf2b('0x6e')});}return db['Attachment']['findOne']({'where':{'id':_0xcff1fe[_0xbf2b('0x38')][_0xbf2b('0x6f')]},'raw':!![]})[_0xbf2b('0x17')](handleEntityNotFound(_0x5cc341,null));}})[_0xbf2b('0x17')](function(_0x26af55){if(_0x26af55){var _0x3f85e4=_0x26af55[_0xbf2b('0x70')]!==null;var _0x2f842b=path[_0xbf2b('0x71')](config[_0xbf2b('0x72')],_0xbf2b('0x73'));if(_0x3f85e4){_0x2f842b=path[_0xbf2b('0x71')](_0x2f842b,_0xbf2b('0x74'));}var _0x4f08eb=path[_0xbf2b('0x71')](_0x2f842b,_0x26af55[_0xbf2b('0x75')]);return _0x5cc341[_0xbf2b('0x76')](_0x4f08eb);}})['catch'](handleError(_0x5cc341,null));};exports[_0xbf2b('0x77')]=function(_0x1cc28b,_0xd2812){var _0x5528da=null;var _0x1bd3e6=null;var _0x1e0023=null;if(_0x1cc28b[_0xbf2b('0x47')]['id']){delete _0x1cc28b[_0xbf2b('0x47')]['id'];}if(_0x1cc28b['body']['mailTranscript']){_0x1e0023=path['join'](config[_0xbf2b('0x72')],_0xbf2b('0x78'),util[_0xbf2b('0x79')](_0xbf2b('0x7a'),Date[_0xbf2b('0x7b')]()));_0x1cc28b[_0xbf2b('0x47')][_0xbf2b('0x7c')]=_0x1e0023;}return db[_0xbf2b('0x35')]['find']({'where':{'id':_0x1cc28b[_0xbf2b('0x3b')]['id']},'include':[{'model':db[_0xbf2b('0x5d')],'as':'Messages','include':[{'model':db[_0xbf2b('0x7d')],'as':_0xbf2b('0x7d')}]}]})[_0xbf2b('0x17')](handleEntityNotFound(_0xd2812,null))[_0xbf2b('0x17')](saveUpdates(_0x1cc28b[_0xbf2b('0x47')],null))[_0xbf2b('0x17')](function(_0x25e48f){if(_0x25e48f){_0x5528da=_0x25e48f;return db[_0xbf2b('0x7e')][_0xbf2b('0x45')]({'where':{'id':_0x5528da['ChatWebsiteId']}});}})[_0xbf2b('0x17')](function(_0x247a42){if(_0x247a42){_0x1bd3e6=_0x247a42;return db[_0xbf2b('0x61')][_0xbf2b('0x45')]({'where':{'id':_0x5528da['ContactId']}});}})[_0xbf2b('0x17')](function(_0x5d2dfb){if(_0x5d2dfb){if(_0x1e0023){var _0x45fb94=null;for(var _0x23c75f=0x1;_0x23c75f<_0x5528da[_0xbf2b('0x7f')][_0xbf2b('0x41')];++_0x23c75f){_0x45fb94=_0x5528da['Messages'][_0x23c75f];var _0x2a96e8=_0x45fb94['UserId']?util['format'](_0xbf2b('0x80'),_0x1bd3e6['agentAlias'],_0x45fb94[_0xbf2b('0x81')]):'System';var _0x10ad70=_0x1cc28b['body'][_0xbf2b('0x82')]||util['format']('%s%d',_0xbf2b('0x83'),_0x45fb94[_0xbf2b('0x84')]);switch(_0x1bd3e6['agentIdentifier']){case _0xbf2b('0x85'):_0x2a96e8=_0x45fb94[_0xbf2b('0x81')]?util[_0xbf2b('0x79')](_0xbf2b('0x80'),_0x1bd3e6[_0xbf2b('0x86')],_0x45fb94[_0xbf2b('0x81')]):'System';break;case'agent_alias':_0x2a96e8=_0x45fb94[_0xbf2b('0x81')]?_0x45fb94[_0xbf2b('0x7d')][_0xbf2b('0x87')]||_0x45fb94[_0xbf2b('0x7d')]['fullname']:_0xbf2b('0x88');break;case _0xbf2b('0x89'):_0x2a96e8=_0x45fb94[_0xbf2b('0x81')]?_0x45fb94[_0xbf2b('0x7d')]['fullname']:'System';break;default:_0x2a96e8=_0x45fb94[_0xbf2b('0x81')]?util[_0xbf2b('0x79')](_0xbf2b('0x80'),_0x1bd3e6[_0xbf2b('0x86')],_0x45fb94[_0xbf2b('0x81')]):_0xbf2b('0x88');}var _0xf709fe=util['format'](_0xbf2b('0x8a'),moment(_0x45fb94[_0xbf2b('0x8b')])[_0xbf2b('0x79')](_0xbf2b('0x8c')),_0x45fb94['direction']==='in'?_0x10ad70:_0x2a96e8,_0x45fb94[_0xbf2b('0x47')]);if(!_0x45fb94['secret']){fs[_0xbf2b('0x8d')](_0x1e0023,_0xf709fe);}}return db[_0xbf2b('0x8e')]['findOne']({'where':{'service':!![]},'include':[{'model':db[_0xbf2b('0x8f')],'as':_0xbf2b('0x90'),'raw':!![],'include':[{'model':db[_0xbf2b('0x91')],'as':'CloudProvider','raw':!![]}]}]});}}})[_0xbf2b('0x17')](function(_0x6cd4fc){if(!_0x6cd4fc||!_0x6cd4fc[_0xbf2b('0x90')]||!_0x1cc28b[_0xbf2b('0x47')])return _0x5528da;var _0x1eac1a=_0x6cd4fc[_0xbf2b('0x92')]();return respondWithRpcPromise(_0xbf2b('0x93'),_0xbf2b('0x94'),{'account':_0x1eac1a,'message':{'from':util['format']('\x22%s\x22\x20<%s>',_0x6cd4fc[_0xbf2b('0x4f')],_0x6cd4fc['email']||_0x6cd4fc[_0xbf2b('0x90')]['user']),'to':_0x1cc28b[_0xbf2b('0x47')]['mailTranscript'],'subject':'Mail\x20Transcript','text':util[_0xbf2b('0x79')]('Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a',_0x1cc28b[_0xbf2b('0x47')]['mailTranscript']),'attachments':[{'path':_0x1e0023}]}})[_0xbf2b('0x17')](function(){return _0x5528da;})['catch'](function(_0x678038){logger[_0xbf2b('0x1e')](_0x678038);});})[_0xbf2b('0x17')](respondWithStatusCode(_0xd2812,0xc8))[_0xbf2b('0x22')](handleError(_0xd2812,null));};exports[_0xbf2b('0x95')]=function(_0x559697,_0x14f9a2){return db['ChatMessage'][_0xbf2b('0x45')]({'where':{'id':_0x559697['params']['id']}})['then'](handleEntityNotFound(_0x14f9a2,null))[_0xbf2b('0x17')](function(_0x802a09){if(_0x802a09){return _0x802a09['addMessage'](_0x559697[_0xbf2b('0x47')][_0xbf2b('0x96')],_['omit'](_0x559697[_0xbf2b('0x47')],[_0xbf2b('0x96'),'id'])||{});}})[_0xbf2b('0x17')](respondWithResult(_0x14f9a2,null))['catch'](handleError(_0x14f9a2,null));};exports[_0xbf2b('0x97')]=function(_0x25fece,_0x5e028d){var _0x590dab={'raw':![],'where':{}};var _0x342ed4={};var _0x5b98b0={'count':0x0,'rows':[]};return db[_0xbf2b('0x35')][_0xbf2b('0x49')]({'where':{'id':_0x25fece[_0xbf2b('0x3b')]['id']}})[_0xbf2b('0x17')](handleEntityNotFound(_0x5e028d,null))[_0xbf2b('0x17')](function(_0x4920cd){if(_0x4920cd){_0x342ed4[_0xbf2b('0x3c')]=_[_0xbf2b('0x3d')](db['ChatMessage'][_0xbf2b('0x98')]);_0x342ed4[_0xbf2b('0x38')]=_[_0xbf2b('0x3d')](_0x25fece['query']);_0x342ed4[_0xbf2b('0x99')]=_[_0xbf2b('0x3e')](_0x342ed4['model'],_0x342ed4[_0xbf2b('0x38')]);_0x590dab['attributes']=_[_0xbf2b('0x3e')](_0x342ed4[_0xbf2b('0x3c')],qs[_0xbf2b('0x40')](_0x25fece[_0xbf2b('0x38')][_0xbf2b('0x40')]));_0x590dab[_0xbf2b('0x3f')]=_0x590dab[_0xbf2b('0x3f')][_0xbf2b('0x41')]?_0x590dab['attributes']:_0x342ed4[_0xbf2b('0x3c')];if(!_0x25fece[_0xbf2b('0x38')][_0xbf2b('0x9a')](_0xbf2b('0x9b'))){_0x590dab[_0xbf2b('0x29')]=qs['limit'](_0x25fece[_0xbf2b('0x38')][_0xbf2b('0x29')]);_0x590dab[_0xbf2b('0x27')]=qs[_0xbf2b('0x27')](_0x25fece[_0xbf2b('0x38')][_0xbf2b('0x27')]);}_0x590dab['order']=qs[_0xbf2b('0x9c')](_0x25fece[_0xbf2b('0x38')][_0xbf2b('0x9c')]);_0x590dab[_0xbf2b('0x9d')]=qs[_0xbf2b('0x99')](_[_0xbf2b('0x9e')](_0x25fece[_0xbf2b('0x38')],_0x342ed4[_0xbf2b('0x99')]));_0x590dab[_0xbf2b('0x9d')][_0xbf2b('0x9f')]=_0x4920cd['id'];if(_0x25fece[_0xbf2b('0x38')]['filter']){_0x590dab['where']=_[_0xbf2b('0x30')](_0x590dab[_0xbf2b('0x9d')],{'$or':_['map'](_0x590dab[_0xbf2b('0x3f')],function(_0x3722b4){var _0x5b679c={};_0x5b679c[_0x3722b4]={'$like':'%'+_0x25fece[_0xbf2b('0x38')][_0xbf2b('0xa0')]+'%'};return _0x5b679c;})});}if(_0x25fece[_0xbf2b('0x38')][_0xbf2b('0xa1')]){var _0x119887=_0x25fece[_0xbf2b('0x38')][_0xbf2b('0xa1')][_0xbf2b('0xa2')](',');var _0x4cb6d9={};_0x4cb6d9[_0x119887[0x0]]={'$gte':moment(_0x119887[0x1])[_0xbf2b('0x79')](_0xbf2b('0xa3'))};_0x590dab[_0xbf2b('0x9d')]=_[_0xbf2b('0x30')](_0x590dab[_0xbf2b('0x9d')],_0x4cb6d9);}_0x590dab=_[_0xbf2b('0x30')]({},_0x590dab,_0x25fece[_0xbf2b('0x44')]);return db[_0xbf2b('0x5d')][_0xbf2b('0x2a')]({'where':_0x590dab[_0xbf2b('0x9d')]})[_0xbf2b('0x17')](function(_0x5ab930){_0x5b98b0[_0xbf2b('0x2a')]=_0x5ab930;if(_0x25fece[_0xbf2b('0x38')][_0xbf2b('0x42')]){_0x590dab[_0xbf2b('0x43')]=[{'all':!![]}];}return db[_0xbf2b('0x5d')]['findAll'](_0x590dab);})[_0xbf2b('0x17')](function(_0x398633){_0x5b98b0['rows']=_0x398633;return _0x5b98b0;});}})[_0xbf2b('0x17')](respondWithFilteredResult(_0x5e028d,_0x590dab))[_0xbf2b('0x22')](handleError(_0x5e028d,null));};exports[_0xbf2b('0xa4')]=function(_0x275990,_0x36cac7){var _0x2b8e54={'where':{}},_0x580a4d={},_0x5e65af={'count':0x0,'rows':[]};return db[_0xbf2b('0x35')]['findOne']({'where':{'id':_0x275990['params']['id']}})['then'](handleEntityNotFound(_0x36cac7,null))['then'](function(_0x2ce960){if(_0x2ce960){_0x580a4d[_0xbf2b('0x3c')]=_[_0xbf2b('0x3d')](db[_0xbf2b('0x5d')]['rawAttributes']);_0x580a4d[_0xbf2b('0x38')]=_[_0xbf2b('0x3d')](_0x275990[_0xbf2b('0x38')]);_0x580a4d['filters']=_['intersection'](_0x580a4d[_0xbf2b('0x3c')],_0x580a4d['query']);_0x2b8e54['attributes']=_[_0xbf2b('0x3e')](_0x580a4d[_0xbf2b('0x3c')],qs[_0xbf2b('0x40')](_0x275990[_0xbf2b('0x38')][_0xbf2b('0x40')]));_0x2b8e54['attributes']=_0x2b8e54[_0xbf2b('0x3f')][_0xbf2b('0x41')]?_0x2b8e54['attributes']:_0x580a4d[_0xbf2b('0x3c')];if(!_0x275990[_0xbf2b('0x38')][_0xbf2b('0x9a')](_0xbf2b('0x9b'))){_0x2b8e54[_0xbf2b('0x29')]=qs[_0xbf2b('0x29')](_0x275990[_0xbf2b('0x38')][_0xbf2b('0x29')]);_0x2b8e54[_0xbf2b('0x27')]=qs[_0xbf2b('0x27')](_0x275990[_0xbf2b('0x38')][_0xbf2b('0x27')]);}_0x2b8e54['order']=qs[_0xbf2b('0x9c')](_0x275990[_0xbf2b('0x38')][_0xbf2b('0x9c')]);_0x2b8e54[_0xbf2b('0x9d')]=qs[_0xbf2b('0x99')](_[_0xbf2b('0x9e')](_0x275990[_0xbf2b('0x38')],_0x580a4d['filters']));_0x2b8e54[_0xbf2b('0x9d')][_0xbf2b('0x9f')]=_0x2ce960['id'];if(_0x275990[_0xbf2b('0x38')][_0xbf2b('0xa0')]){_0x2b8e54[_0xbf2b('0x9d')]=_[_0xbf2b('0x30')](_0x2b8e54[_0xbf2b('0x9d')],{'$or':_['map'](_0x2b8e54[_0xbf2b('0x3f')],function(_0x1393ee){var _0x2682c1={};_0x2682c1[_0x1393ee]={'$like':'%'+_0x275990['query'][_0xbf2b('0xa0')]+'%'};return _0x2682c1;})});}_0x2b8e54[_0xbf2b('0x9d')][_0xbf2b('0xa5')]=![];if(_0x275990[_0xbf2b('0x38')]['id']){_0x2b8e54[_0xbf2b('0x9d')]['id']={'$gt':_0x275990[_0xbf2b('0x38')]['id']};}_0x2b8e54=_['merge']({},_0x2b8e54,_0x275990[_0xbf2b('0x44')]);return db[_0xbf2b('0x5d')]['count']({'where':_0x2b8e54[_0xbf2b('0x9d')]})['then'](function(_0x513334){_0x5e65af[_0xbf2b('0x2a')]=_0x513334;_0x2b8e54[_0xbf2b('0x43')]=[];if(_0x275990[_0xbf2b('0x38')][_0xbf2b('0xa6')]){_0x2b8e54[_0xbf2b('0x43')]['push']({'model':db['User'],'as':'User','attributes':['id',_0xbf2b('0x50'),_0xbf2b('0x87')]});}if(_0x275990[_0xbf2b('0x38')]['includeAll']){_0x2b8e54[_0xbf2b('0x43')]=[{'all':!![]}];}return db[_0xbf2b('0x5d')][_0xbf2b('0xa7')](_0x2b8e54);})[_0xbf2b('0x17')](function(_0x3dee1b){_0x5e65af[_0xbf2b('0xa8')]=_0x3dee1b;return _0x5e65af;});}})['then'](respondWithFilteredResult(_0x36cac7,_0x2b8e54))['catch'](handleError(_0x36cac7,null));};exports[_0xbf2b('0xa9')]=function(_0x4d2187,_0x4cccb2){return db[_0xbf2b('0x35')][_0xbf2b('0x45')]({'where':{'id':_0x4d2187[_0xbf2b('0x3b')]['id']}})['then'](handleEntityNotFound(_0x4cccb2,null))[_0xbf2b('0x17')](function(_0xbcec91){if(_0xbcec91){return _0xbcec91[_0xbf2b('0xaa')](_0x4d2187[_0xbf2b('0x47')]['ids'],_[_0xbf2b('0xab')](_0x4d2187[_0xbf2b('0x47')],['ids','id'])||{})['spread'](function(){return db[_0xbf2b('0xac')][_0xbf2b('0xa7')]({'attributes':['id',_0xbf2b('0x4f'),_0xbf2b('0xad')],'where':{'id':_0x4d2187[_0xbf2b('0x47')][_0xbf2b('0x96')]}});})['then'](function(_0x5b971e){socket[_0xbf2b('0xae')]('chatInteractionTags:save',{'id':Number(_0x4d2187['params']['id']),'tags':_0x5b971e||[]});return{'id':Number(_0x4d2187[_0xbf2b('0x3b')]['id']),'tags':_0x5b971e||[]};});}})['then'](respondWithResult(_0x4cccb2,null))[_0xbf2b('0x22')](handleError(_0x4cccb2,null));};exports['removeTags']=function(_0x26f74c,_0x5297e8){return db[_0xbf2b('0x35')][_0xbf2b('0x45')]({'where':{'id':_0x26f74c[_0xbf2b('0x3b')]['id']}})[_0xbf2b('0x17')](handleEntityNotFound(_0x5297e8,null))[_0xbf2b('0x17')](function(_0x6ee08b){if(_0x6ee08b){return _0x6ee08b[_0xbf2b('0xaf')](_0x26f74c[_0xbf2b('0x38')][_0xbf2b('0x96')]);}})[_0xbf2b('0x17')](respondWithStatusCode(_0x5297e8,null))['catch'](handleError(_0x5297e8,null));};exports[_0xbf2b('0x76')]=function(_0xadc254,_0x2d4288){var _0x405edb=moment()['unix']()['toString']();var _0x53f853=path[_0xbf2b('0x71')](config[_0xbf2b('0x72')],_0xbf2b('0xb0'),_0xbf2b('0xb1'),_0xbf2b('0xb2'));var _0x33b7a5=path[_0xbf2b('0x71')](config[_0xbf2b('0x72')],'server',_0xbf2b('0xb1'),'attachments');var _0x1cc173=path['join'](_0x53f853,_0x405edb);var _0x5db5e3=util[_0xbf2b('0x79')](_0xbf2b('0xb3'),_0xadc254[_0xbf2b('0x3b')]['id'],_0x405edb);var _0x3f4f94=path[_0xbf2b('0x71')](_0x53f853,_0x5db5e3);var _0x12fda9=[];_0x12fda9[_0xbf2b('0xb4')]({'model':db[_0xbf2b('0x7d')],'as':'User','attributes':['id',_0xbf2b('0x50')],'raw':!![]});_0x12fda9[_0xbf2b('0xb4')]({'model':db['CmContact'],'as':_0xbf2b('0x62'),'attributes':['id',_0xbf2b('0xb5'),_0xbf2b('0xb6')],'raw':!![]});if(_0xadc254[_0xbf2b('0x38')][_0xbf2b('0xb7')]){_0x12fda9[_0xbf2b('0xb4')]({'model':db[_0xbf2b('0xb8')],'as':_0xbf2b('0xb8'),'raw':!![]});}var _0x43727f=[{'model':db['ChatMessage'],'as':'Messages','attributes':['id','body',_0xbf2b('0x8b'),_0xbf2b('0xb9'),_0xbf2b('0xa5'),_0xbf2b('0xba')],'include':_0x12fda9}];_0x43727f['push']({'model':db[_0xbf2b('0x7e')],'as':'Account','attributes':['id',_0xbf2b('0x4f')]});_0x43727f[_0xbf2b('0xb4')]({'model':db['User'],'as':'Owner','attributes':['id',_0xbf2b('0x50')]});return db[_0xbf2b('0x35')]['find']({'where':{'id':_0xadc254[_0xbf2b('0x3b')]['id']},'include':_0x43727f})[_0xbf2b('0x17')](handleEntityNotFound(_0x2d4288,null))['then'](function(_0x19fbd8){if(_0x19fbd8){var _0x3ad796=_0x19fbd8[_0xbf2b('0xbb')]({'plain':!![]});fs[_0xbf2b('0xbc')](_0x1cc173);var _0x3f4fab={'channel':'Chat','account':_0x3ad796[_0xbf2b('0xbd')]['name'],'agent':_0x3ad796[_0xbf2b('0xbe')]?_0x3ad796[_0xbf2b('0xbe')][_0xbf2b('0x50')]:_0xbf2b('0xbf'),'createdAt':moment(_0x3ad796[_0xbf2b('0x8b')])[_0xbf2b('0x79')](_0xbf2b('0xa3'))['toString'](),'closedAt':_0x3ad796[_0xbf2b('0xc0')]?moment(_0x3ad796['closedAt'])[_0xbf2b('0x79')](_0xbf2b('0xa3'))[_0xbf2b('0xc1')]():'','disposition':_0x3ad796[_0xbf2b('0x67')],'chatInfo':{'browser':_0x3ad796[_0xbf2b('0xc2')],'os':_0x3ad796[_0xbf2b('0xc3')],'referer':_0x3ad796[_0xbf2b('0xc4')],'customerIp':_0x3ad796[_0xbf2b('0xc5')],'customerPort':_0x3ad796['customerPort']?_0x3ad796[_0xbf2b('0xc6')]:_0xbf2b('0xbf')},'messages':_(_0x3ad796[_0xbf2b('0x7f')])[_0xbf2b('0xc7')]()[_0xbf2b('0xa0')]({'secret':![]})['map'](function(_0x392b71){if(_0x392b71[_0xbf2b('0xb8')]){var _0x2d0dd0=path[_0xbf2b('0x71')](_0x33b7a5,_0x392b71[_0xbf2b('0xb8')][_0xbf2b('0x75')]);if(fs[_0xbf2b('0xc8')](_0x2d0dd0)){fs[_0xbf2b('0xc9')](_0x2d0dd0)[_0xbf2b('0xca')](fs[_0xbf2b('0xcb')](path['join'](_0x1cc173,_0x392b71['Attachment'][_0xbf2b('0x75')])));}}return{'date':moment(_0x392b71[_0xbf2b('0x8b')])['format'](_0xbf2b('0xa3'))[_0xbf2b('0xc1')](),'sender':_0x392b71[_0xbf2b('0xb9')]==='out'?_0x392b71[_0xbf2b('0x7d')]?_0x392b71[_0xbf2b('0x7d')][_0xbf2b('0x50')]:_0xbf2b('0x88'):_0x392b71[_0xbf2b('0x62')][_0xbf2b('0xb5')]+(_0x392b71['Contact'][_0xbf2b('0xb6')]?'\x20'+_0x392b71[_0xbf2b('0x62')][_0xbf2b('0xb6')]:''),'body':_0x392b71['Attachment']?_0x392b71['Attachment'][_0xbf2b('0x75')]:_0x392b71[_0xbf2b('0x47')],'direction':_0x392b71[_0xbf2b('0xb9')]===_0xbf2b('0x5c')?'A':'C','secret':_0x392b71['secret'],'read':_0x392b71[_0xbf2b('0xba')],'attachment':_0x392b71['Attachment']};})[_0xbf2b('0xcc')]()};return ejs[_0xbf2b('0xcd')](path[_0xbf2b('0x71')](config['root'],_0xbf2b('0xb0'),_0xbf2b('0xce'),_0xbf2b('0xcf')),{'interaction':_0x3f4fab})[_0xbf2b('0x17')](function(_0x188ec9){var _0x544664=path[_0xbf2b('0x71')](_0x1cc173,'transcript-'+_0x3ad796['id']+'-'+_0x405edb+'.pdf');var _0x7504a5={'path':_0x544664,'channel':_0xbf2b('0xd0'),'interactionId':_0x3ad796['id']};return pdf['createPdfFromHTML'](_0x188ec9,_0x7504a5);})[_0xbf2b('0x17')](function(){return new Promise(function(_0x1fabf1,_0x5ef1bf){zipdir(_0x1cc173,{'saveTo':_0x3f4f94},function(_0x1f0ced,_0x27bbdd){if(_0x1f0ced)return _0x5ef1bf(_0x1f0ced);return _0x1fabf1(_0x27bbdd);});})[_0xbf2b('0x17')](function(){return new BPromise(function(_0x1f3027,_0x67c1cf){rimraf(_0x1cc173,function(_0x1eb351){if(_0x1eb351)_0x67c1cf(_0x1eb351);return _0x1f3027();});});})[_0xbf2b('0x17')](function(){return _0x2d4288[_0xbf2b('0x76')](_0x3f4f94,_0x5db5e3,function(_0x509b6f){if(_0x509b6f){logger[_0xbf2b('0x1e')](_0xbf2b('0xd1'),_0x509b6f);}else{fs[_0xbf2b('0xd2')](_0x3f4f94);}});});});}else{return _0x2d4288[_0xbf2b('0x23')](0xc8);}})[_0xbf2b('0x22')](handleError(_0x2d4288,null));};