Built motion from commit d5e4af8c.|2.6.23
[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 _0x76f1=['vidaooTopic','isNull','vidaooNote','metadata','Sequelize','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','Error\x20in\x20Vidaoo\x20configuration','join_url','out','ChatMessage','updateAttributes','customUpdate','find','CmContact','UserId','disposition','abandon','attachmentUpload','file','originalname','filename','mimetype','Attachment','closed','Unauthorized','attachId','ChatOfflineMessageId','root','server/files/attachments/','offline-chat/','join','basename','download','close','mailTranscript','server/files/chat/upload/','pathTranscript','Messages','User','ContactId','format','customer','%s%d','Visitor','agentIdentifier','agentAlias','System','agent_alias','alias','agent_fullname','MM/DD/YYYY\x20HH:mm:ss','direction','appendFileSync','MailAccount','MailServerOut','Smtp','CloudProvider','getSmtpOptions','SendMail','sendMail','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','ids','omit','getMessages','filters','hasOwnProperty','nolimit','order','sort','pick','where','ChatInteractionId','filter','$gte','split','YYYY-MM-DD\x20HH:mm:ss','options','count','rows','getMyMessages','includeAgent','setTags','spread','Tag','color','emit','removeTags','unix','toString','server','files','tmp','transcript-%d-%s.zip','push','firstName','lastName','attachments','read','Account','get','mkdirSync','Chat','Owner','N.A.','createdAt','closedAt','osName','customerIp','customerPort','existsSync','createReadStream','createWriteStream','Contact','secret','value','views','downloadInteraction.ejs','transcript-','err','unlinkSync','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','ejs','lodash','ioredis','../../components/interaction/service','../../components/export/pdf','api','redis','localhost','socket.io-emitter','./chatInteraction.socket','jayson/promise','client','request','info','ChatInteraction,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','catch','sendStatus','status','json','offset','undefined','limit','set','Content-Range','update','destroy','then','end','stack','name','render','merge','contact','agent','interaction','account','map','ChatInteraction','rawAttributes','type','key','findAll','chat','query','show','model','keys','attributes','intersection','fields','length','includeAll','include','create','body','params','describe','createVidaooSession','findOne','ChatWebsite','ChatWebsiteId','vidaooApiKey','vidaooMetadata','user','fullname','email','https://api-vidaoo.xcally.com/api/v1/meetings'];(function(_0x3fb5eb,_0x5947a6){var _0x481291=function(_0x74e4e){while(--_0x74e4e){_0x3fb5eb['push'](_0x3fb5eb['shift']());}};_0x481291(++_0x5947a6);}(_0x76f1,0x7b));var _0x176f=function(_0x55103c,_0x453b56){_0x55103c=_0x55103c-0x0;var _0x5ab744=_0x76f1[_0x55103c];return _0x5ab744;};'use strict';var rimraf=require(_0x176f('0x0'));var zipdir=require(_0x176f('0x1'));var rp=require(_0x176f('0x2'));var moment=require(_0x176f('0x3'));var BPromise=require(_0x176f('0x4'));var Mustache=require(_0x176f('0x5'));var util=require('util');var path=require(_0x176f('0x6'));var ejs=require(_0x176f('0x7'));var fs=require('fs');var _=require(_0x176f('0x8'));var Redis=require(_0x176f('0x9'));var interaction=require(_0x176f('0xa'));var qs=require('../../components/parsers/qs');var pdf=require(_0x176f('0xb'));var logger=require('../../config/logger')(_0x176f('0xc'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];config[_0x176f('0xd')]=_['defaults'](config[_0x176f('0xd')],{'host':_0x176f('0xe'),'port':0x18eb});var socket=require(_0x176f('0xf'))(new Redis(config[_0x176f('0xd')]));require(_0x176f('0x10'))['register'](socket);var jayson=require(_0x176f('0x11'));var client=jayson['client']['http']({'port':0x232b});var client9004=jayson[_0x176f('0x12')]['http']({'port':0x232c});function respondWithRpcPromise(_0x598b14,_0x16f2a6,_0x38b4d0,_0x3d2f6e){return new BPromise(function(_0x2f3065,_0x1bf783){var _0x3adef1=_0x3d2f6e||client;return _0x3adef1[_0x176f('0x13')](_0x598b14,_0x38b4d0)['then'](function(_0x4508f7){logger[_0x176f('0x14')](_0x176f('0x15'),_0x16f2a6,'request\x20sent');logger[_0x176f('0x16')]('ChatInteraction,\x20%s,\x20%s,\x20%s',_0x16f2a6,_0x176f('0x17'),JSON[_0x176f('0x18')](_0x4508f7));if(_0x4508f7[_0x176f('0x19')]){if(_0x4508f7[_0x176f('0x19')][_0x176f('0x1a')]===0x1f4){logger['error'](_0x176f('0x15'),_0x16f2a6,_0x4508f7[_0x176f('0x19')][_0x176f('0x1b')]);return _0x1bf783(_0x4508f7[_0x176f('0x19')][_0x176f('0x1b')]);}logger['error'](_0x176f('0x15'),_0x16f2a6,_0x4508f7[_0x176f('0x19')][_0x176f('0x1b')]);return _0x2f3065(_0x4508f7[_0x176f('0x19')][_0x176f('0x1b')]);}else{logger[_0x176f('0x14')](_0x176f('0x15'),_0x16f2a6,_0x176f('0x17'));_0x2f3065(_0x4508f7[_0x176f('0x1c')][_0x176f('0x1b')]);}})[_0x176f('0x1d')](function(_0x5caa3a){logger['error'](_0x176f('0x15'),_0x16f2a6,_0x5caa3a);_0x1bf783(_0x5caa3a);});});}function respondWithStatusCode(_0x248d35,_0x2e324a){_0x2e324a=_0x2e324a||0xcc;return function(_0x26e8ca){if(_0x26e8ca){return _0x248d35[_0x176f('0x1e')](_0x2e324a);}return _0x248d35[_0x176f('0x1f')](_0x2e324a)['end']();};}function respondWithResult(_0x1e27bd,_0x247eb1){_0x247eb1=_0x247eb1||0xc8;return function(_0xf5a011){if(_0xf5a011){return _0x1e27bd[_0x176f('0x1f')](_0x247eb1)[_0x176f('0x20')](_0xf5a011);}};}function respondWithFilteredResult(_0x40e944,_0x55b7a8){return function(_0x4030d8){if(_0x4030d8){var _0x2e92d1=typeof _0x55b7a8[_0x176f('0x21')]===_0x176f('0x22')&&typeof _0x55b7a8[_0x176f('0x23')]===_0x176f('0x22');var _0x4a2e1c=_0x4030d8['count'];var _0x41d73d=_0x2e92d1?0x0:_0x55b7a8[_0x176f('0x21')];var _0x2fa014=_0x2e92d1?_0x4030d8['count']:_0x55b7a8[_0x176f('0x21')]+_0x55b7a8[_0x176f('0x23')];var _0x4d4b84;if(_0x2fa014>=_0x4a2e1c){_0x2fa014=_0x4a2e1c;_0x4d4b84=0xc8;}else{_0x4d4b84=0xce;}_0x40e944['status'](_0x4d4b84);return _0x40e944[_0x176f('0x24')](_0x176f('0x25'),_0x41d73d+'-'+_0x2fa014+'/'+_0x4a2e1c)[_0x176f('0x20')](_0x4030d8);}return null;};}function saveUpdates(_0x130f3e){return function(_0x375b0d){if(_0x375b0d){return _0x375b0d[_0x176f('0x26')](_0x130f3e)['then'](function(_0x88cda4){return _0x88cda4;});}return null;};}function removeEntity(_0x33df47){return function(_0x311491){if(_0x311491){return _0x311491[_0x176f('0x27')]()[_0x176f('0x28')](function(){_0x33df47[_0x176f('0x1f')](0xcc)[_0x176f('0x29')]();});}};}function handleEntityNotFound(_0x490f22){return function(_0x275db1){if(!_0x275db1){_0x490f22[_0x176f('0x1e')](0x194);}return _0x275db1;};}function handleError(_0x19b9d7,_0x3e86af){_0x3e86af=_0x3e86af||0x1f4;return function(_0x270136){logger[_0x176f('0x19')](_0x270136[_0x176f('0x2a')]);if(_0x270136[_0x176f('0x2b')]){delete _0x270136[_0x176f('0x2b')];}_0x19b9d7['status'](_0x3e86af)['send'](_0x270136);};}function getMustacheRender(_0x46b4e8,_0x536955){return Mustache[_0x176f('0x2c')](_0x46b4e8,_[_0x176f('0x2d')](_0x536955['body'],{'contact':_0x536955[_0x176f('0x2e')],'message':_0x536955[_0x176f('0x1b')],'agent':_0x536955[_0x176f('0x2f')],'interaction':_0x536955[_0x176f('0x30')],'account':_0x536955[_0x176f('0x31')]}))||'';}exports['index']=function(_0x3ac02d,_0x3f8983){var _0x201a1b={};var _0x57e9a6=_[_0x176f('0x32')](db[_0x176f('0x33')][_0x176f('0x34')],function(_0x126794){return{'name':_0x126794['fieldName'],'type':_0x126794[_0x176f('0x35')][_0x176f('0x36')]};});_0x201a1b=qs['getOptions'](_0x57e9a6,_0x3ac02d);return interaction[_0x176f('0x37')](_0x176f('0x38'),_0x3ac02d[_0x176f('0x39')],_0x3ac02d['user'],_0x201a1b,_0x57e9a6)[_0x176f('0x28')](respondWithFilteredResult(_0x3f8983,_0x201a1b))[_0x176f('0x1d')](handleError(_0x3f8983,null));};exports[_0x176f('0x3a')]=function(_0x5b0118,_0xf6a64d){var _0x2862f1={'raw':![],'where':{'id':_0x5b0118['params']['id']}},_0x45a80a={};_0x45a80a[_0x176f('0x3b')]=_[_0x176f('0x3c')](db[_0x176f('0x33')][_0x176f('0x34')]);_0x45a80a[_0x176f('0x39')]=_[_0x176f('0x3c')](_0x5b0118[_0x176f('0x39')]);_0x45a80a['filters']=_['intersection'](_0x45a80a[_0x176f('0x3b')],_0x45a80a[_0x176f('0x39')]);_0x2862f1[_0x176f('0x3d')]=_[_0x176f('0x3e')](_0x45a80a[_0x176f('0x3b')],qs['fields'](_0x5b0118[_0x176f('0x39')][_0x176f('0x3f')]));_0x2862f1[_0x176f('0x3d')]=_0x2862f1['attributes'][_0x176f('0x40')]?_0x2862f1['attributes']:_0x45a80a['model'];if(_0x5b0118[_0x176f('0x39')][_0x176f('0x41')]){_0x2862f1[_0x176f('0x42')]=[{'all':!![]}];}_0x2862f1=_['merge']({},_0x2862f1,_0x5b0118['options']);return db[_0x176f('0x33')]['find'](_0x2862f1)[_0x176f('0x28')](handleEntityNotFound(_0xf6a64d,null))[_0x176f('0x28')](respondWithResult(_0xf6a64d,null))[_0x176f('0x1d')](handleError(_0xf6a64d,null));};exports[_0x176f('0x43')]=function(_0x3627fb,_0x2c1b1f){return db['ChatInteraction']['create'](_0x3627fb[_0x176f('0x44')],{})[_0x176f('0x28')](respondWithResult(_0x2c1b1f,0xc9))[_0x176f('0x1d')](handleError(_0x2c1b1f,null));};exports[_0x176f('0x26')]=function(_0x5a00de,_0x37723c){if(_0x5a00de[_0x176f('0x44')]['id']){delete _0x5a00de['body']['id'];}return db['ChatInteraction']['find']({'where':{'id':_0x5a00de[_0x176f('0x45')]['id']}})[_0x176f('0x28')](handleEntityNotFound(_0x37723c,null))['then'](saveUpdates(_0x5a00de['body'],null))[_0x176f('0x28')](respondWithResult(_0x37723c,null))['catch'](handleError(_0x37723c,null));};exports['destroy']=function(_0x40e214,_0x1ca2f0){return db[_0x176f('0x33')]['find']({'where':{'id':_0x40e214['params']['id']}})[_0x176f('0x28')](handleEntityNotFound(_0x1ca2f0,null))['then'](removeEntity(_0x1ca2f0,null))[_0x176f('0x1d')](handleError(_0x1ca2f0,null));};exports[_0x176f('0x46')]=function(_0xbbc702,_0x2b4cc5){return db[_0x176f('0x33')]['describe']()[_0x176f('0x28')](respondWithResult(_0x2b4cc5,null))[_0x176f('0x1d')](handleError(_0x2b4cc5,null));};exports[_0x176f('0x47')]=function(_0x25146e,_0x48bb58){var _0x11eeec=_0x25146e[_0x176f('0x45')]['id'];var _0x55f2fe;var _0xf496ce;var _0x5bfa8d;return db[_0x176f('0x33')][_0x176f('0x48')]({'where':{'id':_0x11eeec}})[_0x176f('0x28')](function(_0x1e488f){_0x55f2fe=_0x1e488f;return db[_0x176f('0x49')][_0x176f('0x48')]({'where':{'id':_0x1e488f[_0x176f('0x4a')]},'attributes':['id',_0x176f('0x4b'),'vidaooEscalation','vidaooTopic','vidaooNote',_0x176f('0x4c')],'raw':!![]});})[_0x176f('0x28')](function(_0x3984b8){if(_0x3984b8&&_0x3984b8[_0x176f('0x4b')]&&_0x3984b8['vidaooEscalation']){_0xf496ce=_0x3984b8;var _0x535826={'interaction':{'id':_0x11eeec},'agent':{'id':_0x25146e[_0x176f('0x4d')]['id'],'name':_0x25146e[_0x176f('0x4d')][_0x176f('0x2b')],'fullname':_0x25146e[_0x176f('0x4d')][_0x176f('0x4e')],'email':_0x25146e[_0x176f('0x4d')][_0x176f('0x4f')]},'contact':_0x25146e[_0x176f('0x44')]['contact'],'account':_0x25146e['body'][_0x176f('0x31')]};var _0x4fb2c2={'rejectUnauthorized':![],'method':'POST','url':_0x176f('0x50'),'headers':{'X-APIKEY':_0x3984b8[_0x176f('0x4b')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x25146e[_0x176f('0x4d')]['email']],'buttons':null,'topic':_0xf496ce[_0x176f('0x51')],'note':_[_0x176f('0x52')](_0xf496ce['vidaooNote'])?null:getMustacheRender(_0xf496ce[_0x176f('0x53')],_0x535826),'metadata':null},'redirect':'follow','json':!![]};try{if(!_[_0x176f('0x52')](_0xf496ce['vidaooMetadata'])){var _0xd59369=getMustacheRender(_0xf496ce[_0x176f('0x4c')],_0x535826);var _0x51d59c=JSON['parse'](_0xd59369);_0x4fb2c2[_0x176f('0x44')][_0x176f('0x54')]=_0x51d59c;}}catch(_0x27afda){throw new db[(_0x176f('0x55'))][(_0x176f('0x56'))](_0x176f('0x57'));}return rp(_0x4fb2c2);}else{throw new db[(_0x176f('0x55'))][(_0x176f('0x56'))](_0x176f('0x58'));}})[_0x176f('0x28')](function(_0x4b324a){_0x5bfa8d=_0x4b324a;if(_0x5bfa8d['id']){var _0x4d49bb={'body':_0x5bfa8d[_0x176f('0x59')],'ChatWebsiteId':_0xf496ce['id'],'ChatInteractionId':_0x55f2fe['id'],'direction':_0x176f('0x5a'),'UserId':_0x25146e['user']['id']};return db[_0x176f('0x5b')]['create'](_0x4d49bb,{});}else{throw new db[(_0x176f('0x55'))][(_0x176f('0x56'))]('Unable\x20to\x20create\x20Vidaoo\x20session');}})[_0x176f('0x28')](function(){return _0x55f2fe[_0x176f('0x5c')]({'vidaooSessionId':_0x5bfa8d['id']});})['then'](respondWithResult(_0x48bb58,null))[_0x176f('0x1d')](handleError(_0x48bb58,null));};exports[_0x176f('0x5d')]=function(_0x33dcf4,_0x355254){if(_0x33dcf4['body']['id']){delete _0x33dcf4[_0x176f('0x44')]['id'];}return db[_0x176f('0x33')][_0x176f('0x5e')]({'where':{'id':_0x33dcf4[_0x176f('0x45')]['id']},'include':[{'model':db[_0x176f('0x5f')],'as':'Contact'}]})[_0x176f('0x28')](handleEntityNotFound(_0x355254,null))['then'](saveUpdates(_0x33dcf4[_0x176f('0x44')],null))[_0x176f('0x28')](respondWithResult(_0x355254,null))[_0x176f('0x1d')](handleError(_0x355254,null));};exports['abandon']=function(_0x3a190c,_0x2996ff){if(_0x3a190c[_0x176f('0x44')]['id']){delete _0x3a190c[_0x176f('0x44')]['id'];}return db['ChatInteraction'][_0x176f('0x5e')]({'where':{'id':_0x3a190c['params']['id']}})[_0x176f('0x28')](function(_0x147fb1){if(!_0x147fb1){logger[_0x176f('0x19')]('abandonInteraction,\x20%s,\x20%s,\x20%s','abandon',0x194,'entity\x20not\x20found');_0x2996ff[_0x176f('0x1e')](0x194);}else{if(_0x147fb1[_0x176f('0x60')]){throw new db[(_0x176f('0x55'))][(_0x176f('0x56'))]('Interaction\x20already\x20assigned');}}return _0x147fb1;})[_0x176f('0x28')](function(_0xa6a63e){if(_0xa6a63e){return _0xa6a63e[_0x176f('0x26')]({'closed':_0x3a190c[_0x176f('0x44')]['closed'],'disposition':_0x3a190c['body'][_0x176f('0x61')]})[_0x176f('0x28')](function(_0x25f52c){return _0x25f52c;});}})[_0x176f('0x28')](function(){return respondWithRpcPromise('AbandonInteraction',_0x176f('0x62'),_0x3a190c[_0x176f('0x44')],client9004);})[_0x176f('0x28')](respondWithResult(_0x2996ff,null))[_0x176f('0x1d')](handleError(_0x2996ff,null));};exports[_0x176f('0x63')]=function(_0x5c14ba,_0x1e6d31){_0x5c14ba['body'][_0x176f('0x2b')]=_0x5c14ba[_0x176f('0x64')][_0x176f('0x65')];_0x5c14ba['body']['basename']=_0x5c14ba[_0x176f('0x64')][_0x176f('0x66')];_0x5c14ba['body'][_0x176f('0x35')]=_0x5c14ba[_0x176f('0x64')][_0x176f('0x67')];return db[_0x176f('0x68')][_0x176f('0x43')](_0x5c14ba['body'])[_0x176f('0x28')](respondWithResult(_0x1e6d31,0xc9))['catch'](handleError(_0x1e6d31,null));};exports['attachmentDownload']=function(_0x49e1af,_0x38e514){return db[_0x176f('0x33')][_0x176f('0x48')]({'where':{'id':_0x49e1af[_0x176f('0x45')]['id']},'raw':!![]})[_0x176f('0x28')](handleEntityNotFound(_0x38e514,null))['then'](function(_0x554793){if(_0x554793){if(_0x554793[_0x176f('0x69')]){return _0x38e514[_0x176f('0x1f')](0x193)['json']({'status':0x193,'message':_0x176f('0x6a')});}return db[_0x176f('0x68')][_0x176f('0x48')]({'where':{'id':_0x49e1af['query'][_0x176f('0x6b')]},'raw':!![]})[_0x176f('0x28')](handleEntityNotFound(_0x38e514,null));}})[_0x176f('0x28')](function(_0x259b04){if(_0x259b04){var _0x36a207=_0x259b04[_0x176f('0x6c')]!==null;var _0x510758=path['join'](config[_0x176f('0x6d')],_0x176f('0x6e'));if(_0x36a207){_0x510758=path['join'](_0x510758,_0x176f('0x6f'));}var _0xc5e8d9=path[_0x176f('0x70')](_0x510758,_0x259b04[_0x176f('0x71')]);return _0x38e514[_0x176f('0x72')](_0xc5e8d9);}})['catch'](handleError(_0x38e514,null));};exports[_0x176f('0x73')]=function(_0x56ada9,_0x1688b2){var _0x468d71=null;var _0x5bcf0f=null;var _0x337ec7=null;if(_0x56ada9[_0x176f('0x44')]['id']){delete _0x56ada9['body']['id'];}if(_0x56ada9['body'][_0x176f('0x74')]){_0x337ec7=path[_0x176f('0x70')](config['root'],_0x176f('0x75'),util['format']('transcript-%s.txt',Date['now']()));_0x56ada9['body'][_0x176f('0x76')]=_0x337ec7;}return db[_0x176f('0x33')][_0x176f('0x5e')]({'where':{'id':_0x56ada9[_0x176f('0x45')]['id']},'include':[{'model':db['ChatMessage'],'as':_0x176f('0x77'),'include':[{'model':db['User'],'as':_0x176f('0x78')}]}]})[_0x176f('0x28')](handleEntityNotFound(_0x1688b2,null))[_0x176f('0x28')](saveUpdates(_0x56ada9[_0x176f('0x44')],null))[_0x176f('0x28')](function(_0x3c59ca){if(_0x3c59ca){_0x468d71=_0x3c59ca;return db[_0x176f('0x49')][_0x176f('0x5e')]({'where':{'id':_0x468d71['ChatWebsiteId']}});}})['then'](function(_0x34937c){if(_0x34937c){_0x5bcf0f=_0x34937c;return db[_0x176f('0x5f')]['find']({'where':{'id':_0x468d71[_0x176f('0x79')]}});}})['then'](function(_0x10e90b){if(_0x10e90b){if(_0x337ec7){var _0x365be7=null;for(var _0x8adc13=0x1;_0x8adc13<_0x468d71['Messages'][_0x176f('0x40')];++_0x8adc13){_0x365be7=_0x468d71['Messages'][_0x8adc13];var _0x235d40=_0x365be7['UserId']?util[_0x176f('0x7a')]('%s%d',_0x5bcf0f['agentAlias'],_0x365be7['UserId']):'System';var _0x5d8150=_0x56ada9['body'][_0x176f('0x7b')]||util[_0x176f('0x7a')](_0x176f('0x7c'),_0x176f('0x7d'),_0x365be7['ContactId']);switch(_0x5bcf0f[_0x176f('0x7e')]){case'website_alias':_0x235d40=_0x365be7[_0x176f('0x60')]?util[_0x176f('0x7a')](_0x176f('0x7c'),_0x5bcf0f[_0x176f('0x7f')],_0x365be7[_0x176f('0x60')]):_0x176f('0x80');break;case _0x176f('0x81'):_0x235d40=_0x365be7[_0x176f('0x60')]?_0x365be7[_0x176f('0x78')][_0x176f('0x82')]||_0x365be7[_0x176f('0x78')]['fullname']:_0x176f('0x80');break;case _0x176f('0x83'):_0x235d40=_0x365be7['UserId']?_0x365be7['User'][_0x176f('0x4e')]:_0x176f('0x80');break;default:_0x235d40=_0x365be7[_0x176f('0x60')]?util['format'](_0x176f('0x7c'),_0x5bcf0f['agentAlias'],_0x365be7['UserId']):'System';}var _0x4f4414=util[_0x176f('0x7a')]('[%s]\x20%s:\x20%s\x0a',moment(_0x365be7['createdAt'])['format'](_0x176f('0x84')),_0x365be7[_0x176f('0x85')]==='in'?_0x5d8150:_0x235d40,_0x365be7['body']);if(!_0x365be7['secret']){fs[_0x176f('0x86')](_0x337ec7,_0x4f4414);}}return db[_0x176f('0x87')][_0x176f('0x48')]({'where':{'service':!![]},'include':[{'model':db[_0x176f('0x88')],'as':_0x176f('0x89'),'raw':!![],'include':[{'model':db[_0x176f('0x8a')],'as':_0x176f('0x8a'),'raw':!![]}]}]});}}})['then'](function(_0x258475){if(!_0x258475||!_0x258475['Smtp']||!_0x56ada9[_0x176f('0x44')])return _0x468d71;var _0x30f84a=_0x258475[_0x176f('0x8b')]();return respondWithRpcPromise(_0x176f('0x8c'),_0x176f('0x8d'),{'account':_0x30f84a,'message':{'from':util[_0x176f('0x7a')]('\x22%s\x22\x20<%s>',_0x258475[_0x176f('0x2b')],_0x258475['email']||_0x258475[_0x176f('0x89')]['user']),'to':_0x56ada9['body'][_0x176f('0x74')],'subject':_0x176f('0x8e'),'text':util[_0x176f('0x7a')](_0x176f('0x8f'),_0x56ada9[_0x176f('0x44')][_0x176f('0x74')]),'attachments':[{'path':_0x337ec7}]}})[_0x176f('0x28')](function(){return _0x468d71;})[_0x176f('0x1d')](function(_0x5e8ea0){logger['error'](_0x5e8ea0);});})[_0x176f('0x28')](respondWithStatusCode(_0x1688b2,0xc8))['catch'](handleError(_0x1688b2,null));};exports[_0x176f('0x90')]=function(_0x57614e,_0x2f2306){return db[_0x176f('0x5b')][_0x176f('0x5e')]({'where':{'id':_0x57614e[_0x176f('0x45')]['id']}})['then'](handleEntityNotFound(_0x2f2306,null))[_0x176f('0x28')](function(_0x402b3d){if(_0x402b3d){return _0x402b3d[_0x176f('0x90')](_0x57614e[_0x176f('0x44')][_0x176f('0x91')],_[_0x176f('0x92')](_0x57614e['body'],[_0x176f('0x91'),'id'])||{});}})['then'](respondWithResult(_0x2f2306,null))[_0x176f('0x1d')](handleError(_0x2f2306,null));};exports[_0x176f('0x93')]=function(_0x2b9b3c,_0x2b7691){var _0x515242={'raw':![],'where':{}};var _0x4089a2={};var _0x46ced3={'count':0x0,'rows':[]};return db['ChatInteraction'][_0x176f('0x48')]({'where':{'id':_0x2b9b3c['params']['id']}})[_0x176f('0x28')](handleEntityNotFound(_0x2b7691,null))['then'](function(_0x59ec4f){if(_0x59ec4f){_0x4089a2['model']=_['keys'](db['ChatMessage']['rawAttributes']);_0x4089a2['query']=_['keys'](_0x2b9b3c['query']);_0x4089a2[_0x176f('0x94')]=_[_0x176f('0x3e')](_0x4089a2['model'],_0x4089a2['query']);_0x515242['attributes']=_['intersection'](_0x4089a2[_0x176f('0x3b')],qs['fields'](_0x2b9b3c[_0x176f('0x39')]['fields']));_0x515242['attributes']=_0x515242[_0x176f('0x3d')][_0x176f('0x40')]?_0x515242['attributes']:_0x4089a2[_0x176f('0x3b')];if(!_0x2b9b3c[_0x176f('0x39')][_0x176f('0x95')](_0x176f('0x96'))){_0x515242[_0x176f('0x23')]=qs[_0x176f('0x23')](_0x2b9b3c[_0x176f('0x39')][_0x176f('0x23')]);_0x515242[_0x176f('0x21')]=qs[_0x176f('0x21')](_0x2b9b3c['query'][_0x176f('0x21')]);}_0x515242[_0x176f('0x97')]=qs[_0x176f('0x98')](_0x2b9b3c[_0x176f('0x39')][_0x176f('0x98')]);_0x515242['where']=qs[_0x176f('0x94')](_[_0x176f('0x99')](_0x2b9b3c[_0x176f('0x39')],_0x4089a2[_0x176f('0x94')]));_0x515242[_0x176f('0x9a')][_0x176f('0x9b')]=_0x59ec4f['id'];if(_0x2b9b3c[_0x176f('0x39')]['filter']){_0x515242[_0x176f('0x9a')]=_[_0x176f('0x2d')](_0x515242[_0x176f('0x9a')],{'$or':_['map'](_0x515242['attributes'],function(_0x2f6ac6){var _0x1dca43={};_0x1dca43[_0x2f6ac6]={'$like':'%'+_0x2b9b3c[_0x176f('0x39')][_0x176f('0x9c')]+'%'};return _0x1dca43;})});}if(_0x2b9b3c[_0x176f('0x39')][_0x176f('0x9d')]){var _0x23c413=_0x2b9b3c[_0x176f('0x39')][_0x176f('0x9d')][_0x176f('0x9e')](',');var _0x367a31={};_0x367a31[_0x23c413[0x0]]={'$gte':moment(_0x23c413[0x1])[_0x176f('0x7a')](_0x176f('0x9f'))};_0x515242[_0x176f('0x9a')]=_[_0x176f('0x2d')](_0x515242['where'],_0x367a31);}_0x515242=_[_0x176f('0x2d')]({},_0x515242,_0x2b9b3c[_0x176f('0xa0')]);return db[_0x176f('0x5b')][_0x176f('0xa1')]({'where':_0x515242['where']})[_0x176f('0x28')](function(_0x3d5fd0){_0x46ced3[_0x176f('0xa1')]=_0x3d5fd0;if(_0x2b9b3c['query']['includeAll']){_0x515242[_0x176f('0x42')]=[{'all':!![]}];}return db[_0x176f('0x5b')]['findAll'](_0x515242);})['then'](function(_0xd3b6e0){_0x46ced3[_0x176f('0xa2')]=_0xd3b6e0;return _0x46ced3;});}})[_0x176f('0x28')](respondWithFilteredResult(_0x2b7691,_0x515242))['catch'](handleError(_0x2b7691,null));};exports[_0x176f('0xa3')]=function(_0xbebf62,_0x120943){var _0x3749a4={'where':{}},_0xc6716e={},_0x45f3bb={'count':0x0,'rows':[]};return db['ChatInteraction'][_0x176f('0x48')]({'where':{'id':_0xbebf62['params']['id']}})[_0x176f('0x28')](handleEntityNotFound(_0x120943,null))[_0x176f('0x28')](function(_0x455bf2){if(_0x455bf2){_0xc6716e[_0x176f('0x3b')]=_[_0x176f('0x3c')](db[_0x176f('0x5b')][_0x176f('0x34')]);_0xc6716e[_0x176f('0x39')]=_[_0x176f('0x3c')](_0xbebf62[_0x176f('0x39')]);_0xc6716e[_0x176f('0x94')]=_[_0x176f('0x3e')](_0xc6716e[_0x176f('0x3b')],_0xc6716e[_0x176f('0x39')]);_0x3749a4[_0x176f('0x3d')]=_[_0x176f('0x3e')](_0xc6716e[_0x176f('0x3b')],qs['fields'](_0xbebf62[_0x176f('0x39')][_0x176f('0x3f')]));_0x3749a4['attributes']=_0x3749a4[_0x176f('0x3d')][_0x176f('0x40')]?_0x3749a4[_0x176f('0x3d')]:_0xc6716e[_0x176f('0x3b')];if(!_0xbebf62[_0x176f('0x39')][_0x176f('0x95')]('nolimit')){_0x3749a4[_0x176f('0x23')]=qs['limit'](_0xbebf62['query']['limit']);_0x3749a4[_0x176f('0x21')]=qs['offset'](_0xbebf62[_0x176f('0x39')][_0x176f('0x21')]);}_0x3749a4[_0x176f('0x97')]=qs[_0x176f('0x98')](_0xbebf62[_0x176f('0x39')][_0x176f('0x98')]);_0x3749a4[_0x176f('0x9a')]=qs[_0x176f('0x94')](_[_0x176f('0x99')](_0xbebf62['query'],_0xc6716e[_0x176f('0x94')]));_0x3749a4['where'][_0x176f('0x9b')]=_0x455bf2['id'];if(_0xbebf62[_0x176f('0x39')][_0x176f('0x9c')]){_0x3749a4['where']=_[_0x176f('0x2d')](_0x3749a4[_0x176f('0x9a')],{'$or':_['map'](_0x3749a4[_0x176f('0x3d')],function(_0xd9baa6){var _0x2b9fb9={};_0x2b9fb9[_0xd9baa6]={'$like':'%'+_0xbebf62[_0x176f('0x39')][_0x176f('0x9c')]+'%'};return _0x2b9fb9;})});}_0x3749a4[_0x176f('0x9a')]['secret']=![];if(_0xbebf62[_0x176f('0x39')]['id']){_0x3749a4['where']['id']={'$gt':_0xbebf62[_0x176f('0x39')]['id']};}_0x3749a4=_[_0x176f('0x2d')]({},_0x3749a4,_0xbebf62[_0x176f('0xa0')]);return db[_0x176f('0x5b')][_0x176f('0xa1')]({'where':_0x3749a4['where']})[_0x176f('0x28')](function(_0x60b0ec){_0x45f3bb[_0x176f('0xa1')]=_0x60b0ec;_0x3749a4[_0x176f('0x42')]=[];if(_0xbebf62[_0x176f('0x39')][_0x176f('0xa4')]){_0x3749a4[_0x176f('0x42')]['push']({'model':db[_0x176f('0x78')],'as':_0x176f('0x78'),'attributes':['id',_0x176f('0x4e'),_0x176f('0x82')]});}if(_0xbebf62[_0x176f('0x39')][_0x176f('0x41')]){_0x3749a4[_0x176f('0x42')]=[{'all':!![]}];}return db[_0x176f('0x5b')][_0x176f('0x37')](_0x3749a4);})[_0x176f('0x28')](function(_0x112057){_0x45f3bb[_0x176f('0xa2')]=_0x112057;return _0x45f3bb;});}})[_0x176f('0x28')](respondWithFilteredResult(_0x120943,_0x3749a4))['catch'](handleError(_0x120943,null));};exports['addTags']=function(_0xdafc98,_0x221fec){return db[_0x176f('0x33')]['find']({'where':{'id':_0xdafc98[_0x176f('0x45')]['id']}})[_0x176f('0x28')](handleEntityNotFound(_0x221fec,null))[_0x176f('0x28')](function(_0x567622){if(_0x567622){return _0x567622[_0x176f('0xa5')](_0xdafc98[_0x176f('0x44')][_0x176f('0x91')],_[_0x176f('0x92')](_0xdafc98['body'],['ids','id'])||{})[_0x176f('0xa6')](function(){return db[_0x176f('0xa7')][_0x176f('0x37')]({'attributes':['id','name',_0x176f('0xa8')],'where':{'id':_0xdafc98[_0x176f('0x44')][_0x176f('0x91')]}});})[_0x176f('0x28')](function(_0x1ce214){socket[_0x176f('0xa9')]('chatInteractionTags:save',{'id':Number(_0xdafc98[_0x176f('0x45')]['id']),'tags':_0x1ce214||[]});return{'id':Number(_0xdafc98[_0x176f('0x45')]['id']),'tags':_0x1ce214||[]};});}})[_0x176f('0x28')](respondWithResult(_0x221fec,null))[_0x176f('0x1d')](handleError(_0x221fec,null));};exports['removeTags']=function(_0x456a69,_0x2a2778){return db[_0x176f('0x33')][_0x176f('0x5e')]({'where':{'id':_0x456a69[_0x176f('0x45')]['id']}})[_0x176f('0x28')](handleEntityNotFound(_0x2a2778,null))['then'](function(_0x1849c5){if(_0x1849c5){return _0x1849c5[_0x176f('0xaa')](_0x456a69[_0x176f('0x39')][_0x176f('0x91')]);}})[_0x176f('0x28')](respondWithStatusCode(_0x2a2778,null))['catch'](handleError(_0x2a2778,null));};exports[_0x176f('0x72')]=function(_0x3a9341,_0x379b9c){var _0xb77f2b=moment()[_0x176f('0xab')]()[_0x176f('0xac')]();var _0x5582d2=path['join'](config['root'],_0x176f('0xad'),_0x176f('0xae'),_0x176f('0xaf'));var _0x5815dc=path[_0x176f('0x70')](config[_0x176f('0x6d')],_0x176f('0xad'),_0x176f('0xae'),'attachments');var _0x2eddc8=path[_0x176f('0x70')](_0x5582d2,_0xb77f2b);var _0x3ca787=util[_0x176f('0x7a')](_0x176f('0xb0'),_0x3a9341['params']['id'],_0xb77f2b);var _0x41ccd6=path[_0x176f('0x70')](_0x5582d2,_0x3ca787);var _0x5eff49=[];_0x5eff49[_0x176f('0xb1')]({'model':db[_0x176f('0x78')],'as':'User','attributes':['id',_0x176f('0x4e')],'raw':!![]});_0x5eff49[_0x176f('0xb1')]({'model':db[_0x176f('0x5f')],'as':'Contact','attributes':['id',_0x176f('0xb2'),_0x176f('0xb3')],'raw':!![]});if(_0x3a9341['query'][_0x176f('0xb4')]){_0x5eff49[_0x176f('0xb1')]({'model':db[_0x176f('0x68')],'as':_0x176f('0x68'),'raw':!![]});}var _0x265120=[{'model':db[_0x176f('0x5b')],'as':_0x176f('0x77'),'attributes':['id',_0x176f('0x44'),'createdAt','direction','secret',_0x176f('0xb5')],'include':_0x5eff49}];_0x265120[_0x176f('0xb1')]({'model':db[_0x176f('0x49')],'as':_0x176f('0xb6'),'attributes':['id',_0x176f('0x2b')]});_0x265120[_0x176f('0xb1')]({'model':db[_0x176f('0x78')],'as':'Owner','attributes':['id',_0x176f('0x4e')]});return db[_0x176f('0x33')][_0x176f('0x5e')]({'where':{'id':_0x3a9341[_0x176f('0x45')]['id']},'include':_0x265120})['then'](handleEntityNotFound(_0x379b9c,null))[_0x176f('0x28')](function(_0x58ee60){if(_0x58ee60){var _0x1ea63e=_0x58ee60[_0x176f('0xb7')]({'plain':!![]});fs[_0x176f('0xb8')](_0x2eddc8);var _0x5d1a54={'channel':_0x176f('0xb9'),'account':_0x1ea63e[_0x176f('0xb6')][_0x176f('0x2b')],'agent':_0x1ea63e['Owner']?_0x1ea63e[_0x176f('0xba')][_0x176f('0x4e')]:_0x176f('0xbb'),'createdAt':moment(_0x1ea63e[_0x176f('0xbc')])['format'](_0x176f('0x9f'))[_0x176f('0xac')](),'closedAt':_0x1ea63e[_0x176f('0x69')]?moment(_0x1ea63e[_0x176f('0xbd')])['format'](_0x176f('0x9f'))[_0x176f('0xac')]():'','disposition':_0x1ea63e[_0x176f('0x61')],'chatInfo':{'browser':_0x1ea63e['browserName'],'os':_0x1ea63e[_0x176f('0xbe')],'referer':_0x1ea63e['referer'],'customerIp':_0x1ea63e[_0x176f('0xbf')],'customerPort':_0x1ea63e[_0x176f('0xc0')]?_0x1ea63e[_0x176f('0xc0')]:_0x176f('0xbb')},'messages':_(_0x1ea63e[_0x176f('0x77')])['tail']()[_0x176f('0x9c')]({'secret':![]})[_0x176f('0x32')](function(_0x3d0afd){if(_0x3d0afd[_0x176f('0x68')]){var _0x519bdc=path[_0x176f('0x70')](_0x5815dc,_0x3d0afd[_0x176f('0x68')][_0x176f('0x71')]);if(fs[_0x176f('0xc1')](_0x519bdc)){fs[_0x176f('0xc2')](_0x519bdc)['pipe'](fs[_0x176f('0xc3')](path[_0x176f('0x70')](_0x2eddc8,_0x3d0afd[_0x176f('0x68')][_0x176f('0x71')])));}}return{'date':moment(_0x3d0afd['createdAt'])['format'](_0x176f('0x9f'))[_0x176f('0xac')](),'sender':_0x3d0afd[_0x176f('0x85')]===_0x176f('0x5a')?_0x3d0afd[_0x176f('0x78')]?_0x3d0afd[_0x176f('0x78')][_0x176f('0x4e')]:'System':_0x3d0afd[_0x176f('0xc4')]['firstName']+(_0x3d0afd[_0x176f('0xc4')][_0x176f('0xb3')]?'\x20'+_0x3d0afd[_0x176f('0xc4')][_0x176f('0xb3')]:''),'body':_0x3d0afd[_0x176f('0x68')]?_0x3d0afd[_0x176f('0x68')][_0x176f('0x71')]:_0x3d0afd['body'],'direction':_0x3d0afd['direction']==='out'?'A':'C','secret':_0x3d0afd[_0x176f('0xc5')],'read':_0x3d0afd[_0x176f('0xb5')],'attachment':_0x3d0afd[_0x176f('0x68')]};})[_0x176f('0xc6')]()};return ejs['renderFile'](path['join'](config[_0x176f('0x6d')],_0x176f('0xad'),_0x176f('0xc7'),_0x176f('0xc8')),{'interaction':_0x5d1a54})['then'](function(_0x3da4dd){var _0x39c327=path[_0x176f('0x70')](_0x2eddc8,_0x176f('0xc9')+_0x1ea63e['id']+'-'+_0xb77f2b+'.pdf');var _0x21b3fc={'path':_0x39c327,'channel':_0x176f('0xb9'),'interactionId':_0x1ea63e['id']};return pdf['createPdfFromHTML'](_0x3da4dd,_0x21b3fc);})['then'](function(){return new Promise(function(_0x579825,_0x155dc4){zipdir(_0x2eddc8,{'saveTo':_0x41ccd6},function(_0x3811bc,_0x3347bb){if(_0x3811bc)return _0x155dc4(_0x3811bc);return _0x579825(_0x3347bb);});})[_0x176f('0x28')](function(){return new BPromise(function(_0xda1211,_0x3cb35e){rimraf(_0x2eddc8,function(_0x5088fb){if(_0x5088fb)_0x3cb35e(_0x5088fb);return _0xda1211();});});})[_0x176f('0x28')](function(){return _0x379b9c[_0x176f('0x72')](_0x41ccd6,_0x3ca787,function(_0x4db946){if(_0x4db946){logger[_0x176f('0x19')](_0x176f('0xca'),_0x4db946);}else{fs[_0x176f('0xcb')](_0x41ccd6);}});});});}else{return _0x379b9c[_0x176f('0x1e')](0xc8);}})['catch'](handleError(_0x379b9c,null));};