Built motion from commit bab6f49e.|2.6.17
[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 _0x5509=['vidaooNote','email','POST','https://api-vidaoo.xcally.com/api/v1/meetings','isNull','follow','vidaooMetadata','parse','metadata','Sequelize','ValidationError','Error\x20in\x20Vidaoo\x20configuration','join_url','out','ChatMessage','updateAttributes','customUpdate','CmContact','Contact','abandon','entity\x20not\x20found','UserId','Interaction\x20already\x20assigned','disposition','attachmentUpload','file','originalname','basename','filename','Attachment','attachmentDownload','closed','Unauthorized','attachId','ChatOfflineMessageId','join','root','offline-chat/','close','mailTranscript','server/files/chat/upload/','format','transcript-%s.txt','now','pathTranscript','Messages','User','ChatWebsite','ContactId','agentAlias','System','%s%d','website_alias','agent_alias','alias','fullname','agent_fullname','[%s]\x20%s:\x20%s\x0a','createdAt','MM/DD/YYYY\x20HH:mm:ss','appendFileSync','MailAccount','MailServerOut','Smtp','CloudProvider','SendMail','\x22%s\x22\x20<%s>','Mail\x20Transcript','addMessage','ids','omit','getMessages','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','YYYY-MM-DD\x20HH:mm:ss','options','count','include','findAll','rows','getMyMessages','ChatInteractionId','secret','push','setTags','spread','Tag','color','chatInteractionTags:save','removeTags','download','unix','toString','server','files','attachments','transcript-%d-%s.zip','lastName','direction','Account','Owner','get','mkdirSync','closedAt','browserName','osName','customerPort','tail','existsSync','createReadStream','createWriteStream','read','value','renderFile','views','transcript-','.pdf','Chat','createPdfFromHTML','err','rimraf','zip-dir','bluebird','mustache','util','path','ejs','lodash','ioredis','../../components/interaction/service','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','./chatInteraction.socket','register','jayson/promise','client','http','then','info','debug','stringify','error','code','ChatInteraction,\x20%s,\x20%s','message','request\x20sent','result','sendStatus','status','end','json','limit','undefined','offset','Content-Range','update','destroy','name','send','render','merge','body','contact','agent','account','map','ChatInteraction','rawAttributes','fieldName','type','key','getOptions','chat','query','user','catch','model','keys','filters','intersection','attributes','length','includeAll','find','create','params','describe','findOne','ChatWebsiteId','vidaooApiKey','vidaooEscalation','vidaooTopic'];(function(_0x33b4c7,_0x41ef39){var _0x1ba866=function(_0x1de1de){while(--_0x1de1de){_0x33b4c7['push'](_0x33b4c7['shift']());}};_0x1ba866(++_0x41ef39);}(_0x5509,0x7e));var _0x9550=function(_0x305c99,_0x3976ab){_0x305c99=_0x305c99-0x0;var _0xfee075=_0x5509[_0x305c99];return _0xfee075;};'use strict';var rimraf=require(_0x9550('0x0'));var zipdir=require(_0x9550('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x9550('0x2'));var Mustache=require(_0x9550('0x3'));var util=require(_0x9550('0x4'));var path=require(_0x9550('0x5'));var ejs=require(_0x9550('0x6'));var fs=require('fs');var _=require(_0x9550('0x7'));var Redis=require(_0x9550('0x8'));var interaction=require(_0x9550('0x9'));var qs=require('../../components/parsers/qs');var pdf=require('../../components/export/pdf');var logger=require(_0x9550('0xa'))(_0x9550('0xb'));var config=require(_0x9550('0xc'));var db=require(_0x9550('0xd'))['db'];config[_0x9550('0xe')]=_[_0x9550('0xf')](config[_0x9550('0xe')],{'host':_0x9550('0x10'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x9550('0xe')]));require(_0x9550('0x11'))[_0x9550('0x12')](socket);var jayson=require(_0x9550('0x13'));var client=jayson[_0x9550('0x14')][_0x9550('0x15')]({'port':0x232b});var client9004=jayson[_0x9550('0x14')][_0x9550('0x15')]({'port':0x232c});function respondWithRpcPromise(_0x4d5834,_0x54cdae,_0x30f374,_0x34effa){return new BPromise(function(_0x51c494,_0x475a46){var _0x309727=_0x34effa||client;return _0x309727['request'](_0x4d5834,_0x30f374)[_0x9550('0x16')](function(_0x43c8ac){logger[_0x9550('0x17')]('ChatInteraction,\x20%s,\x20%s',_0x54cdae,'request\x20sent');logger[_0x9550('0x18')]('ChatInteraction,\x20%s,\x20%s,\x20%s',_0x54cdae,'request\x20sent',JSON[_0x9550('0x19')](_0x43c8ac));if(_0x43c8ac[_0x9550('0x1a')]){if(_0x43c8ac['error'][_0x9550('0x1b')]===0x1f4){logger[_0x9550('0x1a')](_0x9550('0x1c'),_0x54cdae,_0x43c8ac['error'][_0x9550('0x1d')]);return _0x475a46(_0x43c8ac[_0x9550('0x1a')][_0x9550('0x1d')]);}logger['error'](_0x9550('0x1c'),_0x54cdae,_0x43c8ac[_0x9550('0x1a')]['message']);return _0x51c494(_0x43c8ac[_0x9550('0x1a')][_0x9550('0x1d')]);}else{logger[_0x9550('0x17')](_0x9550('0x1c'),_0x54cdae,_0x9550('0x1e'));_0x51c494(_0x43c8ac[_0x9550('0x1f')][_0x9550('0x1d')]);}})['catch'](function(_0x425eb0){logger['error'](_0x9550('0x1c'),_0x54cdae,_0x425eb0);_0x475a46(_0x425eb0);});});}function respondWithStatusCode(_0xdc598b,_0xd0fd51){_0xd0fd51=_0xd0fd51||0xcc;return function(_0x5c610c){if(_0x5c610c){return _0xdc598b[_0x9550('0x20')](_0xd0fd51);}return _0xdc598b[_0x9550('0x21')](_0xd0fd51)[_0x9550('0x22')]();};}function respondWithResult(_0x24ae17,_0x4dc3db){_0x4dc3db=_0x4dc3db||0xc8;return function(_0x277667){if(_0x277667){return _0x24ae17[_0x9550('0x21')](_0x4dc3db)[_0x9550('0x23')](_0x277667);}};}function respondWithFilteredResult(_0x5631eb,_0x52ec2a){return function(_0x45fada){if(_0x45fada){var _0x4345a4=typeof _0x52ec2a['offset']==='undefined'&&typeof _0x52ec2a[_0x9550('0x24')]===_0x9550('0x25');var _0x15435c=_0x45fada['count'];var _0x31091e=_0x4345a4?0x0:_0x52ec2a['offset'];var _0x42a144=_0x4345a4?_0x45fada['count']:_0x52ec2a[_0x9550('0x26')]+_0x52ec2a['limit'];var _0x1766cf;if(_0x42a144>=_0x15435c){_0x42a144=_0x15435c;_0x1766cf=0xc8;}else{_0x1766cf=0xce;}_0x5631eb[_0x9550('0x21')](_0x1766cf);return _0x5631eb['set'](_0x9550('0x27'),_0x31091e+'-'+_0x42a144+'/'+_0x15435c)[_0x9550('0x23')](_0x45fada);}return null;};}function saveUpdates(_0x1886d1){return function(_0x18138e){if(_0x18138e){return _0x18138e[_0x9550('0x28')](_0x1886d1)[_0x9550('0x16')](function(_0x412e28){return _0x412e28;});}return null;};}function removeEntity(_0x221e49){return function(_0x38de18){if(_0x38de18){return _0x38de18[_0x9550('0x29')]()[_0x9550('0x16')](function(){_0x221e49['status'](0xcc)[_0x9550('0x22')]();});}};}function handleEntityNotFound(_0x346fd4){return function(_0x1e7a86){if(!_0x1e7a86){_0x346fd4['sendStatus'](0x194);}return _0x1e7a86;};}function handleError(_0x46f379,_0x1b626e){_0x1b626e=_0x1b626e||0x1f4;return function(_0xf72c3e){logger[_0x9550('0x1a')](_0xf72c3e['stack']);if(_0xf72c3e[_0x9550('0x2a')]){delete _0xf72c3e[_0x9550('0x2a')];}_0x46f379[_0x9550('0x21')](_0x1b626e)[_0x9550('0x2b')](_0xf72c3e);};}function getMustacheRender(_0x4e3f91,_0x4174ab){return Mustache[_0x9550('0x2c')](_0x4e3f91,_[_0x9550('0x2d')](_0x4174ab[_0x9550('0x2e')],{'contact':_0x4174ab[_0x9550('0x2f')],'message':_0x4174ab[_0x9550('0x1d')],'agent':_0x4174ab[_0x9550('0x30')],'interaction':_0x4174ab['interaction'],'account':_0x4174ab[_0x9550('0x31')]}))||'';}exports['index']=function(_0x44dec1,_0x7ec6a0){var _0x40a28c={};var _0x24b258=_[_0x9550('0x32')](db[_0x9550('0x33')][_0x9550('0x34')],function(_0x1f6d70){return{'name':_0x1f6d70[_0x9550('0x35')],'type':_0x1f6d70[_0x9550('0x36')][_0x9550('0x37')]};});_0x40a28c=qs[_0x9550('0x38')](_0x24b258,_0x44dec1);return interaction['findAll'](_0x9550('0x39'),_0x44dec1[_0x9550('0x3a')],_0x44dec1[_0x9550('0x3b')],_0x40a28c,_0x24b258)[_0x9550('0x16')](respondWithFilteredResult(_0x7ec6a0,_0x40a28c))[_0x9550('0x3c')](handleError(_0x7ec6a0,null));};exports['show']=function(_0x5920a7,_0x4f567d){var _0x27b26d={'raw':![],'where':{'id':_0x5920a7['params']['id']}},_0x23b3ce={};_0x23b3ce[_0x9550('0x3d')]=_[_0x9550('0x3e')](db[_0x9550('0x33')][_0x9550('0x34')]);_0x23b3ce[_0x9550('0x3a')]=_[_0x9550('0x3e')](_0x5920a7[_0x9550('0x3a')]);_0x23b3ce[_0x9550('0x3f')]=_[_0x9550('0x40')](_0x23b3ce[_0x9550('0x3d')],_0x23b3ce[_0x9550('0x3a')]);_0x27b26d[_0x9550('0x41')]=_[_0x9550('0x40')](_0x23b3ce[_0x9550('0x3d')],qs['fields'](_0x5920a7[_0x9550('0x3a')]['fields']));_0x27b26d[_0x9550('0x41')]=_0x27b26d[_0x9550('0x41')][_0x9550('0x42')]?_0x27b26d[_0x9550('0x41')]:_0x23b3ce['model'];if(_0x5920a7[_0x9550('0x3a')][_0x9550('0x43')]){_0x27b26d['include']=[{'all':!![]}];}_0x27b26d=_[_0x9550('0x2d')]({},_0x27b26d,_0x5920a7['options']);return db[_0x9550('0x33')][_0x9550('0x44')](_0x27b26d)['then'](handleEntityNotFound(_0x4f567d,null))[_0x9550('0x16')](respondWithResult(_0x4f567d,null))['catch'](handleError(_0x4f567d,null));};exports['create']=function(_0x3daf65,_0x5001dc){return db['ChatInteraction'][_0x9550('0x45')](_0x3daf65[_0x9550('0x2e')],{})[_0x9550('0x16')](respondWithResult(_0x5001dc,0xc9))[_0x9550('0x3c')](handleError(_0x5001dc,null));};exports['update']=function(_0x4c2e64,_0x389a8f){if(_0x4c2e64[_0x9550('0x2e')]['id']){delete _0x4c2e64[_0x9550('0x2e')]['id'];}return db['ChatInteraction'][_0x9550('0x44')]({'where':{'id':_0x4c2e64[_0x9550('0x46')]['id']}})[_0x9550('0x16')](handleEntityNotFound(_0x389a8f,null))[_0x9550('0x16')](saveUpdates(_0x4c2e64[_0x9550('0x2e')],null))[_0x9550('0x16')](respondWithResult(_0x389a8f,null))[_0x9550('0x3c')](handleError(_0x389a8f,null));};exports['destroy']=function(_0x5b3cae,_0x150335){return db['ChatInteraction'][_0x9550('0x44')]({'where':{'id':_0x5b3cae['params']['id']}})[_0x9550('0x16')](handleEntityNotFound(_0x150335,null))[_0x9550('0x16')](removeEntity(_0x150335,null))[_0x9550('0x3c')](handleError(_0x150335,null));};exports[_0x9550('0x47')]=function(_0x2af2c6,_0x1cc453){return db[_0x9550('0x33')][_0x9550('0x47')]()[_0x9550('0x16')](respondWithResult(_0x1cc453,null))['catch'](handleError(_0x1cc453,null));};exports['createVidaooSession']=function(_0x3bf9dc,_0x1d471a){var _0x3eec0a=_0x3bf9dc[_0x9550('0x46')]['id'];var _0x35dea9;var _0xd59c0a;var _0x4d053b;return db['ChatInteraction'][_0x9550('0x48')]({'where':{'id':_0x3eec0a}})[_0x9550('0x16')](function(_0x14ccd5){_0x35dea9=_0x14ccd5;return db['ChatWebsite'][_0x9550('0x48')]({'where':{'id':_0x14ccd5[_0x9550('0x49')]},'attributes':['id',_0x9550('0x4a'),_0x9550('0x4b'),_0x9550('0x4c'),_0x9550('0x4d'),'vidaooMetadata'],'raw':!![]});})[_0x9550('0x16')](function(_0x3efdca){if(_0x3efdca&&_0x3efdca['vidaooApiKey']&&_0x3efdca[_0x9550('0x4b')]){_0xd59c0a=_0x3efdca;var _0x4b3597={'interaction':{'id':_0x3eec0a},'agent':{'id':_0x3bf9dc[_0x9550('0x3b')]['id'],'name':_0x3bf9dc['user'][_0x9550('0x2a')],'fullname':_0x3bf9dc[_0x9550('0x3b')]['fullname'],'email':_0x3bf9dc[_0x9550('0x3b')][_0x9550('0x4e')]},'contact':_0x3bf9dc[_0x9550('0x2e')]['contact'],'account':_0x3bf9dc[_0x9550('0x2e')][_0x9550('0x31')]};var _0x21bf8e={'rejectUnauthorized':![],'method':_0x9550('0x4f'),'url':_0x9550('0x50'),'headers':{'X-APIKEY':_0x3efdca[_0x9550('0x4a')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x3bf9dc[_0x9550('0x3b')][_0x9550('0x4e')]],'buttons':null,'topic':_0xd59c0a[_0x9550('0x4c')],'note':_[_0x9550('0x51')](_0xd59c0a['vidaooNote'])?null:getMustacheRender(_0xd59c0a[_0x9550('0x4d')],_0x4b3597),'metadata':null},'redirect':_0x9550('0x52'),'json':!![]};try{if(!_[_0x9550('0x51')](_0xd59c0a['vidaooMetadata'])){var _0x37652f=getMustacheRender(_0xd59c0a[_0x9550('0x53')],_0x4b3597);var _0x49dce5=JSON[_0x9550('0x54')](_0x37652f);_0x21bf8e[_0x9550('0x2e')][_0x9550('0x55')]=_0x49dce5;}}catch(_0x30e384){throw new db[(_0x9550('0x56'))]['ValidationError']('Error\x20in\x20conversion\x20vidaooMetadata');}return rp(_0x21bf8e);}else{throw new db[(_0x9550('0x56'))][(_0x9550('0x57'))](_0x9550('0x58'));}})['then'](function(_0x4d82c2){_0x4d053b=_0x4d82c2;if(_0x4d053b['id']){var _0x373285={'body':_0x4d053b[_0x9550('0x59')],'ChatWebsiteId':_0xd59c0a['id'],'ChatInteractionId':_0x35dea9['id'],'direction':_0x9550('0x5a'),'UserId':_0x3bf9dc[_0x9550('0x3b')]['id']};return db[_0x9550('0x5b')][_0x9550('0x45')](_0x373285,{});}else{throw new db['Sequelize']['ValidationError']('Unable\x20to\x20create\x20Vidaoo\x20session');}})[_0x9550('0x16')](function(){return _0x35dea9[_0x9550('0x5c')]({'vidaooSessionId':_0x4d053b['id']});})['then'](respondWithResult(_0x1d471a,null))['catch'](handleError(_0x1d471a,null));};exports[_0x9550('0x5d')]=function(_0x5f2a89,_0x186d5c){if(_0x5f2a89[_0x9550('0x2e')]['id']){delete _0x5f2a89[_0x9550('0x2e')]['id'];}return db[_0x9550('0x33')][_0x9550('0x44')]({'where':{'id':_0x5f2a89[_0x9550('0x46')]['id']},'include':[{'model':db[_0x9550('0x5e')],'as':_0x9550('0x5f')}]})[_0x9550('0x16')](handleEntityNotFound(_0x186d5c,null))[_0x9550('0x16')](saveUpdates(_0x5f2a89[_0x9550('0x2e')],null))['then'](respondWithResult(_0x186d5c,null))[_0x9550('0x3c')](handleError(_0x186d5c,null));};exports[_0x9550('0x60')]=function(_0x343207,_0x41b1c1){if(_0x343207[_0x9550('0x2e')]['id']){delete _0x343207[_0x9550('0x2e')]['id'];}return db['ChatInteraction']['find']({'where':{'id':_0x343207['params']['id']}})[_0x9550('0x16')](function(_0x3c25de){if(!_0x3c25de){logger[_0x9550('0x1a')]('abandonInteraction,\x20%s,\x20%s,\x20%s',_0x9550('0x60'),0x194,_0x9550('0x61'));_0x41b1c1[_0x9550('0x20')](0x194);}else{if(_0x3c25de[_0x9550('0x62')]){throw new db[(_0x9550('0x56'))][(_0x9550('0x57'))](_0x9550('0x63'));}}return _0x3c25de;})['then'](function(_0x2e643c){if(_0x2e643c){return _0x2e643c[_0x9550('0x28')]({'closed':_0x343207['body']['closed'],'disposition':_0x343207[_0x9550('0x2e')][_0x9550('0x64')]})[_0x9550('0x16')](function(_0x2d09da){return _0x2d09da;});}})[_0x9550('0x16')](function(){return respondWithRpcPromise('AbandonInteraction',_0x9550('0x60'),_0x343207['body'],client9004);})[_0x9550('0x16')](respondWithResult(_0x41b1c1,null))[_0x9550('0x3c')](handleError(_0x41b1c1,null));};exports[_0x9550('0x65')]=function(_0x1e6947,_0x593868){_0x1e6947[_0x9550('0x2e')][_0x9550('0x2a')]=_0x1e6947[_0x9550('0x66')][_0x9550('0x67')];_0x1e6947['body'][_0x9550('0x68')]=_0x1e6947[_0x9550('0x66')][_0x9550('0x69')];_0x1e6947[_0x9550('0x2e')][_0x9550('0x36')]=_0x1e6947[_0x9550('0x66')]['mimetype'];return db[_0x9550('0x6a')][_0x9550('0x45')](_0x1e6947[_0x9550('0x2e')])[_0x9550('0x16')](respondWithResult(_0x593868,0xc9))[_0x9550('0x3c')](handleError(_0x593868,null));};exports[_0x9550('0x6b')]=function(_0x48c6e0,_0x2420fd){return db[_0x9550('0x33')][_0x9550('0x48')]({'where':{'id':_0x48c6e0[_0x9550('0x46')]['id']},'raw':!![]})[_0x9550('0x16')](handleEntityNotFound(_0x2420fd,null))[_0x9550('0x16')](function(_0x2f6d22){if(_0x2f6d22){if(_0x2f6d22[_0x9550('0x6c')]){return _0x2420fd[_0x9550('0x21')](0x193)['json']({'status':0x193,'message':_0x9550('0x6d')});}return db[_0x9550('0x6a')]['findOne']({'where':{'id':_0x48c6e0[_0x9550('0x3a')][_0x9550('0x6e')]},'raw':!![]})['then'](handleEntityNotFound(_0x2420fd,null));}})['then'](function(_0x38b54d){if(_0x38b54d){var _0x38ae28=_0x38b54d[_0x9550('0x6f')]!==null;var _0x8db7ec=path[_0x9550('0x70')](config[_0x9550('0x71')],'server/files/attachments/');if(_0x38ae28){_0x8db7ec=path['join'](_0x8db7ec,_0x9550('0x72'));}var _0x2a06c6=path[_0x9550('0x70')](_0x8db7ec,_0x38b54d[_0x9550('0x68')]);return _0x2420fd['download'](_0x2a06c6);}})[_0x9550('0x3c')](handleError(_0x2420fd,null));};exports[_0x9550('0x73')]=function(_0x2a6d36,_0x4ef419){var _0x21af08=null;var _0xdc3d8a=null;var _0x57b882=null;if(_0x2a6d36['body']['id']){delete _0x2a6d36[_0x9550('0x2e')]['id'];}if(_0x2a6d36[_0x9550('0x2e')][_0x9550('0x74')]){_0x57b882=path[_0x9550('0x70')](config[_0x9550('0x71')],_0x9550('0x75'),util[_0x9550('0x76')](_0x9550('0x77'),Date[_0x9550('0x78')]()));_0x2a6d36[_0x9550('0x2e')][_0x9550('0x79')]=_0x57b882;}return db[_0x9550('0x33')][_0x9550('0x44')]({'where':{'id':_0x2a6d36[_0x9550('0x46')]['id']},'include':[{'model':db[_0x9550('0x5b')],'as':_0x9550('0x7a'),'include':[{'model':db[_0x9550('0x7b')],'as':'User'}]}]})['then'](handleEntityNotFound(_0x4ef419,null))[_0x9550('0x16')](saveUpdates(_0x2a6d36[_0x9550('0x2e')],null))[_0x9550('0x16')](function(_0x42b8a3){if(_0x42b8a3){_0x21af08=_0x42b8a3;return db[_0x9550('0x7c')]['find']({'where':{'id':_0x21af08['ChatWebsiteId']}});}})[_0x9550('0x16')](function(_0x2bd821){if(_0x2bd821){_0xdc3d8a=_0x2bd821;return db[_0x9550('0x5e')][_0x9550('0x44')]({'where':{'id':_0x21af08[_0x9550('0x7d')]}});}})[_0x9550('0x16')](function(_0x576ebd){if(_0x576ebd){if(_0x57b882){var _0x287829=null;for(var _0x5f3236=0x1;_0x5f3236<_0x21af08[_0x9550('0x7a')][_0x9550('0x42')];++_0x5f3236){_0x287829=_0x21af08[_0x9550('0x7a')][_0x5f3236];var _0x4f604a=_0x287829[_0x9550('0x62')]?util[_0x9550('0x76')]('%s%d',_0xdc3d8a[_0x9550('0x7e')],_0x287829[_0x9550('0x62')]):_0x9550('0x7f');var _0x3b0870=_0x2a6d36[_0x9550('0x2e')]['customer']||util[_0x9550('0x76')](_0x9550('0x80'),'Visitor',_0x287829['ContactId']);switch(_0xdc3d8a['agentIdentifier']){case _0x9550('0x81'):_0x4f604a=_0x287829[_0x9550('0x62')]?util[_0x9550('0x76')]('%s%d',_0xdc3d8a[_0x9550('0x7e')],_0x287829['UserId']):'System';break;case _0x9550('0x82'):_0x4f604a=_0x287829[_0x9550('0x62')]?_0x287829['User'][_0x9550('0x83')]||_0x287829[_0x9550('0x7b')][_0x9550('0x84')]:_0x9550('0x7f');break;case _0x9550('0x85'):_0x4f604a=_0x287829[_0x9550('0x62')]?_0x287829['User'][_0x9550('0x84')]:_0x9550('0x7f');break;default:_0x4f604a=_0x287829['UserId']?util[_0x9550('0x76')](_0x9550('0x80'),_0xdc3d8a[_0x9550('0x7e')],_0x287829[_0x9550('0x62')]):_0x9550('0x7f');}var _0x1d5711=util['format'](_0x9550('0x86'),moment(_0x287829[_0x9550('0x87')])[_0x9550('0x76')](_0x9550('0x88')),_0x287829['direction']==='in'?_0x3b0870:_0x4f604a,_0x287829[_0x9550('0x2e')]);if(!_0x287829['secret']){fs[_0x9550('0x89')](_0x57b882,_0x1d5711);}}return db[_0x9550('0x8a')][_0x9550('0x48')]({'where':{'service':!![]},'include':[{'model':db[_0x9550('0x8b')],'as':_0x9550('0x8c'),'raw':!![],'include':[{'model':db[_0x9550('0x8d')],'as':_0x9550('0x8d'),'raw':!![]}]}]});}}})['then'](function(_0x146b2b){if(!_0x146b2b||!_0x146b2b[_0x9550('0x8c')]||!_0x2a6d36[_0x9550('0x2e')])return _0x21af08;var _0x5aa62d=_0x146b2b['getSmtpOptions']();return respondWithRpcPromise(_0x9550('0x8e'),'sendMail',{'account':_0x5aa62d,'message':{'from':util['format'](_0x9550('0x8f'),_0x146b2b[_0x9550('0x2a')],_0x146b2b['email']||_0x146b2b[_0x9550('0x8c')][_0x9550('0x3b')]),'to':_0x2a6d36['body']['mailTranscript'],'subject':_0x9550('0x90'),'text':util[_0x9550('0x76')]('Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a',_0x2a6d36['body'][_0x9550('0x74')]),'attachments':[{'path':_0x57b882}]}})['then'](function(){return _0x21af08;})[_0x9550('0x3c')](function(_0x422599){logger[_0x9550('0x1a')](_0x422599);});})[_0x9550('0x16')](respondWithStatusCode(_0x4ef419,0xc8))[_0x9550('0x3c')](handleError(_0x4ef419,null));};exports[_0x9550('0x91')]=function(_0x3df5e3,_0x11c7cf){return db[_0x9550('0x5b')][_0x9550('0x44')]({'where':{'id':_0x3df5e3[_0x9550('0x46')]['id']}})[_0x9550('0x16')](handleEntityNotFound(_0x11c7cf,null))['then'](function(_0xed4f76){if(_0xed4f76){return _0xed4f76[_0x9550('0x91')](_0x3df5e3[_0x9550('0x2e')][_0x9550('0x92')],_[_0x9550('0x93')](_0x3df5e3['body'],[_0x9550('0x92'),'id'])||{});}})[_0x9550('0x16')](respondWithResult(_0x11c7cf,null))[_0x9550('0x3c')](handleError(_0x11c7cf,null));};exports[_0x9550('0x94')]=function(_0x1cf701,_0x276019){var _0x56a296={'raw':![],'where':{}};var _0x1075b3={};var _0x445496={'count':0x0,'rows':[]};return db['ChatInteraction'][_0x9550('0x48')]({'where':{'id':_0x1cf701[_0x9550('0x46')]['id']}})[_0x9550('0x16')](handleEntityNotFound(_0x276019,null))[_0x9550('0x16')](function(_0x470d4c){if(_0x470d4c){_0x1075b3[_0x9550('0x3d')]=_[_0x9550('0x3e')](db[_0x9550('0x5b')][_0x9550('0x34')]);_0x1075b3['query']=_[_0x9550('0x3e')](_0x1cf701[_0x9550('0x3a')]);_0x1075b3[_0x9550('0x3f')]=_[_0x9550('0x40')](_0x1075b3[_0x9550('0x3d')],_0x1075b3['query']);_0x56a296[_0x9550('0x41')]=_[_0x9550('0x40')](_0x1075b3[_0x9550('0x3d')],qs[_0x9550('0x95')](_0x1cf701[_0x9550('0x3a')]['fields']));_0x56a296[_0x9550('0x41')]=_0x56a296[_0x9550('0x41')]['length']?_0x56a296[_0x9550('0x41')]:_0x1075b3[_0x9550('0x3d')];if(!_0x1cf701[_0x9550('0x3a')][_0x9550('0x96')](_0x9550('0x97'))){_0x56a296[_0x9550('0x24')]=qs[_0x9550('0x24')](_0x1cf701[_0x9550('0x3a')][_0x9550('0x24')]);_0x56a296[_0x9550('0x26')]=qs[_0x9550('0x26')](_0x1cf701[_0x9550('0x3a')]['offset']);}_0x56a296[_0x9550('0x98')]=qs[_0x9550('0x99')](_0x1cf701[_0x9550('0x3a')][_0x9550('0x99')]);_0x56a296[_0x9550('0x9a')]=qs[_0x9550('0x3f')](_[_0x9550('0x9b')](_0x1cf701[_0x9550('0x3a')],_0x1075b3['filters']));_0x56a296[_0x9550('0x9a')]['ChatInteractionId']=_0x470d4c['id'];if(_0x1cf701['query'][_0x9550('0x9c')]){_0x56a296[_0x9550('0x9a')]=_[_0x9550('0x2d')](_0x56a296['where'],{'$or':_['map'](_0x56a296[_0x9550('0x41')],function(_0x5bd278){var _0xa498bc={};_0xa498bc[_0x5bd278]={'$like':'%'+_0x1cf701[_0x9550('0x3a')][_0x9550('0x9c')]+'%'};return _0xa498bc;})});}if(_0x1cf701[_0x9550('0x3a')]['$gte']){var _0xf95011=_0x1cf701[_0x9550('0x3a')]['$gte']['split'](',');var _0x39f22e={};_0x39f22e[_0xf95011[0x0]]={'$gte':moment(_0xf95011[0x1])[_0x9550('0x76')](_0x9550('0x9d'))};_0x56a296[_0x9550('0x9a')]=_[_0x9550('0x2d')](_0x56a296[_0x9550('0x9a')],_0x39f22e);}_0x56a296=_[_0x9550('0x2d')]({},_0x56a296,_0x1cf701[_0x9550('0x9e')]);return db[_0x9550('0x5b')]['count']({'where':_0x56a296[_0x9550('0x9a')]})[_0x9550('0x16')](function(_0x7d556d){_0x445496[_0x9550('0x9f')]=_0x7d556d;if(_0x1cf701[_0x9550('0x3a')][_0x9550('0x43')]){_0x56a296[_0x9550('0xa0')]=[{'all':!![]}];}return db[_0x9550('0x5b')][_0x9550('0xa1')](_0x56a296);})[_0x9550('0x16')](function(_0x346f1d){_0x445496[_0x9550('0xa2')]=_0x346f1d;return _0x445496;});}})[_0x9550('0x16')](respondWithFilteredResult(_0x276019,_0x56a296))['catch'](handleError(_0x276019,null));};exports[_0x9550('0xa3')]=function(_0x2a3f2a,_0x181189){var _0x2af7e3={'where':{}},_0xa2e74f={},_0x2b6062={'count':0x0,'rows':[]};return db[_0x9550('0x33')]['findOne']({'where':{'id':_0x2a3f2a[_0x9550('0x46')]['id']}})['then'](handleEntityNotFound(_0x181189,null))[_0x9550('0x16')](function(_0x260029){if(_0x260029){_0xa2e74f[_0x9550('0x3d')]=_['keys'](db[_0x9550('0x5b')][_0x9550('0x34')]);_0xa2e74f[_0x9550('0x3a')]=_[_0x9550('0x3e')](_0x2a3f2a[_0x9550('0x3a')]);_0xa2e74f[_0x9550('0x3f')]=_[_0x9550('0x40')](_0xa2e74f[_0x9550('0x3d')],_0xa2e74f[_0x9550('0x3a')]);_0x2af7e3[_0x9550('0x41')]=_[_0x9550('0x40')](_0xa2e74f[_0x9550('0x3d')],qs[_0x9550('0x95')](_0x2a3f2a[_0x9550('0x3a')][_0x9550('0x95')]));_0x2af7e3[_0x9550('0x41')]=_0x2af7e3[_0x9550('0x41')]['length']?_0x2af7e3[_0x9550('0x41')]:_0xa2e74f[_0x9550('0x3d')];if(!_0x2a3f2a['query'][_0x9550('0x96')]('nolimit')){_0x2af7e3[_0x9550('0x24')]=qs[_0x9550('0x24')](_0x2a3f2a[_0x9550('0x3a')][_0x9550('0x24')]);_0x2af7e3[_0x9550('0x26')]=qs['offset'](_0x2a3f2a[_0x9550('0x3a')]['offset']);}_0x2af7e3[_0x9550('0x98')]=qs['sort'](_0x2a3f2a[_0x9550('0x3a')][_0x9550('0x99')]);_0x2af7e3[_0x9550('0x9a')]=qs[_0x9550('0x3f')](_[_0x9550('0x9b')](_0x2a3f2a[_0x9550('0x3a')],_0xa2e74f[_0x9550('0x3f')]));_0x2af7e3[_0x9550('0x9a')][_0x9550('0xa4')]=_0x260029['id'];if(_0x2a3f2a['query']['filter']){_0x2af7e3[_0x9550('0x9a')]=_[_0x9550('0x2d')](_0x2af7e3[_0x9550('0x9a')],{'$or':_[_0x9550('0x32')](_0x2af7e3[_0x9550('0x41')],function(_0x3c9242){var _0xc4ebd1={};_0xc4ebd1[_0x3c9242]={'$like':'%'+_0x2a3f2a[_0x9550('0x3a')][_0x9550('0x9c')]+'%'};return _0xc4ebd1;})});}_0x2af7e3[_0x9550('0x9a')][_0x9550('0xa5')]=![];if(_0x2a3f2a[_0x9550('0x3a')]['id']){_0x2af7e3[_0x9550('0x9a')]['id']={'$gt':_0x2a3f2a[_0x9550('0x3a')]['id']};}_0x2af7e3=_[_0x9550('0x2d')]({},_0x2af7e3,_0x2a3f2a[_0x9550('0x9e')]);return db[_0x9550('0x5b')][_0x9550('0x9f')]({'where':_0x2af7e3[_0x9550('0x9a')]})['then'](function(_0x59cd6a){_0x2b6062[_0x9550('0x9f')]=_0x59cd6a;_0x2af7e3[_0x9550('0xa0')]=[];if(_0x2a3f2a[_0x9550('0x3a')]['includeAgent']){_0x2af7e3[_0x9550('0xa0')][_0x9550('0xa6')]({'model':db[_0x9550('0x7b')],'as':_0x9550('0x7b'),'attributes':['id',_0x9550('0x84'),_0x9550('0x83')]});}if(_0x2a3f2a[_0x9550('0x3a')]['includeAll']){_0x2af7e3[_0x9550('0xa0')]=[{'all':!![]}];}return db[_0x9550('0x5b')][_0x9550('0xa1')](_0x2af7e3);})[_0x9550('0x16')](function(_0x1b8221){_0x2b6062[_0x9550('0xa2')]=_0x1b8221;return _0x2b6062;});}})[_0x9550('0x16')](respondWithFilteredResult(_0x181189,_0x2af7e3))[_0x9550('0x3c')](handleError(_0x181189,null));};exports['addTags']=function(_0x44894e,_0x33ea24){return db['ChatInteraction'][_0x9550('0x44')]({'where':{'id':_0x44894e[_0x9550('0x46')]['id']}})[_0x9550('0x16')](handleEntityNotFound(_0x33ea24,null))[_0x9550('0x16')](function(_0x260436){if(_0x260436){return _0x260436[_0x9550('0xa7')](_0x44894e[_0x9550('0x2e')][_0x9550('0x92')],_[_0x9550('0x93')](_0x44894e['body'],['ids','id'])||{})[_0x9550('0xa8')](function(){return db[_0x9550('0xa9')]['findAll']({'attributes':['id',_0x9550('0x2a'),_0x9550('0xaa')],'where':{'id':_0x44894e['body'][_0x9550('0x92')]}});})['then'](function(_0x1147e9){socket['emit'](_0x9550('0xab'),{'id':Number(_0x44894e['params']['id']),'tags':_0x1147e9||[]});return{'id':Number(_0x44894e[_0x9550('0x46')]['id']),'tags':_0x1147e9||[]};});}})[_0x9550('0x16')](respondWithResult(_0x33ea24,null))[_0x9550('0x3c')](handleError(_0x33ea24,null));};exports[_0x9550('0xac')]=function(_0x3cd5ff,_0x32fc8b){return db[_0x9550('0x33')][_0x9550('0x44')]({'where':{'id':_0x3cd5ff[_0x9550('0x46')]['id']}})['then'](handleEntityNotFound(_0x32fc8b,null))[_0x9550('0x16')](function(_0x18426b){if(_0x18426b){return _0x18426b[_0x9550('0xac')](_0x3cd5ff['query']['ids']);}})[_0x9550('0x16')](respondWithStatusCode(_0x32fc8b,null))[_0x9550('0x3c')](handleError(_0x32fc8b,null));};exports[_0x9550('0xad')]=function(_0x43f6d7,_0x13ec28){var _0x586fc8=moment()[_0x9550('0xae')]()[_0x9550('0xaf')]();var _0x116908=path[_0x9550('0x70')](config[_0x9550('0x71')],_0x9550('0xb0'),_0x9550('0xb1'),'tmp');var _0x2d1b80=path[_0x9550('0x70')](config['root'],_0x9550('0xb0'),_0x9550('0xb1'),_0x9550('0xb2'));var _0x29b434=path['join'](_0x116908,_0x586fc8);var _0x1ae991=util['format'](_0x9550('0xb3'),_0x43f6d7[_0x9550('0x46')]['id'],_0x586fc8);var _0x574636=path[_0x9550('0x70')](_0x116908,_0x1ae991);var _0x14d61e=[];_0x14d61e['push']({'model':db['User'],'as':'User','attributes':['id',_0x9550('0x84')],'raw':!![]});_0x14d61e[_0x9550('0xa6')]({'model':db[_0x9550('0x5e')],'as':'Contact','attributes':['id','firstName',_0x9550('0xb4')],'raw':!![]});if(_0x43f6d7[_0x9550('0x3a')][_0x9550('0xb2')]){_0x14d61e[_0x9550('0xa6')]({'model':db[_0x9550('0x6a')],'as':_0x9550('0x6a'),'raw':!![]});}var _0x19b7ba=[{'model':db[_0x9550('0x5b')],'as':'Messages','attributes':['id',_0x9550('0x2e'),_0x9550('0x87'),_0x9550('0xb5'),_0x9550('0xa5'),'read'],'include':_0x14d61e}];_0x19b7ba[_0x9550('0xa6')]({'model':db[_0x9550('0x7c')],'as':_0x9550('0xb6'),'attributes':['id',_0x9550('0x2a')]});_0x19b7ba[_0x9550('0xa6')]({'model':db[_0x9550('0x7b')],'as':_0x9550('0xb7'),'attributes':['id','fullname']});return db[_0x9550('0x33')][_0x9550('0x44')]({'where':{'id':_0x43f6d7[_0x9550('0x46')]['id']},'include':_0x19b7ba})[_0x9550('0x16')](handleEntityNotFound(_0x13ec28,null))[_0x9550('0x16')](function(_0x408ff7){if(_0x408ff7){var _0x2aa069=_0x408ff7[_0x9550('0xb8')]({'plain':!![]});fs[_0x9550('0xb9')](_0x29b434);var _0x47a965={'channel':'Chat','account':_0x2aa069[_0x9550('0xb6')]['name'],'agent':_0x2aa069['Owner']?_0x2aa069[_0x9550('0xb7')][_0x9550('0x84')]:'N.A.','createdAt':moment(_0x2aa069[_0x9550('0x87')])['format'](_0x9550('0x9d'))['toString'](),'closedAt':_0x2aa069[_0x9550('0x6c')]?moment(_0x2aa069[_0x9550('0xba')])[_0x9550('0x76')](_0x9550('0x9d'))['toString']():'','disposition':_0x2aa069[_0x9550('0x64')],'chatInfo':{'browser':_0x2aa069[_0x9550('0xbb')],'os':_0x2aa069[_0x9550('0xbc')],'referer':_0x2aa069['referer'],'customerIp':_0x2aa069['customerIp'],'customerPort':_0x2aa069[_0x9550('0xbd')]?_0x2aa069['customerPort']:'N.A.'},'messages':_(_0x2aa069[_0x9550('0x7a')])[_0x9550('0xbe')]()['filter']({'secret':![]})[_0x9550('0x32')](function(_0x40b347){if(_0x40b347[_0x9550('0x6a')]){var _0x5754d3=path['join'](_0x2d1b80,_0x40b347['Attachment']['basename']);if(fs[_0x9550('0xbf')](_0x5754d3)){fs[_0x9550('0xc0')](_0x5754d3)['pipe'](fs[_0x9550('0xc1')](path[_0x9550('0x70')](_0x29b434,_0x40b347[_0x9550('0x6a')][_0x9550('0x68')])));}}return{'date':moment(_0x40b347[_0x9550('0x87')])[_0x9550('0x76')]('YYYY-MM-DD\x20HH:mm:ss')['toString'](),'sender':_0x40b347[_0x9550('0xb5')]===_0x9550('0x5a')?_0x40b347[_0x9550('0x7b')]?_0x40b347[_0x9550('0x7b')][_0x9550('0x84')]:'System':_0x40b347[_0x9550('0x5f')]['firstName']+(_0x40b347['Contact']['lastName']?'\x20'+_0x40b347[_0x9550('0x5f')]['lastName']:''),'body':_0x40b347[_0x9550('0x6a')]?_0x40b347[_0x9550('0x6a')][_0x9550('0x68')]:_0x40b347[_0x9550('0x2e')],'direction':_0x40b347['direction']===_0x9550('0x5a')?'A':'C','secret':_0x40b347[_0x9550('0xa5')],'read':_0x40b347[_0x9550('0xc2')],'attachment':_0x40b347[_0x9550('0x6a')]};})[_0x9550('0xc3')]()};return ejs[_0x9550('0xc4')](path[_0x9550('0x70')](config[_0x9550('0x71')],'server',_0x9550('0xc5'),'downloadInteraction.ejs'),{'interaction':_0x47a965})[_0x9550('0x16')](function(_0x4b6214){var _0x30c378=path[_0x9550('0x70')](_0x29b434,_0x9550('0xc6')+_0x2aa069['id']+'-'+_0x586fc8+_0x9550('0xc7'));var _0x127240={'path':_0x30c378,'channel':_0x9550('0xc8'),'interactionId':_0x2aa069['id']};return pdf[_0x9550('0xc9')](_0x4b6214,_0x127240);})[_0x9550('0x16')](function(){return new Promise(function(_0x4103b5,_0x22042e){zipdir(_0x29b434,{'saveTo':_0x574636},function(_0xa704fc,_0xe64c4e){if(_0xa704fc)return _0x22042e(_0xa704fc);return _0x4103b5(_0xe64c4e);});})['then'](function(){return new BPromise(function(_0x581161,_0x2d29f7){rimraf(_0x29b434,function(_0x3c588e){if(_0x3c588e)_0x2d29f7(_0x3c588e);return _0x581161();});});})[_0x9550('0x16')](function(){return _0x13ec28[_0x9550('0xad')](_0x574636,_0x1ae991,function(_0x19782c){if(_0x19782c){logger[_0x9550('0x1a')](_0x9550('0xca'),_0x19782c);}else{fs['unlinkSync'](_0x574636);}});});});}else{return _0x13ec28[_0x9550('0x20')](0xc8);}})['catch'](handleError(_0x13ec28,null));};