Built motion from commit d5e4af8c.|2.6.23
[motion2.git] / server / api / chatInteraction / chatInteraction.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x54e2=['attachmentDownload','Unauthorized','findOne','attachId','ChatOfflineMessageId','join','root','server/files/attachments/','close','mailTranscript','server/files/chat/upload/','format','now','pathTranscript','ChatMessage','Messages','User','ChatWebsiteId','CmContact','ContactId','%s%d','agentAlias','System','customer','website_alias','agent_alias','alias','agent_fullname','[%s]\x20%s:\x20%s\x0a','createdAt','MM/DD/YYYY\x20HH:mm:ss','direction','appendFileSync','MailAccount','Smtp','CloudProvider','SendMail','sendMail','\x22%s\x22\x20<%s>','addMessage','ids','getMessages','length','hasOwnProperty','nolimit','order','where','pick','ChatInteractionId','filter','$gte','split','YYYY-MM-DD\x20HH:mm:ss','includeAll','include','rows','sort','secret','includeAgent','push','setTags','omit','spread','Tag','color','emit','chatInteractionTags:save','download','unix','toString','server','files','attachments','transcript-%d-%s.zip','lastName','read','Owner','get','mkdirSync','Chat','closed','closedAt','disposition','browserName','referer','customerPort','N.A.','tail','basename','existsSync','createReadStream','pipe','firstName','value','renderFile','downloadInteraction.ejs','createPdfFromHTML','err','unlinkSync','rimraf','zip-dir','bluebird','mustache','util','path','lodash','ioredis','../../components/parsers/qs','../../config/logger','../../mysqldb','redis','defaults','socket.io-emitter','./chatInteraction.socket','register','jayson/promise','client','http','request','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','status','end','undefined','limit','count','offset','Content-Range','destroy','sendStatus','name','send','render','merge','body','contact','account','index','map','ChatInteraction','rawAttributes','fieldName','key','findAll','user','catch','show','keys','query','filters','model','intersection','fields','attributes','options','find','create','update','params','describe','ChatWebsite','vidaooApiKey','vidaooEscalation','vidaooTopic','vidaooNote','vidaooMetadata','fullname','https://api-vidaoo.xcally.com/api/v1/meetings','email','isNull','follow','parse','metadata','Sequelize','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','out','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','Contact','abandon','entity\x20not\x20found','UserId','Interaction\x20already\x20assigned','attachmentUpload','file','type','Attachment'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x54e2,0x1ed));var _0x254e=function(_0x33a563,_0x595854){_0x33a563=_0x33a563-0x0;var _0x2e5ed4=_0x54e2[_0x33a563];return _0x2e5ed4;};'use strict';var rimraf=require(_0x254e('0x0'));var zipdir=require(_0x254e('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x254e('0x2'));var Mustache=require(_0x254e('0x3'));var util=require(_0x254e('0x4'));var path=require(_0x254e('0x5'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x254e('0x6'));var Redis=require(_0x254e('0x7'));var interaction=require('../../components/interaction/service');var qs=require(_0x254e('0x8'));var pdf=require('../../components/export/pdf');var logger=require(_0x254e('0x9'))('api');var config=require('../../config/environment');var db=require(_0x254e('0xa'))['db'];config[_0x254e('0xb')]=_[_0x254e('0xc')](config[_0x254e('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0x254e('0xd'))(new Redis(config[_0x254e('0xb')]));require(_0x254e('0xe'))[_0x254e('0xf')](socket);var jayson=require(_0x254e('0x10'));var client=jayson[_0x254e('0x11')][_0x254e('0x12')]({'port':0x232b});var client9004=jayson[_0x254e('0x11')][_0x254e('0x12')]({'port':0x232c});function respondWithRpcPromise(_0x28e3ad,_0x53c0c9,_0x18ec2b,_0x11284e){return new BPromise(function(_0x24cc1b,_0x4301f6){var _0x2bfe36=_0x11284e||client;return _0x2bfe36[_0x254e('0x13')](_0x28e3ad,_0x18ec2b)[_0x254e('0x14')](function(_0xeddbf5){logger[_0x254e('0x15')](_0x254e('0x16'),_0x53c0c9,_0x254e('0x17'));logger[_0x254e('0x18')](_0x254e('0x19'),_0x53c0c9,'request\x20sent',JSON[_0x254e('0x1a')](_0xeddbf5));if(_0xeddbf5[_0x254e('0x1b')]){if(_0xeddbf5[_0x254e('0x1b')][_0x254e('0x1c')]===0x1f4){logger['error'](_0x254e('0x16'),_0x53c0c9,_0xeddbf5[_0x254e('0x1b')][_0x254e('0x1d')]);return _0x4301f6(_0xeddbf5[_0x254e('0x1b')][_0x254e('0x1d')]);}logger['error']('ChatInteraction,\x20%s,\x20%s',_0x53c0c9,_0xeddbf5[_0x254e('0x1b')]['message']);return _0x24cc1b(_0xeddbf5[_0x254e('0x1b')][_0x254e('0x1d')]);}else{logger['info']('ChatInteraction,\x20%s,\x20%s',_0x53c0c9,_0x254e('0x17'));_0x24cc1b(_0xeddbf5[_0x254e('0x1e')][_0x254e('0x1d')]);}})['catch'](function(_0x37a32e){logger[_0x254e('0x1b')](_0x254e('0x16'),_0x53c0c9,_0x37a32e);_0x4301f6(_0x37a32e);});});}function respondWithStatusCode(_0x462558,_0x347db8){_0x347db8=_0x347db8||0xcc;return function(_0x58c1b3){if(_0x58c1b3){return _0x462558['sendStatus'](_0x347db8);}return _0x462558[_0x254e('0x1f')](_0x347db8)[_0x254e('0x20')]();};}function respondWithResult(_0x6c4021,_0x3da757){_0x3da757=_0x3da757||0xc8;return function(_0x25a3b1){if(_0x25a3b1){return _0x6c4021[_0x254e('0x1f')](_0x3da757)['json'](_0x25a3b1);}};}function respondWithFilteredResult(_0x30c01f,_0x811a9){return function(_0x55d90f){if(_0x55d90f){var _0x3dfc20=typeof _0x811a9['offset']===_0x254e('0x21')&&typeof _0x811a9[_0x254e('0x22')]==='undefined';var _0x1da07a=_0x55d90f[_0x254e('0x23')];var _0x4db598=_0x3dfc20?0x0:_0x811a9[_0x254e('0x24')];var _0x1e5bf0=_0x3dfc20?_0x55d90f[_0x254e('0x23')]:_0x811a9[_0x254e('0x24')]+_0x811a9[_0x254e('0x22')];var _0x4661a9;if(_0x1e5bf0>=_0x1da07a){_0x1e5bf0=_0x1da07a;_0x4661a9=0xc8;}else{_0x4661a9=0xce;}_0x30c01f[_0x254e('0x1f')](_0x4661a9);return _0x30c01f['set'](_0x254e('0x25'),_0x4db598+'-'+_0x1e5bf0+'/'+_0x1da07a)['json'](_0x55d90f);}return null;};}function saveUpdates(_0x2d5f79){return function(_0x595780){if(_0x595780){return _0x595780['update'](_0x2d5f79)['then'](function(_0x4a9359){return _0x4a9359;});}return null;};}function removeEntity(_0x1efd3c){return function(_0x57ed34){if(_0x57ed34){return _0x57ed34[_0x254e('0x26')]()[_0x254e('0x14')](function(){_0x1efd3c['status'](0xcc)[_0x254e('0x20')]();});}};}function handleEntityNotFound(_0x4a66f9){return function(_0x365eea){if(!_0x365eea){_0x4a66f9[_0x254e('0x27')](0x194);}return _0x365eea;};}function handleError(_0x43b538,_0xe28d00){_0xe28d00=_0xe28d00||0x1f4;return function(_0x53ef78){logger[_0x254e('0x1b')](_0x53ef78['stack']);if(_0x53ef78[_0x254e('0x28')]){delete _0x53ef78[_0x254e('0x28')];}_0x43b538[_0x254e('0x1f')](_0xe28d00)[_0x254e('0x29')](_0x53ef78);};}function getMustacheRender(_0x28b82f,_0x4b2eff){return Mustache[_0x254e('0x2a')](_0x28b82f,_[_0x254e('0x2b')](_0x4b2eff[_0x254e('0x2c')],{'contact':_0x4b2eff[_0x254e('0x2d')],'message':_0x4b2eff[_0x254e('0x1d')],'agent':_0x4b2eff['agent'],'interaction':_0x4b2eff['interaction'],'account':_0x4b2eff[_0x254e('0x2e')]}))||'';}exports[_0x254e('0x2f')]=function(_0x2b28a1,_0x1857ff){var _0x57d590={};var _0x520616=_[_0x254e('0x30')](db[_0x254e('0x31')][_0x254e('0x32')],function(_0x52dc5c){return{'name':_0x52dc5c[_0x254e('0x33')],'type':_0x52dc5c['type'][_0x254e('0x34')]};});_0x57d590=qs['getOptions'](_0x520616,_0x2b28a1);return interaction[_0x254e('0x35')]('chat',_0x2b28a1['query'],_0x2b28a1[_0x254e('0x36')],_0x57d590,_0x520616)[_0x254e('0x14')](respondWithFilteredResult(_0x1857ff,_0x57d590))[_0x254e('0x37')](handleError(_0x1857ff,null));};exports[_0x254e('0x38')]=function(_0x1a8ba6,_0x48d4dc){var _0x4a5f35={'raw':![],'where':{'id':_0x1a8ba6['params']['id']}},_0x56325c={};_0x56325c['model']=_[_0x254e('0x39')](db[_0x254e('0x31')][_0x254e('0x32')]);_0x56325c[_0x254e('0x3a')]=_[_0x254e('0x39')](_0x1a8ba6[_0x254e('0x3a')]);_0x56325c[_0x254e('0x3b')]=_['intersection'](_0x56325c[_0x254e('0x3c')],_0x56325c['query']);_0x4a5f35['attributes']=_[_0x254e('0x3d')](_0x56325c[_0x254e('0x3c')],qs[_0x254e('0x3e')](_0x1a8ba6[_0x254e('0x3a')]['fields']));_0x4a5f35[_0x254e('0x3f')]=_0x4a5f35[_0x254e('0x3f')]['length']?_0x4a5f35['attributes']:_0x56325c[_0x254e('0x3c')];if(_0x1a8ba6['query']['includeAll']){_0x4a5f35['include']=[{'all':!![]}];}_0x4a5f35=_[_0x254e('0x2b')]({},_0x4a5f35,_0x1a8ba6[_0x254e('0x40')]);return db['ChatInteraction'][_0x254e('0x41')](_0x4a5f35)[_0x254e('0x14')](handleEntityNotFound(_0x48d4dc,null))[_0x254e('0x14')](respondWithResult(_0x48d4dc,null))[_0x254e('0x37')](handleError(_0x48d4dc,null));};exports[_0x254e('0x42')]=function(_0x336b7f,_0x4ebff1){return db[_0x254e('0x31')][_0x254e('0x42')](_0x336b7f['body'],{})[_0x254e('0x14')](respondWithResult(_0x4ebff1,0xc9))['catch'](handleError(_0x4ebff1,null));};exports[_0x254e('0x43')]=function(_0x568864,_0x59f3fb){if(_0x568864[_0x254e('0x2c')]['id']){delete _0x568864[_0x254e('0x2c')]['id'];}return db[_0x254e('0x31')]['find']({'where':{'id':_0x568864[_0x254e('0x44')]['id']}})['then'](handleEntityNotFound(_0x59f3fb,null))[_0x254e('0x14')](saveUpdates(_0x568864['body'],null))[_0x254e('0x14')](respondWithResult(_0x59f3fb,null))[_0x254e('0x37')](handleError(_0x59f3fb,null));};exports[_0x254e('0x26')]=function(_0x37fcaf,_0x4ee134){return db[_0x254e('0x31')][_0x254e('0x41')]({'where':{'id':_0x37fcaf[_0x254e('0x44')]['id']}})[_0x254e('0x14')](handleEntityNotFound(_0x4ee134,null))['then'](removeEntity(_0x4ee134,null))[_0x254e('0x37')](handleError(_0x4ee134,null));};exports[_0x254e('0x45')]=function(_0x496b8d,_0x17897a){return db[_0x254e('0x31')][_0x254e('0x45')]()[_0x254e('0x14')](respondWithResult(_0x17897a,null))[_0x254e('0x37')](handleError(_0x17897a,null));};exports['createVidaooSession']=function(_0x146819,_0x4a7e92){var _0x167c28=_0x146819[_0x254e('0x44')]['id'];var _0x3f493f;var _0x48e59d;var _0x93dbcf;return db[_0x254e('0x31')]['findOne']({'where':{'id':_0x167c28}})['then'](function(_0x5ef451){_0x3f493f=_0x5ef451;return db[_0x254e('0x46')]['findOne']({'where':{'id':_0x5ef451['ChatWebsiteId']},'attributes':['id',_0x254e('0x47'),_0x254e('0x48'),_0x254e('0x49'),_0x254e('0x4a'),_0x254e('0x4b')],'raw':!![]});})[_0x254e('0x14')](function(_0x173861){if(_0x173861&&_0x173861['vidaooApiKey']&&_0x173861[_0x254e('0x48')]){_0x48e59d=_0x173861;var _0x2b6ff8={'interaction':{'id':_0x167c28},'agent':{'id':_0x146819[_0x254e('0x36')]['id'],'name':_0x146819[_0x254e('0x36')][_0x254e('0x28')],'fullname':_0x146819[_0x254e('0x36')][_0x254e('0x4c')],'email':_0x146819['user']['email']},'contact':_0x146819[_0x254e('0x2c')]['contact'],'account':_0x146819[_0x254e('0x2c')]['account']};var _0x11f2c4={'rejectUnauthorized':![],'method':'POST','url':_0x254e('0x4d'),'headers':{'X-APIKEY':_0x173861[_0x254e('0x47')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x146819[_0x254e('0x36')][_0x254e('0x4e')]],'buttons':null,'topic':_0x48e59d[_0x254e('0x49')],'note':_[_0x254e('0x4f')](_0x48e59d[_0x254e('0x4a')])?null:getMustacheRender(_0x48e59d[_0x254e('0x4a')],_0x2b6ff8),'metadata':null},'redirect':_0x254e('0x50'),'json':!![]};try{if(!_['isNull'](_0x48e59d[_0x254e('0x4b')])){var _0x4a5c09=getMustacheRender(_0x48e59d[_0x254e('0x4b')],_0x2b6ff8);var _0x3679e9=JSON[_0x254e('0x51')](_0x4a5c09);_0x11f2c4[_0x254e('0x2c')][_0x254e('0x52')]=_0x3679e9;}}catch(_0x5436ff){throw new db[(_0x254e('0x53'))][(_0x254e('0x54'))](_0x254e('0x55'));}return rp(_0x11f2c4);}else{throw new db[(_0x254e('0x53'))][(_0x254e('0x54'))]('Error\x20in\x20Vidaoo\x20configuration');}})[_0x254e('0x14')](function(_0x29ff40){_0x93dbcf=_0x29ff40;if(_0x93dbcf['id']){var _0x5979a5={'body':_0x93dbcf['join_url'],'ChatWebsiteId':_0x48e59d['id'],'ChatInteractionId':_0x3f493f['id'],'direction':_0x254e('0x56'),'UserId':_0x146819[_0x254e('0x36')]['id']};return db['ChatMessage'][_0x254e('0x42')](_0x5979a5,{});}else{throw new db[(_0x254e('0x53'))][(_0x254e('0x54'))](_0x254e('0x57'));}})[_0x254e('0x14')](function(){return _0x3f493f[_0x254e('0x58')]({'vidaooSessionId':_0x93dbcf['id']});})[_0x254e('0x14')](respondWithResult(_0x4a7e92,null))[_0x254e('0x37')](handleError(_0x4a7e92,null));};exports['customUpdate']=function(_0x35faa3,_0x176086){if(_0x35faa3['body']['id']){delete _0x35faa3[_0x254e('0x2c')]['id'];}return db['ChatInteraction'][_0x254e('0x41')]({'where':{'id':_0x35faa3[_0x254e('0x44')]['id']},'include':[{'model':db['CmContact'],'as':_0x254e('0x59')}]})[_0x254e('0x14')](handleEntityNotFound(_0x176086,null))['then'](saveUpdates(_0x35faa3['body'],null))[_0x254e('0x14')](respondWithResult(_0x176086,null))[_0x254e('0x37')](handleError(_0x176086,null));};exports[_0x254e('0x5a')]=function(_0x20f7bd,_0x50805f){if(_0x20f7bd[_0x254e('0x2c')]['id']){delete _0x20f7bd['body']['id'];}return db[_0x254e('0x31')]['find']({'where':{'id':_0x20f7bd[_0x254e('0x44')]['id']}})[_0x254e('0x14')](function(_0x2539fe){if(!_0x2539fe){logger[_0x254e('0x1b')]('abandonInteraction,\x20%s,\x20%s,\x20%s',_0x254e('0x5a'),0x194,_0x254e('0x5b'));_0x50805f[_0x254e('0x27')](0x194);}else{if(_0x2539fe[_0x254e('0x5c')]){throw new db[(_0x254e('0x53'))]['ValidationError'](_0x254e('0x5d'));}}return _0x2539fe;})[_0x254e('0x14')](function(_0x28184b){if(_0x28184b){return _0x28184b[_0x254e('0x43')]({'closed':_0x20f7bd['body']['closed'],'disposition':_0x20f7bd[_0x254e('0x2c')]['disposition']})[_0x254e('0x14')](function(_0x58f107){return _0x58f107;});}})['then'](function(){return respondWithRpcPromise('AbandonInteraction',_0x254e('0x5a'),_0x20f7bd['body'],client9004);})[_0x254e('0x14')](respondWithResult(_0x50805f,null))['catch'](handleError(_0x50805f,null));};exports[_0x254e('0x5e')]=function(_0x3a3599,_0x476419){_0x3a3599[_0x254e('0x2c')]['name']=_0x3a3599[_0x254e('0x5f')]['originalname'];_0x3a3599[_0x254e('0x2c')]['basename']=_0x3a3599[_0x254e('0x5f')]['filename'];_0x3a3599[_0x254e('0x2c')][_0x254e('0x60')]=_0x3a3599[_0x254e('0x5f')]['mimetype'];return db[_0x254e('0x61')]['create'](_0x3a3599['body'])[_0x254e('0x14')](respondWithResult(_0x476419,0xc9))[_0x254e('0x37')](handleError(_0x476419,null));};exports[_0x254e('0x62')]=function(_0x6b8e2f,_0x1dc233){return db['ChatInteraction']['findOne']({'where':{'id':_0x6b8e2f[_0x254e('0x44')]['id']},'raw':!![]})[_0x254e('0x14')](handleEntityNotFound(_0x1dc233,null))[_0x254e('0x14')](function(_0x42cf89){if(_0x42cf89){if(_0x42cf89['closed']){return _0x1dc233[_0x254e('0x1f')](0x193)['json']({'status':0x193,'message':_0x254e('0x63')});}return db[_0x254e('0x61')][_0x254e('0x64')]({'where':{'id':_0x6b8e2f[_0x254e('0x3a')][_0x254e('0x65')]},'raw':!![]})[_0x254e('0x14')](handleEntityNotFound(_0x1dc233,null));}})[_0x254e('0x14')](function(_0x289cdc){if(_0x289cdc){var _0xe92adc=_0x289cdc[_0x254e('0x66')]!==null;var _0x35a2f2=path[_0x254e('0x67')](config[_0x254e('0x68')],_0x254e('0x69'));if(_0xe92adc){_0x35a2f2=path[_0x254e('0x67')](_0x35a2f2,'offline-chat/');}var _0x2a2f00=path[_0x254e('0x67')](_0x35a2f2,_0x289cdc['basename']);return _0x1dc233['download'](_0x2a2f00);}})['catch'](handleError(_0x1dc233,null));};exports[_0x254e('0x6a')]=function(_0x325d99,_0x477f3c){var _0x369d49=null;var _0x2ec11c=null;var _0x24c6ea=null;if(_0x325d99[_0x254e('0x2c')]['id']){delete _0x325d99[_0x254e('0x2c')]['id'];}if(_0x325d99['body'][_0x254e('0x6b')]){_0x24c6ea=path[_0x254e('0x67')](config['root'],_0x254e('0x6c'),util[_0x254e('0x6d')]('transcript-%s.txt',Date[_0x254e('0x6e')]()));_0x325d99[_0x254e('0x2c')][_0x254e('0x6f')]=_0x24c6ea;}return db[_0x254e('0x31')][_0x254e('0x41')]({'where':{'id':_0x325d99['params']['id']},'include':[{'model':db[_0x254e('0x70')],'as':_0x254e('0x71'),'include':[{'model':db[_0x254e('0x72')],'as':_0x254e('0x72')}]}]})[_0x254e('0x14')](handleEntityNotFound(_0x477f3c,null))[_0x254e('0x14')](saveUpdates(_0x325d99[_0x254e('0x2c')],null))[_0x254e('0x14')](function(_0x19ce95){if(_0x19ce95){_0x369d49=_0x19ce95;return db[_0x254e('0x46')][_0x254e('0x41')]({'where':{'id':_0x369d49[_0x254e('0x73')]}});}})[_0x254e('0x14')](function(_0xe1b862){if(_0xe1b862){_0x2ec11c=_0xe1b862;return db[_0x254e('0x74')][_0x254e('0x41')]({'where':{'id':_0x369d49[_0x254e('0x75')]}});}})[_0x254e('0x14')](function(_0x421d6b){if(_0x421d6b){if(_0x24c6ea){var _0x581324=null;for(var _0x36028f=0x1;_0x36028f<_0x369d49[_0x254e('0x71')]['length'];++_0x36028f){_0x581324=_0x369d49[_0x254e('0x71')][_0x36028f];var _0x4ba602=_0x581324[_0x254e('0x5c')]?util[_0x254e('0x6d')](_0x254e('0x76'),_0x2ec11c[_0x254e('0x77')],_0x581324['UserId']):_0x254e('0x78');var _0x2c3f2f=_0x325d99[_0x254e('0x2c')][_0x254e('0x79')]||util[_0x254e('0x6d')](_0x254e('0x76'),'Visitor',_0x581324['ContactId']);switch(_0x2ec11c['agentIdentifier']){case _0x254e('0x7a'):_0x4ba602=_0x581324[_0x254e('0x5c')]?util[_0x254e('0x6d')](_0x254e('0x76'),_0x2ec11c[_0x254e('0x77')],_0x581324[_0x254e('0x5c')]):_0x254e('0x78');break;case _0x254e('0x7b'):_0x4ba602=_0x581324['UserId']?_0x581324[_0x254e('0x72')][_0x254e('0x7c')]||_0x581324[_0x254e('0x72')][_0x254e('0x4c')]:'System';break;case _0x254e('0x7d'):_0x4ba602=_0x581324['UserId']?_0x581324[_0x254e('0x72')]['fullname']:_0x254e('0x78');break;default:_0x4ba602=_0x581324[_0x254e('0x5c')]?util[_0x254e('0x6d')](_0x254e('0x76'),_0x2ec11c[_0x254e('0x77')],_0x581324[_0x254e('0x5c')]):_0x254e('0x78');}var _0x471c73=util['format'](_0x254e('0x7e'),moment(_0x581324[_0x254e('0x7f')])[_0x254e('0x6d')](_0x254e('0x80')),_0x581324[_0x254e('0x81')]==='in'?_0x2c3f2f:_0x4ba602,_0x581324[_0x254e('0x2c')]);if(!_0x581324['secret']){fs[_0x254e('0x82')](_0x24c6ea,_0x471c73);}}return db[_0x254e('0x83')][_0x254e('0x64')]({'where':{'service':!![]},'include':[{'model':db['MailServerOut'],'as':_0x254e('0x84'),'raw':!![],'include':[{'model':db[_0x254e('0x85')],'as':_0x254e('0x85'),'raw':!![]}]}]});}}})[_0x254e('0x14')](function(_0x1bbd75){if(!_0x1bbd75||!_0x1bbd75[_0x254e('0x84')]||!_0x325d99[_0x254e('0x2c')])return _0x369d49;var _0x2ae79f=_0x1bbd75['getSmtpOptions']();return respondWithRpcPromise(_0x254e('0x86'),_0x254e('0x87'),{'account':_0x2ae79f,'message':{'from':util[_0x254e('0x6d')](_0x254e('0x88'),_0x1bbd75[_0x254e('0x28')],_0x1bbd75[_0x254e('0x4e')]||_0x1bbd75[_0x254e('0x84')][_0x254e('0x36')]),'to':_0x325d99[_0x254e('0x2c')][_0x254e('0x6b')],'subject':'Mail\x20Transcript','text':util[_0x254e('0x6d')]('Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a',_0x325d99['body'][_0x254e('0x6b')]),'attachments':[{'path':_0x24c6ea}]}})[_0x254e('0x14')](function(){return _0x369d49;})[_0x254e('0x37')](function(_0x482587){logger[_0x254e('0x1b')](_0x482587);});})[_0x254e('0x14')](respondWithStatusCode(_0x477f3c,0xc8))[_0x254e('0x37')](handleError(_0x477f3c,null));};exports[_0x254e('0x89')]=function(_0x5c3871,_0x1230a8){return db[_0x254e('0x70')][_0x254e('0x41')]({'where':{'id':_0x5c3871[_0x254e('0x44')]['id']}})['then'](handleEntityNotFound(_0x1230a8,null))[_0x254e('0x14')](function(_0x385ff2){if(_0x385ff2){return _0x385ff2[_0x254e('0x89')](_0x5c3871[_0x254e('0x2c')][_0x254e('0x8a')],_['omit'](_0x5c3871[_0x254e('0x2c')],[_0x254e('0x8a'),'id'])||{});}})[_0x254e('0x14')](respondWithResult(_0x1230a8,null))[_0x254e('0x37')](handleError(_0x1230a8,null));};exports[_0x254e('0x8b')]=function(_0x41bc65,_0x313654){var _0xbc315={'raw':![],'where':{}};var _0x2124f8={};var _0x4af75a={'count':0x0,'rows':[]};return db[_0x254e('0x31')]['findOne']({'where':{'id':_0x41bc65[_0x254e('0x44')]['id']}})[_0x254e('0x14')](handleEntityNotFound(_0x313654,null))[_0x254e('0x14')](function(_0x5c4d51){if(_0x5c4d51){_0x2124f8[_0x254e('0x3c')]=_[_0x254e('0x39')](db[_0x254e('0x70')][_0x254e('0x32')]);_0x2124f8[_0x254e('0x3a')]=_[_0x254e('0x39')](_0x41bc65[_0x254e('0x3a')]);_0x2124f8[_0x254e('0x3b')]=_[_0x254e('0x3d')](_0x2124f8[_0x254e('0x3c')],_0x2124f8[_0x254e('0x3a')]);_0xbc315['attributes']=_['intersection'](_0x2124f8['model'],qs[_0x254e('0x3e')](_0x41bc65[_0x254e('0x3a')][_0x254e('0x3e')]));_0xbc315[_0x254e('0x3f')]=_0xbc315[_0x254e('0x3f')][_0x254e('0x8c')]?_0xbc315[_0x254e('0x3f')]:_0x2124f8[_0x254e('0x3c')];if(!_0x41bc65[_0x254e('0x3a')][_0x254e('0x8d')](_0x254e('0x8e'))){_0xbc315['limit']=qs[_0x254e('0x22')](_0x41bc65[_0x254e('0x3a')][_0x254e('0x22')]);_0xbc315[_0x254e('0x24')]=qs[_0x254e('0x24')](_0x41bc65[_0x254e('0x3a')][_0x254e('0x24')]);}_0xbc315[_0x254e('0x8f')]=qs['sort'](_0x41bc65[_0x254e('0x3a')]['sort']);_0xbc315[_0x254e('0x90')]=qs['filters'](_[_0x254e('0x91')](_0x41bc65[_0x254e('0x3a')],_0x2124f8['filters']));_0xbc315[_0x254e('0x90')][_0x254e('0x92')]=_0x5c4d51['id'];if(_0x41bc65[_0x254e('0x3a')][_0x254e('0x93')]){_0xbc315[_0x254e('0x90')]=_[_0x254e('0x2b')](_0xbc315[_0x254e('0x90')],{'$or':_[_0x254e('0x30')](_0xbc315[_0x254e('0x3f')],function(_0x4b2eeb){var _0x393c2c={};_0x393c2c[_0x4b2eeb]={'$like':'%'+_0x41bc65[_0x254e('0x3a')][_0x254e('0x93')]+'%'};return _0x393c2c;})});}if(_0x41bc65['query'][_0x254e('0x94')]){var _0x26728f=_0x41bc65[_0x254e('0x3a')]['$gte'][_0x254e('0x95')](',');var _0x311b3d={};_0x311b3d[_0x26728f[0x0]]={'$gte':moment(_0x26728f[0x1])[_0x254e('0x6d')](_0x254e('0x96'))};_0xbc315['where']=_[_0x254e('0x2b')](_0xbc315[_0x254e('0x90')],_0x311b3d);}_0xbc315=_['merge']({},_0xbc315,_0x41bc65[_0x254e('0x40')]);return db[_0x254e('0x70')][_0x254e('0x23')]({'where':_0xbc315[_0x254e('0x90')]})['then'](function(_0x2c2e25){_0x4af75a['count']=_0x2c2e25;if(_0x41bc65[_0x254e('0x3a')][_0x254e('0x97')]){_0xbc315[_0x254e('0x98')]=[{'all':!![]}];}return db[_0x254e('0x70')][_0x254e('0x35')](_0xbc315);})[_0x254e('0x14')](function(_0x428fca){_0x4af75a[_0x254e('0x99')]=_0x428fca;return _0x4af75a;});}})[_0x254e('0x14')](respondWithFilteredResult(_0x313654,_0xbc315))[_0x254e('0x37')](handleError(_0x313654,null));};exports['getMyMessages']=function(_0x5de933,_0x17bc61){var _0x4a24f4={'where':{}},_0x5e52a3={},_0x2ea696={'count':0x0,'rows':[]};return db[_0x254e('0x31')]['findOne']({'where':{'id':_0x5de933[_0x254e('0x44')]['id']}})[_0x254e('0x14')](handleEntityNotFound(_0x17bc61,null))[_0x254e('0x14')](function(_0x257b65){if(_0x257b65){_0x5e52a3[_0x254e('0x3c')]=_['keys'](db['ChatMessage']['rawAttributes']);_0x5e52a3[_0x254e('0x3a')]=_['keys'](_0x5de933[_0x254e('0x3a')]);_0x5e52a3[_0x254e('0x3b')]=_['intersection'](_0x5e52a3[_0x254e('0x3c')],_0x5e52a3['query']);_0x4a24f4[_0x254e('0x3f')]=_[_0x254e('0x3d')](_0x5e52a3[_0x254e('0x3c')],qs['fields'](_0x5de933['query'][_0x254e('0x3e')]));_0x4a24f4['attributes']=_0x4a24f4[_0x254e('0x3f')][_0x254e('0x8c')]?_0x4a24f4['attributes']:_0x5e52a3[_0x254e('0x3c')];if(!_0x5de933[_0x254e('0x3a')][_0x254e('0x8d')](_0x254e('0x8e'))){_0x4a24f4[_0x254e('0x22')]=qs[_0x254e('0x22')](_0x5de933['query'][_0x254e('0x22')]);_0x4a24f4[_0x254e('0x24')]=qs[_0x254e('0x24')](_0x5de933['query'][_0x254e('0x24')]);}_0x4a24f4[_0x254e('0x8f')]=qs[_0x254e('0x9a')](_0x5de933[_0x254e('0x3a')][_0x254e('0x9a')]);_0x4a24f4['where']=qs['filters'](_[_0x254e('0x91')](_0x5de933['query'],_0x5e52a3['filters']));_0x4a24f4[_0x254e('0x90')]['ChatInteractionId']=_0x257b65['id'];if(_0x5de933[_0x254e('0x3a')][_0x254e('0x93')]){_0x4a24f4[_0x254e('0x90')]=_[_0x254e('0x2b')](_0x4a24f4[_0x254e('0x90')],{'$or':_['map'](_0x4a24f4['attributes'],function(_0x4fd52b){var _0x12cd66={};_0x12cd66[_0x4fd52b]={'$like':'%'+_0x5de933[_0x254e('0x3a')]['filter']+'%'};return _0x12cd66;})});}_0x4a24f4[_0x254e('0x90')][_0x254e('0x9b')]=![];if(_0x5de933[_0x254e('0x3a')]['id']){_0x4a24f4[_0x254e('0x90')]['id']={'$gt':_0x5de933[_0x254e('0x3a')]['id']};}_0x4a24f4=_[_0x254e('0x2b')]({},_0x4a24f4,_0x5de933[_0x254e('0x40')]);return db[_0x254e('0x70')][_0x254e('0x23')]({'where':_0x4a24f4[_0x254e('0x90')]})[_0x254e('0x14')](function(_0x47ab5e){_0x2ea696[_0x254e('0x23')]=_0x47ab5e;_0x4a24f4[_0x254e('0x98')]=[];if(_0x5de933[_0x254e('0x3a')][_0x254e('0x9c')]){_0x4a24f4[_0x254e('0x98')][_0x254e('0x9d')]({'model':db[_0x254e('0x72')],'as':_0x254e('0x72'),'attributes':['id',_0x254e('0x4c'),'alias']});}if(_0x5de933[_0x254e('0x3a')][_0x254e('0x97')]){_0x4a24f4[_0x254e('0x98')]=[{'all':!![]}];}return db[_0x254e('0x70')][_0x254e('0x35')](_0x4a24f4);})['then'](function(_0x4cd87c){_0x2ea696[_0x254e('0x99')]=_0x4cd87c;return _0x2ea696;});}})[_0x254e('0x14')](respondWithFilteredResult(_0x17bc61,_0x4a24f4))['catch'](handleError(_0x17bc61,null));};exports['addTags']=function(_0x4bea03,_0x384961){return db[_0x254e('0x31')][_0x254e('0x41')]({'where':{'id':_0x4bea03['params']['id']}})[_0x254e('0x14')](handleEntityNotFound(_0x384961,null))[_0x254e('0x14')](function(_0x3872d4){if(_0x3872d4){return _0x3872d4[_0x254e('0x9e')](_0x4bea03[_0x254e('0x2c')][_0x254e('0x8a')],_[_0x254e('0x9f')](_0x4bea03[_0x254e('0x2c')],[_0x254e('0x8a'),'id'])||{})[_0x254e('0xa0')](function(){return db[_0x254e('0xa1')][_0x254e('0x35')]({'attributes':['id',_0x254e('0x28'),_0x254e('0xa2')],'where':{'id':_0x4bea03[_0x254e('0x2c')]['ids']}});})[_0x254e('0x14')](function(_0x1c6ee7){socket[_0x254e('0xa3')](_0x254e('0xa4'),{'id':Number(_0x4bea03['params']['id']),'tags':_0x1c6ee7||[]});return{'id':Number(_0x4bea03[_0x254e('0x44')]['id']),'tags':_0x1c6ee7||[]};});}})['then'](respondWithResult(_0x384961,null))[_0x254e('0x37')](handleError(_0x384961,null));};exports['removeTags']=function(_0x423c6d,_0x7ce9c6){return db[_0x254e('0x31')]['find']({'where':{'id':_0x423c6d[_0x254e('0x44')]['id']}})[_0x254e('0x14')](handleEntityNotFound(_0x7ce9c6,null))['then'](function(_0x4c75c4){if(_0x4c75c4){return _0x4c75c4['removeTags'](_0x423c6d[_0x254e('0x3a')][_0x254e('0x8a')]);}})[_0x254e('0x14')](respondWithStatusCode(_0x7ce9c6,null))[_0x254e('0x37')](handleError(_0x7ce9c6,null));};exports[_0x254e('0xa5')]=function(_0x508fa7,_0x5a9f36){var _0x1962ae=moment()[_0x254e('0xa6')]()[_0x254e('0xa7')]();var _0x321802=path[_0x254e('0x67')](config[_0x254e('0x68')],_0x254e('0xa8'),_0x254e('0xa9'),'tmp');var _0x230b5d=path[_0x254e('0x67')](config['root'],'server',_0x254e('0xa9'),_0x254e('0xaa'));var _0x53865a=path[_0x254e('0x67')](_0x321802,_0x1962ae);var _0x43c846=util[_0x254e('0x6d')](_0x254e('0xab'),_0x508fa7[_0x254e('0x44')]['id'],_0x1962ae);var _0x53927b=path[_0x254e('0x67')](_0x321802,_0x43c846);var _0x4f8dae=[];_0x4f8dae['push']({'model':db[_0x254e('0x72')],'as':_0x254e('0x72'),'attributes':['id',_0x254e('0x4c')],'raw':!![]});_0x4f8dae['push']({'model':db[_0x254e('0x74')],'as':_0x254e('0x59'),'attributes':['id','firstName',_0x254e('0xac')],'raw':!![]});if(_0x508fa7['query']['attachments']){_0x4f8dae['push']({'model':db[_0x254e('0x61')],'as':_0x254e('0x61'),'raw':!![]});}var _0x16f8c3=[{'model':db[_0x254e('0x70')],'as':_0x254e('0x71'),'attributes':['id',_0x254e('0x2c'),'createdAt','direction',_0x254e('0x9b'),_0x254e('0xad')],'include':_0x4f8dae}];_0x16f8c3[_0x254e('0x9d')]({'model':db[_0x254e('0x46')],'as':'Account','attributes':['id','name']});_0x16f8c3['push']({'model':db[_0x254e('0x72')],'as':_0x254e('0xae'),'attributes':['id',_0x254e('0x4c')]});return db['ChatInteraction']['find']({'where':{'id':_0x508fa7[_0x254e('0x44')]['id']},'include':_0x16f8c3})[_0x254e('0x14')](handleEntityNotFound(_0x5a9f36,null))[_0x254e('0x14')](function(_0x2c18db){if(_0x2c18db){var _0x16b2c2=_0x2c18db[_0x254e('0xaf')]({'plain':!![]});fs[_0x254e('0xb0')](_0x53865a);var _0x55302a={'channel':_0x254e('0xb1'),'account':_0x16b2c2['Account']['name'],'agent':_0x16b2c2[_0x254e('0xae')]?_0x16b2c2[_0x254e('0xae')][_0x254e('0x4c')]:'N.A.','createdAt':moment(_0x16b2c2[_0x254e('0x7f')])[_0x254e('0x6d')](_0x254e('0x96'))[_0x254e('0xa7')](),'closedAt':_0x16b2c2[_0x254e('0xb2')]?moment(_0x16b2c2[_0x254e('0xb3')])['format']('YYYY-MM-DD\x20HH:mm:ss')[_0x254e('0xa7')]():'','disposition':_0x16b2c2[_0x254e('0xb4')],'chatInfo':{'browser':_0x16b2c2[_0x254e('0xb5')],'os':_0x16b2c2['osName'],'referer':_0x16b2c2[_0x254e('0xb6')],'customerIp':_0x16b2c2['customerIp'],'customerPort':_0x16b2c2[_0x254e('0xb7')]?_0x16b2c2['customerPort']:_0x254e('0xb8')},'messages':_(_0x16b2c2['Messages'])[_0x254e('0xb9')]()[_0x254e('0x93')]({'secret':![]})[_0x254e('0x30')](function(_0x48cd6a){if(_0x48cd6a[_0x254e('0x61')]){var _0x29668f=path[_0x254e('0x67')](_0x230b5d,_0x48cd6a[_0x254e('0x61')][_0x254e('0xba')]);if(fs[_0x254e('0xbb')](_0x29668f)){fs[_0x254e('0xbc')](_0x29668f)[_0x254e('0xbd')](fs['createWriteStream'](path['join'](_0x53865a,_0x48cd6a[_0x254e('0x61')][_0x254e('0xba')])));}}return{'date':moment(_0x48cd6a[_0x254e('0x7f')])[_0x254e('0x6d')](_0x254e('0x96'))[_0x254e('0xa7')](),'sender':_0x48cd6a[_0x254e('0x81')]===_0x254e('0x56')?_0x48cd6a[_0x254e('0x72')]?_0x48cd6a['User'][_0x254e('0x4c')]:_0x254e('0x78'):_0x48cd6a[_0x254e('0x59')][_0x254e('0xbe')]+(_0x48cd6a[_0x254e('0x59')][_0x254e('0xac')]?'\x20'+_0x48cd6a[_0x254e('0x59')][_0x254e('0xac')]:''),'body':_0x48cd6a[_0x254e('0x61')]?_0x48cd6a['Attachment'][_0x254e('0xba')]:_0x48cd6a[_0x254e('0x2c')],'direction':_0x48cd6a['direction']===_0x254e('0x56')?'A':'C','secret':_0x48cd6a[_0x254e('0x9b')],'read':_0x48cd6a['read'],'attachment':_0x48cd6a[_0x254e('0x61')]};})[_0x254e('0xbf')]()};return ejs[_0x254e('0xc0')](path['join'](config[_0x254e('0x68')],_0x254e('0xa8'),'views',_0x254e('0xc1')),{'interaction':_0x55302a})[_0x254e('0x14')](function(_0x9e9659){var _0x441785=path['join'](_0x53865a,'transcript-'+_0x16b2c2['id']+'-'+_0x1962ae+'.pdf');var _0x475b24={'path':_0x441785,'channel':_0x254e('0xb1'),'interactionId':_0x16b2c2['id']};return pdf[_0x254e('0xc2')](_0x9e9659,_0x475b24);})[_0x254e('0x14')](function(){return new Promise(function(_0x4746fe,_0x17edda){zipdir(_0x53865a,{'saveTo':_0x53927b},function(_0x3258ab,_0x2bb305){if(_0x3258ab)return _0x17edda(_0x3258ab);return _0x4746fe(_0x2bb305);});})['then'](function(){return new BPromise(function(_0x7347a2,_0x3f271b){rimraf(_0x53865a,function(_0xa4f020){if(_0xa4f020)_0x3f271b(_0xa4f020);return _0x7347a2();});});})[_0x254e('0x14')](function(){return _0x5a9f36[_0x254e('0xa5')](_0x53927b,_0x43c846,function(_0x325b0c){if(_0x325b0c){logger[_0x254e('0x1b')](_0x254e('0xc3'),_0x325b0c);}else{fs[_0x254e('0xc4')](_0x53927b);}});});});}else{return _0x5a9f36['sendStatus'](0xc8);}})[_0x254e('0x37')](handleError(_0x5a9f36,null));};