Built motion from commit 56a37f2a.|2.6.21
[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 _0x2bce=['unlinkSync','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','ejs','lodash','../../components/parsers/qs','../../components/export/pdf','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./chatInteraction.socket','register','jayson/promise','client','request','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','ChatInteraction,\x20%s,\x20%s','sendStatus','status','end','json','offset','limit','count','set','Content-Range','destroy','name','send','render','merge','interaction','account','index','map','ChatInteraction','rawAttributes','fieldName','type','key','findAll','chat','user','then','show','params','model','keys','query','intersection','attributes','length','includeAll','include','options','find','body','update','describe','createVidaooSession','ChatWebsite','vidaooEscalation','vidaooTopic','vidaooNote','vidaooMetadata','vidaooApiKey','fullname','email','contact','POST','https://api-vidaoo.xcally.com/api/v1/meetings','isNull','follow','parse','Sequelize','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','Error\x20in\x20Vidaoo\x20configuration','join_url','out','ChatMessage','create','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','customUpdate','Contact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','UserId','Interaction\x20already\x20assigned','disposition','AbandonInteraction','attachmentUpload','file','originalname','mimetype','Attachment','findOne','closed','Unauthorized','attachId','join','root','server/files/attachments/','basename','download','close','mailTranscript','server/files/chat/upload/','format','transcript-%s.txt','now','pathTranscript','Messages','User','ChatWebsiteId','ContactId','%s%d','agentAlias','System','Visitor','agentIdentifier','website_alias','agent_alias','alias','agent_fullname','[%s]\x20%s:\x20%s\x0a','createdAt','MM/DD/YYYY\x20HH:mm:ss','direction','secret','appendFileSync','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','ids','omit','getMessages','filters','fields','hasOwnProperty','nolimit','order','where','ChatInteractionId','filter','$gte','split','getMyMessages','sort','pick','includeAgent','push','addTags','spread','Tag','emit','chatInteractionTags:save','removeTags','unix','server','files','attachments','transcript-%d-%s.zip','CmContact','firstName','lastName','read','Account','get','mkdirSync','Chat','N.A.','toString','osName','referer','customerPort','tail','createReadStream','pipe','createWriteStream','YYYY-MM-DD\x20HH:mm:ss','value','renderFile','views','downloadInteraction.ejs','transcript-','.pdf','createPdfFromHTML','err'];(function(_0x10cb7b,_0x211e7d){var _0x5a9cb4=function(_0x4fac9e){while(--_0x4fac9e){_0x10cb7b['push'](_0x10cb7b['shift']());}};_0x5a9cb4(++_0x211e7d);}(_0x2bce,0x1b3));var _0xe2bc=function(_0x16d8af,_0x2e6da5){_0x16d8af=_0x16d8af-0x0;var _0x36d3b7=_0x2bce[_0x16d8af];return _0x36d3b7;};'use strict';var rimraf=require(_0xe2bc('0x0'));var zipdir=require(_0xe2bc('0x1'));var rp=require(_0xe2bc('0x2'));var moment=require(_0xe2bc('0x3'));var BPromise=require(_0xe2bc('0x4'));var Mustache=require(_0xe2bc('0x5'));var util=require('util');var path=require(_0xe2bc('0x6'));var ejs=require(_0xe2bc('0x7'));var fs=require('fs');var _=require(_0xe2bc('0x8'));var Redis=require('ioredis');var interaction=require('../../components/interaction/service');var qs=require(_0xe2bc('0x9'));var pdf=require(_0xe2bc('0xa'));var logger=require(_0xe2bc('0xb'))(_0xe2bc('0xc'));var config=require(_0xe2bc('0xd'));var db=require(_0xe2bc('0xe'))['db'];config[_0xe2bc('0xf')]=_[_0xe2bc('0x10')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xe2bc('0x11'))(new Redis(config['redis']));require(_0xe2bc('0x12'))[_0xe2bc('0x13')](socket);var jayson=require(_0xe2bc('0x14'));var client=jayson[_0xe2bc('0x15')]['http']({'port':0x232b});var client9004=jayson[_0xe2bc('0x15')]['http']({'port':0x232c});function respondWithRpcPromise(_0x134149,_0x4436b2,_0x237ce3,_0x44c68b){return new BPromise(function(_0x10cb3b,_0x5abb32){var _0x3e7ae8=_0x44c68b||client;return _0x3e7ae8[_0xe2bc('0x16')](_0x134149,_0x237ce3)['then'](function(_0xb29a1a){logger['info']('ChatInteraction,\x20%s,\x20%s',_0x4436b2,_0xe2bc('0x17'));logger[_0xe2bc('0x18')](_0xe2bc('0x19'),_0x4436b2,_0xe2bc('0x17'),JSON[_0xe2bc('0x1a')](_0xb29a1a));if(_0xb29a1a[_0xe2bc('0x1b')]){if(_0xb29a1a[_0xe2bc('0x1b')][_0xe2bc('0x1c')]===0x1f4){logger[_0xe2bc('0x1b')]('ChatInteraction,\x20%s,\x20%s',_0x4436b2,_0xb29a1a[_0xe2bc('0x1b')]['message']);return _0x5abb32(_0xb29a1a[_0xe2bc('0x1b')]['message']);}logger[_0xe2bc('0x1b')]('ChatInteraction,\x20%s,\x20%s',_0x4436b2,_0xb29a1a['error'][_0xe2bc('0x1d')]);return _0x10cb3b(_0xb29a1a['error'][_0xe2bc('0x1d')]);}else{logger[_0xe2bc('0x1e')]('ChatInteraction,\x20%s,\x20%s',_0x4436b2,'request\x20sent');_0x10cb3b(_0xb29a1a[_0xe2bc('0x1f')][_0xe2bc('0x1d')]);}})[_0xe2bc('0x20')](function(_0x2fc613){logger['error'](_0xe2bc('0x21'),_0x4436b2,_0x2fc613);_0x5abb32(_0x2fc613);});});}function respondWithStatusCode(_0x56954e,_0x590c53){_0x590c53=_0x590c53||0xcc;return function(_0x7bb226){if(_0x7bb226){return _0x56954e[_0xe2bc('0x22')](_0x590c53);}return _0x56954e[_0xe2bc('0x23')](_0x590c53)[_0xe2bc('0x24')]();};}function respondWithResult(_0x390482,_0x57661d){_0x57661d=_0x57661d||0xc8;return function(_0x4a2ed0){if(_0x4a2ed0){return _0x390482[_0xe2bc('0x23')](_0x57661d)[_0xe2bc('0x25')](_0x4a2ed0);}};}function respondWithFilteredResult(_0x12269f,_0x5be319){return function(_0x487e43){if(_0x487e43){var _0xc32f95=typeof _0x5be319[_0xe2bc('0x26')]==='undefined'&&typeof _0x5be319[_0xe2bc('0x27')]==='undefined';var _0x384a30=_0x487e43['count'];var _0x8b89c=_0xc32f95?0x0:_0x5be319['offset'];var _0x5a37f8=_0xc32f95?_0x487e43[_0xe2bc('0x28')]:_0x5be319[_0xe2bc('0x26')]+_0x5be319[_0xe2bc('0x27')];var _0x169d81;if(_0x5a37f8>=_0x384a30){_0x5a37f8=_0x384a30;_0x169d81=0xc8;}else{_0x169d81=0xce;}_0x12269f[_0xe2bc('0x23')](_0x169d81);return _0x12269f[_0xe2bc('0x29')](_0xe2bc('0x2a'),_0x8b89c+'-'+_0x5a37f8+'/'+_0x384a30)[_0xe2bc('0x25')](_0x487e43);}return null;};}function saveUpdates(_0x96307){return function(_0x69f2f){if(_0x69f2f){return _0x69f2f['update'](_0x96307)['then'](function(_0x1409b7){return _0x1409b7;});}return null;};}function removeEntity(_0x512863){return function(_0x192725){if(_0x192725){return _0x192725[_0xe2bc('0x2b')]()['then'](function(){_0x512863['status'](0xcc)[_0xe2bc('0x24')]();});}};}function handleEntityNotFound(_0x5319b0){return function(_0x581d0a){if(!_0x581d0a){_0x5319b0[_0xe2bc('0x22')](0x194);}return _0x581d0a;};}function handleError(_0x419ba5,_0x2a2449){_0x2a2449=_0x2a2449||0x1f4;return function(_0x537aea){logger['error'](_0x537aea['stack']);if(_0x537aea['name']){delete _0x537aea[_0xe2bc('0x2c')];}_0x419ba5['status'](_0x2a2449)[_0xe2bc('0x2d')](_0x537aea);};}function getMustacheRender(_0x23e2c6,_0x16af36){return Mustache[_0xe2bc('0x2e')](_0x23e2c6,_[_0xe2bc('0x2f')](_0x16af36['body'],{'contact':_0x16af36['contact'],'message':_0x16af36['message'],'agent':_0x16af36['agent'],'interaction':_0x16af36[_0xe2bc('0x30')],'account':_0x16af36[_0xe2bc('0x31')]}))||'';}exports[_0xe2bc('0x32')]=function(_0x248069,_0x85b0d6){var _0x35d193={};var _0x41a4f9=_[_0xe2bc('0x33')](db[_0xe2bc('0x34')][_0xe2bc('0x35')],function(_0x34263b){return{'name':_0x34263b[_0xe2bc('0x36')],'type':_0x34263b[_0xe2bc('0x37')][_0xe2bc('0x38')]};});_0x35d193=qs['getOptions'](_0x41a4f9,_0x248069);return interaction[_0xe2bc('0x39')](_0xe2bc('0x3a'),_0x248069['query'],_0x248069[_0xe2bc('0x3b')],_0x35d193,_0x41a4f9)[_0xe2bc('0x3c')](respondWithFilteredResult(_0x85b0d6,_0x35d193))[_0xe2bc('0x20')](handleError(_0x85b0d6,null));};exports[_0xe2bc('0x3d')]=function(_0x131a64,_0x192b0e){var _0x4270c0={'raw':![],'where':{'id':_0x131a64[_0xe2bc('0x3e')]['id']}},_0x261edc={};_0x261edc[_0xe2bc('0x3f')]=_[_0xe2bc('0x40')](db[_0xe2bc('0x34')][_0xe2bc('0x35')]);_0x261edc['query']=_[_0xe2bc('0x40')](_0x131a64[_0xe2bc('0x41')]);_0x261edc['filters']=_[_0xe2bc('0x42')](_0x261edc['model'],_0x261edc[_0xe2bc('0x41')]);_0x4270c0['attributes']=_[_0xe2bc('0x42')](_0x261edc[_0xe2bc('0x3f')],qs['fields'](_0x131a64[_0xe2bc('0x41')]['fields']));_0x4270c0['attributes']=_0x4270c0[_0xe2bc('0x43')][_0xe2bc('0x44')]?_0x4270c0[_0xe2bc('0x43')]:_0x261edc[_0xe2bc('0x3f')];if(_0x131a64['query'][_0xe2bc('0x45')]){_0x4270c0[_0xe2bc('0x46')]=[{'all':!![]}];}_0x4270c0=_[_0xe2bc('0x2f')]({},_0x4270c0,_0x131a64[_0xe2bc('0x47')]);return db[_0xe2bc('0x34')][_0xe2bc('0x48')](_0x4270c0)[_0xe2bc('0x3c')](handleEntityNotFound(_0x192b0e,null))[_0xe2bc('0x3c')](respondWithResult(_0x192b0e,null))[_0xe2bc('0x20')](handleError(_0x192b0e,null));};exports['create']=function(_0x46100c,_0x4bebaa){return db[_0xe2bc('0x34')]['create'](_0x46100c[_0xe2bc('0x49')],{})[_0xe2bc('0x3c')](respondWithResult(_0x4bebaa,0xc9))[_0xe2bc('0x20')](handleError(_0x4bebaa,null));};exports[_0xe2bc('0x4a')]=function(_0xed5e1b,_0x329784){if(_0xed5e1b[_0xe2bc('0x49')]['id']){delete _0xed5e1b['body']['id'];}return db[_0xe2bc('0x34')][_0xe2bc('0x48')]({'where':{'id':_0xed5e1b[_0xe2bc('0x3e')]['id']}})[_0xe2bc('0x3c')](handleEntityNotFound(_0x329784,null))['then'](saveUpdates(_0xed5e1b[_0xe2bc('0x49')],null))[_0xe2bc('0x3c')](respondWithResult(_0x329784,null))[_0xe2bc('0x20')](handleError(_0x329784,null));};exports[_0xe2bc('0x2b')]=function(_0x150649,_0x138610){return db[_0xe2bc('0x34')][_0xe2bc('0x48')]({'where':{'id':_0x150649['params']['id']}})[_0xe2bc('0x3c')](handleEntityNotFound(_0x138610,null))[_0xe2bc('0x3c')](removeEntity(_0x138610,null))['catch'](handleError(_0x138610,null));};exports[_0xe2bc('0x4b')]=function(_0x179a75,_0x8140f0){return db[_0xe2bc('0x34')][_0xe2bc('0x4b')]()[_0xe2bc('0x3c')](respondWithResult(_0x8140f0,null))['catch'](handleError(_0x8140f0,null));};exports[_0xe2bc('0x4c')]=function(_0x1329cd,_0x812fec){var _0x258881=_0x1329cd[_0xe2bc('0x3e')]['id'];var _0x5016ff;var _0x5f18c8;var _0xb1a597;return db[_0xe2bc('0x34')]['findOne']({'where':{'id':_0x258881}})[_0xe2bc('0x3c')](function(_0x3a9b50){_0x5016ff=_0x3a9b50;return db[_0xe2bc('0x4d')]['findOne']({'where':{'id':_0x3a9b50['ChatWebsiteId']},'attributes':['id','vidaooApiKey',_0xe2bc('0x4e'),_0xe2bc('0x4f'),_0xe2bc('0x50'),_0xe2bc('0x51')],'raw':!![]});})[_0xe2bc('0x3c')](function(_0x2bfdad){if(_0x2bfdad&&_0x2bfdad[_0xe2bc('0x52')]&&_0x2bfdad[_0xe2bc('0x4e')]){_0x5f18c8=_0x2bfdad;var _0x4d87e1={'interaction':{'id':_0x258881},'agent':{'id':_0x1329cd[_0xe2bc('0x3b')]['id'],'name':_0x1329cd[_0xe2bc('0x3b')]['name'],'fullname':_0x1329cd['user'][_0xe2bc('0x53')],'email':_0x1329cd[_0xe2bc('0x3b')][_0xe2bc('0x54')]},'contact':_0x1329cd[_0xe2bc('0x49')][_0xe2bc('0x55')],'account':_0x1329cd[_0xe2bc('0x49')][_0xe2bc('0x31')]};var _0x18c30f={'rejectUnauthorized':![],'method':_0xe2bc('0x56'),'url':_0xe2bc('0x57'),'headers':{'X-APIKEY':_0x2bfdad[_0xe2bc('0x52')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x1329cd['user']['email']],'buttons':null,'topic':_0x5f18c8[_0xe2bc('0x4f')],'note':_[_0xe2bc('0x58')](_0x5f18c8[_0xe2bc('0x50')])?null:getMustacheRender(_0x5f18c8['vidaooNote'],_0x4d87e1),'metadata':null},'redirect':_0xe2bc('0x59'),'json':!![]};try{if(!_[_0xe2bc('0x58')](_0x5f18c8[_0xe2bc('0x51')])){var _0x4cd25f=getMustacheRender(_0x5f18c8[_0xe2bc('0x51')],_0x4d87e1);var _0xf751e2=JSON[_0xe2bc('0x5a')](_0x4cd25f);_0x18c30f[_0xe2bc('0x49')]['metadata']=_0xf751e2;}}catch(_0x328c36){throw new db[(_0xe2bc('0x5b'))][(_0xe2bc('0x5c'))](_0xe2bc('0x5d'));}return rp(_0x18c30f);}else{throw new db[(_0xe2bc('0x5b'))][(_0xe2bc('0x5c'))](_0xe2bc('0x5e'));}})[_0xe2bc('0x3c')](function(_0x25868f){_0xb1a597=_0x25868f;if(_0xb1a597['id']){var _0x56ec50={'body':_0xb1a597[_0xe2bc('0x5f')],'ChatWebsiteId':_0x5f18c8['id'],'ChatInteractionId':_0x5016ff['id'],'direction':_0xe2bc('0x60'),'UserId':_0x1329cd[_0xe2bc('0x3b')]['id']};return db[_0xe2bc('0x61')][_0xe2bc('0x62')](_0x56ec50,{});}else{throw new db[(_0xe2bc('0x5b'))]['ValidationError'](_0xe2bc('0x63'));}})[_0xe2bc('0x3c')](function(){return _0x5016ff[_0xe2bc('0x64')]({'vidaooSessionId':_0xb1a597['id']});})[_0xe2bc('0x3c')](respondWithResult(_0x812fec,null))[_0xe2bc('0x20')](handleError(_0x812fec,null));};exports[_0xe2bc('0x65')]=function(_0xca1619,_0x583b40){if(_0xca1619[_0xe2bc('0x49')]['id']){delete _0xca1619[_0xe2bc('0x49')]['id'];}return db['ChatInteraction'][_0xe2bc('0x48')]({'where':{'id':_0xca1619['params']['id']},'include':[{'model':db['CmContact'],'as':_0xe2bc('0x66')}]})[_0xe2bc('0x3c')](handleEntityNotFound(_0x583b40,null))[_0xe2bc('0x3c')](saveUpdates(_0xca1619[_0xe2bc('0x49')],null))[_0xe2bc('0x3c')](respondWithResult(_0x583b40,null))[_0xe2bc('0x20')](handleError(_0x583b40,null));};exports[_0xe2bc('0x67')]=function(_0x541aac,_0x4d53a8){if(_0x541aac[_0xe2bc('0x49')]['id']){delete _0x541aac[_0xe2bc('0x49')]['id'];}return db[_0xe2bc('0x34')][_0xe2bc('0x48')]({'where':{'id':_0x541aac[_0xe2bc('0x3e')]['id']}})[_0xe2bc('0x3c')](function(_0x42bd4f){if(!_0x42bd4f){logger[_0xe2bc('0x1b')](_0xe2bc('0x68'),_0xe2bc('0x67'),0x194,_0xe2bc('0x69'));_0x4d53a8[_0xe2bc('0x22')](0x194);}else{if(_0x42bd4f[_0xe2bc('0x6a')]){throw new db[(_0xe2bc('0x5b'))][(_0xe2bc('0x5c'))](_0xe2bc('0x6b'));}}return _0x42bd4f;})[_0xe2bc('0x3c')](function(_0x4f155b){if(_0x4f155b){return _0x4f155b['update']({'closed':_0x541aac[_0xe2bc('0x49')]['closed'],'disposition':_0x541aac[_0xe2bc('0x49')][_0xe2bc('0x6c')]})[_0xe2bc('0x3c')](function(_0x27a5ab){return _0x27a5ab;});}})['then'](function(){return respondWithRpcPromise(_0xe2bc('0x6d'),'abandon',_0x541aac[_0xe2bc('0x49')],client9004);})[_0xe2bc('0x3c')](respondWithResult(_0x4d53a8,null))[_0xe2bc('0x20')](handleError(_0x4d53a8,null));};exports[_0xe2bc('0x6e')]=function(_0x384d30,_0xe97c6f){_0x384d30[_0xe2bc('0x49')]['name']=_0x384d30[_0xe2bc('0x6f')][_0xe2bc('0x70')];_0x384d30['body']['basename']=_0x384d30[_0xe2bc('0x6f')]['filename'];_0x384d30[_0xe2bc('0x49')][_0xe2bc('0x37')]=_0x384d30[_0xe2bc('0x6f')][_0xe2bc('0x71')];return db[_0xe2bc('0x72')][_0xe2bc('0x62')](_0x384d30[_0xe2bc('0x49')])[_0xe2bc('0x3c')](respondWithResult(_0xe97c6f,0xc9))['catch'](handleError(_0xe97c6f,null));};exports['attachmentDownload']=function(_0x4fecaf,_0x590486){return db['ChatInteraction'][_0xe2bc('0x73')]({'where':{'id':_0x4fecaf['params']['id']},'raw':!![]})['then'](handleEntityNotFound(_0x590486,null))[_0xe2bc('0x3c')](function(_0x52fffc){if(_0x52fffc){if(_0x52fffc[_0xe2bc('0x74')]){return _0x590486['status'](0x193)[_0xe2bc('0x25')]({'status':0x193,'message':_0xe2bc('0x75')});}return db[_0xe2bc('0x72')]['findOne']({'where':{'id':_0x4fecaf['query'][_0xe2bc('0x76')]},'raw':!![]})[_0xe2bc('0x3c')](handleEntityNotFound(_0x590486,null));}})[_0xe2bc('0x3c')](function(_0x1bb836){if(_0x1bb836){var _0x5128f5=_0x1bb836['ChatOfflineMessageId']!==null;var _0x1caac0=path[_0xe2bc('0x77')](config[_0xe2bc('0x78')],_0xe2bc('0x79'));if(_0x5128f5){_0x1caac0=path[_0xe2bc('0x77')](_0x1caac0,'offline-chat/');}var _0xef791a=path['join'](_0x1caac0,_0x1bb836[_0xe2bc('0x7a')]);return _0x590486[_0xe2bc('0x7b')](_0xef791a);}})[_0xe2bc('0x20')](handleError(_0x590486,null));};exports[_0xe2bc('0x7c')]=function(_0x430bb7,_0x830cc2){var _0x358ce5=null;var _0x455710=null;var _0x54884e=null;if(_0x430bb7[_0xe2bc('0x49')]['id']){delete _0x430bb7[_0xe2bc('0x49')]['id'];}if(_0x430bb7['body'][_0xe2bc('0x7d')]){_0x54884e=path['join'](config[_0xe2bc('0x78')],_0xe2bc('0x7e'),util[_0xe2bc('0x7f')](_0xe2bc('0x80'),Date[_0xe2bc('0x81')]()));_0x430bb7['body'][_0xe2bc('0x82')]=_0x54884e;}return db['ChatInteraction'][_0xe2bc('0x48')]({'where':{'id':_0x430bb7[_0xe2bc('0x3e')]['id']},'include':[{'model':db['ChatMessage'],'as':_0xe2bc('0x83'),'include':[{'model':db[_0xe2bc('0x84')],'as':_0xe2bc('0x84')}]}]})[_0xe2bc('0x3c')](handleEntityNotFound(_0x830cc2,null))[_0xe2bc('0x3c')](saveUpdates(_0x430bb7[_0xe2bc('0x49')],null))[_0xe2bc('0x3c')](function(_0x30759b){if(_0x30759b){_0x358ce5=_0x30759b;return db['ChatWebsite'][_0xe2bc('0x48')]({'where':{'id':_0x358ce5[_0xe2bc('0x85')]}});}})[_0xe2bc('0x3c')](function(_0x4297f4){if(_0x4297f4){_0x455710=_0x4297f4;return db['CmContact'][_0xe2bc('0x48')]({'where':{'id':_0x358ce5[_0xe2bc('0x86')]}});}})[_0xe2bc('0x3c')](function(_0x2af813){if(_0x2af813){if(_0x54884e){var _0x406a17=null;for(var _0x5dee7a=0x1;_0x5dee7a<_0x358ce5[_0xe2bc('0x83')]['length'];++_0x5dee7a){_0x406a17=_0x358ce5[_0xe2bc('0x83')][_0x5dee7a];var _0x45706a=_0x406a17['UserId']?util[_0xe2bc('0x7f')](_0xe2bc('0x87'),_0x455710[_0xe2bc('0x88')],_0x406a17[_0xe2bc('0x6a')]):_0xe2bc('0x89');var _0x247e92=_0x430bb7[_0xe2bc('0x49')]['customer']||util[_0xe2bc('0x7f')](_0xe2bc('0x87'),_0xe2bc('0x8a'),_0x406a17[_0xe2bc('0x86')]);switch(_0x455710[_0xe2bc('0x8b')]){case _0xe2bc('0x8c'):_0x45706a=_0x406a17[_0xe2bc('0x6a')]?util['format'](_0xe2bc('0x87'),_0x455710['agentAlias'],_0x406a17[_0xe2bc('0x6a')]):_0xe2bc('0x89');break;case _0xe2bc('0x8d'):_0x45706a=_0x406a17['UserId']?_0x406a17[_0xe2bc('0x84')][_0xe2bc('0x8e')]||_0x406a17[_0xe2bc('0x84')][_0xe2bc('0x53')]:'System';break;case _0xe2bc('0x8f'):_0x45706a=_0x406a17[_0xe2bc('0x6a')]?_0x406a17[_0xe2bc('0x84')][_0xe2bc('0x53')]:_0xe2bc('0x89');break;default:_0x45706a=_0x406a17[_0xe2bc('0x6a')]?util[_0xe2bc('0x7f')](_0xe2bc('0x87'),_0x455710[_0xe2bc('0x88')],_0x406a17[_0xe2bc('0x6a')]):'System';}var _0x559e7f=util[_0xe2bc('0x7f')](_0xe2bc('0x90'),moment(_0x406a17[_0xe2bc('0x91')])[_0xe2bc('0x7f')](_0xe2bc('0x92')),_0x406a17[_0xe2bc('0x93')]==='in'?_0x247e92:_0x45706a,_0x406a17[_0xe2bc('0x49')]);if(!_0x406a17[_0xe2bc('0x94')]){fs[_0xe2bc('0x95')](_0x54884e,_0x559e7f);}}return db[_0xe2bc('0x96')][_0xe2bc('0x73')]({'where':{'service':!![]},'include':[{'model':db[_0xe2bc('0x97')],'as':_0xe2bc('0x98'),'raw':!![],'include':[{'model':db[_0xe2bc('0x99')],'as':_0xe2bc('0x99'),'raw':!![]}]}]});}}})[_0xe2bc('0x3c')](function(_0x14d522){if(!_0x14d522||!_0x14d522['Smtp']||!_0x430bb7['body'])return _0x358ce5;var _0x52da54=_0x14d522[_0xe2bc('0x9a')]();return respondWithRpcPromise(_0xe2bc('0x9b'),_0xe2bc('0x9c'),{'account':_0x52da54,'message':{'from':util[_0xe2bc('0x7f')](_0xe2bc('0x9d'),_0x14d522['name'],_0x14d522[_0xe2bc('0x54')]||_0x14d522[_0xe2bc('0x98')][_0xe2bc('0x3b')]),'to':_0x430bb7[_0xe2bc('0x49')][_0xe2bc('0x7d')],'subject':_0xe2bc('0x9e'),'text':util['format'](_0xe2bc('0x9f'),_0x430bb7['body']['mailTranscript']),'attachments':[{'path':_0x54884e}]}})[_0xe2bc('0x3c')](function(){return _0x358ce5;})[_0xe2bc('0x20')](function(_0xe2813b){logger[_0xe2bc('0x1b')](_0xe2813b);});})[_0xe2bc('0x3c')](respondWithStatusCode(_0x830cc2,0xc8))[_0xe2bc('0x20')](handleError(_0x830cc2,null));};exports['addMessage']=function(_0x14212e,_0x5bec7e){return db[_0xe2bc('0x61')]['find']({'where':{'id':_0x14212e[_0xe2bc('0x3e')]['id']}})['then'](handleEntityNotFound(_0x5bec7e,null))[_0xe2bc('0x3c')](function(_0x359ea8){if(_0x359ea8){return _0x359ea8[_0xe2bc('0xa0')](_0x14212e[_0xe2bc('0x49')][_0xe2bc('0xa1')],_[_0xe2bc('0xa2')](_0x14212e[_0xe2bc('0x49')],[_0xe2bc('0xa1'),'id'])||{});}})[_0xe2bc('0x3c')](respondWithResult(_0x5bec7e,null))[_0xe2bc('0x20')](handleError(_0x5bec7e,null));};exports[_0xe2bc('0xa3')]=function(_0x3ff014,_0x54f420){var _0x4b4f21={'raw':![],'where':{}};var _0x310ceb={};var _0x1f4124={'count':0x0,'rows':[]};return db[_0xe2bc('0x34')][_0xe2bc('0x73')]({'where':{'id':_0x3ff014[_0xe2bc('0x3e')]['id']}})[_0xe2bc('0x3c')](handleEntityNotFound(_0x54f420,null))[_0xe2bc('0x3c')](function(_0x5e5aa3){if(_0x5e5aa3){_0x310ceb[_0xe2bc('0x3f')]=_['keys'](db[_0xe2bc('0x61')][_0xe2bc('0x35')]);_0x310ceb['query']=_[_0xe2bc('0x40')](_0x3ff014['query']);_0x310ceb[_0xe2bc('0xa4')]=_['intersection'](_0x310ceb[_0xe2bc('0x3f')],_0x310ceb[_0xe2bc('0x41')]);_0x4b4f21[_0xe2bc('0x43')]=_[_0xe2bc('0x42')](_0x310ceb[_0xe2bc('0x3f')],qs[_0xe2bc('0xa5')](_0x3ff014[_0xe2bc('0x41')]['fields']));_0x4b4f21[_0xe2bc('0x43')]=_0x4b4f21['attributes'][_0xe2bc('0x44')]?_0x4b4f21['attributes']:_0x310ceb[_0xe2bc('0x3f')];if(!_0x3ff014[_0xe2bc('0x41')][_0xe2bc('0xa6')](_0xe2bc('0xa7'))){_0x4b4f21['limit']=qs[_0xe2bc('0x27')](_0x3ff014['query']['limit']);_0x4b4f21[_0xe2bc('0x26')]=qs['offset'](_0x3ff014[_0xe2bc('0x41')][_0xe2bc('0x26')]);}_0x4b4f21[_0xe2bc('0xa8')]=qs['sort'](_0x3ff014[_0xe2bc('0x41')]['sort']);_0x4b4f21[_0xe2bc('0xa9')]=qs['filters'](_['pick'](_0x3ff014[_0xe2bc('0x41')],_0x310ceb[_0xe2bc('0xa4')]));_0x4b4f21[_0xe2bc('0xa9')][_0xe2bc('0xaa')]=_0x5e5aa3['id'];if(_0x3ff014[_0xe2bc('0x41')][_0xe2bc('0xab')]){_0x4b4f21['where']=_[_0xe2bc('0x2f')](_0x4b4f21[_0xe2bc('0xa9')],{'$or':_['map'](_0x4b4f21[_0xe2bc('0x43')],function(_0x5a99e8){var _0x26a537={};_0x26a537[_0x5a99e8]={'$like':'%'+_0x3ff014[_0xe2bc('0x41')]['filter']+'%'};return _0x26a537;})});}if(_0x3ff014['query'][_0xe2bc('0xac')]){var _0x475f68=_0x3ff014[_0xe2bc('0x41')]['$gte'][_0xe2bc('0xad')](',');var _0x7d5d16={};_0x7d5d16[_0x475f68[0x0]]={'$gte':moment(_0x475f68[0x1])['format']('YYYY-MM-DD\x20HH:mm:ss')};_0x4b4f21[_0xe2bc('0xa9')]=_[_0xe2bc('0x2f')](_0x4b4f21[_0xe2bc('0xa9')],_0x7d5d16);}_0x4b4f21=_['merge']({},_0x4b4f21,_0x3ff014[_0xe2bc('0x47')]);return db[_0xe2bc('0x61')][_0xe2bc('0x28')]({'where':_0x4b4f21[_0xe2bc('0xa9')]})[_0xe2bc('0x3c')](function(_0xd078c0){_0x1f4124[_0xe2bc('0x28')]=_0xd078c0;if(_0x3ff014[_0xe2bc('0x41')][_0xe2bc('0x45')]){_0x4b4f21['include']=[{'all':!![]}];}return db[_0xe2bc('0x61')]['findAll'](_0x4b4f21);})[_0xe2bc('0x3c')](function(_0x595502){_0x1f4124['rows']=_0x595502;return _0x1f4124;});}})['then'](respondWithFilteredResult(_0x54f420,_0x4b4f21))[_0xe2bc('0x20')](handleError(_0x54f420,null));};exports[_0xe2bc('0xae')]=function(_0x12613d,_0x3e3e27){var _0xb19741={'where':{}},_0x3f5227={},_0x539a06={'count':0x0,'rows':[]};return db[_0xe2bc('0x34')][_0xe2bc('0x73')]({'where':{'id':_0x12613d['params']['id']}})[_0xe2bc('0x3c')](handleEntityNotFound(_0x3e3e27,null))[_0xe2bc('0x3c')](function(_0x4348d5){if(_0x4348d5){_0x3f5227[_0xe2bc('0x3f')]=_[_0xe2bc('0x40')](db[_0xe2bc('0x61')][_0xe2bc('0x35')]);_0x3f5227[_0xe2bc('0x41')]=_[_0xe2bc('0x40')](_0x12613d['query']);_0x3f5227[_0xe2bc('0xa4')]=_[_0xe2bc('0x42')](_0x3f5227[_0xe2bc('0x3f')],_0x3f5227['query']);_0xb19741[_0xe2bc('0x43')]=_[_0xe2bc('0x42')](_0x3f5227['model'],qs['fields'](_0x12613d[_0xe2bc('0x41')][_0xe2bc('0xa5')]));_0xb19741[_0xe2bc('0x43')]=_0xb19741['attributes'][_0xe2bc('0x44')]?_0xb19741[_0xe2bc('0x43')]:_0x3f5227[_0xe2bc('0x3f')];if(!_0x12613d['query'][_0xe2bc('0xa6')](_0xe2bc('0xa7'))){_0xb19741[_0xe2bc('0x27')]=qs[_0xe2bc('0x27')](_0x12613d['query'][_0xe2bc('0x27')]);_0xb19741[_0xe2bc('0x26')]=qs[_0xe2bc('0x26')](_0x12613d[_0xe2bc('0x41')][_0xe2bc('0x26')]);}_0xb19741[_0xe2bc('0xa8')]=qs[_0xe2bc('0xaf')](_0x12613d[_0xe2bc('0x41')]['sort']);_0xb19741['where']=qs[_0xe2bc('0xa4')](_[_0xe2bc('0xb0')](_0x12613d['query'],_0x3f5227[_0xe2bc('0xa4')]));_0xb19741[_0xe2bc('0xa9')][_0xe2bc('0xaa')]=_0x4348d5['id'];if(_0x12613d[_0xe2bc('0x41')][_0xe2bc('0xab')]){_0xb19741[_0xe2bc('0xa9')]=_[_0xe2bc('0x2f')](_0xb19741['where'],{'$or':_[_0xe2bc('0x33')](_0xb19741[_0xe2bc('0x43')],function(_0x267914){var _0x3d8b97={};_0x3d8b97[_0x267914]={'$like':'%'+_0x12613d[_0xe2bc('0x41')][_0xe2bc('0xab')]+'%'};return _0x3d8b97;})});}_0xb19741[_0xe2bc('0xa9')]['secret']=![];if(_0x12613d[_0xe2bc('0x41')]['id']){_0xb19741['where']['id']={'$gt':_0x12613d['query']['id']};}_0xb19741=_[_0xe2bc('0x2f')]({},_0xb19741,_0x12613d['options']);return db[_0xe2bc('0x61')][_0xe2bc('0x28')]({'where':_0xb19741[_0xe2bc('0xa9')]})[_0xe2bc('0x3c')](function(_0x8f8019){_0x539a06[_0xe2bc('0x28')]=_0x8f8019;_0xb19741['include']=[];if(_0x12613d[_0xe2bc('0x41')][_0xe2bc('0xb1')]){_0xb19741[_0xe2bc('0x46')][_0xe2bc('0xb2')]({'model':db[_0xe2bc('0x84')],'as':_0xe2bc('0x84'),'attributes':['id','fullname',_0xe2bc('0x8e')]});}if(_0x12613d[_0xe2bc('0x41')]['includeAll']){_0xb19741[_0xe2bc('0x46')]=[{'all':!![]}];}return db[_0xe2bc('0x61')][_0xe2bc('0x39')](_0xb19741);})[_0xe2bc('0x3c')](function(_0x247d4d){_0x539a06['rows']=_0x247d4d;return _0x539a06;});}})[_0xe2bc('0x3c')](respondWithFilteredResult(_0x3e3e27,_0xb19741))[_0xe2bc('0x20')](handleError(_0x3e3e27,null));};exports[_0xe2bc('0xb3')]=function(_0x335d2c,_0x62b1a1){return db[_0xe2bc('0x34')][_0xe2bc('0x48')]({'where':{'id':_0x335d2c[_0xe2bc('0x3e')]['id']}})[_0xe2bc('0x3c')](handleEntityNotFound(_0x62b1a1,null))[_0xe2bc('0x3c')](function(_0x3938cb){if(_0x3938cb){return _0x3938cb['setTags'](_0x335d2c['body'][_0xe2bc('0xa1')],_['omit'](_0x335d2c['body'],[_0xe2bc('0xa1'),'id'])||{})[_0xe2bc('0xb4')](function(){return db[_0xe2bc('0xb5')][_0xe2bc('0x39')]({'attributes':['id',_0xe2bc('0x2c'),'color'],'where':{'id':_0x335d2c[_0xe2bc('0x49')][_0xe2bc('0xa1')]}});})[_0xe2bc('0x3c')](function(_0x643eae){socket[_0xe2bc('0xb6')](_0xe2bc('0xb7'),{'id':Number(_0x335d2c[_0xe2bc('0x3e')]['id']),'tags':_0x643eae||[]});return{'id':Number(_0x335d2c[_0xe2bc('0x3e')]['id']),'tags':_0x643eae||[]};});}})[_0xe2bc('0x3c')](respondWithResult(_0x62b1a1,null))[_0xe2bc('0x20')](handleError(_0x62b1a1,null));};exports[_0xe2bc('0xb8')]=function(_0x252014,_0x53a9b0){return db[_0xe2bc('0x34')][_0xe2bc('0x48')]({'where':{'id':_0x252014[_0xe2bc('0x3e')]['id']}})[_0xe2bc('0x3c')](handleEntityNotFound(_0x53a9b0,null))[_0xe2bc('0x3c')](function(_0x56a199){if(_0x56a199){return _0x56a199['removeTags'](_0x252014['query'][_0xe2bc('0xa1')]);}})[_0xe2bc('0x3c')](respondWithStatusCode(_0x53a9b0,null))['catch'](handleError(_0x53a9b0,null));};exports[_0xe2bc('0x7b')]=function(_0x398d6e,_0x47b045){var _0x3ffa5f=moment()[_0xe2bc('0xb9')]()['toString']();var _0x397254=path['join'](config[_0xe2bc('0x78')],_0xe2bc('0xba'),_0xe2bc('0xbb'),'tmp');var _0x534ef7=path[_0xe2bc('0x77')](config[_0xe2bc('0x78')],_0xe2bc('0xba'),_0xe2bc('0xbb'),_0xe2bc('0xbc'));var _0x56c585=path['join'](_0x397254,_0x3ffa5f);var _0x5092fe=util[_0xe2bc('0x7f')](_0xe2bc('0xbd'),_0x398d6e['params']['id'],_0x3ffa5f);var _0x17b045=path[_0xe2bc('0x77')](_0x397254,_0x5092fe);var _0x4564b6=[];_0x4564b6[_0xe2bc('0xb2')]({'model':db[_0xe2bc('0x84')],'as':_0xe2bc('0x84'),'attributes':['id','fullname'],'raw':!![]});_0x4564b6[_0xe2bc('0xb2')]({'model':db[_0xe2bc('0xbe')],'as':_0xe2bc('0x66'),'attributes':['id',_0xe2bc('0xbf'),_0xe2bc('0xc0')],'raw':!![]});if(_0x398d6e['query']['attachments']){_0x4564b6['push']({'model':db['Attachment'],'as':'Attachment','raw':!![]});}var _0xe708d1=[{'model':db['ChatMessage'],'as':_0xe2bc('0x83'),'attributes':['id','body',_0xe2bc('0x91'),_0xe2bc('0x93'),'secret',_0xe2bc('0xc1')],'include':_0x4564b6}];_0xe708d1[_0xe2bc('0xb2')]({'model':db[_0xe2bc('0x4d')],'as':_0xe2bc('0xc2'),'attributes':['id',_0xe2bc('0x2c')]});_0xe708d1['push']({'model':db[_0xe2bc('0x84')],'as':'Owner','attributes':['id',_0xe2bc('0x53')]});return db[_0xe2bc('0x34')][_0xe2bc('0x48')]({'where':{'id':_0x398d6e[_0xe2bc('0x3e')]['id']},'include':_0xe708d1})[_0xe2bc('0x3c')](handleEntityNotFound(_0x47b045,null))['then'](function(_0x408b1d){if(_0x408b1d){var _0x474872=_0x408b1d[_0xe2bc('0xc3')]({'plain':!![]});fs[_0xe2bc('0xc4')](_0x56c585);var _0x3593bd={'channel':_0xe2bc('0xc5'),'account':_0x474872[_0xe2bc('0xc2')]['name'],'agent':_0x474872['Owner']?_0x474872['Owner'][_0xe2bc('0x53')]:_0xe2bc('0xc6'),'createdAt':moment(_0x474872['createdAt'])['format']('YYYY-MM-DD\x20HH:mm:ss')['toString'](),'closedAt':_0x474872[_0xe2bc('0x74')]?moment(_0x474872['closedAt'])[_0xe2bc('0x7f')]('YYYY-MM-DD\x20HH:mm:ss')[_0xe2bc('0xc7')]():'','disposition':_0x474872['disposition'],'chatInfo':{'browser':_0x474872['browserName'],'os':_0x474872[_0xe2bc('0xc8')],'referer':_0x474872[_0xe2bc('0xc9')],'customerIp':_0x474872['customerIp'],'customerPort':_0x474872[_0xe2bc('0xca')]?_0x474872[_0xe2bc('0xca')]:_0xe2bc('0xc6')},'messages':_(_0x474872[_0xe2bc('0x83')])[_0xe2bc('0xcb')]()['filter']({'secret':![]})[_0xe2bc('0x33')](function(_0x1f16f1){if(_0x1f16f1[_0xe2bc('0x72')]){var _0x39347a=path[_0xe2bc('0x77')](_0x534ef7,_0x1f16f1[_0xe2bc('0x72')][_0xe2bc('0x7a')]);if(fs['existsSync'](_0x39347a)){fs[_0xe2bc('0xcc')](_0x39347a)[_0xe2bc('0xcd')](fs[_0xe2bc('0xce')](path['join'](_0x56c585,_0x1f16f1[_0xe2bc('0x72')][_0xe2bc('0x7a')])));}}return{'date':moment(_0x1f16f1['createdAt'])[_0xe2bc('0x7f')](_0xe2bc('0xcf'))['toString'](),'sender':_0x1f16f1[_0xe2bc('0x93')]===_0xe2bc('0x60')?_0x1f16f1[_0xe2bc('0x84')]?_0x1f16f1[_0xe2bc('0x84')][_0xe2bc('0x53')]:_0xe2bc('0x89'):_0x1f16f1[_0xe2bc('0x66')][_0xe2bc('0xbf')]+(_0x1f16f1[_0xe2bc('0x66')][_0xe2bc('0xc0')]?'\x20'+_0x1f16f1[_0xe2bc('0x66')][_0xe2bc('0xc0')]:''),'body':_0x1f16f1['Attachment']?_0x1f16f1[_0xe2bc('0x72')][_0xe2bc('0x7a')]:_0x1f16f1['body'],'direction':_0x1f16f1[_0xe2bc('0x93')]===_0xe2bc('0x60')?'A':'C','secret':_0x1f16f1[_0xe2bc('0x94')],'read':_0x1f16f1[_0xe2bc('0xc1')],'attachment':_0x1f16f1[_0xe2bc('0x72')]};})[_0xe2bc('0xd0')]()};return ejs[_0xe2bc('0xd1')](path[_0xe2bc('0x77')](config[_0xe2bc('0x78')],_0xe2bc('0xba'),_0xe2bc('0xd2'),_0xe2bc('0xd3')),{'interaction':_0x3593bd})['then'](function(_0x5a172b){var _0x4b13b4=path[_0xe2bc('0x77')](_0x56c585,_0xe2bc('0xd4')+_0x474872['id']+'-'+_0x3ffa5f+_0xe2bc('0xd5'));var _0x3ad3f8={'path':_0x4b13b4,'channel':_0xe2bc('0xc5'),'interactionId':_0x474872['id']};return pdf[_0xe2bc('0xd6')](_0x5a172b,_0x3ad3f8);})['then'](function(){return new Promise(function(_0x5e92ba,_0x18f2e1){zipdir(_0x56c585,{'saveTo':_0x17b045},function(_0x51dc7f,_0x3786bc){if(_0x51dc7f)return _0x18f2e1(_0x51dc7f);return _0x5e92ba(_0x3786bc);});})[_0xe2bc('0x3c')](function(){return new BPromise(function(_0x1e21d3,_0x12738f){rimraf(_0x56c585,function(_0xec131a){if(_0xec131a)_0x12738f(_0xec131a);return _0x1e21d3();});});})[_0xe2bc('0x3c')](function(){return _0x47b045[_0xe2bc('0x7b')](_0x17b045,_0x5092fe,function(_0x52c02e){if(_0x52c02e){logger[_0xe2bc('0x1b')](_0xe2bc('0xd7'),_0x52c02e);}else{fs[_0xe2bc('0xd8')](_0x17b045);}});});});}else{return _0x47b045[_0xe2bc('0x22')](0xc8);}})[_0xe2bc('0x20')](handleError(_0x47b045,null));};