Built motion from commit 20b39a97.|2.6.29
[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 _0xfc8a=['index','map','ChatInteraction','rawAttributes','fieldName','type','getOptions','findAll','chat','query','show','params','keys','filters','intersection','attributes','fields','length','model','includeAll','include','options','find','create','destroy','describe','findOne','ChatWebsite','ChatWebsiteId','vidaooApiKey','vidaooTopic','vidaooNote','vidaooEscalation','user','fullname','email','isNull','follow','vidaooMetadata','parse','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','Sequelize','Error\x20in\x20Vidaoo\x20configuration','join_url','out','ChatMessage','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','CmContact','Contact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','UserId','Interaction\x20already\x20assigned','disposition','AbandonInteraction','file','originalname','basename','filename','mimetype','Attachment','attachmentDownload','closed','json','Unauthorized','attachId','join','server/files/attachments/','close','mailTranscript','server/files/chat/upload/','format','transcript-%s.txt','now','pathTranscript','Messages','User','%s%d','agentAlias','System','Visitor','ContactId','agentIdentifier','alias','[%s]\x20%s:\x20%s\x0a','createdAt','MM/DD/YYYY\x20HH:mm:ss','direction','secret','appendFileSync','MailAccount','MailServerOut','Smtp','CloudProvider','getSmtpOptions','SendMail','sendMail','Mail\x20Transcript','addMessage','ids','omit','getMessages','hasOwnProperty','nolimit','order','sort','where','ChatInteractionId','filter','$gte','split','YYYY-MM-DD\x20HH:mm:ss','getMyMessages','pick','includeAgent','rows','addTags','setTags','Tag','color','removeTags','unix','toString','root','server','files','attachments','transcript-%d-%s.zip','push','firstName','lastName','read','Account','get','mkdirSync','Chat','Owner','N.A.','osName','referer','customerIp','customerPort','tail','existsSync','pipe','createWriteStream','views','downloadInteraction.ejs','transcript-','.pdf','createPdfFromHTML','download','unlinkSync','rimraf','request-promise','moment','mustache','util','path','ejs','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','../../components/export/pdf','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInteraction.socket','register','jayson/promise','client','http','request','then','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','ChatInteraction,\x20%s,\x20%s','message','info','result','catch','sendStatus','status','end','offset','undefined','limit','count','update','stack','name','send','render','merge','body','contact','agent','interaction','account'];(function(_0x2c91b4,_0x1ad186){var _0x37ef66=function(_0x15ecd8){while(--_0x15ecd8){_0x2c91b4['push'](_0x2c91b4['shift']());}};_0x37ef66(++_0x1ad186);}(_0xfc8a,0x9b));var _0xafc8=function(_0x360cc7,_0x2373f4){_0x360cc7=_0x360cc7-0x0;var _0x36c3b7=_0xfc8a[_0x360cc7];return _0x36c3b7;};'use strict';var rimraf=require(_0xafc8('0x0'));var zipdir=require('zip-dir');var rp=require(_0xafc8('0x1'));var moment=require(_0xafc8('0x2'));var BPromise=require('bluebird');var Mustache=require(_0xafc8('0x3'));var util=require(_0xafc8('0x4'));var path=require(_0xafc8('0x5'));var ejs=require(_0xafc8('0x6'));var fs=require('fs');var _=require(_0xafc8('0x7'));var Redis=require(_0xafc8('0x8'));var interaction=require(_0xafc8('0x9'));var qs=require(_0xafc8('0xa'));var pdf=require(_0xafc8('0xb'));var logger=require(_0xafc8('0xc'))(_0xafc8('0xd'));var config=require(_0xafc8('0xe'));var db=require(_0xafc8('0xf'))['db'];config[_0xafc8('0x10')]=_[_0xafc8('0x11')](config[_0xafc8('0x10')],{'host':_0xafc8('0x12'),'port':0x18eb});var socket=require(_0xafc8('0x13'))(new Redis(config[_0xafc8('0x10')]));require(_0xafc8('0x14'))[_0xafc8('0x15')](socket);var jayson=require(_0xafc8('0x16'));var client=jayson['client']['http']({'port':0x232b});var client9004=jayson[_0xafc8('0x17')][_0xafc8('0x18')]({'port':0x232c});function respondWithRpcPromise(_0x95948d,_0x5c147c,_0x1912ce,_0x171f95){return new BPromise(function(_0x3e37b4,_0x4f246f){var _0x153708=_0x171f95||client;return _0x153708[_0xafc8('0x19')](_0x95948d,_0x1912ce)[_0xafc8('0x1a')](function(_0x1cccb9){logger['info']('ChatInteraction,\x20%s,\x20%s',_0x5c147c,'request\x20sent');logger[_0xafc8('0x1b')](_0xafc8('0x1c'),_0x5c147c,'request\x20sent',JSON[_0xafc8('0x1d')](_0x1cccb9));if(_0x1cccb9[_0xafc8('0x1e')]){if(_0x1cccb9['error'][_0xafc8('0x1f')]===0x1f4){logger[_0xafc8('0x1e')](_0xafc8('0x20'),_0x5c147c,_0x1cccb9[_0xafc8('0x1e')][_0xafc8('0x21')]);return _0x4f246f(_0x1cccb9[_0xafc8('0x1e')]['message']);}logger[_0xafc8('0x1e')](_0xafc8('0x20'),_0x5c147c,_0x1cccb9[_0xafc8('0x1e')]['message']);return _0x3e37b4(_0x1cccb9[_0xafc8('0x1e')][_0xafc8('0x21')]);}else{logger[_0xafc8('0x22')]('ChatInteraction,\x20%s,\x20%s',_0x5c147c,'request\x20sent');_0x3e37b4(_0x1cccb9[_0xafc8('0x23')]['message']);}})[_0xafc8('0x24')](function(_0x6f99a0){logger[_0xafc8('0x1e')](_0xafc8('0x20'),_0x5c147c,_0x6f99a0);_0x4f246f(_0x6f99a0);});});}function respondWithStatusCode(_0xc0d917,_0x4704b7){_0x4704b7=_0x4704b7||0xcc;return function(_0x1f9f05){if(_0x1f9f05){return _0xc0d917[_0xafc8('0x25')](_0x4704b7);}return _0xc0d917[_0xafc8('0x26')](_0x4704b7)[_0xafc8('0x27')]();};}function respondWithResult(_0x236061,_0x486c9d){_0x486c9d=_0x486c9d||0xc8;return function(_0x4b61ef){if(_0x4b61ef){return _0x236061[_0xafc8('0x26')](_0x486c9d)['json'](_0x4b61ef);}};}function respondWithFilteredResult(_0x41a9be,_0x5f41c3){return function(_0xeb96df){if(_0xeb96df){var _0x46d8ed=typeof _0x5f41c3[_0xafc8('0x28')]===_0xafc8('0x29')&&typeof _0x5f41c3[_0xafc8('0x2a')]===_0xafc8('0x29');var _0x379000=_0xeb96df['count'];var _0xebdf2=_0x46d8ed?0x0:_0x5f41c3[_0xafc8('0x28')];var _0x1266dc=_0x46d8ed?_0xeb96df[_0xafc8('0x2b')]:_0x5f41c3[_0xafc8('0x28')]+_0x5f41c3[_0xafc8('0x2a')];var _0x279998;if(_0x1266dc>=_0x379000){_0x1266dc=_0x379000;_0x279998=0xc8;}else{_0x279998=0xce;}_0x41a9be[_0xafc8('0x26')](_0x279998);return _0x41a9be['set']('Content-Range',_0xebdf2+'-'+_0x1266dc+'/'+_0x379000)['json'](_0xeb96df);}return null;};}function saveUpdates(_0x4e62e4){return function(_0x3b125c){if(_0x3b125c){return _0x3b125c[_0xafc8('0x2c')](_0x4e62e4)['then'](function(_0x2d1161){return _0x2d1161;});}return null;};}function removeEntity(_0x39c8cd){return function(_0x2463b2){if(_0x2463b2){return _0x2463b2['destroy']()[_0xafc8('0x1a')](function(){_0x39c8cd[_0xafc8('0x26')](0xcc)[_0xafc8('0x27')]();});}};}function handleEntityNotFound(_0x166a12){return function(_0x3bd92f){if(!_0x3bd92f){_0x166a12[_0xafc8('0x25')](0x194);}return _0x3bd92f;};}function handleError(_0xa057c,_0x206fc1){_0x206fc1=_0x206fc1||0x1f4;return function(_0x1ae15e){logger['error'](_0x1ae15e[_0xafc8('0x2d')]);if(_0x1ae15e[_0xafc8('0x2e')]){delete _0x1ae15e['name'];}_0xa057c[_0xafc8('0x26')](_0x206fc1)[_0xafc8('0x2f')](_0x1ae15e);};}function getMustacheRender(_0x152b87,_0x1fed6a){return Mustache[_0xafc8('0x30')](_0x152b87,_[_0xafc8('0x31')](_0x1fed6a[_0xafc8('0x32')],{'contact':_0x1fed6a[_0xafc8('0x33')],'message':_0x1fed6a[_0xafc8('0x21')],'agent':_0x1fed6a[_0xafc8('0x34')],'interaction':_0x1fed6a[_0xafc8('0x35')],'account':_0x1fed6a[_0xafc8('0x36')]}))||'';}exports[_0xafc8('0x37')]=function(_0x4dbb5c,_0x2ba1a4){var _0x47bf68={};var _0x19e1da=_[_0xafc8('0x38')](db[_0xafc8('0x39')][_0xafc8('0x3a')],function(_0x1a8940){return{'name':_0x1a8940[_0xafc8('0x3b')],'type':_0x1a8940[_0xafc8('0x3c')]['key']};});_0x47bf68=qs[_0xafc8('0x3d')](_0x19e1da,_0x4dbb5c);return interaction[_0xafc8('0x3e')](_0xafc8('0x3f'),_0x4dbb5c[_0xafc8('0x40')],_0x4dbb5c['user'],_0x47bf68,_0x19e1da)[_0xafc8('0x1a')](respondWithFilteredResult(_0x2ba1a4,_0x47bf68))['catch'](handleError(_0x2ba1a4,null));};exports[_0xafc8('0x41')]=function(_0x1010c2,_0x2ad228){var _0x738b1a={'raw':![],'where':{'id':_0x1010c2[_0xafc8('0x42')]['id']}},_0x14641d={};_0x14641d['model']=_[_0xafc8('0x43')](db[_0xafc8('0x39')][_0xafc8('0x3a')]);_0x14641d[_0xafc8('0x40')]=_[_0xafc8('0x43')](_0x1010c2[_0xafc8('0x40')]);_0x14641d[_0xafc8('0x44')]=_[_0xafc8('0x45')](_0x14641d['model'],_0x14641d[_0xafc8('0x40')]);_0x738b1a[_0xafc8('0x46')]=_[_0xafc8('0x45')](_0x14641d['model'],qs[_0xafc8('0x47')](_0x1010c2[_0xafc8('0x40')][_0xafc8('0x47')]));_0x738b1a[_0xafc8('0x46')]=_0x738b1a['attributes'][_0xafc8('0x48')]?_0x738b1a[_0xafc8('0x46')]:_0x14641d[_0xafc8('0x49')];if(_0x1010c2[_0xafc8('0x40')][_0xafc8('0x4a')]){_0x738b1a[_0xafc8('0x4b')]=[{'all':!![]}];}_0x738b1a=_[_0xafc8('0x31')]({},_0x738b1a,_0x1010c2[_0xafc8('0x4c')]);return db[_0xafc8('0x39')][_0xafc8('0x4d')](_0x738b1a)['then'](handleEntityNotFound(_0x2ad228,null))['then'](respondWithResult(_0x2ad228,null))[_0xafc8('0x24')](handleError(_0x2ad228,null));};exports[_0xafc8('0x4e')]=function(_0x434f55,_0x3c5be0){return db[_0xafc8('0x39')][_0xafc8('0x4e')](_0x434f55[_0xafc8('0x32')],{})[_0xafc8('0x1a')](respondWithResult(_0x3c5be0,0xc9))['catch'](handleError(_0x3c5be0,null));};exports[_0xafc8('0x2c')]=function(_0x3e4867,_0x1e0862){if(_0x3e4867[_0xafc8('0x32')]['id']){delete _0x3e4867[_0xafc8('0x32')]['id'];}return db[_0xafc8('0x39')]['find']({'where':{'id':_0x3e4867['params']['id']}})['then'](handleEntityNotFound(_0x1e0862,null))[_0xafc8('0x1a')](saveUpdates(_0x3e4867[_0xafc8('0x32')],null))[_0xafc8('0x1a')](respondWithResult(_0x1e0862,null))[_0xafc8('0x24')](handleError(_0x1e0862,null));};exports[_0xafc8('0x4f')]=function(_0x3cf75f,_0x377df9){return db['ChatInteraction']['find']({'where':{'id':_0x3cf75f[_0xafc8('0x42')]['id']}})['then'](handleEntityNotFound(_0x377df9,null))[_0xafc8('0x1a')](removeEntity(_0x377df9,null))['catch'](handleError(_0x377df9,null));};exports['describe']=function(_0x249f38,_0x2ef58e){return db[_0xafc8('0x39')][_0xafc8('0x50')]()['then'](respondWithResult(_0x2ef58e,null))[_0xafc8('0x24')](handleError(_0x2ef58e,null));};exports['createVidaooSession']=function(_0x3a2d80,_0x1009ed){var _0x592244=_0x3a2d80[_0xafc8('0x42')]['id'];var _0x31a908;var _0x42708d;var _0x3aa1cb;return db['ChatInteraction'][_0xafc8('0x51')]({'where':{'id':_0x592244}})[_0xafc8('0x1a')](function(_0x395982){_0x31a908=_0x395982;return db[_0xafc8('0x52')][_0xafc8('0x51')]({'where':{'id':_0x395982[_0xafc8('0x53')]},'attributes':['id',_0xafc8('0x54'),'vidaooEscalation',_0xafc8('0x55'),_0xafc8('0x56'),'vidaooMetadata'],'raw':!![]});})[_0xafc8('0x1a')](function(_0x4f708d){if(_0x4f708d&&_0x4f708d[_0xafc8('0x54')]&&_0x4f708d[_0xafc8('0x57')]){_0x42708d=_0x4f708d;var _0x737455={'interaction':{'id':_0x592244},'agent':{'id':_0x3a2d80[_0xafc8('0x58')]['id'],'name':_0x3a2d80['user'][_0xafc8('0x2e')],'fullname':_0x3a2d80['user'][_0xafc8('0x59')],'email':_0x3a2d80[_0xafc8('0x58')][_0xafc8('0x5a')]},'contact':_0x3a2d80[_0xafc8('0x32')][_0xafc8('0x33')],'account':_0x3a2d80[_0xafc8('0x32')]['account']};var _0x548cdf={'rejectUnauthorized':![],'method':'POST','url':'https://api-vidaoo.xcally.com/api/v1/meetings','headers':{'X-APIKEY':_0x4f708d[_0xafc8('0x54')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x3a2d80[_0xafc8('0x58')][_0xafc8('0x5a')]],'buttons':null,'topic':_0x42708d['vidaooTopic'],'note':_[_0xafc8('0x5b')](_0x42708d[_0xafc8('0x56')])?null:getMustacheRender(_0x42708d['vidaooNote'],_0x737455),'metadata':null},'redirect':_0xafc8('0x5c'),'json':!![]};try{if(!_[_0xafc8('0x5b')](_0x42708d[_0xafc8('0x5d')])){var _0x55c3ba=getMustacheRender(_0x42708d[_0xafc8('0x5d')],_0x737455);var _0x80c476=JSON[_0xafc8('0x5e')](_0x55c3ba);_0x548cdf[_0xafc8('0x32')]['metadata']=_0x80c476;}}catch(_0x12b916){throw new db['Sequelize'][(_0xafc8('0x5f'))](_0xafc8('0x60'));}return rp(_0x548cdf);}else{throw new db[(_0xafc8('0x61'))][(_0xafc8('0x5f'))](_0xafc8('0x62'));}})['then'](function(_0x5a39e5){_0x3aa1cb=_0x5a39e5;if(_0x3aa1cb['id']){var _0x19bcbc={'body':_0x3aa1cb[_0xafc8('0x63')],'ChatWebsiteId':_0x42708d['id'],'ChatInteractionId':_0x31a908['id'],'direction':_0xafc8('0x64'),'UserId':_0x3a2d80[_0xafc8('0x58')]['id']};return db[_0xafc8('0x65')][_0xafc8('0x4e')](_0x19bcbc,{});}else{throw new db[(_0xafc8('0x61'))][(_0xafc8('0x5f'))](_0xafc8('0x66'));}})['then'](function(){return _0x31a908[_0xafc8('0x67')]({'vidaooSessionId':_0x3aa1cb['id']});})['then'](respondWithResult(_0x1009ed,null))[_0xafc8('0x24')](handleError(_0x1009ed,null));};exports['customUpdate']=function(_0x1fed5c,_0x9737c8){if(_0x1fed5c[_0xafc8('0x32')]['id']){delete _0x1fed5c[_0xafc8('0x32')]['id'];}return db['ChatInteraction'][_0xafc8('0x4d')]({'where':{'id':_0x1fed5c[_0xafc8('0x42')]['id']},'include':[{'model':db[_0xafc8('0x68')],'as':_0xafc8('0x69')}]})['then'](handleEntityNotFound(_0x9737c8,null))['then'](saveUpdates(_0x1fed5c[_0xafc8('0x32')],null))[_0xafc8('0x1a')](respondWithResult(_0x9737c8,null))['catch'](handleError(_0x9737c8,null));};exports[_0xafc8('0x6a')]=function(_0x2076e6,_0x4901eb){if(_0x2076e6[_0xafc8('0x32')]['id']){delete _0x2076e6[_0xafc8('0x32')]['id'];}return db[_0xafc8('0x39')]['find']({'where':{'id':_0x2076e6[_0xafc8('0x42')]['id']}})[_0xafc8('0x1a')](function(_0x2d0965){if(!_0x2d0965){logger[_0xafc8('0x1e')](_0xafc8('0x6b'),_0xafc8('0x6a'),0x194,'entity\x20not\x20found');_0x4901eb[_0xafc8('0x25')](0x194);}else{if(_0x2d0965[_0xafc8('0x6c')]){throw new db[(_0xafc8('0x61'))][(_0xafc8('0x5f'))](_0xafc8('0x6d'));}}return _0x2d0965;})[_0xafc8('0x1a')](function(_0x362d5a){if(_0x362d5a){return _0x362d5a['update']({'closed':_0x2076e6[_0xafc8('0x32')]['closed'],'disposition':_0x2076e6[_0xafc8('0x32')][_0xafc8('0x6e')]})[_0xafc8('0x1a')](function(_0x2bf748){return _0x2bf748;});}})[_0xafc8('0x1a')](function(){return respondWithRpcPromise(_0xafc8('0x6f'),_0xafc8('0x6a'),_0x2076e6[_0xafc8('0x32')],client9004);})[_0xafc8('0x1a')](respondWithResult(_0x4901eb,null))[_0xafc8('0x24')](handleError(_0x4901eb,null));};exports['attachmentUpload']=function(_0x3d64e7,_0x3bdc10){_0x3d64e7[_0xafc8('0x32')][_0xafc8('0x2e')]=_0x3d64e7[_0xafc8('0x70')][_0xafc8('0x71')];_0x3d64e7[_0xafc8('0x32')][_0xafc8('0x72')]=_0x3d64e7['file'][_0xafc8('0x73')];_0x3d64e7[_0xafc8('0x32')]['type']=_0x3d64e7[_0xafc8('0x70')][_0xafc8('0x74')];return db[_0xafc8('0x75')][_0xafc8('0x4e')](_0x3d64e7[_0xafc8('0x32')])[_0xafc8('0x1a')](respondWithResult(_0x3bdc10,0xc9))[_0xafc8('0x24')](handleError(_0x3bdc10,null));};exports[_0xafc8('0x76')]=function(_0x25f421,_0x5524b0){return db[_0xafc8('0x39')][_0xafc8('0x51')]({'where':{'id':_0x25f421[_0xafc8('0x42')]['id']},'raw':!![]})[_0xafc8('0x1a')](handleEntityNotFound(_0x5524b0,null))[_0xafc8('0x1a')](function(_0x162a1b){if(_0x162a1b){if(_0x162a1b[_0xafc8('0x77')]){return _0x5524b0[_0xafc8('0x26')](0x193)[_0xafc8('0x78')]({'status':0x193,'message':_0xafc8('0x79')});}return db[_0xafc8('0x75')]['findOne']({'where':{'id':_0x25f421[_0xafc8('0x40')][_0xafc8('0x7a')]},'raw':!![]})['then'](handleEntityNotFound(_0x5524b0,null));}})[_0xafc8('0x1a')](function(_0x5c3d09){if(_0x5c3d09){var _0x1cd8e8=_0x5c3d09['ChatOfflineMessageId']!==null;var _0x35b365=path[_0xafc8('0x7b')](config['root'],_0xafc8('0x7c'));if(_0x1cd8e8){_0x35b365=path[_0xafc8('0x7b')](_0x35b365,'offline-chat/');}var _0x494a6b=path['join'](_0x35b365,_0x5c3d09[_0xafc8('0x72')]);return _0x5524b0['download'](_0x494a6b);}})['catch'](handleError(_0x5524b0,null));};exports[_0xafc8('0x7d')]=function(_0x196f0d,_0x29258d){var _0x5be5a3=null;var _0x4e0ed0=null;var _0x1aeb4a=null;if(_0x196f0d[_0xafc8('0x32')]['id']){delete _0x196f0d[_0xafc8('0x32')]['id'];}if(_0x196f0d[_0xafc8('0x32')][_0xafc8('0x7e')]){_0x1aeb4a=path[_0xafc8('0x7b')](config['root'],_0xafc8('0x7f'),util[_0xafc8('0x80')](_0xafc8('0x81'),Date[_0xafc8('0x82')]()));_0x196f0d[_0xafc8('0x32')][_0xafc8('0x83')]=_0x1aeb4a;}return db[_0xafc8('0x39')][_0xafc8('0x4d')]({'where':{'id':_0x196f0d[_0xafc8('0x42')]['id']},'include':[{'model':db[_0xafc8('0x65')],'as':_0xafc8('0x84'),'include':[{'model':db[_0xafc8('0x85')],'as':'User'}]}]})[_0xafc8('0x1a')](handleEntityNotFound(_0x29258d,null))['then'](saveUpdates(_0x196f0d[_0xafc8('0x32')],null))[_0xafc8('0x1a')](function(_0xe68ff8){if(_0xe68ff8){_0x5be5a3=_0xe68ff8;return db[_0xafc8('0x52')]['find']({'where':{'id':_0x5be5a3[_0xafc8('0x53')]}});}})[_0xafc8('0x1a')](function(_0x34e297){if(_0x34e297){_0x4e0ed0=_0x34e297;return db[_0xafc8('0x68')][_0xafc8('0x4d')]({'where':{'id':_0x5be5a3['ContactId']}});}})['then'](function(_0x3d3bb4){if(_0x3d3bb4){if(_0x1aeb4a){var _0x1d14cb=null;for(var _0x357cb5=0x1;_0x357cb5<_0x5be5a3[_0xafc8('0x84')][_0xafc8('0x48')];++_0x357cb5){_0x1d14cb=_0x5be5a3[_0xafc8('0x84')][_0x357cb5];var _0x14c4ea=_0x1d14cb[_0xafc8('0x6c')]?util[_0xafc8('0x80')](_0xafc8('0x86'),_0x4e0ed0[_0xafc8('0x87')],_0x1d14cb[_0xafc8('0x6c')]):_0xafc8('0x88');var _0x5f1afa=_0x196f0d[_0xafc8('0x32')]['customer']||util[_0xafc8('0x80')]('%s%d',_0xafc8('0x89'),_0x1d14cb[_0xafc8('0x8a')]);switch(_0x4e0ed0[_0xafc8('0x8b')]){case'website_alias':_0x14c4ea=_0x1d14cb[_0xafc8('0x6c')]?util[_0xafc8('0x80')](_0xafc8('0x86'),_0x4e0ed0[_0xafc8('0x87')],_0x1d14cb[_0xafc8('0x6c')]):_0xafc8('0x88');break;case'agent_alias':_0x14c4ea=_0x1d14cb[_0xafc8('0x6c')]?_0x1d14cb[_0xafc8('0x85')][_0xafc8('0x8c')]||_0x1d14cb['User']['fullname']:_0xafc8('0x88');break;case'agent_fullname':_0x14c4ea=_0x1d14cb[_0xafc8('0x6c')]?_0x1d14cb[_0xafc8('0x85')][_0xafc8('0x59')]:'System';break;default:_0x14c4ea=_0x1d14cb[_0xafc8('0x6c')]?util[_0xafc8('0x80')](_0xafc8('0x86'),_0x4e0ed0[_0xafc8('0x87')],_0x1d14cb[_0xafc8('0x6c')]):'System';}var _0x4da53f=util['format'](_0xafc8('0x8d'),moment(_0x1d14cb[_0xafc8('0x8e')])[_0xafc8('0x80')](_0xafc8('0x8f')),_0x1d14cb[_0xafc8('0x90')]==='in'?_0x5f1afa:_0x14c4ea,_0x1d14cb[_0xafc8('0x32')]);if(!_0x1d14cb[_0xafc8('0x91')]){fs[_0xafc8('0x92')](_0x1aeb4a,_0x4da53f);}}return db[_0xafc8('0x93')][_0xafc8('0x51')]({'where':{'service':!![]},'include':[{'model':db[_0xafc8('0x94')],'as':_0xafc8('0x95'),'raw':!![],'include':[{'model':db[_0xafc8('0x96')],'as':_0xafc8('0x96'),'raw':!![]}]}]});}}})[_0xafc8('0x1a')](function(_0x301517){if(!_0x301517||!_0x301517[_0xafc8('0x95')]||!_0x196f0d['body'])return _0x5be5a3;var _0x13eb7a=_0x301517[_0xafc8('0x97')]();return respondWithRpcPromise(_0xafc8('0x98'),_0xafc8('0x99'),{'account':_0x13eb7a,'message':{'from':util['format']('\x22%s\x22\x20<%s>',_0x301517[_0xafc8('0x2e')],_0x301517['email']||_0x301517['Smtp']['user']),'to':_0x196f0d[_0xafc8('0x32')][_0xafc8('0x7e')],'subject':_0xafc8('0x9a'),'text':util[_0xafc8('0x80')]('Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a',_0x196f0d[_0xafc8('0x32')]['mailTranscript']),'attachments':[{'path':_0x1aeb4a}]}})[_0xafc8('0x1a')](function(){return _0x5be5a3;})[_0xafc8('0x24')](function(_0x1064e7){logger[_0xafc8('0x1e')](_0x1064e7);});})[_0xafc8('0x1a')](respondWithStatusCode(_0x29258d,0xc8))[_0xafc8('0x24')](handleError(_0x29258d,null));};exports[_0xafc8('0x9b')]=function(_0x26e8bf,_0x4a70f5){return db[_0xafc8('0x65')][_0xafc8('0x4d')]({'where':{'id':_0x26e8bf[_0xafc8('0x42')]['id']}})['then'](handleEntityNotFound(_0x4a70f5,null))['then'](function(_0x5a8ea5){if(_0x5a8ea5){return _0x5a8ea5['addMessage'](_0x26e8bf[_0xafc8('0x32')][_0xafc8('0x9c')],_[_0xafc8('0x9d')](_0x26e8bf[_0xafc8('0x32')],[_0xafc8('0x9c'),'id'])||{});}})[_0xafc8('0x1a')](respondWithResult(_0x4a70f5,null))[_0xafc8('0x24')](handleError(_0x4a70f5,null));};exports[_0xafc8('0x9e')]=function(_0x205dcf,_0x8bd0b7){var _0x46bdfb={'raw':![],'where':{}};var _0x3dc332={};var _0x34ca73={'count':0x0,'rows':[]};return db[_0xafc8('0x39')][_0xafc8('0x51')]({'where':{'id':_0x205dcf[_0xafc8('0x42')]['id']}})[_0xafc8('0x1a')](handleEntityNotFound(_0x8bd0b7,null))['then'](function(_0x3ebd90){if(_0x3ebd90){_0x3dc332[_0xafc8('0x49')]=_['keys'](db[_0xafc8('0x65')][_0xafc8('0x3a')]);_0x3dc332[_0xafc8('0x40')]=_['keys'](_0x205dcf[_0xafc8('0x40')]);_0x3dc332[_0xafc8('0x44')]=_[_0xafc8('0x45')](_0x3dc332[_0xafc8('0x49')],_0x3dc332[_0xafc8('0x40')]);_0x46bdfb['attributes']=_[_0xafc8('0x45')](_0x3dc332['model'],qs[_0xafc8('0x47')](_0x205dcf[_0xafc8('0x40')]['fields']));_0x46bdfb['attributes']=_0x46bdfb[_0xafc8('0x46')][_0xafc8('0x48')]?_0x46bdfb[_0xafc8('0x46')]:_0x3dc332[_0xafc8('0x49')];if(!_0x205dcf[_0xafc8('0x40')][_0xafc8('0x9f')](_0xafc8('0xa0'))){_0x46bdfb[_0xafc8('0x2a')]=qs[_0xafc8('0x2a')](_0x205dcf[_0xafc8('0x40')]['limit']);_0x46bdfb[_0xafc8('0x28')]=qs[_0xafc8('0x28')](_0x205dcf[_0xafc8('0x40')][_0xafc8('0x28')]);}_0x46bdfb[_0xafc8('0xa1')]=qs[_0xafc8('0xa2')](_0x205dcf['query'][_0xafc8('0xa2')]);_0x46bdfb[_0xafc8('0xa3')]=qs[_0xafc8('0x44')](_['pick'](_0x205dcf[_0xafc8('0x40')],_0x3dc332[_0xafc8('0x44')]));_0x46bdfb[_0xafc8('0xa3')][_0xafc8('0xa4')]=_0x3ebd90['id'];if(_0x205dcf[_0xafc8('0x40')][_0xafc8('0xa5')]){_0x46bdfb['where']=_[_0xafc8('0x31')](_0x46bdfb[_0xafc8('0xa3')],{'$or':_[_0xafc8('0x38')](_0x46bdfb[_0xafc8('0x46')],function(_0x39fa4f){var _0x10129f={};_0x10129f[_0x39fa4f]={'$like':'%'+_0x205dcf[_0xafc8('0x40')][_0xafc8('0xa5')]+'%'};return _0x10129f;})});}if(_0x205dcf[_0xafc8('0x40')][_0xafc8('0xa6')]){var _0x2b0c03=_0x205dcf[_0xafc8('0x40')][_0xafc8('0xa6')][_0xafc8('0xa7')](',');var _0x47e4eb={};_0x47e4eb[_0x2b0c03[0x0]]={'$gte':moment(_0x2b0c03[0x1])['format'](_0xafc8('0xa8'))};_0x46bdfb['where']=_[_0xafc8('0x31')](_0x46bdfb['where'],_0x47e4eb);}_0x46bdfb=_['merge']({},_0x46bdfb,_0x205dcf[_0xafc8('0x4c')]);return db[_0xafc8('0x65')][_0xafc8('0x2b')]({'where':_0x46bdfb[_0xafc8('0xa3')]})[_0xafc8('0x1a')](function(_0x196429){_0x34ca73[_0xafc8('0x2b')]=_0x196429;if(_0x205dcf[_0xafc8('0x40')][_0xafc8('0x4a')]){_0x46bdfb[_0xafc8('0x4b')]=[{'all':!![]}];}return db['ChatMessage']['findAll'](_0x46bdfb);})['then'](function(_0x587500){_0x34ca73['rows']=_0x587500;return _0x34ca73;});}})[_0xafc8('0x1a')](respondWithFilteredResult(_0x8bd0b7,_0x46bdfb))[_0xafc8('0x24')](handleError(_0x8bd0b7,null));};exports[_0xafc8('0xa9')]=function(_0x756e77,_0x638f68){var _0x2a2af0={'where':{}},_0x89379f={},_0x2fe6ee={'count':0x0,'rows':[]};return db[_0xafc8('0x39')]['findOne']({'where':{'id':_0x756e77['params']['id']}})[_0xafc8('0x1a')](handleEntityNotFound(_0x638f68,null))['then'](function(_0x77dac1){if(_0x77dac1){_0x89379f['model']=_[_0xafc8('0x43')](db[_0xafc8('0x65')][_0xafc8('0x3a')]);_0x89379f['query']=_[_0xafc8('0x43')](_0x756e77['query']);_0x89379f['filters']=_['intersection'](_0x89379f[_0xafc8('0x49')],_0x89379f['query']);_0x2a2af0['attributes']=_[_0xafc8('0x45')](_0x89379f[_0xafc8('0x49')],qs[_0xafc8('0x47')](_0x756e77[_0xafc8('0x40')]['fields']));_0x2a2af0[_0xafc8('0x46')]=_0x2a2af0['attributes'][_0xafc8('0x48')]?_0x2a2af0[_0xafc8('0x46')]:_0x89379f['model'];if(!_0x756e77[_0xafc8('0x40')][_0xafc8('0x9f')](_0xafc8('0xa0'))){_0x2a2af0['limit']=qs['limit'](_0x756e77['query'][_0xafc8('0x2a')]);_0x2a2af0[_0xafc8('0x28')]=qs[_0xafc8('0x28')](_0x756e77[_0xafc8('0x40')][_0xafc8('0x28')]);}_0x2a2af0[_0xafc8('0xa1')]=qs[_0xafc8('0xa2')](_0x756e77[_0xafc8('0x40')][_0xafc8('0xa2')]);_0x2a2af0['where']=qs[_0xafc8('0x44')](_[_0xafc8('0xaa')](_0x756e77[_0xafc8('0x40')],_0x89379f[_0xafc8('0x44')]));_0x2a2af0[_0xafc8('0xa3')][_0xafc8('0xa4')]=_0x77dac1['id'];if(_0x756e77['query'][_0xafc8('0xa5')]){_0x2a2af0[_0xafc8('0xa3')]=_['merge'](_0x2a2af0['where'],{'$or':_[_0xafc8('0x38')](_0x2a2af0[_0xafc8('0x46')],function(_0x597ac2){var _0x16a5b1={};_0x16a5b1[_0x597ac2]={'$like':'%'+_0x756e77[_0xafc8('0x40')]['filter']+'%'};return _0x16a5b1;})});}_0x2a2af0[_0xafc8('0xa3')][_0xafc8('0x91')]=![];if(_0x756e77[_0xafc8('0x40')]['id']){_0x2a2af0['where']['id']={'$gt':_0x756e77[_0xafc8('0x40')]['id']};}_0x2a2af0=_[_0xafc8('0x31')]({},_0x2a2af0,_0x756e77['options']);return db[_0xafc8('0x65')][_0xafc8('0x2b')]({'where':_0x2a2af0[_0xafc8('0xa3')]})[_0xafc8('0x1a')](function(_0x36365b){_0x2fe6ee[_0xafc8('0x2b')]=_0x36365b;_0x2a2af0['include']=[];if(_0x756e77[_0xafc8('0x40')][_0xafc8('0xab')]){_0x2a2af0[_0xafc8('0x4b')]['push']({'model':db[_0xafc8('0x85')],'as':'User','attributes':['id',_0xafc8('0x59'),_0xafc8('0x8c')]});}if(_0x756e77[_0xafc8('0x40')][_0xafc8('0x4a')]){_0x2a2af0[_0xafc8('0x4b')]=[{'all':!![]}];}return db[_0xafc8('0x65')][_0xafc8('0x3e')](_0x2a2af0);})[_0xafc8('0x1a')](function(_0x59d729){_0x2fe6ee[_0xafc8('0xac')]=_0x59d729;return _0x2fe6ee;});}})[_0xafc8('0x1a')](respondWithFilteredResult(_0x638f68,_0x2a2af0))['catch'](handleError(_0x638f68,null));};exports[_0xafc8('0xad')]=function(_0x27a726,_0x4e47f0){return db[_0xafc8('0x39')][_0xafc8('0x4d')]({'where':{'id':_0x27a726['params']['id']}})[_0xafc8('0x1a')](handleEntityNotFound(_0x4e47f0,null))[_0xafc8('0x1a')](function(_0x4c13da){if(_0x4c13da){return _0x4c13da[_0xafc8('0xae')](_0x27a726['body'][_0xafc8('0x9c')],_[_0xafc8('0x9d')](_0x27a726[_0xafc8('0x32')],['ids','id'])||{})['spread'](function(){return db[_0xafc8('0xaf')][_0xafc8('0x3e')]({'attributes':['id',_0xafc8('0x2e'),_0xafc8('0xb0')],'where':{'id':_0x27a726[_0xafc8('0x32')][_0xafc8('0x9c')]}});})[_0xafc8('0x1a')](function(_0x4acc30){socket['emit']('chatInteractionTags:save',{'id':Number(_0x27a726[_0xafc8('0x42')]['id']),'tags':_0x4acc30||[]});return{'id':Number(_0x27a726[_0xafc8('0x42')]['id']),'tags':_0x4acc30||[]};});}})['then'](respondWithResult(_0x4e47f0,null))[_0xafc8('0x24')](handleError(_0x4e47f0,null));};exports[_0xafc8('0xb1')]=function(_0x4d6851,_0x5deadf){return db[_0xafc8('0x39')][_0xafc8('0x4d')]({'where':{'id':_0x4d6851[_0xafc8('0x42')]['id']}})[_0xafc8('0x1a')](handleEntityNotFound(_0x5deadf,null))[_0xafc8('0x1a')](function(_0x13bd10){if(_0x13bd10){return _0x13bd10[_0xafc8('0xb1')](_0x4d6851[_0xafc8('0x40')]['ids']);}})[_0xafc8('0x1a')](respondWithStatusCode(_0x5deadf,null))['catch'](handleError(_0x5deadf,null));};exports['download']=function(_0xa53308,_0xc0e564){var _0x5c79ff=moment()[_0xafc8('0xb2')]()[_0xafc8('0xb3')]();var _0x3a1fb3=path[_0xafc8('0x7b')](config[_0xafc8('0xb4')],_0xafc8('0xb5'),_0xafc8('0xb6'),'tmp');var _0xff7dff=path[_0xafc8('0x7b')](config['root'],_0xafc8('0xb5'),_0xafc8('0xb6'),_0xafc8('0xb7'));var _0x3c4165=path[_0xafc8('0x7b')](_0x3a1fb3,_0x5c79ff);var _0x3b4a48=util['format'](_0xafc8('0xb8'),_0xa53308[_0xafc8('0x42')]['id'],_0x5c79ff);var _0x483535=path['join'](_0x3a1fb3,_0x3b4a48);var _0x4bbcf5=[];_0x4bbcf5[_0xafc8('0xb9')]({'model':db[_0xafc8('0x85')],'as':_0xafc8('0x85'),'attributes':['id',_0xafc8('0x59')],'raw':!![]});_0x4bbcf5[_0xafc8('0xb9')]({'model':db['CmContact'],'as':_0xafc8('0x69'),'attributes':['id',_0xafc8('0xba'),_0xafc8('0xbb')],'raw':!![]});if(_0xa53308[_0xafc8('0x40')]['attachments']){_0x4bbcf5[_0xafc8('0xb9')]({'model':db['Attachment'],'as':_0xafc8('0x75'),'raw':!![]});}var _0x2c3e6f=[{'model':db['ChatMessage'],'as':_0xafc8('0x84'),'attributes':['id',_0xafc8('0x32'),_0xafc8('0x8e'),_0xafc8('0x90'),'secret',_0xafc8('0xbc')],'include':_0x4bbcf5}];_0x2c3e6f[_0xafc8('0xb9')]({'model':db[_0xafc8('0x52')],'as':_0xafc8('0xbd'),'attributes':['id','name']});_0x2c3e6f[_0xafc8('0xb9')]({'model':db[_0xafc8('0x85')],'as':'Owner','attributes':['id',_0xafc8('0x59')]});return db['ChatInteraction'][_0xafc8('0x4d')]({'where':{'id':_0xa53308[_0xafc8('0x42')]['id']},'include':_0x2c3e6f})[_0xafc8('0x1a')](handleEntityNotFound(_0xc0e564,null))[_0xafc8('0x1a')](function(_0x1650ba){if(_0x1650ba){var _0x364efa=_0x1650ba[_0xafc8('0xbe')]({'plain':!![]});fs[_0xafc8('0xbf')](_0x3c4165);var _0x180da4={'channel':_0xafc8('0xc0'),'account':_0x364efa['Account'][_0xafc8('0x2e')],'agent':_0x364efa[_0xafc8('0xc1')]?_0x364efa[_0xafc8('0xc1')][_0xafc8('0x59')]:_0xafc8('0xc2'),'createdAt':moment(_0x364efa[_0xafc8('0x8e')])['format'](_0xafc8('0xa8'))[_0xafc8('0xb3')](),'closedAt':_0x364efa[_0xafc8('0x77')]?moment(_0x364efa['closedAt'])[_0xafc8('0x80')](_0xafc8('0xa8'))['toString']():'','disposition':_0x364efa['disposition'],'chatInfo':{'browser':_0x364efa['browserName'],'os':_0x364efa[_0xafc8('0xc3')],'referer':_0x364efa[_0xafc8('0xc4')],'customerIp':_0x364efa[_0xafc8('0xc5')],'customerPort':_0x364efa[_0xafc8('0xc6')]?_0x364efa[_0xafc8('0xc6')]:_0xafc8('0xc2')},'messages':_(_0x364efa['Messages'])[_0xafc8('0xc7')]()[_0xafc8('0xa5')]({'secret':![]})[_0xafc8('0x38')](function(_0x2e6b64){if(_0x2e6b64[_0xafc8('0x75')]){var _0xcf062d=path[_0xafc8('0x7b')](_0xff7dff,_0x2e6b64['Attachment'][_0xafc8('0x72')]);if(fs[_0xafc8('0xc8')](_0xcf062d)){fs['createReadStream'](_0xcf062d)[_0xafc8('0xc9')](fs[_0xafc8('0xca')](path[_0xafc8('0x7b')](_0x3c4165,_0x2e6b64['Attachment'][_0xafc8('0x72')])));}}return{'date':moment(_0x2e6b64['createdAt'])['format']('YYYY-MM-DD\x20HH:mm:ss')[_0xafc8('0xb3')](),'sender':_0x2e6b64[_0xafc8('0x90')]===_0xafc8('0x64')?_0x2e6b64[_0xafc8('0x85')]?_0x2e6b64['User'][_0xafc8('0x59')]:'System':_0x2e6b64['Contact']['firstName']+(_0x2e6b64[_0xafc8('0x69')][_0xafc8('0xbb')]?'\x20'+_0x2e6b64[_0xafc8('0x69')][_0xafc8('0xbb')]:''),'body':_0x2e6b64[_0xafc8('0x75')]?_0x2e6b64[_0xafc8('0x75')][_0xafc8('0x72')]:_0x2e6b64[_0xafc8('0x32')],'direction':_0x2e6b64[_0xafc8('0x90')]===_0xafc8('0x64')?'A':'C','secret':_0x2e6b64[_0xafc8('0x91')],'read':_0x2e6b64[_0xafc8('0xbc')],'attachment':_0x2e6b64['Attachment']};})['value']()};return ejs['renderFile'](path[_0xafc8('0x7b')](config[_0xafc8('0xb4')],'server',_0xafc8('0xcb'),_0xafc8('0xcc')),{'interaction':_0x180da4})[_0xafc8('0x1a')](function(_0xfa723e){var _0x22e4ef=path['join'](_0x3c4165,_0xafc8('0xcd')+_0x364efa['id']+'-'+_0x5c79ff+_0xafc8('0xce'));var _0x1bccfa={'path':_0x22e4ef,'channel':'Chat','interactionId':_0x364efa['id']};return pdf[_0xafc8('0xcf')](_0xfa723e,_0x1bccfa);})[_0xafc8('0x1a')](function(){return new Promise(function(_0x435f58,_0x45344c){zipdir(_0x3c4165,{'saveTo':_0x483535},function(_0x3409a5,_0x1357d4){if(_0x3409a5)return _0x45344c(_0x3409a5);return _0x435f58(_0x1357d4);});})['then'](function(){return new BPromise(function(_0x43a3ad,_0x1e6344){rimraf(_0x3c4165,function(_0x19d0ce){if(_0x19d0ce)_0x1e6344(_0x19d0ce);return _0x43a3ad();});});})[_0xafc8('0x1a')](function(){return _0xc0e564[_0xafc8('0xd0')](_0x483535,_0x3b4a48,function(_0x351d0e){if(_0x351d0e){logger[_0xafc8('0x1e')]('err',_0x351d0e);}else{fs[_0xafc8('0xd1')](_0x483535);}});});});}else{return _0xc0e564[_0xafc8('0x25')](0xc8);}})[_0xafc8('0x24')](handleError(_0xc0e564,null));};