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 _0x3d7a=['getMyMessages','hasOwnProperty','nolimit','pick','push','addTags','setTags','spread','Tag','color','emit','chatInteractionTags:save','removeTags','download','unix','server','files','tmp','attachments','transcript-%d-%s.zip','firstName','lastName','read','get','mkdirSync','Chat','Account','Owner','N.A.','closed','browserName','osName','referer','customerIp','customerPort','tail','existsSync','createReadStream','pipe','createWriteStream','toString','value','renderFile','views','downloadInteraction.ejs','.pdf','unlinkSync','rimraf','request-promise','moment','bluebird','mustache','util','path','ioredis','../../components/interaction/service','../../config/logger','api','../../config/environment','redis','defaults','localhost','socket.io-emitter','./chatInteraction.socket','jayson/promise','client','http','request','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','ChatInteraction,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','sendStatus','status','json','offset','undefined','limit','set','update','destroy','stack','name','send','render','merge','body','contact','account','index','map','ChatInteraction','rawAttributes','type','key','getOptions','findAll','chat','query','user','show','params','model','keys','intersection','attributes','fields','includeAll','include','options','find','describe','createVidaooSession','findOne','ChatWebsite','ChatWebsiteId','vidaooApiKey','vidaooEscalation','fullname','email','POST','vidaooTopic','isNull','vidaooNote','follow','vidaooMetadata','metadata','Sequelize','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','join_url','out','ChatMessage','create','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','customUpdate','CmContact','Contact','abandonInteraction,\x20%s,\x20%s,\x20%s','abandon','UserId','disposition','attachmentUpload','file','originalname','basename','filename','mimetype','Attachment','attachmentDownload','ChatOfflineMessageId','close','mailTranscript','join','root','server/files/chat/upload/','format','transcript-%s.txt','now','Messages','User','ContactId','length','%s%d','agentAlias','System','customer','Visitor','agentIdentifier','website_alias','alias','[%s]\x20%s:\x20%s\x0a','createdAt','MM/DD/YYYY\x20HH:mm:ss','direction','secret','appendFileSync','MailAccount','Smtp','CloudProvider','getSmtpOptions','SendMail','sendMail','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','ids','omit','getMessages','filters','order','sort','where','ChatInteractionId','filter','$gte','split','YYYY-MM-DD\x20HH:mm:ss','count','rows'];(function(_0x3a9e82,_0x43b22d){var _0x3209a9=function(_0x3c5ddd){while(--_0x3c5ddd){_0x3a9e82['push'](_0x3a9e82['shift']());}};_0x3209a9(++_0x43b22d);}(_0x3d7a,0x1cd));var _0xa3d7=function(_0x4b49c9,_0x290d55){_0x4b49c9=_0x4b49c9-0x0;var _0xab2d67=_0x3d7a[_0x4b49c9];return _0xab2d67;};'use strict';var rimraf=require(_0xa3d7('0x0'));var zipdir=require('zip-dir');var rp=require(_0xa3d7('0x1'));var moment=require(_0xa3d7('0x2'));var BPromise=require(_0xa3d7('0x3'));var Mustache=require(_0xa3d7('0x4'));var util=require(_0xa3d7('0x5'));var path=require(_0xa3d7('0x6'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var Redis=require(_0xa3d7('0x7'));var interaction=require(_0xa3d7('0x8'));var qs=require('../../components/parsers/qs');var pdf=require('../../components/export/pdf');var logger=require(_0xa3d7('0x9'))(_0xa3d7('0xa'));var config=require(_0xa3d7('0xb'));var db=require('../../mysqldb')['db'];config[_0xa3d7('0xc')]=_[_0xa3d7('0xd')](config[_0xa3d7('0xc')],{'host':_0xa3d7('0xe'),'port':0x18eb});var socket=require(_0xa3d7('0xf'))(new Redis(config[_0xa3d7('0xc')]));require(_0xa3d7('0x10'))['register'](socket);var jayson=require(_0xa3d7('0x11'));var client=jayson[_0xa3d7('0x12')]['http']({'port':0x232b});var client9004=jayson[_0xa3d7('0x12')][_0xa3d7('0x13')]({'port':0x232c});function respondWithRpcPromise(_0x3328e0,_0x6285b1,_0x10b9a8,_0x304d0d){return new BPromise(function(_0x3832e0,_0x491eef){var _0x5eb6b1=_0x304d0d||client;return _0x5eb6b1[_0xa3d7('0x14')](_0x3328e0,_0x10b9a8)[_0xa3d7('0x15')](function(_0x4de410){logger[_0xa3d7('0x16')](_0xa3d7('0x17'),_0x6285b1,_0xa3d7('0x18'));logger['debug'](_0xa3d7('0x19'),_0x6285b1,_0xa3d7('0x18'),JSON['stringify'](_0x4de410));if(_0x4de410[_0xa3d7('0x1a')]){if(_0x4de410[_0xa3d7('0x1a')][_0xa3d7('0x1b')]===0x1f4){logger[_0xa3d7('0x1a')](_0xa3d7('0x17'),_0x6285b1,_0x4de410[_0xa3d7('0x1a')]['message']);return _0x491eef(_0x4de410[_0xa3d7('0x1a')][_0xa3d7('0x1c')]);}logger[_0xa3d7('0x1a')](_0xa3d7('0x17'),_0x6285b1,_0x4de410['error'][_0xa3d7('0x1c')]);return _0x3832e0(_0x4de410[_0xa3d7('0x1a')][_0xa3d7('0x1c')]);}else{logger[_0xa3d7('0x16')](_0xa3d7('0x17'),_0x6285b1,'request\x20sent');_0x3832e0(_0x4de410[_0xa3d7('0x1d')][_0xa3d7('0x1c')]);}})[_0xa3d7('0x1e')](function(_0x331d54){logger['error']('ChatInteraction,\x20%s,\x20%s',_0x6285b1,_0x331d54);_0x491eef(_0x331d54);});});}function respondWithStatusCode(_0x4a1981,_0x4db22e){_0x4db22e=_0x4db22e||0xcc;return function(_0x1e2a8b){if(_0x1e2a8b){return _0x4a1981[_0xa3d7('0x1f')](_0x4db22e);}return _0x4a1981[_0xa3d7('0x20')](_0x4db22e)['end']();};}function respondWithResult(_0x419652,_0x1eb3cd){_0x1eb3cd=_0x1eb3cd||0xc8;return function(_0x122724){if(_0x122724){return _0x419652[_0xa3d7('0x20')](_0x1eb3cd)[_0xa3d7('0x21')](_0x122724);}};}function respondWithFilteredResult(_0x478f8a,_0x1a8b3b){return function(_0xb30fe9){if(_0xb30fe9){var _0x194dee=typeof _0x1a8b3b[_0xa3d7('0x22')]===_0xa3d7('0x23')&&typeof _0x1a8b3b[_0xa3d7('0x24')]===_0xa3d7('0x23');var _0x4f1cc7=_0xb30fe9['count'];var _0x5c9ffa=_0x194dee?0x0:_0x1a8b3b[_0xa3d7('0x22')];var _0x43fef8=_0x194dee?_0xb30fe9['count']:_0x1a8b3b['offset']+_0x1a8b3b['limit'];var _0x230c9a;if(_0x43fef8>=_0x4f1cc7){_0x43fef8=_0x4f1cc7;_0x230c9a=0xc8;}else{_0x230c9a=0xce;}_0x478f8a['status'](_0x230c9a);return _0x478f8a[_0xa3d7('0x25')]('Content-Range',_0x5c9ffa+'-'+_0x43fef8+'/'+_0x4f1cc7)[_0xa3d7('0x21')](_0xb30fe9);}return null;};}function saveUpdates(_0x4e7579){return function(_0x5823ae){if(_0x5823ae){return _0x5823ae[_0xa3d7('0x26')](_0x4e7579)[_0xa3d7('0x15')](function(_0x20ccec){return _0x20ccec;});}return null;};}function removeEntity(_0x47e25b){return function(_0x363fe8){if(_0x363fe8){return _0x363fe8[_0xa3d7('0x27')]()['then'](function(){_0x47e25b[_0xa3d7('0x20')](0xcc)['end']();});}};}function handleEntityNotFound(_0x60e8b1){return function(_0x2ab73d){if(!_0x2ab73d){_0x60e8b1['sendStatus'](0x194);}return _0x2ab73d;};}function handleError(_0x3ac178,_0x3f02c6){_0x3f02c6=_0x3f02c6||0x1f4;return function(_0x142e37){logger[_0xa3d7('0x1a')](_0x142e37[_0xa3d7('0x28')]);if(_0x142e37[_0xa3d7('0x29')]){delete _0x142e37['name'];}_0x3ac178[_0xa3d7('0x20')](_0x3f02c6)[_0xa3d7('0x2a')](_0x142e37);};}function getMustacheRender(_0x2e3bef,_0x4523a){return Mustache[_0xa3d7('0x2b')](_0x2e3bef,_[_0xa3d7('0x2c')](_0x4523a[_0xa3d7('0x2d')],{'contact':_0x4523a[_0xa3d7('0x2e')],'message':_0x4523a[_0xa3d7('0x1c')],'agent':_0x4523a['agent'],'interaction':_0x4523a['interaction'],'account':_0x4523a[_0xa3d7('0x2f')]}))||'';}exports[_0xa3d7('0x30')]=function(_0x707356,_0x40264d){var _0x4f7916={};var _0x1cd56e=_[_0xa3d7('0x31')](db[_0xa3d7('0x32')][_0xa3d7('0x33')],function(_0x125bbc){return{'name':_0x125bbc['fieldName'],'type':_0x125bbc[_0xa3d7('0x34')][_0xa3d7('0x35')]};});_0x4f7916=qs[_0xa3d7('0x36')](_0x1cd56e,_0x707356);return interaction[_0xa3d7('0x37')](_0xa3d7('0x38'),_0x707356[_0xa3d7('0x39')],_0x707356[_0xa3d7('0x3a')],_0x4f7916,_0x1cd56e)[_0xa3d7('0x15')](respondWithFilteredResult(_0x40264d,_0x4f7916))[_0xa3d7('0x1e')](handleError(_0x40264d,null));};exports[_0xa3d7('0x3b')]=function(_0x2f32e3,_0x2d8f32){var _0x4a6128={'raw':![],'where':{'id':_0x2f32e3[_0xa3d7('0x3c')]['id']}},_0x39b88d={};_0x39b88d[_0xa3d7('0x3d')]=_[_0xa3d7('0x3e')](db[_0xa3d7('0x32')]['rawAttributes']);_0x39b88d[_0xa3d7('0x39')]=_[_0xa3d7('0x3e')](_0x2f32e3[_0xa3d7('0x39')]);_0x39b88d['filters']=_[_0xa3d7('0x3f')](_0x39b88d[_0xa3d7('0x3d')],_0x39b88d[_0xa3d7('0x39')]);_0x4a6128[_0xa3d7('0x40')]=_['intersection'](_0x39b88d[_0xa3d7('0x3d')],qs[_0xa3d7('0x41')](_0x2f32e3[_0xa3d7('0x39')][_0xa3d7('0x41')]));_0x4a6128[_0xa3d7('0x40')]=_0x4a6128[_0xa3d7('0x40')]['length']?_0x4a6128['attributes']:_0x39b88d['model'];if(_0x2f32e3[_0xa3d7('0x39')][_0xa3d7('0x42')]){_0x4a6128[_0xa3d7('0x43')]=[{'all':!![]}];}_0x4a6128=_[_0xa3d7('0x2c')]({},_0x4a6128,_0x2f32e3[_0xa3d7('0x44')]);return db[_0xa3d7('0x32')][_0xa3d7('0x45')](_0x4a6128)[_0xa3d7('0x15')](handleEntityNotFound(_0x2d8f32,null))['then'](respondWithResult(_0x2d8f32,null))[_0xa3d7('0x1e')](handleError(_0x2d8f32,null));};exports['create']=function(_0x129220,_0x1ab590){return db['ChatInteraction']['create'](_0x129220[_0xa3d7('0x2d')],{})[_0xa3d7('0x15')](respondWithResult(_0x1ab590,0xc9))[_0xa3d7('0x1e')](handleError(_0x1ab590,null));};exports[_0xa3d7('0x26')]=function(_0x2456f5,_0x40b47f){if(_0x2456f5[_0xa3d7('0x2d')]['id']){delete _0x2456f5[_0xa3d7('0x2d')]['id'];}return db[_0xa3d7('0x32')][_0xa3d7('0x45')]({'where':{'id':_0x2456f5[_0xa3d7('0x3c')]['id']}})[_0xa3d7('0x15')](handleEntityNotFound(_0x40b47f,null))[_0xa3d7('0x15')](saveUpdates(_0x2456f5[_0xa3d7('0x2d')],null))[_0xa3d7('0x15')](respondWithResult(_0x40b47f,null))[_0xa3d7('0x1e')](handleError(_0x40b47f,null));};exports[_0xa3d7('0x27')]=function(_0x4e2b4a,_0x521f5f){return db[_0xa3d7('0x32')][_0xa3d7('0x45')]({'where':{'id':_0x4e2b4a['params']['id']}})['then'](handleEntityNotFound(_0x521f5f,null))[_0xa3d7('0x15')](removeEntity(_0x521f5f,null))[_0xa3d7('0x1e')](handleError(_0x521f5f,null));};exports[_0xa3d7('0x46')]=function(_0x401abf,_0x12fd36){return db[_0xa3d7('0x32')][_0xa3d7('0x46')]()['then'](respondWithResult(_0x12fd36,null))[_0xa3d7('0x1e')](handleError(_0x12fd36,null));};exports[_0xa3d7('0x47')]=function(_0x59567c,_0x4933e6){var _0x2f89f6=_0x59567c[_0xa3d7('0x3c')]['id'];var _0x4eadef;var _0x5a0000;var _0x653c3d;return db['ChatInteraction'][_0xa3d7('0x48')]({'where':{'id':_0x2f89f6}})[_0xa3d7('0x15')](function(_0x3e6c57){_0x4eadef=_0x3e6c57;return db[_0xa3d7('0x49')]['findOne']({'where':{'id':_0x3e6c57[_0xa3d7('0x4a')]},'attributes':['id',_0xa3d7('0x4b'),_0xa3d7('0x4c'),'vidaooTopic','vidaooNote','vidaooMetadata'],'raw':!![]});})[_0xa3d7('0x15')](function(_0xff6fda){if(_0xff6fda&&_0xff6fda[_0xa3d7('0x4b')]&&_0xff6fda[_0xa3d7('0x4c')]){_0x5a0000=_0xff6fda;var _0x5af550={'interaction':{'id':_0x2f89f6},'agent':{'id':_0x59567c['user']['id'],'name':_0x59567c['user']['name'],'fullname':_0x59567c[_0xa3d7('0x3a')][_0xa3d7('0x4d')],'email':_0x59567c[_0xa3d7('0x3a')][_0xa3d7('0x4e')]},'contact':_0x59567c[_0xa3d7('0x2d')][_0xa3d7('0x2e')],'account':_0x59567c[_0xa3d7('0x2d')][_0xa3d7('0x2f')]};var _0x383a13={'rejectUnauthorized':![],'method':_0xa3d7('0x4f'),'url':'https://api-vidaoo.xcally.com/api/v1/meetings','headers':{'X-APIKEY':_0xff6fda[_0xa3d7('0x4b')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x59567c[_0xa3d7('0x3a')][_0xa3d7('0x4e')]],'buttons':null,'topic':_0x5a0000[_0xa3d7('0x50')],'note':_[_0xa3d7('0x51')](_0x5a0000[_0xa3d7('0x52')])?null:getMustacheRender(_0x5a0000[_0xa3d7('0x52')],_0x5af550),'metadata':null},'redirect':_0xa3d7('0x53'),'json':!![]};try{if(!_[_0xa3d7('0x51')](_0x5a0000[_0xa3d7('0x54')])){var _0x5ce4d6=getMustacheRender(_0x5a0000['vidaooMetadata'],_0x5af550);var _0x20fe2b=JSON['parse'](_0x5ce4d6);_0x383a13[_0xa3d7('0x2d')][_0xa3d7('0x55')]=_0x20fe2b;}}catch(_0x2c1a47){throw new db[(_0xa3d7('0x56'))][(_0xa3d7('0x57'))](_0xa3d7('0x58'));}return rp(_0x383a13);}else{throw new db[(_0xa3d7('0x56'))][(_0xa3d7('0x57'))]('Error\x20in\x20Vidaoo\x20configuration');}})[_0xa3d7('0x15')](function(_0x21d5a0){_0x653c3d=_0x21d5a0;if(_0x653c3d['id']){var _0x43eed9={'body':_0x653c3d[_0xa3d7('0x59')],'ChatWebsiteId':_0x5a0000['id'],'ChatInteractionId':_0x4eadef['id'],'direction':_0xa3d7('0x5a'),'UserId':_0x59567c[_0xa3d7('0x3a')]['id']};return db[_0xa3d7('0x5b')][_0xa3d7('0x5c')](_0x43eed9,{});}else{throw new db[(_0xa3d7('0x56'))]['ValidationError'](_0xa3d7('0x5d'));}})[_0xa3d7('0x15')](function(){return _0x4eadef[_0xa3d7('0x5e')]({'vidaooSessionId':_0x653c3d['id']});})[_0xa3d7('0x15')](respondWithResult(_0x4933e6,null))['catch'](handleError(_0x4933e6,null));};exports[_0xa3d7('0x5f')]=function(_0x30e6c3,_0x1e50b8){if(_0x30e6c3[_0xa3d7('0x2d')]['id']){delete _0x30e6c3[_0xa3d7('0x2d')]['id'];}return db[_0xa3d7('0x32')][_0xa3d7('0x45')]({'where':{'id':_0x30e6c3[_0xa3d7('0x3c')]['id']},'include':[{'model':db[_0xa3d7('0x60')],'as':_0xa3d7('0x61')}]})[_0xa3d7('0x15')](handleEntityNotFound(_0x1e50b8,null))['then'](saveUpdates(_0x30e6c3[_0xa3d7('0x2d')],null))['then'](respondWithResult(_0x1e50b8,null))['catch'](handleError(_0x1e50b8,null));};exports['abandon']=function(_0x2b4641,_0x517e1d){if(_0x2b4641[_0xa3d7('0x2d')]['id']){delete _0x2b4641[_0xa3d7('0x2d')]['id'];}return db[_0xa3d7('0x32')][_0xa3d7('0x45')]({'where':{'id':_0x2b4641['params']['id']}})[_0xa3d7('0x15')](function(_0x31d940){if(!_0x31d940){logger[_0xa3d7('0x1a')](_0xa3d7('0x62'),_0xa3d7('0x63'),0x194,'entity\x20not\x20found');_0x517e1d[_0xa3d7('0x1f')](0x194);}else{if(_0x31d940[_0xa3d7('0x64')]){throw new db[(_0xa3d7('0x56'))]['ValidationError']('Interaction\x20already\x20assigned');}}return _0x31d940;})[_0xa3d7('0x15')](function(_0x173736){if(_0x173736){return _0x173736[_0xa3d7('0x26')]({'closed':_0x2b4641[_0xa3d7('0x2d')]['closed'],'disposition':_0x2b4641['body'][_0xa3d7('0x65')]})[_0xa3d7('0x15')](function(_0x2d3103){return _0x2d3103;});}})[_0xa3d7('0x15')](function(){return respondWithRpcPromise('AbandonInteraction',_0xa3d7('0x63'),_0x2b4641[_0xa3d7('0x2d')],client9004);})[_0xa3d7('0x15')](respondWithResult(_0x517e1d,null))[_0xa3d7('0x1e')](handleError(_0x517e1d,null));};exports[_0xa3d7('0x66')]=function(_0x9b6424,_0x306a3c){_0x9b6424[_0xa3d7('0x2d')]['name']=_0x9b6424[_0xa3d7('0x67')][_0xa3d7('0x68')];_0x9b6424[_0xa3d7('0x2d')][_0xa3d7('0x69')]=_0x9b6424[_0xa3d7('0x67')][_0xa3d7('0x6a')];_0x9b6424[_0xa3d7('0x2d')]['type']=_0x9b6424[_0xa3d7('0x67')][_0xa3d7('0x6b')];return db[_0xa3d7('0x6c')][_0xa3d7('0x5c')](_0x9b6424[_0xa3d7('0x2d')])['then'](respondWithResult(_0x306a3c,0xc9))['catch'](handleError(_0x306a3c,null));};exports[_0xa3d7('0x6d')]=function(_0x388d97,_0x5ae6a6){return db['ChatInteraction'][_0xa3d7('0x48')]({'where':{'id':_0x388d97[_0xa3d7('0x3c')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x5ae6a6,null))[_0xa3d7('0x15')](function(_0x434c95){if(_0x434c95){if(_0x434c95['closed']){return _0x5ae6a6['status'](0x193)[_0xa3d7('0x21')]({'status':0x193,'message':'Unauthorized'});}return db['Attachment'][_0xa3d7('0x48')]({'where':{'id':_0x388d97[_0xa3d7('0x39')]['attachId']},'raw':!![]})[_0xa3d7('0x15')](handleEntityNotFound(_0x5ae6a6,null));}})[_0xa3d7('0x15')](function(_0x169600){if(_0x169600){var _0x5663e2=_0x169600[_0xa3d7('0x6e')]!==null;var _0x51c7fb=path['join'](config['root'],'server/files/attachments/');if(_0x5663e2){_0x51c7fb=path['join'](_0x51c7fb,'offline-chat/');}var _0x149e77=path['join'](_0x51c7fb,_0x169600['basename']);return _0x5ae6a6['download'](_0x149e77);}})[_0xa3d7('0x1e')](handleError(_0x5ae6a6,null));};exports[_0xa3d7('0x6f')]=function(_0x49c01e,_0x43a701){var _0x2c01ab=null;var _0x55adfb=null;var _0x3ccf23=null;if(_0x49c01e[_0xa3d7('0x2d')]['id']){delete _0x49c01e['body']['id'];}if(_0x49c01e[_0xa3d7('0x2d')][_0xa3d7('0x70')]){_0x3ccf23=path[_0xa3d7('0x71')](config[_0xa3d7('0x72')],_0xa3d7('0x73'),util[_0xa3d7('0x74')](_0xa3d7('0x75'),Date[_0xa3d7('0x76')]()));_0x49c01e[_0xa3d7('0x2d')]['pathTranscript']=_0x3ccf23;}return db[_0xa3d7('0x32')][_0xa3d7('0x45')]({'where':{'id':_0x49c01e[_0xa3d7('0x3c')]['id']},'include':[{'model':db[_0xa3d7('0x5b')],'as':_0xa3d7('0x77'),'include':[{'model':db[_0xa3d7('0x78')],'as':'User'}]}]})[_0xa3d7('0x15')](handleEntityNotFound(_0x43a701,null))[_0xa3d7('0x15')](saveUpdates(_0x49c01e[_0xa3d7('0x2d')],null))[_0xa3d7('0x15')](function(_0x18c3d2){if(_0x18c3d2){_0x2c01ab=_0x18c3d2;return db[_0xa3d7('0x49')][_0xa3d7('0x45')]({'where':{'id':_0x2c01ab[_0xa3d7('0x4a')]}});}})['then'](function(_0x1c2996){if(_0x1c2996){_0x55adfb=_0x1c2996;return db[_0xa3d7('0x60')][_0xa3d7('0x45')]({'where':{'id':_0x2c01ab[_0xa3d7('0x79')]}});}})[_0xa3d7('0x15')](function(_0x146c96){if(_0x146c96){if(_0x3ccf23){var _0x415d7f=null;for(var _0xbc5ac8=0x1;_0xbc5ac8<_0x2c01ab[_0xa3d7('0x77')][_0xa3d7('0x7a')];++_0xbc5ac8){_0x415d7f=_0x2c01ab['Messages'][_0xbc5ac8];var _0x56d249=_0x415d7f['UserId']?util[_0xa3d7('0x74')](_0xa3d7('0x7b'),_0x55adfb[_0xa3d7('0x7c')],_0x415d7f[_0xa3d7('0x64')]):_0xa3d7('0x7d');var _0xee2d5d=_0x49c01e[_0xa3d7('0x2d')][_0xa3d7('0x7e')]||util['format'](_0xa3d7('0x7b'),_0xa3d7('0x7f'),_0x415d7f['ContactId']);switch(_0x55adfb[_0xa3d7('0x80')]){case _0xa3d7('0x81'):_0x56d249=_0x415d7f[_0xa3d7('0x64')]?util[_0xa3d7('0x74')](_0xa3d7('0x7b'),_0x55adfb[_0xa3d7('0x7c')],_0x415d7f[_0xa3d7('0x64')]):'System';break;case'agent_alias':_0x56d249=_0x415d7f[_0xa3d7('0x64')]?_0x415d7f[_0xa3d7('0x78')][_0xa3d7('0x82')]||_0x415d7f[_0xa3d7('0x78')][_0xa3d7('0x4d')]:_0xa3d7('0x7d');break;case'agent_fullname':_0x56d249=_0x415d7f[_0xa3d7('0x64')]?_0x415d7f['User'][_0xa3d7('0x4d')]:'System';break;default:_0x56d249=_0x415d7f[_0xa3d7('0x64')]?util[_0xa3d7('0x74')](_0xa3d7('0x7b'),_0x55adfb[_0xa3d7('0x7c')],_0x415d7f[_0xa3d7('0x64')]):_0xa3d7('0x7d');}var _0x169494=util[_0xa3d7('0x74')](_0xa3d7('0x83'),moment(_0x415d7f[_0xa3d7('0x84')])['format'](_0xa3d7('0x85')),_0x415d7f[_0xa3d7('0x86')]==='in'?_0xee2d5d:_0x56d249,_0x415d7f[_0xa3d7('0x2d')]);if(!_0x415d7f[_0xa3d7('0x87')]){fs[_0xa3d7('0x88')](_0x3ccf23,_0x169494);}}return db[_0xa3d7('0x89')][_0xa3d7('0x48')]({'where':{'service':!![]},'include':[{'model':db['MailServerOut'],'as':_0xa3d7('0x8a'),'raw':!![],'include':[{'model':db[_0xa3d7('0x8b')],'as':_0xa3d7('0x8b'),'raw':!![]}]}]});}}})[_0xa3d7('0x15')](function(_0x3d8325){if(!_0x3d8325||!_0x3d8325[_0xa3d7('0x8a')]||!_0x49c01e[_0xa3d7('0x2d')])return _0x2c01ab;var _0x46c56e=_0x3d8325[_0xa3d7('0x8c')]();return respondWithRpcPromise(_0xa3d7('0x8d'),_0xa3d7('0x8e'),{'account':_0x46c56e,'message':{'from':util[_0xa3d7('0x74')]('\x22%s\x22\x20<%s>',_0x3d8325['name'],_0x3d8325['email']||_0x3d8325['Smtp'][_0xa3d7('0x3a')]),'to':_0x49c01e[_0xa3d7('0x2d')][_0xa3d7('0x70')],'subject':_0xa3d7('0x8f'),'text':util['format'](_0xa3d7('0x90'),_0x49c01e['body'][_0xa3d7('0x70')]),'attachments':[{'path':_0x3ccf23}]}})['then'](function(){return _0x2c01ab;})[_0xa3d7('0x1e')](function(_0x2f6e46){logger[_0xa3d7('0x1a')](_0x2f6e46);});})[_0xa3d7('0x15')](respondWithStatusCode(_0x43a701,0xc8))[_0xa3d7('0x1e')](handleError(_0x43a701,null));};exports[_0xa3d7('0x91')]=function(_0x4e24de,_0x540319){return db[_0xa3d7('0x5b')]['find']({'where':{'id':_0x4e24de['params']['id']}})[_0xa3d7('0x15')](handleEntityNotFound(_0x540319,null))[_0xa3d7('0x15')](function(_0x5856db){if(_0x5856db){return _0x5856db[_0xa3d7('0x91')](_0x4e24de['body'][_0xa3d7('0x92')],_[_0xa3d7('0x93')](_0x4e24de['body'],[_0xa3d7('0x92'),'id'])||{});}})[_0xa3d7('0x15')](respondWithResult(_0x540319,null))['catch'](handleError(_0x540319,null));};exports[_0xa3d7('0x94')]=function(_0x537592,_0x3f5ee0){var _0x3dc707={'raw':![],'where':{}};var _0x484172={};var _0x49a69d={'count':0x0,'rows':[]};return db[_0xa3d7('0x32')]['findOne']({'where':{'id':_0x537592['params']['id']}})[_0xa3d7('0x15')](handleEntityNotFound(_0x3f5ee0,null))[_0xa3d7('0x15')](function(_0x5262a7){if(_0x5262a7){_0x484172[_0xa3d7('0x3d')]=_[_0xa3d7('0x3e')](db[_0xa3d7('0x5b')][_0xa3d7('0x33')]);_0x484172[_0xa3d7('0x39')]=_[_0xa3d7('0x3e')](_0x537592[_0xa3d7('0x39')]);_0x484172[_0xa3d7('0x95')]=_['intersection'](_0x484172[_0xa3d7('0x3d')],_0x484172['query']);_0x3dc707[_0xa3d7('0x40')]=_[_0xa3d7('0x3f')](_0x484172[_0xa3d7('0x3d')],qs[_0xa3d7('0x41')](_0x537592[_0xa3d7('0x39')][_0xa3d7('0x41')]));_0x3dc707['attributes']=_0x3dc707[_0xa3d7('0x40')][_0xa3d7('0x7a')]?_0x3dc707[_0xa3d7('0x40')]:_0x484172['model'];if(!_0x537592[_0xa3d7('0x39')]['hasOwnProperty']('nolimit')){_0x3dc707['limit']=qs[_0xa3d7('0x24')](_0x537592[_0xa3d7('0x39')]['limit']);_0x3dc707[_0xa3d7('0x22')]=qs['offset'](_0x537592[_0xa3d7('0x39')]['offset']);}_0x3dc707[_0xa3d7('0x96')]=qs[_0xa3d7('0x97')](_0x537592['query'][_0xa3d7('0x97')]);_0x3dc707[_0xa3d7('0x98')]=qs[_0xa3d7('0x95')](_['pick'](_0x537592[_0xa3d7('0x39')],_0x484172[_0xa3d7('0x95')]));_0x3dc707[_0xa3d7('0x98')][_0xa3d7('0x99')]=_0x5262a7['id'];if(_0x537592[_0xa3d7('0x39')][_0xa3d7('0x9a')]){_0x3dc707[_0xa3d7('0x98')]=_['merge'](_0x3dc707[_0xa3d7('0x98')],{'$or':_[_0xa3d7('0x31')](_0x3dc707[_0xa3d7('0x40')],function(_0x2b9287){var _0x5a6e5f={};_0x5a6e5f[_0x2b9287]={'$like':'%'+_0x537592['query']['filter']+'%'};return _0x5a6e5f;})});}if(_0x537592[_0xa3d7('0x39')]['$gte']){var _0x273c13=_0x537592[_0xa3d7('0x39')][_0xa3d7('0x9b')][_0xa3d7('0x9c')](',');var _0x11ea7c={};_0x11ea7c[_0x273c13[0x0]]={'$gte':moment(_0x273c13[0x1])[_0xa3d7('0x74')](_0xa3d7('0x9d'))};_0x3dc707['where']=_['merge'](_0x3dc707[_0xa3d7('0x98')],_0x11ea7c);}_0x3dc707=_[_0xa3d7('0x2c')]({},_0x3dc707,_0x537592['options']);return db[_0xa3d7('0x5b')][_0xa3d7('0x9e')]({'where':_0x3dc707[_0xa3d7('0x98')]})[_0xa3d7('0x15')](function(_0x3ee67a){_0x49a69d['count']=_0x3ee67a;if(_0x537592['query'][_0xa3d7('0x42')]){_0x3dc707[_0xa3d7('0x43')]=[{'all':!![]}];}return db[_0xa3d7('0x5b')][_0xa3d7('0x37')](_0x3dc707);})[_0xa3d7('0x15')](function(_0x25edbc){_0x49a69d[_0xa3d7('0x9f')]=_0x25edbc;return _0x49a69d;});}})[_0xa3d7('0x15')](respondWithFilteredResult(_0x3f5ee0,_0x3dc707))[_0xa3d7('0x1e')](handleError(_0x3f5ee0,null));};exports[_0xa3d7('0xa0')]=function(_0x35937c,_0x400035){var _0x4a23fa={'where':{}},_0x2689a3={},_0xe48867={'count':0x0,'rows':[]};return db['ChatInteraction'][_0xa3d7('0x48')]({'where':{'id':_0x35937c[_0xa3d7('0x3c')]['id']}})[_0xa3d7('0x15')](handleEntityNotFound(_0x400035,null))[_0xa3d7('0x15')](function(_0x13b281){if(_0x13b281){_0x2689a3['model']=_[_0xa3d7('0x3e')](db[_0xa3d7('0x5b')][_0xa3d7('0x33')]);_0x2689a3[_0xa3d7('0x39')]=_['keys'](_0x35937c[_0xa3d7('0x39')]);_0x2689a3['filters']=_[_0xa3d7('0x3f')](_0x2689a3[_0xa3d7('0x3d')],_0x2689a3['query']);_0x4a23fa[_0xa3d7('0x40')]=_[_0xa3d7('0x3f')](_0x2689a3[_0xa3d7('0x3d')],qs['fields'](_0x35937c[_0xa3d7('0x39')][_0xa3d7('0x41')]));_0x4a23fa['attributes']=_0x4a23fa[_0xa3d7('0x40')][_0xa3d7('0x7a')]?_0x4a23fa[_0xa3d7('0x40')]:_0x2689a3[_0xa3d7('0x3d')];if(!_0x35937c[_0xa3d7('0x39')][_0xa3d7('0xa1')](_0xa3d7('0xa2'))){_0x4a23fa[_0xa3d7('0x24')]=qs['limit'](_0x35937c[_0xa3d7('0x39')]['limit']);_0x4a23fa[_0xa3d7('0x22')]=qs[_0xa3d7('0x22')](_0x35937c['query']['offset']);}_0x4a23fa[_0xa3d7('0x96')]=qs[_0xa3d7('0x97')](_0x35937c[_0xa3d7('0x39')][_0xa3d7('0x97')]);_0x4a23fa['where']=qs[_0xa3d7('0x95')](_[_0xa3d7('0xa3')](_0x35937c[_0xa3d7('0x39')],_0x2689a3[_0xa3d7('0x95')]));_0x4a23fa[_0xa3d7('0x98')][_0xa3d7('0x99')]=_0x13b281['id'];if(_0x35937c['query'][_0xa3d7('0x9a')]){_0x4a23fa[_0xa3d7('0x98')]=_['merge'](_0x4a23fa['where'],{'$or':_[_0xa3d7('0x31')](_0x4a23fa['attributes'],function(_0x66a4cf){var _0x491f4a={};_0x491f4a[_0x66a4cf]={'$like':'%'+_0x35937c[_0xa3d7('0x39')][_0xa3d7('0x9a')]+'%'};return _0x491f4a;})});}_0x4a23fa[_0xa3d7('0x98')]['secret']=![];if(_0x35937c['query']['id']){_0x4a23fa[_0xa3d7('0x98')]['id']={'$gt':_0x35937c['query']['id']};}_0x4a23fa=_['merge']({},_0x4a23fa,_0x35937c[_0xa3d7('0x44')]);return db[_0xa3d7('0x5b')]['count']({'where':_0x4a23fa[_0xa3d7('0x98')]})[_0xa3d7('0x15')](function(_0x2fca13){_0xe48867['count']=_0x2fca13;_0x4a23fa[_0xa3d7('0x43')]=[];if(_0x35937c[_0xa3d7('0x39')]['includeAgent']){_0x4a23fa['include'][_0xa3d7('0xa4')]({'model':db[_0xa3d7('0x78')],'as':'User','attributes':['id','fullname',_0xa3d7('0x82')]});}if(_0x35937c[_0xa3d7('0x39')][_0xa3d7('0x42')]){_0x4a23fa[_0xa3d7('0x43')]=[{'all':!![]}];}return db[_0xa3d7('0x5b')][_0xa3d7('0x37')](_0x4a23fa);})[_0xa3d7('0x15')](function(_0x3f40ef){_0xe48867['rows']=_0x3f40ef;return _0xe48867;});}})[_0xa3d7('0x15')](respondWithFilteredResult(_0x400035,_0x4a23fa))[_0xa3d7('0x1e')](handleError(_0x400035,null));};exports[_0xa3d7('0xa5')]=function(_0x2692a4,_0x341273){return db['ChatInteraction'][_0xa3d7('0x45')]({'where':{'id':_0x2692a4[_0xa3d7('0x3c')]['id']}})[_0xa3d7('0x15')](handleEntityNotFound(_0x341273,null))[_0xa3d7('0x15')](function(_0x74dfc){if(_0x74dfc){return _0x74dfc[_0xa3d7('0xa6')](_0x2692a4[_0xa3d7('0x2d')][_0xa3d7('0x92')],_[_0xa3d7('0x93')](_0x2692a4[_0xa3d7('0x2d')],[_0xa3d7('0x92'),'id'])||{})[_0xa3d7('0xa7')](function(){return db[_0xa3d7('0xa8')][_0xa3d7('0x37')]({'attributes':['id',_0xa3d7('0x29'),_0xa3d7('0xa9')],'where':{'id':_0x2692a4[_0xa3d7('0x2d')]['ids']}});})[_0xa3d7('0x15')](function(_0x53869e){socket[_0xa3d7('0xaa')](_0xa3d7('0xab'),{'id':Number(_0x2692a4['params']['id']),'tags':_0x53869e||[]});return{'id':Number(_0x2692a4[_0xa3d7('0x3c')]['id']),'tags':_0x53869e||[]};});}})['then'](respondWithResult(_0x341273,null))['catch'](handleError(_0x341273,null));};exports[_0xa3d7('0xac')]=function(_0x32e85a,_0x3d9cb5){return db['ChatInteraction'][_0xa3d7('0x45')]({'where':{'id':_0x32e85a['params']['id']}})[_0xa3d7('0x15')](handleEntityNotFound(_0x3d9cb5,null))[_0xa3d7('0x15')](function(_0xb22302){if(_0xb22302){return _0xb22302[_0xa3d7('0xac')](_0x32e85a[_0xa3d7('0x39')][_0xa3d7('0x92')]);}})[_0xa3d7('0x15')](respondWithStatusCode(_0x3d9cb5,null))['catch'](handleError(_0x3d9cb5,null));};exports[_0xa3d7('0xad')]=function(_0x51b2be,_0x33204b){var _0x3d7600=moment()[_0xa3d7('0xae')]()['toString']();var _0x79a082=path[_0xa3d7('0x71')](config[_0xa3d7('0x72')],_0xa3d7('0xaf'),_0xa3d7('0xb0'),_0xa3d7('0xb1'));var _0x2e470f=path[_0xa3d7('0x71')](config[_0xa3d7('0x72')],'server','files',_0xa3d7('0xb2'));var _0x5a2e6b=path['join'](_0x79a082,_0x3d7600);var _0x5d05c4=util[_0xa3d7('0x74')](_0xa3d7('0xb3'),_0x51b2be[_0xa3d7('0x3c')]['id'],_0x3d7600);var _0x36c1e1=path[_0xa3d7('0x71')](_0x79a082,_0x5d05c4);var _0x1914be=[];_0x1914be[_0xa3d7('0xa4')]({'model':db[_0xa3d7('0x78')],'as':_0xa3d7('0x78'),'attributes':['id',_0xa3d7('0x4d')],'raw':!![]});_0x1914be[_0xa3d7('0xa4')]({'model':db['CmContact'],'as':_0xa3d7('0x61'),'attributes':['id',_0xa3d7('0xb4'),_0xa3d7('0xb5')],'raw':!![]});if(_0x51b2be[_0xa3d7('0x39')][_0xa3d7('0xb2')]){_0x1914be[_0xa3d7('0xa4')]({'model':db['Attachment'],'as':_0xa3d7('0x6c'),'raw':!![]});}var _0x43102e=[{'model':db['ChatMessage'],'as':'Messages','attributes':['id','body',_0xa3d7('0x84'),_0xa3d7('0x86'),_0xa3d7('0x87'),_0xa3d7('0xb6')],'include':_0x1914be}];_0x43102e[_0xa3d7('0xa4')]({'model':db[_0xa3d7('0x49')],'as':'Account','attributes':['id',_0xa3d7('0x29')]});_0x43102e['push']({'model':db[_0xa3d7('0x78')],'as':'Owner','attributes':['id',_0xa3d7('0x4d')]});return db[_0xa3d7('0x32')]['find']({'where':{'id':_0x51b2be[_0xa3d7('0x3c')]['id']},'include':_0x43102e})['then'](handleEntityNotFound(_0x33204b,null))[_0xa3d7('0x15')](function(_0x4d1fdd){if(_0x4d1fdd){var _0x21a4ed=_0x4d1fdd[_0xa3d7('0xb7')]({'plain':!![]});fs[_0xa3d7('0xb8')](_0x5a2e6b);var _0x50470e={'channel':_0xa3d7('0xb9'),'account':_0x21a4ed[_0xa3d7('0xba')]['name'],'agent':_0x21a4ed[_0xa3d7('0xbb')]?_0x21a4ed[_0xa3d7('0xbb')][_0xa3d7('0x4d')]:_0xa3d7('0xbc'),'createdAt':moment(_0x21a4ed['createdAt'])[_0xa3d7('0x74')]('YYYY-MM-DD\x20HH:mm:ss')['toString'](),'closedAt':_0x21a4ed[_0xa3d7('0xbd')]?moment(_0x21a4ed['closedAt'])[_0xa3d7('0x74')]('YYYY-MM-DD\x20HH:mm:ss')['toString']():'','disposition':_0x21a4ed[_0xa3d7('0x65')],'chatInfo':{'browser':_0x21a4ed[_0xa3d7('0xbe')],'os':_0x21a4ed[_0xa3d7('0xbf')],'referer':_0x21a4ed[_0xa3d7('0xc0')],'customerIp':_0x21a4ed[_0xa3d7('0xc1')],'customerPort':_0x21a4ed[_0xa3d7('0xc2')]?_0x21a4ed[_0xa3d7('0xc2')]:'N.A.'},'messages':_(_0x21a4ed[_0xa3d7('0x77')])[_0xa3d7('0xc3')]()['filter']({'secret':![]})[_0xa3d7('0x31')](function(_0x47e6aa){if(_0x47e6aa['Attachment']){var _0x2b120a=path[_0xa3d7('0x71')](_0x2e470f,_0x47e6aa[_0xa3d7('0x6c')][_0xa3d7('0x69')]);if(fs[_0xa3d7('0xc4')](_0x2b120a)){fs[_0xa3d7('0xc5')](_0x2b120a)[_0xa3d7('0xc6')](fs[_0xa3d7('0xc7')](path[_0xa3d7('0x71')](_0x5a2e6b,_0x47e6aa[_0xa3d7('0x6c')][_0xa3d7('0x69')])));}}return{'date':moment(_0x47e6aa[_0xa3d7('0x84')])[_0xa3d7('0x74')](_0xa3d7('0x9d'))[_0xa3d7('0xc8')](),'sender':_0x47e6aa[_0xa3d7('0x86')]===_0xa3d7('0x5a')?_0x47e6aa['User']?_0x47e6aa['User']['fullname']:'System':_0x47e6aa[_0xa3d7('0x61')][_0xa3d7('0xb4')]+(_0x47e6aa[_0xa3d7('0x61')][_0xa3d7('0xb5')]?'\x20'+_0x47e6aa[_0xa3d7('0x61')][_0xa3d7('0xb5')]:''),'body':_0x47e6aa[_0xa3d7('0x6c')]?_0x47e6aa[_0xa3d7('0x6c')][_0xa3d7('0x69')]:_0x47e6aa['body'],'direction':_0x47e6aa[_0xa3d7('0x86')]==='out'?'A':'C','secret':_0x47e6aa[_0xa3d7('0x87')],'read':_0x47e6aa[_0xa3d7('0xb6')],'attachment':_0x47e6aa['Attachment']};})[_0xa3d7('0xc9')]()};return ejs[_0xa3d7('0xca')](path[_0xa3d7('0x71')](config['root'],_0xa3d7('0xaf'),_0xa3d7('0xcb'),_0xa3d7('0xcc')),{'interaction':_0x50470e})['then'](function(_0x2081d5){var _0x125084=path['join'](_0x5a2e6b,'transcript-'+_0x21a4ed['id']+'-'+_0x3d7600+_0xa3d7('0xcd'));var _0x2c8215={'path':_0x125084,'channel':'Chat','interactionId':_0x21a4ed['id']};return pdf['createPdfFromHTML'](_0x2081d5,_0x2c8215);})[_0xa3d7('0x15')](function(){return new Promise(function(_0x3032ea,_0x4fbeaf){zipdir(_0x5a2e6b,{'saveTo':_0x36c1e1},function(_0x200942,_0x468d46){if(_0x200942)return _0x4fbeaf(_0x200942);return _0x3032ea(_0x468d46);});})[_0xa3d7('0x15')](function(){return new BPromise(function(_0xc5dbb1,_0x39b6cd){rimraf(_0x5a2e6b,function(_0x139fbf){if(_0x139fbf)_0x39b6cd(_0x139fbf);return _0xc5dbb1();});});})[_0xa3d7('0x15')](function(){return _0x33204b[_0xa3d7('0xad')](_0x36c1e1,_0x5d05c4,function(_0x51404b){if(_0x51404b){logger[_0xa3d7('0x1a')]('err',_0x51404b);}else{fs[_0xa3d7('0xce')](_0x36c1e1);}});});});}else{return _0x33204b[_0xa3d7('0x1f')](0xc8);}})[_0xa3d7('0x1e')](handleError(_0x33204b,null));};