5b4cde8b3777a135f89c3ae24ac5daf2b5c71304
[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 _0x1c5e=['file','originalname','basename','filename','type','mimetype','closed','Unauthorized','Attachment','attachId','ChatOfflineMessageId','join','root','server/files/attachments/','download','close','mailTranscript','server/files/chat/upload/','transcript-%s.txt','now','pathTranscript','ChatMessage','Messages','User','ContactId','%s%d','agentAlias','System','customer','format','Visitor','agentIdentifier','website_alias','agent_alias','alias','agent_fullname','createdAt','MM/DD/YYYY\x20HH:mm:ss','direction','secret','appendFileSync','MailServerOut','Smtp','CloudProvider','getSmtpOptions','\x22%s\x22\x20<%s>','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','omit','ids','getMessages','keys','nolimit','order','sort','where','pick','ChatInteractionId','filter','map','$gte','getMyMessages','hasOwnProperty','includeAgent','push','spread','Tag','color','emit','removeTags','unix','toString','server','files','tmp','attachments','firstName','lastName','read','Account','Owner','get','mkdirSync','N.A.','YYYY-MM-DD\x20HH:mm:ss','closedAt','browserName','osName','referer','customerIp','customerPort','tail','pipe','createWriteStream','renderFile','views','downloadInteraction.ejs','transcript-','.pdf','Chat','createPdfFromHTML','err','unlinkSync','rimraf','zip-dir','request-promise','bluebird','util','path','ejs','lodash','ioredis','../../components/parsers/qs','../../components/export/pdf','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInteraction.socket','jayson/promise','http','request','then','info','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','ChatInteraction,\x20%s,\x20%s','message','result','sendStatus','status','json','offset','limit','undefined','count','set','Content-Range','update','destroy','end','stack','name','send','render','contact','agent','interaction','account','index','rawAttributes','fieldName','key','getOptions','findAll','chat','catch','show','model','ChatInteraction','query','filters','intersection','attributes','fields','length','includeAll','include','merge','options','create','body','params','find','describe','createVidaooSession','findOne','ChatWebsite','ChatWebsiteId','vidaooApiKey','vidaooEscalation','vidaooTopic','vidaooMetadata','user','fullname','email','POST','https://api-vidaoo.xcally.com/api/v1/meetings','isNull','vidaooNote','follow','parse','metadata','Sequelize','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','Error\x20in\x20Vidaoo\x20configuration','join_url','out','Unable\x20to\x20create\x20Vidaoo\x20session','customUpdate','CmContact','Contact','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','UserId','Interaction\x20already\x20assigned','disposition','AbandonInteraction','abandon'];(function(_0x1c098c,_0x26572d){var _0x866a83=function(_0x36e84b){while(--_0x36e84b){_0x1c098c['push'](_0x1c098c['shift']());}};_0x866a83(++_0x26572d);}(_0x1c5e,0x141));var _0xe1c5=function(_0x1c8c2f,_0x1d99fe){_0x1c8c2f=_0x1c8c2f-0x0;var _0x24fa67=_0x1c5e[_0x1c8c2f];return _0x24fa67;};'use strict';var rimraf=require(_0xe1c5('0x0'));var zipdir=require(_0xe1c5('0x1'));var rp=require(_0xe1c5('0x2'));var moment=require('moment');var BPromise=require(_0xe1c5('0x3'));var Mustache=require('mustache');var util=require(_0xe1c5('0x4'));var path=require(_0xe1c5('0x5'));var ejs=require(_0xe1c5('0x6'));var fs=require('fs');var _=require(_0xe1c5('0x7'));var Redis=require(_0xe1c5('0x8'));var interaction=require('../../components/interaction/service');var qs=require(_0xe1c5('0x9'));var pdf=require(_0xe1c5('0xa'));var logger=require(_0xe1c5('0xb'))(_0xe1c5('0xc'));var config=require(_0xe1c5('0xd'));var db=require(_0xe1c5('0xe'))['db'];config[_0xe1c5('0xf')]=_[_0xe1c5('0x10')](config['redis'],{'host':_0xe1c5('0x11'),'port':0x18eb});var socket=require(_0xe1c5('0x12'))(new Redis(config['redis']));require(_0xe1c5('0x13'))['register'](socket);var jayson=require(_0xe1c5('0x14'));var client=jayson['client'][_0xe1c5('0x15')]({'port':0x232b});var client9004=jayson['client']['http']({'port':0x232c});function respondWithRpcPromise(_0x3c5001,_0x61adc1,_0x3a0b98,_0x1c5ecf){return new BPromise(function(_0x1bfc69,_0x28f153){var _0x5d0fdd=_0x1c5ecf||client;return _0x5d0fdd[_0xe1c5('0x16')](_0x3c5001,_0x3a0b98)[_0xe1c5('0x17')](function(_0x4617c6){logger[_0xe1c5('0x18')]('ChatInteraction,\x20%s,\x20%s',_0x61adc1,'request\x20sent');logger['debug'](_0xe1c5('0x19'),_0x61adc1,'request\x20sent',JSON[_0xe1c5('0x1a')](_0x4617c6));if(_0x4617c6['error']){if(_0x4617c6[_0xe1c5('0x1b')][_0xe1c5('0x1c')]===0x1f4){logger[_0xe1c5('0x1b')](_0xe1c5('0x1d'),_0x61adc1,_0x4617c6[_0xe1c5('0x1b')][_0xe1c5('0x1e')]);return _0x28f153(_0x4617c6[_0xe1c5('0x1b')][_0xe1c5('0x1e')]);}logger[_0xe1c5('0x1b')](_0xe1c5('0x1d'),_0x61adc1,_0x4617c6[_0xe1c5('0x1b')]['message']);return _0x1bfc69(_0x4617c6[_0xe1c5('0x1b')][_0xe1c5('0x1e')]);}else{logger[_0xe1c5('0x18')]('ChatInteraction,\x20%s,\x20%s',_0x61adc1,'request\x20sent');_0x1bfc69(_0x4617c6[_0xe1c5('0x1f')][_0xe1c5('0x1e')]);}})['catch'](function(_0x227cf3){logger[_0xe1c5('0x1b')]('ChatInteraction,\x20%s,\x20%s',_0x61adc1,_0x227cf3);_0x28f153(_0x227cf3);});});}function respondWithStatusCode(_0x3b727d,_0x40e9b7){_0x40e9b7=_0x40e9b7||0xcc;return function(_0x416f2d){if(_0x416f2d){return _0x3b727d[_0xe1c5('0x20')](_0x40e9b7);}return _0x3b727d[_0xe1c5('0x21')](_0x40e9b7)['end']();};}function respondWithResult(_0x23a62f,_0x150fee){_0x150fee=_0x150fee||0xc8;return function(_0x596fda){if(_0x596fda){return _0x23a62f['status'](_0x150fee)[_0xe1c5('0x22')](_0x596fda);}};}function respondWithFilteredResult(_0x2a4419,_0x5057e2){return function(_0x53a902){if(_0x53a902){var _0xfa83c3=typeof _0x5057e2[_0xe1c5('0x23')]==='undefined'&&typeof _0x5057e2[_0xe1c5('0x24')]===_0xe1c5('0x25');var _0x159be3=_0x53a902[_0xe1c5('0x26')];var _0x31fd80=_0xfa83c3?0x0:_0x5057e2[_0xe1c5('0x23')];var _0x1dc9cd=_0xfa83c3?_0x53a902[_0xe1c5('0x26')]:_0x5057e2[_0xe1c5('0x23')]+_0x5057e2[_0xe1c5('0x24')];var _0x2d4a19;if(_0x1dc9cd>=_0x159be3){_0x1dc9cd=_0x159be3;_0x2d4a19=0xc8;}else{_0x2d4a19=0xce;}_0x2a4419['status'](_0x2d4a19);return _0x2a4419[_0xe1c5('0x27')](_0xe1c5('0x28'),_0x31fd80+'-'+_0x1dc9cd+'/'+_0x159be3)[_0xe1c5('0x22')](_0x53a902);}return null;};}function saveUpdates(_0x1f8436){return function(_0x5129eb){if(_0x5129eb){return _0x5129eb[_0xe1c5('0x29')](_0x1f8436)[_0xe1c5('0x17')](function(_0xa22482){return _0xa22482;});}return null;};}function removeEntity(_0x4450f6){return function(_0x4b7163){if(_0x4b7163){return _0x4b7163[_0xe1c5('0x2a')]()[_0xe1c5('0x17')](function(){_0x4450f6[_0xe1c5('0x21')](0xcc)[_0xe1c5('0x2b')]();});}};}function handleEntityNotFound(_0x381775){return function(_0x25427e){if(!_0x25427e){_0x381775[_0xe1c5('0x20')](0x194);}return _0x25427e;};}function handleError(_0x15486a,_0x24e46b){_0x24e46b=_0x24e46b||0x1f4;return function(_0x50214c){logger[_0xe1c5('0x1b')](_0x50214c[_0xe1c5('0x2c')]);if(_0x50214c[_0xe1c5('0x2d')]){delete _0x50214c[_0xe1c5('0x2d')];}_0x15486a[_0xe1c5('0x21')](_0x24e46b)[_0xe1c5('0x2e')](_0x50214c);};}function getMustacheRender(_0x5937c2,_0x386618){return Mustache[_0xe1c5('0x2f')](_0x5937c2,_['merge'](_0x386618['body'],{'contact':_0x386618[_0xe1c5('0x30')],'message':_0x386618[_0xe1c5('0x1e')],'agent':_0x386618[_0xe1c5('0x31')],'interaction':_0x386618[_0xe1c5('0x32')],'account':_0x386618[_0xe1c5('0x33')]}))||'';}exports[_0xe1c5('0x34')]=function(_0x27616f,_0x295f1f){var _0x22d8a4={};var _0x3e48cf=_['map'](db['ChatInteraction'][_0xe1c5('0x35')],function(_0x23519c){return{'name':_0x23519c[_0xe1c5('0x36')],'type':_0x23519c['type'][_0xe1c5('0x37')]};});_0x22d8a4=qs[_0xe1c5('0x38')](_0x3e48cf,_0x27616f);return interaction[_0xe1c5('0x39')](_0xe1c5('0x3a'),_0x27616f['query'],_0x27616f['user'],_0x22d8a4,_0x3e48cf)[_0xe1c5('0x17')](respondWithFilteredResult(_0x295f1f,_0x22d8a4))[_0xe1c5('0x3b')](handleError(_0x295f1f,null));};exports[_0xe1c5('0x3c')]=function(_0x2eb0c0,_0x3bfa87){var _0x50949f={'raw':![],'where':{'id':_0x2eb0c0['params']['id']}},_0x4d795d={};_0x4d795d[_0xe1c5('0x3d')]=_['keys'](db[_0xe1c5('0x3e')][_0xe1c5('0x35')]);_0x4d795d['query']=_['keys'](_0x2eb0c0[_0xe1c5('0x3f')]);_0x4d795d[_0xe1c5('0x40')]=_[_0xe1c5('0x41')](_0x4d795d['model'],_0x4d795d['query']);_0x50949f[_0xe1c5('0x42')]=_[_0xe1c5('0x41')](_0x4d795d['model'],qs[_0xe1c5('0x43')](_0x2eb0c0[_0xe1c5('0x3f')][_0xe1c5('0x43')]));_0x50949f[_0xe1c5('0x42')]=_0x50949f[_0xe1c5('0x42')][_0xe1c5('0x44')]?_0x50949f[_0xe1c5('0x42')]:_0x4d795d['model'];if(_0x2eb0c0['query'][_0xe1c5('0x45')]){_0x50949f[_0xe1c5('0x46')]=[{'all':!![]}];}_0x50949f=_[_0xe1c5('0x47')]({},_0x50949f,_0x2eb0c0[_0xe1c5('0x48')]);return db[_0xe1c5('0x3e')]['find'](_0x50949f)[_0xe1c5('0x17')](handleEntityNotFound(_0x3bfa87,null))[_0xe1c5('0x17')](respondWithResult(_0x3bfa87,null))[_0xe1c5('0x3b')](handleError(_0x3bfa87,null));};exports[_0xe1c5('0x49')]=function(_0x5a4bd7,_0x46ab67){return db[_0xe1c5('0x3e')][_0xe1c5('0x49')](_0x5a4bd7[_0xe1c5('0x4a')],{})[_0xe1c5('0x17')](respondWithResult(_0x46ab67,0xc9))[_0xe1c5('0x3b')](handleError(_0x46ab67,null));};exports['update']=function(_0x5333d8,_0xf837bf){if(_0x5333d8[_0xe1c5('0x4a')]['id']){delete _0x5333d8[_0xe1c5('0x4a')]['id'];}return db['ChatInteraction']['find']({'where':{'id':_0x5333d8[_0xe1c5('0x4b')]['id']}})['then'](handleEntityNotFound(_0xf837bf,null))[_0xe1c5('0x17')](saveUpdates(_0x5333d8[_0xe1c5('0x4a')],null))['then'](respondWithResult(_0xf837bf,null))[_0xe1c5('0x3b')](handleError(_0xf837bf,null));};exports['destroy']=function(_0x14a5d2,_0x113a61){return db['ChatInteraction'][_0xe1c5('0x4c')]({'where':{'id':_0x14a5d2[_0xe1c5('0x4b')]['id']}})[_0xe1c5('0x17')](handleEntityNotFound(_0x113a61,null))[_0xe1c5('0x17')](removeEntity(_0x113a61,null))[_0xe1c5('0x3b')](handleError(_0x113a61,null));};exports[_0xe1c5('0x4d')]=function(_0x1ac20a,_0x35562a){return db[_0xe1c5('0x3e')][_0xe1c5('0x4d')]()[_0xe1c5('0x17')](respondWithResult(_0x35562a,null))[_0xe1c5('0x3b')](handleError(_0x35562a,null));};exports[_0xe1c5('0x4e')]=function(_0x423ec4,_0x18c0f2){var _0x43ca42=_0x423ec4[_0xe1c5('0x4b')]['id'];var _0x2feef1;var _0xccfc66;var _0x409ed5;return db[_0xe1c5('0x3e')][_0xe1c5('0x4f')]({'where':{'id':_0x43ca42}})[_0xe1c5('0x17')](function(_0xccd9d4){_0x2feef1=_0xccd9d4;return db[_0xe1c5('0x50')][_0xe1c5('0x4f')]({'where':{'id':_0xccd9d4[_0xe1c5('0x51')]},'attributes':['id',_0xe1c5('0x52'),_0xe1c5('0x53'),_0xe1c5('0x54'),'vidaooNote',_0xe1c5('0x55')],'raw':!![]});})[_0xe1c5('0x17')](function(_0x1a4adc){if(_0x1a4adc&&_0x1a4adc[_0xe1c5('0x52')]&&_0x1a4adc[_0xe1c5('0x53')]){_0xccfc66=_0x1a4adc;var _0xf42583={'interaction':{'id':_0x43ca42},'agent':{'id':_0x423ec4[_0xe1c5('0x56')]['id'],'name':_0x423ec4[_0xe1c5('0x56')]['name'],'fullname':_0x423ec4[_0xe1c5('0x56')][_0xe1c5('0x57')],'email':_0x423ec4[_0xe1c5('0x56')][_0xe1c5('0x58')]},'contact':_0x423ec4[_0xe1c5('0x4a')][_0xe1c5('0x30')],'account':_0x423ec4[_0xe1c5('0x4a')][_0xe1c5('0x33')]};var _0x2cb630={'rejectUnauthorized':![],'method':_0xe1c5('0x59'),'url':_0xe1c5('0x5a'),'headers':{'X-APIKEY':_0x1a4adc[_0xe1c5('0x52')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x423ec4[_0xe1c5('0x56')][_0xe1c5('0x58')]],'buttons':null,'topic':_0xccfc66[_0xe1c5('0x54')],'note':_[_0xe1c5('0x5b')](_0xccfc66[_0xe1c5('0x5c')])?null:getMustacheRender(_0xccfc66['vidaooNote'],_0xf42583),'metadata':null},'redirect':_0xe1c5('0x5d'),'json':!![]};try{if(!_[_0xe1c5('0x5b')](_0xccfc66[_0xe1c5('0x55')])){var _0x43e61d=getMustacheRender(_0xccfc66[_0xe1c5('0x55')],_0xf42583);var _0x3fc8f3=JSON[_0xe1c5('0x5e')](_0x43e61d);_0x2cb630[_0xe1c5('0x4a')][_0xe1c5('0x5f')]=_0x3fc8f3;}}catch(_0x833698){throw new db[(_0xe1c5('0x60'))][(_0xe1c5('0x61'))](_0xe1c5('0x62'));}return rp(_0x2cb630);}else{throw new db[(_0xe1c5('0x60'))]['ValidationError'](_0xe1c5('0x63'));}})[_0xe1c5('0x17')](function(_0x12313c){_0x409ed5=_0x12313c;if(_0x409ed5['id']){var _0x4cb1de={'body':_0x409ed5[_0xe1c5('0x64')],'ChatWebsiteId':_0xccfc66['id'],'ChatInteractionId':_0x2feef1['id'],'direction':_0xe1c5('0x65'),'UserId':_0x423ec4[_0xe1c5('0x56')]['id']};return db['ChatMessage']['create'](_0x4cb1de,{});}else{throw new db['Sequelize'][(_0xe1c5('0x61'))](_0xe1c5('0x66'));}})[_0xe1c5('0x17')](function(){return _0x2feef1['updateAttributes']({'vidaooSessionId':_0x409ed5['id']});})[_0xe1c5('0x17')](respondWithResult(_0x18c0f2,null))[_0xe1c5('0x3b')](handleError(_0x18c0f2,null));};exports[_0xe1c5('0x67')]=function(_0x8b1a66,_0x1a8f55){if(_0x8b1a66[_0xe1c5('0x4a')]['id']){delete _0x8b1a66[_0xe1c5('0x4a')]['id'];}return db[_0xe1c5('0x3e')][_0xe1c5('0x4c')]({'where':{'id':_0x8b1a66[_0xe1c5('0x4b')]['id']},'include':[{'model':db[_0xe1c5('0x68')],'as':_0xe1c5('0x69')}]})[_0xe1c5('0x17')](handleEntityNotFound(_0x1a8f55,null))[_0xe1c5('0x17')](saveUpdates(_0x8b1a66[_0xe1c5('0x4a')],null))[_0xe1c5('0x17')](respondWithResult(_0x1a8f55,null))[_0xe1c5('0x3b')](handleError(_0x1a8f55,null));};exports['abandon']=function(_0x5b9d3e,_0x1afc3f){if(_0x5b9d3e[_0xe1c5('0x4a')]['id']){delete _0x5b9d3e[_0xe1c5('0x4a')]['id'];}return db['ChatInteraction'][_0xe1c5('0x4c')]({'where':{'id':_0x5b9d3e[_0xe1c5('0x4b')]['id']}})[_0xe1c5('0x17')](function(_0xad7104){if(!_0xad7104){logger[_0xe1c5('0x1b')](_0xe1c5('0x6a'),'abandon',0x194,_0xe1c5('0x6b'));_0x1afc3f[_0xe1c5('0x20')](0x194);}else{if(_0xad7104[_0xe1c5('0x6c')]){throw new db['Sequelize']['ValidationError'](_0xe1c5('0x6d'));}}return _0xad7104;})[_0xe1c5('0x17')](function(_0x4e7a16){if(_0x4e7a16){return _0x4e7a16[_0xe1c5('0x29')]({'closed':_0x5b9d3e[_0xe1c5('0x4a')]['closed'],'disposition':_0x5b9d3e[_0xe1c5('0x4a')][_0xe1c5('0x6e')]})['then'](function(_0x9a4408){return _0x9a4408;});}})['then'](function(){return respondWithRpcPromise(_0xe1c5('0x6f'),_0xe1c5('0x70'),_0x5b9d3e[_0xe1c5('0x4a')],client9004);})[_0xe1c5('0x17')](respondWithResult(_0x1afc3f,null))['catch'](handleError(_0x1afc3f,null));};exports['attachmentUpload']=function(_0x38c8bb,_0x5211e3){_0x38c8bb[_0xe1c5('0x4a')][_0xe1c5('0x2d')]=_0x38c8bb[_0xe1c5('0x71')][_0xe1c5('0x72')];_0x38c8bb[_0xe1c5('0x4a')][_0xe1c5('0x73')]=_0x38c8bb[_0xe1c5('0x71')][_0xe1c5('0x74')];_0x38c8bb[_0xe1c5('0x4a')][_0xe1c5('0x75')]=_0x38c8bb[_0xe1c5('0x71')][_0xe1c5('0x76')];return db['Attachment']['create'](_0x38c8bb[_0xe1c5('0x4a')])['then'](respondWithResult(_0x5211e3,0xc9))[_0xe1c5('0x3b')](handleError(_0x5211e3,null));};exports['attachmentDownload']=function(_0x2dac9c,_0x440455){return db[_0xe1c5('0x3e')][_0xe1c5('0x4f')]({'where':{'id':_0x2dac9c[_0xe1c5('0x4b')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x440455,null))['then'](function(_0x3455f6){if(_0x3455f6){if(_0x3455f6[_0xe1c5('0x77')]){return _0x440455[_0xe1c5('0x21')](0x193)[_0xe1c5('0x22')]({'status':0x193,'message':_0xe1c5('0x78')});}return db[_0xe1c5('0x79')][_0xe1c5('0x4f')]({'where':{'id':_0x2dac9c[_0xe1c5('0x3f')][_0xe1c5('0x7a')]},'raw':!![]})['then'](handleEntityNotFound(_0x440455,null));}})[_0xe1c5('0x17')](function(_0x8b5907){if(_0x8b5907){var _0x24dcae=_0x8b5907[_0xe1c5('0x7b')]!==null;var _0x3e1736=path[_0xe1c5('0x7c')](config[_0xe1c5('0x7d')],_0xe1c5('0x7e'));if(_0x24dcae){_0x3e1736=path[_0xe1c5('0x7c')](_0x3e1736,'offline-chat/');}var _0x2759c3=path[_0xe1c5('0x7c')](_0x3e1736,_0x8b5907['basename']);return _0x440455[_0xe1c5('0x7f')](_0x2759c3);}})[_0xe1c5('0x3b')](handleError(_0x440455,null));};exports[_0xe1c5('0x80')]=function(_0x2cd61a,_0x3cbe48){var _0x42c57f=null;var _0x23b7e1=null;var _0x111df3=null;if(_0x2cd61a[_0xe1c5('0x4a')]['id']){delete _0x2cd61a['body']['id'];}if(_0x2cd61a[_0xe1c5('0x4a')][_0xe1c5('0x81')]){_0x111df3=path[_0xe1c5('0x7c')](config[_0xe1c5('0x7d')],_0xe1c5('0x82'),util['format'](_0xe1c5('0x83'),Date[_0xe1c5('0x84')]()));_0x2cd61a['body'][_0xe1c5('0x85')]=_0x111df3;}return db[_0xe1c5('0x3e')][_0xe1c5('0x4c')]({'where':{'id':_0x2cd61a['params']['id']},'include':[{'model':db[_0xe1c5('0x86')],'as':_0xe1c5('0x87'),'include':[{'model':db[_0xe1c5('0x88')],'as':_0xe1c5('0x88')}]}]})['then'](handleEntityNotFound(_0x3cbe48,null))[_0xe1c5('0x17')](saveUpdates(_0x2cd61a[_0xe1c5('0x4a')],null))[_0xe1c5('0x17')](function(_0x26bfa4){if(_0x26bfa4){_0x42c57f=_0x26bfa4;return db[_0xe1c5('0x50')][_0xe1c5('0x4c')]({'where':{'id':_0x42c57f[_0xe1c5('0x51')]}});}})[_0xe1c5('0x17')](function(_0x9d16fa){if(_0x9d16fa){_0x23b7e1=_0x9d16fa;return db[_0xe1c5('0x68')][_0xe1c5('0x4c')]({'where':{'id':_0x42c57f[_0xe1c5('0x89')]}});}})[_0xe1c5('0x17')](function(_0x4771cf){if(_0x4771cf){if(_0x111df3){var _0x2ac4aa=null;for(var _0x2d7e37=0x1;_0x2d7e37<_0x42c57f[_0xe1c5('0x87')][_0xe1c5('0x44')];++_0x2d7e37){_0x2ac4aa=_0x42c57f['Messages'][_0x2d7e37];var _0x471ad8=_0x2ac4aa['UserId']?util['format'](_0xe1c5('0x8a'),_0x23b7e1[_0xe1c5('0x8b')],_0x2ac4aa['UserId']):_0xe1c5('0x8c');var _0x208d50=_0x2cd61a[_0xe1c5('0x4a')][_0xe1c5('0x8d')]||util[_0xe1c5('0x8e')]('%s%d',_0xe1c5('0x8f'),_0x2ac4aa[_0xe1c5('0x89')]);switch(_0x23b7e1[_0xe1c5('0x90')]){case _0xe1c5('0x91'):_0x471ad8=_0x2ac4aa[_0xe1c5('0x6c')]?util[_0xe1c5('0x8e')](_0xe1c5('0x8a'),_0x23b7e1[_0xe1c5('0x8b')],_0x2ac4aa[_0xe1c5('0x6c')]):_0xe1c5('0x8c');break;case _0xe1c5('0x92'):_0x471ad8=_0x2ac4aa['UserId']?_0x2ac4aa[_0xe1c5('0x88')][_0xe1c5('0x93')]||_0x2ac4aa[_0xe1c5('0x88')][_0xe1c5('0x57')]:'System';break;case _0xe1c5('0x94'):_0x471ad8=_0x2ac4aa[_0xe1c5('0x6c')]?_0x2ac4aa[_0xe1c5('0x88')]['fullname']:'System';break;default:_0x471ad8=_0x2ac4aa[_0xe1c5('0x6c')]?util[_0xe1c5('0x8e')](_0xe1c5('0x8a'),_0x23b7e1[_0xe1c5('0x8b')],_0x2ac4aa[_0xe1c5('0x6c')]):_0xe1c5('0x8c');}var _0x2a7baa=util['format']('[%s]\x20%s:\x20%s\x0a',moment(_0x2ac4aa[_0xe1c5('0x95')])[_0xe1c5('0x8e')](_0xe1c5('0x96')),_0x2ac4aa[_0xe1c5('0x97')]==='in'?_0x208d50:_0x471ad8,_0x2ac4aa[_0xe1c5('0x4a')]);if(!_0x2ac4aa[_0xe1c5('0x98')]){fs[_0xe1c5('0x99')](_0x111df3,_0x2a7baa);}}return db['MailAccount']['findOne']({'where':{'service':!![]},'include':[{'model':db[_0xe1c5('0x9a')],'as':_0xe1c5('0x9b'),'raw':!![],'include':[{'model':db['CloudProvider'],'as':_0xe1c5('0x9c'),'raw':!![]}]}]});}}})[_0xe1c5('0x17')](function(_0x275a37){if(!_0x275a37||!_0x275a37[_0xe1c5('0x9b')]||!_0x2cd61a[_0xe1c5('0x4a')])return _0x42c57f;var _0x111adf=_0x275a37[_0xe1c5('0x9d')]();return respondWithRpcPromise('SendMail','sendMail',{'account':_0x111adf,'message':{'from':util[_0xe1c5('0x8e')](_0xe1c5('0x9e'),_0x275a37[_0xe1c5('0x2d')],_0x275a37[_0xe1c5('0x58')]||_0x275a37[_0xe1c5('0x9b')]['user']),'to':_0x2cd61a['body'][_0xe1c5('0x81')],'subject':_0xe1c5('0x9f'),'text':util[_0xe1c5('0x8e')](_0xe1c5('0xa0'),_0x2cd61a[_0xe1c5('0x4a')][_0xe1c5('0x81')]),'attachments':[{'path':_0x111df3}]}})[_0xe1c5('0x17')](function(){return _0x42c57f;})[_0xe1c5('0x3b')](function(_0x162121){logger[_0xe1c5('0x1b')](_0x162121);});})[_0xe1c5('0x17')](respondWithStatusCode(_0x3cbe48,0xc8))['catch'](handleError(_0x3cbe48,null));};exports[_0xe1c5('0xa1')]=function(_0x27dac5,_0x5c64ef){return db[_0xe1c5('0x86')][_0xe1c5('0x4c')]({'where':{'id':_0x27dac5[_0xe1c5('0x4b')]['id']}})['then'](handleEntityNotFound(_0x5c64ef,null))[_0xe1c5('0x17')](function(_0x461f09){if(_0x461f09){return _0x461f09[_0xe1c5('0xa1')](_0x27dac5['body']['ids'],_[_0xe1c5('0xa2')](_0x27dac5[_0xe1c5('0x4a')],[_0xe1c5('0xa3'),'id'])||{});}})[_0xe1c5('0x17')](respondWithResult(_0x5c64ef,null))['catch'](handleError(_0x5c64ef,null));};exports[_0xe1c5('0xa4')]=function(_0x4df487,_0x1ee4f1){var _0x50725d={'raw':![],'where':{}};var _0x472761={};var _0x4bebec={'count':0x0,'rows':[]};return db[_0xe1c5('0x3e')]['findOne']({'where':{'id':_0x4df487['params']['id']}})[_0xe1c5('0x17')](handleEntityNotFound(_0x1ee4f1,null))[_0xe1c5('0x17')](function(_0x515d8f){if(_0x515d8f){_0x472761[_0xe1c5('0x3d')]=_[_0xe1c5('0xa5')](db[_0xe1c5('0x86')][_0xe1c5('0x35')]);_0x472761['query']=_[_0xe1c5('0xa5')](_0x4df487[_0xe1c5('0x3f')]);_0x472761[_0xe1c5('0x40')]=_['intersection'](_0x472761[_0xe1c5('0x3d')],_0x472761[_0xe1c5('0x3f')]);_0x50725d[_0xe1c5('0x42')]=_[_0xe1c5('0x41')](_0x472761[_0xe1c5('0x3d')],qs[_0xe1c5('0x43')](_0x4df487[_0xe1c5('0x3f')][_0xe1c5('0x43')]));_0x50725d[_0xe1c5('0x42')]=_0x50725d[_0xe1c5('0x42')][_0xe1c5('0x44')]?_0x50725d['attributes']:_0x472761['model'];if(!_0x4df487['query']['hasOwnProperty'](_0xe1c5('0xa6'))){_0x50725d[_0xe1c5('0x24')]=qs[_0xe1c5('0x24')](_0x4df487[_0xe1c5('0x3f')][_0xe1c5('0x24')]);_0x50725d['offset']=qs[_0xe1c5('0x23')](_0x4df487[_0xe1c5('0x3f')][_0xe1c5('0x23')]);}_0x50725d[_0xe1c5('0xa7')]=qs[_0xe1c5('0xa8')](_0x4df487[_0xe1c5('0x3f')]['sort']);_0x50725d[_0xe1c5('0xa9')]=qs['filters'](_[_0xe1c5('0xaa')](_0x4df487[_0xe1c5('0x3f')],_0x472761[_0xe1c5('0x40')]));_0x50725d[_0xe1c5('0xa9')][_0xe1c5('0xab')]=_0x515d8f['id'];if(_0x4df487[_0xe1c5('0x3f')][_0xe1c5('0xac')]){_0x50725d['where']=_[_0xe1c5('0x47')](_0x50725d[_0xe1c5('0xa9')],{'$or':_[_0xe1c5('0xad')](_0x50725d[_0xe1c5('0x42')],function(_0x2b74f2){var _0x14fd86={};_0x14fd86[_0x2b74f2]={'$like':'%'+_0x4df487[_0xe1c5('0x3f')]['filter']+'%'};return _0x14fd86;})});}if(_0x4df487[_0xe1c5('0x3f')]['$gte']){var _0x51ebe6=_0x4df487[_0xe1c5('0x3f')][_0xe1c5('0xae')]['split'](',');var _0x4557d0={};_0x4557d0[_0x51ebe6[0x0]]={'$gte':moment(_0x51ebe6[0x1])[_0xe1c5('0x8e')]('YYYY-MM-DD\x20HH:mm:ss')};_0x50725d[_0xe1c5('0xa9')]=_[_0xe1c5('0x47')](_0x50725d[_0xe1c5('0xa9')],_0x4557d0);}_0x50725d=_[_0xe1c5('0x47')]({},_0x50725d,_0x4df487[_0xe1c5('0x48')]);return db[_0xe1c5('0x86')][_0xe1c5('0x26')]({'where':_0x50725d['where']})['then'](function(_0x4483c8){_0x4bebec[_0xe1c5('0x26')]=_0x4483c8;if(_0x4df487[_0xe1c5('0x3f')][_0xe1c5('0x45')]){_0x50725d[_0xe1c5('0x46')]=[{'all':!![]}];}return db['ChatMessage'][_0xe1c5('0x39')](_0x50725d);})[_0xe1c5('0x17')](function(_0x2205ee){_0x4bebec['rows']=_0x2205ee;return _0x4bebec;});}})[_0xe1c5('0x17')](respondWithFilteredResult(_0x1ee4f1,_0x50725d))['catch'](handleError(_0x1ee4f1,null));};exports[_0xe1c5('0xaf')]=function(_0x12a6db,_0x30bf74){var _0x3b6fdd={'where':{}},_0x28d3ee={},_0x410091={'count':0x0,'rows':[]};return db[_0xe1c5('0x3e')][_0xe1c5('0x4f')]({'where':{'id':_0x12a6db[_0xe1c5('0x4b')]['id']}})['then'](handleEntityNotFound(_0x30bf74,null))[_0xe1c5('0x17')](function(_0x4a36ad){if(_0x4a36ad){_0x28d3ee['model']=_[_0xe1c5('0xa5')](db[_0xe1c5('0x86')][_0xe1c5('0x35')]);_0x28d3ee[_0xe1c5('0x3f')]=_[_0xe1c5('0xa5')](_0x12a6db['query']);_0x28d3ee[_0xe1c5('0x40')]=_[_0xe1c5('0x41')](_0x28d3ee[_0xe1c5('0x3d')],_0x28d3ee[_0xe1c5('0x3f')]);_0x3b6fdd['attributes']=_[_0xe1c5('0x41')](_0x28d3ee[_0xe1c5('0x3d')],qs[_0xe1c5('0x43')](_0x12a6db[_0xe1c5('0x3f')][_0xe1c5('0x43')]));_0x3b6fdd[_0xe1c5('0x42')]=_0x3b6fdd[_0xe1c5('0x42')]['length']?_0x3b6fdd[_0xe1c5('0x42')]:_0x28d3ee[_0xe1c5('0x3d')];if(!_0x12a6db[_0xe1c5('0x3f')][_0xe1c5('0xb0')]('nolimit')){_0x3b6fdd['limit']=qs[_0xe1c5('0x24')](_0x12a6db[_0xe1c5('0x3f')][_0xe1c5('0x24')]);_0x3b6fdd[_0xe1c5('0x23')]=qs[_0xe1c5('0x23')](_0x12a6db[_0xe1c5('0x3f')][_0xe1c5('0x23')]);}_0x3b6fdd[_0xe1c5('0xa7')]=qs[_0xe1c5('0xa8')](_0x12a6db[_0xe1c5('0x3f')]['sort']);_0x3b6fdd[_0xe1c5('0xa9')]=qs[_0xe1c5('0x40')](_[_0xe1c5('0xaa')](_0x12a6db['query'],_0x28d3ee[_0xe1c5('0x40')]));_0x3b6fdd[_0xe1c5('0xa9')][_0xe1c5('0xab')]=_0x4a36ad['id'];if(_0x12a6db[_0xe1c5('0x3f')]['filter']){_0x3b6fdd[_0xe1c5('0xa9')]=_[_0xe1c5('0x47')](_0x3b6fdd[_0xe1c5('0xa9')],{'$or':_['map'](_0x3b6fdd['attributes'],function(_0x542326){var _0x28f1c9={};_0x28f1c9[_0x542326]={'$like':'%'+_0x12a6db[_0xe1c5('0x3f')][_0xe1c5('0xac')]+'%'};return _0x28f1c9;})});}_0x3b6fdd[_0xe1c5('0xa9')][_0xe1c5('0x98')]=![];if(_0x12a6db[_0xe1c5('0x3f')]['id']){_0x3b6fdd[_0xe1c5('0xa9')]['id']={'$gt':_0x12a6db[_0xe1c5('0x3f')]['id']};}_0x3b6fdd=_[_0xe1c5('0x47')]({},_0x3b6fdd,_0x12a6db[_0xe1c5('0x48')]);return db[_0xe1c5('0x86')]['count']({'where':_0x3b6fdd['where']})[_0xe1c5('0x17')](function(_0x4f330f){_0x410091[_0xe1c5('0x26')]=_0x4f330f;_0x3b6fdd[_0xe1c5('0x46')]=[];if(_0x12a6db[_0xe1c5('0x3f')][_0xe1c5('0xb1')]){_0x3b6fdd['include'][_0xe1c5('0xb2')]({'model':db[_0xe1c5('0x88')],'as':_0xe1c5('0x88'),'attributes':['id',_0xe1c5('0x57'),_0xe1c5('0x93')]});}if(_0x12a6db[_0xe1c5('0x3f')][_0xe1c5('0x45')]){_0x3b6fdd[_0xe1c5('0x46')]=[{'all':!![]}];}return db['ChatMessage']['findAll'](_0x3b6fdd);})[_0xe1c5('0x17')](function(_0x3bea6b){_0x410091['rows']=_0x3bea6b;return _0x410091;});}})[_0xe1c5('0x17')](respondWithFilteredResult(_0x30bf74,_0x3b6fdd))[_0xe1c5('0x3b')](handleError(_0x30bf74,null));};exports['addTags']=function(_0x270b26,_0x252dc6){return db['ChatInteraction']['find']({'where':{'id':_0x270b26[_0xe1c5('0x4b')]['id']}})[_0xe1c5('0x17')](handleEntityNotFound(_0x252dc6,null))['then'](function(_0x466178){if(_0x466178){return _0x466178['setTags'](_0x270b26['body'][_0xe1c5('0xa3')],_[_0xe1c5('0xa2')](_0x270b26[_0xe1c5('0x4a')],[_0xe1c5('0xa3'),'id'])||{})[_0xe1c5('0xb3')](function(){return db[_0xe1c5('0xb4')][_0xe1c5('0x39')]({'attributes':['id',_0xe1c5('0x2d'),_0xe1c5('0xb5')],'where':{'id':_0x270b26[_0xe1c5('0x4a')][_0xe1c5('0xa3')]}});})[_0xe1c5('0x17')](function(_0x45a17f){socket[_0xe1c5('0xb6')]('chatInteractionTags:save',{'id':Number(_0x270b26[_0xe1c5('0x4b')]['id']),'tags':_0x45a17f||[]});return{'id':Number(_0x270b26[_0xe1c5('0x4b')]['id']),'tags':_0x45a17f||[]};});}})[_0xe1c5('0x17')](respondWithResult(_0x252dc6,null))[_0xe1c5('0x3b')](handleError(_0x252dc6,null));};exports[_0xe1c5('0xb7')]=function(_0x12a915,_0x2cf998){return db[_0xe1c5('0x3e')][_0xe1c5('0x4c')]({'where':{'id':_0x12a915[_0xe1c5('0x4b')]['id']}})[_0xe1c5('0x17')](handleEntityNotFound(_0x2cf998,null))[_0xe1c5('0x17')](function(_0x36da1f){if(_0x36da1f){return _0x36da1f[_0xe1c5('0xb7')](_0x12a915['query']['ids']);}})[_0xe1c5('0x17')](respondWithStatusCode(_0x2cf998,null))[_0xe1c5('0x3b')](handleError(_0x2cf998,null));};exports['download']=function(_0x158898,_0x2bb4bc){var _0x80608f=moment()[_0xe1c5('0xb8')]()[_0xe1c5('0xb9')]();var _0x49ce6d=path['join'](config['root'],_0xe1c5('0xba'),_0xe1c5('0xbb'),_0xe1c5('0xbc'));var _0x2c091a=path[_0xe1c5('0x7c')](config[_0xe1c5('0x7d')],_0xe1c5('0xba'),_0xe1c5('0xbb'),_0xe1c5('0xbd'));var _0x1ef9a4=path[_0xe1c5('0x7c')](_0x49ce6d,_0x80608f);var _0x1ce1e8=util[_0xe1c5('0x8e')]('transcript-%d-%s.zip',_0x158898[_0xe1c5('0x4b')]['id'],_0x80608f);var _0x2e2838=path[_0xe1c5('0x7c')](_0x49ce6d,_0x1ce1e8);var _0xbfd735=[];_0xbfd735[_0xe1c5('0xb2')]({'model':db[_0xe1c5('0x88')],'as':_0xe1c5('0x88'),'attributes':['id',_0xe1c5('0x57')],'raw':!![]});_0xbfd735[_0xe1c5('0xb2')]({'model':db['CmContact'],'as':_0xe1c5('0x69'),'attributes':['id',_0xe1c5('0xbe'),_0xe1c5('0xbf')],'raw':!![]});if(_0x158898[_0xe1c5('0x3f')][_0xe1c5('0xbd')]){_0xbfd735['push']({'model':db[_0xe1c5('0x79')],'as':_0xe1c5('0x79'),'raw':!![]});}var _0x131e66=[{'model':db[_0xe1c5('0x86')],'as':_0xe1c5('0x87'),'attributes':['id',_0xe1c5('0x4a'),_0xe1c5('0x95'),_0xe1c5('0x97'),_0xe1c5('0x98'),_0xe1c5('0xc0')],'include':_0xbfd735}];_0x131e66[_0xe1c5('0xb2')]({'model':db[_0xe1c5('0x50')],'as':_0xe1c5('0xc1'),'attributes':['id',_0xe1c5('0x2d')]});_0x131e66[_0xe1c5('0xb2')]({'model':db[_0xe1c5('0x88')],'as':_0xe1c5('0xc2'),'attributes':['id','fullname']});return db[_0xe1c5('0x3e')]['find']({'where':{'id':_0x158898[_0xe1c5('0x4b')]['id']},'include':_0x131e66})[_0xe1c5('0x17')](handleEntityNotFound(_0x2bb4bc,null))[_0xe1c5('0x17')](function(_0x5a69c1){if(_0x5a69c1){var _0x5b7efc=_0x5a69c1[_0xe1c5('0xc3')]({'plain':!![]});fs[_0xe1c5('0xc4')](_0x1ef9a4);var _0x1f36a2={'channel':'Chat','account':_0x5b7efc[_0xe1c5('0xc1')][_0xe1c5('0x2d')],'agent':_0x5b7efc['Owner']?_0x5b7efc[_0xe1c5('0xc2')][_0xe1c5('0x57')]:_0xe1c5('0xc5'),'createdAt':moment(_0x5b7efc['createdAt'])['format'](_0xe1c5('0xc6'))[_0xe1c5('0xb9')](),'closedAt':_0x5b7efc[_0xe1c5('0x77')]?moment(_0x5b7efc[_0xe1c5('0xc7')])[_0xe1c5('0x8e')](_0xe1c5('0xc6'))[_0xe1c5('0xb9')]():'','disposition':_0x5b7efc[_0xe1c5('0x6e')],'chatInfo':{'browser':_0x5b7efc[_0xe1c5('0xc8')],'os':_0x5b7efc[_0xe1c5('0xc9')],'referer':_0x5b7efc[_0xe1c5('0xca')],'customerIp':_0x5b7efc[_0xe1c5('0xcb')],'customerPort':_0x5b7efc[_0xe1c5('0xcc')]?_0x5b7efc[_0xe1c5('0xcc')]:_0xe1c5('0xc5')},'messages':_(_0x5b7efc[_0xe1c5('0x87')])[_0xe1c5('0xcd')]()[_0xe1c5('0xac')]({'secret':![]})['map'](function(_0x16b351){if(_0x16b351[_0xe1c5('0x79')]){var _0x136d58=path[_0xe1c5('0x7c')](_0x2c091a,_0x16b351[_0xe1c5('0x79')]['basename']);if(fs['existsSync'](_0x136d58)){fs['createReadStream'](_0x136d58)[_0xe1c5('0xce')](fs[_0xe1c5('0xcf')](path['join'](_0x1ef9a4,_0x16b351['Attachment']['basename'])));}}return{'date':moment(_0x16b351[_0xe1c5('0x95')])[_0xe1c5('0x8e')](_0xe1c5('0xc6'))['toString'](),'sender':_0x16b351[_0xe1c5('0x97')]===_0xe1c5('0x65')?_0x16b351[_0xe1c5('0x88')]?_0x16b351[_0xe1c5('0x88')]['fullname']:_0xe1c5('0x8c'):_0x16b351['Contact'][_0xe1c5('0xbe')]+(_0x16b351['Contact'][_0xe1c5('0xbf')]?'\x20'+_0x16b351[_0xe1c5('0x69')]['lastName']:''),'body':_0x16b351['Attachment']?_0x16b351[_0xe1c5('0x79')][_0xe1c5('0x73')]:_0x16b351[_0xe1c5('0x4a')],'direction':_0x16b351[_0xe1c5('0x97')]==='out'?'A':'C','secret':_0x16b351[_0xe1c5('0x98')],'read':_0x16b351['read'],'attachment':_0x16b351[_0xe1c5('0x79')]};})['value']()};return ejs[_0xe1c5('0xd0')](path['join'](config[_0xe1c5('0x7d')],_0xe1c5('0xba'),_0xe1c5('0xd1'),_0xe1c5('0xd2')),{'interaction':_0x1f36a2})['then'](function(_0x2fb43f){var _0x1531ec=path[_0xe1c5('0x7c')](_0x1ef9a4,_0xe1c5('0xd3')+_0x5b7efc['id']+'-'+_0x80608f+_0xe1c5('0xd4'));var _0x2e53db={'path':_0x1531ec,'channel':_0xe1c5('0xd5'),'interactionId':_0x5b7efc['id']};return pdf[_0xe1c5('0xd6')](_0x2fb43f,_0x2e53db);})[_0xe1c5('0x17')](function(){return new Promise(function(_0x2bed32,_0x26509a){zipdir(_0x1ef9a4,{'saveTo':_0x2e2838},function(_0x37e484,_0x1493da){if(_0x37e484)return _0x26509a(_0x37e484);return _0x2bed32(_0x1493da);});})['then'](function(){return new BPromise(function(_0x417fa9,_0x495826){rimraf(_0x1ef9a4,function(_0x5309cd){if(_0x5309cd)_0x495826(_0x5309cd);return _0x417fa9();});});})[_0xe1c5('0x17')](function(){return _0x2bb4bc[_0xe1c5('0x7f')](_0x2e2838,_0x1ce1e8,function(_0x2bcb78){if(_0x2bcb78){logger[_0xe1c5('0x1b')](_0xe1c5('0xd7'),_0x2bcb78);}else{fs[_0xe1c5('0xd8')](_0x2e2838);}});});});}else{return _0x2bb4bc['sendStatus'](0xc8);}})['catch'](handleError(_0x2bb4bc,null));};