87bc6fd226e9b4c16d211a50d075d26fd163bd82
[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 _0x0cf2=['error','message','result','catch','status','limit','undefined','offset','count','Content-Range','json','update','end','stack','name','render','agent','interaction','index','map','rawAttributes','fieldName','type','findAll','chat','user','show','model','keys','query','filters','intersection','attributes','fields','include','merge','ChatInteraction','create','body','find','params','describe','findOne','ChatWebsite','vidaooApiKey','vidaooTopic','vidaooNote','vidaooEscalation','fullname','email','account','POST','https://api-vidaoo.xcally.com/api/v1/meetings','isNull','follow','vidaooMetadata','parse','Sequelize','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','Error\x20in\x20Vidaoo\x20configuration','join_url','out','ChatMessage','updateAttributes','customUpdate','CmContact','Contact','abandonInteraction,\x20%s,\x20%s,\x20%s','sendStatus','Interaction\x20already\x20assigned','closed','abandon','attachmentUpload','file','basename','filename','mimetype','Attachment','attachmentDownload','Unauthorized','attachId','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','close','mailTranscript','server/files/chat/upload/','format','transcript-%s.txt','now','Messages','User','ContactId','length','UserId','%s%d','agentAlias','customer','Visitor','agentIdentifier','website_alias','agent_alias','alias','System','agent_fullname','[%s]\x20%s:\x20%s\x0a','createdAt','MM/DD/YYYY\x20HH:mm:ss','direction','appendFileSync','MailAccount','MailServerOut','CloudProvider','Smtp','SendMail','sendMail','\x22%s\x22\x20<%s>','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','ids','omit','hasOwnProperty','nolimit','order','sort','where','pick','filter','split','options','includeAll','rows','getMyMessages','ChatInteractionId','secret','includeAgent','setTags','spread','Tag','color','removeTags','download','unix','toString','server','files','tmp','attachments','push','firstName','lastName','read','Account','Owner','get','mkdirSync','Chat','YYYY-MM-DD\x20HH:mm:ss','closedAt','disposition','browserName','osName','referer','customerIp','customerPort','N.A.','tail','createReadStream','pipe','createWriteStream','value','renderFile','views','downloadInteraction.ejs','transcript-','.pdf','createPdfFromHTML','err','rimraf','zip-dir','moment','bluebird','mustache','util','path','ejs','lodash','ioredis','../../components/interaction/service','../../components/export/pdf','../../config/logger','../../config/environment','../../mysqldb','redis','localhost','register','jayson/promise','http','client','request','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x9ab959,_0x32f2e2){var _0x37fbe3=function(_0x1d9c28){while(--_0x1d9c28){_0x9ab959['push'](_0x9ab959['shift']());}};_0x37fbe3(++_0x32f2e2);}(_0x0cf2,0xb6));var _0x20cf=function(_0xe66cf2,_0x32ba5f){_0xe66cf2=_0xe66cf2-0x0;var _0x2d84e7=_0x0cf2[_0xe66cf2];return _0x2d84e7;};'use strict';var rimraf=require(_0x20cf('0x0'));var zipdir=require(_0x20cf('0x1'));var rp=require('request-promise');var moment=require(_0x20cf('0x2'));var BPromise=require(_0x20cf('0x3'));var Mustache=require(_0x20cf('0x4'));var util=require(_0x20cf('0x5'));var path=require(_0x20cf('0x6'));var ejs=require(_0x20cf('0x7'));var fs=require('fs');var _=require(_0x20cf('0x8'));var Redis=require(_0x20cf('0x9'));var interaction=require(_0x20cf('0xa'));var qs=require('../../components/parsers/qs');var pdf=require(_0x20cf('0xb'));var logger=require(_0x20cf('0xc'))('api');var config=require(_0x20cf('0xd'));var db=require(_0x20cf('0xe'))['db'];config[_0x20cf('0xf')]=_['defaults'](config[_0x20cf('0xf')],{'host':_0x20cf('0x10'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x20cf('0xf')]));require('./chatInteraction.socket')[_0x20cf('0x11')](socket);var jayson=require(_0x20cf('0x12'));var client=jayson['client'][_0x20cf('0x13')]({'port':0x232b});var client9004=jayson[_0x20cf('0x14')][_0x20cf('0x13')]({'port':0x232c});function respondWithRpcPromise(_0x24fa7c,_0x239dc7,_0x3cadae,_0x470cb1){return new BPromise(function(_0x5b0e95,_0x3f9ab1){var _0x2e8fdf=_0x470cb1||client;return _0x2e8fdf[_0x20cf('0x15')](_0x24fa7c,_0x3cadae)[_0x20cf('0x16')](function(_0xc8be91){logger[_0x20cf('0x17')](_0x20cf('0x18'),_0x239dc7,_0x20cf('0x19'));logger[_0x20cf('0x1a')](_0x20cf('0x1b'),_0x239dc7,_0x20cf('0x19'),JSON[_0x20cf('0x1c')](_0xc8be91));if(_0xc8be91[_0x20cf('0x1d')]){if(_0xc8be91[_0x20cf('0x1d')]['code']===0x1f4){logger[_0x20cf('0x1d')]('ChatInteraction,\x20%s,\x20%s',_0x239dc7,_0xc8be91[_0x20cf('0x1d')]['message']);return _0x3f9ab1(_0xc8be91[_0x20cf('0x1d')][_0x20cf('0x1e')]);}logger[_0x20cf('0x1d')]('ChatInteraction,\x20%s,\x20%s',_0x239dc7,_0xc8be91[_0x20cf('0x1d')]['message']);return _0x5b0e95(_0xc8be91[_0x20cf('0x1d')][_0x20cf('0x1e')]);}else{logger['info'](_0x20cf('0x18'),_0x239dc7,_0x20cf('0x19'));_0x5b0e95(_0xc8be91[_0x20cf('0x1f')][_0x20cf('0x1e')]);}})[_0x20cf('0x20')](function(_0x4aa17c){logger[_0x20cf('0x1d')]('ChatInteraction,\x20%s,\x20%s',_0x239dc7,_0x4aa17c);_0x3f9ab1(_0x4aa17c);});});}function respondWithStatusCode(_0x1ef71b,_0x13e0d1){_0x13e0d1=_0x13e0d1||0xcc;return function(_0x4ffc1a){if(_0x4ffc1a){return _0x1ef71b['sendStatus'](_0x13e0d1);}return _0x1ef71b[_0x20cf('0x21')](_0x13e0d1)['end']();};}function respondWithResult(_0x11924f,_0x4a3464){_0x4a3464=_0x4a3464||0xc8;return function(_0x2403af){if(_0x2403af){return _0x11924f[_0x20cf('0x21')](_0x4a3464)['json'](_0x2403af);}};}function respondWithFilteredResult(_0x2db25f,_0x1ecf73){return function(_0x4dccd6){if(_0x4dccd6){var _0x530ae3=typeof _0x1ecf73['offset']==='undefined'&&typeof _0x1ecf73[_0x20cf('0x22')]===_0x20cf('0x23');var _0x29c97a=_0x4dccd6['count'];var _0x1dce3d=_0x530ae3?0x0:_0x1ecf73[_0x20cf('0x24')];var _0x28d9a5=_0x530ae3?_0x4dccd6[_0x20cf('0x25')]:_0x1ecf73[_0x20cf('0x24')]+_0x1ecf73[_0x20cf('0x22')];var _0x193d2e;if(_0x28d9a5>=_0x29c97a){_0x28d9a5=_0x29c97a;_0x193d2e=0xc8;}else{_0x193d2e=0xce;}_0x2db25f['status'](_0x193d2e);return _0x2db25f['set'](_0x20cf('0x26'),_0x1dce3d+'-'+_0x28d9a5+'/'+_0x29c97a)[_0x20cf('0x27')](_0x4dccd6);}return null;};}function saveUpdates(_0x5c0f7c){return function(_0x4b846b){if(_0x4b846b){return _0x4b846b[_0x20cf('0x28')](_0x5c0f7c)[_0x20cf('0x16')](function(_0x4aa609){return _0x4aa609;});}return null;};}function removeEntity(_0x45294f){return function(_0x6f1d90){if(_0x6f1d90){return _0x6f1d90['destroy']()[_0x20cf('0x16')](function(){_0x45294f[_0x20cf('0x21')](0xcc)[_0x20cf('0x29')]();});}};}function handleEntityNotFound(_0x9ea48e){return function(_0x4fba82){if(!_0x4fba82){_0x9ea48e['sendStatus'](0x194);}return _0x4fba82;};}function handleError(_0xff9c20,_0x1a63ba){_0x1a63ba=_0x1a63ba||0x1f4;return function(_0x4de5e3){logger[_0x20cf('0x1d')](_0x4de5e3[_0x20cf('0x2a')]);if(_0x4de5e3[_0x20cf('0x2b')]){delete _0x4de5e3[_0x20cf('0x2b')];}_0xff9c20[_0x20cf('0x21')](_0x1a63ba)['send'](_0x4de5e3);};}function getMustacheRender(_0x246caf,_0x1bdbfd){return Mustache[_0x20cf('0x2c')](_0x246caf,_['merge'](_0x1bdbfd['body'],{'contact':_0x1bdbfd['contact'],'message':_0x1bdbfd[_0x20cf('0x1e')],'agent':_0x1bdbfd[_0x20cf('0x2d')],'interaction':_0x1bdbfd[_0x20cf('0x2e')],'account':_0x1bdbfd['account']}))||'';}exports[_0x20cf('0x2f')]=function(_0x431958,_0x22b950){var _0x24659f={};var _0x42281a=_[_0x20cf('0x30')](db['ChatInteraction'][_0x20cf('0x31')],function(_0x33837a){return{'name':_0x33837a[_0x20cf('0x32')],'type':_0x33837a[_0x20cf('0x33')]['key']};});_0x24659f=qs['getOptions'](_0x42281a,_0x431958);return interaction[_0x20cf('0x34')](_0x20cf('0x35'),_0x431958['query'],_0x431958[_0x20cf('0x36')],_0x24659f,_0x42281a)['then'](respondWithFilteredResult(_0x22b950,_0x24659f))[_0x20cf('0x20')](handleError(_0x22b950,null));};exports[_0x20cf('0x37')]=function(_0x1415b5,_0x295c0c){var _0x7c3d6={'raw':![],'where':{'id':_0x1415b5['params']['id']}},_0x41e45a={};_0x41e45a[_0x20cf('0x38')]=_[_0x20cf('0x39')](db['ChatInteraction'][_0x20cf('0x31')]);_0x41e45a['query']=_[_0x20cf('0x39')](_0x1415b5[_0x20cf('0x3a')]);_0x41e45a[_0x20cf('0x3b')]=_[_0x20cf('0x3c')](_0x41e45a[_0x20cf('0x38')],_0x41e45a['query']);_0x7c3d6[_0x20cf('0x3d')]=_[_0x20cf('0x3c')](_0x41e45a[_0x20cf('0x38')],qs[_0x20cf('0x3e')](_0x1415b5[_0x20cf('0x3a')]['fields']));_0x7c3d6[_0x20cf('0x3d')]=_0x7c3d6[_0x20cf('0x3d')]['length']?_0x7c3d6['attributes']:_0x41e45a['model'];if(_0x1415b5['query']['includeAll']){_0x7c3d6[_0x20cf('0x3f')]=[{'all':!![]}];}_0x7c3d6=_[_0x20cf('0x40')]({},_0x7c3d6,_0x1415b5['options']);return db[_0x20cf('0x41')]['find'](_0x7c3d6)[_0x20cf('0x16')](handleEntityNotFound(_0x295c0c,null))[_0x20cf('0x16')](respondWithResult(_0x295c0c,null))[_0x20cf('0x20')](handleError(_0x295c0c,null));};exports[_0x20cf('0x42')]=function(_0x30d548,_0x4dee71){return db[_0x20cf('0x41')][_0x20cf('0x42')](_0x30d548['body'],{})[_0x20cf('0x16')](respondWithResult(_0x4dee71,0xc9))[_0x20cf('0x20')](handleError(_0x4dee71,null));};exports[_0x20cf('0x28')]=function(_0x457f89,_0x5415cd){if(_0x457f89[_0x20cf('0x43')]['id']){delete _0x457f89[_0x20cf('0x43')]['id'];}return db[_0x20cf('0x41')][_0x20cf('0x44')]({'where':{'id':_0x457f89[_0x20cf('0x45')]['id']}})[_0x20cf('0x16')](handleEntityNotFound(_0x5415cd,null))['then'](saveUpdates(_0x457f89[_0x20cf('0x43')],null))[_0x20cf('0x16')](respondWithResult(_0x5415cd,null))['catch'](handleError(_0x5415cd,null));};exports['destroy']=function(_0x2b93df,_0x5049eb){return db[_0x20cf('0x41')]['find']({'where':{'id':_0x2b93df[_0x20cf('0x45')]['id']}})[_0x20cf('0x16')](handleEntityNotFound(_0x5049eb,null))[_0x20cf('0x16')](removeEntity(_0x5049eb,null))[_0x20cf('0x20')](handleError(_0x5049eb,null));};exports[_0x20cf('0x46')]=function(_0x55ae9d,_0x5585b4){return db['ChatInteraction'][_0x20cf('0x46')]()[_0x20cf('0x16')](respondWithResult(_0x5585b4,null))[_0x20cf('0x20')](handleError(_0x5585b4,null));};exports['createVidaooSession']=function(_0x2eb2d2,_0xed1182){var _0x1d2b62=_0x2eb2d2[_0x20cf('0x45')]['id'];var _0x26ca36;var _0x3ba8ab;var _0x3852e9;return db[_0x20cf('0x41')][_0x20cf('0x47')]({'where':{'id':_0x1d2b62}})['then'](function(_0x5e892d){_0x26ca36=_0x5e892d;return db[_0x20cf('0x48')][_0x20cf('0x47')]({'where':{'id':_0x5e892d['ChatWebsiteId']},'attributes':['id',_0x20cf('0x49'),'vidaooEscalation',_0x20cf('0x4a'),_0x20cf('0x4b'),'vidaooMetadata'],'raw':!![]});})['then'](function(_0x34be9c){if(_0x34be9c&&_0x34be9c[_0x20cf('0x49')]&&_0x34be9c[_0x20cf('0x4c')]){_0x3ba8ab=_0x34be9c;var _0x37e0fa={'interaction':{'id':_0x1d2b62},'agent':{'id':_0x2eb2d2['user']['id'],'name':_0x2eb2d2['user']['name'],'fullname':_0x2eb2d2[_0x20cf('0x36')][_0x20cf('0x4d')],'email':_0x2eb2d2['user'][_0x20cf('0x4e')]},'contact':_0x2eb2d2[_0x20cf('0x43')]['contact'],'account':_0x2eb2d2[_0x20cf('0x43')][_0x20cf('0x4f')]};var _0x47485d={'rejectUnauthorized':![],'method':_0x20cf('0x50'),'url':_0x20cf('0x51'),'headers':{'X-APIKEY':_0x34be9c[_0x20cf('0x49')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x2eb2d2[_0x20cf('0x36')]['email']],'buttons':null,'topic':_0x3ba8ab['vidaooTopic'],'note':_[_0x20cf('0x52')](_0x3ba8ab['vidaooNote'])?null:getMustacheRender(_0x3ba8ab['vidaooNote'],_0x37e0fa),'metadata':null},'redirect':_0x20cf('0x53'),'json':!![]};try{if(!_[_0x20cf('0x52')](_0x3ba8ab[_0x20cf('0x54')])){var _0x15b8b2=getMustacheRender(_0x3ba8ab[_0x20cf('0x54')],_0x37e0fa);var _0x354979=JSON[_0x20cf('0x55')](_0x15b8b2);_0x47485d['body']['metadata']=_0x354979;}}catch(_0x219097){throw new db[(_0x20cf('0x56'))][(_0x20cf('0x57'))](_0x20cf('0x58'));}return rp(_0x47485d);}else{throw new db[(_0x20cf('0x56'))][(_0x20cf('0x57'))](_0x20cf('0x59'));}})[_0x20cf('0x16')](function(_0xc8dd97){_0x3852e9=_0xc8dd97;if(_0x3852e9['id']){var _0x17bb89={'body':_0x3852e9[_0x20cf('0x5a')],'ChatWebsiteId':_0x3ba8ab['id'],'ChatInteractionId':_0x26ca36['id'],'direction':_0x20cf('0x5b'),'UserId':_0x2eb2d2[_0x20cf('0x36')]['id']};return db[_0x20cf('0x5c')]['create'](_0x17bb89,{});}else{throw new db[(_0x20cf('0x56'))][(_0x20cf('0x57'))]('Unable\x20to\x20create\x20Vidaoo\x20session');}})[_0x20cf('0x16')](function(){return _0x26ca36[_0x20cf('0x5d')]({'vidaooSessionId':_0x3852e9['id']});})[_0x20cf('0x16')](respondWithResult(_0xed1182,null))[_0x20cf('0x20')](handleError(_0xed1182,null));};exports[_0x20cf('0x5e')]=function(_0x482411,_0x41d56f){if(_0x482411[_0x20cf('0x43')]['id']){delete _0x482411[_0x20cf('0x43')]['id'];}return db['ChatInteraction'][_0x20cf('0x44')]({'where':{'id':_0x482411['params']['id']},'include':[{'model':db[_0x20cf('0x5f')],'as':_0x20cf('0x60')}]})[_0x20cf('0x16')](handleEntityNotFound(_0x41d56f,null))[_0x20cf('0x16')](saveUpdates(_0x482411[_0x20cf('0x43')],null))[_0x20cf('0x16')](respondWithResult(_0x41d56f,null))['catch'](handleError(_0x41d56f,null));};exports['abandon']=function(_0x4810b2,_0x5be4b3){if(_0x4810b2[_0x20cf('0x43')]['id']){delete _0x4810b2[_0x20cf('0x43')]['id'];}return db[_0x20cf('0x41')][_0x20cf('0x44')]({'where':{'id':_0x4810b2['params']['id']}})[_0x20cf('0x16')](function(_0x1f0be4){if(!_0x1f0be4){logger[_0x20cf('0x1d')](_0x20cf('0x61'),'abandon',0x194,'entity\x20not\x20found');_0x5be4b3[_0x20cf('0x62')](0x194);}else{if(_0x1f0be4['UserId']){throw new db[(_0x20cf('0x56'))][(_0x20cf('0x57'))](_0x20cf('0x63'));}}return _0x1f0be4;})[_0x20cf('0x16')](function(_0x11e8c3){if(_0x11e8c3){return _0x11e8c3[_0x20cf('0x28')]({'closed':_0x4810b2[_0x20cf('0x43')][_0x20cf('0x64')],'disposition':_0x4810b2['body']['disposition']})['then'](function(_0x4ffebd){return _0x4ffebd;});}})[_0x20cf('0x16')](function(){return respondWithRpcPromise('AbandonInteraction',_0x20cf('0x65'),_0x4810b2[_0x20cf('0x43')],client9004);})[_0x20cf('0x16')](respondWithResult(_0x5be4b3,null))['catch'](handleError(_0x5be4b3,null));};exports[_0x20cf('0x66')]=function(_0x300e55,_0x9066d1){_0x300e55[_0x20cf('0x43')][_0x20cf('0x2b')]=_0x300e55[_0x20cf('0x67')]['originalname'];_0x300e55[_0x20cf('0x43')][_0x20cf('0x68')]=_0x300e55[_0x20cf('0x67')][_0x20cf('0x69')];_0x300e55[_0x20cf('0x43')][_0x20cf('0x33')]=_0x300e55['file'][_0x20cf('0x6a')];return db[_0x20cf('0x6b')][_0x20cf('0x42')](_0x300e55[_0x20cf('0x43')])[_0x20cf('0x16')](respondWithResult(_0x9066d1,0xc9))[_0x20cf('0x20')](handleError(_0x9066d1,null));};exports[_0x20cf('0x6c')]=function(_0x2b288a,_0x4fa955){return db[_0x20cf('0x41')]['findOne']({'where':{'id':_0x2b288a[_0x20cf('0x45')]['id']},'raw':!![]})[_0x20cf('0x16')](handleEntityNotFound(_0x4fa955,null))[_0x20cf('0x16')](function(_0x38fc00){if(_0x38fc00){if(_0x38fc00[_0x20cf('0x64')]){return _0x4fa955[_0x20cf('0x21')](0x193)[_0x20cf('0x27')]({'status':0x193,'message':_0x20cf('0x6d')});}return db['Attachment'][_0x20cf('0x47')]({'where':{'id':_0x2b288a[_0x20cf('0x3a')][_0x20cf('0x6e')]},'raw':!![]})['then'](handleEntityNotFound(_0x4fa955,null));}})[_0x20cf('0x16')](function(_0x1b1340){if(_0x1b1340){var _0x162b1e=_0x1b1340[_0x20cf('0x6f')]!==null;var _0xd51fd1=path[_0x20cf('0x70')](config[_0x20cf('0x71')],_0x20cf('0x72'));if(_0x162b1e){_0xd51fd1=path[_0x20cf('0x70')](_0xd51fd1,_0x20cf('0x73'));}var _0x1d4dc4=path[_0x20cf('0x70')](_0xd51fd1,_0x1b1340[_0x20cf('0x68')]);return _0x4fa955['download'](_0x1d4dc4);}})[_0x20cf('0x20')](handleError(_0x4fa955,null));};exports[_0x20cf('0x74')]=function(_0x4dba17,_0x7500a4){var _0x5d1dbe=null;var _0x4e21d5=null;var _0xb4627f=null;if(_0x4dba17['body']['id']){delete _0x4dba17[_0x20cf('0x43')]['id'];}if(_0x4dba17[_0x20cf('0x43')][_0x20cf('0x75')]){_0xb4627f=path[_0x20cf('0x70')](config[_0x20cf('0x71')],_0x20cf('0x76'),util[_0x20cf('0x77')](_0x20cf('0x78'),Date[_0x20cf('0x79')]()));_0x4dba17[_0x20cf('0x43')]['pathTranscript']=_0xb4627f;}return db['ChatInteraction'][_0x20cf('0x44')]({'where':{'id':_0x4dba17[_0x20cf('0x45')]['id']},'include':[{'model':db['ChatMessage'],'as':_0x20cf('0x7a'),'include':[{'model':db[_0x20cf('0x7b')],'as':_0x20cf('0x7b')}]}]})[_0x20cf('0x16')](handleEntityNotFound(_0x7500a4,null))['then'](saveUpdates(_0x4dba17['body'],null))[_0x20cf('0x16')](function(_0x4fff12){if(_0x4fff12){_0x5d1dbe=_0x4fff12;return db[_0x20cf('0x48')]['find']({'where':{'id':_0x5d1dbe['ChatWebsiteId']}});}})[_0x20cf('0x16')](function(_0x599676){if(_0x599676){_0x4e21d5=_0x599676;return db[_0x20cf('0x5f')]['find']({'where':{'id':_0x5d1dbe[_0x20cf('0x7c')]}});}})[_0x20cf('0x16')](function(_0x32fbfa){if(_0x32fbfa){if(_0xb4627f){var _0xb12b95=null;for(var _0x164991=0x1;_0x164991<_0x5d1dbe[_0x20cf('0x7a')][_0x20cf('0x7d')];++_0x164991){_0xb12b95=_0x5d1dbe['Messages'][_0x164991];var _0x5ec54e=_0xb12b95[_0x20cf('0x7e')]?util[_0x20cf('0x77')](_0x20cf('0x7f'),_0x4e21d5[_0x20cf('0x80')],_0xb12b95['UserId']):'System';var _0x130d32=_0x4dba17['body'][_0x20cf('0x81')]||util[_0x20cf('0x77')](_0x20cf('0x7f'),_0x20cf('0x82'),_0xb12b95[_0x20cf('0x7c')]);switch(_0x4e21d5[_0x20cf('0x83')]){case _0x20cf('0x84'):_0x5ec54e=_0xb12b95['UserId']?util[_0x20cf('0x77')](_0x20cf('0x7f'),_0x4e21d5['agentAlias'],_0xb12b95[_0x20cf('0x7e')]):'System';break;case _0x20cf('0x85'):_0x5ec54e=_0xb12b95[_0x20cf('0x7e')]?_0xb12b95[_0x20cf('0x7b')][_0x20cf('0x86')]||_0xb12b95[_0x20cf('0x7b')]['fullname']:_0x20cf('0x87');break;case _0x20cf('0x88'):_0x5ec54e=_0xb12b95[_0x20cf('0x7e')]?_0xb12b95[_0x20cf('0x7b')][_0x20cf('0x4d')]:_0x20cf('0x87');break;default:_0x5ec54e=_0xb12b95[_0x20cf('0x7e')]?util['format'](_0x20cf('0x7f'),_0x4e21d5[_0x20cf('0x80')],_0xb12b95[_0x20cf('0x7e')]):_0x20cf('0x87');}var _0x4211f3=util['format'](_0x20cf('0x89'),moment(_0xb12b95[_0x20cf('0x8a')])[_0x20cf('0x77')](_0x20cf('0x8b')),_0xb12b95[_0x20cf('0x8c')]==='in'?_0x130d32:_0x5ec54e,_0xb12b95[_0x20cf('0x43')]);if(!_0xb12b95['secret']){fs[_0x20cf('0x8d')](_0xb4627f,_0x4211f3);}}return db[_0x20cf('0x8e')][_0x20cf('0x47')]({'where':{'service':!![]},'include':[{'model':db[_0x20cf('0x8f')],'as':'Smtp','raw':!![],'include':[{'model':db[_0x20cf('0x90')],'as':_0x20cf('0x90'),'raw':!![]}]}]});}}})[_0x20cf('0x16')](function(_0x5ecb2f){if(!_0x5ecb2f||!_0x5ecb2f[_0x20cf('0x91')]||!_0x4dba17['body'])return _0x5d1dbe;var _0x30c1d7=_0x5ecb2f['getSmtpOptions']();return respondWithRpcPromise(_0x20cf('0x92'),_0x20cf('0x93'),{'account':_0x30c1d7,'message':{'from':util['format'](_0x20cf('0x94'),_0x5ecb2f[_0x20cf('0x2b')],_0x5ecb2f[_0x20cf('0x4e')]||_0x5ecb2f['Smtp'][_0x20cf('0x36')]),'to':_0x4dba17[_0x20cf('0x43')][_0x20cf('0x75')],'subject':_0x20cf('0x95'),'text':util[_0x20cf('0x77')](_0x20cf('0x96'),_0x4dba17['body'][_0x20cf('0x75')]),'attachments':[{'path':_0xb4627f}]}})[_0x20cf('0x16')](function(){return _0x5d1dbe;})[_0x20cf('0x20')](function(_0xd0d5fe){logger[_0x20cf('0x1d')](_0xd0d5fe);});})[_0x20cf('0x16')](respondWithStatusCode(_0x7500a4,0xc8))[_0x20cf('0x20')](handleError(_0x7500a4,null));};exports[_0x20cf('0x97')]=function(_0x5d8fff,_0x2c7a9a){return db[_0x20cf('0x5c')]['find']({'where':{'id':_0x5d8fff[_0x20cf('0x45')]['id']}})['then'](handleEntityNotFound(_0x2c7a9a,null))[_0x20cf('0x16')](function(_0x39a238){if(_0x39a238){return _0x39a238['addMessage'](_0x5d8fff[_0x20cf('0x43')][_0x20cf('0x98')],_[_0x20cf('0x99')](_0x5d8fff['body'],[_0x20cf('0x98'),'id'])||{});}})['then'](respondWithResult(_0x2c7a9a,null))[_0x20cf('0x20')](handleError(_0x2c7a9a,null));};exports['getMessages']=function(_0x4e0156,_0x4cb327){var _0x4dcd65={'raw':![],'where':{}};var _0xfddb04={};var _0x586a10={'count':0x0,'rows':[]};return db['ChatInteraction'][_0x20cf('0x47')]({'where':{'id':_0x4e0156[_0x20cf('0x45')]['id']}})[_0x20cf('0x16')](handleEntityNotFound(_0x4cb327,null))['then'](function(_0x477aa0){if(_0x477aa0){_0xfddb04[_0x20cf('0x38')]=_[_0x20cf('0x39')](db['ChatMessage'][_0x20cf('0x31')]);_0xfddb04[_0x20cf('0x3a')]=_[_0x20cf('0x39')](_0x4e0156[_0x20cf('0x3a')]);_0xfddb04['filters']=_[_0x20cf('0x3c')](_0xfddb04[_0x20cf('0x38')],_0xfddb04[_0x20cf('0x3a')]);_0x4dcd65[_0x20cf('0x3d')]=_[_0x20cf('0x3c')](_0xfddb04[_0x20cf('0x38')],qs['fields'](_0x4e0156[_0x20cf('0x3a')]['fields']));_0x4dcd65[_0x20cf('0x3d')]=_0x4dcd65['attributes']['length']?_0x4dcd65[_0x20cf('0x3d')]:_0xfddb04['model'];if(!_0x4e0156[_0x20cf('0x3a')][_0x20cf('0x9a')](_0x20cf('0x9b'))){_0x4dcd65[_0x20cf('0x22')]=qs[_0x20cf('0x22')](_0x4e0156[_0x20cf('0x3a')]['limit']);_0x4dcd65[_0x20cf('0x24')]=qs[_0x20cf('0x24')](_0x4e0156[_0x20cf('0x3a')][_0x20cf('0x24')]);}_0x4dcd65[_0x20cf('0x9c')]=qs[_0x20cf('0x9d')](_0x4e0156['query']['sort']);_0x4dcd65[_0x20cf('0x9e')]=qs[_0x20cf('0x3b')](_[_0x20cf('0x9f')](_0x4e0156[_0x20cf('0x3a')],_0xfddb04[_0x20cf('0x3b')]));_0x4dcd65[_0x20cf('0x9e')]['ChatInteractionId']=_0x477aa0['id'];if(_0x4e0156['query']['filter']){_0x4dcd65['where']=_[_0x20cf('0x40')](_0x4dcd65['where'],{'$or':_[_0x20cf('0x30')](_0x4dcd65[_0x20cf('0x3d')],function(_0x2a8380){var _0x2b28e3={};_0x2b28e3[_0x2a8380]={'$like':'%'+_0x4e0156[_0x20cf('0x3a')][_0x20cf('0xa0')]+'%'};return _0x2b28e3;})});}if(_0x4e0156[_0x20cf('0x3a')]['$gte']){var _0x233da3=_0x4e0156['query']['$gte'][_0x20cf('0xa1')](',');var _0x5d4d9e={};_0x5d4d9e[_0x233da3[0x0]]={'$gte':moment(_0x233da3[0x1])['format']('YYYY-MM-DD\x20HH:mm:ss')};_0x4dcd65[_0x20cf('0x9e')]=_['merge'](_0x4dcd65[_0x20cf('0x9e')],_0x5d4d9e);}_0x4dcd65=_[_0x20cf('0x40')]({},_0x4dcd65,_0x4e0156[_0x20cf('0xa2')]);return db['ChatMessage'][_0x20cf('0x25')]({'where':_0x4dcd65[_0x20cf('0x9e')]})[_0x20cf('0x16')](function(_0x238f91){_0x586a10[_0x20cf('0x25')]=_0x238f91;if(_0x4e0156['query'][_0x20cf('0xa3')]){_0x4dcd65[_0x20cf('0x3f')]=[{'all':!![]}];}return db[_0x20cf('0x5c')][_0x20cf('0x34')](_0x4dcd65);})['then'](function(_0x42489f){_0x586a10[_0x20cf('0xa4')]=_0x42489f;return _0x586a10;});}})[_0x20cf('0x16')](respondWithFilteredResult(_0x4cb327,_0x4dcd65))[_0x20cf('0x20')](handleError(_0x4cb327,null));};exports[_0x20cf('0xa5')]=function(_0xd6c2e4,_0x286239){var _0x1152ba={'where':{}},_0x245bd1={},_0x54b0d4={'count':0x0,'rows':[]};return db[_0x20cf('0x41')][_0x20cf('0x47')]({'where':{'id':_0xd6c2e4[_0x20cf('0x45')]['id']}})[_0x20cf('0x16')](handleEntityNotFound(_0x286239,null))['then'](function(_0x4457c9){if(_0x4457c9){_0x245bd1[_0x20cf('0x38')]=_['keys'](db['ChatMessage']['rawAttributes']);_0x245bd1['query']=_[_0x20cf('0x39')](_0xd6c2e4[_0x20cf('0x3a')]);_0x245bd1[_0x20cf('0x3b')]=_['intersection'](_0x245bd1['model'],_0x245bd1[_0x20cf('0x3a')]);_0x1152ba[_0x20cf('0x3d')]=_[_0x20cf('0x3c')](_0x245bd1[_0x20cf('0x38')],qs[_0x20cf('0x3e')](_0xd6c2e4[_0x20cf('0x3a')][_0x20cf('0x3e')]));_0x1152ba[_0x20cf('0x3d')]=_0x1152ba[_0x20cf('0x3d')]['length']?_0x1152ba[_0x20cf('0x3d')]:_0x245bd1[_0x20cf('0x38')];if(!_0xd6c2e4['query']['hasOwnProperty']('nolimit')){_0x1152ba[_0x20cf('0x22')]=qs[_0x20cf('0x22')](_0xd6c2e4['query'][_0x20cf('0x22')]);_0x1152ba['offset']=qs[_0x20cf('0x24')](_0xd6c2e4[_0x20cf('0x3a')][_0x20cf('0x24')]);}_0x1152ba[_0x20cf('0x9c')]=qs[_0x20cf('0x9d')](_0xd6c2e4[_0x20cf('0x3a')][_0x20cf('0x9d')]);_0x1152ba[_0x20cf('0x9e')]=qs[_0x20cf('0x3b')](_[_0x20cf('0x9f')](_0xd6c2e4[_0x20cf('0x3a')],_0x245bd1[_0x20cf('0x3b')]));_0x1152ba[_0x20cf('0x9e')][_0x20cf('0xa6')]=_0x4457c9['id'];if(_0xd6c2e4[_0x20cf('0x3a')]['filter']){_0x1152ba['where']=_[_0x20cf('0x40')](_0x1152ba[_0x20cf('0x9e')],{'$or':_[_0x20cf('0x30')](_0x1152ba[_0x20cf('0x3d')],function(_0x5293ad){var _0x17713a={};_0x17713a[_0x5293ad]={'$like':'%'+_0xd6c2e4[_0x20cf('0x3a')]['filter']+'%'};return _0x17713a;})});}_0x1152ba[_0x20cf('0x9e')][_0x20cf('0xa7')]=![];if(_0xd6c2e4[_0x20cf('0x3a')]['id']){_0x1152ba['where']['id']={'$gt':_0xd6c2e4[_0x20cf('0x3a')]['id']};}_0x1152ba=_[_0x20cf('0x40')]({},_0x1152ba,_0xd6c2e4[_0x20cf('0xa2')]);return db['ChatMessage'][_0x20cf('0x25')]({'where':_0x1152ba[_0x20cf('0x9e')]})[_0x20cf('0x16')](function(_0x21a650){_0x54b0d4[_0x20cf('0x25')]=_0x21a650;_0x1152ba[_0x20cf('0x3f')]=[];if(_0xd6c2e4[_0x20cf('0x3a')][_0x20cf('0xa8')]){_0x1152ba[_0x20cf('0x3f')]['push']({'model':db[_0x20cf('0x7b')],'as':'User','attributes':['id',_0x20cf('0x4d'),'alias']});}if(_0xd6c2e4[_0x20cf('0x3a')][_0x20cf('0xa3')]){_0x1152ba[_0x20cf('0x3f')]=[{'all':!![]}];}return db['ChatMessage'][_0x20cf('0x34')](_0x1152ba);})[_0x20cf('0x16')](function(_0x1067f0){_0x54b0d4[_0x20cf('0xa4')]=_0x1067f0;return _0x54b0d4;});}})[_0x20cf('0x16')](respondWithFilteredResult(_0x286239,_0x1152ba))[_0x20cf('0x20')](handleError(_0x286239,null));};exports['addTags']=function(_0x3ca75c,_0x3bcafe){return db[_0x20cf('0x41')][_0x20cf('0x44')]({'where':{'id':_0x3ca75c[_0x20cf('0x45')]['id']}})[_0x20cf('0x16')](handleEntityNotFound(_0x3bcafe,null))[_0x20cf('0x16')](function(_0x12cc21){if(_0x12cc21){return _0x12cc21[_0x20cf('0xa9')](_0x3ca75c[_0x20cf('0x43')][_0x20cf('0x98')],_[_0x20cf('0x99')](_0x3ca75c[_0x20cf('0x43')],[_0x20cf('0x98'),'id'])||{})[_0x20cf('0xaa')](function(){return db[_0x20cf('0xab')][_0x20cf('0x34')]({'attributes':['id','name',_0x20cf('0xac')],'where':{'id':_0x3ca75c[_0x20cf('0x43')][_0x20cf('0x98')]}});})[_0x20cf('0x16')](function(_0x133450){socket['emit']('chatInteractionTags:save',{'id':Number(_0x3ca75c[_0x20cf('0x45')]['id']),'tags':_0x133450||[]});return{'id':Number(_0x3ca75c[_0x20cf('0x45')]['id']),'tags':_0x133450||[]};});}})[_0x20cf('0x16')](respondWithResult(_0x3bcafe,null))[_0x20cf('0x20')](handleError(_0x3bcafe,null));};exports[_0x20cf('0xad')]=function(_0x3391da,_0x2efccc){return db[_0x20cf('0x41')][_0x20cf('0x44')]({'where':{'id':_0x3391da[_0x20cf('0x45')]['id']}})[_0x20cf('0x16')](handleEntityNotFound(_0x2efccc,null))['then'](function(_0x3eda38){if(_0x3eda38){return _0x3eda38[_0x20cf('0xad')](_0x3391da[_0x20cf('0x3a')][_0x20cf('0x98')]);}})[_0x20cf('0x16')](respondWithStatusCode(_0x2efccc,null))['catch'](handleError(_0x2efccc,null));};exports[_0x20cf('0xae')]=function(_0x25be1c,_0x982e98){var _0x1354d6=moment()[_0x20cf('0xaf')]()[_0x20cf('0xb0')]();var _0x3728d4=path[_0x20cf('0x70')](config[_0x20cf('0x71')],_0x20cf('0xb1'),_0x20cf('0xb2'),_0x20cf('0xb3'));var _0x3239be=path[_0x20cf('0x70')](config['root'],_0x20cf('0xb1'),'files',_0x20cf('0xb4'));var _0x307ad6=path['join'](_0x3728d4,_0x1354d6);var _0x2cbdec=util[_0x20cf('0x77')]('transcript-%d-%s.zip',_0x25be1c[_0x20cf('0x45')]['id'],_0x1354d6);var _0x55bfa7=path['join'](_0x3728d4,_0x2cbdec);var _0x50a219=[];_0x50a219[_0x20cf('0xb5')]({'model':db[_0x20cf('0x7b')],'as':_0x20cf('0x7b'),'attributes':['id','fullname'],'raw':!![]});_0x50a219[_0x20cf('0xb5')]({'model':db[_0x20cf('0x5f')],'as':_0x20cf('0x60'),'attributes':['id',_0x20cf('0xb6'),_0x20cf('0xb7')],'raw':!![]});if(_0x25be1c[_0x20cf('0x3a')][_0x20cf('0xb4')]){_0x50a219[_0x20cf('0xb5')]({'model':db[_0x20cf('0x6b')],'as':'Attachment','raw':!![]});}var _0x5077ad=[{'model':db['ChatMessage'],'as':_0x20cf('0x7a'),'attributes':['id','body','createdAt',_0x20cf('0x8c'),_0x20cf('0xa7'),_0x20cf('0xb8')],'include':_0x50a219}];_0x5077ad[_0x20cf('0xb5')]({'model':db[_0x20cf('0x48')],'as':_0x20cf('0xb9'),'attributes':['id','name']});_0x5077ad['push']({'model':db[_0x20cf('0x7b')],'as':_0x20cf('0xba'),'attributes':['id',_0x20cf('0x4d')]});return db[_0x20cf('0x41')][_0x20cf('0x44')]({'where':{'id':_0x25be1c[_0x20cf('0x45')]['id']},'include':_0x5077ad})[_0x20cf('0x16')](handleEntityNotFound(_0x982e98,null))[_0x20cf('0x16')](function(_0x674fc6){if(_0x674fc6){var _0x1cbd99=_0x674fc6[_0x20cf('0xbb')]({'plain':!![]});fs[_0x20cf('0xbc')](_0x307ad6);var _0x304aad={'channel':_0x20cf('0xbd'),'account':_0x1cbd99[_0x20cf('0xb9')][_0x20cf('0x2b')],'agent':_0x1cbd99[_0x20cf('0xba')]?_0x1cbd99[_0x20cf('0xba')]['fullname']:'N.A.','createdAt':moment(_0x1cbd99[_0x20cf('0x8a')])[_0x20cf('0x77')](_0x20cf('0xbe'))['toString'](),'closedAt':_0x1cbd99[_0x20cf('0x64')]?moment(_0x1cbd99[_0x20cf('0xbf')])[_0x20cf('0x77')](_0x20cf('0xbe'))[_0x20cf('0xb0')]():'','disposition':_0x1cbd99[_0x20cf('0xc0')],'chatInfo':{'browser':_0x1cbd99[_0x20cf('0xc1')],'os':_0x1cbd99[_0x20cf('0xc2')],'referer':_0x1cbd99[_0x20cf('0xc3')],'customerIp':_0x1cbd99[_0x20cf('0xc4')],'customerPort':_0x1cbd99['customerPort']?_0x1cbd99[_0x20cf('0xc5')]:_0x20cf('0xc6')},'messages':_(_0x1cbd99[_0x20cf('0x7a')])[_0x20cf('0xc7')]()[_0x20cf('0xa0')]({'secret':![]})[_0x20cf('0x30')](function(_0x5808ee){if(_0x5808ee['Attachment']){var _0x57a530=path['join'](_0x3239be,_0x5808ee[_0x20cf('0x6b')][_0x20cf('0x68')]);if(fs['existsSync'](_0x57a530)){fs[_0x20cf('0xc8')](_0x57a530)[_0x20cf('0xc9')](fs[_0x20cf('0xca')](path[_0x20cf('0x70')](_0x307ad6,_0x5808ee[_0x20cf('0x6b')][_0x20cf('0x68')])));}}return{'date':moment(_0x5808ee[_0x20cf('0x8a')])[_0x20cf('0x77')](_0x20cf('0xbe'))[_0x20cf('0xb0')](),'sender':_0x5808ee[_0x20cf('0x8c')]===_0x20cf('0x5b')?_0x5808ee[_0x20cf('0x7b')]?_0x5808ee[_0x20cf('0x7b')][_0x20cf('0x4d')]:_0x20cf('0x87'):_0x5808ee['Contact'][_0x20cf('0xb6')]+(_0x5808ee['Contact'][_0x20cf('0xb7')]?'\x20'+_0x5808ee['Contact'][_0x20cf('0xb7')]:''),'body':_0x5808ee['Attachment']?_0x5808ee[_0x20cf('0x6b')]['basename']:_0x5808ee[_0x20cf('0x43')],'direction':_0x5808ee[_0x20cf('0x8c')]===_0x20cf('0x5b')?'A':'C','secret':_0x5808ee[_0x20cf('0xa7')],'read':_0x5808ee[_0x20cf('0xb8')],'attachment':_0x5808ee[_0x20cf('0x6b')]};})[_0x20cf('0xcb')]()};return ejs[_0x20cf('0xcc')](path['join'](config[_0x20cf('0x71')],_0x20cf('0xb1'),_0x20cf('0xcd'),_0x20cf('0xce')),{'interaction':_0x304aad})[_0x20cf('0x16')](function(_0x1ae814){var _0x1b6895=path[_0x20cf('0x70')](_0x307ad6,_0x20cf('0xcf')+_0x1cbd99['id']+'-'+_0x1354d6+_0x20cf('0xd0'));var _0x31c131={'path':_0x1b6895,'channel':_0x20cf('0xbd'),'interactionId':_0x1cbd99['id']};return pdf[_0x20cf('0xd1')](_0x1ae814,_0x31c131);})[_0x20cf('0x16')](function(){return new Promise(function(_0x35ec08,_0x10f25a){zipdir(_0x307ad6,{'saveTo':_0x55bfa7},function(_0x1215a4,_0xbac6b4){if(_0x1215a4)return _0x10f25a(_0x1215a4);return _0x35ec08(_0xbac6b4);});})[_0x20cf('0x16')](function(){return new BPromise(function(_0x321a4d,_0x6ce3a5){rimraf(_0x307ad6,function(_0x13a219){if(_0x13a219)_0x6ce3a5(_0x13a219);return _0x321a4d();});});})[_0x20cf('0x16')](function(){return _0x982e98['download'](_0x55bfa7,_0x2cbdec,function(_0x348633){if(_0x348633){logger[_0x20cf('0x1d')](_0x20cf('0xd2'),_0x348633);}else{fs['unlinkSync'](_0x55bfa7);}});});});}else{return _0x982e98[_0x20cf('0x62')](0xc8);}})[_0x20cf('0x20')](handleError(_0x982e98,null));};