84fb6d3bfb965bbdd8e66ecbc64b9ab99fdafacb
[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 _0x18e1=['createdAt','read','Account','get','mkdirSync','Owner','N.A.','toString','closedAt','disposition','browserName','osName','customerIp','customerPort','tail','existsSync','createReadStream','pipe','createWriteStream','out','views','downloadInteraction.ejs','transcript-','.pdf','err','unlinkSync','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInteraction.socket','register','jayson/promise','client','http','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','end','status','json','offset','undefined','limit','set','update','destroy','name','render','merge','body','contact','agent','account','index','map','ChatInteraction','fieldName','type','key','getOptions','findAll','chat','query','user','show','params','keys','rawAttributes','filters','intersection','attributes','model','fields','length','includeAll','include','find','create','describe','createVidaooSession','findOne','ChatWebsite','ChatWebsiteId','vidaooApiKey','vidaooEscalation','vidaooTopic','vidaooNote','email','POST','https://api-vidaoo.xcally.com/api/v1/meetings','isNull','follow','vidaooMetadata','Sequelize','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','Error\x20in\x20Vidaoo\x20configuration','join_url','ChatMessage','Unable\x20to\x20create\x20Vidaoo\x20session','CmContact','Contact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','UserId','Interaction\x20already\x20assigned','closed','originalname','basename','filename','file','attachmentDownload','Attachment','attachId','ChatOfflineMessageId','join','root','server/files/attachments/','download','close','mailTranscript','format','transcript-%s.txt','now','Messages','User','ContactId','%s%d','agentAlias','System','customer','Visitor','agentIdentifier','agent_alias','alias','fullname','agent_fullname','[%s]\x20%s:\x20%s\x0a','MM/DD/YYYY\x20HH:mm:ss','direction','secret','appendFileSync','MailAccount','MailServerOut','Smtp','CloudProvider','getSmtpOptions','SendMail','sendMail','\x22%s\x22\x20<%s>','Mail\x20Transcript','getMessages','hasOwnProperty','sort','where','ChatInteractionId','filter','$gte','split','YYYY-MM-DD\x20HH:mm:ss','count','getMyMessages','nolimit','order','options','includeAgent','push','rows','addTags','setTags','ids','spread','color','emit','removeTags','unix','server','tmp','files','attachments','firstName','lastName'];(function(_0x4d2583,_0x52bd89){var _0x57fa3a=function(_0x3ad39c){while(--_0x3ad39c){_0x4d2583['push'](_0x4d2583['shift']());}};_0x57fa3a(++_0x52bd89);}(_0x18e1,0xeb));var _0x118e=function(_0x1f6098,_0x1e728c){_0x1f6098=_0x1f6098-0x0;var _0x38b312=_0x18e1[_0x1f6098];return _0x38b312;};'use strict';var rimraf=require(_0x118e('0x0'));var zipdir=require(_0x118e('0x1'));var rp=require(_0x118e('0x2'));var moment=require(_0x118e('0x3'));var BPromise=require(_0x118e('0x4'));var Mustache=require(_0x118e('0x5'));var util=require(_0x118e('0x6'));var path=require(_0x118e('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x118e('0x8'));var Redis=require(_0x118e('0x9'));var interaction=require(_0x118e('0xa'));var qs=require(_0x118e('0xb'));var pdf=require('../../components/export/pdf');var logger=require('../../config/logger')(_0x118e('0xc'));var config=require(_0x118e('0xd'));var db=require(_0x118e('0xe'))['db'];config[_0x118e('0xf')]=_[_0x118e('0x10')](config[_0x118e('0xf')],{'host':_0x118e('0x11'),'port':0x18eb});var socket=require(_0x118e('0x12'))(new Redis(config[_0x118e('0xf')]));require(_0x118e('0x13'))[_0x118e('0x14')](socket);var jayson=require(_0x118e('0x15'));var client=jayson[_0x118e('0x16')][_0x118e('0x17')]({'port':0x232b});var client9004=jayson[_0x118e('0x16')][_0x118e('0x17')]({'port':0x232c});function respondWithRpcPromise(_0x1e5602,_0x3b6469,_0x230d5f,_0x2de3a4){return new BPromise(function(_0x5cb63f,_0x4188c4){var _0x288bc7=_0x2de3a4||client;return _0x288bc7['request'](_0x1e5602,_0x230d5f)[_0x118e('0x18')](function(_0x57f34d){logger[_0x118e('0x19')](_0x118e('0x1a'),_0x3b6469,_0x118e('0x1b'));logger[_0x118e('0x1c')](_0x118e('0x1d'),_0x3b6469,'request\x20sent',JSON[_0x118e('0x1e')](_0x57f34d));if(_0x57f34d[_0x118e('0x1f')]){if(_0x57f34d[_0x118e('0x1f')][_0x118e('0x20')]===0x1f4){logger['error'](_0x118e('0x1a'),_0x3b6469,_0x57f34d[_0x118e('0x1f')][_0x118e('0x21')]);return _0x4188c4(_0x57f34d[_0x118e('0x1f')][_0x118e('0x21')]);}logger[_0x118e('0x1f')](_0x118e('0x1a'),_0x3b6469,_0x57f34d[_0x118e('0x1f')][_0x118e('0x21')]);return _0x5cb63f(_0x57f34d[_0x118e('0x1f')]['message']);}else{logger[_0x118e('0x19')](_0x118e('0x1a'),_0x3b6469,'request\x20sent');_0x5cb63f(_0x57f34d[_0x118e('0x22')][_0x118e('0x21')]);}})[_0x118e('0x23')](function(_0x316ccb){logger[_0x118e('0x1f')](_0x118e('0x1a'),_0x3b6469,_0x316ccb);_0x4188c4(_0x316ccb);});});}function respondWithStatusCode(_0x254b9e,_0x4d68c8){_0x4d68c8=_0x4d68c8||0xcc;return function(_0x197fea){if(_0x197fea){return _0x254b9e[_0x118e('0x24')](_0x4d68c8);}return _0x254b9e['status'](_0x4d68c8)[_0x118e('0x25')]();};}function respondWithResult(_0x494fc4,_0x5b6bea){_0x5b6bea=_0x5b6bea||0xc8;return function(_0x2aaf5d){if(_0x2aaf5d){return _0x494fc4[_0x118e('0x26')](_0x5b6bea)[_0x118e('0x27')](_0x2aaf5d);}};}function respondWithFilteredResult(_0xf4e21d,_0x5ab80e){return function(_0x26a244){if(_0x26a244){var _0x40d181=typeof _0x5ab80e[_0x118e('0x28')]===_0x118e('0x29')&&typeof _0x5ab80e['limit']===_0x118e('0x29');var _0xb6eebd=_0x26a244['count'];var _0x253603=_0x40d181?0x0:_0x5ab80e[_0x118e('0x28')];var _0x5bd687=_0x40d181?_0x26a244['count']:_0x5ab80e['offset']+_0x5ab80e[_0x118e('0x2a')];var _0xeba19d;if(_0x5bd687>=_0xb6eebd){_0x5bd687=_0xb6eebd;_0xeba19d=0xc8;}else{_0xeba19d=0xce;}_0xf4e21d['status'](_0xeba19d);return _0xf4e21d[_0x118e('0x2b')]('Content-Range',_0x253603+'-'+_0x5bd687+'/'+_0xb6eebd)[_0x118e('0x27')](_0x26a244);}return null;};}function saveUpdates(_0x5d2473){return function(_0x514a7a){if(_0x514a7a){return _0x514a7a[_0x118e('0x2c')](_0x5d2473)['then'](function(_0xcf1e0d){return _0xcf1e0d;});}return null;};}function removeEntity(_0xe2e91a){return function(_0x443372){if(_0x443372){return _0x443372[_0x118e('0x2d')]()['then'](function(){_0xe2e91a['status'](0xcc)[_0x118e('0x25')]();});}};}function handleEntityNotFound(_0x815c61){return function(_0x561337){if(!_0x561337){_0x815c61[_0x118e('0x24')](0x194);}return _0x561337;};}function handleError(_0x3a0488,_0x212e87){_0x212e87=_0x212e87||0x1f4;return function(_0x349632){logger[_0x118e('0x1f')](_0x349632['stack']);if(_0x349632[_0x118e('0x2e')]){delete _0x349632['name'];}_0x3a0488['status'](_0x212e87)['send'](_0x349632);};}function getMustacheRender(_0x376689,_0x38f646){return Mustache[_0x118e('0x2f')](_0x376689,_[_0x118e('0x30')](_0x38f646[_0x118e('0x31')],{'contact':_0x38f646[_0x118e('0x32')],'message':_0x38f646[_0x118e('0x21')],'agent':_0x38f646[_0x118e('0x33')],'interaction':_0x38f646['interaction'],'account':_0x38f646[_0x118e('0x34')]}))||'';}exports[_0x118e('0x35')]=function(_0x4d3237,_0xe3f1c6){var _0x46bbeb={};var _0x154a9b=_[_0x118e('0x36')](db[_0x118e('0x37')]['rawAttributes'],function(_0x31c338){return{'name':_0x31c338[_0x118e('0x38')],'type':_0x31c338[_0x118e('0x39')][_0x118e('0x3a')]};});_0x46bbeb=qs[_0x118e('0x3b')](_0x154a9b,_0x4d3237);return interaction[_0x118e('0x3c')](_0x118e('0x3d'),_0x4d3237[_0x118e('0x3e')],_0x4d3237[_0x118e('0x3f')],_0x46bbeb,_0x154a9b)[_0x118e('0x18')](respondWithFilteredResult(_0xe3f1c6,_0x46bbeb))[_0x118e('0x23')](handleError(_0xe3f1c6,null));};exports[_0x118e('0x40')]=function(_0x29c7e8,_0x503d76){var _0x26c597={'raw':![],'where':{'id':_0x29c7e8[_0x118e('0x41')]['id']}},_0x3b4e9d={};_0x3b4e9d['model']=_[_0x118e('0x42')](db['ChatInteraction'][_0x118e('0x43')]);_0x3b4e9d['query']=_[_0x118e('0x42')](_0x29c7e8[_0x118e('0x3e')]);_0x3b4e9d[_0x118e('0x44')]=_[_0x118e('0x45')](_0x3b4e9d['model'],_0x3b4e9d[_0x118e('0x3e')]);_0x26c597[_0x118e('0x46')]=_[_0x118e('0x45')](_0x3b4e9d[_0x118e('0x47')],qs[_0x118e('0x48')](_0x29c7e8[_0x118e('0x3e')]['fields']));_0x26c597['attributes']=_0x26c597[_0x118e('0x46')][_0x118e('0x49')]?_0x26c597['attributes']:_0x3b4e9d[_0x118e('0x47')];if(_0x29c7e8['query'][_0x118e('0x4a')]){_0x26c597[_0x118e('0x4b')]=[{'all':!![]}];}_0x26c597=_[_0x118e('0x30')]({},_0x26c597,_0x29c7e8['options']);return db[_0x118e('0x37')][_0x118e('0x4c')](_0x26c597)[_0x118e('0x18')](handleEntityNotFound(_0x503d76,null))[_0x118e('0x18')](respondWithResult(_0x503d76,null))[_0x118e('0x23')](handleError(_0x503d76,null));};exports[_0x118e('0x4d')]=function(_0x120d53,_0x2d028c){return db[_0x118e('0x37')][_0x118e('0x4d')](_0x120d53[_0x118e('0x31')],{})['then'](respondWithResult(_0x2d028c,0xc9))[_0x118e('0x23')](handleError(_0x2d028c,null));};exports[_0x118e('0x2c')]=function(_0x3542dd,_0xd28e30){if(_0x3542dd['body']['id']){delete _0x3542dd[_0x118e('0x31')]['id'];}return db['ChatInteraction'][_0x118e('0x4c')]({'where':{'id':_0x3542dd['params']['id']}})[_0x118e('0x18')](handleEntityNotFound(_0xd28e30,null))['then'](saveUpdates(_0x3542dd[_0x118e('0x31')],null))[_0x118e('0x18')](respondWithResult(_0xd28e30,null))[_0x118e('0x23')](handleError(_0xd28e30,null));};exports[_0x118e('0x2d')]=function(_0x43b4b9,_0x4c1db9){return db[_0x118e('0x37')][_0x118e('0x4c')]({'where':{'id':_0x43b4b9[_0x118e('0x41')]['id']}})[_0x118e('0x18')](handleEntityNotFound(_0x4c1db9,null))[_0x118e('0x18')](removeEntity(_0x4c1db9,null))[_0x118e('0x23')](handleError(_0x4c1db9,null));};exports[_0x118e('0x4e')]=function(_0xa9a291,_0x48dc95){return db[_0x118e('0x37')][_0x118e('0x4e')]()['then'](respondWithResult(_0x48dc95,null))['catch'](handleError(_0x48dc95,null));};exports[_0x118e('0x4f')]=function(_0x56434b,_0x3cc84b){var _0x300bb3=_0x56434b[_0x118e('0x41')]['id'];var _0xa14a39;var _0x38b569;var _0x32205a;return db['ChatInteraction'][_0x118e('0x50')]({'where':{'id':_0x300bb3}})[_0x118e('0x18')](function(_0xf1f8a5){_0xa14a39=_0xf1f8a5;return db[_0x118e('0x51')][_0x118e('0x50')]({'where':{'id':_0xf1f8a5[_0x118e('0x52')]},'attributes':['id',_0x118e('0x53'),_0x118e('0x54'),_0x118e('0x55'),_0x118e('0x56'),'vidaooMetadata'],'raw':!![]});})[_0x118e('0x18')](function(_0x4e7798){if(_0x4e7798&&_0x4e7798[_0x118e('0x53')]&&_0x4e7798[_0x118e('0x54')]){_0x38b569=_0x4e7798;var _0x201266={'interaction':{'id':_0x300bb3},'agent':{'id':_0x56434b[_0x118e('0x3f')]['id'],'name':_0x56434b[_0x118e('0x3f')][_0x118e('0x2e')],'fullname':_0x56434b[_0x118e('0x3f')]['fullname'],'email':_0x56434b[_0x118e('0x3f')][_0x118e('0x57')]},'contact':_0x56434b[_0x118e('0x31')][_0x118e('0x32')],'account':_0x56434b['body'][_0x118e('0x34')]};var _0x24e57b={'rejectUnauthorized':![],'method':_0x118e('0x58'),'url':_0x118e('0x59'),'headers':{'X-APIKEY':_0x4e7798['vidaooApiKey']},'body':{'duration':null,'scheduledAt':null,'participants':[_0x56434b['user'][_0x118e('0x57')]],'buttons':null,'topic':_0x38b569[_0x118e('0x55')],'note':_[_0x118e('0x5a')](_0x38b569[_0x118e('0x56')])?null:getMustacheRender(_0x38b569[_0x118e('0x56')],_0x201266),'metadata':null},'redirect':_0x118e('0x5b'),'json':!![]};try{if(!_[_0x118e('0x5a')](_0x38b569[_0x118e('0x5c')])){var _0x1bfbe1=getMustacheRender(_0x38b569[_0x118e('0x5c')],_0x201266);var _0x1170d3=JSON['parse'](_0x1bfbe1);_0x24e57b[_0x118e('0x31')]['metadata']=_0x1170d3;}}catch(_0x575f6d){throw new db[(_0x118e('0x5d'))][(_0x118e('0x5e'))](_0x118e('0x5f'));}return rp(_0x24e57b);}else{throw new db[(_0x118e('0x5d'))][(_0x118e('0x5e'))](_0x118e('0x60'));}})[_0x118e('0x18')](function(_0x132930){_0x32205a=_0x132930;if(_0x32205a['id']){var _0x18605e={'body':_0x32205a[_0x118e('0x61')],'ChatWebsiteId':_0x38b569['id'],'ChatInteractionId':_0xa14a39['id'],'direction':'out','UserId':_0x56434b[_0x118e('0x3f')]['id']};return db[_0x118e('0x62')][_0x118e('0x4d')](_0x18605e,{});}else{throw new db['Sequelize']['ValidationError'](_0x118e('0x63'));}})['then'](function(){return _0xa14a39['updateAttributes']({'vidaooSessionId':_0x32205a['id']});})['then'](respondWithResult(_0x3cc84b,null))[_0x118e('0x23')](handleError(_0x3cc84b,null));};exports['customUpdate']=function(_0x107a2f,_0x5df194){if(_0x107a2f[_0x118e('0x31')]['id']){delete _0x107a2f[_0x118e('0x31')]['id'];}return db['ChatInteraction'][_0x118e('0x4c')]({'where':{'id':_0x107a2f[_0x118e('0x41')]['id']},'include':[{'model':db[_0x118e('0x64')],'as':_0x118e('0x65')}]})[_0x118e('0x18')](handleEntityNotFound(_0x5df194,null))[_0x118e('0x18')](saveUpdates(_0x107a2f['body'],null))['then'](respondWithResult(_0x5df194,null))[_0x118e('0x23')](handleError(_0x5df194,null));};exports[_0x118e('0x66')]=function(_0x464112,_0x17723c){if(_0x464112[_0x118e('0x31')]['id']){delete _0x464112[_0x118e('0x31')]['id'];}return db[_0x118e('0x37')]['find']({'where':{'id':_0x464112[_0x118e('0x41')]['id']}})[_0x118e('0x18')](function(_0x4b36f3){if(!_0x4b36f3){logger[_0x118e('0x1f')](_0x118e('0x67'),_0x118e('0x66'),0x194,_0x118e('0x68'));_0x17723c[_0x118e('0x24')](0x194);}else{if(_0x4b36f3[_0x118e('0x69')]){throw new db[(_0x118e('0x5d'))][(_0x118e('0x5e'))](_0x118e('0x6a'));}}return _0x4b36f3;})[_0x118e('0x18')](function(_0x3c832a){if(_0x3c832a){return _0x3c832a[_0x118e('0x2c')]({'closed':_0x464112['body'][_0x118e('0x6b')],'disposition':_0x464112['body']['disposition']})[_0x118e('0x18')](function(_0x50b6f3){return _0x50b6f3;});}})[_0x118e('0x18')](function(){return respondWithRpcPromise('AbandonInteraction','abandon',_0x464112[_0x118e('0x31')],client9004);})['then'](respondWithResult(_0x17723c,null))['catch'](handleError(_0x17723c,null));};exports['attachmentUpload']=function(_0x5a6a1c,_0x13b50c){_0x5a6a1c['body'][_0x118e('0x2e')]=_0x5a6a1c['file'][_0x118e('0x6c')];_0x5a6a1c['body'][_0x118e('0x6d')]=_0x5a6a1c['file'][_0x118e('0x6e')];_0x5a6a1c['body'][_0x118e('0x39')]=_0x5a6a1c[_0x118e('0x6f')]['mimetype'];return db['Attachment'][_0x118e('0x4d')](_0x5a6a1c[_0x118e('0x31')])[_0x118e('0x18')](respondWithResult(_0x13b50c,0xc9))[_0x118e('0x23')](handleError(_0x13b50c,null));};exports[_0x118e('0x70')]=function(_0x3e0d63,_0x2b8ee4){return db['ChatInteraction'][_0x118e('0x50')]({'where':{'id':_0x3e0d63[_0x118e('0x41')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x2b8ee4,null))[_0x118e('0x18')](function(_0x24ef3f){if(_0x24ef3f){if(_0x24ef3f[_0x118e('0x6b')]){return _0x2b8ee4[_0x118e('0x26')](0x193)['json']({'status':0x193,'message':'Unauthorized'});}return db[_0x118e('0x71')][_0x118e('0x50')]({'where':{'id':_0x3e0d63[_0x118e('0x3e')][_0x118e('0x72')]},'raw':!![]})['then'](handleEntityNotFound(_0x2b8ee4,null));}})['then'](function(_0x337f9c){if(_0x337f9c){var _0x4adadb=_0x337f9c[_0x118e('0x73')]!==null;var _0x2afb01=path[_0x118e('0x74')](config[_0x118e('0x75')],_0x118e('0x76'));if(_0x4adadb){_0x2afb01=path[_0x118e('0x74')](_0x2afb01,'offline-chat/');}var _0x4e41e0=path[_0x118e('0x74')](_0x2afb01,_0x337f9c[_0x118e('0x6d')]);return _0x2b8ee4[_0x118e('0x77')](_0x4e41e0);}})[_0x118e('0x23')](handleError(_0x2b8ee4,null));};exports[_0x118e('0x78')]=function(_0x47239c,_0x2a295a){var _0x4527ea=null;var _0x1a6942=null;var _0x28f110=null;if(_0x47239c[_0x118e('0x31')]['id']){delete _0x47239c[_0x118e('0x31')]['id'];}if(_0x47239c[_0x118e('0x31')][_0x118e('0x79')]){_0x28f110=path['join'](config[_0x118e('0x75')],'server/files/chat/upload/',util[_0x118e('0x7a')](_0x118e('0x7b'),Date[_0x118e('0x7c')]()));_0x47239c[_0x118e('0x31')]['pathTranscript']=_0x28f110;}return db[_0x118e('0x37')][_0x118e('0x4c')]({'where':{'id':_0x47239c[_0x118e('0x41')]['id']},'include':[{'model':db['ChatMessage'],'as':_0x118e('0x7d'),'include':[{'model':db[_0x118e('0x7e')],'as':'User'}]}]})[_0x118e('0x18')](handleEntityNotFound(_0x2a295a,null))[_0x118e('0x18')](saveUpdates(_0x47239c[_0x118e('0x31')],null))[_0x118e('0x18')](function(_0x3cf9bf){if(_0x3cf9bf){_0x4527ea=_0x3cf9bf;return db[_0x118e('0x51')][_0x118e('0x4c')]({'where':{'id':_0x4527ea['ChatWebsiteId']}});}})[_0x118e('0x18')](function(_0x272870){if(_0x272870){_0x1a6942=_0x272870;return db[_0x118e('0x64')][_0x118e('0x4c')]({'where':{'id':_0x4527ea[_0x118e('0x7f')]}});}})[_0x118e('0x18')](function(_0x4502c6){if(_0x4502c6){if(_0x28f110){var _0xb124c8=null;for(var _0x173c01=0x1;_0x173c01<_0x4527ea[_0x118e('0x7d')][_0x118e('0x49')];++_0x173c01){_0xb124c8=_0x4527ea[_0x118e('0x7d')][_0x173c01];var _0x4445df=_0xb124c8['UserId']?util[_0x118e('0x7a')](_0x118e('0x80'),_0x1a6942[_0x118e('0x81')],_0xb124c8[_0x118e('0x69')]):_0x118e('0x82');var _0x2012b6=_0x47239c[_0x118e('0x31')][_0x118e('0x83')]||util[_0x118e('0x7a')](_0x118e('0x80'),_0x118e('0x84'),_0xb124c8[_0x118e('0x7f')]);switch(_0x1a6942[_0x118e('0x85')]){case'website_alias':_0x4445df=_0xb124c8[_0x118e('0x69')]?util[_0x118e('0x7a')](_0x118e('0x80'),_0x1a6942[_0x118e('0x81')],_0xb124c8[_0x118e('0x69')]):_0x118e('0x82');break;case _0x118e('0x86'):_0x4445df=_0xb124c8[_0x118e('0x69')]?_0xb124c8['User'][_0x118e('0x87')]||_0xb124c8[_0x118e('0x7e')][_0x118e('0x88')]:_0x118e('0x82');break;case _0x118e('0x89'):_0x4445df=_0xb124c8[_0x118e('0x69')]?_0xb124c8[_0x118e('0x7e')]['fullname']:_0x118e('0x82');break;default:_0x4445df=_0xb124c8['UserId']?util[_0x118e('0x7a')](_0x118e('0x80'),_0x1a6942['agentAlias'],_0xb124c8[_0x118e('0x69')]):'System';}var _0x2ca480=util[_0x118e('0x7a')](_0x118e('0x8a'),moment(_0xb124c8['createdAt'])[_0x118e('0x7a')](_0x118e('0x8b')),_0xb124c8[_0x118e('0x8c')]==='in'?_0x2012b6:_0x4445df,_0xb124c8[_0x118e('0x31')]);if(!_0xb124c8[_0x118e('0x8d')]){fs[_0x118e('0x8e')](_0x28f110,_0x2ca480);}}return db[_0x118e('0x8f')]['findOne']({'where':{'service':!![]},'include':[{'model':db[_0x118e('0x90')],'as':_0x118e('0x91'),'raw':!![],'include':[{'model':db['CloudProvider'],'as':_0x118e('0x92'),'raw':!![]}]}]});}}})[_0x118e('0x18')](function(_0x439a19){if(!_0x439a19||!_0x439a19[_0x118e('0x91')]||!_0x47239c['body'])return _0x4527ea;var _0xb84c44=_0x439a19[_0x118e('0x93')]();return respondWithRpcPromise(_0x118e('0x94'),_0x118e('0x95'),{'account':_0xb84c44,'message':{'from':util[_0x118e('0x7a')](_0x118e('0x96'),_0x439a19['name'],_0x439a19[_0x118e('0x57')]||_0x439a19[_0x118e('0x91')]['user']),'to':_0x47239c[_0x118e('0x31')][_0x118e('0x79')],'subject':_0x118e('0x97'),'text':util['format']('Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a',_0x47239c[_0x118e('0x31')][_0x118e('0x79')]),'attachments':[{'path':_0x28f110}]}})[_0x118e('0x18')](function(){return _0x4527ea;})[_0x118e('0x23')](function(_0x4f84ce){logger['error'](_0x4f84ce);});})['then'](respondWithStatusCode(_0x2a295a,0xc8))[_0x118e('0x23')](handleError(_0x2a295a,null));};exports['addMessage']=function(_0x3ca254,_0xca5b6d){return db[_0x118e('0x62')][_0x118e('0x4c')]({'where':{'id':_0x3ca254[_0x118e('0x41')]['id']}})[_0x118e('0x18')](handleEntityNotFound(_0xca5b6d,null))['then'](function(_0x1c5e89){if(_0x1c5e89){return _0x1c5e89['addMessage'](_0x3ca254[_0x118e('0x31')]['ids'],_['omit'](_0x3ca254[_0x118e('0x31')],['ids','id'])||{});}})[_0x118e('0x18')](respondWithResult(_0xca5b6d,null))[_0x118e('0x23')](handleError(_0xca5b6d,null));};exports[_0x118e('0x98')]=function(_0x3afe9e,_0x427273){var _0x3eeaf6={'raw':![],'where':{}};var _0x539a24={};var _0x5bc107={'count':0x0,'rows':[]};return db[_0x118e('0x37')][_0x118e('0x50')]({'where':{'id':_0x3afe9e[_0x118e('0x41')]['id']}})[_0x118e('0x18')](handleEntityNotFound(_0x427273,null))[_0x118e('0x18')](function(_0x47cdf8){if(_0x47cdf8){_0x539a24[_0x118e('0x47')]=_['keys'](db['ChatMessage']['rawAttributes']);_0x539a24[_0x118e('0x3e')]=_[_0x118e('0x42')](_0x3afe9e['query']);_0x539a24[_0x118e('0x44')]=_['intersection'](_0x539a24[_0x118e('0x47')],_0x539a24['query']);_0x3eeaf6[_0x118e('0x46')]=_[_0x118e('0x45')](_0x539a24[_0x118e('0x47')],qs['fields'](_0x3afe9e[_0x118e('0x3e')][_0x118e('0x48')]));_0x3eeaf6[_0x118e('0x46')]=_0x3eeaf6['attributes'][_0x118e('0x49')]?_0x3eeaf6[_0x118e('0x46')]:_0x539a24[_0x118e('0x47')];if(!_0x3afe9e[_0x118e('0x3e')][_0x118e('0x99')]('nolimit')){_0x3eeaf6[_0x118e('0x2a')]=qs[_0x118e('0x2a')](_0x3afe9e['query']['limit']);_0x3eeaf6[_0x118e('0x28')]=qs[_0x118e('0x28')](_0x3afe9e[_0x118e('0x3e')][_0x118e('0x28')]);}_0x3eeaf6['order']=qs[_0x118e('0x9a')](_0x3afe9e[_0x118e('0x3e')][_0x118e('0x9a')]);_0x3eeaf6['where']=qs[_0x118e('0x44')](_['pick'](_0x3afe9e[_0x118e('0x3e')],_0x539a24[_0x118e('0x44')]));_0x3eeaf6[_0x118e('0x9b')][_0x118e('0x9c')]=_0x47cdf8['id'];if(_0x3afe9e['query'][_0x118e('0x9d')]){_0x3eeaf6[_0x118e('0x9b')]=_[_0x118e('0x30')](_0x3eeaf6[_0x118e('0x9b')],{'$or':_[_0x118e('0x36')](_0x3eeaf6[_0x118e('0x46')],function(_0x5b7a68){var _0x54d900={};_0x54d900[_0x5b7a68]={'$like':'%'+_0x3afe9e[_0x118e('0x3e')]['filter']+'%'};return _0x54d900;})});}if(_0x3afe9e[_0x118e('0x3e')][_0x118e('0x9e')]){var _0x55fe5c=_0x3afe9e[_0x118e('0x3e')][_0x118e('0x9e')][_0x118e('0x9f')](',');var _0x27227d={};_0x27227d[_0x55fe5c[0x0]]={'$gte':moment(_0x55fe5c[0x1])[_0x118e('0x7a')](_0x118e('0xa0'))};_0x3eeaf6['where']=_['merge'](_0x3eeaf6[_0x118e('0x9b')],_0x27227d);}_0x3eeaf6=_['merge']({},_0x3eeaf6,_0x3afe9e['options']);return db['ChatMessage'][_0x118e('0xa1')]({'where':_0x3eeaf6[_0x118e('0x9b')]})[_0x118e('0x18')](function(_0x11364e){_0x5bc107[_0x118e('0xa1')]=_0x11364e;if(_0x3afe9e[_0x118e('0x3e')][_0x118e('0x4a')]){_0x3eeaf6['include']=[{'all':!![]}];}return db[_0x118e('0x62')][_0x118e('0x3c')](_0x3eeaf6);})[_0x118e('0x18')](function(_0x32cf60){_0x5bc107['rows']=_0x32cf60;return _0x5bc107;});}})[_0x118e('0x18')](respondWithFilteredResult(_0x427273,_0x3eeaf6))[_0x118e('0x23')](handleError(_0x427273,null));};exports[_0x118e('0xa2')]=function(_0x47b787,_0x3ea8fe){var _0x36023f={'where':{}},_0x22c60d={},_0x2dfe9a={'count':0x0,'rows':[]};return db['ChatInteraction'][_0x118e('0x50')]({'where':{'id':_0x47b787[_0x118e('0x41')]['id']}})[_0x118e('0x18')](handleEntityNotFound(_0x3ea8fe,null))[_0x118e('0x18')](function(_0x53feb5){if(_0x53feb5){_0x22c60d[_0x118e('0x47')]=_[_0x118e('0x42')](db[_0x118e('0x62')][_0x118e('0x43')]);_0x22c60d[_0x118e('0x3e')]=_[_0x118e('0x42')](_0x47b787[_0x118e('0x3e')]);_0x22c60d[_0x118e('0x44')]=_[_0x118e('0x45')](_0x22c60d[_0x118e('0x47')],_0x22c60d['query']);_0x36023f['attributes']=_['intersection'](_0x22c60d[_0x118e('0x47')],qs['fields'](_0x47b787[_0x118e('0x3e')][_0x118e('0x48')]));_0x36023f['attributes']=_0x36023f['attributes'][_0x118e('0x49')]?_0x36023f[_0x118e('0x46')]:_0x22c60d[_0x118e('0x47')];if(!_0x47b787[_0x118e('0x3e')][_0x118e('0x99')](_0x118e('0xa3'))){_0x36023f[_0x118e('0x2a')]=qs['limit'](_0x47b787[_0x118e('0x3e')][_0x118e('0x2a')]);_0x36023f[_0x118e('0x28')]=qs['offset'](_0x47b787[_0x118e('0x3e')][_0x118e('0x28')]);}_0x36023f[_0x118e('0xa4')]=qs[_0x118e('0x9a')](_0x47b787['query']['sort']);_0x36023f[_0x118e('0x9b')]=qs[_0x118e('0x44')](_['pick'](_0x47b787[_0x118e('0x3e')],_0x22c60d[_0x118e('0x44')]));_0x36023f[_0x118e('0x9b')][_0x118e('0x9c')]=_0x53feb5['id'];if(_0x47b787[_0x118e('0x3e')][_0x118e('0x9d')]){_0x36023f['where']=_[_0x118e('0x30')](_0x36023f[_0x118e('0x9b')],{'$or':_[_0x118e('0x36')](_0x36023f[_0x118e('0x46')],function(_0x15aede){var _0x4d6af5={};_0x4d6af5[_0x15aede]={'$like':'%'+_0x47b787[_0x118e('0x3e')]['filter']+'%'};return _0x4d6af5;})});}_0x36023f[_0x118e('0x9b')][_0x118e('0x8d')]=![];if(_0x47b787[_0x118e('0x3e')]['id']){_0x36023f[_0x118e('0x9b')]['id']={'$gt':_0x47b787[_0x118e('0x3e')]['id']};}_0x36023f=_[_0x118e('0x30')]({},_0x36023f,_0x47b787[_0x118e('0xa5')]);return db[_0x118e('0x62')][_0x118e('0xa1')]({'where':_0x36023f[_0x118e('0x9b')]})[_0x118e('0x18')](function(_0x21349f){_0x2dfe9a[_0x118e('0xa1')]=_0x21349f;_0x36023f[_0x118e('0x4b')]=[];if(_0x47b787['query'][_0x118e('0xa6')]){_0x36023f[_0x118e('0x4b')][_0x118e('0xa7')]({'model':db[_0x118e('0x7e')],'as':_0x118e('0x7e'),'attributes':['id',_0x118e('0x88'),_0x118e('0x87')]});}if(_0x47b787[_0x118e('0x3e')]['includeAll']){_0x36023f[_0x118e('0x4b')]=[{'all':!![]}];}return db[_0x118e('0x62')]['findAll'](_0x36023f);})['then'](function(_0x321232){_0x2dfe9a[_0x118e('0xa8')]=_0x321232;return _0x2dfe9a;});}})['then'](respondWithFilteredResult(_0x3ea8fe,_0x36023f))[_0x118e('0x23')](handleError(_0x3ea8fe,null));};exports[_0x118e('0xa9')]=function(_0x41c534,_0x11393c){return db[_0x118e('0x37')][_0x118e('0x4c')]({'where':{'id':_0x41c534[_0x118e('0x41')]['id']}})[_0x118e('0x18')](handleEntityNotFound(_0x11393c,null))[_0x118e('0x18')](function(_0xdc7543){if(_0xdc7543){return _0xdc7543[_0x118e('0xaa')](_0x41c534[_0x118e('0x31')][_0x118e('0xab')],_['omit'](_0x41c534[_0x118e('0x31')],[_0x118e('0xab'),'id'])||{})[_0x118e('0xac')](function(){return db['Tag'][_0x118e('0x3c')]({'attributes':['id','name',_0x118e('0xad')],'where':{'id':_0x41c534[_0x118e('0x31')][_0x118e('0xab')]}});})['then'](function(_0x5ec4c3){socket[_0x118e('0xae')]('chatInteractionTags:save',{'id':Number(_0x41c534[_0x118e('0x41')]['id']),'tags':_0x5ec4c3||[]});return{'id':Number(_0x41c534['params']['id']),'tags':_0x5ec4c3||[]};});}})['then'](respondWithResult(_0x11393c,null))[_0x118e('0x23')](handleError(_0x11393c,null));};exports[_0x118e('0xaf')]=function(_0x372a5f,_0x1a1c1d){return db['ChatInteraction'][_0x118e('0x4c')]({'where':{'id':_0x372a5f[_0x118e('0x41')]['id']}})[_0x118e('0x18')](handleEntityNotFound(_0x1a1c1d,null))[_0x118e('0x18')](function(_0x5111ef){if(_0x5111ef){return _0x5111ef['removeTags'](_0x372a5f['query'][_0x118e('0xab')]);}})[_0x118e('0x18')](respondWithStatusCode(_0x1a1c1d,null))[_0x118e('0x23')](handleError(_0x1a1c1d,null));};exports[_0x118e('0x77')]=function(_0x113b83,_0xf60927){var _0x259711=moment()[_0x118e('0xb0')]()['toString']();var _0x5c86c0=path[_0x118e('0x74')](config['root'],_0x118e('0xb1'),'files',_0x118e('0xb2'));var _0x469fc9=path[_0x118e('0x74')](config['root'],'server',_0x118e('0xb3'),_0x118e('0xb4'));var _0x4de8e0=path['join'](_0x5c86c0,_0x259711);var _0x3eff07=util[_0x118e('0x7a')]('transcript-%d-%s.zip',_0x113b83[_0x118e('0x41')]['id'],_0x259711);var _0x3422fc=path['join'](_0x5c86c0,_0x3eff07);var _0x35daca=[];_0x35daca['push']({'model':db[_0x118e('0x7e')],'as':_0x118e('0x7e'),'attributes':['id',_0x118e('0x88')],'raw':!![]});_0x35daca[_0x118e('0xa7')]({'model':db[_0x118e('0x64')],'as':_0x118e('0x65'),'attributes':['id',_0x118e('0xb5'),_0x118e('0xb6')],'raw':!![]});if(_0x113b83[_0x118e('0x3e')]['attachments']){_0x35daca[_0x118e('0xa7')]({'model':db['Attachment'],'as':_0x118e('0x71'),'raw':!![]});}var _0x24dcad=[{'model':db['ChatMessage'],'as':'Messages','attributes':['id',_0x118e('0x31'),_0x118e('0xb7'),'direction',_0x118e('0x8d'),_0x118e('0xb8')],'include':_0x35daca}];_0x24dcad[_0x118e('0xa7')]({'model':db[_0x118e('0x51')],'as':_0x118e('0xb9'),'attributes':['id',_0x118e('0x2e')]});_0x24dcad[_0x118e('0xa7')]({'model':db[_0x118e('0x7e')],'as':'Owner','attributes':['id',_0x118e('0x88')]});return db['ChatInteraction']['find']({'where':{'id':_0x113b83[_0x118e('0x41')]['id']},'include':_0x24dcad})[_0x118e('0x18')](handleEntityNotFound(_0xf60927,null))[_0x118e('0x18')](function(_0x31ec7c){if(_0x31ec7c){var _0xb56544=_0x31ec7c[_0x118e('0xba')]({'plain':!![]});fs[_0x118e('0xbb')](_0x4de8e0);var _0x50fa69={'channel':'Chat','account':_0xb56544[_0x118e('0xb9')][_0x118e('0x2e')],'agent':_0xb56544[_0x118e('0xbc')]?_0xb56544[_0x118e('0xbc')]['fullname']:_0x118e('0xbd'),'createdAt':moment(_0xb56544['createdAt'])['format'](_0x118e('0xa0'))[_0x118e('0xbe')](),'closedAt':_0xb56544['closed']?moment(_0xb56544[_0x118e('0xbf')])[_0x118e('0x7a')](_0x118e('0xa0'))['toString']():'','disposition':_0xb56544[_0x118e('0xc0')],'chatInfo':{'browser':_0xb56544[_0x118e('0xc1')],'os':_0xb56544[_0x118e('0xc2')],'referer':_0xb56544['referer'],'customerIp':_0xb56544[_0x118e('0xc3')],'customerPort':_0xb56544[_0x118e('0xc4')]?_0xb56544[_0x118e('0xc4')]:_0x118e('0xbd')},'messages':_(_0xb56544['Messages'])[_0x118e('0xc5')]()['filter']({'secret':![]})[_0x118e('0x36')](function(_0x1c7a1e){if(_0x1c7a1e[_0x118e('0x71')]){var _0x48fa34=path[_0x118e('0x74')](_0x469fc9,_0x1c7a1e['Attachment'][_0x118e('0x6d')]);if(fs[_0x118e('0xc6')](_0x48fa34)){fs[_0x118e('0xc7')](_0x48fa34)[_0x118e('0xc8')](fs[_0x118e('0xc9')](path[_0x118e('0x74')](_0x4de8e0,_0x1c7a1e[_0x118e('0x71')][_0x118e('0x6d')])));}}return{'date':moment(_0x1c7a1e[_0x118e('0xb7')])['format'](_0x118e('0xa0'))[_0x118e('0xbe')](),'sender':_0x1c7a1e[_0x118e('0x8c')]===_0x118e('0xca')?_0x1c7a1e[_0x118e('0x7e')]?_0x1c7a1e[_0x118e('0x7e')][_0x118e('0x88')]:_0x118e('0x82'):_0x1c7a1e[_0x118e('0x65')][_0x118e('0xb5')]+(_0x1c7a1e['Contact'][_0x118e('0xb6')]?'\x20'+_0x1c7a1e[_0x118e('0x65')][_0x118e('0xb6')]:''),'body':_0x1c7a1e[_0x118e('0x71')]?_0x1c7a1e['Attachment']['basename']:_0x1c7a1e[_0x118e('0x31')],'direction':_0x1c7a1e[_0x118e('0x8c')]===_0x118e('0xca')?'A':'C','secret':_0x1c7a1e[_0x118e('0x8d')],'read':_0x1c7a1e[_0x118e('0xb8')],'attachment':_0x1c7a1e[_0x118e('0x71')]};})['value']()};return ejs['renderFile'](path[_0x118e('0x74')](config[_0x118e('0x75')],_0x118e('0xb1'),_0x118e('0xcb'),_0x118e('0xcc')),{'interaction':_0x50fa69})['then'](function(_0x2fb1ac){var _0x146594=path[_0x118e('0x74')](_0x4de8e0,_0x118e('0xcd')+_0xb56544['id']+'-'+_0x259711+_0x118e('0xce'));var _0x1a7c47={'path':_0x146594,'channel':'Chat','interactionId':_0xb56544['id']};return pdf['createPdfFromHTML'](_0x2fb1ac,_0x1a7c47);})[_0x118e('0x18')](function(){return new Promise(function(_0x5dc2a8,_0x2fcddb){zipdir(_0x4de8e0,{'saveTo':_0x3422fc},function(_0x46202e,_0x30da53){if(_0x46202e)return _0x2fcddb(_0x46202e);return _0x5dc2a8(_0x30da53);});})[_0x118e('0x18')](function(){return new BPromise(function(_0x4831d2,_0x457d44){rimraf(_0x4de8e0,function(_0x20e612){if(_0x20e612)_0x457d44(_0x20e612);return _0x4831d2();});});})[_0x118e('0x18')](function(){return _0xf60927[_0x118e('0x77')](_0x3422fc,_0x3eff07,function(_0x47f649){if(_0x47f649){logger['error'](_0x118e('0xcf'),_0x47f649);}else{fs[_0x118e('0xd0')](_0x3422fc);}});});});}else{return _0xf60927[_0x118e('0x24')](0xc8);}})[_0x118e('0x23')](handleError(_0xf60927,null));};