Built motion from commit 9d0783e6.|2.6.13
[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 _0x7a33=['options','include','getMyMessages','hasOwnProperty','ChatInteractionId','push','rows','addTags','omit','spread','Tag','emit','chatInteractionTags:save','removeTags','unix','toString','server','files','tmp','attachments','transcript-%d-%s.zip','firstName','lastName','Account','get','mkdirSync','Chat','Owner','N.A.','createdAt','browserName','osName','customerPort','tail','createReadStream','read','value','renderFile','views','transcript-','unlinkSync','rimraf','request-promise','moment','bluebird','mustache','util','path','ejs','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','../../components/export/pdf','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInteraction.socket','register','jayson/promise','client','http','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','update','destroy','name','render','merge','body','agent','interaction','account','index','map','ChatInteraction','fieldName','type','key','getOptions','findAll','query','user','params','model','keys','filters','intersection','fields','attributes','includeAll','find','create','describe','createVidaooSession','findOne','ChatWebsite','vidaooApiKey','vidaooEscalation','vidaooTopic','vidaooNote','fullname','email','contact','POST','https://api-vidaoo.xcally.com/api/v1/meetings','isNull','follow','vidaooMetadata','parse','Sequelize','Error\x20in\x20conversion\x20vidaooMetadata','ValidationError','Error\x20in\x20Vidaoo\x20configuration','join_url','out','ChatMessage','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','customUpdate','CmContact','Contact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','Interaction\x20already\x20assigned','closed','disposition','AbandonInteraction','attachmentUpload','file','filename','mimetype','Attachment','attachmentDownload','json','Unauthorized','attachId','ChatOfflineMessageId','join','root','offline-chat/','basename','download','close','mailTranscript','server/files/chat/upload/','format','now','pathTranscript','Messages','User','ChatWebsiteId','ContactId','length','UserId','%s%d','agentAlias','customer','Visitor','agentIdentifier','website_alias','System','alias','[%s]\x20%s:\x20%s\x0a','MM/DD/YYYY\x20HH:mm:ss','direction','appendFileSync','MailAccount','MailServerOut','CloudProvider','Smtp','getSmtpOptions','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','ids','getMessages','rawAttributes','nolimit','order','sort','where','pick','filter','$gte','split','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7a33,0xff));var _0x37a3=function(_0x263810,_0x35827a){_0x263810=_0x263810-0x0;var _0x2c90bd=_0x7a33[_0x263810];return _0x2c90bd;};'use strict';var rimraf=require(_0x37a3('0x0'));var zipdir=require('zip-dir');var rp=require(_0x37a3('0x1'));var moment=require(_0x37a3('0x2'));var BPromise=require(_0x37a3('0x3'));var Mustache=require(_0x37a3('0x4'));var util=require(_0x37a3('0x5'));var path=require(_0x37a3('0x6'));var ejs=require(_0x37a3('0x7'));var fs=require('fs');var _=require(_0x37a3('0x8'));var Redis=require(_0x37a3('0x9'));var interaction=require(_0x37a3('0xa'));var qs=require(_0x37a3('0xb'));var pdf=require(_0x37a3('0xc'));var logger=require(_0x37a3('0xd'))(_0x37a3('0xe'));var config=require(_0x37a3('0xf'));var db=require(_0x37a3('0x10'))['db'];config[_0x37a3('0x11')]=_[_0x37a3('0x12')](config[_0x37a3('0x11')],{'host':_0x37a3('0x13'),'port':0x18eb});var socket=require(_0x37a3('0x14'))(new Redis(config[_0x37a3('0x11')]));require(_0x37a3('0x15'))[_0x37a3('0x16')](socket);var jayson=require(_0x37a3('0x17'));var client=jayson[_0x37a3('0x18')][_0x37a3('0x19')]({'port':0x232b});var client9004=jayson['client']['http']({'port':0x232c});function respondWithRpcPromise(_0x35b47b,_0x22ffbf,_0x26be59,_0x5c4f45){return new BPromise(function(_0x21bdf4,_0x38271e){var _0x1101d3=_0x5c4f45||client;return _0x1101d3['request'](_0x35b47b,_0x26be59)[_0x37a3('0x1a')](function(_0x29f687){logger[_0x37a3('0x1b')](_0x37a3('0x1c'),_0x22ffbf,_0x37a3('0x1d'));logger[_0x37a3('0x1e')](_0x37a3('0x1f'),_0x22ffbf,_0x37a3('0x1d'),JSON[_0x37a3('0x20')](_0x29f687));if(_0x29f687[_0x37a3('0x21')]){if(_0x29f687[_0x37a3('0x21')][_0x37a3('0x22')]===0x1f4){logger[_0x37a3('0x21')](_0x37a3('0x1c'),_0x22ffbf,_0x29f687[_0x37a3('0x21')][_0x37a3('0x23')]);return _0x38271e(_0x29f687['error'][_0x37a3('0x23')]);}logger[_0x37a3('0x21')](_0x37a3('0x1c'),_0x22ffbf,_0x29f687[_0x37a3('0x21')][_0x37a3('0x23')]);return _0x21bdf4(_0x29f687[_0x37a3('0x21')][_0x37a3('0x23')]);}else{logger[_0x37a3('0x1b')](_0x37a3('0x1c'),_0x22ffbf,_0x37a3('0x1d'));_0x21bdf4(_0x29f687[_0x37a3('0x24')]['message']);}})[_0x37a3('0x25')](function(_0x4a38fa){logger[_0x37a3('0x21')](_0x37a3('0x1c'),_0x22ffbf,_0x4a38fa);_0x38271e(_0x4a38fa);});});}function respondWithStatusCode(_0x4f8927,_0x41d4e3){_0x41d4e3=_0x41d4e3||0xcc;return function(_0x240075){if(_0x240075){return _0x4f8927[_0x37a3('0x26')](_0x41d4e3);}return _0x4f8927[_0x37a3('0x27')](_0x41d4e3)[_0x37a3('0x28')]();};}function respondWithResult(_0x1f92f0,_0x174e23){_0x174e23=_0x174e23||0xc8;return function(_0x5837d5){if(_0x5837d5){return _0x1f92f0[_0x37a3('0x27')](_0x174e23)['json'](_0x5837d5);}};}function respondWithFilteredResult(_0x46c53a,_0x8eb52d){return function(_0x3d9cf){if(_0x3d9cf){var _0x3802d3=typeof _0x8eb52d[_0x37a3('0x29')]===_0x37a3('0x2a')&&typeof _0x8eb52d[_0x37a3('0x2b')]===_0x37a3('0x2a');var _0x2f379b=_0x3d9cf[_0x37a3('0x2c')];var _0x18ba47=_0x3802d3?0x0:_0x8eb52d[_0x37a3('0x29')];var _0x2f5440=_0x3802d3?_0x3d9cf[_0x37a3('0x2c')]:_0x8eb52d[_0x37a3('0x29')]+_0x8eb52d['limit'];var _0xa62da0;if(_0x2f5440>=_0x2f379b){_0x2f5440=_0x2f379b;_0xa62da0=0xc8;}else{_0xa62da0=0xce;}_0x46c53a[_0x37a3('0x27')](_0xa62da0);return _0x46c53a[_0x37a3('0x2d')](_0x37a3('0x2e'),_0x18ba47+'-'+_0x2f5440+'/'+_0x2f379b)['json'](_0x3d9cf);}return null;};}function saveUpdates(_0x1cff55){return function(_0x4daa07){if(_0x4daa07){return _0x4daa07[_0x37a3('0x2f')](_0x1cff55)[_0x37a3('0x1a')](function(_0x4ed719){return _0x4ed719;});}return null;};}function removeEntity(_0x187e41){return function(_0x1657c1){if(_0x1657c1){return _0x1657c1[_0x37a3('0x30')]()[_0x37a3('0x1a')](function(){_0x187e41['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0xf84672){return function(_0x41edc3){if(!_0x41edc3){_0xf84672[_0x37a3('0x26')](0x194);}return _0x41edc3;};}function handleError(_0x13bf46,_0xc2f5e2){_0xc2f5e2=_0xc2f5e2||0x1f4;return function(_0x4e629c){logger[_0x37a3('0x21')](_0x4e629c['stack']);if(_0x4e629c[_0x37a3('0x31')]){delete _0x4e629c[_0x37a3('0x31')];}_0x13bf46[_0x37a3('0x27')](_0xc2f5e2)['send'](_0x4e629c);};}function getMustacheRender(_0x249e88,_0x2a9050){return Mustache[_0x37a3('0x32')](_0x249e88,_[_0x37a3('0x33')](_0x2a9050[_0x37a3('0x34')],{'contact':_0x2a9050['contact'],'message':_0x2a9050[_0x37a3('0x23')],'agent':_0x2a9050[_0x37a3('0x35')],'interaction':_0x2a9050[_0x37a3('0x36')],'account':_0x2a9050[_0x37a3('0x37')]}))||'';}exports[_0x37a3('0x38')]=function(_0x296a1d,_0x3fddc8){var _0x573a16={};var _0x216703=_[_0x37a3('0x39')](db[_0x37a3('0x3a')]['rawAttributes'],function(_0xfd04a9){return{'name':_0xfd04a9[_0x37a3('0x3b')],'type':_0xfd04a9[_0x37a3('0x3c')][_0x37a3('0x3d')]};});_0x573a16=qs[_0x37a3('0x3e')](_0x216703,_0x296a1d);return interaction[_0x37a3('0x3f')]('chat',_0x296a1d[_0x37a3('0x40')],_0x296a1d[_0x37a3('0x41')],_0x573a16,_0x216703)[_0x37a3('0x1a')](respondWithFilteredResult(_0x3fddc8,_0x573a16))['catch'](handleError(_0x3fddc8,null));};exports['show']=function(_0x42e3e9,_0x2ef847){var _0x1a5973={'raw':![],'where':{'id':_0x42e3e9[_0x37a3('0x42')]['id']}},_0xf0b539={};_0xf0b539[_0x37a3('0x43')]=_[_0x37a3('0x44')](db['ChatInteraction']['rawAttributes']);_0xf0b539[_0x37a3('0x40')]=_[_0x37a3('0x44')](_0x42e3e9['query']);_0xf0b539[_0x37a3('0x45')]=_[_0x37a3('0x46')](_0xf0b539['model'],_0xf0b539['query']);_0x1a5973['attributes']=_[_0x37a3('0x46')](_0xf0b539[_0x37a3('0x43')],qs[_0x37a3('0x47')](_0x42e3e9['query'][_0x37a3('0x47')]));_0x1a5973['attributes']=_0x1a5973[_0x37a3('0x48')]['length']?_0x1a5973[_0x37a3('0x48')]:_0xf0b539['model'];if(_0x42e3e9[_0x37a3('0x40')][_0x37a3('0x49')]){_0x1a5973['include']=[{'all':!![]}];}_0x1a5973=_[_0x37a3('0x33')]({},_0x1a5973,_0x42e3e9['options']);return db[_0x37a3('0x3a')][_0x37a3('0x4a')](_0x1a5973)[_0x37a3('0x1a')](handleEntityNotFound(_0x2ef847,null))[_0x37a3('0x1a')](respondWithResult(_0x2ef847,null))[_0x37a3('0x25')](handleError(_0x2ef847,null));};exports[_0x37a3('0x4b')]=function(_0x5e6ce0,_0x45b4d6){return db['ChatInteraction'][_0x37a3('0x4b')](_0x5e6ce0[_0x37a3('0x34')],{})[_0x37a3('0x1a')](respondWithResult(_0x45b4d6,0xc9))[_0x37a3('0x25')](handleError(_0x45b4d6,null));};exports[_0x37a3('0x2f')]=function(_0x1ba8f7,_0x370f7e){if(_0x1ba8f7[_0x37a3('0x34')]['id']){delete _0x1ba8f7[_0x37a3('0x34')]['id'];}return db['ChatInteraction'][_0x37a3('0x4a')]({'where':{'id':_0x1ba8f7[_0x37a3('0x42')]['id']}})[_0x37a3('0x1a')](handleEntityNotFound(_0x370f7e,null))['then'](saveUpdates(_0x1ba8f7['body'],null))[_0x37a3('0x1a')](respondWithResult(_0x370f7e,null))['catch'](handleError(_0x370f7e,null));};exports[_0x37a3('0x30')]=function(_0x432d0e,_0x20f3a0){return db[_0x37a3('0x3a')][_0x37a3('0x4a')]({'where':{'id':_0x432d0e[_0x37a3('0x42')]['id']}})[_0x37a3('0x1a')](handleEntityNotFound(_0x20f3a0,null))[_0x37a3('0x1a')](removeEntity(_0x20f3a0,null))[_0x37a3('0x25')](handleError(_0x20f3a0,null));};exports[_0x37a3('0x4c')]=function(_0x5cecba,_0x2c7cfd){return db[_0x37a3('0x3a')][_0x37a3('0x4c')]()[_0x37a3('0x1a')](respondWithResult(_0x2c7cfd,null))[_0x37a3('0x25')](handleError(_0x2c7cfd,null));};exports[_0x37a3('0x4d')]=function(_0x36ab79,_0x3c57ba){var _0x5f1b2d=_0x36ab79[_0x37a3('0x42')]['id'];var _0x43627c;var _0x804ed6;var _0x538dd1;return db[_0x37a3('0x3a')][_0x37a3('0x4e')]({'where':{'id':_0x5f1b2d}})[_0x37a3('0x1a')](function(_0x6a664){_0x43627c=_0x6a664;return db[_0x37a3('0x4f')]['findOne']({'where':{'id':_0x6a664['ChatWebsiteId']},'attributes':['id',_0x37a3('0x50'),_0x37a3('0x51'),_0x37a3('0x52'),_0x37a3('0x53'),'vidaooMetadata'],'raw':!![]});})[_0x37a3('0x1a')](function(_0x79240e){if(_0x79240e&&_0x79240e[_0x37a3('0x50')]&&_0x79240e[_0x37a3('0x51')]){_0x804ed6=_0x79240e;var _0x275e46={'interaction':{'id':_0x5f1b2d},'agent':{'id':_0x36ab79[_0x37a3('0x41')]['id'],'name':_0x36ab79['user'][_0x37a3('0x31')],'fullname':_0x36ab79[_0x37a3('0x41')][_0x37a3('0x54')],'email':_0x36ab79['user'][_0x37a3('0x55')]},'contact':_0x36ab79[_0x37a3('0x34')][_0x37a3('0x56')],'account':_0x36ab79[_0x37a3('0x34')][_0x37a3('0x37')]};var _0x5e9305={'rejectUnauthorized':![],'method':_0x37a3('0x57'),'url':_0x37a3('0x58'),'headers':{'X-APIKEY':_0x79240e[_0x37a3('0x50')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x36ab79['user'][_0x37a3('0x55')]],'buttons':null,'topic':_0x804ed6[_0x37a3('0x52')],'note':_[_0x37a3('0x59')](_0x804ed6[_0x37a3('0x53')])?null:getMustacheRender(_0x804ed6[_0x37a3('0x53')],_0x275e46),'metadata':null},'redirect':_0x37a3('0x5a'),'json':!![]};try{if(!_['isNull'](_0x804ed6[_0x37a3('0x5b')])){var _0xb4910a=getMustacheRender(_0x804ed6[_0x37a3('0x5b')],_0x275e46);var _0x30031c=JSON[_0x37a3('0x5c')](_0xb4910a);_0x5e9305[_0x37a3('0x34')]['metadata']=_0x30031c;}}catch(_0x2d07e8){throw new db[(_0x37a3('0x5d'))]['ValidationError'](_0x37a3('0x5e'));}return rp(_0x5e9305);}else{throw new db[(_0x37a3('0x5d'))][(_0x37a3('0x5f'))](_0x37a3('0x60'));}})['then'](function(_0x23748a){_0x538dd1=_0x23748a;if(_0x538dd1['id']){var _0x5bb242={'body':_0x538dd1[_0x37a3('0x61')],'ChatWebsiteId':_0x804ed6['id'],'ChatInteractionId':_0x43627c['id'],'direction':_0x37a3('0x62'),'UserId':_0x36ab79[_0x37a3('0x41')]['id']};return db[_0x37a3('0x63')][_0x37a3('0x4b')](_0x5bb242,{});}else{throw new db[(_0x37a3('0x5d'))][(_0x37a3('0x5f'))](_0x37a3('0x64'));}})[_0x37a3('0x1a')](function(){return _0x43627c[_0x37a3('0x65')]({'vidaooSessionId':_0x538dd1['id']});})['then'](respondWithResult(_0x3c57ba,null))[_0x37a3('0x25')](handleError(_0x3c57ba,null));};exports[_0x37a3('0x66')]=function(_0x5e98af,_0x5516cf){if(_0x5e98af[_0x37a3('0x34')]['id']){delete _0x5e98af[_0x37a3('0x34')]['id'];}return db[_0x37a3('0x3a')][_0x37a3('0x4a')]({'where':{'id':_0x5e98af[_0x37a3('0x42')]['id']},'include':[{'model':db[_0x37a3('0x67')],'as':_0x37a3('0x68')}]})[_0x37a3('0x1a')](handleEntityNotFound(_0x5516cf,null))[_0x37a3('0x1a')](saveUpdates(_0x5e98af[_0x37a3('0x34')],null))[_0x37a3('0x1a')](respondWithResult(_0x5516cf,null))['catch'](handleError(_0x5516cf,null));};exports[_0x37a3('0x69')]=function(_0x2d20e9,_0x109a87){if(_0x2d20e9[_0x37a3('0x34')]['id']){delete _0x2d20e9[_0x37a3('0x34')]['id'];}return db[_0x37a3('0x3a')]['find']({'where':{'id':_0x2d20e9['params']['id']}})[_0x37a3('0x1a')](function(_0x17e0d6){if(!_0x17e0d6){logger['error'](_0x37a3('0x6a'),_0x37a3('0x69'),0x194,_0x37a3('0x6b'));_0x109a87['sendStatus'](0x194);}else{if(_0x17e0d6['UserId']){throw new db[(_0x37a3('0x5d'))][(_0x37a3('0x5f'))](_0x37a3('0x6c'));}}return _0x17e0d6;})['then'](function(_0xaf13f0){if(_0xaf13f0){return _0xaf13f0[_0x37a3('0x2f')]({'closed':_0x2d20e9[_0x37a3('0x34')][_0x37a3('0x6d')],'disposition':_0x2d20e9[_0x37a3('0x34')][_0x37a3('0x6e')]})[_0x37a3('0x1a')](function(_0x214025){return _0x214025;});}})[_0x37a3('0x1a')](function(){return respondWithRpcPromise(_0x37a3('0x6f'),'abandon',_0x2d20e9[_0x37a3('0x34')],client9004);})[_0x37a3('0x1a')](respondWithResult(_0x109a87,null))[_0x37a3('0x25')](handleError(_0x109a87,null));};exports[_0x37a3('0x70')]=function(_0x47e134,_0x1e5dfe){_0x47e134[_0x37a3('0x34')][_0x37a3('0x31')]=_0x47e134[_0x37a3('0x71')]['originalname'];_0x47e134[_0x37a3('0x34')]['basename']=_0x47e134[_0x37a3('0x71')][_0x37a3('0x72')];_0x47e134[_0x37a3('0x34')][_0x37a3('0x3c')]=_0x47e134[_0x37a3('0x71')][_0x37a3('0x73')];return db[_0x37a3('0x74')]['create'](_0x47e134[_0x37a3('0x34')])[_0x37a3('0x1a')](respondWithResult(_0x1e5dfe,0xc9))['catch'](handleError(_0x1e5dfe,null));};exports[_0x37a3('0x75')]=function(_0x13daa8,_0x17fb7d){return db[_0x37a3('0x3a')][_0x37a3('0x4e')]({'where':{'id':_0x13daa8[_0x37a3('0x42')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x17fb7d,null))[_0x37a3('0x1a')](function(_0x38d723){if(_0x38d723){if(_0x38d723['closed']){return _0x17fb7d['status'](0x193)[_0x37a3('0x76')]({'status':0x193,'message':_0x37a3('0x77')});}return db['Attachment'][_0x37a3('0x4e')]({'where':{'id':_0x13daa8['query'][_0x37a3('0x78')]},'raw':!![]})[_0x37a3('0x1a')](handleEntityNotFound(_0x17fb7d,null));}})[_0x37a3('0x1a')](function(_0xb35335){if(_0xb35335){var _0x2f5fce=_0xb35335[_0x37a3('0x79')]!==null;var _0x141167=path[_0x37a3('0x7a')](config[_0x37a3('0x7b')],'server/files/attachments/');if(_0x2f5fce){_0x141167=path[_0x37a3('0x7a')](_0x141167,_0x37a3('0x7c'));}var _0x50f7c5=path['join'](_0x141167,_0xb35335[_0x37a3('0x7d')]);return _0x17fb7d[_0x37a3('0x7e')](_0x50f7c5);}})['catch'](handleError(_0x17fb7d,null));};exports[_0x37a3('0x7f')]=function(_0x564381,_0x41100c){var _0x1fa757=null;var _0x3335f4=null;var _0x59b2a2=null;if(_0x564381[_0x37a3('0x34')]['id']){delete _0x564381['body']['id'];}if(_0x564381[_0x37a3('0x34')][_0x37a3('0x80')]){_0x59b2a2=path['join'](config[_0x37a3('0x7b')],_0x37a3('0x81'),util[_0x37a3('0x82')]('transcript-%s.txt',Date[_0x37a3('0x83')]()));_0x564381['body'][_0x37a3('0x84')]=_0x59b2a2;}return db['ChatInteraction'][_0x37a3('0x4a')]({'where':{'id':_0x564381['params']['id']},'include':[{'model':db['ChatMessage'],'as':_0x37a3('0x85'),'include':[{'model':db[_0x37a3('0x86')],'as':'User'}]}]})[_0x37a3('0x1a')](handleEntityNotFound(_0x41100c,null))[_0x37a3('0x1a')](saveUpdates(_0x564381[_0x37a3('0x34')],null))['then'](function(_0x35348f){if(_0x35348f){_0x1fa757=_0x35348f;return db['ChatWebsite']['find']({'where':{'id':_0x1fa757[_0x37a3('0x87')]}});}})[_0x37a3('0x1a')](function(_0x488211){if(_0x488211){_0x3335f4=_0x488211;return db['CmContact'][_0x37a3('0x4a')]({'where':{'id':_0x1fa757[_0x37a3('0x88')]}});}})['then'](function(_0x3396cb){if(_0x3396cb){if(_0x59b2a2){var _0x261328=null;for(var _0x3c41d2=0x1;_0x3c41d2<_0x1fa757[_0x37a3('0x85')][_0x37a3('0x89')];++_0x3c41d2){_0x261328=_0x1fa757[_0x37a3('0x85')][_0x3c41d2];var _0x5d23e0=_0x261328[_0x37a3('0x8a')]?util[_0x37a3('0x82')](_0x37a3('0x8b'),_0x3335f4[_0x37a3('0x8c')],_0x261328['UserId']):'System';var _0x8dc9c2=_0x564381[_0x37a3('0x34')][_0x37a3('0x8d')]||util[_0x37a3('0x82')]('%s%d',_0x37a3('0x8e'),_0x261328[_0x37a3('0x88')]);switch(_0x3335f4[_0x37a3('0x8f')]){case _0x37a3('0x90'):_0x5d23e0=_0x261328[_0x37a3('0x8a')]?util[_0x37a3('0x82')]('%s%d',_0x3335f4[_0x37a3('0x8c')],_0x261328[_0x37a3('0x8a')]):_0x37a3('0x91');break;case'agent_alias':_0x5d23e0=_0x261328['UserId']?_0x261328['User'][_0x37a3('0x92')]||_0x261328['User'][_0x37a3('0x54')]:_0x37a3('0x91');break;case'agent_fullname':_0x5d23e0=_0x261328[_0x37a3('0x8a')]?_0x261328[_0x37a3('0x86')][_0x37a3('0x54')]:_0x37a3('0x91');break;default:_0x5d23e0=_0x261328[_0x37a3('0x8a')]?util[_0x37a3('0x82')](_0x37a3('0x8b'),_0x3335f4[_0x37a3('0x8c')],_0x261328['UserId']):_0x37a3('0x91');}var _0x3fec82=util[_0x37a3('0x82')](_0x37a3('0x93'),moment(_0x261328['createdAt'])[_0x37a3('0x82')](_0x37a3('0x94')),_0x261328[_0x37a3('0x95')]==='in'?_0x8dc9c2:_0x5d23e0,_0x261328[_0x37a3('0x34')]);if(!_0x261328['secret']){fs[_0x37a3('0x96')](_0x59b2a2,_0x3fec82);}}return db[_0x37a3('0x97')][_0x37a3('0x4e')]({'where':{'service':!![]},'include':[{'model':db[_0x37a3('0x98')],'as':'Smtp','raw':!![],'include':[{'model':db[_0x37a3('0x99')],'as':_0x37a3('0x99'),'raw':!![]}]}]});}}})['then'](function(_0x5e91b1){if(!_0x5e91b1||!_0x5e91b1[_0x37a3('0x9a')]||!_0x564381[_0x37a3('0x34')])return _0x1fa757;var _0x2af499=_0x5e91b1[_0x37a3('0x9b')]();return respondWithRpcPromise(_0x37a3('0x9c'),'sendMail',{'account':_0x2af499,'message':{'from':util[_0x37a3('0x82')](_0x37a3('0x9d'),_0x5e91b1['name'],_0x5e91b1[_0x37a3('0x55')]||_0x5e91b1['Smtp'][_0x37a3('0x41')]),'to':_0x564381[_0x37a3('0x34')][_0x37a3('0x80')],'subject':_0x37a3('0x9e'),'text':util[_0x37a3('0x82')](_0x37a3('0x9f'),_0x564381[_0x37a3('0x34')]['mailTranscript']),'attachments':[{'path':_0x59b2a2}]}})[_0x37a3('0x1a')](function(){return _0x1fa757;})[_0x37a3('0x25')](function(_0x3cc452){logger['error'](_0x3cc452);});})[_0x37a3('0x1a')](respondWithStatusCode(_0x41100c,0xc8))[_0x37a3('0x25')](handleError(_0x41100c,null));};exports['addMessage']=function(_0x27fec8,_0x3fa772){return db[_0x37a3('0x63')][_0x37a3('0x4a')]({'where':{'id':_0x27fec8['params']['id']}})[_0x37a3('0x1a')](handleEntityNotFound(_0x3fa772,null))[_0x37a3('0x1a')](function(_0x25daf2){if(_0x25daf2){return _0x25daf2[_0x37a3('0xa0')](_0x27fec8[_0x37a3('0x34')]['ids'],_['omit'](_0x27fec8[_0x37a3('0x34')],[_0x37a3('0xa1'),'id'])||{});}})[_0x37a3('0x1a')](respondWithResult(_0x3fa772,null))[_0x37a3('0x25')](handleError(_0x3fa772,null));};exports[_0x37a3('0xa2')]=function(_0x400594,_0x143f75){var _0x320808={'raw':![],'where':{}};var _0x3a7e12={};var _0x3fd048={'count':0x0,'rows':[]};return db[_0x37a3('0x3a')]['findOne']({'where':{'id':_0x400594['params']['id']}})[_0x37a3('0x1a')](handleEntityNotFound(_0x143f75,null))['then'](function(_0x480f69){if(_0x480f69){_0x3a7e12[_0x37a3('0x43')]=_[_0x37a3('0x44')](db['ChatMessage'][_0x37a3('0xa3')]);_0x3a7e12[_0x37a3('0x40')]=_[_0x37a3('0x44')](_0x400594[_0x37a3('0x40')]);_0x3a7e12['filters']=_[_0x37a3('0x46')](_0x3a7e12[_0x37a3('0x43')],_0x3a7e12[_0x37a3('0x40')]);_0x320808['attributes']=_[_0x37a3('0x46')](_0x3a7e12['model'],qs[_0x37a3('0x47')](_0x400594[_0x37a3('0x40')][_0x37a3('0x47')]));_0x320808[_0x37a3('0x48')]=_0x320808['attributes'][_0x37a3('0x89')]?_0x320808[_0x37a3('0x48')]:_0x3a7e12[_0x37a3('0x43')];if(!_0x400594[_0x37a3('0x40')]['hasOwnProperty'](_0x37a3('0xa4'))){_0x320808[_0x37a3('0x2b')]=qs[_0x37a3('0x2b')](_0x400594[_0x37a3('0x40')][_0x37a3('0x2b')]);_0x320808[_0x37a3('0x29')]=qs[_0x37a3('0x29')](_0x400594['query'][_0x37a3('0x29')]);}_0x320808[_0x37a3('0xa5')]=qs[_0x37a3('0xa6')](_0x400594[_0x37a3('0x40')][_0x37a3('0xa6')]);_0x320808[_0x37a3('0xa7')]=qs[_0x37a3('0x45')](_[_0x37a3('0xa8')](_0x400594[_0x37a3('0x40')],_0x3a7e12['filters']));_0x320808['where']['ChatInteractionId']=_0x480f69['id'];if(_0x400594[_0x37a3('0x40')][_0x37a3('0xa9')]){_0x320808[_0x37a3('0xa7')]=_[_0x37a3('0x33')](_0x320808[_0x37a3('0xa7')],{'$or':_[_0x37a3('0x39')](_0x320808[_0x37a3('0x48')],function(_0x371f74){var _0x479e75={};_0x479e75[_0x371f74]={'$like':'%'+_0x400594[_0x37a3('0x40')][_0x37a3('0xa9')]+'%'};return _0x479e75;})});}if(_0x400594['query'][_0x37a3('0xaa')]){var _0x453147=_0x400594[_0x37a3('0x40')][_0x37a3('0xaa')][_0x37a3('0xab')](',');var _0x83e5e3={};_0x83e5e3[_0x453147[0x0]]={'$gte':moment(_0x453147[0x1])['format'](_0x37a3('0xac'))};_0x320808[_0x37a3('0xa7')]=_[_0x37a3('0x33')](_0x320808['where'],_0x83e5e3);}_0x320808=_['merge']({},_0x320808,_0x400594[_0x37a3('0xad')]);return db[_0x37a3('0x63')]['count']({'where':_0x320808[_0x37a3('0xa7')]})['then'](function(_0x588237){_0x3fd048['count']=_0x588237;if(_0x400594[_0x37a3('0x40')][_0x37a3('0x49')]){_0x320808[_0x37a3('0xae')]=[{'all':!![]}];}return db[_0x37a3('0x63')][_0x37a3('0x3f')](_0x320808);})[_0x37a3('0x1a')](function(_0x1ba6f0){_0x3fd048['rows']=_0x1ba6f0;return _0x3fd048;});}})[_0x37a3('0x1a')](respondWithFilteredResult(_0x143f75,_0x320808))[_0x37a3('0x25')](handleError(_0x143f75,null));};exports[_0x37a3('0xaf')]=function(_0x1c8bc7,_0x5787c7){var _0x5c1fd4={'where':{}},_0x5e75c7={},_0x4d1100={'count':0x0,'rows':[]};return db[_0x37a3('0x3a')][_0x37a3('0x4e')]({'where':{'id':_0x1c8bc7[_0x37a3('0x42')]['id']}})[_0x37a3('0x1a')](handleEntityNotFound(_0x5787c7,null))['then'](function(_0x4b820d){if(_0x4b820d){_0x5e75c7[_0x37a3('0x43')]=_['keys'](db[_0x37a3('0x63')]['rawAttributes']);_0x5e75c7[_0x37a3('0x40')]=_[_0x37a3('0x44')](_0x1c8bc7[_0x37a3('0x40')]);_0x5e75c7[_0x37a3('0x45')]=_['intersection'](_0x5e75c7[_0x37a3('0x43')],_0x5e75c7['query']);_0x5c1fd4[_0x37a3('0x48')]=_[_0x37a3('0x46')](_0x5e75c7[_0x37a3('0x43')],qs[_0x37a3('0x47')](_0x1c8bc7[_0x37a3('0x40')][_0x37a3('0x47')]));_0x5c1fd4['attributes']=_0x5c1fd4[_0x37a3('0x48')][_0x37a3('0x89')]?_0x5c1fd4['attributes']:_0x5e75c7[_0x37a3('0x43')];if(!_0x1c8bc7[_0x37a3('0x40')][_0x37a3('0xb0')](_0x37a3('0xa4'))){_0x5c1fd4[_0x37a3('0x2b')]=qs[_0x37a3('0x2b')](_0x1c8bc7[_0x37a3('0x40')]['limit']);_0x5c1fd4['offset']=qs[_0x37a3('0x29')](_0x1c8bc7[_0x37a3('0x40')][_0x37a3('0x29')]);}_0x5c1fd4[_0x37a3('0xa5')]=qs['sort'](_0x1c8bc7[_0x37a3('0x40')]['sort']);_0x5c1fd4['where']=qs[_0x37a3('0x45')](_[_0x37a3('0xa8')](_0x1c8bc7[_0x37a3('0x40')],_0x5e75c7[_0x37a3('0x45')]));_0x5c1fd4[_0x37a3('0xa7')][_0x37a3('0xb1')]=_0x4b820d['id'];if(_0x1c8bc7[_0x37a3('0x40')][_0x37a3('0xa9')]){_0x5c1fd4[_0x37a3('0xa7')]=_[_0x37a3('0x33')](_0x5c1fd4[_0x37a3('0xa7')],{'$or':_['map'](_0x5c1fd4[_0x37a3('0x48')],function(_0x49d765){var _0x380260={};_0x380260[_0x49d765]={'$like':'%'+_0x1c8bc7[_0x37a3('0x40')][_0x37a3('0xa9')]+'%'};return _0x380260;})});}_0x5c1fd4[_0x37a3('0xa7')]['secret']=![];if(_0x1c8bc7[_0x37a3('0x40')]['id']){_0x5c1fd4[_0x37a3('0xa7')]['id']={'$gt':_0x1c8bc7[_0x37a3('0x40')]['id']};}_0x5c1fd4=_[_0x37a3('0x33')]({},_0x5c1fd4,_0x1c8bc7[_0x37a3('0xad')]);return db[_0x37a3('0x63')][_0x37a3('0x2c')]({'where':_0x5c1fd4[_0x37a3('0xa7')]})['then'](function(_0x25c400){_0x4d1100['count']=_0x25c400;_0x5c1fd4[_0x37a3('0xae')]=[];if(_0x1c8bc7[_0x37a3('0x40')]['includeAgent']){_0x5c1fd4[_0x37a3('0xae')][_0x37a3('0xb2')]({'model':db[_0x37a3('0x86')],'as':_0x37a3('0x86'),'attributes':['id',_0x37a3('0x54'),'alias']});}if(_0x1c8bc7['query'][_0x37a3('0x49')]){_0x5c1fd4[_0x37a3('0xae')]=[{'all':!![]}];}return db[_0x37a3('0x63')][_0x37a3('0x3f')](_0x5c1fd4);})[_0x37a3('0x1a')](function(_0x10344f){_0x4d1100[_0x37a3('0xb3')]=_0x10344f;return _0x4d1100;});}})[_0x37a3('0x1a')](respondWithFilteredResult(_0x5787c7,_0x5c1fd4))[_0x37a3('0x25')](handleError(_0x5787c7,null));};exports[_0x37a3('0xb4')]=function(_0x1eaed7,_0x19f72f){return db[_0x37a3('0x3a')][_0x37a3('0x4a')]({'where':{'id':_0x1eaed7[_0x37a3('0x42')]['id']}})[_0x37a3('0x1a')](handleEntityNotFound(_0x19f72f,null))[_0x37a3('0x1a')](function(_0x18f87d){if(_0x18f87d){return _0x18f87d['setTags'](_0x1eaed7['body']['ids'],_[_0x37a3('0xb5')](_0x1eaed7[_0x37a3('0x34')],['ids','id'])||{})[_0x37a3('0xb6')](function(){return db[_0x37a3('0xb7')][_0x37a3('0x3f')]({'attributes':['id',_0x37a3('0x31'),'color'],'where':{'id':_0x1eaed7[_0x37a3('0x34')][_0x37a3('0xa1')]}});})[_0x37a3('0x1a')](function(_0x422351){socket[_0x37a3('0xb8')](_0x37a3('0xb9'),{'id':Number(_0x1eaed7[_0x37a3('0x42')]['id']),'tags':_0x422351||[]});return{'id':Number(_0x1eaed7[_0x37a3('0x42')]['id']),'tags':_0x422351||[]};});}})[_0x37a3('0x1a')](respondWithResult(_0x19f72f,null))[_0x37a3('0x25')](handleError(_0x19f72f,null));};exports['removeTags']=function(_0x91ecae,_0x5c3a3d){return db[_0x37a3('0x3a')][_0x37a3('0x4a')]({'where':{'id':_0x91ecae[_0x37a3('0x42')]['id']}})[_0x37a3('0x1a')](handleEntityNotFound(_0x5c3a3d,null))[_0x37a3('0x1a')](function(_0x5e06be){if(_0x5e06be){return _0x5e06be[_0x37a3('0xba')](_0x91ecae[_0x37a3('0x40')]['ids']);}})['then'](respondWithStatusCode(_0x5c3a3d,null))[_0x37a3('0x25')](handleError(_0x5c3a3d,null));};exports[_0x37a3('0x7e')]=function(_0x5f4443,_0x3a9369){var _0x3a03ab=moment()[_0x37a3('0xbb')]()[_0x37a3('0xbc')]();var _0x3eed9b=path[_0x37a3('0x7a')](config[_0x37a3('0x7b')],_0x37a3('0xbd'),_0x37a3('0xbe'),_0x37a3('0xbf'));var _0x3ce612=path[_0x37a3('0x7a')](config[_0x37a3('0x7b')],_0x37a3('0xbd'),_0x37a3('0xbe'),_0x37a3('0xc0'));var _0x5bcfc2=path[_0x37a3('0x7a')](_0x3eed9b,_0x3a03ab);var _0x19008=util[_0x37a3('0x82')](_0x37a3('0xc1'),_0x5f4443[_0x37a3('0x42')]['id'],_0x3a03ab);var _0x19ad17=path[_0x37a3('0x7a')](_0x3eed9b,_0x19008);var _0x409c65=[];_0x409c65[_0x37a3('0xb2')]({'model':db[_0x37a3('0x86')],'as':_0x37a3('0x86'),'attributes':['id',_0x37a3('0x54')],'raw':!![]});_0x409c65[_0x37a3('0xb2')]({'model':db[_0x37a3('0x67')],'as':_0x37a3('0x68'),'attributes':['id',_0x37a3('0xc2'),_0x37a3('0xc3')],'raw':!![]});if(_0x5f4443[_0x37a3('0x40')][_0x37a3('0xc0')]){_0x409c65['push']({'model':db[_0x37a3('0x74')],'as':_0x37a3('0x74'),'raw':!![]});}var _0x50178e=[{'model':db['ChatMessage'],'as':_0x37a3('0x85'),'attributes':['id',_0x37a3('0x34'),'createdAt',_0x37a3('0x95'),'secret','read'],'include':_0x409c65}];_0x50178e[_0x37a3('0xb2')]({'model':db[_0x37a3('0x4f')],'as':_0x37a3('0xc4'),'attributes':['id','name']});_0x50178e['push']({'model':db['User'],'as':'Owner','attributes':['id',_0x37a3('0x54')]});return db[_0x37a3('0x3a')]['find']({'where':{'id':_0x5f4443[_0x37a3('0x42')]['id']},'include':_0x50178e})['then'](handleEntityNotFound(_0x3a9369,null))['then'](function(_0x4b78a4){if(_0x4b78a4){var _0x476141=_0x4b78a4[_0x37a3('0xc5')]({'plain':!![]});fs[_0x37a3('0xc6')](_0x5bcfc2);var _0x5a1dea={'channel':_0x37a3('0xc7'),'account':_0x476141[_0x37a3('0xc4')][_0x37a3('0x31')],'agent':_0x476141[_0x37a3('0xc8')]?_0x476141['Owner'][_0x37a3('0x54')]:_0x37a3('0xc9'),'createdAt':moment(_0x476141[_0x37a3('0xca')])[_0x37a3('0x82')](_0x37a3('0xac'))[_0x37a3('0xbc')](),'closedAt':_0x476141['closed']?moment(_0x476141['closedAt'])[_0x37a3('0x82')](_0x37a3('0xac'))[_0x37a3('0xbc')]():'','disposition':_0x476141['disposition'],'chatInfo':{'browser':_0x476141[_0x37a3('0xcb')],'os':_0x476141[_0x37a3('0xcc')],'referer':_0x476141['referer'],'customerIp':_0x476141['customerIp'],'customerPort':_0x476141[_0x37a3('0xcd')]?_0x476141['customerPort']:_0x37a3('0xc9')},'messages':_(_0x476141[_0x37a3('0x85')])[_0x37a3('0xce')]()[_0x37a3('0xa9')]({'secret':![]})[_0x37a3('0x39')](function(_0x17b789){if(_0x17b789[_0x37a3('0x74')]){var _0x4839a8=path[_0x37a3('0x7a')](_0x3ce612,_0x17b789[_0x37a3('0x74')][_0x37a3('0x7d')]);if(fs['existsSync'](_0x4839a8)){fs[_0x37a3('0xcf')](_0x4839a8)['pipe'](fs['createWriteStream'](path[_0x37a3('0x7a')](_0x5bcfc2,_0x17b789[_0x37a3('0x74')]['basename'])));}}return{'date':moment(_0x17b789['createdAt'])[_0x37a3('0x82')](_0x37a3('0xac'))[_0x37a3('0xbc')](),'sender':_0x17b789[_0x37a3('0x95')]==='out'?_0x17b789[_0x37a3('0x86')]?_0x17b789[_0x37a3('0x86')][_0x37a3('0x54')]:'System':_0x17b789[_0x37a3('0x68')][_0x37a3('0xc2')]+(_0x17b789[_0x37a3('0x68')][_0x37a3('0xc3')]?'\x20'+_0x17b789[_0x37a3('0x68')]['lastName']:''),'body':_0x17b789['Attachment']?_0x17b789[_0x37a3('0x74')][_0x37a3('0x7d')]:_0x17b789[_0x37a3('0x34')],'direction':_0x17b789[_0x37a3('0x95')]==='out'?'A':'C','secret':_0x17b789['secret'],'read':_0x17b789[_0x37a3('0xd0')],'attachment':_0x17b789[_0x37a3('0x74')]};})[_0x37a3('0xd1')]()};return ejs[_0x37a3('0xd2')](path[_0x37a3('0x7a')](config[_0x37a3('0x7b')],'server',_0x37a3('0xd3'),'downloadInteraction.ejs'),{'interaction':_0x5a1dea})[_0x37a3('0x1a')](function(_0x64199d){var _0x408f1c=path[_0x37a3('0x7a')](_0x5bcfc2,_0x37a3('0xd4')+_0x476141['id']+'-'+_0x3a03ab+'.pdf');var _0x5a7cfb={'path':_0x408f1c,'channel':_0x37a3('0xc7'),'interactionId':_0x476141['id']};return pdf['createPdfFromHTML'](_0x64199d,_0x5a7cfb);})[_0x37a3('0x1a')](function(){return new Promise(function(_0x4b63ea,_0x9147e7){zipdir(_0x5bcfc2,{'saveTo':_0x19ad17},function(_0x2cf557,_0x5f48e4){if(_0x2cf557)return _0x9147e7(_0x2cf557);return _0x4b63ea(_0x5f48e4);});})[_0x37a3('0x1a')](function(){return new BPromise(function(_0x55fc60,_0x285eeb){rimraf(_0x5bcfc2,function(_0x5a08b0){if(_0x5a08b0)_0x285eeb(_0x5a08b0);return _0x55fc60();});});})[_0x37a3('0x1a')](function(){return _0x3a9369[_0x37a3('0x7e')](_0x19ad17,_0x19008,function(_0x4d805b){if(_0x4d805b){logger[_0x37a3('0x21')]('err',_0x4d805b);}else{fs[_0x37a3('0xd5')](_0x19ad17);}});});});}else{return _0x3a9369['sendStatus'](0xc8);}})[_0x37a3('0x25')](handleError(_0x3a9369,null));};