Built motion from commit 1ea47bf4.|2.6.34
[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 _0xe6aa=['removeTags','unix','toString','server','files','attachments','transcript-%d-%s.zip','push','firstName','lastName','read','ChatWebsite','Account','Owner','mkdirSync','Chat','createdAt','closedAt','osName','referer','customerIp','customerPort','N.A.','tail','existsSync','pipe','out','Contact','value','renderFile','views','downloadInteraction.ejs','transcript-','createPdfFromHTML','err','unlinkSync','rimraf','request-promise','bluebird','mustache','path','ejs','lodash','../../components/interaction/service','../../components/parsers/qs','../../components/export/pdf','../../config/logger','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./chatInteraction.socket','register','jayson/promise','http','client','request','then','info','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','ChatInteraction,\x20%s,\x20%s','message','result','catch','sendStatus','status','end','json','offset','undefined','count','limit','update','name','render','body','contact','agent','account','rawAttributes','fieldName','type','key','findAll','chat','query','user','show','model','ChatInteraction','keys','attributes','intersection','fields','options','find','create','params','destroy','describe','createVidaooSession','findOne','ChatWebsiteId','vidaooTopic','vidaooNote','vidaooMetadata','fullname','POST','https://api-vidaoo.xcally.com/api/v1/meetings','vidaooApiKey','email','isNull','follow','parse','metadata','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','Error\x20in\x20Vidaoo\x20configuration','join_url','ChatMessage','Sequelize','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','customUpdate','CmContact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','UserId','disposition','AbandonInteraction','attachmentUpload','file','basename','filename','mimetype','Attachment','closed','Unauthorized','ChatOfflineMessageId','root','server/files/attachments/','join','offline-chat/','download','close','server/files/chat/upload/','transcript-%s.txt','pathTranscript','Messages','User','ContactId','format','%s%d','agentAlias','customer','Visitor','agentIdentifier','System','alias','agent_fullname','[%s]\x20%s:\x20%s\x0a','MM/DD/YYYY\x20HH:mm:ss','direction','appendFileSync','MailServerOut','Smtp','CloudProvider','getSmtpOptions','SendMail','sendMail','\x22%s\x22\x20<%s>','mailTranscript','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','omit','ids','getMessages','filters','length','hasOwnProperty','nolimit','sort','where','merge','map','filter','$gte','split','YYYY-MM-DD\x20HH:mm:ss','include','rows','getMyMessages','order','pick','ChatInteractionId','secret','includeAgent','includeAll','addTags','spread','Tag','color','emit','chatInteractionTags:save'];(function(_0x58bbeb,_0x19caf1){var _0x5d9f3e=function(_0x27e100){while(--_0x27e100){_0x58bbeb['push'](_0x58bbeb['shift']());}};_0x5d9f3e(++_0x19caf1);}(_0xe6aa,0x1ca));var _0xae6a=function(_0x123dba,_0x58ff2d){_0x123dba=_0x123dba-0x0;var _0x41b42d=_0xe6aa[_0x123dba];return _0x41b42d;};'use strict';var rimraf=require(_0xae6a('0x0'));var zipdir=require('zip-dir');var rp=require(_0xae6a('0x1'));var moment=require('moment');var BPromise=require(_0xae6a('0x2'));var Mustache=require(_0xae6a('0x3'));var util=require('util');var path=require(_0xae6a('0x4'));var ejs=require(_0xae6a('0x5'));var fs=require('fs');var _=require(_0xae6a('0x6'));var Redis=require('ioredis');var interaction=require(_0xae6a('0x7'));var qs=require(_0xae6a('0x8'));var pdf=require(_0xae6a('0x9'));var logger=require(_0xae6a('0xa'))('api');var config=require(_0xae6a('0xb'));var db=require(_0xae6a('0xc'))['db'];config['redis']=_[_0xae6a('0xd')](config[_0xae6a('0xe')],{'host':_0xae6a('0xf'),'port':0x18eb});var socket=require(_0xae6a('0x10'))(new Redis(config[_0xae6a('0xe')]));require(_0xae6a('0x11'))[_0xae6a('0x12')](socket);var jayson=require(_0xae6a('0x13'));var client=jayson['client'][_0xae6a('0x14')]({'port':0x232b});var client9004=jayson[_0xae6a('0x15')][_0xae6a('0x14')]({'port':0x232c});function respondWithRpcPromise(_0x4998fd,_0x26572c,_0x148261,_0xb30f94){return new BPromise(function(_0x50d0d5,_0x31527a){var _0x3990cf=_0xb30f94||client;return _0x3990cf[_0xae6a('0x16')](_0x4998fd,_0x148261)[_0xae6a('0x17')](function(_0x1c0015){logger[_0xae6a('0x18')]('ChatInteraction,\x20%s,\x20%s',_0x26572c,_0xae6a('0x19'));logger[_0xae6a('0x1a')](_0xae6a('0x1b'),_0x26572c,_0xae6a('0x19'),JSON[_0xae6a('0x1c')](_0x1c0015));if(_0x1c0015[_0xae6a('0x1d')]){if(_0x1c0015[_0xae6a('0x1d')]['code']===0x1f4){logger['error'](_0xae6a('0x1e'),_0x26572c,_0x1c0015['error'][_0xae6a('0x1f')]);return _0x31527a(_0x1c0015[_0xae6a('0x1d')][_0xae6a('0x1f')]);}logger[_0xae6a('0x1d')](_0xae6a('0x1e'),_0x26572c,_0x1c0015['error']['message']);return _0x50d0d5(_0x1c0015[_0xae6a('0x1d')][_0xae6a('0x1f')]);}else{logger[_0xae6a('0x18')](_0xae6a('0x1e'),_0x26572c,_0xae6a('0x19'));_0x50d0d5(_0x1c0015[_0xae6a('0x20')][_0xae6a('0x1f')]);}})[_0xae6a('0x21')](function(_0x26e83f){logger[_0xae6a('0x1d')](_0xae6a('0x1e'),_0x26572c,_0x26e83f);_0x31527a(_0x26e83f);});});}function respondWithStatusCode(_0x5b71f1,_0x554db7){_0x554db7=_0x554db7||0xcc;return function(_0x4aab98){if(_0x4aab98){return _0x5b71f1[_0xae6a('0x22')](_0x554db7);}return _0x5b71f1[_0xae6a('0x23')](_0x554db7)[_0xae6a('0x24')]();};}function respondWithResult(_0x423a54,_0x28ceff){_0x28ceff=_0x28ceff||0xc8;return function(_0x32724b){if(_0x32724b){return _0x423a54['status'](_0x28ceff)[_0xae6a('0x25')](_0x32724b);}};}function respondWithFilteredResult(_0x5df151,_0x2bb3f4){return function(_0x30968b){if(_0x30968b){var _0x266eab=typeof _0x2bb3f4[_0xae6a('0x26')]==='undefined'&&typeof _0x2bb3f4['limit']===_0xae6a('0x27');var _0x4d2725=_0x30968b[_0xae6a('0x28')];var _0x29ae99=_0x266eab?0x0:_0x2bb3f4[_0xae6a('0x26')];var _0x14213e=_0x266eab?_0x30968b[_0xae6a('0x28')]:_0x2bb3f4['offset']+_0x2bb3f4[_0xae6a('0x29')];var _0x2d70ca;if(_0x14213e>=_0x4d2725){_0x14213e=_0x4d2725;_0x2d70ca=0xc8;}else{_0x2d70ca=0xce;}_0x5df151[_0xae6a('0x23')](_0x2d70ca);return _0x5df151['set']('Content-Range',_0x29ae99+'-'+_0x14213e+'/'+_0x4d2725)[_0xae6a('0x25')](_0x30968b);}return null;};}function saveUpdates(_0x36b8af){return function(_0x23980d){if(_0x23980d){return _0x23980d[_0xae6a('0x2a')](_0x36b8af)[_0xae6a('0x17')](function(_0x2cee1e){return _0x2cee1e;});}return null;};}function removeEntity(_0x1a1f2b){return function(_0x4ae06f){if(_0x4ae06f){return _0x4ae06f['destroy']()[_0xae6a('0x17')](function(){_0x1a1f2b[_0xae6a('0x23')](0xcc)[_0xae6a('0x24')]();});}};}function handleEntityNotFound(_0x1cc51f){return function(_0x3a74e1){if(!_0x3a74e1){_0x1cc51f[_0xae6a('0x22')](0x194);}return _0x3a74e1;};}function handleError(_0x3793e0,_0x208af8){_0x208af8=_0x208af8||0x1f4;return function(_0x3dfbfa){logger[_0xae6a('0x1d')](_0x3dfbfa['stack']);if(_0x3dfbfa[_0xae6a('0x2b')]){delete _0x3dfbfa[_0xae6a('0x2b')];}_0x3793e0[_0xae6a('0x23')](_0x208af8)['send'](_0x3dfbfa);};}function getMustacheRender(_0x56c778,_0xd75e0){return Mustache[_0xae6a('0x2c')](_0x56c778,_['merge'](_0xd75e0[_0xae6a('0x2d')],{'contact':_0xd75e0[_0xae6a('0x2e')],'message':_0xd75e0[_0xae6a('0x1f')],'agent':_0xd75e0[_0xae6a('0x2f')],'interaction':_0xd75e0['interaction'],'account':_0xd75e0[_0xae6a('0x30')]}))||'';}exports['index']=function(_0x592cc4,_0x264e3a){var _0x210645={};var _0x14582f=_['map'](db['ChatInteraction'][_0xae6a('0x31')],function(_0x29bff6){return{'name':_0x29bff6[_0xae6a('0x32')],'type':_0x29bff6[_0xae6a('0x33')][_0xae6a('0x34')]};});_0x210645=qs['getOptions'](_0x14582f,_0x592cc4);return interaction[_0xae6a('0x35')](_0xae6a('0x36'),_0x592cc4[_0xae6a('0x37')],_0x592cc4[_0xae6a('0x38')],_0x210645,_0x14582f)[_0xae6a('0x17')](respondWithFilteredResult(_0x264e3a,_0x210645))[_0xae6a('0x21')](handleError(_0x264e3a,null));};exports[_0xae6a('0x39')]=function(_0x418f48,_0x1c5d79){var _0x92015a={'raw':![],'where':{'id':_0x418f48['params']['id']}},_0x4059b9={};_0x4059b9[_0xae6a('0x3a')]=_['keys'](db[_0xae6a('0x3b')]['rawAttributes']);_0x4059b9[_0xae6a('0x37')]=_[_0xae6a('0x3c')](_0x418f48['query']);_0x4059b9['filters']=_['intersection'](_0x4059b9[_0xae6a('0x3a')],_0x4059b9[_0xae6a('0x37')]);_0x92015a[_0xae6a('0x3d')]=_[_0xae6a('0x3e')](_0x4059b9[_0xae6a('0x3a')],qs[_0xae6a('0x3f')](_0x418f48[_0xae6a('0x37')][_0xae6a('0x3f')]));_0x92015a['attributes']=_0x92015a[_0xae6a('0x3d')]['length']?_0x92015a[_0xae6a('0x3d')]:_0x4059b9[_0xae6a('0x3a')];if(_0x418f48[_0xae6a('0x37')]['includeAll']){_0x92015a['include']=[{'all':!![]}];}_0x92015a=_['merge']({},_0x92015a,_0x418f48[_0xae6a('0x40')]);return db[_0xae6a('0x3b')][_0xae6a('0x41')](_0x92015a)['then'](handleEntityNotFound(_0x1c5d79,null))['then'](respondWithResult(_0x1c5d79,null))['catch'](handleError(_0x1c5d79,null));};exports[_0xae6a('0x42')]=function(_0x4c25ab,_0x3b0b9a){return db[_0xae6a('0x3b')][_0xae6a('0x42')](_0x4c25ab[_0xae6a('0x2d')],{})[_0xae6a('0x17')](respondWithResult(_0x3b0b9a,0xc9))['catch'](handleError(_0x3b0b9a,null));};exports[_0xae6a('0x2a')]=function(_0x10af07,_0x22941f){if(_0x10af07[_0xae6a('0x2d')]['id']){delete _0x10af07[_0xae6a('0x2d')]['id'];}return db[_0xae6a('0x3b')][_0xae6a('0x41')]({'where':{'id':_0x10af07[_0xae6a('0x43')]['id']}})[_0xae6a('0x17')](handleEntityNotFound(_0x22941f,null))['then'](saveUpdates(_0x10af07[_0xae6a('0x2d')],null))[_0xae6a('0x17')](respondWithResult(_0x22941f,null))['catch'](handleError(_0x22941f,null));};exports[_0xae6a('0x44')]=function(_0xce0a7e,_0x383d28){return db[_0xae6a('0x3b')][_0xae6a('0x41')]({'where':{'id':_0xce0a7e[_0xae6a('0x43')]['id']}})[_0xae6a('0x17')](handleEntityNotFound(_0x383d28,null))[_0xae6a('0x17')](removeEntity(_0x383d28,null))[_0xae6a('0x21')](handleError(_0x383d28,null));};exports[_0xae6a('0x45')]=function(_0x2b2ab7,_0xdb6106){return db['ChatInteraction'][_0xae6a('0x45')]()[_0xae6a('0x17')](respondWithResult(_0xdb6106,null))['catch'](handleError(_0xdb6106,null));};exports[_0xae6a('0x46')]=function(_0x3bc6e7,_0x381ed0){var _0x471c10=_0x3bc6e7[_0xae6a('0x43')]['id'];var _0x1c1bb2;var _0xbfef90;var _0x290da0;return db[_0xae6a('0x3b')][_0xae6a('0x47')]({'where':{'id':_0x471c10}})[_0xae6a('0x17')](function(_0x450b2e){_0x1c1bb2=_0x450b2e;return db['ChatWebsite'][_0xae6a('0x47')]({'where':{'id':_0x450b2e[_0xae6a('0x48')]},'attributes':['id','vidaooApiKey','vidaooEscalation',_0xae6a('0x49'),_0xae6a('0x4a'),_0xae6a('0x4b')],'raw':!![]});})[_0xae6a('0x17')](function(_0x73bb7a){if(_0x73bb7a&&_0x73bb7a['vidaooApiKey']&&_0x73bb7a['vidaooEscalation']){_0xbfef90=_0x73bb7a;var _0x4aceb7={'interaction':{'id':_0x471c10},'agent':{'id':_0x3bc6e7['user']['id'],'name':_0x3bc6e7[_0xae6a('0x38')]['name'],'fullname':_0x3bc6e7[_0xae6a('0x38')][_0xae6a('0x4c')],'email':_0x3bc6e7['user']['email']},'contact':_0x3bc6e7[_0xae6a('0x2d')][_0xae6a('0x2e')],'account':_0x3bc6e7[_0xae6a('0x2d')][_0xae6a('0x30')]};var _0x43df6e={'rejectUnauthorized':![],'method':_0xae6a('0x4d'),'url':_0xae6a('0x4e'),'headers':{'X-APIKEY':_0x73bb7a[_0xae6a('0x4f')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x3bc6e7[_0xae6a('0x38')][_0xae6a('0x50')]],'buttons':null,'topic':_0xbfef90[_0xae6a('0x49')],'note':_[_0xae6a('0x51')](_0xbfef90[_0xae6a('0x4a')])?null:getMustacheRender(_0xbfef90[_0xae6a('0x4a')],_0x4aceb7),'metadata':null},'redirect':_0xae6a('0x52'),'json':!![]};try{if(!_['isNull'](_0xbfef90[_0xae6a('0x4b')])){var _0x3606fc=getMustacheRender(_0xbfef90[_0xae6a('0x4b')],_0x4aceb7);var _0x2034d5=JSON[_0xae6a('0x53')](_0x3606fc);_0x43df6e[_0xae6a('0x2d')][_0xae6a('0x54')]=_0x2034d5;}}catch(_0x50eb28){throw new db['Sequelize'][(_0xae6a('0x55'))](_0xae6a('0x56'));}return rp(_0x43df6e);}else{throw new db['Sequelize']['ValidationError'](_0xae6a('0x57'));}})[_0xae6a('0x17')](function(_0x2b878b){_0x290da0=_0x2b878b;if(_0x290da0['id']){var _0x52f504={'body':_0x290da0[_0xae6a('0x58')],'ChatWebsiteId':_0xbfef90['id'],'ChatInteractionId':_0x1c1bb2['id'],'direction':'out','UserId':_0x3bc6e7['user']['id']};return db[_0xae6a('0x59')][_0xae6a('0x42')](_0x52f504,{});}else{throw new db[(_0xae6a('0x5a'))]['ValidationError'](_0xae6a('0x5b'));}})[_0xae6a('0x17')](function(){return _0x1c1bb2[_0xae6a('0x5c')]({'vidaooSessionId':_0x290da0['id']});})['then'](respondWithResult(_0x381ed0,null))[_0xae6a('0x21')](handleError(_0x381ed0,null));};exports[_0xae6a('0x5d')]=function(_0x49345a,_0x4f8230){if(_0x49345a[_0xae6a('0x2d')]['id']){delete _0x49345a[_0xae6a('0x2d')]['id'];}return db[_0xae6a('0x3b')]['find']({'where':{'id':_0x49345a[_0xae6a('0x43')]['id']},'include':[{'model':db[_0xae6a('0x5e')],'as':'Contact'}]})['then'](handleEntityNotFound(_0x4f8230,null))[_0xae6a('0x17')](saveUpdates(_0x49345a['body'],null))['then'](respondWithResult(_0x4f8230,null))[_0xae6a('0x21')](handleError(_0x4f8230,null));};exports[_0xae6a('0x5f')]=function(_0x5e5803,_0x2734ce){if(_0x5e5803[_0xae6a('0x2d')]['id']){delete _0x5e5803[_0xae6a('0x2d')]['id'];}return db['ChatInteraction'][_0xae6a('0x41')]({'where':{'id':_0x5e5803['params']['id']}})[_0xae6a('0x17')](function(_0x379253){if(!_0x379253){logger[_0xae6a('0x1d')](_0xae6a('0x60'),_0xae6a('0x5f'),0x194,_0xae6a('0x61'));_0x2734ce[_0xae6a('0x22')](0x194);}else{if(_0x379253[_0xae6a('0x62')]){throw new db['Sequelize'][(_0xae6a('0x55'))]('Interaction\x20already\x20assigned');}}return _0x379253;})['then'](function(_0x2a3639){if(_0x2a3639){return _0x2a3639[_0xae6a('0x2a')]({'closed':_0x5e5803['body']['closed'],'disposition':_0x5e5803[_0xae6a('0x2d')][_0xae6a('0x63')]})[_0xae6a('0x17')](function(_0x316f71){return _0x316f71;});}})['then'](function(){return respondWithRpcPromise(_0xae6a('0x64'),_0xae6a('0x5f'),_0x5e5803[_0xae6a('0x2d')],client9004);})[_0xae6a('0x17')](respondWithResult(_0x2734ce,null))[_0xae6a('0x21')](handleError(_0x2734ce,null));};exports[_0xae6a('0x65')]=function(_0x35322d,_0x2f7403){_0x35322d['body'][_0xae6a('0x2b')]=_0x35322d[_0xae6a('0x66')]['originalname'];_0x35322d[_0xae6a('0x2d')][_0xae6a('0x67')]=_0x35322d[_0xae6a('0x66')][_0xae6a('0x68')];_0x35322d[_0xae6a('0x2d')][_0xae6a('0x33')]=_0x35322d[_0xae6a('0x66')][_0xae6a('0x69')];return db[_0xae6a('0x6a')][_0xae6a('0x42')](_0x35322d['body'])[_0xae6a('0x17')](respondWithResult(_0x2f7403,0xc9))['catch'](handleError(_0x2f7403,null));};exports['attachmentDownload']=function(_0x1165d5,_0x31c015){return db['ChatInteraction'][_0xae6a('0x47')]({'where':{'id':_0x1165d5[_0xae6a('0x43')]['id']},'raw':!![]})[_0xae6a('0x17')](handleEntityNotFound(_0x31c015,null))[_0xae6a('0x17')](function(_0x777720){if(_0x777720){if(_0x777720[_0xae6a('0x6b')]){return _0x31c015['status'](0x193)[_0xae6a('0x25')]({'status':0x193,'message':_0xae6a('0x6c')});}return db[_0xae6a('0x6a')]['findOne']({'where':{'id':_0x1165d5[_0xae6a('0x37')]['attachId']},'raw':!![]})[_0xae6a('0x17')](handleEntityNotFound(_0x31c015,null));}})[_0xae6a('0x17')](function(_0x5022fc){if(_0x5022fc){var _0x44cc44=_0x5022fc[_0xae6a('0x6d')]!==null;var _0x4f3f9d=path['join'](config[_0xae6a('0x6e')],_0xae6a('0x6f'));if(_0x44cc44){_0x4f3f9d=path[_0xae6a('0x70')](_0x4f3f9d,_0xae6a('0x71'));}var _0x3c38b6=path['join'](_0x4f3f9d,_0x5022fc[_0xae6a('0x67')]);return _0x31c015[_0xae6a('0x72')](_0x3c38b6);}})['catch'](handleError(_0x31c015,null));};exports[_0xae6a('0x73')]=function(_0x33ecc9,_0x23ffdd){var _0x42a833=null;var _0x2cf004=null;var _0x1f02b5=null;if(_0x33ecc9[_0xae6a('0x2d')]['id']){delete _0x33ecc9[_0xae6a('0x2d')]['id'];}if(_0x33ecc9['body']['mailTranscript']){_0x1f02b5=path[_0xae6a('0x70')](config['root'],_0xae6a('0x74'),util['format'](_0xae6a('0x75'),Date['now']()));_0x33ecc9[_0xae6a('0x2d')][_0xae6a('0x76')]=_0x1f02b5;}return db['ChatInteraction'][_0xae6a('0x41')]({'where':{'id':_0x33ecc9[_0xae6a('0x43')]['id']},'include':[{'model':db[_0xae6a('0x59')],'as':_0xae6a('0x77'),'include':[{'model':db[_0xae6a('0x78')],'as':'User'}]}]})[_0xae6a('0x17')](handleEntityNotFound(_0x23ffdd,null))[_0xae6a('0x17')](saveUpdates(_0x33ecc9['body'],null))[_0xae6a('0x17')](function(_0x262af3){if(_0x262af3){_0x42a833=_0x262af3;return db['ChatWebsite'][_0xae6a('0x41')]({'where':{'id':_0x42a833[_0xae6a('0x48')]}});}})[_0xae6a('0x17')](function(_0x5f425e){if(_0x5f425e){_0x2cf004=_0x5f425e;return db[_0xae6a('0x5e')][_0xae6a('0x41')]({'where':{'id':_0x42a833[_0xae6a('0x79')]}});}})[_0xae6a('0x17')](function(_0x214b6d){if(_0x214b6d){if(_0x1f02b5){var _0x4eb0cb=null;for(var _0x4af66a=0x1;_0x4af66a<_0x42a833[_0xae6a('0x77')]['length'];++_0x4af66a){_0x4eb0cb=_0x42a833['Messages'][_0x4af66a];var _0x2eacd8=_0x4eb0cb['UserId']?util[_0xae6a('0x7a')](_0xae6a('0x7b'),_0x2cf004[_0xae6a('0x7c')],_0x4eb0cb[_0xae6a('0x62')]):'System';var _0x2db7b4=_0x33ecc9[_0xae6a('0x2d')][_0xae6a('0x7d')]||util['format'](_0xae6a('0x7b'),_0xae6a('0x7e'),_0x4eb0cb[_0xae6a('0x79')]);switch(_0x2cf004[_0xae6a('0x7f')]){case'website_alias':_0x2eacd8=_0x4eb0cb[_0xae6a('0x62')]?util['format']('%s%d',_0x2cf004[_0xae6a('0x7c')],_0x4eb0cb[_0xae6a('0x62')]):_0xae6a('0x80');break;case'agent_alias':_0x2eacd8=_0x4eb0cb[_0xae6a('0x62')]?_0x4eb0cb[_0xae6a('0x78')][_0xae6a('0x81')]||_0x4eb0cb[_0xae6a('0x78')]['fullname']:_0xae6a('0x80');break;case _0xae6a('0x82'):_0x2eacd8=_0x4eb0cb['UserId']?_0x4eb0cb[_0xae6a('0x78')][_0xae6a('0x4c')]:_0xae6a('0x80');break;default:_0x2eacd8=_0x4eb0cb['UserId']?util[_0xae6a('0x7a')](_0xae6a('0x7b'),_0x2cf004[_0xae6a('0x7c')],_0x4eb0cb['UserId']):'System';}var _0x3a34c6=util['format'](_0xae6a('0x83'),moment(_0x4eb0cb['createdAt'])[_0xae6a('0x7a')](_0xae6a('0x84')),_0x4eb0cb[_0xae6a('0x85')]==='in'?_0x2db7b4:_0x2eacd8,_0x4eb0cb[_0xae6a('0x2d')]);if(!_0x4eb0cb['secret']){fs[_0xae6a('0x86')](_0x1f02b5,_0x3a34c6);}}return db['MailAccount']['findOne']({'where':{'service':!![]},'include':[{'model':db[_0xae6a('0x87')],'as':_0xae6a('0x88'),'raw':!![],'include':[{'model':db[_0xae6a('0x89')],'as':_0xae6a('0x89'),'raw':!![]}]}]});}}})[_0xae6a('0x17')](function(_0x48e3e4){if(!_0x48e3e4||!_0x48e3e4[_0xae6a('0x88')]||!_0x33ecc9[_0xae6a('0x2d')])return _0x42a833;var _0x4737d2=_0x48e3e4[_0xae6a('0x8a')]();return respondWithRpcPromise(_0xae6a('0x8b'),_0xae6a('0x8c'),{'account':_0x4737d2,'message':{'from':util[_0xae6a('0x7a')](_0xae6a('0x8d'),_0x48e3e4['name'],_0x48e3e4[_0xae6a('0x50')]||_0x48e3e4[_0xae6a('0x88')][_0xae6a('0x38')]),'to':_0x33ecc9[_0xae6a('0x2d')][_0xae6a('0x8e')],'subject':_0xae6a('0x8f'),'text':util[_0xae6a('0x7a')](_0xae6a('0x90'),_0x33ecc9[_0xae6a('0x2d')]['mailTranscript']),'attachments':[{'path':_0x1f02b5}]}})['then'](function(){return _0x42a833;})[_0xae6a('0x21')](function(_0x17c3ed){logger['error'](_0x17c3ed);});})['then'](respondWithStatusCode(_0x23ffdd,0xc8))[_0xae6a('0x21')](handleError(_0x23ffdd,null));};exports['addMessage']=function(_0x11f794,_0x126fe1){return db[_0xae6a('0x59')][_0xae6a('0x41')]({'where':{'id':_0x11f794[_0xae6a('0x43')]['id']}})[_0xae6a('0x17')](handleEntityNotFound(_0x126fe1,null))[_0xae6a('0x17')](function(_0x337d64){if(_0x337d64){return _0x337d64['addMessage'](_0x11f794['body']['ids'],_[_0xae6a('0x91')](_0x11f794[_0xae6a('0x2d')],[_0xae6a('0x92'),'id'])||{});}})['then'](respondWithResult(_0x126fe1,null))[_0xae6a('0x21')](handleError(_0x126fe1,null));};exports[_0xae6a('0x93')]=function(_0xc15337,_0x4e2e2d){var _0x1df31a={'raw':![],'where':{}};var _0x4102f4={};var _0x502b73={'count':0x0,'rows':[]};return db[_0xae6a('0x3b')][_0xae6a('0x47')]({'where':{'id':_0xc15337[_0xae6a('0x43')]['id']}})['then'](handleEntityNotFound(_0x4e2e2d,null))[_0xae6a('0x17')](function(_0x2aa14e){if(_0x2aa14e){_0x4102f4[_0xae6a('0x3a')]=_['keys'](db[_0xae6a('0x59')][_0xae6a('0x31')]);_0x4102f4['query']=_[_0xae6a('0x3c')](_0xc15337[_0xae6a('0x37')]);_0x4102f4[_0xae6a('0x94')]=_[_0xae6a('0x3e')](_0x4102f4[_0xae6a('0x3a')],_0x4102f4['query']);_0x1df31a['attributes']=_[_0xae6a('0x3e')](_0x4102f4[_0xae6a('0x3a')],qs[_0xae6a('0x3f')](_0xc15337['query']['fields']));_0x1df31a['attributes']=_0x1df31a[_0xae6a('0x3d')][_0xae6a('0x95')]?_0x1df31a[_0xae6a('0x3d')]:_0x4102f4[_0xae6a('0x3a')];if(!_0xc15337['query'][_0xae6a('0x96')](_0xae6a('0x97'))){_0x1df31a['limit']=qs[_0xae6a('0x29')](_0xc15337['query'][_0xae6a('0x29')]);_0x1df31a[_0xae6a('0x26')]=qs[_0xae6a('0x26')](_0xc15337['query'][_0xae6a('0x26')]);}_0x1df31a['order']=qs[_0xae6a('0x98')](_0xc15337[_0xae6a('0x37')][_0xae6a('0x98')]);_0x1df31a['where']=qs[_0xae6a('0x94')](_['pick'](_0xc15337[_0xae6a('0x37')],_0x4102f4[_0xae6a('0x94')]));_0x1df31a['where']['ChatInteractionId']=_0x2aa14e['id'];if(_0xc15337['query']['filter']){_0x1df31a[_0xae6a('0x99')]=_[_0xae6a('0x9a')](_0x1df31a[_0xae6a('0x99')],{'$or':_[_0xae6a('0x9b')](_0x1df31a[_0xae6a('0x3d')],function(_0x27d60e){var _0x5f3baf={};_0x5f3baf[_0x27d60e]={'$like':'%'+_0xc15337['query'][_0xae6a('0x9c')]+'%'};return _0x5f3baf;})});}if(_0xc15337[_0xae6a('0x37')][_0xae6a('0x9d')]){var _0x3c1174=_0xc15337['query'][_0xae6a('0x9d')][_0xae6a('0x9e')](',');var _0x37c322={};_0x37c322[_0x3c1174[0x0]]={'$gte':moment(_0x3c1174[0x1])[_0xae6a('0x7a')](_0xae6a('0x9f'))};_0x1df31a[_0xae6a('0x99')]=_[_0xae6a('0x9a')](_0x1df31a[_0xae6a('0x99')],_0x37c322);}_0x1df31a=_[_0xae6a('0x9a')]({},_0x1df31a,_0xc15337[_0xae6a('0x40')]);return db[_0xae6a('0x59')][_0xae6a('0x28')]({'where':_0x1df31a[_0xae6a('0x99')]})[_0xae6a('0x17')](function(_0x3ccf5d){_0x502b73['count']=_0x3ccf5d;if(_0xc15337[_0xae6a('0x37')]['includeAll']){_0x1df31a[_0xae6a('0xa0')]=[{'all':!![]}];}return db[_0xae6a('0x59')][_0xae6a('0x35')](_0x1df31a);})[_0xae6a('0x17')](function(_0x2a51f3){_0x502b73[_0xae6a('0xa1')]=_0x2a51f3;return _0x502b73;});}})['then'](respondWithFilteredResult(_0x4e2e2d,_0x1df31a))[_0xae6a('0x21')](handleError(_0x4e2e2d,null));};exports[_0xae6a('0xa2')]=function(_0x467efb,_0x46b413){var _0x2ee7b2={'where':{}},_0x1e618a={},_0x1a0101={'count':0x0,'rows':[]};return db[_0xae6a('0x3b')][_0xae6a('0x47')]({'where':{'id':_0x467efb['params']['id']}})[_0xae6a('0x17')](handleEntityNotFound(_0x46b413,null))[_0xae6a('0x17')](function(_0x58b88e){if(_0x58b88e){_0x1e618a[_0xae6a('0x3a')]=_['keys'](db[_0xae6a('0x59')][_0xae6a('0x31')]);_0x1e618a['query']=_['keys'](_0x467efb[_0xae6a('0x37')]);_0x1e618a[_0xae6a('0x94')]=_[_0xae6a('0x3e')](_0x1e618a[_0xae6a('0x3a')],_0x1e618a['query']);_0x2ee7b2['attributes']=_[_0xae6a('0x3e')](_0x1e618a[_0xae6a('0x3a')],qs['fields'](_0x467efb[_0xae6a('0x37')][_0xae6a('0x3f')]));_0x2ee7b2[_0xae6a('0x3d')]=_0x2ee7b2[_0xae6a('0x3d')][_0xae6a('0x95')]?_0x2ee7b2['attributes']:_0x1e618a[_0xae6a('0x3a')];if(!_0x467efb[_0xae6a('0x37')][_0xae6a('0x96')]('nolimit')){_0x2ee7b2[_0xae6a('0x29')]=qs[_0xae6a('0x29')](_0x467efb[_0xae6a('0x37')][_0xae6a('0x29')]);_0x2ee7b2[_0xae6a('0x26')]=qs['offset'](_0x467efb[_0xae6a('0x37')]['offset']);}_0x2ee7b2[_0xae6a('0xa3')]=qs['sort'](_0x467efb['query'][_0xae6a('0x98')]);_0x2ee7b2['where']=qs[_0xae6a('0x94')](_[_0xae6a('0xa4')](_0x467efb[_0xae6a('0x37')],_0x1e618a[_0xae6a('0x94')]));_0x2ee7b2[_0xae6a('0x99')][_0xae6a('0xa5')]=_0x58b88e['id'];if(_0x467efb['query'][_0xae6a('0x9c')]){_0x2ee7b2[_0xae6a('0x99')]=_[_0xae6a('0x9a')](_0x2ee7b2[_0xae6a('0x99')],{'$or':_['map'](_0x2ee7b2['attributes'],function(_0x2f8472){var _0xf46d66={};_0xf46d66[_0x2f8472]={'$like':'%'+_0x467efb[_0xae6a('0x37')]['filter']+'%'};return _0xf46d66;})});}_0x2ee7b2[_0xae6a('0x99')][_0xae6a('0xa6')]=![];if(_0x467efb[_0xae6a('0x37')]['id']){_0x2ee7b2['where']['id']={'$gt':_0x467efb[_0xae6a('0x37')]['id']};}_0x2ee7b2=_[_0xae6a('0x9a')]({},_0x2ee7b2,_0x467efb[_0xae6a('0x40')]);return db['ChatMessage'][_0xae6a('0x28')]({'where':_0x2ee7b2[_0xae6a('0x99')]})[_0xae6a('0x17')](function(_0x42dd4e){_0x1a0101['count']=_0x42dd4e;_0x2ee7b2[_0xae6a('0xa0')]=[];if(_0x467efb[_0xae6a('0x37')][_0xae6a('0xa7')]){_0x2ee7b2[_0xae6a('0xa0')]['push']({'model':db[_0xae6a('0x78')],'as':_0xae6a('0x78'),'attributes':['id',_0xae6a('0x4c'),_0xae6a('0x81')]});}if(_0x467efb['query'][_0xae6a('0xa8')]){_0x2ee7b2[_0xae6a('0xa0')]=[{'all':!![]}];}return db[_0xae6a('0x59')][_0xae6a('0x35')](_0x2ee7b2);})[_0xae6a('0x17')](function(_0x30737d){_0x1a0101['rows']=_0x30737d;return _0x1a0101;});}})['then'](respondWithFilteredResult(_0x46b413,_0x2ee7b2))[_0xae6a('0x21')](handleError(_0x46b413,null));};exports[_0xae6a('0xa9')]=function(_0x2bfc9a,_0x2bafb3){return db[_0xae6a('0x3b')][_0xae6a('0x41')]({'where':{'id':_0x2bfc9a[_0xae6a('0x43')]['id']}})[_0xae6a('0x17')](handleEntityNotFound(_0x2bafb3,null))[_0xae6a('0x17')](function(_0x85d6c5){if(_0x85d6c5){return _0x85d6c5['setTags'](_0x2bfc9a[_0xae6a('0x2d')][_0xae6a('0x92')],_['omit'](_0x2bfc9a[_0xae6a('0x2d')],['ids','id'])||{})[_0xae6a('0xaa')](function(){return db[_0xae6a('0xab')][_0xae6a('0x35')]({'attributes':['id',_0xae6a('0x2b'),_0xae6a('0xac')],'where':{'id':_0x2bfc9a[_0xae6a('0x2d')][_0xae6a('0x92')]}});})[_0xae6a('0x17')](function(_0x324adb){socket[_0xae6a('0xad')](_0xae6a('0xae'),{'id':Number(_0x2bfc9a['params']['id']),'tags':_0x324adb||[]});return{'id':Number(_0x2bfc9a['params']['id']),'tags':_0x324adb||[]};});}})[_0xae6a('0x17')](respondWithResult(_0x2bafb3,null))['catch'](handleError(_0x2bafb3,null));};exports[_0xae6a('0xaf')]=function(_0x354a3b,_0x246434){return db['ChatInteraction'][_0xae6a('0x41')]({'where':{'id':_0x354a3b[_0xae6a('0x43')]['id']}})[_0xae6a('0x17')](handleEntityNotFound(_0x246434,null))[_0xae6a('0x17')](function(_0x250ddb){if(_0x250ddb){return _0x250ddb[_0xae6a('0xaf')](_0x354a3b[_0xae6a('0x37')][_0xae6a('0x92')]);}})['then'](respondWithStatusCode(_0x246434,null))['catch'](handleError(_0x246434,null));};exports['download']=function(_0x585885,_0x16e591){var _0xcede78=moment()[_0xae6a('0xb0')]()[_0xae6a('0xb1')]();var _0x4b6e9d=path['join'](config[_0xae6a('0x6e')],'server','files','tmp');var _0x52be63=path[_0xae6a('0x70')](config[_0xae6a('0x6e')],_0xae6a('0xb2'),_0xae6a('0xb3'),_0xae6a('0xb4'));var _0x317b65=path['join'](_0x4b6e9d,_0xcede78);var _0x12c801=util[_0xae6a('0x7a')](_0xae6a('0xb5'),_0x585885[_0xae6a('0x43')]['id'],_0xcede78);var _0x105860=path[_0xae6a('0x70')](_0x4b6e9d,_0x12c801);var _0x3bcf83=[];_0x3bcf83[_0xae6a('0xb6')]({'model':db[_0xae6a('0x78')],'as':'User','attributes':['id',_0xae6a('0x4c')],'raw':!![]});_0x3bcf83[_0xae6a('0xb6')]({'model':db['CmContact'],'as':'Contact','attributes':['id',_0xae6a('0xb7'),_0xae6a('0xb8')],'raw':!![]});if(_0x585885[_0xae6a('0x37')][_0xae6a('0xb4')]){_0x3bcf83['push']({'model':db[_0xae6a('0x6a')],'as':'Attachment','raw':!![]});}var _0x5eba4b=[{'model':db[_0xae6a('0x59')],'as':_0xae6a('0x77'),'attributes':['id','body','createdAt',_0xae6a('0x85'),_0xae6a('0xa6'),_0xae6a('0xb9')],'include':_0x3bcf83}];_0x5eba4b['push']({'model':db[_0xae6a('0xba')],'as':_0xae6a('0xbb'),'attributes':['id',_0xae6a('0x2b')]});_0x5eba4b[_0xae6a('0xb6')]({'model':db['User'],'as':_0xae6a('0xbc'),'attributes':['id',_0xae6a('0x4c')]});return db[_0xae6a('0x3b')][_0xae6a('0x41')]({'where':{'id':_0x585885[_0xae6a('0x43')]['id']},'include':_0x5eba4b})[_0xae6a('0x17')](handleEntityNotFound(_0x16e591,null))[_0xae6a('0x17')](function(_0x5d0f25){if(_0x5d0f25){var _0x308352=_0x5d0f25['get']({'plain':!![]});fs[_0xae6a('0xbd')](_0x317b65);var _0x2a6113={'channel':_0xae6a('0xbe'),'account':_0x308352['Account']['name'],'agent':_0x308352[_0xae6a('0xbc')]?_0x308352[_0xae6a('0xbc')]['fullname']:'N.A.','createdAt':moment(_0x308352[_0xae6a('0xbf')])[_0xae6a('0x7a')]('YYYY-MM-DD\x20HH:mm:ss')[_0xae6a('0xb1')](),'closedAt':_0x308352[_0xae6a('0x6b')]?moment(_0x308352[_0xae6a('0xc0')])[_0xae6a('0x7a')]('YYYY-MM-DD\x20HH:mm:ss')[_0xae6a('0xb1')]():'','disposition':_0x308352['disposition'],'chatInfo':{'browser':_0x308352['browserName'],'os':_0x308352[_0xae6a('0xc1')],'referer':_0x308352[_0xae6a('0xc2')],'customerIp':_0x308352[_0xae6a('0xc3')],'customerPort':_0x308352[_0xae6a('0xc4')]?_0x308352[_0xae6a('0xc4')]:_0xae6a('0xc5')},'messages':_(_0x308352['Messages'])[_0xae6a('0xc6')]()['filter']({'secret':![]})['map'](function(_0x48d949){if(_0x48d949[_0xae6a('0x6a')]){var _0x28af58=path[_0xae6a('0x70')](_0x52be63,_0x48d949[_0xae6a('0x6a')][_0xae6a('0x67')]);if(fs[_0xae6a('0xc7')](_0x28af58)){fs['createReadStream'](_0x28af58)[_0xae6a('0xc8')](fs['createWriteStream'](path['join'](_0x317b65,_0x48d949[_0xae6a('0x6a')][_0xae6a('0x67')])));}}return{'date':moment(_0x48d949['createdAt'])[_0xae6a('0x7a')]('YYYY-MM-DD\x20HH:mm:ss')[_0xae6a('0xb1')](),'sender':_0x48d949[_0xae6a('0x85')]===_0xae6a('0xc9')?_0x48d949['User']?_0x48d949[_0xae6a('0x78')][_0xae6a('0x4c')]:_0xae6a('0x80'):_0x48d949[_0xae6a('0xca')][_0xae6a('0xb7')]+(_0x48d949[_0xae6a('0xca')][_0xae6a('0xb8')]?'\x20'+_0x48d949[_0xae6a('0xca')][_0xae6a('0xb8')]:''),'body':_0x48d949[_0xae6a('0x6a')]?_0x48d949[_0xae6a('0x6a')][_0xae6a('0x67')]:_0x48d949[_0xae6a('0x2d')],'direction':_0x48d949['direction']===_0xae6a('0xc9')?'A':'C','secret':_0x48d949[_0xae6a('0xa6')],'read':_0x48d949[_0xae6a('0xb9')],'attachment':_0x48d949['Attachment']};})[_0xae6a('0xcb')]()};return ejs[_0xae6a('0xcc')](path[_0xae6a('0x70')](config[_0xae6a('0x6e')],_0xae6a('0xb2'),_0xae6a('0xcd'),_0xae6a('0xce')),{'interaction':_0x2a6113})['then'](function(_0x324b90){var _0x575dfe=path[_0xae6a('0x70')](_0x317b65,_0xae6a('0xcf')+_0x308352['id']+'-'+_0xcede78+'.pdf');var _0x3024df={'path':_0x575dfe,'channel':_0xae6a('0xbe'),'interactionId':_0x308352['id']};return pdf[_0xae6a('0xd0')](_0x324b90,_0x3024df);})[_0xae6a('0x17')](function(){return new Promise(function(_0x4af8bd,_0x2721d3){zipdir(_0x317b65,{'saveTo':_0x105860},function(_0x4fea87,_0x2a9af6){if(_0x4fea87)return _0x2721d3(_0x4fea87);return _0x4af8bd(_0x2a9af6);});})['then'](function(){return new BPromise(function(_0x282223,_0x2ccf18){rimraf(_0x317b65,function(_0x41dfee){if(_0x41dfee)_0x2ccf18(_0x41dfee);return _0x282223();});});})[_0xae6a('0x17')](function(){return _0x16e591[_0xae6a('0x72')](_0x105860,_0x12c801,function(_0x2ff712){if(_0x2ff712){logger[_0xae6a('0x1d')](_0xae6a('0xd1'),_0x2ff712);}else{fs[_0xae6a('0xd2')](_0x105860);}});});});}else{return _0x16e591[_0xae6a('0x22')](0xc8);}})[_0xae6a('0x21')](handleError(_0x16e591,null));};