a7546441cf18269f4eb3f363e534d048c4075713
[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 _0xb2ba=['body','agent','account','index','map','ChatInteraction','rawAttributes','fieldName','type','findAll','chat','user','params','model','keys','query','filters','intersection','fields','attributes','length','includeAll','include','options','find','create','destroy','describe','findOne','ChatWebsiteId','vidaooApiKey','vidaooTopic','vidaooNote','vidaooMetadata','vidaooEscalation','email','contact','POST','https://api-vidaoo.xcally.com/api/v1/meetings','isNull','parse','metadata','Sequelize','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','Error\x20in\x20Vidaoo\x20configuration','out','ChatMessage','Unable\x20to\x20create\x20Vidaoo\x20session','customUpdate','CmContact','Contact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','UserId','Interaction\x20already\x20assigned','closed','disposition','AbandonInteraction','file','originalname','basename','filename','mimetype','Attachment','attachId','ChatOfflineMessageId','join','server/files/attachments/','offline-chat/','download','close','mailTranscript','root','server/files/chat/upload/','format','now','pathTranscript','Messages','User','ChatWebsite','ContactId','%s%d','agentAlias','System','agentIdentifier','agent_alias','alias','fullname','agent_fullname','createdAt','MM/DD/YYYY\x20HH:mm:ss','direction','secret','appendFileSync','MailAccount','MailServerOut','Smtp','CloudProvider','SendMail','sendMail','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','ids','getMessages','hasOwnProperty','order','sort','pick','ChatInteractionId','filter','where','$gte','split','YYYY-MM-DD\x20HH:mm:ss','rows','getMyMessages','includeAgent','omit','Tag','color','chatInteractionTags:save','removeTags','unix','toString','server','files','attachments','transcript-%d-%s.zip','firstName','lastName','push','read','Owner','get','Chat','Account','N.A.','closedAt','browserName','osName','customerPort','tail','existsSync','createReadStream','pipe','createWriteStream','renderFile','views','transcript-','.pdf','createPdfFromHTML','err','unlinkSync','moment','bluebird','mustache','util','path','ejs','../../components/interaction/service','../../components/export/pdf','../../config/logger','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','register','jayson/promise','http','client','request','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','update','stack','name','merge'];(function(_0x273dc5,_0x268a81){var _0x46dae7=function(_0x263d62){while(--_0x263d62){_0x273dc5['push'](_0x273dc5['shift']());}};_0x46dae7(++_0x268a81);}(_0xb2ba,0x162));var _0xab2b=function(_0x255d7a,_0x4e6c37){_0x255d7a=_0x255d7a-0x0;var _0x37083e=_0xb2ba[_0x255d7a];return _0x37083e;};'use strict';var rimraf=require('rimraf');var zipdir=require('zip-dir');var rp=require('request-promise');var moment=require(_0xab2b('0x0'));var BPromise=require(_0xab2b('0x1'));var Mustache=require(_0xab2b('0x2'));var util=require(_0xab2b('0x3'));var path=require(_0xab2b('0x4'));var ejs=require(_0xab2b('0x5'));var fs=require('fs');var _=require('lodash');var Redis=require('ioredis');var interaction=require(_0xab2b('0x6'));var qs=require('../../components/parsers/qs');var pdf=require(_0xab2b('0x7'));var logger=require(_0xab2b('0x8'))('api');var config=require(_0xab2b('0x9'));var db=require(_0xab2b('0xa'))['db'];config['redis']=_[_0xab2b('0xb')](config[_0xab2b('0xc')],{'host':_0xab2b('0xd'),'port':0x18eb});var socket=require(_0xab2b('0xe'))(new Redis(config['redis']));require('./chatInteraction.socket')[_0xab2b('0xf')](socket);var jayson=require(_0xab2b('0x10'));var client=jayson['client'][_0xab2b('0x11')]({'port':0x232b});var client9004=jayson[_0xab2b('0x12')][_0xab2b('0x11')]({'port':0x232c});function respondWithRpcPromise(_0x31fb8f,_0x1f91ab,_0x1d55a9,_0x49378c){return new BPromise(function(_0x8fe643,_0x1e9a00){var _0x545861=_0x49378c||client;return _0x545861[_0xab2b('0x13')](_0x31fb8f,_0x1d55a9)[_0xab2b('0x14')](function(_0x3ea1cc){logger[_0xab2b('0x15')](_0xab2b('0x16'),_0x1f91ab,_0xab2b('0x17'));logger['debug'](_0xab2b('0x18'),_0x1f91ab,_0xab2b('0x17'),JSON[_0xab2b('0x19')](_0x3ea1cc));if(_0x3ea1cc[_0xab2b('0x1a')]){if(_0x3ea1cc[_0xab2b('0x1a')][_0xab2b('0x1b')]===0x1f4){logger[_0xab2b('0x1a')](_0xab2b('0x16'),_0x1f91ab,_0x3ea1cc[_0xab2b('0x1a')][_0xab2b('0x1c')]);return _0x1e9a00(_0x3ea1cc[_0xab2b('0x1a')]['message']);}logger[_0xab2b('0x1a')]('ChatInteraction,\x20%s,\x20%s',_0x1f91ab,_0x3ea1cc[_0xab2b('0x1a')]['message']);return _0x8fe643(_0x3ea1cc[_0xab2b('0x1a')][_0xab2b('0x1c')]);}else{logger['info']('ChatInteraction,\x20%s,\x20%s',_0x1f91ab,_0xab2b('0x17'));_0x8fe643(_0x3ea1cc['result'][_0xab2b('0x1c')]);}})[_0xab2b('0x1d')](function(_0x11c008){logger[_0xab2b('0x1a')](_0xab2b('0x16'),_0x1f91ab,_0x11c008);_0x1e9a00(_0x11c008);});});}function respondWithStatusCode(_0x3e748a,_0x25f5a5){_0x25f5a5=_0x25f5a5||0xcc;return function(_0x3bc0a3){if(_0x3bc0a3){return _0x3e748a[_0xab2b('0x1e')](_0x25f5a5);}return _0x3e748a[_0xab2b('0x1f')](_0x25f5a5)[_0xab2b('0x20')]();};}function respondWithResult(_0x366911,_0x58170f){_0x58170f=_0x58170f||0xc8;return function(_0x2aa72b){if(_0x2aa72b){return _0x366911['status'](_0x58170f)['json'](_0x2aa72b);}};}function respondWithFilteredResult(_0xa69021,_0x57a2aa){return function(_0x38d6bb){if(_0x38d6bb){var _0x598b58=typeof _0x57a2aa[_0xab2b('0x21')]===_0xab2b('0x22')&&typeof _0x57a2aa[_0xab2b('0x23')]===_0xab2b('0x22');var _0x17063c=_0x38d6bb['count'];var _0x4c5d32=_0x598b58?0x0:_0x57a2aa['offset'];var _0x30138a=_0x598b58?_0x38d6bb[_0xab2b('0x24')]:_0x57a2aa[_0xab2b('0x21')]+_0x57a2aa['limit'];var _0x4c5ddd;if(_0x30138a>=_0x17063c){_0x30138a=_0x17063c;_0x4c5ddd=0xc8;}else{_0x4c5ddd=0xce;}_0xa69021[_0xab2b('0x1f')](_0x4c5ddd);return _0xa69021[_0xab2b('0x25')](_0xab2b('0x26'),_0x4c5d32+'-'+_0x30138a+'/'+_0x17063c)[_0xab2b('0x27')](_0x38d6bb);}return null;};}function saveUpdates(_0x3ef7aa){return function(_0x47001b){if(_0x47001b){return _0x47001b[_0xab2b('0x28')](_0x3ef7aa)['then'](function(_0x507496){return _0x507496;});}return null;};}function removeEntity(_0x2cc409){return function(_0x2944d4){if(_0x2944d4){return _0x2944d4['destroy']()[_0xab2b('0x14')](function(){_0x2cc409[_0xab2b('0x1f')](0xcc)[_0xab2b('0x20')]();});}};}function handleEntityNotFound(_0x474f06){return function(_0x3e71eb){if(!_0x3e71eb){_0x474f06['sendStatus'](0x194);}return _0x3e71eb;};}function handleError(_0x258926,_0x190727){_0x190727=_0x190727||0x1f4;return function(_0x57fa41){logger['error'](_0x57fa41[_0xab2b('0x29')]);if(_0x57fa41['name']){delete _0x57fa41[_0xab2b('0x2a')];}_0x258926[_0xab2b('0x1f')](_0x190727)['send'](_0x57fa41);};}function getMustacheRender(_0x43d316,_0x1b2954){return Mustache['render'](_0x43d316,_[_0xab2b('0x2b')](_0x1b2954[_0xab2b('0x2c')],{'contact':_0x1b2954['contact'],'message':_0x1b2954[_0xab2b('0x1c')],'agent':_0x1b2954[_0xab2b('0x2d')],'interaction':_0x1b2954['interaction'],'account':_0x1b2954[_0xab2b('0x2e')]}))||'';}exports[_0xab2b('0x2f')]=function(_0x46a058,_0x4c4e70){var _0x29244b={};var _0x2d8e26=_[_0xab2b('0x30')](db[_0xab2b('0x31')][_0xab2b('0x32')],function(_0x56393d){return{'name':_0x56393d[_0xab2b('0x33')],'type':_0x56393d[_0xab2b('0x34')]['key']};});_0x29244b=qs['getOptions'](_0x2d8e26,_0x46a058);return interaction[_0xab2b('0x35')](_0xab2b('0x36'),_0x46a058['query'],_0x46a058[_0xab2b('0x37')],_0x29244b,_0x2d8e26)['then'](respondWithFilteredResult(_0x4c4e70,_0x29244b))['catch'](handleError(_0x4c4e70,null));};exports['show']=function(_0x15a3ea,_0x45ed9e){var _0x3af856={'raw':![],'where':{'id':_0x15a3ea[_0xab2b('0x38')]['id']}},_0x5c3310={};_0x5c3310[_0xab2b('0x39')]=_[_0xab2b('0x3a')](db[_0xab2b('0x31')][_0xab2b('0x32')]);_0x5c3310[_0xab2b('0x3b')]=_[_0xab2b('0x3a')](_0x15a3ea[_0xab2b('0x3b')]);_0x5c3310[_0xab2b('0x3c')]=_['intersection'](_0x5c3310[_0xab2b('0x39')],_0x5c3310[_0xab2b('0x3b')]);_0x3af856['attributes']=_[_0xab2b('0x3d')](_0x5c3310[_0xab2b('0x39')],qs[_0xab2b('0x3e')](_0x15a3ea[_0xab2b('0x3b')][_0xab2b('0x3e')]));_0x3af856['attributes']=_0x3af856[_0xab2b('0x3f')][_0xab2b('0x40')]?_0x3af856['attributes']:_0x5c3310[_0xab2b('0x39')];if(_0x15a3ea['query'][_0xab2b('0x41')]){_0x3af856[_0xab2b('0x42')]=[{'all':!![]}];}_0x3af856=_['merge']({},_0x3af856,_0x15a3ea[_0xab2b('0x43')]);return db[_0xab2b('0x31')][_0xab2b('0x44')](_0x3af856)[_0xab2b('0x14')](handleEntityNotFound(_0x45ed9e,null))[_0xab2b('0x14')](respondWithResult(_0x45ed9e,null))['catch'](handleError(_0x45ed9e,null));};exports[_0xab2b('0x45')]=function(_0x3ee07b,_0x1ba8e2){return db['ChatInteraction'][_0xab2b('0x45')](_0x3ee07b['body'],{})['then'](respondWithResult(_0x1ba8e2,0xc9))['catch'](handleError(_0x1ba8e2,null));};exports[_0xab2b('0x28')]=function(_0x4b564,_0x43b8ee){if(_0x4b564[_0xab2b('0x2c')]['id']){delete _0x4b564['body']['id'];}return db[_0xab2b('0x31')][_0xab2b('0x44')]({'where':{'id':_0x4b564[_0xab2b('0x38')]['id']}})[_0xab2b('0x14')](handleEntityNotFound(_0x43b8ee,null))[_0xab2b('0x14')](saveUpdates(_0x4b564[_0xab2b('0x2c')],null))[_0xab2b('0x14')](respondWithResult(_0x43b8ee,null))['catch'](handleError(_0x43b8ee,null));};exports[_0xab2b('0x46')]=function(_0x28c59b,_0xa45e34){return db[_0xab2b('0x31')][_0xab2b('0x44')]({'where':{'id':_0x28c59b[_0xab2b('0x38')]['id']}})['then'](handleEntityNotFound(_0xa45e34,null))[_0xab2b('0x14')](removeEntity(_0xa45e34,null))[_0xab2b('0x1d')](handleError(_0xa45e34,null));};exports[_0xab2b('0x47')]=function(_0x298868,_0x27580f){return db[_0xab2b('0x31')]['describe']()[_0xab2b('0x14')](respondWithResult(_0x27580f,null))[_0xab2b('0x1d')](handleError(_0x27580f,null));};exports['createVidaooSession']=function(_0x4dec43,_0x46caa0){var _0xff4ae8=_0x4dec43['params']['id'];var _0x33d376;var _0x2dce6d;var _0x5c289b;return db[_0xab2b('0x31')][_0xab2b('0x48')]({'where':{'id':_0xff4ae8}})[_0xab2b('0x14')](function(_0x3277b6){_0x33d376=_0x3277b6;return db['ChatWebsite'][_0xab2b('0x48')]({'where':{'id':_0x3277b6[_0xab2b('0x49')]},'attributes':['id',_0xab2b('0x4a'),'vidaooEscalation',_0xab2b('0x4b'),_0xab2b('0x4c'),_0xab2b('0x4d')],'raw':!![]});})['then'](function(_0x382499){if(_0x382499&&_0x382499[_0xab2b('0x4a')]&&_0x382499[_0xab2b('0x4e')]){_0x2dce6d=_0x382499;var _0x28a5c4={'interaction':{'id':_0xff4ae8},'agent':{'id':_0x4dec43[_0xab2b('0x37')]['id'],'name':_0x4dec43['user'][_0xab2b('0x2a')],'fullname':_0x4dec43['user']['fullname'],'email':_0x4dec43['user'][_0xab2b('0x4f')]},'contact':_0x4dec43['body'][_0xab2b('0x50')],'account':_0x4dec43['body']['account']};var _0x5a8cd3={'rejectUnauthorized':![],'method':_0xab2b('0x51'),'url':_0xab2b('0x52'),'headers':{'X-APIKEY':_0x382499[_0xab2b('0x4a')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x4dec43[_0xab2b('0x37')][_0xab2b('0x4f')]],'buttons':null,'topic':_0x2dce6d['vidaooTopic'],'note':_[_0xab2b('0x53')](_0x2dce6d[_0xab2b('0x4c')])?null:getMustacheRender(_0x2dce6d[_0xab2b('0x4c')],_0x28a5c4),'metadata':null},'redirect':'follow','json':!![]};try{if(!_['isNull'](_0x2dce6d['vidaooMetadata'])){var _0x2a677d=getMustacheRender(_0x2dce6d[_0xab2b('0x4d')],_0x28a5c4);var _0x10e5d9=JSON[_0xab2b('0x54')](_0x2a677d);_0x5a8cd3[_0xab2b('0x2c')][_0xab2b('0x55')]=_0x10e5d9;}}catch(_0x20a985){throw new db[(_0xab2b('0x56'))][(_0xab2b('0x57'))](_0xab2b('0x58'));}return rp(_0x5a8cd3);}else{throw new db[(_0xab2b('0x56'))][(_0xab2b('0x57'))](_0xab2b('0x59'));}})[_0xab2b('0x14')](function(_0x20d9f9){_0x5c289b=_0x20d9f9;if(_0x5c289b['id']){var _0x3f5bdd={'body':_0x5c289b['join_url'],'ChatWebsiteId':_0x2dce6d['id'],'ChatInteractionId':_0x33d376['id'],'direction':_0xab2b('0x5a'),'UserId':_0x4dec43[_0xab2b('0x37')]['id']};return db[_0xab2b('0x5b')][_0xab2b('0x45')](_0x3f5bdd,{});}else{throw new db['Sequelize'][(_0xab2b('0x57'))](_0xab2b('0x5c'));}})[_0xab2b('0x14')](function(){return _0x33d376['updateAttributes']({'vidaooSessionId':_0x5c289b['id']});})[_0xab2b('0x14')](respondWithResult(_0x46caa0,null))[_0xab2b('0x1d')](handleError(_0x46caa0,null));};exports[_0xab2b('0x5d')]=function(_0x2645c4,_0x2faab1){if(_0x2645c4['body']['id']){delete _0x2645c4[_0xab2b('0x2c')]['id'];}return db['ChatInteraction'][_0xab2b('0x44')]({'where':{'id':_0x2645c4[_0xab2b('0x38')]['id']},'include':[{'model':db[_0xab2b('0x5e')],'as':_0xab2b('0x5f')}]})['then'](handleEntityNotFound(_0x2faab1,null))['then'](saveUpdates(_0x2645c4[_0xab2b('0x2c')],null))[_0xab2b('0x14')](respondWithResult(_0x2faab1,null))[_0xab2b('0x1d')](handleError(_0x2faab1,null));};exports[_0xab2b('0x60')]=function(_0xf53482,_0x1da54f){if(_0xf53482[_0xab2b('0x2c')]['id']){delete _0xf53482[_0xab2b('0x2c')]['id'];}return db[_0xab2b('0x31')][_0xab2b('0x44')]({'where':{'id':_0xf53482[_0xab2b('0x38')]['id']}})['then'](function(_0x445980){if(!_0x445980){logger[_0xab2b('0x1a')](_0xab2b('0x61'),_0xab2b('0x60'),0x194,_0xab2b('0x62'));_0x1da54f[_0xab2b('0x1e')](0x194);}else{if(_0x445980[_0xab2b('0x63')]){throw new db[(_0xab2b('0x56'))][(_0xab2b('0x57'))](_0xab2b('0x64'));}}return _0x445980;})[_0xab2b('0x14')](function(_0x58c5cd){if(_0x58c5cd){return _0x58c5cd[_0xab2b('0x28')]({'closed':_0xf53482[_0xab2b('0x2c')][_0xab2b('0x65')],'disposition':_0xf53482[_0xab2b('0x2c')][_0xab2b('0x66')]})['then'](function(_0x20da9f){return _0x20da9f;});}})[_0xab2b('0x14')](function(){return respondWithRpcPromise(_0xab2b('0x67'),_0xab2b('0x60'),_0xf53482[_0xab2b('0x2c')],client9004);})[_0xab2b('0x14')](respondWithResult(_0x1da54f,null))[_0xab2b('0x1d')](handleError(_0x1da54f,null));};exports['attachmentUpload']=function(_0x48862a,_0x82b8b8){_0x48862a[_0xab2b('0x2c')][_0xab2b('0x2a')]=_0x48862a[_0xab2b('0x68')][_0xab2b('0x69')];_0x48862a['body'][_0xab2b('0x6a')]=_0x48862a['file'][_0xab2b('0x6b')];_0x48862a['body']['type']=_0x48862a[_0xab2b('0x68')][_0xab2b('0x6c')];return db['Attachment'][_0xab2b('0x45')](_0x48862a[_0xab2b('0x2c')])[_0xab2b('0x14')](respondWithResult(_0x82b8b8,0xc9))[_0xab2b('0x1d')](handleError(_0x82b8b8,null));};exports['attachmentDownload']=function(_0x40dab2,_0x29d918){return db[_0xab2b('0x31')]['findOne']({'where':{'id':_0x40dab2[_0xab2b('0x38')]['id']},'raw':!![]})[_0xab2b('0x14')](handleEntityNotFound(_0x29d918,null))[_0xab2b('0x14')](function(_0x2f7db3){if(_0x2f7db3){if(_0x2f7db3[_0xab2b('0x65')]){return _0x29d918['status'](0x193)[_0xab2b('0x27')]({'status':0x193,'message':'Unauthorized'});}return db[_0xab2b('0x6d')][_0xab2b('0x48')]({'where':{'id':_0x40dab2[_0xab2b('0x3b')][_0xab2b('0x6e')]},'raw':!![]})['then'](handleEntityNotFound(_0x29d918,null));}})[_0xab2b('0x14')](function(_0x4a2a93){if(_0x4a2a93){var _0x1e2313=_0x4a2a93[_0xab2b('0x6f')]!==null;var _0x494980=path[_0xab2b('0x70')](config['root'],_0xab2b('0x71'));if(_0x1e2313){_0x494980=path[_0xab2b('0x70')](_0x494980,_0xab2b('0x72'));}var _0x9e285e=path[_0xab2b('0x70')](_0x494980,_0x4a2a93['basename']);return _0x29d918[_0xab2b('0x73')](_0x9e285e);}})[_0xab2b('0x1d')](handleError(_0x29d918,null));};exports[_0xab2b('0x74')]=function(_0x34121d,_0x42db50){var _0x3601e4=null;var _0x515e8e=null;var _0x287f7a=null;if(_0x34121d[_0xab2b('0x2c')]['id']){delete _0x34121d[_0xab2b('0x2c')]['id'];}if(_0x34121d[_0xab2b('0x2c')][_0xab2b('0x75')]){_0x287f7a=path[_0xab2b('0x70')](config[_0xab2b('0x76')],_0xab2b('0x77'),util[_0xab2b('0x78')]('transcript-%s.txt',Date[_0xab2b('0x79')]()));_0x34121d[_0xab2b('0x2c')][_0xab2b('0x7a')]=_0x287f7a;}return db[_0xab2b('0x31')][_0xab2b('0x44')]({'where':{'id':_0x34121d[_0xab2b('0x38')]['id']},'include':[{'model':db[_0xab2b('0x5b')],'as':_0xab2b('0x7b'),'include':[{'model':db[_0xab2b('0x7c')],'as':_0xab2b('0x7c')}]}]})['then'](handleEntityNotFound(_0x42db50,null))['then'](saveUpdates(_0x34121d[_0xab2b('0x2c')],null))['then'](function(_0x1ab9ba){if(_0x1ab9ba){_0x3601e4=_0x1ab9ba;return db[_0xab2b('0x7d')][_0xab2b('0x44')]({'where':{'id':_0x3601e4[_0xab2b('0x49')]}});}})[_0xab2b('0x14')](function(_0x12deb9){if(_0x12deb9){_0x515e8e=_0x12deb9;return db[_0xab2b('0x5e')][_0xab2b('0x44')]({'where':{'id':_0x3601e4[_0xab2b('0x7e')]}});}})[_0xab2b('0x14')](function(_0x2d5bf0){if(_0x2d5bf0){if(_0x287f7a){var _0x49f86e=null;for(var _0x59530f=0x1;_0x59530f<_0x3601e4[_0xab2b('0x7b')][_0xab2b('0x40')];++_0x59530f){_0x49f86e=_0x3601e4[_0xab2b('0x7b')][_0x59530f];var _0x29a1c9=_0x49f86e[_0xab2b('0x63')]?util['format'](_0xab2b('0x7f'),_0x515e8e[_0xab2b('0x80')],_0x49f86e[_0xab2b('0x63')]):_0xab2b('0x81');var _0x21b395=_0x34121d[_0xab2b('0x2c')]['customer']||util[_0xab2b('0x78')](_0xab2b('0x7f'),'Visitor',_0x49f86e[_0xab2b('0x7e')]);switch(_0x515e8e[_0xab2b('0x82')]){case'website_alias':_0x29a1c9=_0x49f86e[_0xab2b('0x63')]?util[_0xab2b('0x78')](_0xab2b('0x7f'),_0x515e8e[_0xab2b('0x80')],_0x49f86e[_0xab2b('0x63')]):_0xab2b('0x81');break;case _0xab2b('0x83'):_0x29a1c9=_0x49f86e[_0xab2b('0x63')]?_0x49f86e['User'][_0xab2b('0x84')]||_0x49f86e[_0xab2b('0x7c')][_0xab2b('0x85')]:_0xab2b('0x81');break;case _0xab2b('0x86'):_0x29a1c9=_0x49f86e[_0xab2b('0x63')]?_0x49f86e['User'][_0xab2b('0x85')]:'System';break;default:_0x29a1c9=_0x49f86e[_0xab2b('0x63')]?util[_0xab2b('0x78')](_0xab2b('0x7f'),_0x515e8e[_0xab2b('0x80')],_0x49f86e['UserId']):_0xab2b('0x81');}var _0x4df53e=util[_0xab2b('0x78')]('[%s]\x20%s:\x20%s\x0a',moment(_0x49f86e[_0xab2b('0x87')])[_0xab2b('0x78')](_0xab2b('0x88')),_0x49f86e[_0xab2b('0x89')]==='in'?_0x21b395:_0x29a1c9,_0x49f86e[_0xab2b('0x2c')]);if(!_0x49f86e[_0xab2b('0x8a')]){fs[_0xab2b('0x8b')](_0x287f7a,_0x4df53e);}}return db[_0xab2b('0x8c')][_0xab2b('0x48')]({'where':{'service':!![]},'include':[{'model':db[_0xab2b('0x8d')],'as':_0xab2b('0x8e'),'raw':!![],'include':[{'model':db[_0xab2b('0x8f')],'as':'CloudProvider','raw':!![]}]}]});}}})[_0xab2b('0x14')](function(_0x15b056){if(!_0x15b056||!_0x15b056[_0xab2b('0x8e')]||!_0x34121d[_0xab2b('0x2c')])return _0x3601e4;var _0x4525ef=_0x15b056['getSmtpOptions']();return respondWithRpcPromise(_0xab2b('0x90'),_0xab2b('0x91'),{'account':_0x4525ef,'message':{'from':util['format']('\x22%s\x22\x20<%s>',_0x15b056[_0xab2b('0x2a')],_0x15b056[_0xab2b('0x4f')]||_0x15b056[_0xab2b('0x8e')]['user']),'to':_0x34121d['body']['mailTranscript'],'subject':'Mail\x20Transcript','text':util[_0xab2b('0x78')](_0xab2b('0x92'),_0x34121d['body'][_0xab2b('0x75')]),'attachments':[{'path':_0x287f7a}]}})[_0xab2b('0x14')](function(){return _0x3601e4;})[_0xab2b('0x1d')](function(_0x2d6cf0){logger[_0xab2b('0x1a')](_0x2d6cf0);});})[_0xab2b('0x14')](respondWithStatusCode(_0x42db50,0xc8))[_0xab2b('0x1d')](handleError(_0x42db50,null));};exports[_0xab2b('0x93')]=function(_0xaab74d,_0x209561){return db[_0xab2b('0x5b')][_0xab2b('0x44')]({'where':{'id':_0xaab74d[_0xab2b('0x38')]['id']}})[_0xab2b('0x14')](handleEntityNotFound(_0x209561,null))[_0xab2b('0x14')](function(_0x37f864){if(_0x37f864){return _0x37f864[_0xab2b('0x93')](_0xaab74d[_0xab2b('0x2c')][_0xab2b('0x94')],_['omit'](_0xaab74d[_0xab2b('0x2c')],[_0xab2b('0x94'),'id'])||{});}})[_0xab2b('0x14')](respondWithResult(_0x209561,null))[_0xab2b('0x1d')](handleError(_0x209561,null));};exports[_0xab2b('0x95')]=function(_0x17e820,_0x13f262){var _0x5eb932={'raw':![],'where':{}};var _0x3ca91f={};var _0x4d9fd8={'count':0x0,'rows':[]};return db['ChatInteraction'][_0xab2b('0x48')]({'where':{'id':_0x17e820['params']['id']}})[_0xab2b('0x14')](handleEntityNotFound(_0x13f262,null))[_0xab2b('0x14')](function(_0x13860c){if(_0x13860c){_0x3ca91f[_0xab2b('0x39')]=_[_0xab2b('0x3a')](db['ChatMessage'][_0xab2b('0x32')]);_0x3ca91f[_0xab2b('0x3b')]=_[_0xab2b('0x3a')](_0x17e820[_0xab2b('0x3b')]);_0x3ca91f[_0xab2b('0x3c')]=_[_0xab2b('0x3d')](_0x3ca91f[_0xab2b('0x39')],_0x3ca91f[_0xab2b('0x3b')]);_0x5eb932['attributes']=_[_0xab2b('0x3d')](_0x3ca91f[_0xab2b('0x39')],qs['fields'](_0x17e820[_0xab2b('0x3b')][_0xab2b('0x3e')]));_0x5eb932['attributes']=_0x5eb932[_0xab2b('0x3f')]['length']?_0x5eb932['attributes']:_0x3ca91f['model'];if(!_0x17e820['query'][_0xab2b('0x96')]('nolimit')){_0x5eb932['limit']=qs[_0xab2b('0x23')](_0x17e820['query']['limit']);_0x5eb932[_0xab2b('0x21')]=qs[_0xab2b('0x21')](_0x17e820[_0xab2b('0x3b')][_0xab2b('0x21')]);}_0x5eb932[_0xab2b('0x97')]=qs[_0xab2b('0x98')](_0x17e820[_0xab2b('0x3b')][_0xab2b('0x98')]);_0x5eb932['where']=qs[_0xab2b('0x3c')](_[_0xab2b('0x99')](_0x17e820['query'],_0x3ca91f[_0xab2b('0x3c')]));_0x5eb932['where'][_0xab2b('0x9a')]=_0x13860c['id'];if(_0x17e820[_0xab2b('0x3b')][_0xab2b('0x9b')]){_0x5eb932['where']=_[_0xab2b('0x2b')](_0x5eb932[_0xab2b('0x9c')],{'$or':_[_0xab2b('0x30')](_0x5eb932[_0xab2b('0x3f')],function(_0x1cf267){var _0x5acdcd={};_0x5acdcd[_0x1cf267]={'$like':'%'+_0x17e820[_0xab2b('0x3b')][_0xab2b('0x9b')]+'%'};return _0x5acdcd;})});}if(_0x17e820[_0xab2b('0x3b')]['$gte']){var _0x4c8a24=_0x17e820[_0xab2b('0x3b')][_0xab2b('0x9d')][_0xab2b('0x9e')](',');var _0x43be03={};_0x43be03[_0x4c8a24[0x0]]={'$gte':moment(_0x4c8a24[0x1])[_0xab2b('0x78')](_0xab2b('0x9f'))};_0x5eb932[_0xab2b('0x9c')]=_[_0xab2b('0x2b')](_0x5eb932['where'],_0x43be03);}_0x5eb932=_['merge']({},_0x5eb932,_0x17e820[_0xab2b('0x43')]);return db[_0xab2b('0x5b')][_0xab2b('0x24')]({'where':_0x5eb932[_0xab2b('0x9c')]})[_0xab2b('0x14')](function(_0x3715e9){_0x4d9fd8[_0xab2b('0x24')]=_0x3715e9;if(_0x17e820['query']['includeAll']){_0x5eb932[_0xab2b('0x42')]=[{'all':!![]}];}return db[_0xab2b('0x5b')]['findAll'](_0x5eb932);})['then'](function(_0x4ea638){_0x4d9fd8[_0xab2b('0xa0')]=_0x4ea638;return _0x4d9fd8;});}})['then'](respondWithFilteredResult(_0x13f262,_0x5eb932))[_0xab2b('0x1d')](handleError(_0x13f262,null));};exports[_0xab2b('0xa1')]=function(_0x1d5f1d,_0x5c6a0d){var _0x47e1b2={'where':{}},_0x3c15dc={},_0x14fa91={'count':0x0,'rows':[]};return db[_0xab2b('0x31')][_0xab2b('0x48')]({'where':{'id':_0x1d5f1d['params']['id']}})[_0xab2b('0x14')](handleEntityNotFound(_0x5c6a0d,null))[_0xab2b('0x14')](function(_0x27b183){if(_0x27b183){_0x3c15dc['model']=_[_0xab2b('0x3a')](db[_0xab2b('0x5b')][_0xab2b('0x32')]);_0x3c15dc['query']=_[_0xab2b('0x3a')](_0x1d5f1d['query']);_0x3c15dc[_0xab2b('0x3c')]=_['intersection'](_0x3c15dc['model'],_0x3c15dc['query']);_0x47e1b2['attributes']=_[_0xab2b('0x3d')](_0x3c15dc[_0xab2b('0x39')],qs[_0xab2b('0x3e')](_0x1d5f1d['query']['fields']));_0x47e1b2['attributes']=_0x47e1b2[_0xab2b('0x3f')][_0xab2b('0x40')]?_0x47e1b2[_0xab2b('0x3f')]:_0x3c15dc[_0xab2b('0x39')];if(!_0x1d5f1d[_0xab2b('0x3b')][_0xab2b('0x96')]('nolimit')){_0x47e1b2['limit']=qs[_0xab2b('0x23')](_0x1d5f1d['query'][_0xab2b('0x23')]);_0x47e1b2[_0xab2b('0x21')]=qs[_0xab2b('0x21')](_0x1d5f1d[_0xab2b('0x3b')][_0xab2b('0x21')]);}_0x47e1b2[_0xab2b('0x97')]=qs[_0xab2b('0x98')](_0x1d5f1d[_0xab2b('0x3b')][_0xab2b('0x98')]);_0x47e1b2[_0xab2b('0x9c')]=qs['filters'](_[_0xab2b('0x99')](_0x1d5f1d[_0xab2b('0x3b')],_0x3c15dc[_0xab2b('0x3c')]));_0x47e1b2[_0xab2b('0x9c')][_0xab2b('0x9a')]=_0x27b183['id'];if(_0x1d5f1d[_0xab2b('0x3b')][_0xab2b('0x9b')]){_0x47e1b2['where']=_['merge'](_0x47e1b2['where'],{'$or':_[_0xab2b('0x30')](_0x47e1b2['attributes'],function(_0x3d9bc1){var _0x351bda={};_0x351bda[_0x3d9bc1]={'$like':'%'+_0x1d5f1d[_0xab2b('0x3b')][_0xab2b('0x9b')]+'%'};return _0x351bda;})});}_0x47e1b2[_0xab2b('0x9c')][_0xab2b('0x8a')]=![];if(_0x1d5f1d[_0xab2b('0x3b')]['id']){_0x47e1b2['where']['id']={'$gt':_0x1d5f1d[_0xab2b('0x3b')]['id']};}_0x47e1b2=_[_0xab2b('0x2b')]({},_0x47e1b2,_0x1d5f1d['options']);return db[_0xab2b('0x5b')][_0xab2b('0x24')]({'where':_0x47e1b2['where']})[_0xab2b('0x14')](function(_0x53dc5a){_0x14fa91['count']=_0x53dc5a;_0x47e1b2[_0xab2b('0x42')]=[];if(_0x1d5f1d[_0xab2b('0x3b')][_0xab2b('0xa2')]){_0x47e1b2[_0xab2b('0x42')]['push']({'model':db[_0xab2b('0x7c')],'as':_0xab2b('0x7c'),'attributes':['id',_0xab2b('0x85'),_0xab2b('0x84')]});}if(_0x1d5f1d[_0xab2b('0x3b')][_0xab2b('0x41')]){_0x47e1b2[_0xab2b('0x42')]=[{'all':!![]}];}return db[_0xab2b('0x5b')]['findAll'](_0x47e1b2);})['then'](function(_0x5ab671){_0x14fa91[_0xab2b('0xa0')]=_0x5ab671;return _0x14fa91;});}})[_0xab2b('0x14')](respondWithFilteredResult(_0x5c6a0d,_0x47e1b2))['catch'](handleError(_0x5c6a0d,null));};exports['addTags']=function(_0x3d1b1b,_0x373dec){return db[_0xab2b('0x31')][_0xab2b('0x44')]({'where':{'id':_0x3d1b1b[_0xab2b('0x38')]['id']}})[_0xab2b('0x14')](handleEntityNotFound(_0x373dec,null))[_0xab2b('0x14')](function(_0x47b2d6){if(_0x47b2d6){return _0x47b2d6['setTags'](_0x3d1b1b['body'][_0xab2b('0x94')],_[_0xab2b('0xa3')](_0x3d1b1b['body'],[_0xab2b('0x94'),'id'])||{})['spread'](function(){return db[_0xab2b('0xa4')][_0xab2b('0x35')]({'attributes':['id','name',_0xab2b('0xa5')],'where':{'id':_0x3d1b1b[_0xab2b('0x2c')][_0xab2b('0x94')]}});})['then'](function(_0xe20331){socket['emit'](_0xab2b('0xa6'),{'id':Number(_0x3d1b1b[_0xab2b('0x38')]['id']),'tags':_0xe20331||[]});return{'id':Number(_0x3d1b1b[_0xab2b('0x38')]['id']),'tags':_0xe20331||[]};});}})[_0xab2b('0x14')](respondWithResult(_0x373dec,null))[_0xab2b('0x1d')](handleError(_0x373dec,null));};exports['removeTags']=function(_0x1100d8,_0x4b965a){return db['ChatInteraction'][_0xab2b('0x44')]({'where':{'id':_0x1100d8[_0xab2b('0x38')]['id']}})[_0xab2b('0x14')](handleEntityNotFound(_0x4b965a,null))['then'](function(_0x502730){if(_0x502730){return _0x502730[_0xab2b('0xa7')](_0x1100d8[_0xab2b('0x3b')]['ids']);}})[_0xab2b('0x14')](respondWithStatusCode(_0x4b965a,null))[_0xab2b('0x1d')](handleError(_0x4b965a,null));};exports[_0xab2b('0x73')]=function(_0x14acb6,_0x5b3f48){var _0x39f92a=moment()[_0xab2b('0xa8')]()[_0xab2b('0xa9')]();var _0x383912=path[_0xab2b('0x70')](config[_0xab2b('0x76')],_0xab2b('0xaa'),_0xab2b('0xab'),'tmp');var _0x592705=path[_0xab2b('0x70')](config['root'],_0xab2b('0xaa'),_0xab2b('0xab'),_0xab2b('0xac'));var _0x446dca=path[_0xab2b('0x70')](_0x383912,_0x39f92a);var _0x34bbea=util['format'](_0xab2b('0xad'),_0x14acb6[_0xab2b('0x38')]['id'],_0x39f92a);var _0x457dd3=path[_0xab2b('0x70')](_0x383912,_0x34bbea);var _0x4158ee=[];_0x4158ee['push']({'model':db[_0xab2b('0x7c')],'as':_0xab2b('0x7c'),'attributes':['id','fullname'],'raw':!![]});_0x4158ee['push']({'model':db['CmContact'],'as':_0xab2b('0x5f'),'attributes':['id',_0xab2b('0xae'),_0xab2b('0xaf')],'raw':!![]});if(_0x14acb6['query'][_0xab2b('0xac')]){_0x4158ee[_0xab2b('0xb0')]({'model':db[_0xab2b('0x6d')],'as':_0xab2b('0x6d'),'raw':!![]});}var _0x3d76d1=[{'model':db[_0xab2b('0x5b')],'as':'Messages','attributes':['id',_0xab2b('0x2c'),'createdAt',_0xab2b('0x89'),'secret',_0xab2b('0xb1')],'include':_0x4158ee}];_0x3d76d1[_0xab2b('0xb0')]({'model':db[_0xab2b('0x7d')],'as':'Account','attributes':['id',_0xab2b('0x2a')]});_0x3d76d1[_0xab2b('0xb0')]({'model':db[_0xab2b('0x7c')],'as':_0xab2b('0xb2'),'attributes':['id',_0xab2b('0x85')]});return db['ChatInteraction'][_0xab2b('0x44')]({'where':{'id':_0x14acb6[_0xab2b('0x38')]['id']},'include':_0x3d76d1})[_0xab2b('0x14')](handleEntityNotFound(_0x5b3f48,null))[_0xab2b('0x14')](function(_0x244eea){if(_0x244eea){var _0x4e5b2a=_0x244eea[_0xab2b('0xb3')]({'plain':!![]});fs['mkdirSync'](_0x446dca);var _0x2cbf96={'channel':_0xab2b('0xb4'),'account':_0x4e5b2a[_0xab2b('0xb5')][_0xab2b('0x2a')],'agent':_0x4e5b2a[_0xab2b('0xb2')]?_0x4e5b2a[_0xab2b('0xb2')]['fullname']:_0xab2b('0xb6'),'createdAt':moment(_0x4e5b2a['createdAt'])[_0xab2b('0x78')](_0xab2b('0x9f'))[_0xab2b('0xa9')](),'closedAt':_0x4e5b2a[_0xab2b('0x65')]?moment(_0x4e5b2a[_0xab2b('0xb7')])[_0xab2b('0x78')]('YYYY-MM-DD\x20HH:mm:ss')[_0xab2b('0xa9')]():'','disposition':_0x4e5b2a['disposition'],'chatInfo':{'browser':_0x4e5b2a[_0xab2b('0xb8')],'os':_0x4e5b2a[_0xab2b('0xb9')],'referer':_0x4e5b2a['referer'],'customerIp':_0x4e5b2a['customerIp'],'customerPort':_0x4e5b2a[_0xab2b('0xba')]?_0x4e5b2a[_0xab2b('0xba')]:_0xab2b('0xb6')},'messages':_(_0x4e5b2a[_0xab2b('0x7b')])[_0xab2b('0xbb')]()[_0xab2b('0x9b')]({'secret':![]})['map'](function(_0x3eff44){if(_0x3eff44['Attachment']){var _0x1ac696=path[_0xab2b('0x70')](_0x592705,_0x3eff44[_0xab2b('0x6d')][_0xab2b('0x6a')]);if(fs[_0xab2b('0xbc')](_0x1ac696)){fs[_0xab2b('0xbd')](_0x1ac696)[_0xab2b('0xbe')](fs[_0xab2b('0xbf')](path['join'](_0x446dca,_0x3eff44[_0xab2b('0x6d')]['basename'])));}}return{'date':moment(_0x3eff44[_0xab2b('0x87')])[_0xab2b('0x78')]('YYYY-MM-DD\x20HH:mm:ss')[_0xab2b('0xa9')](),'sender':_0x3eff44[_0xab2b('0x89')]===_0xab2b('0x5a')?_0x3eff44[_0xab2b('0x7c')]?_0x3eff44[_0xab2b('0x7c')]['fullname']:_0xab2b('0x81'):_0x3eff44[_0xab2b('0x5f')][_0xab2b('0xae')]+(_0x3eff44['Contact'][_0xab2b('0xaf')]?'\x20'+_0x3eff44['Contact'][_0xab2b('0xaf')]:''),'body':_0x3eff44['Attachment']?_0x3eff44[_0xab2b('0x6d')][_0xab2b('0x6a')]:_0x3eff44[_0xab2b('0x2c')],'direction':_0x3eff44[_0xab2b('0x89')]==='out'?'A':'C','secret':_0x3eff44[_0xab2b('0x8a')],'read':_0x3eff44[_0xab2b('0xb1')],'attachment':_0x3eff44[_0xab2b('0x6d')]};})['value']()};return ejs[_0xab2b('0xc0')](path['join'](config[_0xab2b('0x76')],_0xab2b('0xaa'),_0xab2b('0xc1'),'downloadInteraction.ejs'),{'interaction':_0x2cbf96})[_0xab2b('0x14')](function(_0x1fa2cb){var _0x4a8196=path[_0xab2b('0x70')](_0x446dca,_0xab2b('0xc2')+_0x4e5b2a['id']+'-'+_0x39f92a+_0xab2b('0xc3'));var _0x559906={'path':_0x4a8196,'channel':'Chat','interactionId':_0x4e5b2a['id']};return pdf[_0xab2b('0xc4')](_0x1fa2cb,_0x559906);})[_0xab2b('0x14')](function(){return new Promise(function(_0x152c62,_0x101787){zipdir(_0x446dca,{'saveTo':_0x457dd3},function(_0x5dd5fc,_0x50ef6b){if(_0x5dd5fc)return _0x101787(_0x5dd5fc);return _0x152c62(_0x50ef6b);});})['then'](function(){return new BPromise(function(_0x3e889c,_0x473d63){rimraf(_0x446dca,function(_0x29e5a3){if(_0x29e5a3)_0x473d63(_0x29e5a3);return _0x3e889c();});});})['then'](function(){return _0x5b3f48[_0xab2b('0x73')](_0x457dd3,_0x34bbea,function(_0x493d71){if(_0x493d71){logger[_0xab2b('0x1a')](_0xab2b('0xc5'),_0x493d71);}else{fs[_0xab2b('0xc6')](_0x457dd3);}});});});}else{return _0x5b3f48[_0xab2b('0x1e')](0xc8);}})[_0xab2b('0x1d')](handleError(_0x5b3f48,null));};