3999a2828f2b836103d48e41137b25655d475717
[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 _0x8a27=['options','rows','include','includeAgent','push','spread','Tag','emit','chatInteractionTags:save','removeTags','download','unix','toString','server','files','tmp','attachments','transcript-%d-%s.zip','firstName','lastName','read','get','Owner','closedAt','disposition','browserName','customerIp','customerPort','N.A.','tail','existsSync','createReadStream','pipe','createWriteStream','value','renderFile','views','transcript-','.pdf','Chat','createPdfFromHTML','err','unlinkSync','rimraf','zip-dir','request-promise','moment','mustache','util','path','ejs','lodash','../../components/interaction/service','../../components/parsers/qs','api','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./chatInteraction.socket','register','client','http','request','then','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','ChatInteraction,\x20%s,\x20%s','message','result','catch','sendStatus','end','status','json','undefined','limit','count','offset','set','Content-Range','destroy','stack','send','body','contact','account','index','map','ChatInteraction','rawAttributes','fieldName','type','getOptions','findAll','chat','query','user','params','model','keys','filters','intersection','attributes','fields','length','includeAll','merge','create','update','find','describe','createVidaooSession','findOne','ChatWebsiteId','vidaooEscalation','vidaooTopic','vidaooMetadata','name','fullname','email','POST','https://api-vidaoo.xcally.com/api/v1/meetings','vidaooApiKey','isNull','vidaooNote','follow','metadata','Sequelize','ValidationError','Error\x20in\x20Vidaoo\x20configuration','join_url','out','ChatMessage','Unable\x20to\x20create\x20Vidaoo\x20session','customUpdate','CmContact','Contact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','Interaction\x20already\x20assigned','closed','AbandonInteraction','file','originalname','mimetype','Attachment','attachId','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','basename','close','mailTranscript','format','transcript-%s.txt','now','pathTranscript','Messages','User','ChatWebsite','ContactId','UserId','%s%d','agentAlias','System','customer','Visitor','agentIdentifier','website_alias','agent_alias','alias','agent_fullname','[%s]\x20%s:\x20%s\x0a','createdAt','MM/DD/YYYY\x20HH:mm:ss','direction','secret','MailAccount','MailServerOut','Smtp','CloudProvider','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','getMessages','hasOwnProperty','nolimit','order','sort','where','ChatInteractionId','filter','$gte','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x5d6c40,_0x34f7e0){var _0x5120a8=function(_0x2e4b91){while(--_0x2e4b91){_0x5d6c40['push'](_0x5d6c40['shift']());}};_0x5120a8(++_0x34f7e0);}(_0x8a27,0xfb));var _0x78a2=function(_0x462416,_0x12a2ce){_0x462416=_0x462416-0x0;var _0x4b5474=_0x8a27[_0x462416];return _0x4b5474;};'use strict';var rimraf=require(_0x78a2('0x0'));var zipdir=require(_0x78a2('0x1'));var rp=require(_0x78a2('0x2'));var moment=require(_0x78a2('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x78a2('0x4'));var util=require(_0x78a2('0x5'));var path=require(_0x78a2('0x6'));var ejs=require(_0x78a2('0x7'));var fs=require('fs');var _=require(_0x78a2('0x8'));var Redis=require('ioredis');var interaction=require(_0x78a2('0x9'));var qs=require(_0x78a2('0xa'));var pdf=require('../../components/export/pdf');var logger=require('../../config/logger')(_0x78a2('0xb'));var config=require(_0x78a2('0xc'));var db=require(_0x78a2('0xd'))['db'];config[_0x78a2('0xe')]=_[_0x78a2('0xf')](config[_0x78a2('0xe')],{'host':'localhost','port':0x18eb});var socket=require(_0x78a2('0x10'))(new Redis(config[_0x78a2('0xe')]));require(_0x78a2('0x11'))[_0x78a2('0x12')](socket);var jayson=require('jayson/promise');var client=jayson[_0x78a2('0x13')][_0x78a2('0x14')]({'port':0x232b});var client9004=jayson[_0x78a2('0x13')]['http']({'port':0x232c});function respondWithRpcPromise(_0x59b11c,_0x2fc21b,_0x296008,_0x6dec78){return new BPromise(function(_0x575b73,_0x55dfb6){var _0x12489d=_0x6dec78||client;return _0x12489d[_0x78a2('0x15')](_0x59b11c,_0x296008)[_0x78a2('0x16')](function(_0x2b384a){logger['info']('ChatInteraction,\x20%s,\x20%s',_0x2fc21b,_0x78a2('0x17'));logger[_0x78a2('0x18')](_0x78a2('0x19'),_0x2fc21b,_0x78a2('0x17'),JSON[_0x78a2('0x1a')](_0x2b384a));if(_0x2b384a['error']){if(_0x2b384a[_0x78a2('0x1b')][_0x78a2('0x1c')]===0x1f4){logger[_0x78a2('0x1b')](_0x78a2('0x1d'),_0x2fc21b,_0x2b384a[_0x78a2('0x1b')]['message']);return _0x55dfb6(_0x2b384a['error']['message']);}logger[_0x78a2('0x1b')]('ChatInteraction,\x20%s,\x20%s',_0x2fc21b,_0x2b384a[_0x78a2('0x1b')]['message']);return _0x575b73(_0x2b384a[_0x78a2('0x1b')][_0x78a2('0x1e')]);}else{logger['info'](_0x78a2('0x1d'),_0x2fc21b,_0x78a2('0x17'));_0x575b73(_0x2b384a[_0x78a2('0x1f')][_0x78a2('0x1e')]);}})[_0x78a2('0x20')](function(_0x49f21c){logger['error'](_0x78a2('0x1d'),_0x2fc21b,_0x49f21c);_0x55dfb6(_0x49f21c);});});}function respondWithStatusCode(_0x147768,_0x246a3d){_0x246a3d=_0x246a3d||0xcc;return function(_0x524ca9){if(_0x524ca9){return _0x147768[_0x78a2('0x21')](_0x246a3d);}return _0x147768['status'](_0x246a3d)[_0x78a2('0x22')]();};}function respondWithResult(_0x3126b8,_0x536fb2){_0x536fb2=_0x536fb2||0xc8;return function(_0x552bac){if(_0x552bac){return _0x3126b8[_0x78a2('0x23')](_0x536fb2)[_0x78a2('0x24')](_0x552bac);}};}function respondWithFilteredResult(_0xe1408a,_0x20636b){return function(_0x10fbed){if(_0x10fbed){var _0x457e2b=typeof _0x20636b['offset']===_0x78a2('0x25')&&typeof _0x20636b[_0x78a2('0x26')]===_0x78a2('0x25');var _0x542f15=_0x10fbed[_0x78a2('0x27')];var _0x53771b=_0x457e2b?0x0:_0x20636b[_0x78a2('0x28')];var _0x66507=_0x457e2b?_0x10fbed[_0x78a2('0x27')]:_0x20636b[_0x78a2('0x28')]+_0x20636b[_0x78a2('0x26')];var _0x1ba9b9;if(_0x66507>=_0x542f15){_0x66507=_0x542f15;_0x1ba9b9=0xc8;}else{_0x1ba9b9=0xce;}_0xe1408a[_0x78a2('0x23')](_0x1ba9b9);return _0xe1408a[_0x78a2('0x29')](_0x78a2('0x2a'),_0x53771b+'-'+_0x66507+'/'+_0x542f15)[_0x78a2('0x24')](_0x10fbed);}return null;};}function saveUpdates(_0x4a84b3){return function(_0x47a10a){if(_0x47a10a){return _0x47a10a['update'](_0x4a84b3)[_0x78a2('0x16')](function(_0x598a6a){return _0x598a6a;});}return null;};}function removeEntity(_0xf4380){return function(_0x2ea563){if(_0x2ea563){return _0x2ea563[_0x78a2('0x2b')]()[_0x78a2('0x16')](function(){_0xf4380['status'](0xcc)[_0x78a2('0x22')]();});}};}function handleEntityNotFound(_0x7e681b){return function(_0x461820){if(!_0x461820){_0x7e681b[_0x78a2('0x21')](0x194);}return _0x461820;};}function handleError(_0x52a248,_0x309cbd){_0x309cbd=_0x309cbd||0x1f4;return function(_0x3fbdaa){logger['error'](_0x3fbdaa[_0x78a2('0x2c')]);if(_0x3fbdaa['name']){delete _0x3fbdaa['name'];}_0x52a248[_0x78a2('0x23')](_0x309cbd)[_0x78a2('0x2d')](_0x3fbdaa);};}function getMustacheRender(_0x5033c1,_0x229345){return Mustache['render'](_0x5033c1,_['merge'](_0x229345[_0x78a2('0x2e')],{'contact':_0x229345[_0x78a2('0x2f')],'message':_0x229345[_0x78a2('0x1e')],'agent':_0x229345['agent'],'interaction':_0x229345['interaction'],'account':_0x229345[_0x78a2('0x30')]}))||'';}exports[_0x78a2('0x31')]=function(_0x1d862c,_0x74d689){var _0xea0c01={};var _0x2a8cb7=_[_0x78a2('0x32')](db[_0x78a2('0x33')][_0x78a2('0x34')],function(_0x4c01e9){return{'name':_0x4c01e9[_0x78a2('0x35')],'type':_0x4c01e9[_0x78a2('0x36')]['key']};});_0xea0c01=qs[_0x78a2('0x37')](_0x2a8cb7,_0x1d862c);return interaction[_0x78a2('0x38')](_0x78a2('0x39'),_0x1d862c[_0x78a2('0x3a')],_0x1d862c[_0x78a2('0x3b')],_0xea0c01,_0x2a8cb7)['then'](respondWithFilteredResult(_0x74d689,_0xea0c01))['catch'](handleError(_0x74d689,null));};exports['show']=function(_0x4345d2,_0x44710c){var _0x1e0631={'raw':![],'where':{'id':_0x4345d2[_0x78a2('0x3c')]['id']}},_0x241503={};_0x241503[_0x78a2('0x3d')]=_['keys'](db[_0x78a2('0x33')][_0x78a2('0x34')]);_0x241503['query']=_[_0x78a2('0x3e')](_0x4345d2[_0x78a2('0x3a')]);_0x241503[_0x78a2('0x3f')]=_[_0x78a2('0x40')](_0x241503[_0x78a2('0x3d')],_0x241503[_0x78a2('0x3a')]);_0x1e0631[_0x78a2('0x41')]=_['intersection'](_0x241503[_0x78a2('0x3d')],qs['fields'](_0x4345d2[_0x78a2('0x3a')][_0x78a2('0x42')]));_0x1e0631['attributes']=_0x1e0631[_0x78a2('0x41')][_0x78a2('0x43')]?_0x1e0631[_0x78a2('0x41')]:_0x241503[_0x78a2('0x3d')];if(_0x4345d2[_0x78a2('0x3a')][_0x78a2('0x44')]){_0x1e0631['include']=[{'all':!![]}];}_0x1e0631=_[_0x78a2('0x45')]({},_0x1e0631,_0x4345d2['options']);return db[_0x78a2('0x33')]['find'](_0x1e0631)[_0x78a2('0x16')](handleEntityNotFound(_0x44710c,null))[_0x78a2('0x16')](respondWithResult(_0x44710c,null))[_0x78a2('0x20')](handleError(_0x44710c,null));};exports[_0x78a2('0x46')]=function(_0x2e1933,_0x1b30b1){return db[_0x78a2('0x33')][_0x78a2('0x46')](_0x2e1933[_0x78a2('0x2e')],{})[_0x78a2('0x16')](respondWithResult(_0x1b30b1,0xc9))[_0x78a2('0x20')](handleError(_0x1b30b1,null));};exports[_0x78a2('0x47')]=function(_0x50e262,_0x4361aa){if(_0x50e262[_0x78a2('0x2e')]['id']){delete _0x50e262[_0x78a2('0x2e')]['id'];}return db[_0x78a2('0x33')][_0x78a2('0x48')]({'where':{'id':_0x50e262[_0x78a2('0x3c')]['id']}})[_0x78a2('0x16')](handleEntityNotFound(_0x4361aa,null))[_0x78a2('0x16')](saveUpdates(_0x50e262[_0x78a2('0x2e')],null))[_0x78a2('0x16')](respondWithResult(_0x4361aa,null))[_0x78a2('0x20')](handleError(_0x4361aa,null));};exports['destroy']=function(_0x404c0e,_0x44392b){return db[_0x78a2('0x33')][_0x78a2('0x48')]({'where':{'id':_0x404c0e[_0x78a2('0x3c')]['id']}})[_0x78a2('0x16')](handleEntityNotFound(_0x44392b,null))[_0x78a2('0x16')](removeEntity(_0x44392b,null))[_0x78a2('0x20')](handleError(_0x44392b,null));};exports[_0x78a2('0x49')]=function(_0x5e14ca,_0x41ac5b){return db['ChatInteraction'][_0x78a2('0x49')]()['then'](respondWithResult(_0x41ac5b,null))[_0x78a2('0x20')](handleError(_0x41ac5b,null));};exports[_0x78a2('0x4a')]=function(_0x40695d,_0x19c423){var _0x31b728=_0x40695d[_0x78a2('0x3c')]['id'];var _0xbc6414;var _0x17d63b;var _0x54e91c;return db['ChatInteraction'][_0x78a2('0x4b')]({'where':{'id':_0x31b728}})[_0x78a2('0x16')](function(_0x46715c){_0xbc6414=_0x46715c;return db['ChatWebsite']['findOne']({'where':{'id':_0x46715c[_0x78a2('0x4c')]},'attributes':['id','vidaooApiKey',_0x78a2('0x4d'),_0x78a2('0x4e'),'vidaooNote',_0x78a2('0x4f')],'raw':!![]});})[_0x78a2('0x16')](function(_0x5cc2e4){if(_0x5cc2e4&&_0x5cc2e4['vidaooApiKey']&&_0x5cc2e4[_0x78a2('0x4d')]){_0x17d63b=_0x5cc2e4;var _0x2193e1={'interaction':{'id':_0x31b728},'agent':{'id':_0x40695d['user']['id'],'name':_0x40695d[_0x78a2('0x3b')][_0x78a2('0x50')],'fullname':_0x40695d[_0x78a2('0x3b')][_0x78a2('0x51')],'email':_0x40695d[_0x78a2('0x3b')][_0x78a2('0x52')]},'contact':_0x40695d['body'][_0x78a2('0x2f')],'account':_0x40695d[_0x78a2('0x2e')][_0x78a2('0x30')]};var _0x2fb54a={'rejectUnauthorized':![],'method':_0x78a2('0x53'),'url':_0x78a2('0x54'),'headers':{'X-APIKEY':_0x5cc2e4[_0x78a2('0x55')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x40695d['user']['email']],'buttons':null,'topic':_0x17d63b[_0x78a2('0x4e')],'note':_[_0x78a2('0x56')](_0x17d63b[_0x78a2('0x57')])?null:getMustacheRender(_0x17d63b['vidaooNote'],_0x2193e1),'metadata':null},'redirect':_0x78a2('0x58'),'json':!![]};try{if(!_[_0x78a2('0x56')](_0x17d63b[_0x78a2('0x4f')])){var _0x504453=getMustacheRender(_0x17d63b['vidaooMetadata'],_0x2193e1);var _0x3cd4d0=JSON['parse'](_0x504453);_0x2fb54a['body'][_0x78a2('0x59')]=_0x3cd4d0;}}catch(_0x2347c3){throw new db[(_0x78a2('0x5a'))]['ValidationError']('Error\x20in\x20conversion\x20vidaooMetadata');}return rp(_0x2fb54a);}else{throw new db['Sequelize'][(_0x78a2('0x5b'))](_0x78a2('0x5c'));}})[_0x78a2('0x16')](function(_0x2a6c30){_0x54e91c=_0x2a6c30;if(_0x54e91c['id']){var _0x42bd51={'body':_0x54e91c[_0x78a2('0x5d')],'ChatWebsiteId':_0x17d63b['id'],'ChatInteractionId':_0xbc6414['id'],'direction':_0x78a2('0x5e'),'UserId':_0x40695d[_0x78a2('0x3b')]['id']};return db[_0x78a2('0x5f')][_0x78a2('0x46')](_0x42bd51,{});}else{throw new db[(_0x78a2('0x5a'))][(_0x78a2('0x5b'))](_0x78a2('0x60'));}})[_0x78a2('0x16')](function(){return _0xbc6414['updateAttributes']({'vidaooSessionId':_0x54e91c['id']});})['then'](respondWithResult(_0x19c423,null))[_0x78a2('0x20')](handleError(_0x19c423,null));};exports[_0x78a2('0x61')]=function(_0x227f2b,_0x40201f){if(_0x227f2b[_0x78a2('0x2e')]['id']){delete _0x227f2b['body']['id'];}return db[_0x78a2('0x33')][_0x78a2('0x48')]({'where':{'id':_0x227f2b['params']['id']},'include':[{'model':db[_0x78a2('0x62')],'as':_0x78a2('0x63')}]})['then'](handleEntityNotFound(_0x40201f,null))[_0x78a2('0x16')](saveUpdates(_0x227f2b[_0x78a2('0x2e')],null))[_0x78a2('0x16')](respondWithResult(_0x40201f,null))[_0x78a2('0x20')](handleError(_0x40201f,null));};exports[_0x78a2('0x64')]=function(_0x1b6c4e,_0x3c969a){if(_0x1b6c4e[_0x78a2('0x2e')]['id']){delete _0x1b6c4e[_0x78a2('0x2e')]['id'];}return db[_0x78a2('0x33')]['find']({'where':{'id':_0x1b6c4e[_0x78a2('0x3c')]['id']}})[_0x78a2('0x16')](function(_0x4ea5b1){if(!_0x4ea5b1){logger[_0x78a2('0x1b')](_0x78a2('0x65'),'abandon',0x194,_0x78a2('0x66'));_0x3c969a[_0x78a2('0x21')](0x194);}else{if(_0x4ea5b1['UserId']){throw new db[(_0x78a2('0x5a'))]['ValidationError'](_0x78a2('0x67'));}}return _0x4ea5b1;})[_0x78a2('0x16')](function(_0x129081){if(_0x129081){return _0x129081['update']({'closed':_0x1b6c4e[_0x78a2('0x2e')][_0x78a2('0x68')],'disposition':_0x1b6c4e[_0x78a2('0x2e')]['disposition']})[_0x78a2('0x16')](function(_0x288814){return _0x288814;});}})[_0x78a2('0x16')](function(){return respondWithRpcPromise(_0x78a2('0x69'),'abandon',_0x1b6c4e['body'],client9004);})[_0x78a2('0x16')](respondWithResult(_0x3c969a,null))['catch'](handleError(_0x3c969a,null));};exports['attachmentUpload']=function(_0x5364bc,_0x14b875){_0x5364bc['body'][_0x78a2('0x50')]=_0x5364bc[_0x78a2('0x6a')][_0x78a2('0x6b')];_0x5364bc[_0x78a2('0x2e')]['basename']=_0x5364bc[_0x78a2('0x6a')]['filename'];_0x5364bc[_0x78a2('0x2e')][_0x78a2('0x36')]=_0x5364bc[_0x78a2('0x6a')][_0x78a2('0x6c')];return db[_0x78a2('0x6d')]['create'](_0x5364bc['body'])[_0x78a2('0x16')](respondWithResult(_0x14b875,0xc9))[_0x78a2('0x20')](handleError(_0x14b875,null));};exports['attachmentDownload']=function(_0x4fb3e7,_0x40c54f){return db[_0x78a2('0x33')]['findOne']({'where':{'id':_0x4fb3e7['params']['id']},'raw':!![]})[_0x78a2('0x16')](handleEntityNotFound(_0x40c54f,null))['then'](function(_0x3740b0){if(_0x3740b0){if(_0x3740b0[_0x78a2('0x68')]){return _0x40c54f[_0x78a2('0x23')](0x193)[_0x78a2('0x24')]({'status':0x193,'message':'Unauthorized'});}return db['Attachment'][_0x78a2('0x4b')]({'where':{'id':_0x4fb3e7['query'][_0x78a2('0x6e')]},'raw':!![]})[_0x78a2('0x16')](handleEntityNotFound(_0x40c54f,null));}})[_0x78a2('0x16')](function(_0x4021eb){if(_0x4021eb){var _0xb7d679=_0x4021eb[_0x78a2('0x6f')]!==null;var _0xfe128a=path[_0x78a2('0x70')](config[_0x78a2('0x71')],_0x78a2('0x72'));if(_0xb7d679){_0xfe128a=path['join'](_0xfe128a,_0x78a2('0x73'));}var _0x24b68a=path[_0x78a2('0x70')](_0xfe128a,_0x4021eb[_0x78a2('0x74')]);return _0x40c54f['download'](_0x24b68a);}})[_0x78a2('0x20')](handleError(_0x40c54f,null));};exports[_0x78a2('0x75')]=function(_0x404f73,_0xd683d9){var _0x4ed43a=null;var _0x246892=null;var _0x43d543=null;if(_0x404f73[_0x78a2('0x2e')]['id']){delete _0x404f73['body']['id'];}if(_0x404f73['body'][_0x78a2('0x76')]){_0x43d543=path[_0x78a2('0x70')](config[_0x78a2('0x71')],'server/files/chat/upload/',util[_0x78a2('0x77')](_0x78a2('0x78'),Date[_0x78a2('0x79')]()));_0x404f73[_0x78a2('0x2e')][_0x78a2('0x7a')]=_0x43d543;}return db[_0x78a2('0x33')][_0x78a2('0x48')]({'where':{'id':_0x404f73[_0x78a2('0x3c')]['id']},'include':[{'model':db[_0x78a2('0x5f')],'as':_0x78a2('0x7b'),'include':[{'model':db[_0x78a2('0x7c')],'as':_0x78a2('0x7c')}]}]})[_0x78a2('0x16')](handleEntityNotFound(_0xd683d9,null))[_0x78a2('0x16')](saveUpdates(_0x404f73[_0x78a2('0x2e')],null))['then'](function(_0x44109d){if(_0x44109d){_0x4ed43a=_0x44109d;return db[_0x78a2('0x7d')][_0x78a2('0x48')]({'where':{'id':_0x4ed43a['ChatWebsiteId']}});}})[_0x78a2('0x16')](function(_0xfda860){if(_0xfda860){_0x246892=_0xfda860;return db[_0x78a2('0x62')][_0x78a2('0x48')]({'where':{'id':_0x4ed43a[_0x78a2('0x7e')]}});}})['then'](function(_0xa90604){if(_0xa90604){if(_0x43d543){var _0x24c37a=null;for(var _0x49780b=0x1;_0x49780b<_0x4ed43a['Messages'][_0x78a2('0x43')];++_0x49780b){_0x24c37a=_0x4ed43a['Messages'][_0x49780b];var _0xf0964a=_0x24c37a[_0x78a2('0x7f')]?util[_0x78a2('0x77')](_0x78a2('0x80'),_0x246892[_0x78a2('0x81')],_0x24c37a[_0x78a2('0x7f')]):_0x78a2('0x82');var _0x30eab1=_0x404f73[_0x78a2('0x2e')][_0x78a2('0x83')]||util[_0x78a2('0x77')]('%s%d',_0x78a2('0x84'),_0x24c37a[_0x78a2('0x7e')]);switch(_0x246892[_0x78a2('0x85')]){case _0x78a2('0x86'):_0xf0964a=_0x24c37a[_0x78a2('0x7f')]?util[_0x78a2('0x77')](_0x78a2('0x80'),_0x246892[_0x78a2('0x81')],_0x24c37a[_0x78a2('0x7f')]):_0x78a2('0x82');break;case _0x78a2('0x87'):_0xf0964a=_0x24c37a[_0x78a2('0x7f')]?_0x24c37a[_0x78a2('0x7c')][_0x78a2('0x88')]||_0x24c37a['User'][_0x78a2('0x51')]:_0x78a2('0x82');break;case _0x78a2('0x89'):_0xf0964a=_0x24c37a[_0x78a2('0x7f')]?_0x24c37a[_0x78a2('0x7c')][_0x78a2('0x51')]:'System';break;default:_0xf0964a=_0x24c37a[_0x78a2('0x7f')]?util[_0x78a2('0x77')]('%s%d',_0x246892['agentAlias'],_0x24c37a[_0x78a2('0x7f')]):'System';}var _0x546c54=util['format'](_0x78a2('0x8a'),moment(_0x24c37a[_0x78a2('0x8b')])[_0x78a2('0x77')](_0x78a2('0x8c')),_0x24c37a[_0x78a2('0x8d')]==='in'?_0x30eab1:_0xf0964a,_0x24c37a[_0x78a2('0x2e')]);if(!_0x24c37a[_0x78a2('0x8e')]){fs['appendFileSync'](_0x43d543,_0x546c54);}}return db[_0x78a2('0x8f')][_0x78a2('0x4b')]({'where':{'service':!![]},'include':[{'model':db[_0x78a2('0x90')],'as':_0x78a2('0x91'),'raw':!![],'include':[{'model':db[_0x78a2('0x92')],'as':_0x78a2('0x92'),'raw':!![]}]}]});}}})[_0x78a2('0x16')](function(_0x51cb72){if(!_0x51cb72||!_0x51cb72[_0x78a2('0x91')]||!_0x404f73[_0x78a2('0x2e')])return _0x4ed43a;var _0x2b3642=_0x51cb72['getSmtpOptions']();return respondWithRpcPromise(_0x78a2('0x93'),_0x78a2('0x94'),{'account':_0x2b3642,'message':{'from':util['format'](_0x78a2('0x95'),_0x51cb72[_0x78a2('0x50')],_0x51cb72['email']||_0x51cb72[_0x78a2('0x91')][_0x78a2('0x3b')]),'to':_0x404f73[_0x78a2('0x2e')][_0x78a2('0x76')],'subject':_0x78a2('0x96'),'text':util[_0x78a2('0x77')](_0x78a2('0x97'),_0x404f73[_0x78a2('0x2e')][_0x78a2('0x76')]),'attachments':[{'path':_0x43d543}]}})['then'](function(){return _0x4ed43a;})[_0x78a2('0x20')](function(_0x10a35b){logger[_0x78a2('0x1b')](_0x10a35b);});})[_0x78a2('0x16')](respondWithStatusCode(_0xd683d9,0xc8))[_0x78a2('0x20')](handleError(_0xd683d9,null));};exports[_0x78a2('0x98')]=function(_0x5d5caf,_0x470945){return db[_0x78a2('0x5f')][_0x78a2('0x48')]({'where':{'id':_0x5d5caf['params']['id']}})['then'](handleEntityNotFound(_0x470945,null))[_0x78a2('0x16')](function(_0x4f1bd3){if(_0x4f1bd3){return _0x4f1bd3['addMessage'](_0x5d5caf[_0x78a2('0x2e')][_0x78a2('0x99')],_[_0x78a2('0x9a')](_0x5d5caf['body'],[_0x78a2('0x99'),'id'])||{});}})[_0x78a2('0x16')](respondWithResult(_0x470945,null))[_0x78a2('0x20')](handleError(_0x470945,null));};exports[_0x78a2('0x9b')]=function(_0x357c13,_0x41be5e){var _0x2d829c={'raw':![],'where':{}};var _0x17c9bb={};var _0x4ec61f={'count':0x0,'rows':[]};return db['ChatInteraction']['findOne']({'where':{'id':_0x357c13['params']['id']}})[_0x78a2('0x16')](handleEntityNotFound(_0x41be5e,null))['then'](function(_0x4e73b2){if(_0x4e73b2){_0x17c9bb[_0x78a2('0x3d')]=_[_0x78a2('0x3e')](db[_0x78a2('0x5f')][_0x78a2('0x34')]);_0x17c9bb[_0x78a2('0x3a')]=_['keys'](_0x357c13[_0x78a2('0x3a')]);_0x17c9bb['filters']=_[_0x78a2('0x40')](_0x17c9bb[_0x78a2('0x3d')],_0x17c9bb['query']);_0x2d829c[_0x78a2('0x41')]=_['intersection'](_0x17c9bb[_0x78a2('0x3d')],qs[_0x78a2('0x42')](_0x357c13[_0x78a2('0x3a')][_0x78a2('0x42')]));_0x2d829c['attributes']=_0x2d829c[_0x78a2('0x41')][_0x78a2('0x43')]?_0x2d829c['attributes']:_0x17c9bb[_0x78a2('0x3d')];if(!_0x357c13['query'][_0x78a2('0x9c')](_0x78a2('0x9d'))){_0x2d829c[_0x78a2('0x26')]=qs[_0x78a2('0x26')](_0x357c13['query'][_0x78a2('0x26')]);_0x2d829c[_0x78a2('0x28')]=qs['offset'](_0x357c13[_0x78a2('0x3a')][_0x78a2('0x28')]);}_0x2d829c[_0x78a2('0x9e')]=qs[_0x78a2('0x9f')](_0x357c13['query']['sort']);_0x2d829c[_0x78a2('0xa0')]=qs['filters'](_['pick'](_0x357c13['query'],_0x17c9bb[_0x78a2('0x3f')]));_0x2d829c[_0x78a2('0xa0')][_0x78a2('0xa1')]=_0x4e73b2['id'];if(_0x357c13[_0x78a2('0x3a')]['filter']){_0x2d829c['where']=_[_0x78a2('0x45')](_0x2d829c[_0x78a2('0xa0')],{'$or':_[_0x78a2('0x32')](_0x2d829c[_0x78a2('0x41')],function(_0x1bebf1){var _0x5b5272={};_0x5b5272[_0x1bebf1]={'$like':'%'+_0x357c13[_0x78a2('0x3a')][_0x78a2('0xa2')]+'%'};return _0x5b5272;})});}if(_0x357c13['query'][_0x78a2('0xa3')]){var _0x45f876=_0x357c13[_0x78a2('0x3a')][_0x78a2('0xa3')]['split'](',');var _0x2c5e35={};_0x2c5e35[_0x45f876[0x0]]={'$gte':moment(_0x45f876[0x1])[_0x78a2('0x77')](_0x78a2('0xa4'))};_0x2d829c[_0x78a2('0xa0')]=_['merge'](_0x2d829c['where'],_0x2c5e35);}_0x2d829c=_[_0x78a2('0x45')]({},_0x2d829c,_0x357c13[_0x78a2('0xa5')]);return db[_0x78a2('0x5f')][_0x78a2('0x27')]({'where':_0x2d829c[_0x78a2('0xa0')]})[_0x78a2('0x16')](function(_0x16dddf){_0x4ec61f[_0x78a2('0x27')]=_0x16dddf;if(_0x357c13[_0x78a2('0x3a')][_0x78a2('0x44')]){_0x2d829c['include']=[{'all':!![]}];}return db[_0x78a2('0x5f')][_0x78a2('0x38')](_0x2d829c);})[_0x78a2('0x16')](function(_0x523b87){_0x4ec61f[_0x78a2('0xa6')]=_0x523b87;return _0x4ec61f;});}})['then'](respondWithFilteredResult(_0x41be5e,_0x2d829c))[_0x78a2('0x20')](handleError(_0x41be5e,null));};exports['getMyMessages']=function(_0x43237a,_0x481f0f){var _0x3549d3={'where':{}},_0x2a7323={},_0x2ed90d={'count':0x0,'rows':[]};return db[_0x78a2('0x33')]['findOne']({'where':{'id':_0x43237a[_0x78a2('0x3c')]['id']}})[_0x78a2('0x16')](handleEntityNotFound(_0x481f0f,null))[_0x78a2('0x16')](function(_0x5db1f6){if(_0x5db1f6){_0x2a7323['model']=_[_0x78a2('0x3e')](db[_0x78a2('0x5f')][_0x78a2('0x34')]);_0x2a7323[_0x78a2('0x3a')]=_[_0x78a2('0x3e')](_0x43237a[_0x78a2('0x3a')]);_0x2a7323[_0x78a2('0x3f')]=_[_0x78a2('0x40')](_0x2a7323[_0x78a2('0x3d')],_0x2a7323[_0x78a2('0x3a')]);_0x3549d3['attributes']=_[_0x78a2('0x40')](_0x2a7323[_0x78a2('0x3d')],qs['fields'](_0x43237a[_0x78a2('0x3a')]['fields']));_0x3549d3[_0x78a2('0x41')]=_0x3549d3[_0x78a2('0x41')][_0x78a2('0x43')]?_0x3549d3[_0x78a2('0x41')]:_0x2a7323[_0x78a2('0x3d')];if(!_0x43237a['query'][_0x78a2('0x9c')](_0x78a2('0x9d'))){_0x3549d3['limit']=qs[_0x78a2('0x26')](_0x43237a['query'][_0x78a2('0x26')]);_0x3549d3['offset']=qs[_0x78a2('0x28')](_0x43237a[_0x78a2('0x3a')][_0x78a2('0x28')]);}_0x3549d3[_0x78a2('0x9e')]=qs[_0x78a2('0x9f')](_0x43237a[_0x78a2('0x3a')]['sort']);_0x3549d3[_0x78a2('0xa0')]=qs[_0x78a2('0x3f')](_['pick'](_0x43237a['query'],_0x2a7323[_0x78a2('0x3f')]));_0x3549d3['where'][_0x78a2('0xa1')]=_0x5db1f6['id'];if(_0x43237a[_0x78a2('0x3a')]['filter']){_0x3549d3[_0x78a2('0xa0')]=_[_0x78a2('0x45')](_0x3549d3['where'],{'$or':_[_0x78a2('0x32')](_0x3549d3[_0x78a2('0x41')],function(_0x2e0117){var _0x45558c={};_0x45558c[_0x2e0117]={'$like':'%'+_0x43237a[_0x78a2('0x3a')][_0x78a2('0xa2')]+'%'};return _0x45558c;})});}_0x3549d3['where'][_0x78a2('0x8e')]=![];if(_0x43237a[_0x78a2('0x3a')]['id']){_0x3549d3[_0x78a2('0xa0')]['id']={'$gt':_0x43237a['query']['id']};}_0x3549d3=_[_0x78a2('0x45')]({},_0x3549d3,_0x43237a[_0x78a2('0xa5')]);return db[_0x78a2('0x5f')][_0x78a2('0x27')]({'where':_0x3549d3[_0x78a2('0xa0')]})[_0x78a2('0x16')](function(_0x55af0e){_0x2ed90d[_0x78a2('0x27')]=_0x55af0e;_0x3549d3[_0x78a2('0xa7')]=[];if(_0x43237a[_0x78a2('0x3a')][_0x78a2('0xa8')]){_0x3549d3[_0x78a2('0xa7')][_0x78a2('0xa9')]({'model':db[_0x78a2('0x7c')],'as':_0x78a2('0x7c'),'attributes':['id','fullname','alias']});}if(_0x43237a[_0x78a2('0x3a')][_0x78a2('0x44')]){_0x3549d3[_0x78a2('0xa7')]=[{'all':!![]}];}return db['ChatMessage'][_0x78a2('0x38')](_0x3549d3);})[_0x78a2('0x16')](function(_0xa32fd1){_0x2ed90d[_0x78a2('0xa6')]=_0xa32fd1;return _0x2ed90d;});}})[_0x78a2('0x16')](respondWithFilteredResult(_0x481f0f,_0x3549d3))['catch'](handleError(_0x481f0f,null));};exports['addTags']=function(_0x298b26,_0x2eb525){return db[_0x78a2('0x33')][_0x78a2('0x48')]({'where':{'id':_0x298b26['params']['id']}})[_0x78a2('0x16')](handleEntityNotFound(_0x2eb525,null))[_0x78a2('0x16')](function(_0x53a441){if(_0x53a441){return _0x53a441['setTags'](_0x298b26[_0x78a2('0x2e')]['ids'],_['omit'](_0x298b26[_0x78a2('0x2e')],[_0x78a2('0x99'),'id'])||{})[_0x78a2('0xaa')](function(){return db[_0x78a2('0xab')]['findAll']({'attributes':['id','name','color'],'where':{'id':_0x298b26[_0x78a2('0x2e')]['ids']}});})[_0x78a2('0x16')](function(_0x10fec3){socket[_0x78a2('0xac')](_0x78a2('0xad'),{'id':Number(_0x298b26[_0x78a2('0x3c')]['id']),'tags':_0x10fec3||[]});return{'id':Number(_0x298b26[_0x78a2('0x3c')]['id']),'tags':_0x10fec3||[]};});}})[_0x78a2('0x16')](respondWithResult(_0x2eb525,null))['catch'](handleError(_0x2eb525,null));};exports['removeTags']=function(_0x1ecd34,_0xc04bfa){return db[_0x78a2('0x33')]['find']({'where':{'id':_0x1ecd34[_0x78a2('0x3c')]['id']}})['then'](handleEntityNotFound(_0xc04bfa,null))['then'](function(_0x22fcd3){if(_0x22fcd3){return _0x22fcd3[_0x78a2('0xae')](_0x1ecd34[_0x78a2('0x3a')][_0x78a2('0x99')]);}})[_0x78a2('0x16')](respondWithStatusCode(_0xc04bfa,null))['catch'](handleError(_0xc04bfa,null));};exports[_0x78a2('0xaf')]=function(_0x1c7c0,_0x483f2a){var _0x29fb1a=moment()[_0x78a2('0xb0')]()[_0x78a2('0xb1')]();var _0xd98381=path[_0x78a2('0x70')](config[_0x78a2('0x71')],_0x78a2('0xb2'),_0x78a2('0xb3'),_0x78a2('0xb4'));var _0x56fc86=path[_0x78a2('0x70')](config[_0x78a2('0x71')],_0x78a2('0xb2'),_0x78a2('0xb3'),_0x78a2('0xb5'));var _0x463de9=path[_0x78a2('0x70')](_0xd98381,_0x29fb1a);var _0xe8de3b=util[_0x78a2('0x77')](_0x78a2('0xb6'),_0x1c7c0['params']['id'],_0x29fb1a);var _0xfb9857=path[_0x78a2('0x70')](_0xd98381,_0xe8de3b);var _0x1c74cc=[];_0x1c74cc[_0x78a2('0xa9')]({'model':db[_0x78a2('0x7c')],'as':'User','attributes':['id',_0x78a2('0x51')],'raw':!![]});_0x1c74cc[_0x78a2('0xa9')]({'model':db[_0x78a2('0x62')],'as':_0x78a2('0x63'),'attributes':['id',_0x78a2('0xb7'),_0x78a2('0xb8')],'raw':!![]});if(_0x1c7c0['query'][_0x78a2('0xb5')]){_0x1c74cc[_0x78a2('0xa9')]({'model':db[_0x78a2('0x6d')],'as':'Attachment','raw':!![]});}var _0x442343=[{'model':db[_0x78a2('0x5f')],'as':_0x78a2('0x7b'),'attributes':['id','body',_0x78a2('0x8b'),_0x78a2('0x8d'),_0x78a2('0x8e'),_0x78a2('0xb9')],'include':_0x1c74cc}];_0x442343[_0x78a2('0xa9')]({'model':db[_0x78a2('0x7d')],'as':'Account','attributes':['id','name']});_0x442343[_0x78a2('0xa9')]({'model':db[_0x78a2('0x7c')],'as':'Owner','attributes':['id',_0x78a2('0x51')]});return db[_0x78a2('0x33')]['find']({'where':{'id':_0x1c7c0[_0x78a2('0x3c')]['id']},'include':_0x442343})[_0x78a2('0x16')](handleEntityNotFound(_0x483f2a,null))[_0x78a2('0x16')](function(_0x31ffc7){if(_0x31ffc7){var _0xe65b8b=_0x31ffc7[_0x78a2('0xba')]({'plain':!![]});fs['mkdirSync'](_0x463de9);var _0x32f487={'channel':'Chat','account':_0xe65b8b['Account']['name'],'agent':_0xe65b8b[_0x78a2('0xbb')]?_0xe65b8b[_0x78a2('0xbb')]['fullname']:'N.A.','createdAt':moment(_0xe65b8b[_0x78a2('0x8b')])[_0x78a2('0x77')]('YYYY-MM-DD\x20HH:mm:ss')[_0x78a2('0xb1')](),'closedAt':_0xe65b8b[_0x78a2('0x68')]?moment(_0xe65b8b[_0x78a2('0xbc')])[_0x78a2('0x77')](_0x78a2('0xa4'))[_0x78a2('0xb1')]():'','disposition':_0xe65b8b[_0x78a2('0xbd')],'chatInfo':{'browser':_0xe65b8b[_0x78a2('0xbe')],'os':_0xe65b8b['osName'],'referer':_0xe65b8b['referer'],'customerIp':_0xe65b8b[_0x78a2('0xbf')],'customerPort':_0xe65b8b[_0x78a2('0xc0')]?_0xe65b8b['customerPort']:_0x78a2('0xc1')},'messages':_(_0xe65b8b[_0x78a2('0x7b')])[_0x78a2('0xc2')]()[_0x78a2('0xa2')]({'secret':![]})['map'](function(_0x3abca1){if(_0x3abca1[_0x78a2('0x6d')]){var _0x1b8b8e=path[_0x78a2('0x70')](_0x56fc86,_0x3abca1[_0x78a2('0x6d')][_0x78a2('0x74')]);if(fs[_0x78a2('0xc3')](_0x1b8b8e)){fs[_0x78a2('0xc4')](_0x1b8b8e)[_0x78a2('0xc5')](fs[_0x78a2('0xc6')](path[_0x78a2('0x70')](_0x463de9,_0x3abca1['Attachment'][_0x78a2('0x74')])));}}return{'date':moment(_0x3abca1[_0x78a2('0x8b')])['format']('YYYY-MM-DD\x20HH:mm:ss')[_0x78a2('0xb1')](),'sender':_0x3abca1['direction']==='out'?_0x3abca1[_0x78a2('0x7c')]?_0x3abca1[_0x78a2('0x7c')][_0x78a2('0x51')]:_0x78a2('0x82'):_0x3abca1[_0x78a2('0x63')][_0x78a2('0xb7')]+(_0x3abca1[_0x78a2('0x63')][_0x78a2('0xb8')]?'\x20'+_0x3abca1['Contact'][_0x78a2('0xb8')]:''),'body':_0x3abca1[_0x78a2('0x6d')]?_0x3abca1['Attachment'][_0x78a2('0x74')]:_0x3abca1[_0x78a2('0x2e')],'direction':_0x3abca1['direction']===_0x78a2('0x5e')?'A':'C','secret':_0x3abca1[_0x78a2('0x8e')],'read':_0x3abca1['read'],'attachment':_0x3abca1[_0x78a2('0x6d')]};})[_0x78a2('0xc7')]()};return ejs[_0x78a2('0xc8')](path['join'](config[_0x78a2('0x71')],_0x78a2('0xb2'),_0x78a2('0xc9'),'downloadInteraction.ejs'),{'interaction':_0x32f487})[_0x78a2('0x16')](function(_0x2bfb2e){var _0x10755e=path[_0x78a2('0x70')](_0x463de9,_0x78a2('0xca')+_0xe65b8b['id']+'-'+_0x29fb1a+_0x78a2('0xcb'));var _0x45fafc={'path':_0x10755e,'channel':_0x78a2('0xcc'),'interactionId':_0xe65b8b['id']};return pdf[_0x78a2('0xcd')](_0x2bfb2e,_0x45fafc);})[_0x78a2('0x16')](function(){return new Promise(function(_0xa07450,_0x361949){zipdir(_0x463de9,{'saveTo':_0xfb9857},function(_0x1a4312,_0x56901e){if(_0x1a4312)return _0x361949(_0x1a4312);return _0xa07450(_0x56901e);});})[_0x78a2('0x16')](function(){return new BPromise(function(_0x34fcb1,_0x496e8c){rimraf(_0x463de9,function(_0x24a0ae){if(_0x24a0ae)_0x496e8c(_0x24a0ae);return _0x34fcb1();});});})[_0x78a2('0x16')](function(){return _0x483f2a[_0x78a2('0xaf')](_0xfb9857,_0xe8de3b,function(_0x2e9b38){if(_0x2e9b38){logger['error'](_0x78a2('0xce'),_0x2e9b38);}else{fs[_0x78a2('0xcf')](_0xfb9857);}});});});}else{return _0x483f2a[_0x78a2('0x21')](0xc8);}})[_0x78a2('0x20')](handleError(_0x483f2a,null));};