202089d45e781b6e6655eca309c67caf1d16866c
[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 _0x2754=['attachmentDownload','closed','Unauthorized','attachId','ChatOfflineMessageId','root','join','offline-chat/','download','close','server/files/chat/upload/','format','transcript-%s.txt','now','pathTranscript','Messages','User','ContactId','%s%d','System','customer','Visitor','agentIdentifier','website_alias','agentAlias','agent_alias','alias','agent_fullname','[%s]\x20%s:\x20%s\x0a','createdAt','direction','secret','appendFileSync','Smtp','CloudProvider','SendMail','sendMail','\x22%s\x22\x20<%s>','mailTranscript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','ids','omit','getMessages','filters','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','$gte','YYYY-MM-DD\x20HH:mm:ss','findAll','rows','getMyMessages','options','includeAgent','addTags','setTags','spread','Tag','color','emit','chatInteractionTags:save','removeTags','unix','toString','server','files','attachments','transcript-%d-%s.zip','push','firstName','lastName','read','Account','Owner','get','mkdirSync','Chat','closedAt','browserName','osName','referer','customerPort','tail','existsSync','createReadStream','pipe','createWriteStream','out','Contact','value','views','downloadInteraction.ejs','.pdf','createPdfFromHTML','err','unlinkSync','rimraf','zip-dir','bluebird','mustache','util','ejs','ioredis','../../components/interaction/service','../../components/export/pdf','../../config/logger','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./chatInteraction.socket','register','jayson/promise','http','client','request','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','error','code','message','result','sendStatus','status','json','offset','limit','undefined','count','set','Content-Range','update','end','stack','name','send','render','body','contact','agent','account','map','ChatInteraction','fieldName','type','key','getOptions','chat','query','user','catch','show','params','model','keys','rawAttributes','intersection','attributes','length','includeAll','include','find','create','destroy','describe','findOne','ChatWebsite','ChatWebsiteId','vidaooApiKey','vidaooTopic','vidaooNote','vidaooMetadata','fullname','email','POST','https://api-vidaoo.xcally.com/api/v1/meetings','isNull','follow','parse','metadata','Sequelize','Error\x20in\x20conversion\x20vidaooMetadata','ValidationError','Error\x20in\x20Vidaoo\x20configuration','join_url','ChatMessage','updateAttributes','customUpdate','CmContact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','UserId','disposition','AbandonInteraction','file','originalname','basename','mimetype','Attachment'];(function(_0x71035a,_0x2086dc){var _0x45334c=function(_0x488d4d){while(--_0x488d4d){_0x71035a['push'](_0x71035a['shift']());}};_0x45334c(++_0x2086dc);}(_0x2754,0x67));var _0x4275=function(_0x207f67,_0x172ffa){_0x207f67=_0x207f67-0x0;var _0x4d6724=_0x2754[_0x207f67];return _0x4d6724;};'use strict';var rimraf=require(_0x4275('0x0'));var zipdir=require(_0x4275('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x4275('0x2'));var Mustache=require(_0x4275('0x3'));var util=require(_0x4275('0x4'));var path=require('path');var ejs=require(_0x4275('0x5'));var fs=require('fs');var _=require('lodash');var Redis=require(_0x4275('0x6'));var interaction=require(_0x4275('0x7'));var qs=require('../../components/parsers/qs');var pdf=require(_0x4275('0x8'));var logger=require(_0x4275('0x9'))('api');var config=require(_0x4275('0xa'));var db=require(_0x4275('0xb'))['db'];config[_0x4275('0xc')]=_['defaults'](config[_0x4275('0xc')],{'host':_0x4275('0xd'),'port':0x18eb});var socket=require(_0x4275('0xe'))(new Redis(config[_0x4275('0xc')]));require(_0x4275('0xf'))[_0x4275('0x10')](socket);var jayson=require(_0x4275('0x11'));var client=jayson['client'][_0x4275('0x12')]({'port':0x232b});var client9004=jayson[_0x4275('0x13')][_0x4275('0x12')]({'port':0x232c});function respondWithRpcPromise(_0x217002,_0x406cb4,_0x3f0135,_0x1f31f9){return new BPromise(function(_0x58e206,_0x91712c){var _0x6a30de=_0x1f31f9||client;return _0x6a30de[_0x4275('0x14')](_0x217002,_0x3f0135)[_0x4275('0x15')](function(_0x2c4b99){logger[_0x4275('0x16')](_0x4275('0x17'),_0x406cb4,_0x4275('0x18'));logger[_0x4275('0x19')](_0x4275('0x1a'),_0x406cb4,'request\x20sent',JSON['stringify'](_0x2c4b99));if(_0x2c4b99['error']){if(_0x2c4b99[_0x4275('0x1b')][_0x4275('0x1c')]===0x1f4){logger[_0x4275('0x1b')](_0x4275('0x17'),_0x406cb4,_0x2c4b99['error'][_0x4275('0x1d')]);return _0x91712c(_0x2c4b99[_0x4275('0x1b')][_0x4275('0x1d')]);}logger[_0x4275('0x1b')]('ChatInteraction,\x20%s,\x20%s',_0x406cb4,_0x2c4b99[_0x4275('0x1b')][_0x4275('0x1d')]);return _0x58e206(_0x2c4b99['error'][_0x4275('0x1d')]);}else{logger['info']('ChatInteraction,\x20%s,\x20%s',_0x406cb4,_0x4275('0x18'));_0x58e206(_0x2c4b99[_0x4275('0x1e')][_0x4275('0x1d')]);}})['catch'](function(_0xe5384d){logger[_0x4275('0x1b')](_0x4275('0x17'),_0x406cb4,_0xe5384d);_0x91712c(_0xe5384d);});});}function respondWithStatusCode(_0x284f04,_0x233a7a){_0x233a7a=_0x233a7a||0xcc;return function(_0x225015){if(_0x225015){return _0x284f04[_0x4275('0x1f')](_0x233a7a);}return _0x284f04[_0x4275('0x20')](_0x233a7a)['end']();};}function respondWithResult(_0x66a044,_0x1e477d){_0x1e477d=_0x1e477d||0xc8;return function(_0x3c491e){if(_0x3c491e){return _0x66a044['status'](_0x1e477d)[_0x4275('0x21')](_0x3c491e);}};}function respondWithFilteredResult(_0x12aae4,_0x190248){return function(_0x3a3646){if(_0x3a3646){var _0x47cb86=typeof _0x190248[_0x4275('0x22')]==='undefined'&&typeof _0x190248[_0x4275('0x23')]===_0x4275('0x24');var _0x47dd0b=_0x3a3646['count'];var _0x2bb24e=_0x47cb86?0x0:_0x190248[_0x4275('0x22')];var _0x4aa1e7=_0x47cb86?_0x3a3646[_0x4275('0x25')]:_0x190248[_0x4275('0x22')]+_0x190248[_0x4275('0x23')];var _0x4afbc2;if(_0x4aa1e7>=_0x47dd0b){_0x4aa1e7=_0x47dd0b;_0x4afbc2=0xc8;}else{_0x4afbc2=0xce;}_0x12aae4[_0x4275('0x20')](_0x4afbc2);return _0x12aae4[_0x4275('0x26')](_0x4275('0x27'),_0x2bb24e+'-'+_0x4aa1e7+'/'+_0x47dd0b)[_0x4275('0x21')](_0x3a3646);}return null;};}function saveUpdates(_0x2a2df3){return function(_0x3164c5){if(_0x3164c5){return _0x3164c5[_0x4275('0x28')](_0x2a2df3)[_0x4275('0x15')](function(_0x3c8821){return _0x3c8821;});}return null;};}function removeEntity(_0x1a738a){return function(_0x1c9e69){if(_0x1c9e69){return _0x1c9e69['destroy']()['then'](function(){_0x1a738a[_0x4275('0x20')](0xcc)[_0x4275('0x29')]();});}};}function handleEntityNotFound(_0x188ae0){return function(_0xa38061){if(!_0xa38061){_0x188ae0['sendStatus'](0x194);}return _0xa38061;};}function handleError(_0x443d95,_0x1a8ce0){_0x1a8ce0=_0x1a8ce0||0x1f4;return function(_0x575f10){logger[_0x4275('0x1b')](_0x575f10[_0x4275('0x2a')]);if(_0x575f10[_0x4275('0x2b')]){delete _0x575f10['name'];}_0x443d95[_0x4275('0x20')](_0x1a8ce0)[_0x4275('0x2c')](_0x575f10);};}function getMustacheRender(_0xbd10b8,_0xb5ca1e){return Mustache[_0x4275('0x2d')](_0xbd10b8,_['merge'](_0xb5ca1e[_0x4275('0x2e')],{'contact':_0xb5ca1e[_0x4275('0x2f')],'message':_0xb5ca1e[_0x4275('0x1d')],'agent':_0xb5ca1e[_0x4275('0x30')],'interaction':_0xb5ca1e['interaction'],'account':_0xb5ca1e[_0x4275('0x31')]}))||'';}exports['index']=function(_0x5bbb65,_0x69da99){var _0x5e2478={};var _0x178522=_[_0x4275('0x32')](db[_0x4275('0x33')]['rawAttributes'],function(_0xb253d){return{'name':_0xb253d[_0x4275('0x34')],'type':_0xb253d[_0x4275('0x35')][_0x4275('0x36')]};});_0x5e2478=qs[_0x4275('0x37')](_0x178522,_0x5bbb65);return interaction['findAll'](_0x4275('0x38'),_0x5bbb65[_0x4275('0x39')],_0x5bbb65[_0x4275('0x3a')],_0x5e2478,_0x178522)['then'](respondWithFilteredResult(_0x69da99,_0x5e2478))[_0x4275('0x3b')](handleError(_0x69da99,null));};exports[_0x4275('0x3c')]=function(_0x39f579,_0x44e326){var _0x1c7c7d={'raw':![],'where':{'id':_0x39f579[_0x4275('0x3d')]['id']}},_0x14c515={};_0x14c515[_0x4275('0x3e')]=_[_0x4275('0x3f')](db[_0x4275('0x33')][_0x4275('0x40')]);_0x14c515['query']=_[_0x4275('0x3f')](_0x39f579[_0x4275('0x39')]);_0x14c515['filters']=_[_0x4275('0x41')](_0x14c515['model'],_0x14c515[_0x4275('0x39')]);_0x1c7c7d[_0x4275('0x42')]=_[_0x4275('0x41')](_0x14c515[_0x4275('0x3e')],qs['fields'](_0x39f579[_0x4275('0x39')]['fields']));_0x1c7c7d['attributes']=_0x1c7c7d[_0x4275('0x42')][_0x4275('0x43')]?_0x1c7c7d[_0x4275('0x42')]:_0x14c515['model'];if(_0x39f579[_0x4275('0x39')][_0x4275('0x44')]){_0x1c7c7d[_0x4275('0x45')]=[{'all':!![]}];}_0x1c7c7d=_['merge']({},_0x1c7c7d,_0x39f579['options']);return db[_0x4275('0x33')][_0x4275('0x46')](_0x1c7c7d)[_0x4275('0x15')](handleEntityNotFound(_0x44e326,null))['then'](respondWithResult(_0x44e326,null))['catch'](handleError(_0x44e326,null));};exports[_0x4275('0x47')]=function(_0x4bb9ab,_0x3458e6){return db[_0x4275('0x33')]['create'](_0x4bb9ab[_0x4275('0x2e')],{})[_0x4275('0x15')](respondWithResult(_0x3458e6,0xc9))[_0x4275('0x3b')](handleError(_0x3458e6,null));};exports[_0x4275('0x28')]=function(_0x27f0a8,_0x590768){if(_0x27f0a8['body']['id']){delete _0x27f0a8[_0x4275('0x2e')]['id'];}return db[_0x4275('0x33')][_0x4275('0x46')]({'where':{'id':_0x27f0a8[_0x4275('0x3d')]['id']}})[_0x4275('0x15')](handleEntityNotFound(_0x590768,null))[_0x4275('0x15')](saveUpdates(_0x27f0a8[_0x4275('0x2e')],null))['then'](respondWithResult(_0x590768,null))[_0x4275('0x3b')](handleError(_0x590768,null));};exports[_0x4275('0x48')]=function(_0x3fa49e,_0x2b156c){return db[_0x4275('0x33')][_0x4275('0x46')]({'where':{'id':_0x3fa49e[_0x4275('0x3d')]['id']}})['then'](handleEntityNotFound(_0x2b156c,null))[_0x4275('0x15')](removeEntity(_0x2b156c,null))['catch'](handleError(_0x2b156c,null));};exports[_0x4275('0x49')]=function(_0x506a88,_0x49fe1d){return db[_0x4275('0x33')]['describe']()[_0x4275('0x15')](respondWithResult(_0x49fe1d,null))['catch'](handleError(_0x49fe1d,null));};exports['createVidaooSession']=function(_0x3c6d80,_0x521b39){var _0xf4a6dc=_0x3c6d80[_0x4275('0x3d')]['id'];var _0x2fd177;var _0x1641a2;var _0x2e4aaa;return db[_0x4275('0x33')][_0x4275('0x4a')]({'where':{'id':_0xf4a6dc}})[_0x4275('0x15')](function(_0x1ed927){_0x2fd177=_0x1ed927;return db[_0x4275('0x4b')]['findOne']({'where':{'id':_0x1ed927[_0x4275('0x4c')]},'attributes':['id',_0x4275('0x4d'),'vidaooEscalation',_0x4275('0x4e'),_0x4275('0x4f'),_0x4275('0x50')],'raw':!![]});})[_0x4275('0x15')](function(_0x4a5790){if(_0x4a5790&&_0x4a5790[_0x4275('0x4d')]&&_0x4a5790['vidaooEscalation']){_0x1641a2=_0x4a5790;var _0x3900f3={'interaction':{'id':_0xf4a6dc},'agent':{'id':_0x3c6d80['user']['id'],'name':_0x3c6d80[_0x4275('0x3a')][_0x4275('0x2b')],'fullname':_0x3c6d80['user'][_0x4275('0x51')],'email':_0x3c6d80[_0x4275('0x3a')][_0x4275('0x52')]},'contact':_0x3c6d80['body'][_0x4275('0x2f')],'account':_0x3c6d80['body'][_0x4275('0x31')]};var _0x2ea286={'rejectUnauthorized':![],'method':_0x4275('0x53'),'url':_0x4275('0x54'),'headers':{'X-APIKEY':_0x4a5790[_0x4275('0x4d')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x3c6d80[_0x4275('0x3a')][_0x4275('0x52')]],'buttons':null,'topic':_0x1641a2[_0x4275('0x4e')],'note':_[_0x4275('0x55')](_0x1641a2[_0x4275('0x4f')])?null:getMustacheRender(_0x1641a2['vidaooNote'],_0x3900f3),'metadata':null},'redirect':_0x4275('0x56'),'json':!![]};try{if(!_[_0x4275('0x55')](_0x1641a2[_0x4275('0x50')])){var _0x1b4bc1=getMustacheRender(_0x1641a2['vidaooMetadata'],_0x3900f3);var _0x4c1f52=JSON[_0x4275('0x57')](_0x1b4bc1);_0x2ea286[_0x4275('0x2e')][_0x4275('0x58')]=_0x4c1f52;}}catch(_0x12554c){throw new db[(_0x4275('0x59'))]['ValidationError'](_0x4275('0x5a'));}return rp(_0x2ea286);}else{throw new db[(_0x4275('0x59'))][(_0x4275('0x5b'))](_0x4275('0x5c'));}})[_0x4275('0x15')](function(_0x345c7d){_0x2e4aaa=_0x345c7d;if(_0x2e4aaa['id']){var _0x5b7929={'body':_0x2e4aaa[_0x4275('0x5d')],'ChatWebsiteId':_0x1641a2['id'],'ChatInteractionId':_0x2fd177['id'],'direction':'out','UserId':_0x3c6d80['user']['id']};return db[_0x4275('0x5e')][_0x4275('0x47')](_0x5b7929,{});}else{throw new db['Sequelize'][(_0x4275('0x5b'))]('Unable\x20to\x20create\x20Vidaoo\x20session');}})['then'](function(){return _0x2fd177[_0x4275('0x5f')]({'vidaooSessionId':_0x2e4aaa['id']});})[_0x4275('0x15')](respondWithResult(_0x521b39,null))[_0x4275('0x3b')](handleError(_0x521b39,null));};exports[_0x4275('0x60')]=function(_0xab5945,_0x1c1a5d){if(_0xab5945['body']['id']){delete _0xab5945['body']['id'];}return db[_0x4275('0x33')][_0x4275('0x46')]({'where':{'id':_0xab5945['params']['id']},'include':[{'model':db[_0x4275('0x61')],'as':'Contact'}]})['then'](handleEntityNotFound(_0x1c1a5d,null))[_0x4275('0x15')](saveUpdates(_0xab5945[_0x4275('0x2e')],null))[_0x4275('0x15')](respondWithResult(_0x1c1a5d,null))[_0x4275('0x3b')](handleError(_0x1c1a5d,null));};exports[_0x4275('0x62')]=function(_0x41235a,_0x82cb9a){if(_0x41235a[_0x4275('0x2e')]['id']){delete _0x41235a[_0x4275('0x2e')]['id'];}return db[_0x4275('0x33')][_0x4275('0x46')]({'where':{'id':_0x41235a[_0x4275('0x3d')]['id']}})[_0x4275('0x15')](function(_0x4b1667){if(!_0x4b1667){logger['error'](_0x4275('0x63'),_0x4275('0x62'),0x194,_0x4275('0x64'));_0x82cb9a['sendStatus'](0x194);}else{if(_0x4b1667[_0x4275('0x65')]){throw new db[(_0x4275('0x59'))]['ValidationError']('Interaction\x20already\x20assigned');}}return _0x4b1667;})['then'](function(_0x4b4dde){if(_0x4b4dde){return _0x4b4dde[_0x4275('0x28')]({'closed':_0x41235a['body']['closed'],'disposition':_0x41235a['body'][_0x4275('0x66')]})[_0x4275('0x15')](function(_0x2ee661){return _0x2ee661;});}})[_0x4275('0x15')](function(){return respondWithRpcPromise(_0x4275('0x67'),_0x4275('0x62'),_0x41235a[_0x4275('0x2e')],client9004);})[_0x4275('0x15')](respondWithResult(_0x82cb9a,null))[_0x4275('0x3b')](handleError(_0x82cb9a,null));};exports['attachmentUpload']=function(_0x3f7812,_0x5d0e96){_0x3f7812[_0x4275('0x2e')]['name']=_0x3f7812[_0x4275('0x68')][_0x4275('0x69')];_0x3f7812[_0x4275('0x2e')][_0x4275('0x6a')]=_0x3f7812[_0x4275('0x68')]['filename'];_0x3f7812[_0x4275('0x2e')]['type']=_0x3f7812['file'][_0x4275('0x6b')];return db[_0x4275('0x6c')]['create'](_0x3f7812[_0x4275('0x2e')])[_0x4275('0x15')](respondWithResult(_0x5d0e96,0xc9))[_0x4275('0x3b')](handleError(_0x5d0e96,null));};exports[_0x4275('0x6d')]=function(_0x116a4e,_0x26f907){return db[_0x4275('0x33')][_0x4275('0x4a')]({'where':{'id':_0x116a4e[_0x4275('0x3d')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x26f907,null))[_0x4275('0x15')](function(_0x1260f8){if(_0x1260f8){if(_0x1260f8[_0x4275('0x6e')]){return _0x26f907['status'](0x193)[_0x4275('0x21')]({'status':0x193,'message':_0x4275('0x6f')});}return db[_0x4275('0x6c')][_0x4275('0x4a')]({'where':{'id':_0x116a4e[_0x4275('0x39')][_0x4275('0x70')]},'raw':!![]})[_0x4275('0x15')](handleEntityNotFound(_0x26f907,null));}})[_0x4275('0x15')](function(_0x913217){if(_0x913217){var _0x1ebb79=_0x913217[_0x4275('0x71')]!==null;var _0x8f681e=path['join'](config[_0x4275('0x72')],'server/files/attachments/');if(_0x1ebb79){_0x8f681e=path[_0x4275('0x73')](_0x8f681e,_0x4275('0x74'));}var _0x1295be=path[_0x4275('0x73')](_0x8f681e,_0x913217[_0x4275('0x6a')]);return _0x26f907[_0x4275('0x75')](_0x1295be);}})[_0x4275('0x3b')](handleError(_0x26f907,null));};exports[_0x4275('0x76')]=function(_0x3b37c2,_0x39a70f){var _0x22cd4c=null;var _0xfdffa9=null;var _0x243391=null;if(_0x3b37c2[_0x4275('0x2e')]['id']){delete _0x3b37c2[_0x4275('0x2e')]['id'];}if(_0x3b37c2[_0x4275('0x2e')]['mailTranscript']){_0x243391=path[_0x4275('0x73')](config[_0x4275('0x72')],_0x4275('0x77'),util[_0x4275('0x78')](_0x4275('0x79'),Date[_0x4275('0x7a')]()));_0x3b37c2[_0x4275('0x2e')][_0x4275('0x7b')]=_0x243391;}return db[_0x4275('0x33')][_0x4275('0x46')]({'where':{'id':_0x3b37c2[_0x4275('0x3d')]['id']},'include':[{'model':db['ChatMessage'],'as':_0x4275('0x7c'),'include':[{'model':db[_0x4275('0x7d')],'as':'User'}]}]})[_0x4275('0x15')](handleEntityNotFound(_0x39a70f,null))['then'](saveUpdates(_0x3b37c2[_0x4275('0x2e')],null))[_0x4275('0x15')](function(_0x4b869c){if(_0x4b869c){_0x22cd4c=_0x4b869c;return db[_0x4275('0x4b')][_0x4275('0x46')]({'where':{'id':_0x22cd4c[_0x4275('0x4c')]}});}})[_0x4275('0x15')](function(_0x130884){if(_0x130884){_0xfdffa9=_0x130884;return db['CmContact'][_0x4275('0x46')]({'where':{'id':_0x22cd4c[_0x4275('0x7e')]}});}})[_0x4275('0x15')](function(_0x93ee2b){if(_0x93ee2b){if(_0x243391){var _0x250657=null;for(var _0xed18bd=0x1;_0xed18bd<_0x22cd4c[_0x4275('0x7c')][_0x4275('0x43')];++_0xed18bd){_0x250657=_0x22cd4c['Messages'][_0xed18bd];var _0x1b677c=_0x250657[_0x4275('0x65')]?util[_0x4275('0x78')](_0x4275('0x7f'),_0xfdffa9['agentAlias'],_0x250657[_0x4275('0x65')]):_0x4275('0x80');var _0x1f624b=_0x3b37c2[_0x4275('0x2e')][_0x4275('0x81')]||util[_0x4275('0x78')](_0x4275('0x7f'),_0x4275('0x82'),_0x250657['ContactId']);switch(_0xfdffa9[_0x4275('0x83')]){case _0x4275('0x84'):_0x1b677c=_0x250657[_0x4275('0x65')]?util[_0x4275('0x78')](_0x4275('0x7f'),_0xfdffa9[_0x4275('0x85')],_0x250657[_0x4275('0x65')]):'System';break;case _0x4275('0x86'):_0x1b677c=_0x250657[_0x4275('0x65')]?_0x250657[_0x4275('0x7d')][_0x4275('0x87')]||_0x250657['User'][_0x4275('0x51')]:_0x4275('0x80');break;case _0x4275('0x88'):_0x1b677c=_0x250657[_0x4275('0x65')]?_0x250657['User'][_0x4275('0x51')]:_0x4275('0x80');break;default:_0x1b677c=_0x250657[_0x4275('0x65')]?util[_0x4275('0x78')]('%s%d',_0xfdffa9['agentAlias'],_0x250657[_0x4275('0x65')]):_0x4275('0x80');}var _0x975da0=util[_0x4275('0x78')](_0x4275('0x89'),moment(_0x250657[_0x4275('0x8a')])[_0x4275('0x78')]('MM/DD/YYYY\x20HH:mm:ss'),_0x250657[_0x4275('0x8b')]==='in'?_0x1f624b:_0x1b677c,_0x250657[_0x4275('0x2e')]);if(!_0x250657[_0x4275('0x8c')]){fs[_0x4275('0x8d')](_0x243391,_0x975da0);}}return db['MailAccount'][_0x4275('0x4a')]({'where':{'service':!![]},'include':[{'model':db['MailServerOut'],'as':_0x4275('0x8e'),'raw':!![],'include':[{'model':db[_0x4275('0x8f')],'as':'CloudProvider','raw':!![]}]}]});}}})[_0x4275('0x15')](function(_0x291a84){if(!_0x291a84||!_0x291a84[_0x4275('0x8e')]||!_0x3b37c2[_0x4275('0x2e')])return _0x22cd4c;var _0x2dc7d0=_0x291a84['getSmtpOptions']();return respondWithRpcPromise(_0x4275('0x90'),_0x4275('0x91'),{'account':_0x2dc7d0,'message':{'from':util[_0x4275('0x78')](_0x4275('0x92'),_0x291a84[_0x4275('0x2b')],_0x291a84[_0x4275('0x52')]||_0x291a84[_0x4275('0x8e')][_0x4275('0x3a')]),'to':_0x3b37c2[_0x4275('0x2e')][_0x4275('0x93')],'subject':'Mail\x20Transcript','text':util[_0x4275('0x78')](_0x4275('0x94'),_0x3b37c2[_0x4275('0x2e')][_0x4275('0x93')]),'attachments':[{'path':_0x243391}]}})[_0x4275('0x15')](function(){return _0x22cd4c;})[_0x4275('0x3b')](function(_0x3bbce4){logger[_0x4275('0x1b')](_0x3bbce4);});})['then'](respondWithStatusCode(_0x39a70f,0xc8))[_0x4275('0x3b')](handleError(_0x39a70f,null));};exports[_0x4275('0x95')]=function(_0x1aa61e,_0x41a89d){return db[_0x4275('0x5e')][_0x4275('0x46')]({'where':{'id':_0x1aa61e['params']['id']}})[_0x4275('0x15')](handleEntityNotFound(_0x41a89d,null))['then'](function(_0x2c4a20){if(_0x2c4a20){return _0x2c4a20['addMessage'](_0x1aa61e['body'][_0x4275('0x96')],_[_0x4275('0x97')](_0x1aa61e['body'],[_0x4275('0x96'),'id'])||{});}})[_0x4275('0x15')](respondWithResult(_0x41a89d,null))[_0x4275('0x3b')](handleError(_0x41a89d,null));};exports[_0x4275('0x98')]=function(_0x17b032,_0x22895a){var _0x158cd4={'raw':![],'where':{}};var _0x9ab3af={};var _0x3efcd6={'count':0x0,'rows':[]};return db['ChatInteraction']['findOne']({'where':{'id':_0x17b032[_0x4275('0x3d')]['id']}})[_0x4275('0x15')](handleEntityNotFound(_0x22895a,null))[_0x4275('0x15')](function(_0x24ad51){if(_0x24ad51){_0x9ab3af[_0x4275('0x3e')]=_[_0x4275('0x3f')](db[_0x4275('0x5e')][_0x4275('0x40')]);_0x9ab3af['query']=_[_0x4275('0x3f')](_0x17b032[_0x4275('0x39')]);_0x9ab3af[_0x4275('0x99')]=_[_0x4275('0x41')](_0x9ab3af[_0x4275('0x3e')],_0x9ab3af[_0x4275('0x39')]);_0x158cd4[_0x4275('0x42')]=_['intersection'](_0x9ab3af[_0x4275('0x3e')],qs[_0x4275('0x9a')](_0x17b032[_0x4275('0x39')][_0x4275('0x9a')]));_0x158cd4[_0x4275('0x42')]=_0x158cd4['attributes'][_0x4275('0x43')]?_0x158cd4['attributes']:_0x9ab3af[_0x4275('0x3e')];if(!_0x17b032[_0x4275('0x39')][_0x4275('0x9b')](_0x4275('0x9c'))){_0x158cd4[_0x4275('0x23')]=qs[_0x4275('0x23')](_0x17b032['query'][_0x4275('0x23')]);_0x158cd4[_0x4275('0x22')]=qs[_0x4275('0x22')](_0x17b032['query'][_0x4275('0x22')]);}_0x158cd4[_0x4275('0x9d')]=qs[_0x4275('0x9e')](_0x17b032['query']['sort']);_0x158cd4[_0x4275('0x9f')]=qs[_0x4275('0x99')](_[_0x4275('0xa0')](_0x17b032[_0x4275('0x39')],_0x9ab3af[_0x4275('0x99')]));_0x158cd4[_0x4275('0x9f')]['ChatInteractionId']=_0x24ad51['id'];if(_0x17b032[_0x4275('0x39')][_0x4275('0xa1')]){_0x158cd4['where']=_[_0x4275('0xa2')](_0x158cd4[_0x4275('0x9f')],{'$or':_['map'](_0x158cd4[_0x4275('0x42')],function(_0x51664b){var _0x1cac42={};_0x1cac42[_0x51664b]={'$like':'%'+_0x17b032[_0x4275('0x39')][_0x4275('0xa1')]+'%'};return _0x1cac42;})});}if(_0x17b032[_0x4275('0x39')][_0x4275('0xa3')]){var _0x4793c3=_0x17b032[_0x4275('0x39')][_0x4275('0xa3')]['split'](',');var _0x16d63a={};_0x16d63a[_0x4793c3[0x0]]={'$gte':moment(_0x4793c3[0x1])[_0x4275('0x78')](_0x4275('0xa4'))};_0x158cd4[_0x4275('0x9f')]=_[_0x4275('0xa2')](_0x158cd4['where'],_0x16d63a);}_0x158cd4=_[_0x4275('0xa2')]({},_0x158cd4,_0x17b032['options']);return db[_0x4275('0x5e')][_0x4275('0x25')]({'where':_0x158cd4['where']})[_0x4275('0x15')](function(_0x128315){_0x3efcd6[_0x4275('0x25')]=_0x128315;if(_0x17b032['query'][_0x4275('0x44')]){_0x158cd4['include']=[{'all':!![]}];}return db[_0x4275('0x5e')][_0x4275('0xa5')](_0x158cd4);})[_0x4275('0x15')](function(_0x156638){_0x3efcd6[_0x4275('0xa6')]=_0x156638;return _0x3efcd6;});}})[_0x4275('0x15')](respondWithFilteredResult(_0x22895a,_0x158cd4))[_0x4275('0x3b')](handleError(_0x22895a,null));};exports[_0x4275('0xa7')]=function(_0x3506d6,_0x5a6b5a){var _0x13e326={'where':{}},_0x134252={},_0x20797b={'count':0x0,'rows':[]};return db[_0x4275('0x33')][_0x4275('0x4a')]({'where':{'id':_0x3506d6['params']['id']}})[_0x4275('0x15')](handleEntityNotFound(_0x5a6b5a,null))['then'](function(_0x5d4695){if(_0x5d4695){_0x134252[_0x4275('0x3e')]=_[_0x4275('0x3f')](db[_0x4275('0x5e')][_0x4275('0x40')]);_0x134252[_0x4275('0x39')]=_[_0x4275('0x3f')](_0x3506d6[_0x4275('0x39')]);_0x134252['filters']=_[_0x4275('0x41')](_0x134252[_0x4275('0x3e')],_0x134252[_0x4275('0x39')]);_0x13e326[_0x4275('0x42')]=_[_0x4275('0x41')](_0x134252[_0x4275('0x3e')],qs[_0x4275('0x9a')](_0x3506d6[_0x4275('0x39')][_0x4275('0x9a')]));_0x13e326[_0x4275('0x42')]=_0x13e326[_0x4275('0x42')][_0x4275('0x43')]?_0x13e326['attributes']:_0x134252[_0x4275('0x3e')];if(!_0x3506d6[_0x4275('0x39')][_0x4275('0x9b')](_0x4275('0x9c'))){_0x13e326['limit']=qs[_0x4275('0x23')](_0x3506d6['query'][_0x4275('0x23')]);_0x13e326[_0x4275('0x22')]=qs[_0x4275('0x22')](_0x3506d6[_0x4275('0x39')]['offset']);}_0x13e326[_0x4275('0x9d')]=qs[_0x4275('0x9e')](_0x3506d6['query'][_0x4275('0x9e')]);_0x13e326[_0x4275('0x9f')]=qs['filters'](_[_0x4275('0xa0')](_0x3506d6['query'],_0x134252[_0x4275('0x99')]));_0x13e326['where']['ChatInteractionId']=_0x5d4695['id'];if(_0x3506d6[_0x4275('0x39')][_0x4275('0xa1')]){_0x13e326[_0x4275('0x9f')]=_['merge'](_0x13e326['where'],{'$or':_[_0x4275('0x32')](_0x13e326[_0x4275('0x42')],function(_0x78eec7){var _0x6d56c4={};_0x6d56c4[_0x78eec7]={'$like':'%'+_0x3506d6[_0x4275('0x39')][_0x4275('0xa1')]+'%'};return _0x6d56c4;})});}_0x13e326['where'][_0x4275('0x8c')]=![];if(_0x3506d6['query']['id']){_0x13e326[_0x4275('0x9f')]['id']={'$gt':_0x3506d6['query']['id']};}_0x13e326=_[_0x4275('0xa2')]({},_0x13e326,_0x3506d6[_0x4275('0xa8')]);return db[_0x4275('0x5e')][_0x4275('0x25')]({'where':_0x13e326[_0x4275('0x9f')]})[_0x4275('0x15')](function(_0x19615e){_0x20797b['count']=_0x19615e;_0x13e326['include']=[];if(_0x3506d6[_0x4275('0x39')][_0x4275('0xa9')]){_0x13e326[_0x4275('0x45')]['push']({'model':db[_0x4275('0x7d')],'as':'User','attributes':['id',_0x4275('0x51'),_0x4275('0x87')]});}if(_0x3506d6[_0x4275('0x39')][_0x4275('0x44')]){_0x13e326[_0x4275('0x45')]=[{'all':!![]}];}return db[_0x4275('0x5e')]['findAll'](_0x13e326);})['then'](function(_0x34fc3e){_0x20797b[_0x4275('0xa6')]=_0x34fc3e;return _0x20797b;});}})[_0x4275('0x15')](respondWithFilteredResult(_0x5a6b5a,_0x13e326))[_0x4275('0x3b')](handleError(_0x5a6b5a,null));};exports[_0x4275('0xaa')]=function(_0x5717c7,_0x12a1ad){return db[_0x4275('0x33')][_0x4275('0x46')]({'where':{'id':_0x5717c7[_0x4275('0x3d')]['id']}})[_0x4275('0x15')](handleEntityNotFound(_0x12a1ad,null))['then'](function(_0x8a9797){if(_0x8a9797){return _0x8a9797[_0x4275('0xab')](_0x5717c7[_0x4275('0x2e')][_0x4275('0x96')],_[_0x4275('0x97')](_0x5717c7['body'],[_0x4275('0x96'),'id'])||{})[_0x4275('0xac')](function(){return db[_0x4275('0xad')][_0x4275('0xa5')]({'attributes':['id','name',_0x4275('0xae')],'where':{'id':_0x5717c7[_0x4275('0x2e')][_0x4275('0x96')]}});})[_0x4275('0x15')](function(_0x24bfbc){socket[_0x4275('0xaf')](_0x4275('0xb0'),{'id':Number(_0x5717c7[_0x4275('0x3d')]['id']),'tags':_0x24bfbc||[]});return{'id':Number(_0x5717c7[_0x4275('0x3d')]['id']),'tags':_0x24bfbc||[]};});}})['then'](respondWithResult(_0x12a1ad,null))[_0x4275('0x3b')](handleError(_0x12a1ad,null));};exports[_0x4275('0xb1')]=function(_0x3f4c48,_0x5a8272){return db['ChatInteraction'][_0x4275('0x46')]({'where':{'id':_0x3f4c48[_0x4275('0x3d')]['id']}})[_0x4275('0x15')](handleEntityNotFound(_0x5a8272,null))[_0x4275('0x15')](function(_0x356ef4){if(_0x356ef4){return _0x356ef4[_0x4275('0xb1')](_0x3f4c48[_0x4275('0x39')][_0x4275('0x96')]);}})[_0x4275('0x15')](respondWithStatusCode(_0x5a8272,null))[_0x4275('0x3b')](handleError(_0x5a8272,null));};exports['download']=function(_0x2bbfa2,_0x19f3ed){var _0x3f5d86=moment()[_0x4275('0xb2')]()[_0x4275('0xb3')]();var _0x3e9e72=path[_0x4275('0x73')](config[_0x4275('0x72')],_0x4275('0xb4'),_0x4275('0xb5'),'tmp');var _0x3db431=path[_0x4275('0x73')](config[_0x4275('0x72')],_0x4275('0xb4'),_0x4275('0xb5'),_0x4275('0xb6'));var _0x1fc2ed=path[_0x4275('0x73')](_0x3e9e72,_0x3f5d86);var _0x24b0f6=util[_0x4275('0x78')](_0x4275('0xb7'),_0x2bbfa2[_0x4275('0x3d')]['id'],_0x3f5d86);var _0xee6fca=path[_0x4275('0x73')](_0x3e9e72,_0x24b0f6);var _0x1265f4=[];_0x1265f4[_0x4275('0xb8')]({'model':db[_0x4275('0x7d')],'as':'User','attributes':['id',_0x4275('0x51')],'raw':!![]});_0x1265f4[_0x4275('0xb8')]({'model':db[_0x4275('0x61')],'as':'Contact','attributes':['id',_0x4275('0xb9'),_0x4275('0xba')],'raw':!![]});if(_0x2bbfa2[_0x4275('0x39')][_0x4275('0xb6')]){_0x1265f4[_0x4275('0xb8')]({'model':db[_0x4275('0x6c')],'as':_0x4275('0x6c'),'raw':!![]});}var _0x5935f9=[{'model':db[_0x4275('0x5e')],'as':_0x4275('0x7c'),'attributes':['id',_0x4275('0x2e'),_0x4275('0x8a'),_0x4275('0x8b'),_0x4275('0x8c'),_0x4275('0xbb')],'include':_0x1265f4}];_0x5935f9[_0x4275('0xb8')]({'model':db['ChatWebsite'],'as':_0x4275('0xbc'),'attributes':['id',_0x4275('0x2b')]});_0x5935f9[_0x4275('0xb8')]({'model':db[_0x4275('0x7d')],'as':_0x4275('0xbd'),'attributes':['id',_0x4275('0x51')]});return db[_0x4275('0x33')][_0x4275('0x46')]({'where':{'id':_0x2bbfa2['params']['id']},'include':_0x5935f9})[_0x4275('0x15')](handleEntityNotFound(_0x19f3ed,null))[_0x4275('0x15')](function(_0x4c6be8){if(_0x4c6be8){var _0x584cb0=_0x4c6be8[_0x4275('0xbe')]({'plain':!![]});fs[_0x4275('0xbf')](_0x1fc2ed);var _0x5933f3={'channel':_0x4275('0xc0'),'account':_0x584cb0[_0x4275('0xbc')][_0x4275('0x2b')],'agent':_0x584cb0['Owner']?_0x584cb0[_0x4275('0xbd')][_0x4275('0x51')]:'N.A.','createdAt':moment(_0x584cb0[_0x4275('0x8a')])[_0x4275('0x78')](_0x4275('0xa4'))[_0x4275('0xb3')](),'closedAt':_0x584cb0['closed']?moment(_0x584cb0[_0x4275('0xc1')])[_0x4275('0x78')]('YYYY-MM-DD\x20HH:mm:ss')[_0x4275('0xb3')]():'','disposition':_0x584cb0[_0x4275('0x66')],'chatInfo':{'browser':_0x584cb0[_0x4275('0xc2')],'os':_0x584cb0[_0x4275('0xc3')],'referer':_0x584cb0[_0x4275('0xc4')],'customerIp':_0x584cb0['customerIp'],'customerPort':_0x584cb0[_0x4275('0xc5')]?_0x584cb0[_0x4275('0xc5')]:'N.A.'},'messages':_(_0x584cb0[_0x4275('0x7c')])[_0x4275('0xc6')]()[_0x4275('0xa1')]({'secret':![]})['map'](function(_0x466737){if(_0x466737[_0x4275('0x6c')]){var _0x4dc5de=path[_0x4275('0x73')](_0x3db431,_0x466737[_0x4275('0x6c')][_0x4275('0x6a')]);if(fs[_0x4275('0xc7')](_0x4dc5de)){fs[_0x4275('0xc8')](_0x4dc5de)[_0x4275('0xc9')](fs[_0x4275('0xca')](path['join'](_0x1fc2ed,_0x466737[_0x4275('0x6c')][_0x4275('0x6a')])));}}return{'date':moment(_0x466737[_0x4275('0x8a')])['format'](_0x4275('0xa4'))[_0x4275('0xb3')](),'sender':_0x466737[_0x4275('0x8b')]===_0x4275('0xcb')?_0x466737['User']?_0x466737[_0x4275('0x7d')]['fullname']:_0x4275('0x80'):_0x466737[_0x4275('0xcc')][_0x4275('0xb9')]+(_0x466737[_0x4275('0xcc')][_0x4275('0xba')]?'\x20'+_0x466737[_0x4275('0xcc')][_0x4275('0xba')]:''),'body':_0x466737[_0x4275('0x6c')]?_0x466737[_0x4275('0x6c')]['basename']:_0x466737[_0x4275('0x2e')],'direction':_0x466737['direction']==='out'?'A':'C','secret':_0x466737[_0x4275('0x8c')],'read':_0x466737[_0x4275('0xbb')],'attachment':_0x466737[_0x4275('0x6c')]};})[_0x4275('0xcd')]()};return ejs['renderFile'](path[_0x4275('0x73')](config['root'],_0x4275('0xb4'),_0x4275('0xce'),_0x4275('0xcf')),{'interaction':_0x5933f3})[_0x4275('0x15')](function(_0x223d6e){var _0x5a82ef=path[_0x4275('0x73')](_0x1fc2ed,'transcript-'+_0x584cb0['id']+'-'+_0x3f5d86+_0x4275('0xd0'));var _0x588298={'path':_0x5a82ef,'channel':_0x4275('0xc0'),'interactionId':_0x584cb0['id']};return pdf[_0x4275('0xd1')](_0x223d6e,_0x588298);})[_0x4275('0x15')](function(){return new Promise(function(_0x3138b0,_0x1dca65){zipdir(_0x1fc2ed,{'saveTo':_0xee6fca},function(_0xa75109,_0x1b4f36){if(_0xa75109)return _0x1dca65(_0xa75109);return _0x3138b0(_0x1b4f36);});})[_0x4275('0x15')](function(){return new BPromise(function(_0x458f84,_0xbcb844){rimraf(_0x1fc2ed,function(_0x21c688){if(_0x21c688)_0xbcb844(_0x21c688);return _0x458f84();});});})[_0x4275('0x15')](function(){return _0x19f3ed[_0x4275('0x75')](_0xee6fca,_0x24b0f6,function(_0x3fe977){if(_0x3fe977){logger[_0x4275('0x1b')](_0x4275('0xd2'),_0x3fe977);}else{fs[_0x4275('0xd3')](_0xee6fca);}});});});}else{return _0x19f3ed['sendStatus'](0xc8);}})[_0x4275('0x3b')](handleError(_0x19f3ed,null));};