af1c7949179e590fe3b0bb6e7af9d60fe2c05633
[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 _0xca2a=['ChatInteractionId','filter','$gte','YYYY-MM-DD\x20HH:mm:ss','options','rows','getMyMessages','nolimit','pick','push','addTags','setTags','Tag','chatInteractionTags:save','removeTags','unix','toString','files','tmp','server','attachments','transcript-%d-%s.zip','firstName','lastName','direction','read','Chat','Account','Owner','N.A.','browserName','referer','customerIp','customerPort','tail','existsSync','createReadStream','value','renderFile','views','downloadInteraction.ejs','transcript-','createPdfFromHTML','err','rimraf','zip-dir','moment','mustache','util','path','ejs','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','../../components/export/pdf','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','register','jayson/promise','client','http','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','error','message','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','destroy','stack','name','render','merge','agent','interaction','account','index','map','fieldName','type','key','getOptions','findAll','chat','query','user','show','model','keys','ChatInteraction','rawAttributes','filters','attributes','length','includeAll','include','create','body','find','params','describe','createVidaooSession','findOne','ChatWebsiteId','vidaooEscalation','vidaooTopic','vidaooNote','vidaooMetadata','contact','POST','https://api-vidaoo.xcally.com/api/v1/meetings','vidaooApiKey','email','isNull','Sequelize','ValidationError','Error\x20in\x20Vidaoo\x20configuration','join_url','out','updateAttributes','customUpdate','Contact','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','UserId','Interaction\x20already\x20assigned','closed','disposition','AbandonInteraction','abandon','attachmentUpload','file','originalname','basename','filename','mimetype','Attachment','Unauthorized','attachId','join','root','server/files/attachments/','offline-chat/','download','mailTranscript','server/files/chat/upload/','format','transcript-%s.txt','now','pathTranscript','ChatMessage','User','ChatWebsite','CmContact','Messages','%s%d','agentAlias','customer','Visitor','agentIdentifier','System','agent_alias','alias','fullname','agent_fullname','createdAt','secret','appendFileSync','CloudProvider','SendMail','sendMail','\x22%s\x22\x20<%s>','Smtp','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','ids','intersection','fields','hasOwnProperty','sort','where'];(function(_0x479650,_0x2bee99){var _0x26b288=function(_0x1ba49f){while(--_0x1ba49f){_0x479650['push'](_0x479650['shift']());}};_0x26b288(++_0x2bee99);}(_0xca2a,0x1be));var _0xaca2=function(_0x5024d7,_0x784883){_0x5024d7=_0x5024d7-0x0;var _0x19c8af=_0xca2a[_0x5024d7];return _0x19c8af;};'use strict';var rimraf=require(_0xaca2('0x0'));var zipdir=require(_0xaca2('0x1'));var rp=require('request-promise');var moment=require(_0xaca2('0x2'));var BPromise=require('bluebird');var Mustache=require(_0xaca2('0x3'));var util=require(_0xaca2('0x4'));var path=require(_0xaca2('0x5'));var ejs=require(_0xaca2('0x6'));var fs=require('fs');var _=require(_0xaca2('0x7'));var Redis=require(_0xaca2('0x8'));var interaction=require(_0xaca2('0x9'));var qs=require(_0xaca2('0xa'));var pdf=require(_0xaca2('0xb'));var logger=require(_0xaca2('0xc'))(_0xaca2('0xd'));var config=require(_0xaca2('0xe'));var db=require(_0xaca2('0xf'))['db'];config[_0xaca2('0x10')]=_[_0xaca2('0x11')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xaca2('0x12'))(new Redis(config[_0xaca2('0x10')]));require('./chatInteraction.socket')[_0xaca2('0x13')](socket);var jayson=require(_0xaca2('0x14'));var client=jayson[_0xaca2('0x15')][_0xaca2('0x16')]({'port':0x232b});var client9004=jayson[_0xaca2('0x15')][_0xaca2('0x16')]({'port':0x232c});function respondWithRpcPromise(_0x237267,_0x36bcec,_0x3eeb15,_0x2e81ff){return new BPromise(function(_0x3e111e,_0x18d053){var _0x451c8b=_0x2e81ff||client;return _0x451c8b['request'](_0x237267,_0x3eeb15)[_0xaca2('0x17')](function(_0xda1a85){logger[_0xaca2('0x18')](_0xaca2('0x19'),_0x36bcec,_0xaca2('0x1a'));logger[_0xaca2('0x1b')](_0xaca2('0x1c'),_0x36bcec,_0xaca2('0x1a'),JSON['stringify'](_0xda1a85));if(_0xda1a85['error']){if(_0xda1a85[_0xaca2('0x1d')]['code']===0x1f4){logger['error']('ChatInteraction,\x20%s,\x20%s',_0x36bcec,_0xda1a85[_0xaca2('0x1d')][_0xaca2('0x1e')]);return _0x18d053(_0xda1a85['error'][_0xaca2('0x1e')]);}logger[_0xaca2('0x1d')](_0xaca2('0x19'),_0x36bcec,_0xda1a85[_0xaca2('0x1d')][_0xaca2('0x1e')]);return _0x3e111e(_0xda1a85[_0xaca2('0x1d')][_0xaca2('0x1e')]);}else{logger[_0xaca2('0x18')](_0xaca2('0x19'),_0x36bcec,_0xaca2('0x1a'));_0x3e111e(_0xda1a85[_0xaca2('0x1f')][_0xaca2('0x1e')]);}})[_0xaca2('0x20')](function(_0x3b6afe){logger[_0xaca2('0x1d')](_0xaca2('0x19'),_0x36bcec,_0x3b6afe);_0x18d053(_0x3b6afe);});});}function respondWithStatusCode(_0x2906c8,_0x4dce56){_0x4dce56=_0x4dce56||0xcc;return function(_0x2261b0){if(_0x2261b0){return _0x2906c8[_0xaca2('0x21')](_0x4dce56);}return _0x2906c8[_0xaca2('0x22')](_0x4dce56)[_0xaca2('0x23')]();};}function respondWithResult(_0x1779b4,_0x307092){_0x307092=_0x307092||0xc8;return function(_0x12890c){if(_0x12890c){return _0x1779b4[_0xaca2('0x22')](_0x307092)[_0xaca2('0x24')](_0x12890c);}};}function respondWithFilteredResult(_0x395dd8,_0x283472){return function(_0x28ee8a){if(_0x28ee8a){var _0x15c75a=typeof _0x283472[_0xaca2('0x25')]===_0xaca2('0x26')&&typeof _0x283472[_0xaca2('0x27')]===_0xaca2('0x26');var _0x376e94=_0x28ee8a['count'];var _0x6a7b87=_0x15c75a?0x0:_0x283472['offset'];var _0xb4657f=_0x15c75a?_0x28ee8a[_0xaca2('0x28')]:_0x283472[_0xaca2('0x25')]+_0x283472[_0xaca2('0x27')];var _0x3fdc07;if(_0xb4657f>=_0x376e94){_0xb4657f=_0x376e94;_0x3fdc07=0xc8;}else{_0x3fdc07=0xce;}_0x395dd8[_0xaca2('0x22')](_0x3fdc07);return _0x395dd8[_0xaca2('0x29')](_0xaca2('0x2a'),_0x6a7b87+'-'+_0xb4657f+'/'+_0x376e94)['json'](_0x28ee8a);}return null;};}function saveUpdates(_0x3a36a1){return function(_0xc6cd42){if(_0xc6cd42){return _0xc6cd42['update'](_0x3a36a1)['then'](function(_0x1b74f2){return _0x1b74f2;});}return null;};}function removeEntity(_0x7f30ad){return function(_0x5dd503){if(_0x5dd503){return _0x5dd503[_0xaca2('0x2b')]()[_0xaca2('0x17')](function(){_0x7f30ad[_0xaca2('0x22')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4a0441){return function(_0x42be0a){if(!_0x42be0a){_0x4a0441[_0xaca2('0x21')](0x194);}return _0x42be0a;};}function handleError(_0x271373,_0x1edc59){_0x1edc59=_0x1edc59||0x1f4;return function(_0x5d2dc0){logger[_0xaca2('0x1d')](_0x5d2dc0[_0xaca2('0x2c')]);if(_0x5d2dc0['name']){delete _0x5d2dc0[_0xaca2('0x2d')];}_0x271373[_0xaca2('0x22')](_0x1edc59)['send'](_0x5d2dc0);};}function getMustacheRender(_0x4357a2,_0x1adbd5){return Mustache[_0xaca2('0x2e')](_0x4357a2,_[_0xaca2('0x2f')](_0x1adbd5['body'],{'contact':_0x1adbd5['contact'],'message':_0x1adbd5[_0xaca2('0x1e')],'agent':_0x1adbd5[_0xaca2('0x30')],'interaction':_0x1adbd5[_0xaca2('0x31')],'account':_0x1adbd5[_0xaca2('0x32')]}))||'';}exports[_0xaca2('0x33')]=function(_0x377090,_0x18b242){var _0x8b31af={};var _0x27c88d=_[_0xaca2('0x34')](db['ChatInteraction']['rawAttributes'],function(_0x188551){return{'name':_0x188551[_0xaca2('0x35')],'type':_0x188551[_0xaca2('0x36')][_0xaca2('0x37')]};});_0x8b31af=qs[_0xaca2('0x38')](_0x27c88d,_0x377090);return interaction[_0xaca2('0x39')](_0xaca2('0x3a'),_0x377090[_0xaca2('0x3b')],_0x377090[_0xaca2('0x3c')],_0x8b31af,_0x27c88d)['then'](respondWithFilteredResult(_0x18b242,_0x8b31af))[_0xaca2('0x20')](handleError(_0x18b242,null));};exports[_0xaca2('0x3d')]=function(_0x5def1d,_0x263cc6){var _0x3b0bcf={'raw':![],'where':{'id':_0x5def1d['params']['id']}},_0x2d3300={};_0x2d3300[_0xaca2('0x3e')]=_[_0xaca2('0x3f')](db[_0xaca2('0x40')][_0xaca2('0x41')]);_0x2d3300[_0xaca2('0x3b')]=_[_0xaca2('0x3f')](_0x5def1d['query']);_0x2d3300[_0xaca2('0x42')]=_['intersection'](_0x2d3300[_0xaca2('0x3e')],_0x2d3300['query']);_0x3b0bcf[_0xaca2('0x43')]=_['intersection'](_0x2d3300[_0xaca2('0x3e')],qs['fields'](_0x5def1d['query']['fields']));_0x3b0bcf['attributes']=_0x3b0bcf[_0xaca2('0x43')][_0xaca2('0x44')]?_0x3b0bcf['attributes']:_0x2d3300[_0xaca2('0x3e')];if(_0x5def1d[_0xaca2('0x3b')][_0xaca2('0x45')]){_0x3b0bcf[_0xaca2('0x46')]=[{'all':!![]}];}_0x3b0bcf=_['merge']({},_0x3b0bcf,_0x5def1d['options']);return db[_0xaca2('0x40')]['find'](_0x3b0bcf)[_0xaca2('0x17')](handleEntityNotFound(_0x263cc6,null))['then'](respondWithResult(_0x263cc6,null))['catch'](handleError(_0x263cc6,null));};exports['create']=function(_0x5cf2a8,_0x5010d1){return db[_0xaca2('0x40')][_0xaca2('0x47')](_0x5cf2a8[_0xaca2('0x48')],{})[_0xaca2('0x17')](respondWithResult(_0x5010d1,0xc9))[_0xaca2('0x20')](handleError(_0x5010d1,null));};exports['update']=function(_0x348124,_0x111e9e){if(_0x348124[_0xaca2('0x48')]['id']){delete _0x348124['body']['id'];}return db[_0xaca2('0x40')][_0xaca2('0x49')]({'where':{'id':_0x348124[_0xaca2('0x4a')]['id']}})[_0xaca2('0x17')](handleEntityNotFound(_0x111e9e,null))['then'](saveUpdates(_0x348124[_0xaca2('0x48')],null))[_0xaca2('0x17')](respondWithResult(_0x111e9e,null))[_0xaca2('0x20')](handleError(_0x111e9e,null));};exports['destroy']=function(_0x523582,_0x34c851){return db[_0xaca2('0x40')][_0xaca2('0x49')]({'where':{'id':_0x523582[_0xaca2('0x4a')]['id']}})[_0xaca2('0x17')](handleEntityNotFound(_0x34c851,null))['then'](removeEntity(_0x34c851,null))['catch'](handleError(_0x34c851,null));};exports['describe']=function(_0x594559,_0x2c9cbb){return db[_0xaca2('0x40')][_0xaca2('0x4b')]()[_0xaca2('0x17')](respondWithResult(_0x2c9cbb,null))[_0xaca2('0x20')](handleError(_0x2c9cbb,null));};exports[_0xaca2('0x4c')]=function(_0x2e150a,_0x1f3727){var _0x5b72be=_0x2e150a[_0xaca2('0x4a')]['id'];var _0x48c2fa;var _0x21a52f;var _0x4bba50;return db[_0xaca2('0x40')][_0xaca2('0x4d')]({'where':{'id':_0x5b72be}})[_0xaca2('0x17')](function(_0x56f1c0){_0x48c2fa=_0x56f1c0;return db['ChatWebsite'][_0xaca2('0x4d')]({'where':{'id':_0x56f1c0[_0xaca2('0x4e')]},'attributes':['id','vidaooApiKey',_0xaca2('0x4f'),_0xaca2('0x50'),_0xaca2('0x51'),_0xaca2('0x52')],'raw':!![]});})[_0xaca2('0x17')](function(_0xa1926e){if(_0xa1926e&&_0xa1926e['vidaooApiKey']&&_0xa1926e[_0xaca2('0x4f')]){_0x21a52f=_0xa1926e;var _0x4b273={'interaction':{'id':_0x5b72be},'agent':{'id':_0x2e150a['user']['id'],'name':_0x2e150a[_0xaca2('0x3c')][_0xaca2('0x2d')],'fullname':_0x2e150a[_0xaca2('0x3c')]['fullname'],'email':_0x2e150a[_0xaca2('0x3c')]['email']},'contact':_0x2e150a[_0xaca2('0x48')][_0xaca2('0x53')],'account':_0x2e150a[_0xaca2('0x48')]['account']};var _0xd96649={'rejectUnauthorized':![],'method':_0xaca2('0x54'),'url':_0xaca2('0x55'),'headers':{'X-APIKEY':_0xa1926e[_0xaca2('0x56')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x2e150a[_0xaca2('0x3c')][_0xaca2('0x57')]],'buttons':null,'topic':_0x21a52f[_0xaca2('0x50')],'note':_[_0xaca2('0x58')](_0x21a52f[_0xaca2('0x51')])?null:getMustacheRender(_0x21a52f[_0xaca2('0x51')],_0x4b273),'metadata':null},'redirect':'follow','json':!![]};try{if(!_[_0xaca2('0x58')](_0x21a52f['vidaooMetadata'])){var _0x12b595=getMustacheRender(_0x21a52f['vidaooMetadata'],_0x4b273);var _0xcb0ba1=JSON['parse'](_0x12b595);_0xd96649[_0xaca2('0x48')]['metadata']=_0xcb0ba1;}}catch(_0xe9b994){throw new db[(_0xaca2('0x59'))][(_0xaca2('0x5a'))]('Error\x20in\x20conversion\x20vidaooMetadata');}return rp(_0xd96649);}else{throw new db[(_0xaca2('0x59'))]['ValidationError'](_0xaca2('0x5b'));}})[_0xaca2('0x17')](function(_0x1762d7){_0x4bba50=_0x1762d7;if(_0x4bba50['id']){var _0xb1e07a={'body':_0x4bba50[_0xaca2('0x5c')],'ChatWebsiteId':_0x21a52f['id'],'ChatInteractionId':_0x48c2fa['id'],'direction':_0xaca2('0x5d'),'UserId':_0x2e150a[_0xaca2('0x3c')]['id']};return db['ChatMessage'][_0xaca2('0x47')](_0xb1e07a,{});}else{throw new db[(_0xaca2('0x59'))][(_0xaca2('0x5a'))]('Unable\x20to\x20create\x20Vidaoo\x20session');}})[_0xaca2('0x17')](function(){return _0x48c2fa[_0xaca2('0x5e')]({'vidaooSessionId':_0x4bba50['id']});})['then'](respondWithResult(_0x1f3727,null))[_0xaca2('0x20')](handleError(_0x1f3727,null));};exports[_0xaca2('0x5f')]=function(_0x2f6802,_0x2d3de8){if(_0x2f6802['body']['id']){delete _0x2f6802[_0xaca2('0x48')]['id'];}return db[_0xaca2('0x40')][_0xaca2('0x49')]({'where':{'id':_0x2f6802[_0xaca2('0x4a')]['id']},'include':[{'model':db['CmContact'],'as':_0xaca2('0x60')}]})[_0xaca2('0x17')](handleEntityNotFound(_0x2d3de8,null))[_0xaca2('0x17')](saveUpdates(_0x2f6802['body'],null))[_0xaca2('0x17')](respondWithResult(_0x2d3de8,null))[_0xaca2('0x20')](handleError(_0x2d3de8,null));};exports['abandon']=function(_0xb6033f,_0x39556f){if(_0xb6033f['body']['id']){delete _0xb6033f['body']['id'];}return db[_0xaca2('0x40')][_0xaca2('0x49')]({'where':{'id':_0xb6033f[_0xaca2('0x4a')]['id']}})[_0xaca2('0x17')](function(_0x1f8897){if(!_0x1f8897){logger['error'](_0xaca2('0x61'),'abandon',0x194,_0xaca2('0x62'));_0x39556f['sendStatus'](0x194);}else{if(_0x1f8897[_0xaca2('0x63')]){throw new db[(_0xaca2('0x59'))][(_0xaca2('0x5a'))](_0xaca2('0x64'));}}return _0x1f8897;})[_0xaca2('0x17')](function(_0xdde30){if(_0xdde30){return _0xdde30['update']({'closed':_0xb6033f['body'][_0xaca2('0x65')],'disposition':_0xb6033f[_0xaca2('0x48')][_0xaca2('0x66')]})[_0xaca2('0x17')](function(_0x3bd92f){return _0x3bd92f;});}})[_0xaca2('0x17')](function(){return respondWithRpcPromise(_0xaca2('0x67'),_0xaca2('0x68'),_0xb6033f['body'],client9004);})['then'](respondWithResult(_0x39556f,null))[_0xaca2('0x20')](handleError(_0x39556f,null));};exports[_0xaca2('0x69')]=function(_0x15c89b,_0x1f8a68){_0x15c89b[_0xaca2('0x48')][_0xaca2('0x2d')]=_0x15c89b[_0xaca2('0x6a')][_0xaca2('0x6b')];_0x15c89b[_0xaca2('0x48')][_0xaca2('0x6c')]=_0x15c89b['file'][_0xaca2('0x6d')];_0x15c89b[_0xaca2('0x48')]['type']=_0x15c89b[_0xaca2('0x6a')][_0xaca2('0x6e')];return db[_0xaca2('0x6f')]['create'](_0x15c89b[_0xaca2('0x48')])[_0xaca2('0x17')](respondWithResult(_0x1f8a68,0xc9))[_0xaca2('0x20')](handleError(_0x1f8a68,null));};exports['attachmentDownload']=function(_0x5e3e00,_0x469a31){return db['ChatInteraction']['findOne']({'where':{'id':_0x5e3e00[_0xaca2('0x4a')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x469a31,null))[_0xaca2('0x17')](function(_0x5b5354){if(_0x5b5354){if(_0x5b5354[_0xaca2('0x65')]){return _0x469a31['status'](0x193)['json']({'status':0x193,'message':_0xaca2('0x70')});}return db[_0xaca2('0x6f')][_0xaca2('0x4d')]({'where':{'id':_0x5e3e00[_0xaca2('0x3b')][_0xaca2('0x71')]},'raw':!![]})[_0xaca2('0x17')](handleEntityNotFound(_0x469a31,null));}})[_0xaca2('0x17')](function(_0x49ee60){if(_0x49ee60){var _0x52c7b0=_0x49ee60['ChatOfflineMessageId']!==null;var _0x512c3e=path[_0xaca2('0x72')](config[_0xaca2('0x73')],_0xaca2('0x74'));if(_0x52c7b0){_0x512c3e=path[_0xaca2('0x72')](_0x512c3e,_0xaca2('0x75'));}var _0x490c07=path['join'](_0x512c3e,_0x49ee60[_0xaca2('0x6c')]);return _0x469a31[_0xaca2('0x76')](_0x490c07);}})[_0xaca2('0x20')](handleError(_0x469a31,null));};exports['close']=function(_0x1ba197,_0x3def79){var _0x3ffd5c=null;var _0x471bec=null;var _0x25161e=null;if(_0x1ba197['body']['id']){delete _0x1ba197[_0xaca2('0x48')]['id'];}if(_0x1ba197[_0xaca2('0x48')][_0xaca2('0x77')]){_0x25161e=path[_0xaca2('0x72')](config[_0xaca2('0x73')],_0xaca2('0x78'),util[_0xaca2('0x79')](_0xaca2('0x7a'),Date[_0xaca2('0x7b')]()));_0x1ba197[_0xaca2('0x48')][_0xaca2('0x7c')]=_0x25161e;}return db[_0xaca2('0x40')]['find']({'where':{'id':_0x1ba197[_0xaca2('0x4a')]['id']},'include':[{'model':db[_0xaca2('0x7d')],'as':'Messages','include':[{'model':db[_0xaca2('0x7e')],'as':_0xaca2('0x7e')}]}]})['then'](handleEntityNotFound(_0x3def79,null))[_0xaca2('0x17')](saveUpdates(_0x1ba197[_0xaca2('0x48')],null))[_0xaca2('0x17')](function(_0x31e05a){if(_0x31e05a){_0x3ffd5c=_0x31e05a;return db[_0xaca2('0x7f')]['find']({'where':{'id':_0x3ffd5c[_0xaca2('0x4e')]}});}})[_0xaca2('0x17')](function(_0x54a963){if(_0x54a963){_0x471bec=_0x54a963;return db[_0xaca2('0x80')][_0xaca2('0x49')]({'where':{'id':_0x3ffd5c['ContactId']}});}})[_0xaca2('0x17')](function(_0x7459be){if(_0x7459be){if(_0x25161e){var _0x742027=null;for(var _0xfebcf0=0x1;_0xfebcf0<_0x3ffd5c[_0xaca2('0x81')][_0xaca2('0x44')];++_0xfebcf0){_0x742027=_0x3ffd5c[_0xaca2('0x81')][_0xfebcf0];var _0x40d032=_0x742027['UserId']?util[_0xaca2('0x79')](_0xaca2('0x82'),_0x471bec[_0xaca2('0x83')],_0x742027[_0xaca2('0x63')]):'System';var _0x4edabe=_0x1ba197['body'][_0xaca2('0x84')]||util[_0xaca2('0x79')](_0xaca2('0x82'),_0xaca2('0x85'),_0x742027['ContactId']);switch(_0x471bec[_0xaca2('0x86')]){case'website_alias':_0x40d032=_0x742027[_0xaca2('0x63')]?util['format'](_0xaca2('0x82'),_0x471bec[_0xaca2('0x83')],_0x742027[_0xaca2('0x63')]):_0xaca2('0x87');break;case _0xaca2('0x88'):_0x40d032=_0x742027['UserId']?_0x742027[_0xaca2('0x7e')][_0xaca2('0x89')]||_0x742027[_0xaca2('0x7e')][_0xaca2('0x8a')]:_0xaca2('0x87');break;case _0xaca2('0x8b'):_0x40d032=_0x742027[_0xaca2('0x63')]?_0x742027['User'][_0xaca2('0x8a')]:'System';break;default:_0x40d032=_0x742027[_0xaca2('0x63')]?util['format'](_0xaca2('0x82'),_0x471bec[_0xaca2('0x83')],_0x742027[_0xaca2('0x63')]):'System';}var _0xed6f3a=util[_0xaca2('0x79')]('[%s]\x20%s:\x20%s\x0a',moment(_0x742027[_0xaca2('0x8c')])[_0xaca2('0x79')]('MM/DD/YYYY\x20HH:mm:ss'),_0x742027['direction']==='in'?_0x4edabe:_0x40d032,_0x742027[_0xaca2('0x48')]);if(!_0x742027[_0xaca2('0x8d')]){fs[_0xaca2('0x8e')](_0x25161e,_0xed6f3a);}}return db['MailAccount'][_0xaca2('0x4d')]({'where':{'service':!![]},'include':[{'model':db['MailServerOut'],'as':'Smtp','raw':!![],'include':[{'model':db[_0xaca2('0x8f')],'as':_0xaca2('0x8f'),'raw':!![]}]}]});}}})[_0xaca2('0x17')](function(_0x16c2bf){if(!_0x16c2bf||!_0x16c2bf['Smtp']||!_0x1ba197[_0xaca2('0x48')])return _0x3ffd5c;var _0x512ef4=_0x16c2bf['getSmtpOptions']();return respondWithRpcPromise(_0xaca2('0x90'),_0xaca2('0x91'),{'account':_0x512ef4,'message':{'from':util[_0xaca2('0x79')](_0xaca2('0x92'),_0x16c2bf['name'],_0x16c2bf[_0xaca2('0x57')]||_0x16c2bf[_0xaca2('0x93')][_0xaca2('0x3c')]),'to':_0x1ba197[_0xaca2('0x48')][_0xaca2('0x77')],'subject':_0xaca2('0x94'),'text':util['format'](_0xaca2('0x95'),_0x1ba197[_0xaca2('0x48')][_0xaca2('0x77')]),'attachments':[{'path':_0x25161e}]}})['then'](function(){return _0x3ffd5c;})['catch'](function(_0x520f4c){logger['error'](_0x520f4c);});})[_0xaca2('0x17')](respondWithStatusCode(_0x3def79,0xc8))[_0xaca2('0x20')](handleError(_0x3def79,null));};exports[_0xaca2('0x96')]=function(_0x313f21,_0x5a480b){return db['ChatMessage']['find']({'where':{'id':_0x313f21[_0xaca2('0x4a')]['id']}})[_0xaca2('0x17')](handleEntityNotFound(_0x5a480b,null))['then'](function(_0x1cb233){if(_0x1cb233){return _0x1cb233[_0xaca2('0x96')](_0x313f21[_0xaca2('0x48')][_0xaca2('0x97')],_['omit'](_0x313f21[_0xaca2('0x48')],['ids','id'])||{});}})['then'](respondWithResult(_0x5a480b,null))[_0xaca2('0x20')](handleError(_0x5a480b,null));};exports['getMessages']=function(_0x4cfed2,_0x3e1834){var _0x38c562={'raw':![],'where':{}};var _0x96da20={};var _0x429711={'count':0x0,'rows':[]};return db[_0xaca2('0x40')]['findOne']({'where':{'id':_0x4cfed2[_0xaca2('0x4a')]['id']}})[_0xaca2('0x17')](handleEntityNotFound(_0x3e1834,null))['then'](function(_0x46803a){if(_0x46803a){_0x96da20[_0xaca2('0x3e')]=_[_0xaca2('0x3f')](db[_0xaca2('0x7d')][_0xaca2('0x41')]);_0x96da20[_0xaca2('0x3b')]=_[_0xaca2('0x3f')](_0x4cfed2[_0xaca2('0x3b')]);_0x96da20[_0xaca2('0x42')]=_['intersection'](_0x96da20['model'],_0x96da20[_0xaca2('0x3b')]);_0x38c562['attributes']=_[_0xaca2('0x98')](_0x96da20[_0xaca2('0x3e')],qs[_0xaca2('0x99')](_0x4cfed2['query'][_0xaca2('0x99')]));_0x38c562[_0xaca2('0x43')]=_0x38c562[_0xaca2('0x43')][_0xaca2('0x44')]?_0x38c562[_0xaca2('0x43')]:_0x96da20[_0xaca2('0x3e')];if(!_0x4cfed2['query'][_0xaca2('0x9a')]('nolimit')){_0x38c562[_0xaca2('0x27')]=qs[_0xaca2('0x27')](_0x4cfed2[_0xaca2('0x3b')][_0xaca2('0x27')]);_0x38c562[_0xaca2('0x25')]=qs[_0xaca2('0x25')](_0x4cfed2[_0xaca2('0x3b')][_0xaca2('0x25')]);}_0x38c562['order']=qs[_0xaca2('0x9b')](_0x4cfed2[_0xaca2('0x3b')][_0xaca2('0x9b')]);_0x38c562['where']=qs[_0xaca2('0x42')](_['pick'](_0x4cfed2[_0xaca2('0x3b')],_0x96da20[_0xaca2('0x42')]));_0x38c562[_0xaca2('0x9c')][_0xaca2('0x9d')]=_0x46803a['id'];if(_0x4cfed2[_0xaca2('0x3b')][_0xaca2('0x9e')]){_0x38c562[_0xaca2('0x9c')]=_[_0xaca2('0x2f')](_0x38c562[_0xaca2('0x9c')],{'$or':_[_0xaca2('0x34')](_0x38c562[_0xaca2('0x43')],function(_0x249a28){var _0x374a80={};_0x374a80[_0x249a28]={'$like':'%'+_0x4cfed2['query'][_0xaca2('0x9e')]+'%'};return _0x374a80;})});}if(_0x4cfed2[_0xaca2('0x3b')][_0xaca2('0x9f')]){var _0x4f0ff8=_0x4cfed2['query'][_0xaca2('0x9f')]['split'](',');var _0x461a51={};_0x461a51[_0x4f0ff8[0x0]]={'$gte':moment(_0x4f0ff8[0x1])['format'](_0xaca2('0xa0'))};_0x38c562[_0xaca2('0x9c')]=_[_0xaca2('0x2f')](_0x38c562[_0xaca2('0x9c')],_0x461a51);}_0x38c562=_['merge']({},_0x38c562,_0x4cfed2[_0xaca2('0xa1')]);return db[_0xaca2('0x7d')][_0xaca2('0x28')]({'where':_0x38c562[_0xaca2('0x9c')]})['then'](function(_0x516a20){_0x429711[_0xaca2('0x28')]=_0x516a20;if(_0x4cfed2[_0xaca2('0x3b')][_0xaca2('0x45')]){_0x38c562[_0xaca2('0x46')]=[{'all':!![]}];}return db[_0xaca2('0x7d')][_0xaca2('0x39')](_0x38c562);})[_0xaca2('0x17')](function(_0x404c81){_0x429711[_0xaca2('0xa2')]=_0x404c81;return _0x429711;});}})[_0xaca2('0x17')](respondWithFilteredResult(_0x3e1834,_0x38c562))['catch'](handleError(_0x3e1834,null));};exports[_0xaca2('0xa3')]=function(_0x1b2d77,_0x29cd63){var _0x5909e0={'where':{}},_0x796965={},_0x15d2b8={'count':0x0,'rows':[]};return db[_0xaca2('0x40')]['findOne']({'where':{'id':_0x1b2d77[_0xaca2('0x4a')]['id']}})[_0xaca2('0x17')](handleEntityNotFound(_0x29cd63,null))['then'](function(_0x2ec2ba){if(_0x2ec2ba){_0x796965[_0xaca2('0x3e')]=_[_0xaca2('0x3f')](db[_0xaca2('0x7d')]['rawAttributes']);_0x796965['query']=_[_0xaca2('0x3f')](_0x1b2d77[_0xaca2('0x3b')]);_0x796965[_0xaca2('0x42')]=_[_0xaca2('0x98')](_0x796965['model'],_0x796965[_0xaca2('0x3b')]);_0x5909e0[_0xaca2('0x43')]=_[_0xaca2('0x98')](_0x796965[_0xaca2('0x3e')],qs[_0xaca2('0x99')](_0x1b2d77[_0xaca2('0x3b')][_0xaca2('0x99')]));_0x5909e0[_0xaca2('0x43')]=_0x5909e0[_0xaca2('0x43')][_0xaca2('0x44')]?_0x5909e0[_0xaca2('0x43')]:_0x796965['model'];if(!_0x1b2d77[_0xaca2('0x3b')][_0xaca2('0x9a')](_0xaca2('0xa4'))){_0x5909e0['limit']=qs['limit'](_0x1b2d77[_0xaca2('0x3b')]['limit']);_0x5909e0[_0xaca2('0x25')]=qs['offset'](_0x1b2d77[_0xaca2('0x3b')]['offset']);}_0x5909e0['order']=qs[_0xaca2('0x9b')](_0x1b2d77['query']['sort']);_0x5909e0[_0xaca2('0x9c')]=qs[_0xaca2('0x42')](_[_0xaca2('0xa5')](_0x1b2d77[_0xaca2('0x3b')],_0x796965[_0xaca2('0x42')]));_0x5909e0[_0xaca2('0x9c')][_0xaca2('0x9d')]=_0x2ec2ba['id'];if(_0x1b2d77[_0xaca2('0x3b')]['filter']){_0x5909e0[_0xaca2('0x9c')]=_['merge'](_0x5909e0[_0xaca2('0x9c')],{'$or':_[_0xaca2('0x34')](_0x5909e0[_0xaca2('0x43')],function(_0xb38041){var _0x5e11d9={};_0x5e11d9[_0xb38041]={'$like':'%'+_0x1b2d77[_0xaca2('0x3b')]['filter']+'%'};return _0x5e11d9;})});}_0x5909e0[_0xaca2('0x9c')]['secret']=![];if(_0x1b2d77[_0xaca2('0x3b')]['id']){_0x5909e0[_0xaca2('0x9c')]['id']={'$gt':_0x1b2d77[_0xaca2('0x3b')]['id']};}_0x5909e0=_[_0xaca2('0x2f')]({},_0x5909e0,_0x1b2d77[_0xaca2('0xa1')]);return db[_0xaca2('0x7d')][_0xaca2('0x28')]({'where':_0x5909e0['where']})['then'](function(_0x455b81){_0x15d2b8[_0xaca2('0x28')]=_0x455b81;_0x5909e0[_0xaca2('0x46')]=[];if(_0x1b2d77[_0xaca2('0x3b')]['includeAgent']){_0x5909e0[_0xaca2('0x46')][_0xaca2('0xa6')]({'model':db['User'],'as':'User','attributes':['id',_0xaca2('0x8a'),'alias']});}if(_0x1b2d77[_0xaca2('0x3b')][_0xaca2('0x45')]){_0x5909e0['include']=[{'all':!![]}];}return db[_0xaca2('0x7d')]['findAll'](_0x5909e0);})[_0xaca2('0x17')](function(_0x5cdb94){_0x15d2b8['rows']=_0x5cdb94;return _0x15d2b8;});}})[_0xaca2('0x17')](respondWithFilteredResult(_0x29cd63,_0x5909e0))[_0xaca2('0x20')](handleError(_0x29cd63,null));};exports[_0xaca2('0xa7')]=function(_0x52baab,_0x546cd0){return db[_0xaca2('0x40')][_0xaca2('0x49')]({'where':{'id':_0x52baab[_0xaca2('0x4a')]['id']}})[_0xaca2('0x17')](handleEntityNotFound(_0x546cd0,null))[_0xaca2('0x17')](function(_0x4e564e){if(_0x4e564e){return _0x4e564e[_0xaca2('0xa8')](_0x52baab[_0xaca2('0x48')][_0xaca2('0x97')],_['omit'](_0x52baab[_0xaca2('0x48')],[_0xaca2('0x97'),'id'])||{})['spread'](function(){return db[_0xaca2('0xa9')][_0xaca2('0x39')]({'attributes':['id',_0xaca2('0x2d'),'color'],'where':{'id':_0x52baab['body'][_0xaca2('0x97')]}});})[_0xaca2('0x17')](function(_0x341445){socket['emit'](_0xaca2('0xaa'),{'id':Number(_0x52baab[_0xaca2('0x4a')]['id']),'tags':_0x341445||[]});return{'id':Number(_0x52baab['params']['id']),'tags':_0x341445||[]};});}})['then'](respondWithResult(_0x546cd0,null))['catch'](handleError(_0x546cd0,null));};exports[_0xaca2('0xab')]=function(_0x1b0166,_0x3d9ad0){return db[_0xaca2('0x40')][_0xaca2('0x49')]({'where':{'id':_0x1b0166[_0xaca2('0x4a')]['id']}})['then'](handleEntityNotFound(_0x3d9ad0,null))['then'](function(_0x5dcdf0){if(_0x5dcdf0){return _0x5dcdf0[_0xaca2('0xab')](_0x1b0166[_0xaca2('0x3b')][_0xaca2('0x97')]);}})[_0xaca2('0x17')](respondWithStatusCode(_0x3d9ad0,null))['catch'](handleError(_0x3d9ad0,null));};exports[_0xaca2('0x76')]=function(_0x2c3cef,_0x565050){var _0x368a1c=moment()[_0xaca2('0xac')]()[_0xaca2('0xad')]();var _0x58fd7e=path[_0xaca2('0x72')](config[_0xaca2('0x73')],'server',_0xaca2('0xae'),_0xaca2('0xaf'));var _0xfcd60a=path[_0xaca2('0x72')](config[_0xaca2('0x73')],_0xaca2('0xb0'),_0xaca2('0xae'),_0xaca2('0xb1'));var _0x4465ea=path['join'](_0x58fd7e,_0x368a1c);var _0x223f6f=util[_0xaca2('0x79')](_0xaca2('0xb2'),_0x2c3cef['params']['id'],_0x368a1c);var _0x126859=path[_0xaca2('0x72')](_0x58fd7e,_0x223f6f);var _0x580db3=[];_0x580db3[_0xaca2('0xa6')]({'model':db['User'],'as':_0xaca2('0x7e'),'attributes':['id','fullname'],'raw':!![]});_0x580db3[_0xaca2('0xa6')]({'model':db[_0xaca2('0x80')],'as':_0xaca2('0x60'),'attributes':['id',_0xaca2('0xb3'),_0xaca2('0xb4')],'raw':!![]});if(_0x2c3cef[_0xaca2('0x3b')][_0xaca2('0xb1')]){_0x580db3['push']({'model':db[_0xaca2('0x6f')],'as':_0xaca2('0x6f'),'raw':!![]});}var _0x5677eb=[{'model':db[_0xaca2('0x7d')],'as':_0xaca2('0x81'),'attributes':['id','body','createdAt',_0xaca2('0xb5'),_0xaca2('0x8d'),_0xaca2('0xb6')],'include':_0x580db3}];_0x5677eb[_0xaca2('0xa6')]({'model':db[_0xaca2('0x7f')],'as':'Account','attributes':['id',_0xaca2('0x2d')]});_0x5677eb[_0xaca2('0xa6')]({'model':db[_0xaca2('0x7e')],'as':'Owner','attributes':['id',_0xaca2('0x8a')]});return db['ChatInteraction']['find']({'where':{'id':_0x2c3cef[_0xaca2('0x4a')]['id']},'include':_0x5677eb})[_0xaca2('0x17')](handleEntityNotFound(_0x565050,null))[_0xaca2('0x17')](function(_0x368840){if(_0x368840){var _0x32b9bc=_0x368840['get']({'plain':!![]});fs['mkdirSync'](_0x4465ea);var _0x5331fa={'channel':_0xaca2('0xb7'),'account':_0x32b9bc[_0xaca2('0xb8')][_0xaca2('0x2d')],'agent':_0x32b9bc['Owner']?_0x32b9bc[_0xaca2('0xb9')][_0xaca2('0x8a')]:_0xaca2('0xba'),'createdAt':moment(_0x32b9bc['createdAt'])[_0xaca2('0x79')](_0xaca2('0xa0'))[_0xaca2('0xad')](),'closedAt':_0x32b9bc[_0xaca2('0x65')]?moment(_0x32b9bc['closedAt'])[_0xaca2('0x79')](_0xaca2('0xa0'))['toString']():'','disposition':_0x32b9bc[_0xaca2('0x66')],'chatInfo':{'browser':_0x32b9bc[_0xaca2('0xbb')],'os':_0x32b9bc['osName'],'referer':_0x32b9bc[_0xaca2('0xbc')],'customerIp':_0x32b9bc[_0xaca2('0xbd')],'customerPort':_0x32b9bc['customerPort']?_0x32b9bc[_0xaca2('0xbe')]:'N.A.'},'messages':_(_0x32b9bc[_0xaca2('0x81')])[_0xaca2('0xbf')]()['filter']({'secret':![]})[_0xaca2('0x34')](function(_0x5b3946){if(_0x5b3946[_0xaca2('0x6f')]){var _0x4012a9=path[_0xaca2('0x72')](_0xfcd60a,_0x5b3946[_0xaca2('0x6f')][_0xaca2('0x6c')]);if(fs[_0xaca2('0xc0')](_0x4012a9)){fs[_0xaca2('0xc1')](_0x4012a9)['pipe'](fs['createWriteStream'](path[_0xaca2('0x72')](_0x4465ea,_0x5b3946['Attachment']['basename'])));}}return{'date':moment(_0x5b3946[_0xaca2('0x8c')])[_0xaca2('0x79')](_0xaca2('0xa0'))[_0xaca2('0xad')](),'sender':_0x5b3946[_0xaca2('0xb5')]==='out'?_0x5b3946[_0xaca2('0x7e')]?_0x5b3946[_0xaca2('0x7e')][_0xaca2('0x8a')]:_0xaca2('0x87'):_0x5b3946['Contact'][_0xaca2('0xb3')]+(_0x5b3946[_0xaca2('0x60')][_0xaca2('0xb4')]?'\x20'+_0x5b3946[_0xaca2('0x60')][_0xaca2('0xb4')]:''),'body':_0x5b3946[_0xaca2('0x6f')]?_0x5b3946['Attachment'][_0xaca2('0x6c')]:_0x5b3946['body'],'direction':_0x5b3946['direction']===_0xaca2('0x5d')?'A':'C','secret':_0x5b3946[_0xaca2('0x8d')],'read':_0x5b3946[_0xaca2('0xb6')],'attachment':_0x5b3946[_0xaca2('0x6f')]};})[_0xaca2('0xc2')]()};return ejs[_0xaca2('0xc3')](path['join'](config[_0xaca2('0x73')],_0xaca2('0xb0'),_0xaca2('0xc4'),_0xaca2('0xc5')),{'interaction':_0x5331fa})[_0xaca2('0x17')](function(_0x22a060){var _0x1c23be=path[_0xaca2('0x72')](_0x4465ea,_0xaca2('0xc6')+_0x32b9bc['id']+'-'+_0x368a1c+'.pdf');var _0x1a6065={'path':_0x1c23be,'channel':'Chat','interactionId':_0x32b9bc['id']};return pdf[_0xaca2('0xc7')](_0x22a060,_0x1a6065);})['then'](function(){return new Promise(function(_0x267b56,_0x2c07cb){zipdir(_0x4465ea,{'saveTo':_0x126859},function(_0xd05007,_0x10d805){if(_0xd05007)return _0x2c07cb(_0xd05007);return _0x267b56(_0x10d805);});})[_0xaca2('0x17')](function(){return new BPromise(function(_0x5460bd,_0x2e6235){rimraf(_0x4465ea,function(_0x59d418){if(_0x59d418)_0x2e6235(_0x59d418);return _0x5460bd();});});})['then'](function(){return _0x565050['download'](_0x126859,_0x223f6f,function(_0x3d692e){if(_0x3d692e){logger[_0xaca2('0x1d')](_0xaca2('0xc8'),_0x3d692e);}else{fs['unlinkSync'](_0x126859);}});});});}else{return _0x565050['sendStatus'](0xc8);}})['catch'](handleError(_0x565050,null));};