7a03597d2c6ee24b19d0330bf4b15d0ae00978ef
[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 _0xcef0=['interaction','account','index','map','ChatInteraction','rawAttributes','fieldName','type','key','getOptions','findAll','chat','query','user','params','keys','filters','intersection','model','attributes','fields','includeAll','include','merge','find','catch','create','body','destroy','ChatWebsite','findOne','ChatWebsiteId','vidaooApiKey','vidaooEscalation','vidaooTopic','fullname','email','POST','https://api-vidaoo.xcally.com/api/v1/meetings','vidaooNote','follow','isNull','vidaooMetadata','parse','metadata','Sequelize','Error\x20in\x20conversion\x20vidaooMetadata','ValidationError','Error\x20in\x20Vidaoo\x20configuration','join_url','out','ChatMessage','updateAttributes','customUpdate','CmContact','Contact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','UserId','Interaction\x20already\x20assigned','closed','attachmentUpload','file','originalname','basename','filename','Attachment','attachmentDownload','Unauthorized','attachId','ChatOfflineMessageId','join','root','download','close','mailTranscript','server/files/chat/upload/','format','transcript-%s.txt','now','pathTranscript','Messages','User','ContactId','length','%s%d','agentAlias','System','customer','Visitor','website_alias','agent_alias','alias','agent_fullname','[%s]\x20%s:\x20%s\x0a','createdAt','direction','MailAccount','MailServerOut','CloudProvider','Smtp','getSmtpOptions','SendMail','sendMail','\x22%s\x22\x20<%s>','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','omit','ids','hasOwnProperty','nolimit','order','sort','where','pick','filter','$gte','options','getMyMessages','ChatInteractionId','secret','push','addTags','spread','Tag','color','emit','chatInteractionTags:save','removeTags','unix','files','tmp','server','attachments','transcript-%d-%s.zip','firstName','lastName','read','Account','Owner','get','mkdirSync','Chat','N.A.','YYYY-MM-DD\x20HH:mm:ss','toString','closedAt','disposition','browserName','referer','customerIp','customerPort','tail','createReadStream','pipe','createWriteStream','value','renderFile','views','downloadInteraction.ejs','transcript-','.pdf','createPdfFromHTML','err','unlinkSync','rimraf','zip-dir','request-promise','bluebird','ejs','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','../../components/export/pdf','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','jayson/promise','http','client','request','debug','request\x20sent','stringify','error','code','message','ChatInteraction,\x20%s,\x20%s','result','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','update','then','name','send','render','contact'];(function(_0x118439,_0x1907d9){var _0x209b67=function(_0x51e946){while(--_0x51e946){_0x118439['push'](_0x118439['shift']());}};_0x209b67(++_0x1907d9);}(_0xcef0,0xa6));var _0x0cef=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xcef0[_0x3dd15e];return _0x231fd0;};'use strict';var rimraf=require(_0x0cef('0x0'));var zipdir=require(_0x0cef('0x1'));var rp=require(_0x0cef('0x2'));var moment=require('moment');var BPromise=require(_0x0cef('0x3'));var Mustache=require('mustache');var util=require('util');var path=require('path');var ejs=require(_0x0cef('0x4'));var fs=require('fs');var _=require(_0x0cef('0x5'));var Redis=require(_0x0cef('0x6'));var interaction=require(_0x0cef('0x7'));var qs=require(_0x0cef('0x8'));var pdf=require(_0x0cef('0x9'));var logger=require('../../config/logger')(_0x0cef('0xa'));var config=require(_0x0cef('0xb'));var db=require(_0x0cef('0xc'))['db'];config[_0x0cef('0xd')]=_[_0x0cef('0xe')](config[_0x0cef('0xd')],{'host':_0x0cef('0xf'),'port':0x18eb});var socket=require(_0x0cef('0x10'))(new Redis(config[_0x0cef('0xd')]));require('./chatInteraction.socket')[_0x0cef('0x11')](socket);var jayson=require(_0x0cef('0x12'));var client=jayson['client'][_0x0cef('0x13')]({'port':0x232b});var client9004=jayson[_0x0cef('0x14')][_0x0cef('0x13')]({'port':0x232c});function respondWithRpcPromise(_0x1a741e,_0x38fb70,_0x1523e4,_0x4d8b7d){return new BPromise(function(_0x248771,_0x25ffd1){var _0x30344c=_0x4d8b7d||client;return _0x30344c[_0x0cef('0x15')](_0x1a741e,_0x1523e4)['then'](function(_0x4fe500){logger['info']('ChatInteraction,\x20%s,\x20%s',_0x38fb70,'request\x20sent');logger[_0x0cef('0x16')]('ChatInteraction,\x20%s,\x20%s,\x20%s',_0x38fb70,_0x0cef('0x17'),JSON[_0x0cef('0x18')](_0x4fe500));if(_0x4fe500[_0x0cef('0x19')]){if(_0x4fe500[_0x0cef('0x19')][_0x0cef('0x1a')]===0x1f4){logger[_0x0cef('0x19')]('ChatInteraction,\x20%s,\x20%s',_0x38fb70,_0x4fe500[_0x0cef('0x19')][_0x0cef('0x1b')]);return _0x25ffd1(_0x4fe500[_0x0cef('0x19')][_0x0cef('0x1b')]);}logger[_0x0cef('0x19')](_0x0cef('0x1c'),_0x38fb70,_0x4fe500['error'][_0x0cef('0x1b')]);return _0x248771(_0x4fe500[_0x0cef('0x19')][_0x0cef('0x1b')]);}else{logger['info'](_0x0cef('0x1c'),_0x38fb70,'request\x20sent');_0x248771(_0x4fe500[_0x0cef('0x1d')][_0x0cef('0x1b')]);}})['catch'](function(_0x176911){logger[_0x0cef('0x19')](_0x0cef('0x1c'),_0x38fb70,_0x176911);_0x25ffd1(_0x176911);});});}function respondWithStatusCode(_0x222b4b,_0x3a3bd3){_0x3a3bd3=_0x3a3bd3||0xcc;return function(_0x4f305a){if(_0x4f305a){return _0x222b4b[_0x0cef('0x1e')](_0x3a3bd3);}return _0x222b4b[_0x0cef('0x1f')](_0x3a3bd3)[_0x0cef('0x20')]();};}function respondWithResult(_0x411d75,_0x3b81e5){_0x3b81e5=_0x3b81e5||0xc8;return function(_0x1d4473){if(_0x1d4473){return _0x411d75[_0x0cef('0x1f')](_0x3b81e5)[_0x0cef('0x21')](_0x1d4473);}};}function respondWithFilteredResult(_0x3995a0,_0x7812ce){return function(_0x1df3e5){if(_0x1df3e5){var _0x467cf4=typeof _0x7812ce[_0x0cef('0x22')]===_0x0cef('0x23')&&typeof _0x7812ce[_0x0cef('0x24')]===_0x0cef('0x23');var _0x459c42=_0x1df3e5['count'];var _0x5444a1=_0x467cf4?0x0:_0x7812ce[_0x0cef('0x22')];var _0x7deede=_0x467cf4?_0x1df3e5[_0x0cef('0x25')]:_0x7812ce[_0x0cef('0x22')]+_0x7812ce[_0x0cef('0x24')];var _0x4109ca;if(_0x7deede>=_0x459c42){_0x7deede=_0x459c42;_0x4109ca=0xc8;}else{_0x4109ca=0xce;}_0x3995a0[_0x0cef('0x1f')](_0x4109ca);return _0x3995a0[_0x0cef('0x26')](_0x0cef('0x27'),_0x5444a1+'-'+_0x7deede+'/'+_0x459c42)['json'](_0x1df3e5);}return null;};}function saveUpdates(_0x3d6ed1){return function(_0x303066){if(_0x303066){return _0x303066[_0x0cef('0x28')](_0x3d6ed1)[_0x0cef('0x29')](function(_0x30e15c){return _0x30e15c;});}return null;};}function removeEntity(_0x51bb16){return function(_0x132c47){if(_0x132c47){return _0x132c47['destroy']()[_0x0cef('0x29')](function(){_0x51bb16[_0x0cef('0x1f')](0xcc)[_0x0cef('0x20')]();});}};}function handleEntityNotFound(_0xdb8178){return function(_0x46dfc4){if(!_0x46dfc4){_0xdb8178[_0x0cef('0x1e')](0x194);}return _0x46dfc4;};}function handleError(_0x4270fd,_0x387617){_0x387617=_0x387617||0x1f4;return function(_0x4d72c4){logger[_0x0cef('0x19')](_0x4d72c4['stack']);if(_0x4d72c4['name']){delete _0x4d72c4[_0x0cef('0x2a')];}_0x4270fd['status'](_0x387617)[_0x0cef('0x2b')](_0x4d72c4);};}function getMustacheRender(_0x27e2fb,_0x5cf7c4){return Mustache[_0x0cef('0x2c')](_0x27e2fb,_['merge'](_0x5cf7c4['body'],{'contact':_0x5cf7c4[_0x0cef('0x2d')],'message':_0x5cf7c4[_0x0cef('0x1b')],'agent':_0x5cf7c4['agent'],'interaction':_0x5cf7c4[_0x0cef('0x2e')],'account':_0x5cf7c4[_0x0cef('0x2f')]}))||'';}exports[_0x0cef('0x30')]=function(_0x5a8fd3,_0x5f54aa){var _0x8a0303={};var _0x593964=_[_0x0cef('0x31')](db[_0x0cef('0x32')][_0x0cef('0x33')],function(_0x12da79){return{'name':_0x12da79[_0x0cef('0x34')],'type':_0x12da79[_0x0cef('0x35')][_0x0cef('0x36')]};});_0x8a0303=qs[_0x0cef('0x37')](_0x593964,_0x5a8fd3);return interaction[_0x0cef('0x38')](_0x0cef('0x39'),_0x5a8fd3[_0x0cef('0x3a')],_0x5a8fd3[_0x0cef('0x3b')],_0x8a0303,_0x593964)[_0x0cef('0x29')](respondWithFilteredResult(_0x5f54aa,_0x8a0303))['catch'](handleError(_0x5f54aa,null));};exports['show']=function(_0x1b9d67,_0x53e0aa){var _0x4c6a40={'raw':![],'where':{'id':_0x1b9d67[_0x0cef('0x3c')]['id']}},_0x166792={};_0x166792['model']=_[_0x0cef('0x3d')](db[_0x0cef('0x32')][_0x0cef('0x33')]);_0x166792[_0x0cef('0x3a')]=_['keys'](_0x1b9d67[_0x0cef('0x3a')]);_0x166792[_0x0cef('0x3e')]=_[_0x0cef('0x3f')](_0x166792[_0x0cef('0x40')],_0x166792['query']);_0x4c6a40[_0x0cef('0x41')]=_[_0x0cef('0x3f')](_0x166792[_0x0cef('0x40')],qs[_0x0cef('0x42')](_0x1b9d67['query'][_0x0cef('0x42')]));_0x4c6a40[_0x0cef('0x41')]=_0x4c6a40[_0x0cef('0x41')]['length']?_0x4c6a40['attributes']:_0x166792[_0x0cef('0x40')];if(_0x1b9d67[_0x0cef('0x3a')][_0x0cef('0x43')]){_0x4c6a40[_0x0cef('0x44')]=[{'all':!![]}];}_0x4c6a40=_[_0x0cef('0x45')]({},_0x4c6a40,_0x1b9d67['options']);return db[_0x0cef('0x32')][_0x0cef('0x46')](_0x4c6a40)['then'](handleEntityNotFound(_0x53e0aa,null))[_0x0cef('0x29')](respondWithResult(_0x53e0aa,null))[_0x0cef('0x47')](handleError(_0x53e0aa,null));};exports[_0x0cef('0x48')]=function(_0x50cd2a,_0x4e755f){return db['ChatInteraction'][_0x0cef('0x48')](_0x50cd2a[_0x0cef('0x49')],{})[_0x0cef('0x29')](respondWithResult(_0x4e755f,0xc9))[_0x0cef('0x47')](handleError(_0x4e755f,null));};exports[_0x0cef('0x28')]=function(_0x215fb7,_0x52663d){if(_0x215fb7['body']['id']){delete _0x215fb7['body']['id'];}return db[_0x0cef('0x32')][_0x0cef('0x46')]({'where':{'id':_0x215fb7['params']['id']}})[_0x0cef('0x29')](handleEntityNotFound(_0x52663d,null))['then'](saveUpdates(_0x215fb7['body'],null))[_0x0cef('0x29')](respondWithResult(_0x52663d,null))['catch'](handleError(_0x52663d,null));};exports[_0x0cef('0x4a')]=function(_0xc98437,_0x542a3c){return db[_0x0cef('0x32')][_0x0cef('0x46')]({'where':{'id':_0xc98437['params']['id']}})[_0x0cef('0x29')](handleEntityNotFound(_0x542a3c,null))[_0x0cef('0x29')](removeEntity(_0x542a3c,null))[_0x0cef('0x47')](handleError(_0x542a3c,null));};exports['describe']=function(_0x21eceb,_0x4b3b50){return db['ChatInteraction']['describe']()[_0x0cef('0x29')](respondWithResult(_0x4b3b50,null))['catch'](handleError(_0x4b3b50,null));};exports['createVidaooSession']=function(_0x2c0687,_0x4efc8c){var _0x125d8a=_0x2c0687[_0x0cef('0x3c')]['id'];var _0x5003b3;var _0x2384dd;var _0x533b31;return db[_0x0cef('0x32')]['findOne']({'where':{'id':_0x125d8a}})[_0x0cef('0x29')](function(_0x57c961){_0x5003b3=_0x57c961;return db[_0x0cef('0x4b')][_0x0cef('0x4c')]({'where':{'id':_0x57c961[_0x0cef('0x4d')]},'attributes':['id',_0x0cef('0x4e'),_0x0cef('0x4f'),_0x0cef('0x50'),'vidaooNote','vidaooMetadata'],'raw':!![]});})[_0x0cef('0x29')](function(_0x1cda8a){if(_0x1cda8a&&_0x1cda8a[_0x0cef('0x4e')]&&_0x1cda8a[_0x0cef('0x4f')]){_0x2384dd=_0x1cda8a;var _0x256e1f={'interaction':{'id':_0x125d8a},'agent':{'id':_0x2c0687[_0x0cef('0x3b')]['id'],'name':_0x2c0687['user'][_0x0cef('0x2a')],'fullname':_0x2c0687[_0x0cef('0x3b')][_0x0cef('0x51')],'email':_0x2c0687[_0x0cef('0x3b')][_0x0cef('0x52')]},'contact':_0x2c0687[_0x0cef('0x49')][_0x0cef('0x2d')],'account':_0x2c0687[_0x0cef('0x49')][_0x0cef('0x2f')]};var _0x2c503c={'rejectUnauthorized':![],'method':_0x0cef('0x53'),'url':_0x0cef('0x54'),'headers':{'X-APIKEY':_0x1cda8a['vidaooApiKey']},'body':{'duration':null,'scheduledAt':null,'participants':[_0x2c0687['user'][_0x0cef('0x52')]],'buttons':null,'topic':_0x2384dd['vidaooTopic'],'note':_['isNull'](_0x2384dd[_0x0cef('0x55')])?null:getMustacheRender(_0x2384dd[_0x0cef('0x55')],_0x256e1f),'metadata':null},'redirect':_0x0cef('0x56'),'json':!![]};try{if(!_[_0x0cef('0x57')](_0x2384dd[_0x0cef('0x58')])){var _0x2ccefb=getMustacheRender(_0x2384dd[_0x0cef('0x58')],_0x256e1f);var _0x16c801=JSON[_0x0cef('0x59')](_0x2ccefb);_0x2c503c[_0x0cef('0x49')][_0x0cef('0x5a')]=_0x16c801;}}catch(_0x3524c3){throw new db[(_0x0cef('0x5b'))]['ValidationError'](_0x0cef('0x5c'));}return rp(_0x2c503c);}else{throw new db[(_0x0cef('0x5b'))][(_0x0cef('0x5d'))](_0x0cef('0x5e'));}})[_0x0cef('0x29')](function(_0x3b7c18){_0x533b31=_0x3b7c18;if(_0x533b31['id']){var _0xaf551d={'body':_0x533b31[_0x0cef('0x5f')],'ChatWebsiteId':_0x2384dd['id'],'ChatInteractionId':_0x5003b3['id'],'direction':_0x0cef('0x60'),'UserId':_0x2c0687[_0x0cef('0x3b')]['id']};return db[_0x0cef('0x61')][_0x0cef('0x48')](_0xaf551d,{});}else{throw new db['Sequelize'][(_0x0cef('0x5d'))]('Unable\x20to\x20create\x20Vidaoo\x20session');}})['then'](function(){return _0x5003b3[_0x0cef('0x62')]({'vidaooSessionId':_0x533b31['id']});})[_0x0cef('0x29')](respondWithResult(_0x4efc8c,null))[_0x0cef('0x47')](handleError(_0x4efc8c,null));};exports[_0x0cef('0x63')]=function(_0x444d04,_0x264890){if(_0x444d04[_0x0cef('0x49')]['id']){delete _0x444d04[_0x0cef('0x49')]['id'];}return db[_0x0cef('0x32')]['find']({'where':{'id':_0x444d04[_0x0cef('0x3c')]['id']},'include':[{'model':db[_0x0cef('0x64')],'as':_0x0cef('0x65')}]})[_0x0cef('0x29')](handleEntityNotFound(_0x264890,null))[_0x0cef('0x29')](saveUpdates(_0x444d04['body'],null))[_0x0cef('0x29')](respondWithResult(_0x264890,null))[_0x0cef('0x47')](handleError(_0x264890,null));};exports[_0x0cef('0x66')]=function(_0x333d68,_0x33f04c){if(_0x333d68[_0x0cef('0x49')]['id']){delete _0x333d68[_0x0cef('0x49')]['id'];}return db[_0x0cef('0x32')][_0x0cef('0x46')]({'where':{'id':_0x333d68[_0x0cef('0x3c')]['id']}})[_0x0cef('0x29')](function(_0x23a9ae){if(!_0x23a9ae){logger[_0x0cef('0x19')](_0x0cef('0x67'),_0x0cef('0x66'),0x194,_0x0cef('0x68'));_0x33f04c[_0x0cef('0x1e')](0x194);}else{if(_0x23a9ae[_0x0cef('0x69')]){throw new db['Sequelize'][(_0x0cef('0x5d'))](_0x0cef('0x6a'));}}return _0x23a9ae;})['then'](function(_0x4dac0f){if(_0x4dac0f){return _0x4dac0f[_0x0cef('0x28')]({'closed':_0x333d68[_0x0cef('0x49')][_0x0cef('0x6b')],'disposition':_0x333d68[_0x0cef('0x49')]['disposition']})['then'](function(_0x38bbd1){return _0x38bbd1;});}})[_0x0cef('0x29')](function(){return respondWithRpcPromise('AbandonInteraction','abandon',_0x333d68['body'],client9004);})[_0x0cef('0x29')](respondWithResult(_0x33f04c,null))['catch'](handleError(_0x33f04c,null));};exports[_0x0cef('0x6c')]=function(_0x45add2,_0x2d6986){_0x45add2[_0x0cef('0x49')][_0x0cef('0x2a')]=_0x45add2[_0x0cef('0x6d')][_0x0cef('0x6e')];_0x45add2[_0x0cef('0x49')][_0x0cef('0x6f')]=_0x45add2[_0x0cef('0x6d')][_0x0cef('0x70')];_0x45add2[_0x0cef('0x49')][_0x0cef('0x35')]=_0x45add2['file']['mimetype'];return db[_0x0cef('0x71')][_0x0cef('0x48')](_0x45add2[_0x0cef('0x49')])[_0x0cef('0x29')](respondWithResult(_0x2d6986,0xc9))[_0x0cef('0x47')](handleError(_0x2d6986,null));};exports[_0x0cef('0x72')]=function(_0x11bacd,_0xf4c8a1){return db[_0x0cef('0x32')][_0x0cef('0x4c')]({'where':{'id':_0x11bacd[_0x0cef('0x3c')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0xf4c8a1,null))[_0x0cef('0x29')](function(_0x1b0ac8){if(_0x1b0ac8){if(_0x1b0ac8[_0x0cef('0x6b')]){return _0xf4c8a1[_0x0cef('0x1f')](0x193)[_0x0cef('0x21')]({'status':0x193,'message':_0x0cef('0x73')});}return db['Attachment'][_0x0cef('0x4c')]({'where':{'id':_0x11bacd[_0x0cef('0x3a')][_0x0cef('0x74')]},'raw':!![]})[_0x0cef('0x29')](handleEntityNotFound(_0xf4c8a1,null));}})['then'](function(_0x10f793){if(_0x10f793){var _0x5acaa5=_0x10f793[_0x0cef('0x75')]!==null;var _0x31c5a5=path[_0x0cef('0x76')](config[_0x0cef('0x77')],'server/files/attachments/');if(_0x5acaa5){_0x31c5a5=path['join'](_0x31c5a5,'offline-chat/');}var _0x12d807=path[_0x0cef('0x76')](_0x31c5a5,_0x10f793[_0x0cef('0x6f')]);return _0xf4c8a1[_0x0cef('0x78')](_0x12d807);}})['catch'](handleError(_0xf4c8a1,null));};exports[_0x0cef('0x79')]=function(_0x2fc627,_0x39ff30){var _0x25a88f=null;var _0x2280d3=null;var _0x29eb06=null;if(_0x2fc627['body']['id']){delete _0x2fc627[_0x0cef('0x49')]['id'];}if(_0x2fc627[_0x0cef('0x49')][_0x0cef('0x7a')]){_0x29eb06=path[_0x0cef('0x76')](config[_0x0cef('0x77')],_0x0cef('0x7b'),util[_0x0cef('0x7c')](_0x0cef('0x7d'),Date[_0x0cef('0x7e')]()));_0x2fc627[_0x0cef('0x49')][_0x0cef('0x7f')]=_0x29eb06;}return db['ChatInteraction']['find']({'where':{'id':_0x2fc627['params']['id']},'include':[{'model':db[_0x0cef('0x61')],'as':_0x0cef('0x80'),'include':[{'model':db[_0x0cef('0x81')],'as':_0x0cef('0x81')}]}]})[_0x0cef('0x29')](handleEntityNotFound(_0x39ff30,null))[_0x0cef('0x29')](saveUpdates(_0x2fc627[_0x0cef('0x49')],null))[_0x0cef('0x29')](function(_0x2c9554){if(_0x2c9554){_0x25a88f=_0x2c9554;return db[_0x0cef('0x4b')][_0x0cef('0x46')]({'where':{'id':_0x25a88f[_0x0cef('0x4d')]}});}})[_0x0cef('0x29')](function(_0x3152ff){if(_0x3152ff){_0x2280d3=_0x3152ff;return db[_0x0cef('0x64')][_0x0cef('0x46')]({'where':{'id':_0x25a88f[_0x0cef('0x82')]}});}})[_0x0cef('0x29')](function(_0x4e0761){if(_0x4e0761){if(_0x29eb06){var _0x3b9826=null;for(var _0xb08311=0x1;_0xb08311<_0x25a88f['Messages'][_0x0cef('0x83')];++_0xb08311){_0x3b9826=_0x25a88f[_0x0cef('0x80')][_0xb08311];var _0x1e5b3e=_0x3b9826[_0x0cef('0x69')]?util[_0x0cef('0x7c')](_0x0cef('0x84'),_0x2280d3[_0x0cef('0x85')],_0x3b9826['UserId']):_0x0cef('0x86');var _0x1bfb53=_0x2fc627['body'][_0x0cef('0x87')]||util['format'](_0x0cef('0x84'),_0x0cef('0x88'),_0x3b9826[_0x0cef('0x82')]);switch(_0x2280d3['agentIdentifier']){case _0x0cef('0x89'):_0x1e5b3e=_0x3b9826[_0x0cef('0x69')]?util['format'](_0x0cef('0x84'),_0x2280d3[_0x0cef('0x85')],_0x3b9826['UserId']):_0x0cef('0x86');break;case _0x0cef('0x8a'):_0x1e5b3e=_0x3b9826['UserId']?_0x3b9826[_0x0cef('0x81')][_0x0cef('0x8b')]||_0x3b9826[_0x0cef('0x81')]['fullname']:_0x0cef('0x86');break;case _0x0cef('0x8c'):_0x1e5b3e=_0x3b9826[_0x0cef('0x69')]?_0x3b9826[_0x0cef('0x81')][_0x0cef('0x51')]:_0x0cef('0x86');break;default:_0x1e5b3e=_0x3b9826[_0x0cef('0x69')]?util[_0x0cef('0x7c')](_0x0cef('0x84'),_0x2280d3[_0x0cef('0x85')],_0x3b9826[_0x0cef('0x69')]):_0x0cef('0x86');}var _0x94fbf3=util[_0x0cef('0x7c')](_0x0cef('0x8d'),moment(_0x3b9826[_0x0cef('0x8e')])[_0x0cef('0x7c')]('MM/DD/YYYY\x20HH:mm:ss'),_0x3b9826[_0x0cef('0x8f')]==='in'?_0x1bfb53:_0x1e5b3e,_0x3b9826[_0x0cef('0x49')]);if(!_0x3b9826['secret']){fs['appendFileSync'](_0x29eb06,_0x94fbf3);}}return db[_0x0cef('0x90')][_0x0cef('0x4c')]({'where':{'service':!![]},'include':[{'model':db[_0x0cef('0x91')],'as':'Smtp','raw':!![],'include':[{'model':db[_0x0cef('0x92')],'as':_0x0cef('0x92'),'raw':!![]}]}]});}}})[_0x0cef('0x29')](function(_0xe62306){if(!_0xe62306||!_0xe62306[_0x0cef('0x93')]||!_0x2fc627[_0x0cef('0x49')])return _0x25a88f;var _0x2f60ce=_0xe62306[_0x0cef('0x94')]();return respondWithRpcPromise(_0x0cef('0x95'),_0x0cef('0x96'),{'account':_0x2f60ce,'message':{'from':util[_0x0cef('0x7c')](_0x0cef('0x97'),_0xe62306[_0x0cef('0x2a')],_0xe62306['email']||_0xe62306[_0x0cef('0x93')][_0x0cef('0x3b')]),'to':_0x2fc627[_0x0cef('0x49')][_0x0cef('0x7a')],'subject':'Mail\x20Transcript','text':util[_0x0cef('0x7c')](_0x0cef('0x98'),_0x2fc627['body'][_0x0cef('0x7a')]),'attachments':[{'path':_0x29eb06}]}})[_0x0cef('0x29')](function(){return _0x25a88f;})[_0x0cef('0x47')](function(_0x105f4c){logger[_0x0cef('0x19')](_0x105f4c);});})[_0x0cef('0x29')](respondWithStatusCode(_0x39ff30,0xc8))[_0x0cef('0x47')](handleError(_0x39ff30,null));};exports['addMessage']=function(_0x33c95c,_0x3e24d8){return db[_0x0cef('0x61')][_0x0cef('0x46')]({'where':{'id':_0x33c95c[_0x0cef('0x3c')]['id']}})[_0x0cef('0x29')](handleEntityNotFound(_0x3e24d8,null))[_0x0cef('0x29')](function(_0xe16b29){if(_0xe16b29){return _0xe16b29[_0x0cef('0x99')](_0x33c95c[_0x0cef('0x49')]['ids'],_[_0x0cef('0x9a')](_0x33c95c[_0x0cef('0x49')],[_0x0cef('0x9b'),'id'])||{});}})[_0x0cef('0x29')](respondWithResult(_0x3e24d8,null))[_0x0cef('0x47')](handleError(_0x3e24d8,null));};exports['getMessages']=function(_0x392759,_0x4169bb){var _0x5411be={'raw':![],'where':{}};var _0x5ac591={};var _0x1972c4={'count':0x0,'rows':[]};return db[_0x0cef('0x32')][_0x0cef('0x4c')]({'where':{'id':_0x392759[_0x0cef('0x3c')]['id']}})[_0x0cef('0x29')](handleEntityNotFound(_0x4169bb,null))[_0x0cef('0x29')](function(_0x46f088){if(_0x46f088){_0x5ac591['model']=_[_0x0cef('0x3d')](db[_0x0cef('0x61')][_0x0cef('0x33')]);_0x5ac591[_0x0cef('0x3a')]=_[_0x0cef('0x3d')](_0x392759[_0x0cef('0x3a')]);_0x5ac591[_0x0cef('0x3e')]=_[_0x0cef('0x3f')](_0x5ac591[_0x0cef('0x40')],_0x5ac591[_0x0cef('0x3a')]);_0x5411be[_0x0cef('0x41')]=_[_0x0cef('0x3f')](_0x5ac591[_0x0cef('0x40')],qs[_0x0cef('0x42')](_0x392759[_0x0cef('0x3a')][_0x0cef('0x42')]));_0x5411be[_0x0cef('0x41')]=_0x5411be['attributes']['length']?_0x5411be['attributes']:_0x5ac591[_0x0cef('0x40')];if(!_0x392759[_0x0cef('0x3a')][_0x0cef('0x9c')](_0x0cef('0x9d'))){_0x5411be[_0x0cef('0x24')]=qs['limit'](_0x392759['query'][_0x0cef('0x24')]);_0x5411be[_0x0cef('0x22')]=qs[_0x0cef('0x22')](_0x392759[_0x0cef('0x3a')]['offset']);}_0x5411be[_0x0cef('0x9e')]=qs[_0x0cef('0x9f')](_0x392759[_0x0cef('0x3a')][_0x0cef('0x9f')]);_0x5411be[_0x0cef('0xa0')]=qs[_0x0cef('0x3e')](_[_0x0cef('0xa1')](_0x392759[_0x0cef('0x3a')],_0x5ac591[_0x0cef('0x3e')]));_0x5411be[_0x0cef('0xa0')]['ChatInteractionId']=_0x46f088['id'];if(_0x392759[_0x0cef('0x3a')][_0x0cef('0xa2')]){_0x5411be[_0x0cef('0xa0')]=_[_0x0cef('0x45')](_0x5411be[_0x0cef('0xa0')],{'$or':_[_0x0cef('0x31')](_0x5411be['attributes'],function(_0x2447b3){var _0x33b49e={};_0x33b49e[_0x2447b3]={'$like':'%'+_0x392759[_0x0cef('0x3a')][_0x0cef('0xa2')]+'%'};return _0x33b49e;})});}if(_0x392759[_0x0cef('0x3a')]['$gte']){var _0x150cdb=_0x392759[_0x0cef('0x3a')][_0x0cef('0xa3')]['split'](',');var _0x1b6f81={};_0x1b6f81[_0x150cdb[0x0]]={'$gte':moment(_0x150cdb[0x1])[_0x0cef('0x7c')]('YYYY-MM-DD\x20HH:mm:ss')};_0x5411be[_0x0cef('0xa0')]=_[_0x0cef('0x45')](_0x5411be[_0x0cef('0xa0')],_0x1b6f81);}_0x5411be=_[_0x0cef('0x45')]({},_0x5411be,_0x392759[_0x0cef('0xa4')]);return db[_0x0cef('0x61')][_0x0cef('0x25')]({'where':_0x5411be['where']})[_0x0cef('0x29')](function(_0x27308d){_0x1972c4['count']=_0x27308d;if(_0x392759['query'][_0x0cef('0x43')]){_0x5411be[_0x0cef('0x44')]=[{'all':!![]}];}return db[_0x0cef('0x61')][_0x0cef('0x38')](_0x5411be);})[_0x0cef('0x29')](function(_0x166782){_0x1972c4['rows']=_0x166782;return _0x1972c4;});}})[_0x0cef('0x29')](respondWithFilteredResult(_0x4169bb,_0x5411be))[_0x0cef('0x47')](handleError(_0x4169bb,null));};exports[_0x0cef('0xa5')]=function(_0x4fd6aa,_0x36abff){var _0x38d800={'where':{}},_0x356a52={},_0x2ba455={'count':0x0,'rows':[]};return db['ChatInteraction'][_0x0cef('0x4c')]({'where':{'id':_0x4fd6aa[_0x0cef('0x3c')]['id']}})[_0x0cef('0x29')](handleEntityNotFound(_0x36abff,null))[_0x0cef('0x29')](function(_0x5db216){if(_0x5db216){_0x356a52[_0x0cef('0x40')]=_['keys'](db[_0x0cef('0x61')]['rawAttributes']);_0x356a52[_0x0cef('0x3a')]=_['keys'](_0x4fd6aa['query']);_0x356a52[_0x0cef('0x3e')]=_[_0x0cef('0x3f')](_0x356a52[_0x0cef('0x40')],_0x356a52['query']);_0x38d800[_0x0cef('0x41')]=_[_0x0cef('0x3f')](_0x356a52['model'],qs[_0x0cef('0x42')](_0x4fd6aa[_0x0cef('0x3a')][_0x0cef('0x42')]));_0x38d800[_0x0cef('0x41')]=_0x38d800[_0x0cef('0x41')][_0x0cef('0x83')]?_0x38d800[_0x0cef('0x41')]:_0x356a52[_0x0cef('0x40')];if(!_0x4fd6aa['query'][_0x0cef('0x9c')](_0x0cef('0x9d'))){_0x38d800[_0x0cef('0x24')]=qs[_0x0cef('0x24')](_0x4fd6aa[_0x0cef('0x3a')][_0x0cef('0x24')]);_0x38d800[_0x0cef('0x22')]=qs[_0x0cef('0x22')](_0x4fd6aa[_0x0cef('0x3a')][_0x0cef('0x22')]);}_0x38d800[_0x0cef('0x9e')]=qs[_0x0cef('0x9f')](_0x4fd6aa[_0x0cef('0x3a')][_0x0cef('0x9f')]);_0x38d800[_0x0cef('0xa0')]=qs['filters'](_[_0x0cef('0xa1')](_0x4fd6aa[_0x0cef('0x3a')],_0x356a52['filters']));_0x38d800['where'][_0x0cef('0xa6')]=_0x5db216['id'];if(_0x4fd6aa['query']['filter']){_0x38d800[_0x0cef('0xa0')]=_['merge'](_0x38d800[_0x0cef('0xa0')],{'$or':_['map'](_0x38d800[_0x0cef('0x41')],function(_0x5ba75c){var _0x153080={};_0x153080[_0x5ba75c]={'$like':'%'+_0x4fd6aa[_0x0cef('0x3a')]['filter']+'%'};return _0x153080;})});}_0x38d800[_0x0cef('0xa0')][_0x0cef('0xa7')]=![];if(_0x4fd6aa[_0x0cef('0x3a')]['id']){_0x38d800[_0x0cef('0xa0')]['id']={'$gt':_0x4fd6aa[_0x0cef('0x3a')]['id']};}_0x38d800=_[_0x0cef('0x45')]({},_0x38d800,_0x4fd6aa['options']);return db[_0x0cef('0x61')][_0x0cef('0x25')]({'where':_0x38d800[_0x0cef('0xa0')]})['then'](function(_0x47eb27){_0x2ba455[_0x0cef('0x25')]=_0x47eb27;_0x38d800[_0x0cef('0x44')]=[];if(_0x4fd6aa[_0x0cef('0x3a')]['includeAgent']){_0x38d800[_0x0cef('0x44')][_0x0cef('0xa8')]({'model':db[_0x0cef('0x81')],'as':_0x0cef('0x81'),'attributes':['id',_0x0cef('0x51'),'alias']});}if(_0x4fd6aa[_0x0cef('0x3a')][_0x0cef('0x43')]){_0x38d800[_0x0cef('0x44')]=[{'all':!![]}];}return db[_0x0cef('0x61')][_0x0cef('0x38')](_0x38d800);})[_0x0cef('0x29')](function(_0x2871e4){_0x2ba455['rows']=_0x2871e4;return _0x2ba455;});}})['then'](respondWithFilteredResult(_0x36abff,_0x38d800))[_0x0cef('0x47')](handleError(_0x36abff,null));};exports[_0x0cef('0xa9')]=function(_0x385077,_0x45d3d5){return db[_0x0cef('0x32')][_0x0cef('0x46')]({'where':{'id':_0x385077['params']['id']}})[_0x0cef('0x29')](handleEntityNotFound(_0x45d3d5,null))[_0x0cef('0x29')](function(_0x2116bc){if(_0x2116bc){return _0x2116bc['setTags'](_0x385077[_0x0cef('0x49')][_0x0cef('0x9b')],_[_0x0cef('0x9a')](_0x385077[_0x0cef('0x49')],[_0x0cef('0x9b'),'id'])||{})[_0x0cef('0xaa')](function(){return db[_0x0cef('0xab')][_0x0cef('0x38')]({'attributes':['id',_0x0cef('0x2a'),_0x0cef('0xac')],'where':{'id':_0x385077[_0x0cef('0x49')][_0x0cef('0x9b')]}});})['then'](function(_0x2a7f1e){socket[_0x0cef('0xad')](_0x0cef('0xae'),{'id':Number(_0x385077[_0x0cef('0x3c')]['id']),'tags':_0x2a7f1e||[]});return{'id':Number(_0x385077[_0x0cef('0x3c')]['id']),'tags':_0x2a7f1e||[]};});}})['then'](respondWithResult(_0x45d3d5,null))[_0x0cef('0x47')](handleError(_0x45d3d5,null));};exports[_0x0cef('0xaf')]=function(_0x3ed886,_0x1aa0a0){return db[_0x0cef('0x32')][_0x0cef('0x46')]({'where':{'id':_0x3ed886[_0x0cef('0x3c')]['id']}})[_0x0cef('0x29')](handleEntityNotFound(_0x1aa0a0,null))[_0x0cef('0x29')](function(_0x3060ea){if(_0x3060ea){return _0x3060ea[_0x0cef('0xaf')](_0x3ed886[_0x0cef('0x3a')][_0x0cef('0x9b')]);}})[_0x0cef('0x29')](respondWithStatusCode(_0x1aa0a0,null))['catch'](handleError(_0x1aa0a0,null));};exports['download']=function(_0x36b111,_0xbacfe6){var _0x193bb9=moment()[_0x0cef('0xb0')]()['toString']();var _0x427dbb=path['join'](config[_0x0cef('0x77')],'server',_0x0cef('0xb1'),_0x0cef('0xb2'));var _0x425ffa=path['join'](config[_0x0cef('0x77')],_0x0cef('0xb3'),'files',_0x0cef('0xb4'));var _0x19b7f6=path['join'](_0x427dbb,_0x193bb9);var _0x21a79b=util['format'](_0x0cef('0xb5'),_0x36b111['params']['id'],_0x193bb9);var _0x984c70=path[_0x0cef('0x76')](_0x427dbb,_0x21a79b);var _0x2361d0=[];_0x2361d0[_0x0cef('0xa8')]({'model':db[_0x0cef('0x81')],'as':_0x0cef('0x81'),'attributes':['id',_0x0cef('0x51')],'raw':!![]});_0x2361d0['push']({'model':db[_0x0cef('0x64')],'as':_0x0cef('0x65'),'attributes':['id',_0x0cef('0xb6'),_0x0cef('0xb7')],'raw':!![]});if(_0x36b111['query'][_0x0cef('0xb4')]){_0x2361d0[_0x0cef('0xa8')]({'model':db['Attachment'],'as':_0x0cef('0x71'),'raw':!![]});}var _0x59a130=[{'model':db[_0x0cef('0x61')],'as':_0x0cef('0x80'),'attributes':['id','body',_0x0cef('0x8e'),_0x0cef('0x8f'),_0x0cef('0xa7'),_0x0cef('0xb8')],'include':_0x2361d0}];_0x59a130[_0x0cef('0xa8')]({'model':db[_0x0cef('0x4b')],'as':_0x0cef('0xb9'),'attributes':['id',_0x0cef('0x2a')]});_0x59a130[_0x0cef('0xa8')]({'model':db[_0x0cef('0x81')],'as':_0x0cef('0xba'),'attributes':['id',_0x0cef('0x51')]});return db['ChatInteraction']['find']({'where':{'id':_0x36b111[_0x0cef('0x3c')]['id']},'include':_0x59a130})['then'](handleEntityNotFound(_0xbacfe6,null))['then'](function(_0x160b66){if(_0x160b66){var _0x523ef8=_0x160b66[_0x0cef('0xbb')]({'plain':!![]});fs[_0x0cef('0xbc')](_0x19b7f6);var _0x4dc6e9={'channel':_0x0cef('0xbd'),'account':_0x523ef8[_0x0cef('0xb9')]['name'],'agent':_0x523ef8['Owner']?_0x523ef8[_0x0cef('0xba')][_0x0cef('0x51')]:_0x0cef('0xbe'),'createdAt':moment(_0x523ef8[_0x0cef('0x8e')])[_0x0cef('0x7c')](_0x0cef('0xbf'))[_0x0cef('0xc0')](),'closedAt':_0x523ef8[_0x0cef('0x6b')]?moment(_0x523ef8[_0x0cef('0xc1')])['format']('YYYY-MM-DD\x20HH:mm:ss')['toString']():'','disposition':_0x523ef8[_0x0cef('0xc2')],'chatInfo':{'browser':_0x523ef8[_0x0cef('0xc3')],'os':_0x523ef8['osName'],'referer':_0x523ef8[_0x0cef('0xc4')],'customerIp':_0x523ef8[_0x0cef('0xc5')],'customerPort':_0x523ef8['customerPort']?_0x523ef8[_0x0cef('0xc6')]:_0x0cef('0xbe')},'messages':_(_0x523ef8[_0x0cef('0x80')])[_0x0cef('0xc7')]()['filter']({'secret':![]})[_0x0cef('0x31')](function(_0x24296a){if(_0x24296a[_0x0cef('0x71')]){var _0x5ea444=path[_0x0cef('0x76')](_0x425ffa,_0x24296a[_0x0cef('0x71')][_0x0cef('0x6f')]);if(fs['existsSync'](_0x5ea444)){fs[_0x0cef('0xc8')](_0x5ea444)[_0x0cef('0xc9')](fs[_0x0cef('0xca')](path[_0x0cef('0x76')](_0x19b7f6,_0x24296a[_0x0cef('0x71')][_0x0cef('0x6f')])));}}return{'date':moment(_0x24296a[_0x0cef('0x8e')])['format'](_0x0cef('0xbf'))['toString'](),'sender':_0x24296a[_0x0cef('0x8f')]==='out'?_0x24296a[_0x0cef('0x81')]?_0x24296a[_0x0cef('0x81')]['fullname']:_0x0cef('0x86'):_0x24296a[_0x0cef('0x65')]['firstName']+(_0x24296a[_0x0cef('0x65')]['lastName']?'\x20'+_0x24296a['Contact']['lastName']:''),'body':_0x24296a[_0x0cef('0x71')]?_0x24296a[_0x0cef('0x71')][_0x0cef('0x6f')]:_0x24296a[_0x0cef('0x49')],'direction':_0x24296a[_0x0cef('0x8f')]===_0x0cef('0x60')?'A':'C','secret':_0x24296a[_0x0cef('0xa7')],'read':_0x24296a[_0x0cef('0xb8')],'attachment':_0x24296a[_0x0cef('0x71')]};})[_0x0cef('0xcb')]()};return ejs[_0x0cef('0xcc')](path['join'](config[_0x0cef('0x77')],_0x0cef('0xb3'),_0x0cef('0xcd'),_0x0cef('0xce')),{'interaction':_0x4dc6e9})[_0x0cef('0x29')](function(_0x5eace9){var _0x4b4598=path[_0x0cef('0x76')](_0x19b7f6,_0x0cef('0xcf')+_0x523ef8['id']+'-'+_0x193bb9+_0x0cef('0xd0'));var _0x51af19={'path':_0x4b4598,'channel':'Chat','interactionId':_0x523ef8['id']};return pdf[_0x0cef('0xd1')](_0x5eace9,_0x51af19);})['then'](function(){return new Promise(function(_0x1e375e,_0x1ccb4c){zipdir(_0x19b7f6,{'saveTo':_0x984c70},function(_0x367f2c,_0x1c98c1){if(_0x367f2c)return _0x1ccb4c(_0x367f2c);return _0x1e375e(_0x1c98c1);});})[_0x0cef('0x29')](function(){return new BPromise(function(_0x2947b5,_0x2ac9ef){rimraf(_0x19b7f6,function(_0x17a6d8){if(_0x17a6d8)_0x2ac9ef(_0x17a6d8);return _0x2947b5();});});})[_0x0cef('0x29')](function(){return _0xbacfe6['download'](_0x984c70,_0x21a79b,function(_0x17d712){if(_0x17d712){logger[_0x0cef('0x19')](_0x0cef('0xd2'),_0x17d712);}else{fs[_0x0cef('0xd3')](_0x984c70);}});});});}else{return _0xbacfe6[_0x0cef('0x1e')](0xc8);}})['catch'](handleError(_0xbacfe6,null));};