Built motion from commit 5293bb2a.|2.6.30
[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 _0xb756=['Account','Owner','Chat','N.A.','osName','customerIp','customerPort','tail','existsSync','createReadStream','createWriteStream','lastName','renderFile','views','transcript-','err','unlinkSync','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','ejs','lodash','../../components/interaction/service','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','./chatInteraction.socket','register','jayson/promise','http','then','info','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','ChatInteraction,\x20%s,\x20%s','result','catch','sendStatus','end','status','json','offset','limit','undefined','set','stack','send','render','merge','body','agent','interaction','account','index','map','ChatInteraction','fieldName','type','getOptions','findAll','chat','query','show','params','model','rawAttributes','intersection','fields','attributes','length','includeAll','include','options','find','create','update','destroy','describe','findOne','ChatWebsite','ChatWebsiteId','vidaooEscalation','vidaooNote','vidaooMetadata','vidaooApiKey','user','name','fullname','contact','POST','https://api-vidaoo.xcally.com/api/v1/meetings','isNull','parse','metadata','Sequelize','ValidationError','join_url','out','ChatMessage','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','customUpdate','CmContact','Contact','abandon','UserId','Interaction\x20already\x20assigned','disposition','AbandonInteraction','attachmentUpload','file','basename','mimetype','closed','Attachment','attachId','ChatOfflineMessageId','join','offline-chat/','download','close','mailTranscript','root','server/files/chat/upload/','format','transcript-%s.txt','now','pathTranscript','User','ContactId','Messages','%s%d','agentAlias','System','customer','Visitor','agentIdentifier','website_alias','agent_alias','alias','agent_fullname','createdAt','MM/DD/YYYY\x20HH:mm:ss','direction','secret','appendFileSync','MailAccount','MailServerOut','Smtp','CloudProvider','getSmtpOptions','SendMail','sendMail','\x22%s\x22\x20<%s>','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','omit','keys','hasOwnProperty','nolimit','order','sort','where','filters','ChatInteractionId','filter','$gte','split','YYYY-MM-DD\x20HH:mm:ss','count','getMyMessages','pick','includeAgent','push','rows','addTags','setTags','ids','spread','Tag','emit','chatInteractionTags:save','removeTags','unix','toString','server','files','transcript-%d-%s.zip','firstName','attachments','read'];(function(_0x422905,_0x3bce3a){var _0x33dc6c=function(_0x4852c9){while(--_0x4852c9){_0x422905['push'](_0x422905['shift']());}};_0x33dc6c(++_0x3bce3a);}(_0xb756,0x1ad));var _0x6b75=function(_0x452cc3,_0x3bca5c){_0x452cc3=_0x452cc3-0x0;var _0x10bd3e=_0xb756[_0x452cc3];return _0x10bd3e;};'use strict';var rimraf=require(_0x6b75('0x0'));var zipdir=require(_0x6b75('0x1'));var rp=require(_0x6b75('0x2'));var moment=require(_0x6b75('0x3'));var BPromise=require(_0x6b75('0x4'));var Mustache=require(_0x6b75('0x5'));var util=require('util');var path=require(_0x6b75('0x6'));var ejs=require(_0x6b75('0x7'));var fs=require('fs');var _=require(_0x6b75('0x8'));var Redis=require('ioredis');var interaction=require(_0x6b75('0x9'));var qs=require(_0x6b75('0xa'));var pdf=require('../../components/export/pdf');var logger=require(_0x6b75('0xb'))(_0x6b75('0xc'));var config=require(_0x6b75('0xd'));var db=require(_0x6b75('0xe'))['db'];config[_0x6b75('0xf')]=_[_0x6b75('0x10')](config[_0x6b75('0xf')],{'host':_0x6b75('0x11'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x6b75('0x12'))[_0x6b75('0x13')](socket);var jayson=require(_0x6b75('0x14'));var client=jayson['client'][_0x6b75('0x15')]({'port':0x232b});var client9004=jayson['client'][_0x6b75('0x15')]({'port':0x232c});function respondWithRpcPromise(_0x1f49d2,_0x518073,_0x2b8fdc,_0x5a4bcd){return new BPromise(function(_0x233d4c,_0xa542ab){var _0x9f95c6=_0x5a4bcd||client;return _0x9f95c6['request'](_0x1f49d2,_0x2b8fdc)[_0x6b75('0x16')](function(_0x18d73d){logger[_0x6b75('0x17')]('ChatInteraction,\x20%s,\x20%s',_0x518073,_0x6b75('0x18'));logger[_0x6b75('0x19')](_0x6b75('0x1a'),_0x518073,_0x6b75('0x18'),JSON[_0x6b75('0x1b')](_0x18d73d));if(_0x18d73d[_0x6b75('0x1c')]){if(_0x18d73d[_0x6b75('0x1c')][_0x6b75('0x1d')]===0x1f4){logger['error']('ChatInteraction,\x20%s,\x20%s',_0x518073,_0x18d73d[_0x6b75('0x1c')][_0x6b75('0x1e')]);return _0xa542ab(_0x18d73d[_0x6b75('0x1c')][_0x6b75('0x1e')]);}logger['error'](_0x6b75('0x1f'),_0x518073,_0x18d73d[_0x6b75('0x1c')][_0x6b75('0x1e')]);return _0x233d4c(_0x18d73d[_0x6b75('0x1c')][_0x6b75('0x1e')]);}else{logger['info']('ChatInteraction,\x20%s,\x20%s',_0x518073,_0x6b75('0x18'));_0x233d4c(_0x18d73d[_0x6b75('0x20')][_0x6b75('0x1e')]);}})[_0x6b75('0x21')](function(_0xe8fe47){logger[_0x6b75('0x1c')](_0x6b75('0x1f'),_0x518073,_0xe8fe47);_0xa542ab(_0xe8fe47);});});}function respondWithStatusCode(_0xa272b1,_0x12c6f4){_0x12c6f4=_0x12c6f4||0xcc;return function(_0x45b8cf){if(_0x45b8cf){return _0xa272b1[_0x6b75('0x22')](_0x12c6f4);}return _0xa272b1['status'](_0x12c6f4)[_0x6b75('0x23')]();};}function respondWithResult(_0x3e237a,_0x61ddc1){_0x61ddc1=_0x61ddc1||0xc8;return function(_0x34b331){if(_0x34b331){return _0x3e237a[_0x6b75('0x24')](_0x61ddc1)[_0x6b75('0x25')](_0x34b331);}};}function respondWithFilteredResult(_0x39eeec,_0x227981){return function(_0x2b96f4){if(_0x2b96f4){var _0x100558=typeof _0x227981[_0x6b75('0x26')]==='undefined'&&typeof _0x227981[_0x6b75('0x27')]===_0x6b75('0x28');var _0x28ac45=_0x2b96f4['count'];var _0x3e6788=_0x100558?0x0:_0x227981[_0x6b75('0x26')];var _0x146ee3=_0x100558?_0x2b96f4['count']:_0x227981[_0x6b75('0x26')]+_0x227981['limit'];var _0x4deda9;if(_0x146ee3>=_0x28ac45){_0x146ee3=_0x28ac45;_0x4deda9=0xc8;}else{_0x4deda9=0xce;}_0x39eeec[_0x6b75('0x24')](_0x4deda9);return _0x39eeec[_0x6b75('0x29')]('Content-Range',_0x3e6788+'-'+_0x146ee3+'/'+_0x28ac45)[_0x6b75('0x25')](_0x2b96f4);}return null;};}function saveUpdates(_0xd36dd5){return function(_0x3a36fc){if(_0x3a36fc){return _0x3a36fc['update'](_0xd36dd5)['then'](function(_0xe64f4a){return _0xe64f4a;});}return null;};}function removeEntity(_0x4ccfe2){return function(_0x352468){if(_0x352468){return _0x352468['destroy']()[_0x6b75('0x16')](function(){_0x4ccfe2[_0x6b75('0x24')](0xcc)[_0x6b75('0x23')]();});}};}function handleEntityNotFound(_0xa0e51f){return function(_0x2d259e){if(!_0x2d259e){_0xa0e51f[_0x6b75('0x22')](0x194);}return _0x2d259e;};}function handleError(_0x43d801,_0xb9a32e){_0xb9a32e=_0xb9a32e||0x1f4;return function(_0x3ff043){logger['error'](_0x3ff043[_0x6b75('0x2a')]);if(_0x3ff043['name']){delete _0x3ff043['name'];}_0x43d801['status'](_0xb9a32e)[_0x6b75('0x2b')](_0x3ff043);};}function getMustacheRender(_0x36e811,_0x534e63){return Mustache[_0x6b75('0x2c')](_0x36e811,_[_0x6b75('0x2d')](_0x534e63[_0x6b75('0x2e')],{'contact':_0x534e63['contact'],'message':_0x534e63[_0x6b75('0x1e')],'agent':_0x534e63[_0x6b75('0x2f')],'interaction':_0x534e63[_0x6b75('0x30')],'account':_0x534e63[_0x6b75('0x31')]}))||'';}exports[_0x6b75('0x32')]=function(_0x4ec2e1,_0x1f9e83){var _0x4327e9={};var _0x3c0044=_[_0x6b75('0x33')](db[_0x6b75('0x34')]['rawAttributes'],function(_0x358725){return{'name':_0x358725[_0x6b75('0x35')],'type':_0x358725[_0x6b75('0x36')]['key']};});_0x4327e9=qs[_0x6b75('0x37')](_0x3c0044,_0x4ec2e1);return interaction[_0x6b75('0x38')](_0x6b75('0x39'),_0x4ec2e1[_0x6b75('0x3a')],_0x4ec2e1['user'],_0x4327e9,_0x3c0044)[_0x6b75('0x16')](respondWithFilteredResult(_0x1f9e83,_0x4327e9))[_0x6b75('0x21')](handleError(_0x1f9e83,null));};exports[_0x6b75('0x3b')]=function(_0x369a18,_0x271ec5){var _0x22bf49={'raw':![],'where':{'id':_0x369a18[_0x6b75('0x3c')]['id']}},_0x2945b6={};_0x2945b6[_0x6b75('0x3d')]=_['keys'](db[_0x6b75('0x34')][_0x6b75('0x3e')]);_0x2945b6[_0x6b75('0x3a')]=_['keys'](_0x369a18['query']);_0x2945b6['filters']=_[_0x6b75('0x3f')](_0x2945b6[_0x6b75('0x3d')],_0x2945b6['query']);_0x22bf49['attributes']=_[_0x6b75('0x3f')](_0x2945b6['model'],qs[_0x6b75('0x40')](_0x369a18[_0x6b75('0x3a')][_0x6b75('0x40')]));_0x22bf49['attributes']=_0x22bf49[_0x6b75('0x41')][_0x6b75('0x42')]?_0x22bf49['attributes']:_0x2945b6[_0x6b75('0x3d')];if(_0x369a18[_0x6b75('0x3a')][_0x6b75('0x43')]){_0x22bf49[_0x6b75('0x44')]=[{'all':!![]}];}_0x22bf49=_[_0x6b75('0x2d')]({},_0x22bf49,_0x369a18[_0x6b75('0x45')]);return db[_0x6b75('0x34')][_0x6b75('0x46')](_0x22bf49)[_0x6b75('0x16')](handleEntityNotFound(_0x271ec5,null))[_0x6b75('0x16')](respondWithResult(_0x271ec5,null))[_0x6b75('0x21')](handleError(_0x271ec5,null));};exports[_0x6b75('0x47')]=function(_0x58374b,_0xb4f0d5){return db[_0x6b75('0x34')]['create'](_0x58374b[_0x6b75('0x2e')],{})['then'](respondWithResult(_0xb4f0d5,0xc9))['catch'](handleError(_0xb4f0d5,null));};exports[_0x6b75('0x48')]=function(_0x53d787,_0x394248){if(_0x53d787[_0x6b75('0x2e')]['id']){delete _0x53d787[_0x6b75('0x2e')]['id'];}return db[_0x6b75('0x34')][_0x6b75('0x46')]({'where':{'id':_0x53d787[_0x6b75('0x3c')]['id']}})[_0x6b75('0x16')](handleEntityNotFound(_0x394248,null))[_0x6b75('0x16')](saveUpdates(_0x53d787[_0x6b75('0x2e')],null))[_0x6b75('0x16')](respondWithResult(_0x394248,null))['catch'](handleError(_0x394248,null));};exports[_0x6b75('0x49')]=function(_0xd056e0,_0x53fef3){return db[_0x6b75('0x34')]['find']({'where':{'id':_0xd056e0[_0x6b75('0x3c')]['id']}})[_0x6b75('0x16')](handleEntityNotFound(_0x53fef3,null))['then'](removeEntity(_0x53fef3,null))[_0x6b75('0x21')](handleError(_0x53fef3,null));};exports['describe']=function(_0x15f41e,_0x42f0ca){return db[_0x6b75('0x34')][_0x6b75('0x4a')]()[_0x6b75('0x16')](respondWithResult(_0x42f0ca,null))[_0x6b75('0x21')](handleError(_0x42f0ca,null));};exports['createVidaooSession']=function(_0x4599e0,_0x1f2cc0){var _0x1379fc=_0x4599e0[_0x6b75('0x3c')]['id'];var _0x13094a;var _0x343e79;var _0x57efa5;return db[_0x6b75('0x34')][_0x6b75('0x4b')]({'where':{'id':_0x1379fc}})[_0x6b75('0x16')](function(_0x2dc813){_0x13094a=_0x2dc813;return db[_0x6b75('0x4c')][_0x6b75('0x4b')]({'where':{'id':_0x2dc813[_0x6b75('0x4d')]},'attributes':['id','vidaooApiKey',_0x6b75('0x4e'),'vidaooTopic',_0x6b75('0x4f'),_0x6b75('0x50')],'raw':!![]});})['then'](function(_0x193aaf){if(_0x193aaf&&_0x193aaf[_0x6b75('0x51')]&&_0x193aaf[_0x6b75('0x4e')]){_0x343e79=_0x193aaf;var _0x5990bd={'interaction':{'id':_0x1379fc},'agent':{'id':_0x4599e0[_0x6b75('0x52')]['id'],'name':_0x4599e0[_0x6b75('0x52')][_0x6b75('0x53')],'fullname':_0x4599e0['user'][_0x6b75('0x54')],'email':_0x4599e0[_0x6b75('0x52')]['email']},'contact':_0x4599e0['body'][_0x6b75('0x55')],'account':_0x4599e0['body'][_0x6b75('0x31')]};var _0xe07baa={'rejectUnauthorized':![],'method':_0x6b75('0x56'),'url':_0x6b75('0x57'),'headers':{'X-APIKEY':_0x193aaf[_0x6b75('0x51')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x4599e0['user']['email']],'buttons':null,'topic':_0x343e79['vidaooTopic'],'note':_[_0x6b75('0x58')](_0x343e79[_0x6b75('0x4f')])?null:getMustacheRender(_0x343e79[_0x6b75('0x4f')],_0x5990bd),'metadata':null},'redirect':'follow','json':!![]};try{if(!_[_0x6b75('0x58')](_0x343e79[_0x6b75('0x50')])){var _0x3e4b53=getMustacheRender(_0x343e79[_0x6b75('0x50')],_0x5990bd);var _0x37a5f2=JSON[_0x6b75('0x59')](_0x3e4b53);_0xe07baa[_0x6b75('0x2e')][_0x6b75('0x5a')]=_0x37a5f2;}}catch(_0x306dbe){throw new db[(_0x6b75('0x5b'))]['ValidationError']('Error\x20in\x20conversion\x20vidaooMetadata');}return rp(_0xe07baa);}else{throw new db[(_0x6b75('0x5b'))][(_0x6b75('0x5c'))]('Error\x20in\x20Vidaoo\x20configuration');}})[_0x6b75('0x16')](function(_0x428437){_0x57efa5=_0x428437;if(_0x57efa5['id']){var _0x5af184={'body':_0x57efa5[_0x6b75('0x5d')],'ChatWebsiteId':_0x343e79['id'],'ChatInteractionId':_0x13094a['id'],'direction':_0x6b75('0x5e'),'UserId':_0x4599e0[_0x6b75('0x52')]['id']};return db[_0x6b75('0x5f')]['create'](_0x5af184,{});}else{throw new db[(_0x6b75('0x5b'))]['ValidationError'](_0x6b75('0x60'));}})['then'](function(){return _0x13094a[_0x6b75('0x61')]({'vidaooSessionId':_0x57efa5['id']});})[_0x6b75('0x16')](respondWithResult(_0x1f2cc0,null))[_0x6b75('0x21')](handleError(_0x1f2cc0,null));};exports[_0x6b75('0x62')]=function(_0x1e3b2d,_0xc7bfd6){if(_0x1e3b2d[_0x6b75('0x2e')]['id']){delete _0x1e3b2d[_0x6b75('0x2e')]['id'];}return db[_0x6b75('0x34')][_0x6b75('0x46')]({'where':{'id':_0x1e3b2d[_0x6b75('0x3c')]['id']},'include':[{'model':db[_0x6b75('0x63')],'as':_0x6b75('0x64')}]})[_0x6b75('0x16')](handleEntityNotFound(_0xc7bfd6,null))[_0x6b75('0x16')](saveUpdates(_0x1e3b2d[_0x6b75('0x2e')],null))[_0x6b75('0x16')](respondWithResult(_0xc7bfd6,null))[_0x6b75('0x21')](handleError(_0xc7bfd6,null));};exports[_0x6b75('0x65')]=function(_0x5b4c50,_0x4a3e72){if(_0x5b4c50[_0x6b75('0x2e')]['id']){delete _0x5b4c50[_0x6b75('0x2e')]['id'];}return db[_0x6b75('0x34')][_0x6b75('0x46')]({'where':{'id':_0x5b4c50[_0x6b75('0x3c')]['id']}})['then'](function(_0x2eb25a){if(!_0x2eb25a){logger[_0x6b75('0x1c')]('abandonInteraction,\x20%s,\x20%s,\x20%s',_0x6b75('0x65'),0x194,'entity\x20not\x20found');_0x4a3e72['sendStatus'](0x194);}else{if(_0x2eb25a[_0x6b75('0x66')]){throw new db[(_0x6b75('0x5b'))][(_0x6b75('0x5c'))](_0x6b75('0x67'));}}return _0x2eb25a;})[_0x6b75('0x16')](function(_0x4f2c18){if(_0x4f2c18){return _0x4f2c18[_0x6b75('0x48')]({'closed':_0x5b4c50['body']['closed'],'disposition':_0x5b4c50['body'][_0x6b75('0x68')]})['then'](function(_0x38ac48){return _0x38ac48;});}})[_0x6b75('0x16')](function(){return respondWithRpcPromise(_0x6b75('0x69'),_0x6b75('0x65'),_0x5b4c50[_0x6b75('0x2e')],client9004);})[_0x6b75('0x16')](respondWithResult(_0x4a3e72,null))[_0x6b75('0x21')](handleError(_0x4a3e72,null));};exports[_0x6b75('0x6a')]=function(_0x6920a6,_0x33215b){_0x6920a6['body'][_0x6b75('0x53')]=_0x6920a6[_0x6b75('0x6b')]['originalname'];_0x6920a6['body'][_0x6b75('0x6c')]=_0x6920a6[_0x6b75('0x6b')]['filename'];_0x6920a6[_0x6b75('0x2e')][_0x6b75('0x36')]=_0x6920a6[_0x6b75('0x6b')][_0x6b75('0x6d')];return db['Attachment']['create'](_0x6920a6[_0x6b75('0x2e')])[_0x6b75('0x16')](respondWithResult(_0x33215b,0xc9))[_0x6b75('0x21')](handleError(_0x33215b,null));};exports['attachmentDownload']=function(_0x3fd977,_0x2f296c){return db[_0x6b75('0x34')]['findOne']({'where':{'id':_0x3fd977[_0x6b75('0x3c')]['id']},'raw':!![]})[_0x6b75('0x16')](handleEntityNotFound(_0x2f296c,null))[_0x6b75('0x16')](function(_0x154093){if(_0x154093){if(_0x154093[_0x6b75('0x6e')]){return _0x2f296c[_0x6b75('0x24')](0x193)['json']({'status':0x193,'message':'Unauthorized'});}return db[_0x6b75('0x6f')][_0x6b75('0x4b')]({'where':{'id':_0x3fd977[_0x6b75('0x3a')][_0x6b75('0x70')]},'raw':!![]})['then'](handleEntityNotFound(_0x2f296c,null));}})['then'](function(_0x3b6e0b){if(_0x3b6e0b){var _0x41053b=_0x3b6e0b[_0x6b75('0x71')]!==null;var _0x15d271=path[_0x6b75('0x72')](config['root'],'server/files/attachments/');if(_0x41053b){_0x15d271=path['join'](_0x15d271,_0x6b75('0x73'));}var _0x1253cd=path[_0x6b75('0x72')](_0x15d271,_0x3b6e0b[_0x6b75('0x6c')]);return _0x2f296c[_0x6b75('0x74')](_0x1253cd);}})[_0x6b75('0x21')](handleError(_0x2f296c,null));};exports[_0x6b75('0x75')]=function(_0xd0e87f,_0x237d49){var _0x15f925=null;var _0x2f609b=null;var _0x299e00=null;if(_0xd0e87f[_0x6b75('0x2e')]['id']){delete _0xd0e87f['body']['id'];}if(_0xd0e87f[_0x6b75('0x2e')][_0x6b75('0x76')]){_0x299e00=path[_0x6b75('0x72')](config[_0x6b75('0x77')],_0x6b75('0x78'),util[_0x6b75('0x79')](_0x6b75('0x7a'),Date[_0x6b75('0x7b')]()));_0xd0e87f[_0x6b75('0x2e')][_0x6b75('0x7c')]=_0x299e00;}return db['ChatInteraction'][_0x6b75('0x46')]({'where':{'id':_0xd0e87f[_0x6b75('0x3c')]['id']},'include':[{'model':db['ChatMessage'],'as':'Messages','include':[{'model':db['User'],'as':_0x6b75('0x7d')}]}]})[_0x6b75('0x16')](handleEntityNotFound(_0x237d49,null))[_0x6b75('0x16')](saveUpdates(_0xd0e87f[_0x6b75('0x2e')],null))[_0x6b75('0x16')](function(_0x5504bd){if(_0x5504bd){_0x15f925=_0x5504bd;return db[_0x6b75('0x4c')][_0x6b75('0x46')]({'where':{'id':_0x15f925[_0x6b75('0x4d')]}});}})[_0x6b75('0x16')](function(_0x2915ba){if(_0x2915ba){_0x2f609b=_0x2915ba;return db['CmContact'][_0x6b75('0x46')]({'where':{'id':_0x15f925[_0x6b75('0x7e')]}});}})['then'](function(_0x7ca95b){if(_0x7ca95b){if(_0x299e00){var _0x635251=null;for(var _0x5bcefd=0x1;_0x5bcefd<_0x15f925[_0x6b75('0x7f')]['length'];++_0x5bcefd){_0x635251=_0x15f925[_0x6b75('0x7f')][_0x5bcefd];var _0x3567a9=_0x635251['UserId']?util[_0x6b75('0x79')](_0x6b75('0x80'),_0x2f609b[_0x6b75('0x81')],_0x635251[_0x6b75('0x66')]):_0x6b75('0x82');var _0x5ad712=_0xd0e87f[_0x6b75('0x2e')][_0x6b75('0x83')]||util[_0x6b75('0x79')](_0x6b75('0x80'),_0x6b75('0x84'),_0x635251[_0x6b75('0x7e')]);switch(_0x2f609b[_0x6b75('0x85')]){case _0x6b75('0x86'):_0x3567a9=_0x635251[_0x6b75('0x66')]?util['format'](_0x6b75('0x80'),_0x2f609b[_0x6b75('0x81')],_0x635251[_0x6b75('0x66')]):'System';break;case _0x6b75('0x87'):_0x3567a9=_0x635251[_0x6b75('0x66')]?_0x635251['User'][_0x6b75('0x88')]||_0x635251[_0x6b75('0x7d')][_0x6b75('0x54')]:_0x6b75('0x82');break;case _0x6b75('0x89'):_0x3567a9=_0x635251['UserId']?_0x635251[_0x6b75('0x7d')][_0x6b75('0x54')]:_0x6b75('0x82');break;default:_0x3567a9=_0x635251[_0x6b75('0x66')]?util[_0x6b75('0x79')](_0x6b75('0x80'),_0x2f609b['agentAlias'],_0x635251[_0x6b75('0x66')]):_0x6b75('0x82');}var _0x4395bf=util[_0x6b75('0x79')]('[%s]\x20%s:\x20%s\x0a',moment(_0x635251[_0x6b75('0x8a')])[_0x6b75('0x79')](_0x6b75('0x8b')),_0x635251[_0x6b75('0x8c')]==='in'?_0x5ad712:_0x3567a9,_0x635251[_0x6b75('0x2e')]);if(!_0x635251[_0x6b75('0x8d')]){fs[_0x6b75('0x8e')](_0x299e00,_0x4395bf);}}return db[_0x6b75('0x8f')][_0x6b75('0x4b')]({'where':{'service':!![]},'include':[{'model':db[_0x6b75('0x90')],'as':_0x6b75('0x91'),'raw':!![],'include':[{'model':db[_0x6b75('0x92')],'as':_0x6b75('0x92'),'raw':!![]}]}]});}}})[_0x6b75('0x16')](function(_0x3d4095){if(!_0x3d4095||!_0x3d4095[_0x6b75('0x91')]||!_0xd0e87f[_0x6b75('0x2e')])return _0x15f925;var _0x5c84c5=_0x3d4095[_0x6b75('0x93')]();return respondWithRpcPromise(_0x6b75('0x94'),_0x6b75('0x95'),{'account':_0x5c84c5,'message':{'from':util['format'](_0x6b75('0x96'),_0x3d4095[_0x6b75('0x53')],_0x3d4095['email']||_0x3d4095['Smtp'][_0x6b75('0x52')]),'to':_0xd0e87f[_0x6b75('0x2e')][_0x6b75('0x76')],'subject':_0x6b75('0x97'),'text':util['format'](_0x6b75('0x98'),_0xd0e87f[_0x6b75('0x2e')][_0x6b75('0x76')]),'attachments':[{'path':_0x299e00}]}})['then'](function(){return _0x15f925;})[_0x6b75('0x21')](function(_0x57d6e0){logger[_0x6b75('0x1c')](_0x57d6e0);});})[_0x6b75('0x16')](respondWithStatusCode(_0x237d49,0xc8))[_0x6b75('0x21')](handleError(_0x237d49,null));};exports[_0x6b75('0x99')]=function(_0x27ba08,_0x1df24d){return db[_0x6b75('0x5f')][_0x6b75('0x46')]({'where':{'id':_0x27ba08[_0x6b75('0x3c')]['id']}})[_0x6b75('0x16')](handleEntityNotFound(_0x1df24d,null))[_0x6b75('0x16')](function(_0x3b3e48){if(_0x3b3e48){return _0x3b3e48[_0x6b75('0x99')](_0x27ba08[_0x6b75('0x2e')]['ids'],_[_0x6b75('0x9a')](_0x27ba08['body'],['ids','id'])||{});}})[_0x6b75('0x16')](respondWithResult(_0x1df24d,null))['catch'](handleError(_0x1df24d,null));};exports['getMessages']=function(_0x15cb5a,_0x1fabea){var _0x5c12f9={'raw':![],'where':{}};var _0x592c5a={};var _0x1e3a31={'count':0x0,'rows':[]};return db['ChatInteraction'][_0x6b75('0x4b')]({'where':{'id':_0x15cb5a[_0x6b75('0x3c')]['id']}})['then'](handleEntityNotFound(_0x1fabea,null))[_0x6b75('0x16')](function(_0x37bfa8){if(_0x37bfa8){_0x592c5a[_0x6b75('0x3d')]=_['keys'](db[_0x6b75('0x5f')][_0x6b75('0x3e')]);_0x592c5a[_0x6b75('0x3a')]=_[_0x6b75('0x9b')](_0x15cb5a['query']);_0x592c5a['filters']=_[_0x6b75('0x3f')](_0x592c5a[_0x6b75('0x3d')],_0x592c5a[_0x6b75('0x3a')]);_0x5c12f9[_0x6b75('0x41')]=_[_0x6b75('0x3f')](_0x592c5a[_0x6b75('0x3d')],qs[_0x6b75('0x40')](_0x15cb5a[_0x6b75('0x3a')]['fields']));_0x5c12f9[_0x6b75('0x41')]=_0x5c12f9[_0x6b75('0x41')][_0x6b75('0x42')]?_0x5c12f9[_0x6b75('0x41')]:_0x592c5a[_0x6b75('0x3d')];if(!_0x15cb5a['query'][_0x6b75('0x9c')](_0x6b75('0x9d'))){_0x5c12f9[_0x6b75('0x27')]=qs[_0x6b75('0x27')](_0x15cb5a[_0x6b75('0x3a')][_0x6b75('0x27')]);_0x5c12f9[_0x6b75('0x26')]=qs[_0x6b75('0x26')](_0x15cb5a[_0x6b75('0x3a')][_0x6b75('0x26')]);}_0x5c12f9[_0x6b75('0x9e')]=qs[_0x6b75('0x9f')](_0x15cb5a['query'][_0x6b75('0x9f')]);_0x5c12f9[_0x6b75('0xa0')]=qs[_0x6b75('0xa1')](_['pick'](_0x15cb5a['query'],_0x592c5a[_0x6b75('0xa1')]));_0x5c12f9['where'][_0x6b75('0xa2')]=_0x37bfa8['id'];if(_0x15cb5a['query'][_0x6b75('0xa3')]){_0x5c12f9[_0x6b75('0xa0')]=_[_0x6b75('0x2d')](_0x5c12f9[_0x6b75('0xa0')],{'$or':_[_0x6b75('0x33')](_0x5c12f9['attributes'],function(_0x5c718e){var _0x5c39a6={};_0x5c39a6[_0x5c718e]={'$like':'%'+_0x15cb5a['query'][_0x6b75('0xa3')]+'%'};return _0x5c39a6;})});}if(_0x15cb5a['query'][_0x6b75('0xa4')]){var _0xa40e72=_0x15cb5a['query'][_0x6b75('0xa4')][_0x6b75('0xa5')](',');var _0x30a01f={};_0x30a01f[_0xa40e72[0x0]]={'$gte':moment(_0xa40e72[0x1])['format'](_0x6b75('0xa6'))};_0x5c12f9[_0x6b75('0xa0')]=_[_0x6b75('0x2d')](_0x5c12f9[_0x6b75('0xa0')],_0x30a01f);}_0x5c12f9=_['merge']({},_0x5c12f9,_0x15cb5a[_0x6b75('0x45')]);return db[_0x6b75('0x5f')][_0x6b75('0xa7')]({'where':_0x5c12f9[_0x6b75('0xa0')]})['then'](function(_0x3b5e64){_0x1e3a31[_0x6b75('0xa7')]=_0x3b5e64;if(_0x15cb5a['query'][_0x6b75('0x43')]){_0x5c12f9[_0x6b75('0x44')]=[{'all':!![]}];}return db[_0x6b75('0x5f')][_0x6b75('0x38')](_0x5c12f9);})['then'](function(_0x2ba9aa){_0x1e3a31['rows']=_0x2ba9aa;return _0x1e3a31;});}})[_0x6b75('0x16')](respondWithFilteredResult(_0x1fabea,_0x5c12f9))[_0x6b75('0x21')](handleError(_0x1fabea,null));};exports[_0x6b75('0xa8')]=function(_0x52e82f,_0x52b83e){var _0x512c34={'where':{}},_0x4abdc4={},_0x6fadca={'count':0x0,'rows':[]};return db['ChatInteraction'][_0x6b75('0x4b')]({'where':{'id':_0x52e82f[_0x6b75('0x3c')]['id']}})[_0x6b75('0x16')](handleEntityNotFound(_0x52b83e,null))['then'](function(_0x1f61a1){if(_0x1f61a1){_0x4abdc4[_0x6b75('0x3d')]=_[_0x6b75('0x9b')](db[_0x6b75('0x5f')]['rawAttributes']);_0x4abdc4['query']=_[_0x6b75('0x9b')](_0x52e82f['query']);_0x4abdc4[_0x6b75('0xa1')]=_[_0x6b75('0x3f')](_0x4abdc4[_0x6b75('0x3d')],_0x4abdc4[_0x6b75('0x3a')]);_0x512c34[_0x6b75('0x41')]=_[_0x6b75('0x3f')](_0x4abdc4[_0x6b75('0x3d')],qs[_0x6b75('0x40')](_0x52e82f[_0x6b75('0x3a')]['fields']));_0x512c34[_0x6b75('0x41')]=_0x512c34['attributes'][_0x6b75('0x42')]?_0x512c34[_0x6b75('0x41')]:_0x4abdc4[_0x6b75('0x3d')];if(!_0x52e82f[_0x6b75('0x3a')][_0x6b75('0x9c')](_0x6b75('0x9d'))){_0x512c34['limit']=qs[_0x6b75('0x27')](_0x52e82f[_0x6b75('0x3a')][_0x6b75('0x27')]);_0x512c34[_0x6b75('0x26')]=qs[_0x6b75('0x26')](_0x52e82f['query'][_0x6b75('0x26')]);}_0x512c34[_0x6b75('0x9e')]=qs['sort'](_0x52e82f[_0x6b75('0x3a')][_0x6b75('0x9f')]);_0x512c34[_0x6b75('0xa0')]=qs[_0x6b75('0xa1')](_[_0x6b75('0xa9')](_0x52e82f[_0x6b75('0x3a')],_0x4abdc4['filters']));_0x512c34[_0x6b75('0xa0')][_0x6b75('0xa2')]=_0x1f61a1['id'];if(_0x52e82f[_0x6b75('0x3a')]['filter']){_0x512c34['where']=_[_0x6b75('0x2d')](_0x512c34[_0x6b75('0xa0')],{'$or':_[_0x6b75('0x33')](_0x512c34[_0x6b75('0x41')],function(_0x450c30){var _0x490eab={};_0x490eab[_0x450c30]={'$like':'%'+_0x52e82f[_0x6b75('0x3a')][_0x6b75('0xa3')]+'%'};return _0x490eab;})});}_0x512c34[_0x6b75('0xa0')]['secret']=![];if(_0x52e82f[_0x6b75('0x3a')]['id']){_0x512c34[_0x6b75('0xa0')]['id']={'$gt':_0x52e82f[_0x6b75('0x3a')]['id']};}_0x512c34=_['merge']({},_0x512c34,_0x52e82f['options']);return db[_0x6b75('0x5f')][_0x6b75('0xa7')]({'where':_0x512c34[_0x6b75('0xa0')]})[_0x6b75('0x16')](function(_0x45b411){_0x6fadca[_0x6b75('0xa7')]=_0x45b411;_0x512c34['include']=[];if(_0x52e82f[_0x6b75('0x3a')][_0x6b75('0xaa')]){_0x512c34[_0x6b75('0x44')][_0x6b75('0xab')]({'model':db[_0x6b75('0x7d')],'as':'User','attributes':['id','fullname',_0x6b75('0x88')]});}if(_0x52e82f[_0x6b75('0x3a')][_0x6b75('0x43')]){_0x512c34[_0x6b75('0x44')]=[{'all':!![]}];}return db['ChatMessage'][_0x6b75('0x38')](_0x512c34);})[_0x6b75('0x16')](function(_0x581a3e){_0x6fadca[_0x6b75('0xac')]=_0x581a3e;return _0x6fadca;});}})[_0x6b75('0x16')](respondWithFilteredResult(_0x52b83e,_0x512c34))[_0x6b75('0x21')](handleError(_0x52b83e,null));};exports[_0x6b75('0xad')]=function(_0x257ac7,_0x42f70b){return db[_0x6b75('0x34')][_0x6b75('0x46')]({'where':{'id':_0x257ac7['params']['id']}})[_0x6b75('0x16')](handleEntityNotFound(_0x42f70b,null))[_0x6b75('0x16')](function(_0x5f5b43){if(_0x5f5b43){return _0x5f5b43[_0x6b75('0xae')](_0x257ac7[_0x6b75('0x2e')][_0x6b75('0xaf')],_['omit'](_0x257ac7['body'],['ids','id'])||{})[_0x6b75('0xb0')](function(){return db[_0x6b75('0xb1')]['findAll']({'attributes':['id',_0x6b75('0x53'),'color'],'where':{'id':_0x257ac7[_0x6b75('0x2e')][_0x6b75('0xaf')]}});})['then'](function(_0x521184){socket[_0x6b75('0xb2')](_0x6b75('0xb3'),{'id':Number(_0x257ac7[_0x6b75('0x3c')]['id']),'tags':_0x521184||[]});return{'id':Number(_0x257ac7['params']['id']),'tags':_0x521184||[]};});}})['then'](respondWithResult(_0x42f70b,null))['catch'](handleError(_0x42f70b,null));};exports[_0x6b75('0xb4')]=function(_0xcec860,_0x335314){return db[_0x6b75('0x34')]['find']({'where':{'id':_0xcec860[_0x6b75('0x3c')]['id']}})[_0x6b75('0x16')](handleEntityNotFound(_0x335314,null))[_0x6b75('0x16')](function(_0x288ce2){if(_0x288ce2){return _0x288ce2[_0x6b75('0xb4')](_0xcec860['query'][_0x6b75('0xaf')]);}})[_0x6b75('0x16')](respondWithStatusCode(_0x335314,null))[_0x6b75('0x21')](handleError(_0x335314,null));};exports[_0x6b75('0x74')]=function(_0xb4529e,_0x2c91f8){var _0x2b1e23=moment()[_0x6b75('0xb5')]()[_0x6b75('0xb6')]();var _0x5c0a24=path['join'](config[_0x6b75('0x77')],_0x6b75('0xb7'),_0x6b75('0xb8'),'tmp');var _0x7d36=path[_0x6b75('0x72')](config[_0x6b75('0x77')],_0x6b75('0xb7'),_0x6b75('0xb8'),'attachments');var _0x56ba11=path['join'](_0x5c0a24,_0x2b1e23);var _0x694dee=util[_0x6b75('0x79')](_0x6b75('0xb9'),_0xb4529e[_0x6b75('0x3c')]['id'],_0x2b1e23);var _0x1a21da=path[_0x6b75('0x72')](_0x5c0a24,_0x694dee);var _0x284258=[];_0x284258['push']({'model':db[_0x6b75('0x7d')],'as':_0x6b75('0x7d'),'attributes':['id','fullname'],'raw':!![]});_0x284258[_0x6b75('0xab')]({'model':db['CmContact'],'as':_0x6b75('0x64'),'attributes':['id',_0x6b75('0xba'),'lastName'],'raw':!![]});if(_0xb4529e[_0x6b75('0x3a')][_0x6b75('0xbb')]){_0x284258['push']({'model':db[_0x6b75('0x6f')],'as':_0x6b75('0x6f'),'raw':!![]});}var _0x443ab8=[{'model':db['ChatMessage'],'as':'Messages','attributes':['id',_0x6b75('0x2e'),_0x6b75('0x8a'),_0x6b75('0x8c'),_0x6b75('0x8d'),_0x6b75('0xbc')],'include':_0x284258}];_0x443ab8[_0x6b75('0xab')]({'model':db['ChatWebsite'],'as':_0x6b75('0xbd'),'attributes':['id','name']});_0x443ab8['push']({'model':db[_0x6b75('0x7d')],'as':_0x6b75('0xbe'),'attributes':['id',_0x6b75('0x54')]});return db[_0x6b75('0x34')]['find']({'where':{'id':_0xb4529e[_0x6b75('0x3c')]['id']},'include':_0x443ab8})[_0x6b75('0x16')](handleEntityNotFound(_0x2c91f8,null))[_0x6b75('0x16')](function(_0xff24fe){if(_0xff24fe){var _0x50537c=_0xff24fe['get']({'plain':!![]});fs['mkdirSync'](_0x56ba11);var _0x18bec2={'channel':_0x6b75('0xbf'),'account':_0x50537c[_0x6b75('0xbd')][_0x6b75('0x53')],'agent':_0x50537c['Owner']?_0x50537c['Owner']['fullname']:_0x6b75('0xc0'),'createdAt':moment(_0x50537c[_0x6b75('0x8a')])[_0x6b75('0x79')](_0x6b75('0xa6'))[_0x6b75('0xb6')](),'closedAt':_0x50537c[_0x6b75('0x6e')]?moment(_0x50537c['closedAt'])[_0x6b75('0x79')](_0x6b75('0xa6'))[_0x6b75('0xb6')]():'','disposition':_0x50537c[_0x6b75('0x68')],'chatInfo':{'browser':_0x50537c['browserName'],'os':_0x50537c[_0x6b75('0xc1')],'referer':_0x50537c['referer'],'customerIp':_0x50537c[_0x6b75('0xc2')],'customerPort':_0x50537c['customerPort']?_0x50537c[_0x6b75('0xc3')]:_0x6b75('0xc0')},'messages':_(_0x50537c[_0x6b75('0x7f')])[_0x6b75('0xc4')]()[_0x6b75('0xa3')]({'secret':![]})[_0x6b75('0x33')](function(_0x180ad2){if(_0x180ad2[_0x6b75('0x6f')]){var _0x21583a=path[_0x6b75('0x72')](_0x7d36,_0x180ad2[_0x6b75('0x6f')][_0x6b75('0x6c')]);if(fs[_0x6b75('0xc5')](_0x21583a)){fs[_0x6b75('0xc6')](_0x21583a)['pipe'](fs[_0x6b75('0xc7')](path['join'](_0x56ba11,_0x180ad2[_0x6b75('0x6f')]['basename'])));}}return{'date':moment(_0x180ad2['createdAt'])[_0x6b75('0x79')](_0x6b75('0xa6'))[_0x6b75('0xb6')](),'sender':_0x180ad2[_0x6b75('0x8c')]===_0x6b75('0x5e')?_0x180ad2[_0x6b75('0x7d')]?_0x180ad2[_0x6b75('0x7d')][_0x6b75('0x54')]:_0x6b75('0x82'):_0x180ad2[_0x6b75('0x64')][_0x6b75('0xba')]+(_0x180ad2['Contact'][_0x6b75('0xc8')]?'\x20'+_0x180ad2['Contact'][_0x6b75('0xc8')]:''),'body':_0x180ad2[_0x6b75('0x6f')]?_0x180ad2['Attachment'][_0x6b75('0x6c')]:_0x180ad2[_0x6b75('0x2e')],'direction':_0x180ad2[_0x6b75('0x8c')]===_0x6b75('0x5e')?'A':'C','secret':_0x180ad2[_0x6b75('0x8d')],'read':_0x180ad2[_0x6b75('0xbc')],'attachment':_0x180ad2[_0x6b75('0x6f')]};})['value']()};return ejs[_0x6b75('0xc9')](path[_0x6b75('0x72')](config[_0x6b75('0x77')],_0x6b75('0xb7'),_0x6b75('0xca'),'downloadInteraction.ejs'),{'interaction':_0x18bec2})[_0x6b75('0x16')](function(_0x49cfd0){var _0x46d413=path[_0x6b75('0x72')](_0x56ba11,_0x6b75('0xcb')+_0x50537c['id']+'-'+_0x2b1e23+'.pdf');var _0x2687dd={'path':_0x46d413,'channel':_0x6b75('0xbf'),'interactionId':_0x50537c['id']};return pdf['createPdfFromHTML'](_0x49cfd0,_0x2687dd);})[_0x6b75('0x16')](function(){return new Promise(function(_0x328555,_0x453337){zipdir(_0x56ba11,{'saveTo':_0x1a21da},function(_0x309cd3,_0x4bee16){if(_0x309cd3)return _0x453337(_0x309cd3);return _0x328555(_0x4bee16);});})[_0x6b75('0x16')](function(){return new BPromise(function(_0x51b193,_0x1f0760){rimraf(_0x56ba11,function(_0xcce6b5){if(_0xcce6b5)_0x1f0760(_0xcce6b5);return _0x51b193();});});})[_0x6b75('0x16')](function(){return _0x2c91f8['download'](_0x1a21da,_0x694dee,function(_0x296c3f){if(_0x296c3f){logger[_0x6b75('0x1c')](_0x6b75('0xcc'),_0x296c3f);}else{fs[_0x6b75('0xcd')](_0x1a21da);}});});});}else{return _0x2c91f8[_0x6b75('0x22')](0xc8);}})[_0x6b75('0x21')](handleError(_0x2c91f8,null));};