Built motion from commit da617fac.|2.6.6
[motion2.git] / server / api / chatInteraction / chatInteraction.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x3a2d=['rawAttributes','filters','intersection','attributes','fields','includeAll','include','merge','options','create','body','update','find','describe','createVidaooSession','findOne','ChatWebsite','vidaooApiKey','vidaooEscalation','vidaooNote','fullname','email','POST','vidaooTopic','isNull','follow','vidaooMetadata','parse','Sequelize','Error\x20in\x20conversion\x20vidaooMetadata','ValidationError','join_url','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','customUpdate','Contact','abandon','entity\x20not\x20found','Interaction\x20already\x20assigned','closed','AbandonInteraction','attachmentUpload','originalname','basename','file','filename','mimetype','attachmentDownload','Unauthorized','Attachment','attachId','ChatOfflineMessageId','join','root','offline-chat/','download','close','mailTranscript','server/files/chat/upload/','format','transcript-%s.txt','now','pathTranscript','ChatMessage','User','ChatWebsiteId','CmContact','ContactId','Messages','length','%s%d','agentAlias','System','customer','Visitor','agentIdentifier','website_alias','UserId','agent_alias','alias','agent_fullname','[%s]\x20%s:\x20%s\x0a','MM/DD/YYYY\x20HH:mm:ss','direction','appendFileSync','MailAccount','MailServerOut','Smtp','CloudProvider','SendMail','\x22%s\x22\x20<%s>','Mail\x20Transcript','addMessage','ids','omit','getMessages','hasOwnProperty','nolimit','order','sort','where','pick','ChatInteractionId','filter','$gte','split','YYYY-MM-DD\x20HH:mm:ss','getMyMessages','includeAgent','push','rows','addTags','spread','Tag','color','emit','removeTags','unix','toString','files','server','attachments','transcript-%d-%s.zip','createdAt','secret','read','Account','get','mkdirSync','Chat','Owner','N.A.','closedAt','disposition','osName','customerIp','customerPort','tail','existsSync','createReadStream','firstName','lastName','out','value','renderFile','views','downloadInteraction.ejs','transcript-','.pdf','createPdfFromHTML','err','zip-dir','request-promise','mustache','util','path','ejs','ioredis','../../components/interaction/service','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./chatInteraction.socket','register','jayson/promise','client','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','message','sendStatus','status','limit','undefined','count','offset','set','Content-Range','json','destroy','stack','name','send','render','contact','agent','account','index','map','type','key','findAll','chat','query','user','catch','params','model','keys','ChatInteraction'];(function(_0xaa87c6,_0x20ed4f){var _0x4df3ed=function(_0x3c8b81){while(--_0x3c8b81){_0xaa87c6['push'](_0xaa87c6['shift']());}};_0x4df3ed(++_0x20ed4f);}(_0x3a2d,0x169));var _0xd3a2=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3a2d[_0x3dd15e];return _0x231fd0;};'use strict';var rimraf=require('rimraf');var zipdir=require(_0xd3a2('0x0'));var rp=require(_0xd3a2('0x1'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xd3a2('0x2'));var util=require(_0xd3a2('0x3'));var path=require(_0xd3a2('0x4'));var ejs=require(_0xd3a2('0x5'));var fs=require('fs');var _=require('lodash');var Redis=require(_0xd3a2('0x6'));var interaction=require(_0xd3a2('0x7'));var qs=require(_0xd3a2('0x8'));var pdf=require('../../components/export/pdf');var logger=require(_0xd3a2('0x9'))(_0xd3a2('0xa'));var config=require(_0xd3a2('0xb'));var db=require(_0xd3a2('0xc'))['db'];config[_0xd3a2('0xd')]=_['defaults'](config[_0xd3a2('0xd')],{'host':_0xd3a2('0xe'),'port':0x18eb});var socket=require(_0xd3a2('0xf'))(new Redis(config['redis']));require(_0xd3a2('0x10'))[_0xd3a2('0x11')](socket);var jayson=require(_0xd3a2('0x12'));var client=jayson[_0xd3a2('0x13')]['http']({'port':0x232b});var client9004=jayson[_0xd3a2('0x13')]['http']({'port':0x232c});function respondWithRpcPromise(_0x4a2891,_0x304a13,_0x5964b0,_0x3afb38){return new BPromise(function(_0x42f1e9,_0x2c1347){var _0x48371f=_0x3afb38||client;return _0x48371f['request'](_0x4a2891,_0x5964b0)[_0xd3a2('0x14')](function(_0x47b003){logger[_0xd3a2('0x15')](_0xd3a2('0x16'),_0x304a13,_0xd3a2('0x17'));logger[_0xd3a2('0x18')](_0xd3a2('0x19'),_0x304a13,_0xd3a2('0x17'),JSON[_0xd3a2('0x1a')](_0x47b003));if(_0x47b003[_0xd3a2('0x1b')]){if(_0x47b003['error']['code']===0x1f4){logger[_0xd3a2('0x1b')](_0xd3a2('0x16'),_0x304a13,_0x47b003[_0xd3a2('0x1b')][_0xd3a2('0x1c')]);return _0x2c1347(_0x47b003[_0xd3a2('0x1b')]['message']);}logger[_0xd3a2('0x1b')](_0xd3a2('0x16'),_0x304a13,_0x47b003['error'][_0xd3a2('0x1c')]);return _0x42f1e9(_0x47b003[_0xd3a2('0x1b')][_0xd3a2('0x1c')]);}else{logger['info']('ChatInteraction,\x20%s,\x20%s',_0x304a13,_0xd3a2('0x17'));_0x42f1e9(_0x47b003['result'][_0xd3a2('0x1c')]);}})['catch'](function(_0x50c604){logger['error'](_0xd3a2('0x16'),_0x304a13,_0x50c604);_0x2c1347(_0x50c604);});});}function respondWithStatusCode(_0x301214,_0xcf1792){_0xcf1792=_0xcf1792||0xcc;return function(_0x1ee570){if(_0x1ee570){return _0x301214[_0xd3a2('0x1d')](_0xcf1792);}return _0x301214[_0xd3a2('0x1e')](_0xcf1792)['end']();};}function respondWithResult(_0x29e196,_0x383c92){_0x383c92=_0x383c92||0xc8;return function(_0x546886){if(_0x546886){return _0x29e196[_0xd3a2('0x1e')](_0x383c92)['json'](_0x546886);}};}function respondWithFilteredResult(_0x5822da,_0x49e0af){return function(_0x35a739){if(_0x35a739){var _0x340ce6=typeof _0x49e0af['offset']==='undefined'&&typeof _0x49e0af[_0xd3a2('0x1f')]===_0xd3a2('0x20');var _0x525a4e=_0x35a739[_0xd3a2('0x21')];var _0x315aff=_0x340ce6?0x0:_0x49e0af['offset'];var _0xf9f47f=_0x340ce6?_0x35a739[_0xd3a2('0x21')]:_0x49e0af[_0xd3a2('0x22')]+_0x49e0af[_0xd3a2('0x1f')];var _0x4f3cf8;if(_0xf9f47f>=_0x525a4e){_0xf9f47f=_0x525a4e;_0x4f3cf8=0xc8;}else{_0x4f3cf8=0xce;}_0x5822da['status'](_0x4f3cf8);return _0x5822da[_0xd3a2('0x23')](_0xd3a2('0x24'),_0x315aff+'-'+_0xf9f47f+'/'+_0x525a4e)[_0xd3a2('0x25')](_0x35a739);}return null;};}function saveUpdates(_0x3841f7){return function(_0x229322){if(_0x229322){return _0x229322['update'](_0x3841f7)[_0xd3a2('0x14')](function(_0x39f209){return _0x39f209;});}return null;};}function removeEntity(_0x575937){return function(_0x29bf89){if(_0x29bf89){return _0x29bf89[_0xd3a2('0x26')]()[_0xd3a2('0x14')](function(){_0x575937[_0xd3a2('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x16afac){return function(_0x5265fa){if(!_0x5265fa){_0x16afac[_0xd3a2('0x1d')](0x194);}return _0x5265fa;};}function handleError(_0x24fb96,_0x46b71c){_0x46b71c=_0x46b71c||0x1f4;return function(_0x56720d){logger['error'](_0x56720d[_0xd3a2('0x27')]);if(_0x56720d[_0xd3a2('0x28')]){delete _0x56720d[_0xd3a2('0x28')];}_0x24fb96[_0xd3a2('0x1e')](_0x46b71c)[_0xd3a2('0x29')](_0x56720d);};}function getMustacheRender(_0x484f5f,_0x1db1d7){return Mustache[_0xd3a2('0x2a')](_0x484f5f,_['merge'](_0x1db1d7['body'],{'contact':_0x1db1d7[_0xd3a2('0x2b')],'message':_0x1db1d7[_0xd3a2('0x1c')],'agent':_0x1db1d7[_0xd3a2('0x2c')],'interaction':_0x1db1d7['interaction'],'account':_0x1db1d7[_0xd3a2('0x2d')]}))||'';}exports[_0xd3a2('0x2e')]=function(_0x336220,_0x1de314){var _0x5a8670={};var _0xab06ac=_[_0xd3a2('0x2f')](db['ChatInteraction']['rawAttributes'],function(_0x565833){return{'name':_0x565833['fieldName'],'type':_0x565833[_0xd3a2('0x30')][_0xd3a2('0x31')]};});_0x5a8670=qs['getOptions'](_0xab06ac,_0x336220);return interaction[_0xd3a2('0x32')](_0xd3a2('0x33'),_0x336220[_0xd3a2('0x34')],_0x336220[_0xd3a2('0x35')],_0x5a8670,_0xab06ac)['then'](respondWithFilteredResult(_0x1de314,_0x5a8670))[_0xd3a2('0x36')](handleError(_0x1de314,null));};exports['show']=function(_0x407be8,_0x3a9615){var _0xc930a3={'raw':![],'where':{'id':_0x407be8[_0xd3a2('0x37')]['id']}},_0x7b2150={};_0x7b2150[_0xd3a2('0x38')]=_[_0xd3a2('0x39')](db[_0xd3a2('0x3a')][_0xd3a2('0x3b')]);_0x7b2150[_0xd3a2('0x34')]=_[_0xd3a2('0x39')](_0x407be8['query']);_0x7b2150[_0xd3a2('0x3c')]=_[_0xd3a2('0x3d')](_0x7b2150[_0xd3a2('0x38')],_0x7b2150['query']);_0xc930a3[_0xd3a2('0x3e')]=_[_0xd3a2('0x3d')](_0x7b2150['model'],qs[_0xd3a2('0x3f')](_0x407be8[_0xd3a2('0x34')][_0xd3a2('0x3f')]));_0xc930a3['attributes']=_0xc930a3['attributes']['length']?_0xc930a3['attributes']:_0x7b2150[_0xd3a2('0x38')];if(_0x407be8['query'][_0xd3a2('0x40')]){_0xc930a3[_0xd3a2('0x41')]=[{'all':!![]}];}_0xc930a3=_[_0xd3a2('0x42')]({},_0xc930a3,_0x407be8[_0xd3a2('0x43')]);return db['ChatInteraction']['find'](_0xc930a3)[_0xd3a2('0x14')](handleEntityNotFound(_0x3a9615,null))['then'](respondWithResult(_0x3a9615,null))['catch'](handleError(_0x3a9615,null));};exports[_0xd3a2('0x44')]=function(_0x3ec1fb,_0x18a672){return db[_0xd3a2('0x3a')]['create'](_0x3ec1fb[_0xd3a2('0x45')],{})[_0xd3a2('0x14')](respondWithResult(_0x18a672,0xc9))[_0xd3a2('0x36')](handleError(_0x18a672,null));};exports[_0xd3a2('0x46')]=function(_0x325c0d,_0x298557){if(_0x325c0d[_0xd3a2('0x45')]['id']){delete _0x325c0d['body']['id'];}return db[_0xd3a2('0x3a')][_0xd3a2('0x47')]({'where':{'id':_0x325c0d[_0xd3a2('0x37')]['id']}})[_0xd3a2('0x14')](handleEntityNotFound(_0x298557,null))[_0xd3a2('0x14')](saveUpdates(_0x325c0d[_0xd3a2('0x45')],null))[_0xd3a2('0x14')](respondWithResult(_0x298557,null))[_0xd3a2('0x36')](handleError(_0x298557,null));};exports['destroy']=function(_0x1dca0a,_0x2719fd){return db['ChatInteraction']['find']({'where':{'id':_0x1dca0a[_0xd3a2('0x37')]['id']}})[_0xd3a2('0x14')](handleEntityNotFound(_0x2719fd,null))[_0xd3a2('0x14')](removeEntity(_0x2719fd,null))[_0xd3a2('0x36')](handleError(_0x2719fd,null));};exports[_0xd3a2('0x48')]=function(_0x425a6f,_0x2fa2bd){return db['ChatInteraction'][_0xd3a2('0x48')]()[_0xd3a2('0x14')](respondWithResult(_0x2fa2bd,null))[_0xd3a2('0x36')](handleError(_0x2fa2bd,null));};exports[_0xd3a2('0x49')]=function(_0x1ce12a,_0x5f3da2){var _0x201b34=_0x1ce12a[_0xd3a2('0x37')]['id'];var _0x15d713;var _0x22d4c7;var _0x2e0a42;return db[_0xd3a2('0x3a')][_0xd3a2('0x4a')]({'where':{'id':_0x201b34}})['then'](function(_0x1e8f3a){_0x15d713=_0x1e8f3a;return db[_0xd3a2('0x4b')][_0xd3a2('0x4a')]({'where':{'id':_0x1e8f3a['ChatWebsiteId']},'attributes':['id',_0xd3a2('0x4c'),_0xd3a2('0x4d'),'vidaooTopic',_0xd3a2('0x4e'),'vidaooMetadata'],'raw':!![]});})[_0xd3a2('0x14')](function(_0x3f32c8){if(_0x3f32c8&&_0x3f32c8[_0xd3a2('0x4c')]&&_0x3f32c8['vidaooEscalation']){_0x22d4c7=_0x3f32c8;var _0x5b3f2={'interaction':{'id':_0x201b34},'agent':{'id':_0x1ce12a[_0xd3a2('0x35')]['id'],'name':_0x1ce12a[_0xd3a2('0x35')][_0xd3a2('0x28')],'fullname':_0x1ce12a['user'][_0xd3a2('0x4f')],'email':_0x1ce12a['user'][_0xd3a2('0x50')]},'contact':_0x1ce12a[_0xd3a2('0x45')][_0xd3a2('0x2b')],'account':_0x1ce12a[_0xd3a2('0x45')][_0xd3a2('0x2d')]};var _0x1bf660={'rejectUnauthorized':![],'method':_0xd3a2('0x51'),'url':'https://api-vidaoo.xcally.com/api/v1/meetings','headers':{'X-APIKEY':_0x3f32c8[_0xd3a2('0x4c')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x1ce12a[_0xd3a2('0x35')][_0xd3a2('0x50')]],'buttons':null,'topic':_0x22d4c7[_0xd3a2('0x52')],'note':_[_0xd3a2('0x53')](_0x22d4c7[_0xd3a2('0x4e')])?null:getMustacheRender(_0x22d4c7['vidaooNote'],_0x5b3f2),'metadata':null},'redirect':_0xd3a2('0x54'),'json':!![]};try{if(!_[_0xd3a2('0x53')](_0x22d4c7[_0xd3a2('0x55')])){var _0x59686d=getMustacheRender(_0x22d4c7[_0xd3a2('0x55')],_0x5b3f2);var _0x2bd1de=JSON[_0xd3a2('0x56')](_0x59686d);_0x1bf660[_0xd3a2('0x45')]['metadata']=_0x2bd1de;}}catch(_0x3ca44a){throw new db[(_0xd3a2('0x57'))]['ValidationError'](_0xd3a2('0x58'));}return rp(_0x1bf660);}else{throw new db[(_0xd3a2('0x57'))][(_0xd3a2('0x59'))]('Error\x20in\x20Vidaoo\x20configuration');}})[_0xd3a2('0x14')](function(_0x3a2a0d){_0x2e0a42=_0x3a2a0d;if(_0x2e0a42['id']){var _0x315f28={'body':_0x2e0a42[_0xd3a2('0x5a')],'ChatWebsiteId':_0x22d4c7['id'],'ChatInteractionId':_0x15d713['id'],'direction':'out','UserId':_0x1ce12a[_0xd3a2('0x35')]['id']};return db['ChatMessage'][_0xd3a2('0x44')](_0x315f28,{});}else{throw new db[(_0xd3a2('0x57'))]['ValidationError'](_0xd3a2('0x5b'));}})[_0xd3a2('0x14')](function(){return _0x15d713[_0xd3a2('0x5c')]({'vidaooSessionId':_0x2e0a42['id']});})[_0xd3a2('0x14')](respondWithResult(_0x5f3da2,null))[_0xd3a2('0x36')](handleError(_0x5f3da2,null));};exports[_0xd3a2('0x5d')]=function(_0x25290f,_0x5b943f){if(_0x25290f[_0xd3a2('0x45')]['id']){delete _0x25290f[_0xd3a2('0x45')]['id'];}return db[_0xd3a2('0x3a')]['find']({'where':{'id':_0x25290f[_0xd3a2('0x37')]['id']},'include':[{'model':db['CmContact'],'as':_0xd3a2('0x5e')}]})['then'](handleEntityNotFound(_0x5b943f,null))[_0xd3a2('0x14')](saveUpdates(_0x25290f[_0xd3a2('0x45')],null))[_0xd3a2('0x14')](respondWithResult(_0x5b943f,null))[_0xd3a2('0x36')](handleError(_0x5b943f,null));};exports[_0xd3a2('0x5f')]=function(_0x424742,_0x20bbc9){if(_0x424742[_0xd3a2('0x45')]['id']){delete _0x424742[_0xd3a2('0x45')]['id'];}return db[_0xd3a2('0x3a')][_0xd3a2('0x47')]({'where':{'id':_0x424742[_0xd3a2('0x37')]['id']}})[_0xd3a2('0x14')](function(_0x471226){if(!_0x471226){logger['error']('abandonInteraction,\x20%s,\x20%s,\x20%s',_0xd3a2('0x5f'),0x194,_0xd3a2('0x60'));_0x20bbc9[_0xd3a2('0x1d')](0x194);}else{if(_0x471226['UserId']){throw new db[(_0xd3a2('0x57'))][(_0xd3a2('0x59'))](_0xd3a2('0x61'));}}return _0x471226;})['then'](function(_0x60a9c1){if(_0x60a9c1){return _0x60a9c1['update']({'closed':_0x424742[_0xd3a2('0x45')][_0xd3a2('0x62')],'disposition':_0x424742[_0xd3a2('0x45')]['disposition']})[_0xd3a2('0x14')](function(_0x587594){return _0x587594;});}})[_0xd3a2('0x14')](function(){return respondWithRpcPromise(_0xd3a2('0x63'),_0xd3a2('0x5f'),_0x424742[_0xd3a2('0x45')],client9004);})[_0xd3a2('0x14')](respondWithResult(_0x20bbc9,null))[_0xd3a2('0x36')](handleError(_0x20bbc9,null));};exports[_0xd3a2('0x64')]=function(_0x401adb,_0x481ab6){_0x401adb[_0xd3a2('0x45')]['name']=_0x401adb['file'][_0xd3a2('0x65')];_0x401adb[_0xd3a2('0x45')][_0xd3a2('0x66')]=_0x401adb[_0xd3a2('0x67')][_0xd3a2('0x68')];_0x401adb[_0xd3a2('0x45')]['type']=_0x401adb[_0xd3a2('0x67')][_0xd3a2('0x69')];return db['Attachment']['create'](_0x401adb[_0xd3a2('0x45')])[_0xd3a2('0x14')](respondWithResult(_0x481ab6,0xc9))[_0xd3a2('0x36')](handleError(_0x481ab6,null));};exports[_0xd3a2('0x6a')]=function(_0x128381,_0x540a05){return db[_0xd3a2('0x3a')][_0xd3a2('0x4a')]({'where':{'id':_0x128381[_0xd3a2('0x37')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x540a05,null))['then'](function(_0x534165){if(_0x534165){if(_0x534165['closed']){return _0x540a05[_0xd3a2('0x1e')](0x193)[_0xd3a2('0x25')]({'status':0x193,'message':_0xd3a2('0x6b')});}return db[_0xd3a2('0x6c')][_0xd3a2('0x4a')]({'where':{'id':_0x128381['query'][_0xd3a2('0x6d')]},'raw':!![]})['then'](handleEntityNotFound(_0x540a05,null));}})[_0xd3a2('0x14')](function(_0x1949f2){if(_0x1949f2){var _0x48b8a2=_0x1949f2[_0xd3a2('0x6e')]!==null;var _0xee6f5d=path[_0xd3a2('0x6f')](config[_0xd3a2('0x70')],'server/files/attachments/');if(_0x48b8a2){_0xee6f5d=path[_0xd3a2('0x6f')](_0xee6f5d,_0xd3a2('0x71'));}var _0x33380c=path[_0xd3a2('0x6f')](_0xee6f5d,_0x1949f2['basename']);return _0x540a05[_0xd3a2('0x72')](_0x33380c);}})[_0xd3a2('0x36')](handleError(_0x540a05,null));};exports[_0xd3a2('0x73')]=function(_0x1aac99,_0xbdb1ce){var _0x366162=null;var _0xd94ca7=null;var _0x5b1cd8=null;if(_0x1aac99[_0xd3a2('0x45')]['id']){delete _0x1aac99[_0xd3a2('0x45')]['id'];}if(_0x1aac99[_0xd3a2('0x45')][_0xd3a2('0x74')]){_0x5b1cd8=path[_0xd3a2('0x6f')](config[_0xd3a2('0x70')],_0xd3a2('0x75'),util[_0xd3a2('0x76')](_0xd3a2('0x77'),Date[_0xd3a2('0x78')]()));_0x1aac99[_0xd3a2('0x45')][_0xd3a2('0x79')]=_0x5b1cd8;}return db['ChatInteraction'][_0xd3a2('0x47')]({'where':{'id':_0x1aac99[_0xd3a2('0x37')]['id']},'include':[{'model':db[_0xd3a2('0x7a')],'as':'Messages','include':[{'model':db[_0xd3a2('0x7b')],'as':_0xd3a2('0x7b')}]}]})[_0xd3a2('0x14')](handleEntityNotFound(_0xbdb1ce,null))[_0xd3a2('0x14')](saveUpdates(_0x1aac99[_0xd3a2('0x45')],null))['then'](function(_0x3a7be7){if(_0x3a7be7){_0x366162=_0x3a7be7;return db[_0xd3a2('0x4b')][_0xd3a2('0x47')]({'where':{'id':_0x366162[_0xd3a2('0x7c')]}});}})[_0xd3a2('0x14')](function(_0x2cbbdf){if(_0x2cbbdf){_0xd94ca7=_0x2cbbdf;return db[_0xd3a2('0x7d')][_0xd3a2('0x47')]({'where':{'id':_0x366162[_0xd3a2('0x7e')]}});}})[_0xd3a2('0x14')](function(_0x5f26db){if(_0x5f26db){if(_0x5b1cd8){var _0x1bcdb1=null;for(var _0x9b58e0=0x1;_0x9b58e0<_0x366162[_0xd3a2('0x7f')][_0xd3a2('0x80')];++_0x9b58e0){_0x1bcdb1=_0x366162[_0xd3a2('0x7f')][_0x9b58e0];var _0x5a4a6d=_0x1bcdb1['UserId']?util[_0xd3a2('0x76')](_0xd3a2('0x81'),_0xd94ca7[_0xd3a2('0x82')],_0x1bcdb1['UserId']):_0xd3a2('0x83');var _0x28133c=_0x1aac99['body'][_0xd3a2('0x84')]||util[_0xd3a2('0x76')]('%s%d',_0xd3a2('0x85'),_0x1bcdb1[_0xd3a2('0x7e')]);switch(_0xd94ca7[_0xd3a2('0x86')]){case _0xd3a2('0x87'):_0x5a4a6d=_0x1bcdb1[_0xd3a2('0x88')]?util[_0xd3a2('0x76')](_0xd3a2('0x81'),_0xd94ca7['agentAlias'],_0x1bcdb1[_0xd3a2('0x88')]):'System';break;case _0xd3a2('0x89'):_0x5a4a6d=_0x1bcdb1[_0xd3a2('0x88')]?_0x1bcdb1['User'][_0xd3a2('0x8a')]||_0x1bcdb1[_0xd3a2('0x7b')][_0xd3a2('0x4f')]:_0xd3a2('0x83');break;case _0xd3a2('0x8b'):_0x5a4a6d=_0x1bcdb1[_0xd3a2('0x88')]?_0x1bcdb1[_0xd3a2('0x7b')][_0xd3a2('0x4f')]:_0xd3a2('0x83');break;default:_0x5a4a6d=_0x1bcdb1['UserId']?util[_0xd3a2('0x76')]('%s%d',_0xd94ca7[_0xd3a2('0x82')],_0x1bcdb1[_0xd3a2('0x88')]):_0xd3a2('0x83');}var _0x165cdc=util['format'](_0xd3a2('0x8c'),moment(_0x1bcdb1['createdAt'])[_0xd3a2('0x76')](_0xd3a2('0x8d')),_0x1bcdb1[_0xd3a2('0x8e')]==='in'?_0x28133c:_0x5a4a6d,_0x1bcdb1[_0xd3a2('0x45')]);if(!_0x1bcdb1['secret']){fs[_0xd3a2('0x8f')](_0x5b1cd8,_0x165cdc);}}return db[_0xd3a2('0x90')][_0xd3a2('0x4a')]({'where':{'service':!![]},'include':[{'model':db[_0xd3a2('0x91')],'as':_0xd3a2('0x92'),'raw':!![],'include':[{'model':db[_0xd3a2('0x93')],'as':_0xd3a2('0x93'),'raw':!![]}]}]});}}})[_0xd3a2('0x14')](function(_0x194a9c){if(!_0x194a9c||!_0x194a9c[_0xd3a2('0x92')]||!_0x1aac99['body'])return _0x366162;var _0x49d030=_0x194a9c['getSmtpOptions']();return respondWithRpcPromise(_0xd3a2('0x94'),'sendMail',{'account':_0x49d030,'message':{'from':util[_0xd3a2('0x76')](_0xd3a2('0x95'),_0x194a9c[_0xd3a2('0x28')],_0x194a9c[_0xd3a2('0x50')]||_0x194a9c[_0xd3a2('0x92')][_0xd3a2('0x35')]),'to':_0x1aac99['body'][_0xd3a2('0x74')],'subject':_0xd3a2('0x96'),'text':util[_0xd3a2('0x76')]('Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a',_0x1aac99[_0xd3a2('0x45')][_0xd3a2('0x74')]),'attachments':[{'path':_0x5b1cd8}]}})[_0xd3a2('0x14')](function(){return _0x366162;})[_0xd3a2('0x36')](function(_0x404d00){logger[_0xd3a2('0x1b')](_0x404d00);});})['then'](respondWithStatusCode(_0xbdb1ce,0xc8))[_0xd3a2('0x36')](handleError(_0xbdb1ce,null));};exports[_0xd3a2('0x97')]=function(_0x40d87b,_0x22837e){return db['ChatMessage'][_0xd3a2('0x47')]({'where':{'id':_0x40d87b['params']['id']}})[_0xd3a2('0x14')](handleEntityNotFound(_0x22837e,null))['then'](function(_0x31689a){if(_0x31689a){return _0x31689a['addMessage'](_0x40d87b[_0xd3a2('0x45')][_0xd3a2('0x98')],_[_0xd3a2('0x99')](_0x40d87b[_0xd3a2('0x45')],[_0xd3a2('0x98'),'id'])||{});}})[_0xd3a2('0x14')](respondWithResult(_0x22837e,null))['catch'](handleError(_0x22837e,null));};exports[_0xd3a2('0x9a')]=function(_0x31f618,_0x448f1c){var _0x141a62={'raw':![],'where':{}};var _0x52a704={};var _0x3d5ddc={'count':0x0,'rows':[]};return db[_0xd3a2('0x3a')][_0xd3a2('0x4a')]({'where':{'id':_0x31f618['params']['id']}})[_0xd3a2('0x14')](handleEntityNotFound(_0x448f1c,null))[_0xd3a2('0x14')](function(_0x1ba39b){if(_0x1ba39b){_0x52a704[_0xd3a2('0x38')]=_[_0xd3a2('0x39')](db['ChatMessage'][_0xd3a2('0x3b')]);_0x52a704[_0xd3a2('0x34')]=_['keys'](_0x31f618[_0xd3a2('0x34')]);_0x52a704[_0xd3a2('0x3c')]=_[_0xd3a2('0x3d')](_0x52a704[_0xd3a2('0x38')],_0x52a704[_0xd3a2('0x34')]);_0x141a62[_0xd3a2('0x3e')]=_[_0xd3a2('0x3d')](_0x52a704['model'],qs[_0xd3a2('0x3f')](_0x31f618[_0xd3a2('0x34')][_0xd3a2('0x3f')]));_0x141a62[_0xd3a2('0x3e')]=_0x141a62[_0xd3a2('0x3e')][_0xd3a2('0x80')]?_0x141a62[_0xd3a2('0x3e')]:_0x52a704['model'];if(!_0x31f618[_0xd3a2('0x34')][_0xd3a2('0x9b')](_0xd3a2('0x9c'))){_0x141a62['limit']=qs[_0xd3a2('0x1f')](_0x31f618[_0xd3a2('0x34')][_0xd3a2('0x1f')]);_0x141a62[_0xd3a2('0x22')]=qs[_0xd3a2('0x22')](_0x31f618['query'][_0xd3a2('0x22')]);}_0x141a62[_0xd3a2('0x9d')]=qs[_0xd3a2('0x9e')](_0x31f618[_0xd3a2('0x34')][_0xd3a2('0x9e')]);_0x141a62[_0xd3a2('0x9f')]=qs[_0xd3a2('0x3c')](_[_0xd3a2('0xa0')](_0x31f618[_0xd3a2('0x34')],_0x52a704[_0xd3a2('0x3c')]));_0x141a62['where'][_0xd3a2('0xa1')]=_0x1ba39b['id'];if(_0x31f618['query'][_0xd3a2('0xa2')]){_0x141a62['where']=_['merge'](_0x141a62[_0xd3a2('0x9f')],{'$or':_['map'](_0x141a62[_0xd3a2('0x3e')],function(_0x5f51ac){var _0x519ae9={};_0x519ae9[_0x5f51ac]={'$like':'%'+_0x31f618['query'][_0xd3a2('0xa2')]+'%'};return _0x519ae9;})});}if(_0x31f618[_0xd3a2('0x34')][_0xd3a2('0xa3')]){var _0x13595e=_0x31f618[_0xd3a2('0x34')][_0xd3a2('0xa3')][_0xd3a2('0xa4')](',');var _0x13f07c={};_0x13f07c[_0x13595e[0x0]]={'$gte':moment(_0x13595e[0x1])[_0xd3a2('0x76')](_0xd3a2('0xa5'))};_0x141a62[_0xd3a2('0x9f')]=_[_0xd3a2('0x42')](_0x141a62[_0xd3a2('0x9f')],_0x13f07c);}_0x141a62=_[_0xd3a2('0x42')]({},_0x141a62,_0x31f618[_0xd3a2('0x43')]);return db[_0xd3a2('0x7a')][_0xd3a2('0x21')]({'where':_0x141a62['where']})[_0xd3a2('0x14')](function(_0x442d3d){_0x3d5ddc['count']=_0x442d3d;if(_0x31f618[_0xd3a2('0x34')][_0xd3a2('0x40')]){_0x141a62['include']=[{'all':!![]}];}return db[_0xd3a2('0x7a')][_0xd3a2('0x32')](_0x141a62);})[_0xd3a2('0x14')](function(_0xef8852){_0x3d5ddc['rows']=_0xef8852;return _0x3d5ddc;});}})[_0xd3a2('0x14')](respondWithFilteredResult(_0x448f1c,_0x141a62))[_0xd3a2('0x36')](handleError(_0x448f1c,null));};exports[_0xd3a2('0xa6')]=function(_0x34060d,_0x48dc64){var _0x12f512={'where':{}},_0x209474={},_0x2f9b01={'count':0x0,'rows':[]};return db[_0xd3a2('0x3a')][_0xd3a2('0x4a')]({'where':{'id':_0x34060d['params']['id']}})['then'](handleEntityNotFound(_0x48dc64,null))[_0xd3a2('0x14')](function(_0x468a3e){if(_0x468a3e){_0x209474[_0xd3a2('0x38')]=_[_0xd3a2('0x39')](db['ChatMessage'][_0xd3a2('0x3b')]);_0x209474[_0xd3a2('0x34')]=_[_0xd3a2('0x39')](_0x34060d[_0xd3a2('0x34')]);_0x209474[_0xd3a2('0x3c')]=_[_0xd3a2('0x3d')](_0x209474[_0xd3a2('0x38')],_0x209474[_0xd3a2('0x34')]);_0x12f512[_0xd3a2('0x3e')]=_[_0xd3a2('0x3d')](_0x209474[_0xd3a2('0x38')],qs[_0xd3a2('0x3f')](_0x34060d[_0xd3a2('0x34')][_0xd3a2('0x3f')]));_0x12f512[_0xd3a2('0x3e')]=_0x12f512[_0xd3a2('0x3e')][_0xd3a2('0x80')]?_0x12f512[_0xd3a2('0x3e')]:_0x209474[_0xd3a2('0x38')];if(!_0x34060d[_0xd3a2('0x34')][_0xd3a2('0x9b')](_0xd3a2('0x9c'))){_0x12f512[_0xd3a2('0x1f')]=qs[_0xd3a2('0x1f')](_0x34060d['query'][_0xd3a2('0x1f')]);_0x12f512[_0xd3a2('0x22')]=qs[_0xd3a2('0x22')](_0x34060d[_0xd3a2('0x34')]['offset']);}_0x12f512['order']=qs['sort'](_0x34060d[_0xd3a2('0x34')]['sort']);_0x12f512['where']=qs[_0xd3a2('0x3c')](_[_0xd3a2('0xa0')](_0x34060d['query'],_0x209474[_0xd3a2('0x3c')]));_0x12f512[_0xd3a2('0x9f')]['ChatInteractionId']=_0x468a3e['id'];if(_0x34060d[_0xd3a2('0x34')]['filter']){_0x12f512['where']=_[_0xd3a2('0x42')](_0x12f512['where'],{'$or':_[_0xd3a2('0x2f')](_0x12f512[_0xd3a2('0x3e')],function(_0x4d1030){var _0x51dd1e={};_0x51dd1e[_0x4d1030]={'$like':'%'+_0x34060d[_0xd3a2('0x34')][_0xd3a2('0xa2')]+'%'};return _0x51dd1e;})});}_0x12f512[_0xd3a2('0x9f')]['secret']=![];if(_0x34060d[_0xd3a2('0x34')]['id']){_0x12f512[_0xd3a2('0x9f')]['id']={'$gt':_0x34060d[_0xd3a2('0x34')]['id']};}_0x12f512=_[_0xd3a2('0x42')]({},_0x12f512,_0x34060d[_0xd3a2('0x43')]);return db['ChatMessage'][_0xd3a2('0x21')]({'where':_0x12f512[_0xd3a2('0x9f')]})[_0xd3a2('0x14')](function(_0x106e7b){_0x2f9b01[_0xd3a2('0x21')]=_0x106e7b;_0x12f512[_0xd3a2('0x41')]=[];if(_0x34060d['query'][_0xd3a2('0xa7')]){_0x12f512['include'][_0xd3a2('0xa8')]({'model':db['User'],'as':'User','attributes':['id',_0xd3a2('0x4f'),'alias']});}if(_0x34060d[_0xd3a2('0x34')][_0xd3a2('0x40')]){_0x12f512['include']=[{'all':!![]}];}return db[_0xd3a2('0x7a')][_0xd3a2('0x32')](_0x12f512);})['then'](function(_0x3a62a6){_0x2f9b01[_0xd3a2('0xa9')]=_0x3a62a6;return _0x2f9b01;});}})[_0xd3a2('0x14')](respondWithFilteredResult(_0x48dc64,_0x12f512))['catch'](handleError(_0x48dc64,null));};exports[_0xd3a2('0xaa')]=function(_0x37f23d,_0x3638dc){return db[_0xd3a2('0x3a')][_0xd3a2('0x47')]({'where':{'id':_0x37f23d[_0xd3a2('0x37')]['id']}})[_0xd3a2('0x14')](handleEntityNotFound(_0x3638dc,null))[_0xd3a2('0x14')](function(_0x50e43c){if(_0x50e43c){return _0x50e43c['setTags'](_0x37f23d[_0xd3a2('0x45')][_0xd3a2('0x98')],_[_0xd3a2('0x99')](_0x37f23d[_0xd3a2('0x45')],[_0xd3a2('0x98'),'id'])||{})[_0xd3a2('0xab')](function(){return db[_0xd3a2('0xac')][_0xd3a2('0x32')]({'attributes':['id',_0xd3a2('0x28'),_0xd3a2('0xad')],'where':{'id':_0x37f23d[_0xd3a2('0x45')][_0xd3a2('0x98')]}});})[_0xd3a2('0x14')](function(_0x1e9b25){socket[_0xd3a2('0xae')]('chatInteractionTags:save',{'id':Number(_0x37f23d['params']['id']),'tags':_0x1e9b25||[]});return{'id':Number(_0x37f23d['params']['id']),'tags':_0x1e9b25||[]};});}})[_0xd3a2('0x14')](respondWithResult(_0x3638dc,null))[_0xd3a2('0x36')](handleError(_0x3638dc,null));};exports[_0xd3a2('0xaf')]=function(_0x1569a3,_0x1b2995){return db[_0xd3a2('0x3a')]['find']({'where':{'id':_0x1569a3[_0xd3a2('0x37')]['id']}})['then'](handleEntityNotFound(_0x1b2995,null))[_0xd3a2('0x14')](function(_0x26db4b){if(_0x26db4b){return _0x26db4b['removeTags'](_0x1569a3[_0xd3a2('0x34')][_0xd3a2('0x98')]);}})[_0xd3a2('0x14')](respondWithStatusCode(_0x1b2995,null))[_0xd3a2('0x36')](handleError(_0x1b2995,null));};exports[_0xd3a2('0x72')]=function(_0x5e9266,_0x1cb4ae){var _0x1a8cfd=moment()[_0xd3a2('0xb0')]()[_0xd3a2('0xb1')]();var _0x130e6a=path['join'](config[_0xd3a2('0x70')],'server',_0xd3a2('0xb2'),'tmp');var _0xe25068=path['join'](config[_0xd3a2('0x70')],_0xd3a2('0xb3'),'files',_0xd3a2('0xb4'));var _0xd7612e=path[_0xd3a2('0x6f')](_0x130e6a,_0x1a8cfd);var _0x7a7737=util[_0xd3a2('0x76')](_0xd3a2('0xb5'),_0x5e9266[_0xd3a2('0x37')]['id'],_0x1a8cfd);var _0x8cb96f=path['join'](_0x130e6a,_0x7a7737);var _0x2562a0=[];_0x2562a0['push']({'model':db[_0xd3a2('0x7b')],'as':_0xd3a2('0x7b'),'attributes':['id',_0xd3a2('0x4f')],'raw':!![]});_0x2562a0[_0xd3a2('0xa8')]({'model':db[_0xd3a2('0x7d')],'as':_0xd3a2('0x5e'),'attributes':['id','firstName','lastName'],'raw':!![]});if(_0x5e9266[_0xd3a2('0x34')][_0xd3a2('0xb4')]){_0x2562a0[_0xd3a2('0xa8')]({'model':db[_0xd3a2('0x6c')],'as':_0xd3a2('0x6c'),'raw':!![]});}var _0x27b020=[{'model':db[_0xd3a2('0x7a')],'as':_0xd3a2('0x7f'),'attributes':['id',_0xd3a2('0x45'),_0xd3a2('0xb6'),_0xd3a2('0x8e'),_0xd3a2('0xb7'),_0xd3a2('0xb8')],'include':_0x2562a0}];_0x27b020['push']({'model':db[_0xd3a2('0x4b')],'as':_0xd3a2('0xb9'),'attributes':['id','name']});_0x27b020[_0xd3a2('0xa8')]({'model':db['User'],'as':'Owner','attributes':['id',_0xd3a2('0x4f')]});return db[_0xd3a2('0x3a')]['find']({'where':{'id':_0x5e9266[_0xd3a2('0x37')]['id']},'include':_0x27b020})[_0xd3a2('0x14')](handleEntityNotFound(_0x1cb4ae,null))[_0xd3a2('0x14')](function(_0x263f61){if(_0x263f61){var _0x178605=_0x263f61[_0xd3a2('0xba')]({'plain':!![]});fs[_0xd3a2('0xbb')](_0xd7612e);var _0x3d687b={'channel':_0xd3a2('0xbc'),'account':_0x178605['Account']['name'],'agent':_0x178605['Owner']?_0x178605[_0xd3a2('0xbd')][_0xd3a2('0x4f')]:_0xd3a2('0xbe'),'createdAt':moment(_0x178605[_0xd3a2('0xb6')])[_0xd3a2('0x76')](_0xd3a2('0xa5'))[_0xd3a2('0xb1')](),'closedAt':_0x178605[_0xd3a2('0x62')]?moment(_0x178605[_0xd3a2('0xbf')])['format'](_0xd3a2('0xa5'))['toString']():'','disposition':_0x178605[_0xd3a2('0xc0')],'chatInfo':{'browser':_0x178605['browserName'],'os':_0x178605[_0xd3a2('0xc1')],'referer':_0x178605['referer'],'customerIp':_0x178605[_0xd3a2('0xc2')],'customerPort':_0x178605[_0xd3a2('0xc3')]?_0x178605[_0xd3a2('0xc3')]:_0xd3a2('0xbe')},'messages':_(_0x178605[_0xd3a2('0x7f')])[_0xd3a2('0xc4')]()[_0xd3a2('0xa2')]({'secret':![]})[_0xd3a2('0x2f')](function(_0x22a116){if(_0x22a116[_0xd3a2('0x6c')]){var _0x4d0dad=path[_0xd3a2('0x6f')](_0xe25068,_0x22a116['Attachment']['basename']);if(fs[_0xd3a2('0xc5')](_0x4d0dad)){fs[_0xd3a2('0xc6')](_0x4d0dad)['pipe'](fs['createWriteStream'](path[_0xd3a2('0x6f')](_0xd7612e,_0x22a116['Attachment'][_0xd3a2('0x66')])));}}return{'date':moment(_0x22a116['createdAt'])[_0xd3a2('0x76')](_0xd3a2('0xa5'))[_0xd3a2('0xb1')](),'sender':_0x22a116[_0xd3a2('0x8e')]==='out'?_0x22a116['User']?_0x22a116[_0xd3a2('0x7b')]['fullname']:_0xd3a2('0x83'):_0x22a116[_0xd3a2('0x5e')][_0xd3a2('0xc7')]+(_0x22a116[_0xd3a2('0x5e')]['lastName']?'\x20'+_0x22a116['Contact'][_0xd3a2('0xc8')]:''),'body':_0x22a116[_0xd3a2('0x6c')]?_0x22a116[_0xd3a2('0x6c')][_0xd3a2('0x66')]:_0x22a116['body'],'direction':_0x22a116[_0xd3a2('0x8e')]===_0xd3a2('0xc9')?'A':'C','secret':_0x22a116[_0xd3a2('0xb7')],'read':_0x22a116[_0xd3a2('0xb8')],'attachment':_0x22a116[_0xd3a2('0x6c')]};})[_0xd3a2('0xca')]()};return ejs[_0xd3a2('0xcb')](path[_0xd3a2('0x6f')](config[_0xd3a2('0x70')],_0xd3a2('0xb3'),_0xd3a2('0xcc'),_0xd3a2('0xcd')),{'interaction':_0x3d687b})[_0xd3a2('0x14')](function(_0xdac1d3){var _0xbde4a8=path['join'](_0xd7612e,_0xd3a2('0xce')+_0x178605['id']+'-'+_0x1a8cfd+_0xd3a2('0xcf'));var _0x150d07={'path':_0xbde4a8,'channel':'Chat','interactionId':_0x178605['id']};return pdf[_0xd3a2('0xd0')](_0xdac1d3,_0x150d07);})['then'](function(){return new Promise(function(_0x59ed47,_0x5b4076){zipdir(_0xd7612e,{'saveTo':_0x8cb96f},function(_0x13283a,_0x4b9e70){if(_0x13283a)return _0x5b4076(_0x13283a);return _0x59ed47(_0x4b9e70);});})[_0xd3a2('0x14')](function(){return new BPromise(function(_0x3d8176,_0x4141d3){rimraf(_0xd7612e,function(_0x3c1df5){if(_0x3c1df5)_0x4141d3(_0x3c1df5);return _0x3d8176();});});})[_0xd3a2('0x14')](function(){return _0x1cb4ae[_0xd3a2('0x72')](_0x8cb96f,_0x7a7737,function(_0x3c84d9){if(_0x3c84d9){logger['error'](_0xd3a2('0xd1'),_0x3c84d9);}else{fs['unlinkSync'](_0x8cb96f);}});});});}else{return _0x1cb4ae[_0xd3a2('0x1d')](0xc8);}})['catch'](handleError(_0x1cb4ae,null));};