Built motion from commit 3c2ce842.|2.6.31
[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 _0x79d1=['keys','query','filters','intersection','attributes','fields','length','includeAll','merge','find','create','body','describe','createVidaooSession','findOne','ChatWebsite','vidaooApiKey','vidaooEscalation','vidaooTopic','vidaooNote','vidaooMetadata','name','fullname','email','POST','isNull','follow','parse','metadata','Sequelize','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','join_url','out','ChatMessage','updateAttributes','customUpdate','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','UserId','Interaction\x20already\x20assigned','closed','disposition','AbandonInteraction','attachmentUpload','file','originalname','basename','mimetype','Attachment','attachmentDownload','attachId','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','download','close','mailTranscript','server/files/chat/upload/','transcript-%s.txt','now','pathTranscript','Messages','User','ChatWebsiteId','CmContact','format','%s%d','customer','Visitor','ContactId','agentIdentifier','website_alias','agentAlias','System','agent_alias','alias','[%s]\x20%s:\x20%s\x0a','createdAt','MM/DD/YYYY\x20HH:mm:ss','direction','appendFileSync','MailServerOut','Smtp','CloudProvider','SendMail','sendMail','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','ids','getMessages','hasOwnProperty','order','sort','where','pick','ChatInteractionId','filter','$gte','YYYY-MM-DD\x20HH:mm:ss','options','include','rows','getMyMessages','includeAgent','addTags','setTags','omit','spread','Tag','color','emit','chatInteractionTags:save','removeTags','toString','files','tmp','server','attachments','transcript-%d-%s.zip','push','Contact','lastName','secret','read','Account','get','mkdirSync','N.A.','closedAt','osName','referer','customerIp','customerPort','tail','createReadStream','firstName','value','renderFile','views','transcript-','.pdf','createPdfFromHTML','err','unlinkSync','zip-dir','request-promise','moment','bluebird','mustache','util','path','ejs','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','../../components/export/pdf','../../config/logger','api','../../mysqldb','defaults','localhost','redis','./chatInteraction.socket','register','http','client','request','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','update','destroy','stack','send','render','contact','interaction','account','index','map','ChatInteraction','rawAttributes','type','getOptions','findAll','chat','user','show','params','model'];(function(_0x4f347f,_0x5ceafd){var _0x2d9bc2=function(_0x4fe4f9){while(--_0x4fe4f9){_0x4f347f['push'](_0x4f347f['shift']());}};_0x2d9bc2(++_0x5ceafd);}(_0x79d1,0x95));var _0x179d=function(_0x40a045,_0x516f0e){_0x40a045=_0x40a045-0x0;var _0x1a687c=_0x79d1[_0x40a045];return _0x1a687c;};'use strict';var rimraf=require('rimraf');var zipdir=require(_0x179d('0x0'));var rp=require(_0x179d('0x1'));var moment=require(_0x179d('0x2'));var BPromise=require(_0x179d('0x3'));var Mustache=require(_0x179d('0x4'));var util=require(_0x179d('0x5'));var path=require(_0x179d('0x6'));var ejs=require(_0x179d('0x7'));var fs=require('fs');var _=require(_0x179d('0x8'));var Redis=require(_0x179d('0x9'));var interaction=require(_0x179d('0xa'));var qs=require(_0x179d('0xb'));var pdf=require(_0x179d('0xc'));var logger=require(_0x179d('0xd'))(_0x179d('0xe'));var config=require('../../config/environment');var db=require(_0x179d('0xf'))['db'];config['redis']=_[_0x179d('0x10')](config['redis'],{'host':_0x179d('0x11'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x179d('0x12')]));require(_0x179d('0x13'))[_0x179d('0x14')](socket);var jayson=require('jayson/promise');var client=jayson['client'][_0x179d('0x15')]({'port':0x232b});var client9004=jayson[_0x179d('0x16')][_0x179d('0x15')]({'port':0x232c});function respondWithRpcPromise(_0x4ab090,_0x3ed0cd,_0x4929fe,_0x148456){return new BPromise(function(_0x5db82d,_0x4e1818){var _0x41932d=_0x148456||client;return _0x41932d[_0x179d('0x17')](_0x4ab090,_0x4929fe)[_0x179d('0x18')](function(_0x4c5f40){logger[_0x179d('0x19')](_0x179d('0x1a'),_0x3ed0cd,_0x179d('0x1b'));logger['debug']('ChatInteraction,\x20%s,\x20%s,\x20%s',_0x3ed0cd,_0x179d('0x1b'),JSON[_0x179d('0x1c')](_0x4c5f40));if(_0x4c5f40[_0x179d('0x1d')]){if(_0x4c5f40[_0x179d('0x1d')]['code']===0x1f4){logger[_0x179d('0x1d')](_0x179d('0x1a'),_0x3ed0cd,_0x4c5f40['error'][_0x179d('0x1e')]);return _0x4e1818(_0x4c5f40[_0x179d('0x1d')][_0x179d('0x1e')]);}logger[_0x179d('0x1d')](_0x179d('0x1a'),_0x3ed0cd,_0x4c5f40[_0x179d('0x1d')][_0x179d('0x1e')]);return _0x5db82d(_0x4c5f40[_0x179d('0x1d')][_0x179d('0x1e')]);}else{logger[_0x179d('0x19')](_0x179d('0x1a'),_0x3ed0cd,_0x179d('0x1b'));_0x5db82d(_0x4c5f40[_0x179d('0x1f')][_0x179d('0x1e')]);}})[_0x179d('0x20')](function(_0x2d1d9f){logger[_0x179d('0x1d')](_0x179d('0x1a'),_0x3ed0cd,_0x2d1d9f);_0x4e1818(_0x2d1d9f);});});}function respondWithStatusCode(_0x4c6a44,_0x54bf5f){_0x54bf5f=_0x54bf5f||0xcc;return function(_0x1eda31){if(_0x1eda31){return _0x4c6a44[_0x179d('0x21')](_0x54bf5f);}return _0x4c6a44[_0x179d('0x22')](_0x54bf5f)[_0x179d('0x23')]();};}function respondWithResult(_0x52d0de,_0x40254d){_0x40254d=_0x40254d||0xc8;return function(_0x1d64c6){if(_0x1d64c6){return _0x52d0de['status'](_0x40254d)['json'](_0x1d64c6);}};}function respondWithFilteredResult(_0x370876,_0x1bdf80){return function(_0x32d388){if(_0x32d388){var _0x17e482=typeof _0x1bdf80[_0x179d('0x24')]===_0x179d('0x25')&&typeof _0x1bdf80[_0x179d('0x26')]==='undefined';var _0x2fbbc3=_0x32d388[_0x179d('0x27')];var _0x233941=_0x17e482?0x0:_0x1bdf80[_0x179d('0x24')];var _0x548152=_0x17e482?_0x32d388[_0x179d('0x27')]:_0x1bdf80['offset']+_0x1bdf80['limit'];var _0x23b406;if(_0x548152>=_0x2fbbc3){_0x548152=_0x2fbbc3;_0x23b406=0xc8;}else{_0x23b406=0xce;}_0x370876[_0x179d('0x22')](_0x23b406);return _0x370876[_0x179d('0x28')](_0x179d('0x29'),_0x233941+'-'+_0x548152+'/'+_0x2fbbc3)[_0x179d('0x2a')](_0x32d388);}return null;};}function saveUpdates(_0x253bbb){return function(_0x38dc98){if(_0x38dc98){return _0x38dc98[_0x179d('0x2b')](_0x253bbb)['then'](function(_0x47bafb){return _0x47bafb;});}return null;};}function removeEntity(_0x57c066){return function(_0x16f3dd){if(_0x16f3dd){return _0x16f3dd[_0x179d('0x2c')]()['then'](function(){_0x57c066[_0x179d('0x22')](0xcc)[_0x179d('0x23')]();});}};}function handleEntityNotFound(_0x436f34){return function(_0x442b0a){if(!_0x442b0a){_0x436f34[_0x179d('0x21')](0x194);}return _0x442b0a;};}function handleError(_0x48962f,_0x5d1300){_0x5d1300=_0x5d1300||0x1f4;return function(_0x3ac824){logger[_0x179d('0x1d')](_0x3ac824[_0x179d('0x2d')]);if(_0x3ac824['name']){delete _0x3ac824['name'];}_0x48962f[_0x179d('0x22')](_0x5d1300)[_0x179d('0x2e')](_0x3ac824);};}function getMustacheRender(_0x1f6215,_0x126350){return Mustache[_0x179d('0x2f')](_0x1f6215,_['merge'](_0x126350['body'],{'contact':_0x126350[_0x179d('0x30')],'message':_0x126350[_0x179d('0x1e')],'agent':_0x126350['agent'],'interaction':_0x126350[_0x179d('0x31')],'account':_0x126350[_0x179d('0x32')]}))||'';}exports[_0x179d('0x33')]=function(_0x55560f,_0x334293){var _0x4de57e={};var _0x17cd1b=_[_0x179d('0x34')](db[_0x179d('0x35')][_0x179d('0x36')],function(_0x2ab330){return{'name':_0x2ab330['fieldName'],'type':_0x2ab330[_0x179d('0x37')]['key']};});_0x4de57e=qs[_0x179d('0x38')](_0x17cd1b,_0x55560f);return interaction[_0x179d('0x39')](_0x179d('0x3a'),_0x55560f['query'],_0x55560f[_0x179d('0x3b')],_0x4de57e,_0x17cd1b)[_0x179d('0x18')](respondWithFilteredResult(_0x334293,_0x4de57e))['catch'](handleError(_0x334293,null));};exports[_0x179d('0x3c')]=function(_0x48f87d,_0x392dfd){var _0x7f155a={'raw':![],'where':{'id':_0x48f87d[_0x179d('0x3d')]['id']}},_0x3161f9={};_0x3161f9[_0x179d('0x3e')]=_[_0x179d('0x3f')](db['ChatInteraction'][_0x179d('0x36')]);_0x3161f9[_0x179d('0x40')]=_[_0x179d('0x3f')](_0x48f87d[_0x179d('0x40')]);_0x3161f9[_0x179d('0x41')]=_[_0x179d('0x42')](_0x3161f9['model'],_0x3161f9['query']);_0x7f155a[_0x179d('0x43')]=_['intersection'](_0x3161f9[_0x179d('0x3e')],qs[_0x179d('0x44')](_0x48f87d[_0x179d('0x40')][_0x179d('0x44')]));_0x7f155a[_0x179d('0x43')]=_0x7f155a[_0x179d('0x43')][_0x179d('0x45')]?_0x7f155a[_0x179d('0x43')]:_0x3161f9['model'];if(_0x48f87d[_0x179d('0x40')][_0x179d('0x46')]){_0x7f155a['include']=[{'all':!![]}];}_0x7f155a=_[_0x179d('0x47')]({},_0x7f155a,_0x48f87d['options']);return db[_0x179d('0x35')][_0x179d('0x48')](_0x7f155a)['then'](handleEntityNotFound(_0x392dfd,null))[_0x179d('0x18')](respondWithResult(_0x392dfd,null))[_0x179d('0x20')](handleError(_0x392dfd,null));};exports['create']=function(_0x2c299e,_0x1d1877){return db['ChatInteraction'][_0x179d('0x49')](_0x2c299e['body'],{})['then'](respondWithResult(_0x1d1877,0xc9))['catch'](handleError(_0x1d1877,null));};exports['update']=function(_0x7d4784,_0x1e93bf){if(_0x7d4784['body']['id']){delete _0x7d4784[_0x179d('0x4a')]['id'];}return db['ChatInteraction'][_0x179d('0x48')]({'where':{'id':_0x7d4784[_0x179d('0x3d')]['id']}})[_0x179d('0x18')](handleEntityNotFound(_0x1e93bf,null))[_0x179d('0x18')](saveUpdates(_0x7d4784[_0x179d('0x4a')],null))[_0x179d('0x18')](respondWithResult(_0x1e93bf,null))[_0x179d('0x20')](handleError(_0x1e93bf,null));};exports[_0x179d('0x2c')]=function(_0x3d8ddf,_0x2477c2){return db[_0x179d('0x35')][_0x179d('0x48')]({'where':{'id':_0x3d8ddf['params']['id']}})[_0x179d('0x18')](handleEntityNotFound(_0x2477c2,null))[_0x179d('0x18')](removeEntity(_0x2477c2,null))[_0x179d('0x20')](handleError(_0x2477c2,null));};exports[_0x179d('0x4b')]=function(_0x1a38b7,_0x4dfb0c){return db[_0x179d('0x35')]['describe']()[_0x179d('0x18')](respondWithResult(_0x4dfb0c,null))[_0x179d('0x20')](handleError(_0x4dfb0c,null));};exports[_0x179d('0x4c')]=function(_0x53e17e,_0x501632){var _0x498a04=_0x53e17e[_0x179d('0x3d')]['id'];var _0x5478b2;var _0x208c87;var _0x4d9763;return db[_0x179d('0x35')][_0x179d('0x4d')]({'where':{'id':_0x498a04}})[_0x179d('0x18')](function(_0xdeec2){_0x5478b2=_0xdeec2;return db[_0x179d('0x4e')]['findOne']({'where':{'id':_0xdeec2['ChatWebsiteId']},'attributes':['id',_0x179d('0x4f'),_0x179d('0x50'),_0x179d('0x51'),_0x179d('0x52'),_0x179d('0x53')],'raw':!![]});})[_0x179d('0x18')](function(_0xdf0bb9){if(_0xdf0bb9&&_0xdf0bb9[_0x179d('0x4f')]&&_0xdf0bb9['vidaooEscalation']){_0x208c87=_0xdf0bb9;var _0xb39726={'interaction':{'id':_0x498a04},'agent':{'id':_0x53e17e['user']['id'],'name':_0x53e17e[_0x179d('0x3b')][_0x179d('0x54')],'fullname':_0x53e17e[_0x179d('0x3b')][_0x179d('0x55')],'email':_0x53e17e['user'][_0x179d('0x56')]},'contact':_0x53e17e[_0x179d('0x4a')][_0x179d('0x30')],'account':_0x53e17e[_0x179d('0x4a')][_0x179d('0x32')]};var _0x279873={'rejectUnauthorized':![],'method':_0x179d('0x57'),'url':'https://api-vidaoo.xcally.com/api/v1/meetings','headers':{'X-APIKEY':_0xdf0bb9[_0x179d('0x4f')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x53e17e[_0x179d('0x3b')]['email']],'buttons':null,'topic':_0x208c87[_0x179d('0x51')],'note':_[_0x179d('0x58')](_0x208c87[_0x179d('0x52')])?null:getMustacheRender(_0x208c87['vidaooNote'],_0xb39726),'metadata':null},'redirect':_0x179d('0x59'),'json':!![]};try{if(!_[_0x179d('0x58')](_0x208c87[_0x179d('0x53')])){var _0x5d4700=getMustacheRender(_0x208c87[_0x179d('0x53')],_0xb39726);var _0x58988d=JSON[_0x179d('0x5a')](_0x5d4700);_0x279873['body'][_0x179d('0x5b')]=_0x58988d;}}catch(_0x53d4c4){throw new db[(_0x179d('0x5c'))][(_0x179d('0x5d'))](_0x179d('0x5e'));}return rp(_0x279873);}else{throw new db[(_0x179d('0x5c'))]['ValidationError']('Error\x20in\x20Vidaoo\x20configuration');}})[_0x179d('0x18')](function(_0x4ec484){_0x4d9763=_0x4ec484;if(_0x4d9763['id']){var _0xe4c9b4={'body':_0x4d9763[_0x179d('0x5f')],'ChatWebsiteId':_0x208c87['id'],'ChatInteractionId':_0x5478b2['id'],'direction':_0x179d('0x60'),'UserId':_0x53e17e[_0x179d('0x3b')]['id']};return db[_0x179d('0x61')][_0x179d('0x49')](_0xe4c9b4,{});}else{throw new db[(_0x179d('0x5c'))][(_0x179d('0x5d'))]('Unable\x20to\x20create\x20Vidaoo\x20session');}})['then'](function(){return _0x5478b2[_0x179d('0x62')]({'vidaooSessionId':_0x4d9763['id']});})[_0x179d('0x18')](respondWithResult(_0x501632,null))[_0x179d('0x20')](handleError(_0x501632,null));};exports[_0x179d('0x63')]=function(_0x7eb1b3,_0xb3e2e9){if(_0x7eb1b3[_0x179d('0x4a')]['id']){delete _0x7eb1b3['body']['id'];}return db['ChatInteraction']['find']({'where':{'id':_0x7eb1b3[_0x179d('0x3d')]['id']},'include':[{'model':db['CmContact'],'as':'Contact'}]})[_0x179d('0x18')](handleEntityNotFound(_0xb3e2e9,null))[_0x179d('0x18')](saveUpdates(_0x7eb1b3[_0x179d('0x4a')],null))[_0x179d('0x18')](respondWithResult(_0xb3e2e9,null))['catch'](handleError(_0xb3e2e9,null));};exports[_0x179d('0x64')]=function(_0x2d4e3c,_0x3dad4f){if(_0x2d4e3c[_0x179d('0x4a')]['id']){delete _0x2d4e3c[_0x179d('0x4a')]['id'];}return db[_0x179d('0x35')][_0x179d('0x48')]({'where':{'id':_0x2d4e3c['params']['id']}})[_0x179d('0x18')](function(_0x45af23){if(!_0x45af23){logger[_0x179d('0x1d')](_0x179d('0x65'),_0x179d('0x64'),0x194,_0x179d('0x66'));_0x3dad4f[_0x179d('0x21')](0x194);}else{if(_0x45af23[_0x179d('0x67')]){throw new db[(_0x179d('0x5c'))][(_0x179d('0x5d'))](_0x179d('0x68'));}}return _0x45af23;})[_0x179d('0x18')](function(_0x145fd0){if(_0x145fd0){return _0x145fd0[_0x179d('0x2b')]({'closed':_0x2d4e3c['body'][_0x179d('0x69')],'disposition':_0x2d4e3c[_0x179d('0x4a')][_0x179d('0x6a')]})[_0x179d('0x18')](function(_0xcb0f84){return _0xcb0f84;});}})[_0x179d('0x18')](function(){return respondWithRpcPromise(_0x179d('0x6b'),_0x179d('0x64'),_0x2d4e3c[_0x179d('0x4a')],client9004);})['then'](respondWithResult(_0x3dad4f,null))['catch'](handleError(_0x3dad4f,null));};exports[_0x179d('0x6c')]=function(_0x2cfe0a,_0x3bde1a){_0x2cfe0a['body'][_0x179d('0x54')]=_0x2cfe0a[_0x179d('0x6d')][_0x179d('0x6e')];_0x2cfe0a[_0x179d('0x4a')][_0x179d('0x6f')]=_0x2cfe0a['file']['filename'];_0x2cfe0a[_0x179d('0x4a')][_0x179d('0x37')]=_0x2cfe0a[_0x179d('0x6d')][_0x179d('0x70')];return db[_0x179d('0x71')][_0x179d('0x49')](_0x2cfe0a[_0x179d('0x4a')])[_0x179d('0x18')](respondWithResult(_0x3bde1a,0xc9))[_0x179d('0x20')](handleError(_0x3bde1a,null));};exports[_0x179d('0x72')]=function(_0x55090b,_0x32a08d){return db['ChatInteraction'][_0x179d('0x4d')]({'where':{'id':_0x55090b[_0x179d('0x3d')]['id']},'raw':!![]})[_0x179d('0x18')](handleEntityNotFound(_0x32a08d,null))[_0x179d('0x18')](function(_0x3e2c76){if(_0x3e2c76){if(_0x3e2c76[_0x179d('0x69')]){return _0x32a08d['status'](0x193)[_0x179d('0x2a')]({'status':0x193,'message':'Unauthorized'});}return db['Attachment'][_0x179d('0x4d')]({'where':{'id':_0x55090b[_0x179d('0x40')][_0x179d('0x73')]},'raw':!![]})['then'](handleEntityNotFound(_0x32a08d,null));}})['then'](function(_0x2b7feb){if(_0x2b7feb){var _0x5b75b3=_0x2b7feb[_0x179d('0x74')]!==null;var _0x31a5bd=path[_0x179d('0x75')](config[_0x179d('0x76')],_0x179d('0x77'));if(_0x5b75b3){_0x31a5bd=path[_0x179d('0x75')](_0x31a5bd,_0x179d('0x78'));}var _0x50a3aa=path[_0x179d('0x75')](_0x31a5bd,_0x2b7feb[_0x179d('0x6f')]);return _0x32a08d[_0x179d('0x79')](_0x50a3aa);}})[_0x179d('0x20')](handleError(_0x32a08d,null));};exports[_0x179d('0x7a')]=function(_0x1284d7,_0x16be90){var _0x3cb1ce=null;var _0x512949=null;var _0x1cd08b=null;if(_0x1284d7[_0x179d('0x4a')]['id']){delete _0x1284d7[_0x179d('0x4a')]['id'];}if(_0x1284d7[_0x179d('0x4a')][_0x179d('0x7b')]){_0x1cd08b=path['join'](config[_0x179d('0x76')],_0x179d('0x7c'),util['format'](_0x179d('0x7d'),Date[_0x179d('0x7e')]()));_0x1284d7[_0x179d('0x4a')][_0x179d('0x7f')]=_0x1cd08b;}return db['ChatInteraction'][_0x179d('0x48')]({'where':{'id':_0x1284d7['params']['id']},'include':[{'model':db[_0x179d('0x61')],'as':_0x179d('0x80'),'include':[{'model':db['User'],'as':_0x179d('0x81')}]}]})[_0x179d('0x18')](handleEntityNotFound(_0x16be90,null))[_0x179d('0x18')](saveUpdates(_0x1284d7[_0x179d('0x4a')],null))[_0x179d('0x18')](function(_0x41311f){if(_0x41311f){_0x3cb1ce=_0x41311f;return db[_0x179d('0x4e')][_0x179d('0x48')]({'where':{'id':_0x3cb1ce[_0x179d('0x82')]}});}})[_0x179d('0x18')](function(_0xfc09d){if(_0xfc09d){_0x512949=_0xfc09d;return db[_0x179d('0x83')][_0x179d('0x48')]({'where':{'id':_0x3cb1ce['ContactId']}});}})[_0x179d('0x18')](function(_0xadd2b6){if(_0xadd2b6){if(_0x1cd08b){var _0x5acc89=null;for(var _0x464062=0x1;_0x464062<_0x3cb1ce[_0x179d('0x80')]['length'];++_0x464062){_0x5acc89=_0x3cb1ce[_0x179d('0x80')][_0x464062];var _0x128a9f=_0x5acc89['UserId']?util[_0x179d('0x84')](_0x179d('0x85'),_0x512949['agentAlias'],_0x5acc89[_0x179d('0x67')]):'System';var _0x30787d=_0x1284d7[_0x179d('0x4a')][_0x179d('0x86')]||util['format']('%s%d',_0x179d('0x87'),_0x5acc89[_0x179d('0x88')]);switch(_0x512949[_0x179d('0x89')]){case _0x179d('0x8a'):_0x128a9f=_0x5acc89['UserId']?util[_0x179d('0x84')](_0x179d('0x85'),_0x512949[_0x179d('0x8b')],_0x5acc89['UserId']):_0x179d('0x8c');break;case _0x179d('0x8d'):_0x128a9f=_0x5acc89['UserId']?_0x5acc89[_0x179d('0x81')][_0x179d('0x8e')]||_0x5acc89[_0x179d('0x81')][_0x179d('0x55')]:_0x179d('0x8c');break;case'agent_fullname':_0x128a9f=_0x5acc89['UserId']?_0x5acc89['User']['fullname']:_0x179d('0x8c');break;default:_0x128a9f=_0x5acc89['UserId']?util[_0x179d('0x84')](_0x179d('0x85'),_0x512949[_0x179d('0x8b')],_0x5acc89['UserId']):_0x179d('0x8c');}var _0x1a6a0c=util[_0x179d('0x84')](_0x179d('0x8f'),moment(_0x5acc89[_0x179d('0x90')])[_0x179d('0x84')](_0x179d('0x91')),_0x5acc89[_0x179d('0x92')]==='in'?_0x30787d:_0x128a9f,_0x5acc89['body']);if(!_0x5acc89['secret']){fs[_0x179d('0x93')](_0x1cd08b,_0x1a6a0c);}}return db['MailAccount'][_0x179d('0x4d')]({'where':{'service':!![]},'include':[{'model':db[_0x179d('0x94')],'as':_0x179d('0x95'),'raw':!![],'include':[{'model':db[_0x179d('0x96')],'as':_0x179d('0x96'),'raw':!![]}]}]});}}})[_0x179d('0x18')](function(_0xded189){if(!_0xded189||!_0xded189[_0x179d('0x95')]||!_0x1284d7[_0x179d('0x4a')])return _0x3cb1ce;var _0x154b9d=_0xded189['getSmtpOptions']();return respondWithRpcPromise(_0x179d('0x97'),_0x179d('0x98'),{'account':_0x154b9d,'message':{'from':util['format']('\x22%s\x22\x20<%s>',_0xded189['name'],_0xded189['email']||_0xded189[_0x179d('0x95')][_0x179d('0x3b')]),'to':_0x1284d7['body']['mailTranscript'],'subject':_0x179d('0x99'),'text':util['format'](_0x179d('0x9a'),_0x1284d7[_0x179d('0x4a')][_0x179d('0x7b')]),'attachments':[{'path':_0x1cd08b}]}})[_0x179d('0x18')](function(){return _0x3cb1ce;})[_0x179d('0x20')](function(_0x64cf54){logger[_0x179d('0x1d')](_0x64cf54);});})[_0x179d('0x18')](respondWithStatusCode(_0x16be90,0xc8))[_0x179d('0x20')](handleError(_0x16be90,null));};exports[_0x179d('0x9b')]=function(_0x2656fa,_0x21dcc4){return db[_0x179d('0x61')][_0x179d('0x48')]({'where':{'id':_0x2656fa[_0x179d('0x3d')]['id']}})[_0x179d('0x18')](handleEntityNotFound(_0x21dcc4,null))[_0x179d('0x18')](function(_0x312bac){if(_0x312bac){return _0x312bac[_0x179d('0x9b')](_0x2656fa['body'][_0x179d('0x9c')],_['omit'](_0x2656fa[_0x179d('0x4a')],[_0x179d('0x9c'),'id'])||{});}})[_0x179d('0x18')](respondWithResult(_0x21dcc4,null))[_0x179d('0x20')](handleError(_0x21dcc4,null));};exports[_0x179d('0x9d')]=function(_0x2376e3,_0x38d39c){var _0x24c53c={'raw':![],'where':{}};var _0x4c4de3={};var _0x2c61ac={'count':0x0,'rows':[]};return db[_0x179d('0x35')][_0x179d('0x4d')]({'where':{'id':_0x2376e3[_0x179d('0x3d')]['id']}})[_0x179d('0x18')](handleEntityNotFound(_0x38d39c,null))['then'](function(_0x199af7){if(_0x199af7){_0x4c4de3['model']=_[_0x179d('0x3f')](db[_0x179d('0x61')]['rawAttributes']);_0x4c4de3[_0x179d('0x40')]=_['keys'](_0x2376e3[_0x179d('0x40')]);_0x4c4de3['filters']=_[_0x179d('0x42')](_0x4c4de3[_0x179d('0x3e')],_0x4c4de3[_0x179d('0x40')]);_0x24c53c[_0x179d('0x43')]=_[_0x179d('0x42')](_0x4c4de3['model'],qs[_0x179d('0x44')](_0x2376e3['query'][_0x179d('0x44')]));_0x24c53c[_0x179d('0x43')]=_0x24c53c[_0x179d('0x43')][_0x179d('0x45')]?_0x24c53c[_0x179d('0x43')]:_0x4c4de3[_0x179d('0x3e')];if(!_0x2376e3[_0x179d('0x40')][_0x179d('0x9e')]('nolimit')){_0x24c53c[_0x179d('0x26')]=qs[_0x179d('0x26')](_0x2376e3['query'][_0x179d('0x26')]);_0x24c53c[_0x179d('0x24')]=qs[_0x179d('0x24')](_0x2376e3[_0x179d('0x40')][_0x179d('0x24')]);}_0x24c53c[_0x179d('0x9f')]=qs['sort'](_0x2376e3[_0x179d('0x40')][_0x179d('0xa0')]);_0x24c53c[_0x179d('0xa1')]=qs[_0x179d('0x41')](_[_0x179d('0xa2')](_0x2376e3[_0x179d('0x40')],_0x4c4de3[_0x179d('0x41')]));_0x24c53c['where'][_0x179d('0xa3')]=_0x199af7['id'];if(_0x2376e3['query']['filter']){_0x24c53c[_0x179d('0xa1')]=_['merge'](_0x24c53c[_0x179d('0xa1')],{'$or':_['map'](_0x24c53c[_0x179d('0x43')],function(_0x48ffab){var _0x54fa28={};_0x54fa28[_0x48ffab]={'$like':'%'+_0x2376e3[_0x179d('0x40')][_0x179d('0xa4')]+'%'};return _0x54fa28;})});}if(_0x2376e3[_0x179d('0x40')][_0x179d('0xa5')]){var _0x1e227a=_0x2376e3[_0x179d('0x40')]['$gte']['split'](',');var _0x2d57dc={};_0x2d57dc[_0x1e227a[0x0]]={'$gte':moment(_0x1e227a[0x1])['format'](_0x179d('0xa6'))};_0x24c53c['where']=_[_0x179d('0x47')](_0x24c53c[_0x179d('0xa1')],_0x2d57dc);}_0x24c53c=_['merge']({},_0x24c53c,_0x2376e3[_0x179d('0xa7')]);return db[_0x179d('0x61')][_0x179d('0x27')]({'where':_0x24c53c[_0x179d('0xa1')]})[_0x179d('0x18')](function(_0x56d9ad){_0x2c61ac[_0x179d('0x27')]=_0x56d9ad;if(_0x2376e3[_0x179d('0x40')][_0x179d('0x46')]){_0x24c53c[_0x179d('0xa8')]=[{'all':!![]}];}return db['ChatMessage'][_0x179d('0x39')](_0x24c53c);})[_0x179d('0x18')](function(_0x44f1ca){_0x2c61ac[_0x179d('0xa9')]=_0x44f1ca;return _0x2c61ac;});}})['then'](respondWithFilteredResult(_0x38d39c,_0x24c53c))['catch'](handleError(_0x38d39c,null));};exports[_0x179d('0xaa')]=function(_0xcc7547,_0x4d6d48){var _0x5a40b6={'where':{}},_0x5c08e2={},_0x50398f={'count':0x0,'rows':[]};return db[_0x179d('0x35')][_0x179d('0x4d')]({'where':{'id':_0xcc7547[_0x179d('0x3d')]['id']}})[_0x179d('0x18')](handleEntityNotFound(_0x4d6d48,null))[_0x179d('0x18')](function(_0x4a0765){if(_0x4a0765){_0x5c08e2['model']=_[_0x179d('0x3f')](db[_0x179d('0x61')]['rawAttributes']);_0x5c08e2[_0x179d('0x40')]=_[_0x179d('0x3f')](_0xcc7547[_0x179d('0x40')]);_0x5c08e2[_0x179d('0x41')]=_['intersection'](_0x5c08e2[_0x179d('0x3e')],_0x5c08e2[_0x179d('0x40')]);_0x5a40b6[_0x179d('0x43')]=_[_0x179d('0x42')](_0x5c08e2[_0x179d('0x3e')],qs[_0x179d('0x44')](_0xcc7547[_0x179d('0x40')][_0x179d('0x44')]));_0x5a40b6[_0x179d('0x43')]=_0x5a40b6[_0x179d('0x43')][_0x179d('0x45')]?_0x5a40b6['attributes']:_0x5c08e2[_0x179d('0x3e')];if(!_0xcc7547[_0x179d('0x40')]['hasOwnProperty']('nolimit')){_0x5a40b6['limit']=qs['limit'](_0xcc7547[_0x179d('0x40')][_0x179d('0x26')]);_0x5a40b6[_0x179d('0x24')]=qs[_0x179d('0x24')](_0xcc7547[_0x179d('0x40')][_0x179d('0x24')]);}_0x5a40b6[_0x179d('0x9f')]=qs['sort'](_0xcc7547[_0x179d('0x40')]['sort']);_0x5a40b6['where']=qs['filters'](_['pick'](_0xcc7547['query'],_0x5c08e2[_0x179d('0x41')]));_0x5a40b6['where']['ChatInteractionId']=_0x4a0765['id'];if(_0xcc7547[_0x179d('0x40')]['filter']){_0x5a40b6[_0x179d('0xa1')]=_[_0x179d('0x47')](_0x5a40b6[_0x179d('0xa1')],{'$or':_['map'](_0x5a40b6['attributes'],function(_0x1db3ef){var _0x49163b={};_0x49163b[_0x1db3ef]={'$like':'%'+_0xcc7547[_0x179d('0x40')]['filter']+'%'};return _0x49163b;})});}_0x5a40b6['where']['secret']=![];if(_0xcc7547['query']['id']){_0x5a40b6[_0x179d('0xa1')]['id']={'$gt':_0xcc7547[_0x179d('0x40')]['id']};}_0x5a40b6=_[_0x179d('0x47')]({},_0x5a40b6,_0xcc7547[_0x179d('0xa7')]);return db[_0x179d('0x61')][_0x179d('0x27')]({'where':_0x5a40b6[_0x179d('0xa1')]})[_0x179d('0x18')](function(_0x283d02){_0x50398f[_0x179d('0x27')]=_0x283d02;_0x5a40b6[_0x179d('0xa8')]=[];if(_0xcc7547[_0x179d('0x40')][_0x179d('0xab')]){_0x5a40b6[_0x179d('0xa8')]['push']({'model':db[_0x179d('0x81')],'as':_0x179d('0x81'),'attributes':['id',_0x179d('0x55'),'alias']});}if(_0xcc7547[_0x179d('0x40')][_0x179d('0x46')]){_0x5a40b6[_0x179d('0xa8')]=[{'all':!![]}];}return db['ChatMessage'][_0x179d('0x39')](_0x5a40b6);})['then'](function(_0x1772f7){_0x50398f[_0x179d('0xa9')]=_0x1772f7;return _0x50398f;});}})['then'](respondWithFilteredResult(_0x4d6d48,_0x5a40b6))['catch'](handleError(_0x4d6d48,null));};exports[_0x179d('0xac')]=function(_0x54613f,_0x4bc042){return db[_0x179d('0x35')][_0x179d('0x48')]({'where':{'id':_0x54613f[_0x179d('0x3d')]['id']}})[_0x179d('0x18')](handleEntityNotFound(_0x4bc042,null))['then'](function(_0x275367){if(_0x275367){return _0x275367[_0x179d('0xad')](_0x54613f['body'][_0x179d('0x9c')],_[_0x179d('0xae')](_0x54613f[_0x179d('0x4a')],[_0x179d('0x9c'),'id'])||{})[_0x179d('0xaf')](function(){return db[_0x179d('0xb0')][_0x179d('0x39')]({'attributes':['id',_0x179d('0x54'),_0x179d('0xb1')],'where':{'id':_0x54613f[_0x179d('0x4a')]['ids']}});})[_0x179d('0x18')](function(_0x2bbe91){socket[_0x179d('0xb2')](_0x179d('0xb3'),{'id':Number(_0x54613f[_0x179d('0x3d')]['id']),'tags':_0x2bbe91||[]});return{'id':Number(_0x54613f[_0x179d('0x3d')]['id']),'tags':_0x2bbe91||[]};});}})['then'](respondWithResult(_0x4bc042,null))[_0x179d('0x20')](handleError(_0x4bc042,null));};exports[_0x179d('0xb4')]=function(_0x1c7d2d,_0x4535da){return db[_0x179d('0x35')][_0x179d('0x48')]({'where':{'id':_0x1c7d2d[_0x179d('0x3d')]['id']}})[_0x179d('0x18')](handleEntityNotFound(_0x4535da,null))[_0x179d('0x18')](function(_0xfa30d1){if(_0xfa30d1){return _0xfa30d1[_0x179d('0xb4')](_0x1c7d2d[_0x179d('0x40')][_0x179d('0x9c')]);}})[_0x179d('0x18')](respondWithStatusCode(_0x4535da,null))[_0x179d('0x20')](handleError(_0x4535da,null));};exports['download']=function(_0x56d444,_0x3cd251){var _0x34fa3d=moment()['unix']()[_0x179d('0xb5')]();var _0x24fcc4=path['join'](config['root'],'server',_0x179d('0xb6'),_0x179d('0xb7'));var _0x345b8f=path['join'](config[_0x179d('0x76')],_0x179d('0xb8'),_0x179d('0xb6'),_0x179d('0xb9'));var _0x24c255=path[_0x179d('0x75')](_0x24fcc4,_0x34fa3d);var _0x176858=util[_0x179d('0x84')](_0x179d('0xba'),_0x56d444['params']['id'],_0x34fa3d);var _0x5848f8=path[_0x179d('0x75')](_0x24fcc4,_0x176858);var _0x5b7291=[];_0x5b7291[_0x179d('0xbb')]({'model':db['User'],'as':_0x179d('0x81'),'attributes':['id','fullname'],'raw':!![]});_0x5b7291[_0x179d('0xbb')]({'model':db[_0x179d('0x83')],'as':_0x179d('0xbc'),'attributes':['id','firstName',_0x179d('0xbd')],'raw':!![]});if(_0x56d444[_0x179d('0x40')][_0x179d('0xb9')]){_0x5b7291[_0x179d('0xbb')]({'model':db[_0x179d('0x71')],'as':'Attachment','raw':!![]});}var _0x5e908c=[{'model':db[_0x179d('0x61')],'as':_0x179d('0x80'),'attributes':['id','body',_0x179d('0x90'),_0x179d('0x92'),_0x179d('0xbe'),_0x179d('0xbf')],'include':_0x5b7291}];_0x5e908c[_0x179d('0xbb')]({'model':db[_0x179d('0x4e')],'as':_0x179d('0xc0'),'attributes':['id',_0x179d('0x54')]});_0x5e908c[_0x179d('0xbb')]({'model':db[_0x179d('0x81')],'as':'Owner','attributes':['id',_0x179d('0x55')]});return db['ChatInteraction'][_0x179d('0x48')]({'where':{'id':_0x56d444[_0x179d('0x3d')]['id']},'include':_0x5e908c})[_0x179d('0x18')](handleEntityNotFound(_0x3cd251,null))[_0x179d('0x18')](function(_0x4d08c6){if(_0x4d08c6){var _0x5e6a26=_0x4d08c6[_0x179d('0xc1')]({'plain':!![]});fs[_0x179d('0xc2')](_0x24c255);var _0x58d60a={'channel':'Chat','account':_0x5e6a26[_0x179d('0xc0')][_0x179d('0x54')],'agent':_0x5e6a26['Owner']?_0x5e6a26['Owner'][_0x179d('0x55')]:_0x179d('0xc3'),'createdAt':moment(_0x5e6a26['createdAt'])['format'](_0x179d('0xa6'))[_0x179d('0xb5')](),'closedAt':_0x5e6a26[_0x179d('0x69')]?moment(_0x5e6a26[_0x179d('0xc4')])[_0x179d('0x84')](_0x179d('0xa6'))[_0x179d('0xb5')]():'','disposition':_0x5e6a26[_0x179d('0x6a')],'chatInfo':{'browser':_0x5e6a26['browserName'],'os':_0x5e6a26[_0x179d('0xc5')],'referer':_0x5e6a26[_0x179d('0xc6')],'customerIp':_0x5e6a26[_0x179d('0xc7')],'customerPort':_0x5e6a26[_0x179d('0xc8')]?_0x5e6a26[_0x179d('0xc8')]:'N.A.'},'messages':_(_0x5e6a26[_0x179d('0x80')])[_0x179d('0xc9')]()[_0x179d('0xa4')]({'secret':![]})[_0x179d('0x34')](function(_0x1fcc8d){if(_0x1fcc8d[_0x179d('0x71')]){var _0x3b4b63=path[_0x179d('0x75')](_0x345b8f,_0x1fcc8d['Attachment'][_0x179d('0x6f')]);if(fs['existsSync'](_0x3b4b63)){fs[_0x179d('0xca')](_0x3b4b63)['pipe'](fs['createWriteStream'](path['join'](_0x24c255,_0x1fcc8d[_0x179d('0x71')]['basename'])));}}return{'date':moment(_0x1fcc8d['createdAt'])[_0x179d('0x84')]('YYYY-MM-DD\x20HH:mm:ss')[_0x179d('0xb5')](),'sender':_0x1fcc8d[_0x179d('0x92')]===_0x179d('0x60')?_0x1fcc8d[_0x179d('0x81')]?_0x1fcc8d[_0x179d('0x81')]['fullname']:'System':_0x1fcc8d['Contact'][_0x179d('0xcb')]+(_0x1fcc8d[_0x179d('0xbc')][_0x179d('0xbd')]?'\x20'+_0x1fcc8d[_0x179d('0xbc')][_0x179d('0xbd')]:''),'body':_0x1fcc8d[_0x179d('0x71')]?_0x1fcc8d[_0x179d('0x71')]['basename']:_0x1fcc8d[_0x179d('0x4a')],'direction':_0x1fcc8d['direction']==='out'?'A':'C','secret':_0x1fcc8d['secret'],'read':_0x1fcc8d[_0x179d('0xbf')],'attachment':_0x1fcc8d[_0x179d('0x71')]};})[_0x179d('0xcc')]()};return ejs[_0x179d('0xcd')](path[_0x179d('0x75')](config['root'],'server',_0x179d('0xce'),'downloadInteraction.ejs'),{'interaction':_0x58d60a})[_0x179d('0x18')](function(_0x31ef4b){var _0x1ce2d6=path[_0x179d('0x75')](_0x24c255,_0x179d('0xcf')+_0x5e6a26['id']+'-'+_0x34fa3d+_0x179d('0xd0'));var _0x3b60c3={'path':_0x1ce2d6,'channel':'Chat','interactionId':_0x5e6a26['id']};return pdf[_0x179d('0xd1')](_0x31ef4b,_0x3b60c3);})[_0x179d('0x18')](function(){return new Promise(function(_0x27bfcf,_0x457978){zipdir(_0x24c255,{'saveTo':_0x5848f8},function(_0x35aac7,_0x2f1feb){if(_0x35aac7)return _0x457978(_0x35aac7);return _0x27bfcf(_0x2f1feb);});})['then'](function(){return new BPromise(function(_0x5a39f9,_0x135683){rimraf(_0x24c255,function(_0x14e269){if(_0x14e269)_0x135683(_0x14e269);return _0x5a39f9();});});})[_0x179d('0x18')](function(){return _0x3cd251['download'](_0x5848f8,_0x176858,function(_0x15244e){if(_0x15244e){logger[_0x179d('0x1d')](_0x179d('0xd2'),_0x15244e);}else{fs[_0x179d('0xd3')](_0x5848f8);}});});});}else{return _0x3cd251['sendStatus'](0xc8);}})[_0x179d('0x20')](handleError(_0x3cd251,null));};