Built motion from commit 1fa89557.|2.6.10
[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 _0x99fb=['lodash','../../components/interaction/service','../../components/parsers/qs','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','register','jayson/promise','http','client','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','sendStatus','status','offset','undefined','count','set','Content-Range','json','update','then','stack','name','send','merge','contact','agent','interaction','account','index','map','ChatInteraction','rawAttributes','fieldName','key','findAll','chat','user','show','params','model','keys','query','filters','intersection','fields','attributes','length','includeAll','include','options','find','create','body','destroy','describe','createVidaooSession','findOne','ChatWebsite','ChatWebsiteId','vidaooEscalation','vidaooTopic','vidaooNote','fullname','email','POST','vidaooApiKey','isNull','follow','vidaooMetadata','parse','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','Sequelize','out','ChatMessage','Unable\x20to\x20create\x20Vidaoo\x20session','CmContact','Contact','abandon','UserId','closed','disposition','AbandonInteraction','attachmentUpload','file','originalname','basename','filename','type','mimetype','attachmentDownload','Attachment','attachId','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','download','mailTranscript','server/files/chat/upload/','format','transcript-%s.txt','now','User','ContactId','Messages','%s%d','System','Visitor','agentIdentifier','website_alias','agentAlias','agent_alias','[%s]\x20%s:\x20%s\x0a','MM/DD/YYYY\x20HH:mm:ss','direction','secret','appendFileSync','CloudProvider','getSmtpOptions','SendMail','sendMail','\x22%s\x22\x20<%s>','Smtp','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','ids','omit','getMessages','hasOwnProperty','limit','order','sort','where','filter','$gte','split','YYYY-MM-DD\x20HH:mm:ss','rows','getMyMessages','nolimit','pick','includeAgent','push','setTags','spread','Tag','color','emit','chatInteractionTags:save','removeTags','unix','server','tmp','attachments','transcript-%d-%s.zip','firstName','createdAt','read','Account','Owner','get','mkdirSync','Chat','closedAt','toString','browserName','osName','referer','customerIp','customerPort','N.A.','existsSync','createReadStream','pipe','createWriteStream','lastName','renderFile','views','downloadInteraction.ejs','transcript-','.pdf','createPdfFromHTML','unlinkSync','zip-dir','request-promise','bluebird','mustache','util','ejs'];(function(_0x4ead2f,_0x5a17f7){var _0x446a29=function(_0x3fde94){while(--_0x3fde94){_0x4ead2f['push'](_0x4ead2f['shift']());}};_0x446a29(++_0x5a17f7);}(_0x99fb,0xc5));var _0xb99f=function(_0x53337b,_0x25e628){_0x53337b=_0x53337b-0x0;var _0x4165f5=_0x99fb[_0x53337b];return _0x4165f5;};'use strict';var rimraf=require('rimraf');var zipdir=require(_0xb99f('0x0'));var rp=require(_0xb99f('0x1'));var moment=require('moment');var BPromise=require(_0xb99f('0x2'));var Mustache=require(_0xb99f('0x3'));var util=require(_0xb99f('0x4'));var path=require('path');var ejs=require(_0xb99f('0x5'));var fs=require('fs');var _=require(_0xb99f('0x6'));var Redis=require('ioredis');var interaction=require(_0xb99f('0x7'));var qs=require(_0xb99f('0x8'));var pdf=require('../../components/export/pdf');var logger=require('../../config/logger')('api');var config=require(_0xb99f('0x9'));var db=require(_0xb99f('0xa'))['db'];config['redis']=_[_0xb99f('0xb')](config[_0xb99f('0xc')],{'host':_0xb99f('0xd'),'port':0x18eb});var socket=require(_0xb99f('0xe'))(new Redis(config[_0xb99f('0xc')]));require('./chatInteraction.socket')[_0xb99f('0xf')](socket);var jayson=require(_0xb99f('0x10'));var client=jayson['client'][_0xb99f('0x11')]({'port':0x232b});var client9004=jayson[_0xb99f('0x12')]['http']({'port':0x232c});function respondWithRpcPromise(_0x49dbf9,_0x331186,_0x5ac9f4,_0x3e96a7){return new BPromise(function(_0x1dcbdd,_0x2f590b){var _0x3fa54d=_0x3e96a7||client;return _0x3fa54d['request'](_0x49dbf9,_0x5ac9f4)['then'](function(_0x19b4e1){logger[_0xb99f('0x13')](_0xb99f('0x14'),_0x331186,'request\x20sent');logger['debug']('ChatInteraction,\x20%s,\x20%s,\x20%s',_0x331186,_0xb99f('0x15'),JSON['stringify'](_0x19b4e1));if(_0x19b4e1[_0xb99f('0x16')]){if(_0x19b4e1[_0xb99f('0x16')][_0xb99f('0x17')]===0x1f4){logger['error']('ChatInteraction,\x20%s,\x20%s',_0x331186,_0x19b4e1[_0xb99f('0x16')][_0xb99f('0x18')]);return _0x2f590b(_0x19b4e1[_0xb99f('0x16')][_0xb99f('0x18')]);}logger['error'](_0xb99f('0x14'),_0x331186,_0x19b4e1[_0xb99f('0x16')]['message']);return _0x1dcbdd(_0x19b4e1[_0xb99f('0x16')][_0xb99f('0x18')]);}else{logger['info'](_0xb99f('0x14'),_0x331186,'request\x20sent');_0x1dcbdd(_0x19b4e1[_0xb99f('0x19')]['message']);}})[_0xb99f('0x1a')](function(_0x395f01){logger['error'](_0xb99f('0x14'),_0x331186,_0x395f01);_0x2f590b(_0x395f01);});});}function respondWithStatusCode(_0x48bbf1,_0x5dae6b){_0x5dae6b=_0x5dae6b||0xcc;return function(_0x361fb9){if(_0x361fb9){return _0x48bbf1[_0xb99f('0x1b')](_0x5dae6b);}return _0x48bbf1[_0xb99f('0x1c')](_0x5dae6b)['end']();};}function respondWithResult(_0x13eae6,_0xcfe007){_0xcfe007=_0xcfe007||0xc8;return function(_0x378e9b){if(_0x378e9b){return _0x13eae6[_0xb99f('0x1c')](_0xcfe007)['json'](_0x378e9b);}};}function respondWithFilteredResult(_0x59bbe6,_0x80a368){return function(_0x517272){if(_0x517272){var _0x3c9d48=typeof _0x80a368[_0xb99f('0x1d')]===_0xb99f('0x1e')&&typeof _0x80a368['limit']===_0xb99f('0x1e');var _0x49ad45=_0x517272[_0xb99f('0x1f')];var _0x4117a5=_0x3c9d48?0x0:_0x80a368[_0xb99f('0x1d')];var _0x51a56c=_0x3c9d48?_0x517272[_0xb99f('0x1f')]:_0x80a368['offset']+_0x80a368['limit'];var _0x242672;if(_0x51a56c>=_0x49ad45){_0x51a56c=_0x49ad45;_0x242672=0xc8;}else{_0x242672=0xce;}_0x59bbe6[_0xb99f('0x1c')](_0x242672);return _0x59bbe6[_0xb99f('0x20')](_0xb99f('0x21'),_0x4117a5+'-'+_0x51a56c+'/'+_0x49ad45)[_0xb99f('0x22')](_0x517272);}return null;};}function saveUpdates(_0xb3dc94){return function(_0x432a74){if(_0x432a74){return _0x432a74[_0xb99f('0x23')](_0xb3dc94)['then'](function(_0x250f09){return _0x250f09;});}return null;};}function removeEntity(_0x10cd6e){return function(_0x427771){if(_0x427771){return _0x427771['destroy']()[_0xb99f('0x24')](function(){_0x10cd6e[_0xb99f('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5d6455){return function(_0x1ef9fe){if(!_0x1ef9fe){_0x5d6455[_0xb99f('0x1b')](0x194);}return _0x1ef9fe;};}function handleError(_0x472b59,_0x3731fa){_0x3731fa=_0x3731fa||0x1f4;return function(_0x1628c4){logger[_0xb99f('0x16')](_0x1628c4[_0xb99f('0x25')]);if(_0x1628c4[_0xb99f('0x26')]){delete _0x1628c4[_0xb99f('0x26')];}_0x472b59[_0xb99f('0x1c')](_0x3731fa)[_0xb99f('0x27')](_0x1628c4);};}function getMustacheRender(_0x1e3c08,_0x24c37b){return Mustache['render'](_0x1e3c08,_[_0xb99f('0x28')](_0x24c37b['body'],{'contact':_0x24c37b[_0xb99f('0x29')],'message':_0x24c37b['message'],'agent':_0x24c37b[_0xb99f('0x2a')],'interaction':_0x24c37b[_0xb99f('0x2b')],'account':_0x24c37b[_0xb99f('0x2c')]}))||'';}exports[_0xb99f('0x2d')]=function(_0x4983fc,_0x42e761){var _0x2231ab={};var _0x3179b7=_[_0xb99f('0x2e')](db[_0xb99f('0x2f')][_0xb99f('0x30')],function(_0x2153bf){return{'name':_0x2153bf[_0xb99f('0x31')],'type':_0x2153bf['type'][_0xb99f('0x32')]};});_0x2231ab=qs['getOptions'](_0x3179b7,_0x4983fc);return interaction[_0xb99f('0x33')](_0xb99f('0x34'),_0x4983fc['query'],_0x4983fc[_0xb99f('0x35')],_0x2231ab,_0x3179b7)[_0xb99f('0x24')](respondWithFilteredResult(_0x42e761,_0x2231ab))[_0xb99f('0x1a')](handleError(_0x42e761,null));};exports[_0xb99f('0x36')]=function(_0x26fd23,_0x34db51){var _0x59ecd0={'raw':![],'where':{'id':_0x26fd23[_0xb99f('0x37')]['id']}},_0x459937={};_0x459937[_0xb99f('0x38')]=_[_0xb99f('0x39')](db[_0xb99f('0x2f')][_0xb99f('0x30')]);_0x459937['query']=_['keys'](_0x26fd23[_0xb99f('0x3a')]);_0x459937[_0xb99f('0x3b')]=_[_0xb99f('0x3c')](_0x459937[_0xb99f('0x38')],_0x459937[_0xb99f('0x3a')]);_0x59ecd0['attributes']=_[_0xb99f('0x3c')](_0x459937[_0xb99f('0x38')],qs['fields'](_0x26fd23[_0xb99f('0x3a')][_0xb99f('0x3d')]));_0x59ecd0[_0xb99f('0x3e')]=_0x59ecd0[_0xb99f('0x3e')][_0xb99f('0x3f')]?_0x59ecd0[_0xb99f('0x3e')]:_0x459937[_0xb99f('0x38')];if(_0x26fd23[_0xb99f('0x3a')][_0xb99f('0x40')]){_0x59ecd0[_0xb99f('0x41')]=[{'all':!![]}];}_0x59ecd0=_[_0xb99f('0x28')]({},_0x59ecd0,_0x26fd23[_0xb99f('0x42')]);return db['ChatInteraction'][_0xb99f('0x43')](_0x59ecd0)['then'](handleEntityNotFound(_0x34db51,null))[_0xb99f('0x24')](respondWithResult(_0x34db51,null))[_0xb99f('0x1a')](handleError(_0x34db51,null));};exports[_0xb99f('0x44')]=function(_0x3adff9,_0x238151){return db[_0xb99f('0x2f')][_0xb99f('0x44')](_0x3adff9[_0xb99f('0x45')],{})[_0xb99f('0x24')](respondWithResult(_0x238151,0xc9))[_0xb99f('0x1a')](handleError(_0x238151,null));};exports['update']=function(_0x241314,_0x2d2a30){if(_0x241314[_0xb99f('0x45')]['id']){delete _0x241314[_0xb99f('0x45')]['id'];}return db[_0xb99f('0x2f')][_0xb99f('0x43')]({'where':{'id':_0x241314[_0xb99f('0x37')]['id']}})[_0xb99f('0x24')](handleEntityNotFound(_0x2d2a30,null))[_0xb99f('0x24')](saveUpdates(_0x241314['body'],null))[_0xb99f('0x24')](respondWithResult(_0x2d2a30,null))[_0xb99f('0x1a')](handleError(_0x2d2a30,null));};exports[_0xb99f('0x46')]=function(_0x2f7619,_0x311238){return db[_0xb99f('0x2f')][_0xb99f('0x43')]({'where':{'id':_0x2f7619['params']['id']}})[_0xb99f('0x24')](handleEntityNotFound(_0x311238,null))[_0xb99f('0x24')](removeEntity(_0x311238,null))[_0xb99f('0x1a')](handleError(_0x311238,null));};exports[_0xb99f('0x47')]=function(_0x5997a2,_0x2a3354){return db[_0xb99f('0x2f')][_0xb99f('0x47')]()[_0xb99f('0x24')](respondWithResult(_0x2a3354,null))['catch'](handleError(_0x2a3354,null));};exports[_0xb99f('0x48')]=function(_0x4faf19,_0x30776c){var _0x3dd0c9=_0x4faf19[_0xb99f('0x37')]['id'];var _0x1f9185;var _0x34f860;var _0x1e948c;return db['ChatInteraction'][_0xb99f('0x49')]({'where':{'id':_0x3dd0c9}})[_0xb99f('0x24')](function(_0x34b77d){_0x1f9185=_0x34b77d;return db[_0xb99f('0x4a')][_0xb99f('0x49')]({'where':{'id':_0x34b77d[_0xb99f('0x4b')]},'attributes':['id','vidaooApiKey',_0xb99f('0x4c'),_0xb99f('0x4d'),_0xb99f('0x4e'),'vidaooMetadata'],'raw':!![]});})[_0xb99f('0x24')](function(_0xe6e993){if(_0xe6e993&&_0xe6e993['vidaooApiKey']&&_0xe6e993[_0xb99f('0x4c')]){_0x34f860=_0xe6e993;var _0xb6facb={'interaction':{'id':_0x3dd0c9},'agent':{'id':_0x4faf19[_0xb99f('0x35')]['id'],'name':_0x4faf19['user'][_0xb99f('0x26')],'fullname':_0x4faf19[_0xb99f('0x35')][_0xb99f('0x4f')],'email':_0x4faf19[_0xb99f('0x35')][_0xb99f('0x50')]},'contact':_0x4faf19[_0xb99f('0x45')][_0xb99f('0x29')],'account':_0x4faf19[_0xb99f('0x45')]['account']};var _0x55b3e8={'rejectUnauthorized':![],'method':_0xb99f('0x51'),'url':'https://api-vidaoo.xcally.com/api/v1/meetings','headers':{'X-APIKEY':_0xe6e993[_0xb99f('0x52')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x4faf19[_0xb99f('0x35')][_0xb99f('0x50')]],'buttons':null,'topic':_0x34f860[_0xb99f('0x4d')],'note':_[_0xb99f('0x53')](_0x34f860['vidaooNote'])?null:getMustacheRender(_0x34f860[_0xb99f('0x4e')],_0xb6facb),'metadata':null},'redirect':_0xb99f('0x54'),'json':!![]};try{if(!_[_0xb99f('0x53')](_0x34f860[_0xb99f('0x55')])){var _0x3ae782=getMustacheRender(_0x34f860[_0xb99f('0x55')],_0xb6facb);var _0x1d24c7=JSON[_0xb99f('0x56')](_0x3ae782);_0x55b3e8[_0xb99f('0x45')]['metadata']=_0x1d24c7;}}catch(_0x5774dc){throw new db['Sequelize'][(_0xb99f('0x57'))](_0xb99f('0x58'));}return rp(_0x55b3e8);}else{throw new db[(_0xb99f('0x59'))][(_0xb99f('0x57'))]('Error\x20in\x20Vidaoo\x20configuration');}})[_0xb99f('0x24')](function(_0x208924){_0x1e948c=_0x208924;if(_0x1e948c['id']){var _0x1781cb={'body':_0x1e948c['join_url'],'ChatWebsiteId':_0x34f860['id'],'ChatInteractionId':_0x1f9185['id'],'direction':_0xb99f('0x5a'),'UserId':_0x4faf19[_0xb99f('0x35')]['id']};return db[_0xb99f('0x5b')][_0xb99f('0x44')](_0x1781cb,{});}else{throw new db['Sequelize']['ValidationError'](_0xb99f('0x5c'));}})[_0xb99f('0x24')](function(){return _0x1f9185['updateAttributes']({'vidaooSessionId':_0x1e948c['id']});})['then'](respondWithResult(_0x30776c,null))[_0xb99f('0x1a')](handleError(_0x30776c,null));};exports['customUpdate']=function(_0x42a711,_0x1c522b){if(_0x42a711[_0xb99f('0x45')]['id']){delete _0x42a711[_0xb99f('0x45')]['id'];}return db[_0xb99f('0x2f')][_0xb99f('0x43')]({'where':{'id':_0x42a711['params']['id']},'include':[{'model':db[_0xb99f('0x5d')],'as':_0xb99f('0x5e')}]})['then'](handleEntityNotFound(_0x1c522b,null))['then'](saveUpdates(_0x42a711[_0xb99f('0x45')],null))[_0xb99f('0x24')](respondWithResult(_0x1c522b,null))[_0xb99f('0x1a')](handleError(_0x1c522b,null));};exports[_0xb99f('0x5f')]=function(_0x5edb79,_0x4c52d0){if(_0x5edb79[_0xb99f('0x45')]['id']){delete _0x5edb79[_0xb99f('0x45')]['id'];}return db['ChatInteraction']['find']({'where':{'id':_0x5edb79[_0xb99f('0x37')]['id']}})[_0xb99f('0x24')](function(_0x4175bc){if(!_0x4175bc){logger[_0xb99f('0x16')]('abandonInteraction,\x20%s,\x20%s,\x20%s',_0xb99f('0x5f'),0x194,'entity\x20not\x20found');_0x4c52d0[_0xb99f('0x1b')](0x194);}else{if(_0x4175bc[_0xb99f('0x60')]){throw new db[(_0xb99f('0x59'))]['ValidationError']('Interaction\x20already\x20assigned');}}return _0x4175bc;})['then'](function(_0x54377a){if(_0x54377a){return _0x54377a['update']({'closed':_0x5edb79[_0xb99f('0x45')][_0xb99f('0x61')],'disposition':_0x5edb79[_0xb99f('0x45')][_0xb99f('0x62')]})['then'](function(_0x1c2128){return _0x1c2128;});}})[_0xb99f('0x24')](function(){return respondWithRpcPromise(_0xb99f('0x63'),_0xb99f('0x5f'),_0x5edb79['body'],client9004);})[_0xb99f('0x24')](respondWithResult(_0x4c52d0,null))['catch'](handleError(_0x4c52d0,null));};exports[_0xb99f('0x64')]=function(_0x3bbed0,_0x3650a3){_0x3bbed0['body']['name']=_0x3bbed0[_0xb99f('0x65')][_0xb99f('0x66')];_0x3bbed0[_0xb99f('0x45')][_0xb99f('0x67')]=_0x3bbed0[_0xb99f('0x65')][_0xb99f('0x68')];_0x3bbed0['body'][_0xb99f('0x69')]=_0x3bbed0[_0xb99f('0x65')][_0xb99f('0x6a')];return db['Attachment'][_0xb99f('0x44')](_0x3bbed0[_0xb99f('0x45')])[_0xb99f('0x24')](respondWithResult(_0x3650a3,0xc9))[_0xb99f('0x1a')](handleError(_0x3650a3,null));};exports[_0xb99f('0x6b')]=function(_0x203a8c,_0x56355a){return db['ChatInteraction'][_0xb99f('0x49')]({'where':{'id':_0x203a8c[_0xb99f('0x37')]['id']},'raw':!![]})[_0xb99f('0x24')](handleEntityNotFound(_0x56355a,null))[_0xb99f('0x24')](function(_0x48a8ef){if(_0x48a8ef){if(_0x48a8ef[_0xb99f('0x61')]){return _0x56355a[_0xb99f('0x1c')](0x193)['json']({'status':0x193,'message':'Unauthorized'});}return db[_0xb99f('0x6c')][_0xb99f('0x49')]({'where':{'id':_0x203a8c['query'][_0xb99f('0x6d')]},'raw':!![]})[_0xb99f('0x24')](handleEntityNotFound(_0x56355a,null));}})[_0xb99f('0x24')](function(_0x422307){if(_0x422307){var _0x43b706=_0x422307[_0xb99f('0x6e')]!==null;var _0x13c36e=path[_0xb99f('0x6f')](config[_0xb99f('0x70')],_0xb99f('0x71'));if(_0x43b706){_0x13c36e=path[_0xb99f('0x6f')](_0x13c36e,_0xb99f('0x72'));}var _0xae7433=path[_0xb99f('0x6f')](_0x13c36e,_0x422307[_0xb99f('0x67')]);return _0x56355a[_0xb99f('0x73')](_0xae7433);}})[_0xb99f('0x1a')](handleError(_0x56355a,null));};exports['close']=function(_0x4f3cdc,_0x2aaa7c){var _0x99d3a2=null;var _0x3e691e=null;var _0x5149a2=null;if(_0x4f3cdc[_0xb99f('0x45')]['id']){delete _0x4f3cdc['body']['id'];}if(_0x4f3cdc[_0xb99f('0x45')][_0xb99f('0x74')]){_0x5149a2=path[_0xb99f('0x6f')](config[_0xb99f('0x70')],_0xb99f('0x75'),util[_0xb99f('0x76')](_0xb99f('0x77'),Date[_0xb99f('0x78')]()));_0x4f3cdc[_0xb99f('0x45')]['pathTranscript']=_0x5149a2;}return db[_0xb99f('0x2f')][_0xb99f('0x43')]({'where':{'id':_0x4f3cdc[_0xb99f('0x37')]['id']},'include':[{'model':db['ChatMessage'],'as':'Messages','include':[{'model':db[_0xb99f('0x79')],'as':_0xb99f('0x79')}]}]})[_0xb99f('0x24')](handleEntityNotFound(_0x2aaa7c,null))[_0xb99f('0x24')](saveUpdates(_0x4f3cdc['body'],null))[_0xb99f('0x24')](function(_0x103a06){if(_0x103a06){_0x99d3a2=_0x103a06;return db[_0xb99f('0x4a')][_0xb99f('0x43')]({'where':{'id':_0x99d3a2[_0xb99f('0x4b')]}});}})[_0xb99f('0x24')](function(_0x42e9c0){if(_0x42e9c0){_0x3e691e=_0x42e9c0;return db['CmContact'][_0xb99f('0x43')]({'where':{'id':_0x99d3a2[_0xb99f('0x7a')]}});}})[_0xb99f('0x24')](function(_0x317a89){if(_0x317a89){if(_0x5149a2){var _0x11fdc6=null;for(var _0x46e51c=0x1;_0x46e51c<_0x99d3a2[_0xb99f('0x7b')]['length'];++_0x46e51c){_0x11fdc6=_0x99d3a2[_0xb99f('0x7b')][_0x46e51c];var _0x1df99c=_0x11fdc6[_0xb99f('0x60')]?util[_0xb99f('0x76')](_0xb99f('0x7c'),_0x3e691e['agentAlias'],_0x11fdc6['UserId']):_0xb99f('0x7d');var _0x327bbe=_0x4f3cdc['body']['customer']||util[_0xb99f('0x76')](_0xb99f('0x7c'),_0xb99f('0x7e'),_0x11fdc6[_0xb99f('0x7a')]);switch(_0x3e691e[_0xb99f('0x7f')]){case _0xb99f('0x80'):_0x1df99c=_0x11fdc6[_0xb99f('0x60')]?util[_0xb99f('0x76')](_0xb99f('0x7c'),_0x3e691e[_0xb99f('0x81')],_0x11fdc6[_0xb99f('0x60')]):_0xb99f('0x7d');break;case _0xb99f('0x82'):_0x1df99c=_0x11fdc6[_0xb99f('0x60')]?_0x11fdc6[_0xb99f('0x79')]['alias']||_0x11fdc6[_0xb99f('0x79')][_0xb99f('0x4f')]:_0xb99f('0x7d');break;case'agent_fullname':_0x1df99c=_0x11fdc6[_0xb99f('0x60')]?_0x11fdc6[_0xb99f('0x79')][_0xb99f('0x4f')]:_0xb99f('0x7d');break;default:_0x1df99c=_0x11fdc6[_0xb99f('0x60')]?util['format'](_0xb99f('0x7c'),_0x3e691e[_0xb99f('0x81')],_0x11fdc6[_0xb99f('0x60')]):_0xb99f('0x7d');}var _0x582d67=util[_0xb99f('0x76')](_0xb99f('0x83'),moment(_0x11fdc6['createdAt'])[_0xb99f('0x76')](_0xb99f('0x84')),_0x11fdc6[_0xb99f('0x85')]==='in'?_0x327bbe:_0x1df99c,_0x11fdc6[_0xb99f('0x45')]);if(!_0x11fdc6[_0xb99f('0x86')]){fs[_0xb99f('0x87')](_0x5149a2,_0x582d67);}}return db['MailAccount'][_0xb99f('0x49')]({'where':{'service':!![]},'include':[{'model':db['MailServerOut'],'as':'Smtp','raw':!![],'include':[{'model':db[_0xb99f('0x88')],'as':'CloudProvider','raw':!![]}]}]});}}})[_0xb99f('0x24')](function(_0x1b6e70){if(!_0x1b6e70||!_0x1b6e70['Smtp']||!_0x4f3cdc[_0xb99f('0x45')])return _0x99d3a2;var _0x39c5d6=_0x1b6e70[_0xb99f('0x89')]();return respondWithRpcPromise(_0xb99f('0x8a'),_0xb99f('0x8b'),{'account':_0x39c5d6,'message':{'from':util['format'](_0xb99f('0x8c'),_0x1b6e70['name'],_0x1b6e70[_0xb99f('0x50')]||_0x1b6e70[_0xb99f('0x8d')]['user']),'to':_0x4f3cdc['body'][_0xb99f('0x74')],'subject':_0xb99f('0x8e'),'text':util[_0xb99f('0x76')](_0xb99f('0x8f'),_0x4f3cdc[_0xb99f('0x45')]['mailTranscript']),'attachments':[{'path':_0x5149a2}]}})['then'](function(){return _0x99d3a2;})[_0xb99f('0x1a')](function(_0x4dd50b){logger[_0xb99f('0x16')](_0x4dd50b);});})[_0xb99f('0x24')](respondWithStatusCode(_0x2aaa7c,0xc8))[_0xb99f('0x1a')](handleError(_0x2aaa7c,null));};exports[_0xb99f('0x90')]=function(_0xfd996c,_0x19e721){return db[_0xb99f('0x5b')][_0xb99f('0x43')]({'where':{'id':_0xfd996c[_0xb99f('0x37')]['id']}})[_0xb99f('0x24')](handleEntityNotFound(_0x19e721,null))[_0xb99f('0x24')](function(_0x26266e){if(_0x26266e){return _0x26266e[_0xb99f('0x90')](_0xfd996c[_0xb99f('0x45')][_0xb99f('0x91')],_[_0xb99f('0x92')](_0xfd996c['body'],[_0xb99f('0x91'),'id'])||{});}})['then'](respondWithResult(_0x19e721,null))[_0xb99f('0x1a')](handleError(_0x19e721,null));};exports[_0xb99f('0x93')]=function(_0x14d71e,_0x2c6de7){var _0xd8e312={'raw':![],'where':{}};var _0x37c51d={};var _0x18c139={'count':0x0,'rows':[]};return db['ChatInteraction']['findOne']({'where':{'id':_0x14d71e[_0xb99f('0x37')]['id']}})[_0xb99f('0x24')](handleEntityNotFound(_0x2c6de7,null))[_0xb99f('0x24')](function(_0x49da1b){if(_0x49da1b){_0x37c51d['model']=_[_0xb99f('0x39')](db[_0xb99f('0x5b')][_0xb99f('0x30')]);_0x37c51d[_0xb99f('0x3a')]=_[_0xb99f('0x39')](_0x14d71e[_0xb99f('0x3a')]);_0x37c51d[_0xb99f('0x3b')]=_[_0xb99f('0x3c')](_0x37c51d[_0xb99f('0x38')],_0x37c51d['query']);_0xd8e312['attributes']=_[_0xb99f('0x3c')](_0x37c51d[_0xb99f('0x38')],qs['fields'](_0x14d71e['query']['fields']));_0xd8e312[_0xb99f('0x3e')]=_0xd8e312[_0xb99f('0x3e')][_0xb99f('0x3f')]?_0xd8e312['attributes']:_0x37c51d['model'];if(!_0x14d71e['query'][_0xb99f('0x94')]('nolimit')){_0xd8e312[_0xb99f('0x95')]=qs[_0xb99f('0x95')](_0x14d71e[_0xb99f('0x3a')][_0xb99f('0x95')]);_0xd8e312['offset']=qs['offset'](_0x14d71e[_0xb99f('0x3a')][_0xb99f('0x1d')]);}_0xd8e312[_0xb99f('0x96')]=qs[_0xb99f('0x97')](_0x14d71e[_0xb99f('0x3a')][_0xb99f('0x97')]);_0xd8e312['where']=qs[_0xb99f('0x3b')](_['pick'](_0x14d71e[_0xb99f('0x3a')],_0x37c51d[_0xb99f('0x3b')]));_0xd8e312[_0xb99f('0x98')]['ChatInteractionId']=_0x49da1b['id'];if(_0x14d71e['query'][_0xb99f('0x99')]){_0xd8e312[_0xb99f('0x98')]=_[_0xb99f('0x28')](_0xd8e312['where'],{'$or':_[_0xb99f('0x2e')](_0xd8e312['attributes'],function(_0x120e7f){var _0x2413c9={};_0x2413c9[_0x120e7f]={'$like':'%'+_0x14d71e['query'][_0xb99f('0x99')]+'%'};return _0x2413c9;})});}if(_0x14d71e[_0xb99f('0x3a')][_0xb99f('0x9a')]){var _0x77cf38=_0x14d71e[_0xb99f('0x3a')][_0xb99f('0x9a')][_0xb99f('0x9b')](',');var _0x3beec4={};_0x3beec4[_0x77cf38[0x0]]={'$gte':moment(_0x77cf38[0x1])[_0xb99f('0x76')](_0xb99f('0x9c'))};_0xd8e312[_0xb99f('0x98')]=_[_0xb99f('0x28')](_0xd8e312[_0xb99f('0x98')],_0x3beec4);}_0xd8e312=_[_0xb99f('0x28')]({},_0xd8e312,_0x14d71e['options']);return db[_0xb99f('0x5b')][_0xb99f('0x1f')]({'where':_0xd8e312[_0xb99f('0x98')]})['then'](function(_0x690797){_0x18c139[_0xb99f('0x1f')]=_0x690797;if(_0x14d71e['query']['includeAll']){_0xd8e312[_0xb99f('0x41')]=[{'all':!![]}];}return db[_0xb99f('0x5b')][_0xb99f('0x33')](_0xd8e312);})[_0xb99f('0x24')](function(_0x2487ff){_0x18c139[_0xb99f('0x9d')]=_0x2487ff;return _0x18c139;});}})[_0xb99f('0x24')](respondWithFilteredResult(_0x2c6de7,_0xd8e312))[_0xb99f('0x1a')](handleError(_0x2c6de7,null));};exports[_0xb99f('0x9e')]=function(_0x1423c0,_0x4a6031){var _0x34c39a={'where':{}},_0x5f3b17={},_0x18aaa6={'count':0x0,'rows':[]};return db[_0xb99f('0x2f')]['findOne']({'where':{'id':_0x1423c0['params']['id']}})['then'](handleEntityNotFound(_0x4a6031,null))[_0xb99f('0x24')](function(_0x3ab10d){if(_0x3ab10d){_0x5f3b17[_0xb99f('0x38')]=_[_0xb99f('0x39')](db['ChatMessage']['rawAttributes']);_0x5f3b17['query']=_['keys'](_0x1423c0[_0xb99f('0x3a')]);_0x5f3b17[_0xb99f('0x3b')]=_[_0xb99f('0x3c')](_0x5f3b17[_0xb99f('0x38')],_0x5f3b17[_0xb99f('0x3a')]);_0x34c39a[_0xb99f('0x3e')]=_['intersection'](_0x5f3b17[_0xb99f('0x38')],qs[_0xb99f('0x3d')](_0x1423c0[_0xb99f('0x3a')][_0xb99f('0x3d')]));_0x34c39a[_0xb99f('0x3e')]=_0x34c39a['attributes']['length']?_0x34c39a[_0xb99f('0x3e')]:_0x5f3b17[_0xb99f('0x38')];if(!_0x1423c0[_0xb99f('0x3a')][_0xb99f('0x94')](_0xb99f('0x9f'))){_0x34c39a[_0xb99f('0x95')]=qs['limit'](_0x1423c0[_0xb99f('0x3a')][_0xb99f('0x95')]);_0x34c39a['offset']=qs[_0xb99f('0x1d')](_0x1423c0[_0xb99f('0x3a')][_0xb99f('0x1d')]);}_0x34c39a[_0xb99f('0x96')]=qs[_0xb99f('0x97')](_0x1423c0[_0xb99f('0x3a')]['sort']);_0x34c39a['where']=qs['filters'](_[_0xb99f('0xa0')](_0x1423c0[_0xb99f('0x3a')],_0x5f3b17[_0xb99f('0x3b')]));_0x34c39a['where']['ChatInteractionId']=_0x3ab10d['id'];if(_0x1423c0[_0xb99f('0x3a')][_0xb99f('0x99')]){_0x34c39a[_0xb99f('0x98')]=_['merge'](_0x34c39a[_0xb99f('0x98')],{'$or':_['map'](_0x34c39a[_0xb99f('0x3e')],function(_0x275203){var _0x34f15f={};_0x34f15f[_0x275203]={'$like':'%'+_0x1423c0['query'][_0xb99f('0x99')]+'%'};return _0x34f15f;})});}_0x34c39a[_0xb99f('0x98')][_0xb99f('0x86')]=![];if(_0x1423c0[_0xb99f('0x3a')]['id']){_0x34c39a['where']['id']={'$gt':_0x1423c0[_0xb99f('0x3a')]['id']};}_0x34c39a=_['merge']({},_0x34c39a,_0x1423c0[_0xb99f('0x42')]);return db[_0xb99f('0x5b')][_0xb99f('0x1f')]({'where':_0x34c39a[_0xb99f('0x98')]})[_0xb99f('0x24')](function(_0x39cf64){_0x18aaa6['count']=_0x39cf64;_0x34c39a['include']=[];if(_0x1423c0[_0xb99f('0x3a')][_0xb99f('0xa1')]){_0x34c39a[_0xb99f('0x41')][_0xb99f('0xa2')]({'model':db['User'],'as':'User','attributes':['id',_0xb99f('0x4f'),'alias']});}if(_0x1423c0[_0xb99f('0x3a')][_0xb99f('0x40')]){_0x34c39a[_0xb99f('0x41')]=[{'all':!![]}];}return db['ChatMessage'][_0xb99f('0x33')](_0x34c39a);})['then'](function(_0x4c6ba7){_0x18aaa6[_0xb99f('0x9d')]=_0x4c6ba7;return _0x18aaa6;});}})[_0xb99f('0x24')](respondWithFilteredResult(_0x4a6031,_0x34c39a))[_0xb99f('0x1a')](handleError(_0x4a6031,null));};exports['addTags']=function(_0x5da703,_0x75de8){return db['ChatInteraction'][_0xb99f('0x43')]({'where':{'id':_0x5da703[_0xb99f('0x37')]['id']}})[_0xb99f('0x24')](handleEntityNotFound(_0x75de8,null))[_0xb99f('0x24')](function(_0x1d99b9){if(_0x1d99b9){return _0x1d99b9[_0xb99f('0xa3')](_0x5da703[_0xb99f('0x45')]['ids'],_[_0xb99f('0x92')](_0x5da703[_0xb99f('0x45')],[_0xb99f('0x91'),'id'])||{})[_0xb99f('0xa4')](function(){return db[_0xb99f('0xa5')][_0xb99f('0x33')]({'attributes':['id',_0xb99f('0x26'),_0xb99f('0xa6')],'where':{'id':_0x5da703[_0xb99f('0x45')][_0xb99f('0x91')]}});})[_0xb99f('0x24')](function(_0x301e99){socket[_0xb99f('0xa7')](_0xb99f('0xa8'),{'id':Number(_0x5da703['params']['id']),'tags':_0x301e99||[]});return{'id':Number(_0x5da703[_0xb99f('0x37')]['id']),'tags':_0x301e99||[]};});}})[_0xb99f('0x24')](respondWithResult(_0x75de8,null))[_0xb99f('0x1a')](handleError(_0x75de8,null));};exports[_0xb99f('0xa9')]=function(_0x5271c0,_0x19e425){return db[_0xb99f('0x2f')][_0xb99f('0x43')]({'where':{'id':_0x5271c0[_0xb99f('0x37')]['id']}})[_0xb99f('0x24')](handleEntityNotFound(_0x19e425,null))[_0xb99f('0x24')](function(_0xfe3502){if(_0xfe3502){return _0xfe3502[_0xb99f('0xa9')](_0x5271c0[_0xb99f('0x3a')][_0xb99f('0x91')]);}})[_0xb99f('0x24')](respondWithStatusCode(_0x19e425,null))[_0xb99f('0x1a')](handleError(_0x19e425,null));};exports['download']=function(_0x260f0d,_0x3601d2){var _0x48c021=moment()[_0xb99f('0xaa')]()['toString']();var _0x5173d5=path[_0xb99f('0x6f')](config[_0xb99f('0x70')],_0xb99f('0xab'),'files',_0xb99f('0xac'));var _0x5b81be=path[_0xb99f('0x6f')](config[_0xb99f('0x70')],_0xb99f('0xab'),'files',_0xb99f('0xad'));var _0x527535=path[_0xb99f('0x6f')](_0x5173d5,_0x48c021);var _0x1d1df4=util['format'](_0xb99f('0xae'),_0x260f0d[_0xb99f('0x37')]['id'],_0x48c021);var _0x233059=path['join'](_0x5173d5,_0x1d1df4);var _0x4319b5=[];_0x4319b5[_0xb99f('0xa2')]({'model':db[_0xb99f('0x79')],'as':_0xb99f('0x79'),'attributes':['id',_0xb99f('0x4f')],'raw':!![]});_0x4319b5[_0xb99f('0xa2')]({'model':db[_0xb99f('0x5d')],'as':_0xb99f('0x5e'),'attributes':['id',_0xb99f('0xaf'),'lastName'],'raw':!![]});if(_0x260f0d['query'][_0xb99f('0xad')]){_0x4319b5[_0xb99f('0xa2')]({'model':db[_0xb99f('0x6c')],'as':_0xb99f('0x6c'),'raw':!![]});}var _0x80bbde=[{'model':db[_0xb99f('0x5b')],'as':'Messages','attributes':['id',_0xb99f('0x45'),_0xb99f('0xb0'),_0xb99f('0x85'),_0xb99f('0x86'),_0xb99f('0xb1')],'include':_0x4319b5}];_0x80bbde[_0xb99f('0xa2')]({'model':db[_0xb99f('0x4a')],'as':_0xb99f('0xb2'),'attributes':['id',_0xb99f('0x26')]});_0x80bbde[_0xb99f('0xa2')]({'model':db[_0xb99f('0x79')],'as':_0xb99f('0xb3'),'attributes':['id',_0xb99f('0x4f')]});return db[_0xb99f('0x2f')]['find']({'where':{'id':_0x260f0d[_0xb99f('0x37')]['id']},'include':_0x80bbde})[_0xb99f('0x24')](handleEntityNotFound(_0x3601d2,null))[_0xb99f('0x24')](function(_0x5f0f44){if(_0x5f0f44){var _0x2aa5c3=_0x5f0f44[_0xb99f('0xb4')]({'plain':!![]});fs[_0xb99f('0xb5')](_0x527535);var _0x2bb3e7={'channel':_0xb99f('0xb6'),'account':_0x2aa5c3['Account'][_0xb99f('0x26')],'agent':_0x2aa5c3[_0xb99f('0xb3')]?_0x2aa5c3[_0xb99f('0xb3')][_0xb99f('0x4f')]:'N.A.','createdAt':moment(_0x2aa5c3[_0xb99f('0xb0')])['format']('YYYY-MM-DD\x20HH:mm:ss')['toString'](),'closedAt':_0x2aa5c3[_0xb99f('0x61')]?moment(_0x2aa5c3[_0xb99f('0xb7')])['format'](_0xb99f('0x9c'))[_0xb99f('0xb8')]():'','disposition':_0x2aa5c3['disposition'],'chatInfo':{'browser':_0x2aa5c3[_0xb99f('0xb9')],'os':_0x2aa5c3[_0xb99f('0xba')],'referer':_0x2aa5c3[_0xb99f('0xbb')],'customerIp':_0x2aa5c3[_0xb99f('0xbc')],'customerPort':_0x2aa5c3[_0xb99f('0xbd')]?_0x2aa5c3['customerPort']:_0xb99f('0xbe')},'messages':_(_0x2aa5c3['Messages'])['tail']()['filter']({'secret':![]})[_0xb99f('0x2e')](function(_0x46e368){if(_0x46e368[_0xb99f('0x6c')]){var _0x50003f=path[_0xb99f('0x6f')](_0x5b81be,_0x46e368[_0xb99f('0x6c')][_0xb99f('0x67')]);if(fs[_0xb99f('0xbf')](_0x50003f)){fs[_0xb99f('0xc0')](_0x50003f)[_0xb99f('0xc1')](fs[_0xb99f('0xc2')](path[_0xb99f('0x6f')](_0x527535,_0x46e368[_0xb99f('0x6c')][_0xb99f('0x67')])));}}return{'date':moment(_0x46e368[_0xb99f('0xb0')])[_0xb99f('0x76')](_0xb99f('0x9c'))[_0xb99f('0xb8')](),'sender':_0x46e368[_0xb99f('0x85')]===_0xb99f('0x5a')?_0x46e368[_0xb99f('0x79')]?_0x46e368[_0xb99f('0x79')][_0xb99f('0x4f')]:'System':_0x46e368[_0xb99f('0x5e')][_0xb99f('0xaf')]+(_0x46e368[_0xb99f('0x5e')][_0xb99f('0xc3')]?'\x20'+_0x46e368[_0xb99f('0x5e')][_0xb99f('0xc3')]:''),'body':_0x46e368[_0xb99f('0x6c')]?_0x46e368[_0xb99f('0x6c')]['basename']:_0x46e368[_0xb99f('0x45')],'direction':_0x46e368[_0xb99f('0x85')]===_0xb99f('0x5a')?'A':'C','secret':_0x46e368[_0xb99f('0x86')],'read':_0x46e368[_0xb99f('0xb1')],'attachment':_0x46e368[_0xb99f('0x6c')]};})['value']()};return ejs[_0xb99f('0xc4')](path['join'](config['root'],_0xb99f('0xab'),_0xb99f('0xc5'),_0xb99f('0xc6')),{'interaction':_0x2bb3e7})[_0xb99f('0x24')](function(_0x5d0d99){var _0x411075=path[_0xb99f('0x6f')](_0x527535,_0xb99f('0xc7')+_0x2aa5c3['id']+'-'+_0x48c021+_0xb99f('0xc8'));var _0x2ecce5={'path':_0x411075,'channel':_0xb99f('0xb6'),'interactionId':_0x2aa5c3['id']};return pdf[_0xb99f('0xc9')](_0x5d0d99,_0x2ecce5);})[_0xb99f('0x24')](function(){return new Promise(function(_0x55ab29,_0x5a967b){zipdir(_0x527535,{'saveTo':_0x233059},function(_0x3e9452,_0x29e62f){if(_0x3e9452)return _0x5a967b(_0x3e9452);return _0x55ab29(_0x29e62f);});})[_0xb99f('0x24')](function(){return new BPromise(function(_0x39d49d,_0x116299){rimraf(_0x527535,function(_0x46d738){if(_0x46d738)_0x116299(_0x46d738);return _0x39d49d();});});})[_0xb99f('0x24')](function(){return _0x3601d2[_0xb99f('0x73')](_0x233059,_0x1d1df4,function(_0x194490){if(_0x194490){logger['error']('err',_0x194490);}else{fs[_0xb99f('0xca')](_0x233059);}});});});}else{return _0x3601d2[_0xb99f('0x1b')](0xc8);}})[_0xb99f('0x1a')](handleError(_0x3601d2,null));};