Built motion from commit da617fac.|2.6.6
[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 _0x6e8f=['ChatInteraction','rawAttributes','fieldName','type','key','getOptions','chat','query','user','show','params','model','keys','attributes','fields','length','includeAll','options','create','update','find','describe','createVidaooSession','findOne','ChatWebsite','vidaooApiKey','vidaooEscalation','vidaooNote','email','account','POST','https://api-vidaoo.xcally.com/api/v1/meetings','vidaooTopic','isNull','follow','vidaooMetadata','parse','metadata','Sequelize','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','Error\x20in\x20Vidaoo\x20configuration','join_url','out','ChatMessage','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','customUpdate','Contact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','UserId','Interaction\x20already\x20assigned','closed','disposition','AbandonInteraction','attachmentUpload','basename','file','filename','mimetype','Attachment','attachmentDownload','Unauthorized','join','server/files/attachments/','offline-chat/','download','close','mailTranscript','root','server/files/chat/upload/','transcript-%s.txt','now','Messages','User','ChatWebsiteId','ContactId','format','agentAlias','System','customer','%s%d','Visitor','agentIdentifier','website_alias','agent_alias','fullname','agent_fullname','[%s]\x20%s:\x20%s\x0a','createdAt','direction','appendFileSync','MailAccount','MailServerOut','Smtp','CloudProvider','getSmtpOptions','SendMail','sendMail','\x22%s\x22\x20<%s>','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','ids','intersection','hasOwnProperty','nolimit','order','sort','where','filters','pick','ChatInteractionId','filter','$gte','split','YYYY-MM-DD\x20HH:mm:ss','include','findAll','getMyMessages','secret','includeAgent','push','alias','rows','addTags','setTags','omit','spread','Tag','color','emit','removeTags','unix','toString','server','files','CmContact','lastName','Account','mkdirSync','Chat','Owner','N.A.','osName','referer','customerIp','existsSync','createReadStream','pipe','createWriteStream','value','renderFile','.pdf','err','unlinkSync','rimraf','request-promise','util','path','ejs','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','localhost','./chatInteraction.socket','register','jayson/promise','http','request','then','info','ChatInteraction,\x20%s,\x20%s','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','catch','sendStatus','status','end','json','undefined','limit','offset','count','set','destroy','stack','name','send','render','merge','body','contact','agent','interaction','index','map'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x6e8f,0x16f));var _0xf6e8=function(_0xf0ebae,_0x4c6b6f){_0xf0ebae=_0xf0ebae-0x0;var _0x2588ff=_0x6e8f[_0xf0ebae];return _0x2588ff;};'use strict';var rimraf=require(_0xf6e8('0x0'));var zipdir=require('zip-dir');var rp=require(_0xf6e8('0x1'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xf6e8('0x2'));var path=require(_0xf6e8('0x3'));var ejs=require(_0xf6e8('0x4'));var fs=require('fs');var _=require(_0xf6e8('0x5'));var Redis=require(_0xf6e8('0x6'));var interaction=require(_0xf6e8('0x7'));var qs=require(_0xf6e8('0x8'));var pdf=require('../../components/export/pdf');var logger=require(_0xf6e8('0x9'))(_0xf6e8('0xa'));var config=require(_0xf6e8('0xb'));var db=require(_0xf6e8('0xc'))['db'];config['redis']=_['defaults'](config[_0xf6e8('0xd')],{'host':_0xf6e8('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xf6e8('0xd')]));require(_0xf6e8('0xf'))[_0xf6e8('0x10')](socket);var jayson=require(_0xf6e8('0x11'));var client=jayson['client'][_0xf6e8('0x12')]({'port':0x232b});var client9004=jayson['client'][_0xf6e8('0x12')]({'port':0x232c});function respondWithRpcPromise(_0x1a882b,_0x2805e6,_0x2465b0,_0x44b71f){return new BPromise(function(_0x51cd0a,_0x5ab3d2){var _0x492984=_0x44b71f||client;return _0x492984[_0xf6e8('0x13')](_0x1a882b,_0x2465b0)[_0xf6e8('0x14')](function(_0x4d2fbf){logger[_0xf6e8('0x15')](_0xf6e8('0x16'),_0x2805e6,'request\x20sent');logger[_0xf6e8('0x17')](_0xf6e8('0x18'),_0x2805e6,_0xf6e8('0x19'),JSON[_0xf6e8('0x1a')](_0x4d2fbf));if(_0x4d2fbf['error']){if(_0x4d2fbf['error']['code']===0x1f4){logger[_0xf6e8('0x1b')](_0xf6e8('0x16'),_0x2805e6,_0x4d2fbf['error'][_0xf6e8('0x1c')]);return _0x5ab3d2(_0x4d2fbf['error'][_0xf6e8('0x1c')]);}logger[_0xf6e8('0x1b')](_0xf6e8('0x16'),_0x2805e6,_0x4d2fbf['error'][_0xf6e8('0x1c')]);return _0x51cd0a(_0x4d2fbf[_0xf6e8('0x1b')][_0xf6e8('0x1c')]);}else{logger[_0xf6e8('0x15')](_0xf6e8('0x16'),_0x2805e6,'request\x20sent');_0x51cd0a(_0x4d2fbf['result'][_0xf6e8('0x1c')]);}})[_0xf6e8('0x1d')](function(_0x3ce618){logger[_0xf6e8('0x1b')]('ChatInteraction,\x20%s,\x20%s',_0x2805e6,_0x3ce618);_0x5ab3d2(_0x3ce618);});});}function respondWithStatusCode(_0xc45546,_0x107138){_0x107138=_0x107138||0xcc;return function(_0x42dabd){if(_0x42dabd){return _0xc45546[_0xf6e8('0x1e')](_0x107138);}return _0xc45546[_0xf6e8('0x1f')](_0x107138)[_0xf6e8('0x20')]();};}function respondWithResult(_0x223d37,_0x2e33cf){_0x2e33cf=_0x2e33cf||0xc8;return function(_0x1cf75d){if(_0x1cf75d){return _0x223d37[_0xf6e8('0x1f')](_0x2e33cf)[_0xf6e8('0x21')](_0x1cf75d);}};}function respondWithFilteredResult(_0x4a55f8,_0x38376f){return function(_0x742f22){if(_0x742f22){var _0x26536e=typeof _0x38376f['offset']===_0xf6e8('0x22')&&typeof _0x38376f[_0xf6e8('0x23')]===_0xf6e8('0x22');var _0x4d257f=_0x742f22['count'];var _0x1c7a9a=_0x26536e?0x0:_0x38376f[_0xf6e8('0x24')];var _0x4ae81c=_0x26536e?_0x742f22[_0xf6e8('0x25')]:_0x38376f['offset']+_0x38376f[_0xf6e8('0x23')];var _0x55100d;if(_0x4ae81c>=_0x4d257f){_0x4ae81c=_0x4d257f;_0x55100d=0xc8;}else{_0x55100d=0xce;}_0x4a55f8[_0xf6e8('0x1f')](_0x55100d);return _0x4a55f8[_0xf6e8('0x26')]('Content-Range',_0x1c7a9a+'-'+_0x4ae81c+'/'+_0x4d257f)[_0xf6e8('0x21')](_0x742f22);}return null;};}function saveUpdates(_0x29dcae){return function(_0x1e0265){if(_0x1e0265){return _0x1e0265['update'](_0x29dcae)[_0xf6e8('0x14')](function(_0x310ce7){return _0x310ce7;});}return null;};}function removeEntity(_0x1d9349){return function(_0xb0fe0e){if(_0xb0fe0e){return _0xb0fe0e[_0xf6e8('0x27')]()[_0xf6e8('0x14')](function(){_0x1d9349['status'](0xcc)[_0xf6e8('0x20')]();});}};}function handleEntityNotFound(_0x3c7730){return function(_0x1acc32){if(!_0x1acc32){_0x3c7730[_0xf6e8('0x1e')](0x194);}return _0x1acc32;};}function handleError(_0x3cb002,_0x28e966){_0x28e966=_0x28e966||0x1f4;return function(_0x4487f4){logger['error'](_0x4487f4[_0xf6e8('0x28')]);if(_0x4487f4[_0xf6e8('0x29')]){delete _0x4487f4['name'];}_0x3cb002[_0xf6e8('0x1f')](_0x28e966)[_0xf6e8('0x2a')](_0x4487f4);};}function getMustacheRender(_0xf34fea,_0xaa9867){return Mustache[_0xf6e8('0x2b')](_0xf34fea,_[_0xf6e8('0x2c')](_0xaa9867[_0xf6e8('0x2d')],{'contact':_0xaa9867[_0xf6e8('0x2e')],'message':_0xaa9867[_0xf6e8('0x1c')],'agent':_0xaa9867[_0xf6e8('0x2f')],'interaction':_0xaa9867[_0xf6e8('0x30')],'account':_0xaa9867['account']}))||'';}exports[_0xf6e8('0x31')]=function(_0xe978a2,_0x4b054d){var _0x532192={};var _0x551f05=_[_0xf6e8('0x32')](db[_0xf6e8('0x33')][_0xf6e8('0x34')],function(_0x3e7df1){return{'name':_0x3e7df1[_0xf6e8('0x35')],'type':_0x3e7df1[_0xf6e8('0x36')][_0xf6e8('0x37')]};});_0x532192=qs[_0xf6e8('0x38')](_0x551f05,_0xe978a2);return interaction['findAll'](_0xf6e8('0x39'),_0xe978a2[_0xf6e8('0x3a')],_0xe978a2[_0xf6e8('0x3b')],_0x532192,_0x551f05)[_0xf6e8('0x14')](respondWithFilteredResult(_0x4b054d,_0x532192))['catch'](handleError(_0x4b054d,null));};exports[_0xf6e8('0x3c')]=function(_0x42c844,_0x3363cb){var _0x6194dc={'raw':![],'where':{'id':_0x42c844[_0xf6e8('0x3d')]['id']}},_0x187a5d={};_0x187a5d[_0xf6e8('0x3e')]=_[_0xf6e8('0x3f')](db[_0xf6e8('0x33')][_0xf6e8('0x34')]);_0x187a5d[_0xf6e8('0x3a')]=_[_0xf6e8('0x3f')](_0x42c844[_0xf6e8('0x3a')]);_0x187a5d['filters']=_['intersection'](_0x187a5d[_0xf6e8('0x3e')],_0x187a5d['query']);_0x6194dc[_0xf6e8('0x40')]=_['intersection'](_0x187a5d[_0xf6e8('0x3e')],qs['fields'](_0x42c844['query'][_0xf6e8('0x41')]));_0x6194dc['attributes']=_0x6194dc[_0xf6e8('0x40')][_0xf6e8('0x42')]?_0x6194dc['attributes']:_0x187a5d[_0xf6e8('0x3e')];if(_0x42c844[_0xf6e8('0x3a')][_0xf6e8('0x43')]){_0x6194dc['include']=[{'all':!![]}];}_0x6194dc=_[_0xf6e8('0x2c')]({},_0x6194dc,_0x42c844[_0xf6e8('0x44')]);return db[_0xf6e8('0x33')]['find'](_0x6194dc)[_0xf6e8('0x14')](handleEntityNotFound(_0x3363cb,null))[_0xf6e8('0x14')](respondWithResult(_0x3363cb,null))[_0xf6e8('0x1d')](handleError(_0x3363cb,null));};exports[_0xf6e8('0x45')]=function(_0x1e452d,_0x407a39){return db[_0xf6e8('0x33')][_0xf6e8('0x45')](_0x1e452d[_0xf6e8('0x2d')],{})[_0xf6e8('0x14')](respondWithResult(_0x407a39,0xc9))[_0xf6e8('0x1d')](handleError(_0x407a39,null));};exports[_0xf6e8('0x46')]=function(_0x5a3c27,_0xcbfa86){if(_0x5a3c27['body']['id']){delete _0x5a3c27[_0xf6e8('0x2d')]['id'];}return db[_0xf6e8('0x33')][_0xf6e8('0x47')]({'where':{'id':_0x5a3c27[_0xf6e8('0x3d')]['id']}})[_0xf6e8('0x14')](handleEntityNotFound(_0xcbfa86,null))['then'](saveUpdates(_0x5a3c27[_0xf6e8('0x2d')],null))[_0xf6e8('0x14')](respondWithResult(_0xcbfa86,null))['catch'](handleError(_0xcbfa86,null));};exports[_0xf6e8('0x27')]=function(_0x52ea89,_0x12e507){return db[_0xf6e8('0x33')][_0xf6e8('0x47')]({'where':{'id':_0x52ea89['params']['id']}})[_0xf6e8('0x14')](handleEntityNotFound(_0x12e507,null))['then'](removeEntity(_0x12e507,null))[_0xf6e8('0x1d')](handleError(_0x12e507,null));};exports[_0xf6e8('0x48')]=function(_0x8e501a,_0x30570c){return db[_0xf6e8('0x33')]['describe']()[_0xf6e8('0x14')](respondWithResult(_0x30570c,null))[_0xf6e8('0x1d')](handleError(_0x30570c,null));};exports[_0xf6e8('0x49')]=function(_0x50fa7a,_0x3c008f){var _0x217bc8=_0x50fa7a[_0xf6e8('0x3d')]['id'];var _0xcda1ad;var _0x5dc90b;var _0x3c8ec2;return db['ChatInteraction'][_0xf6e8('0x4a')]({'where':{'id':_0x217bc8}})[_0xf6e8('0x14')](function(_0x2f9ee0){_0xcda1ad=_0x2f9ee0;return db[_0xf6e8('0x4b')][_0xf6e8('0x4a')]({'where':{'id':_0x2f9ee0['ChatWebsiteId']},'attributes':['id',_0xf6e8('0x4c'),_0xf6e8('0x4d'),'vidaooTopic',_0xf6e8('0x4e'),'vidaooMetadata'],'raw':!![]});})[_0xf6e8('0x14')](function(_0x9d9a34){if(_0x9d9a34&&_0x9d9a34[_0xf6e8('0x4c')]&&_0x9d9a34['vidaooEscalation']){_0x5dc90b=_0x9d9a34;var _0x1ee590={'interaction':{'id':_0x217bc8},'agent':{'id':_0x50fa7a[_0xf6e8('0x3b')]['id'],'name':_0x50fa7a[_0xf6e8('0x3b')][_0xf6e8('0x29')],'fullname':_0x50fa7a[_0xf6e8('0x3b')]['fullname'],'email':_0x50fa7a[_0xf6e8('0x3b')][_0xf6e8('0x4f')]},'contact':_0x50fa7a[_0xf6e8('0x2d')]['contact'],'account':_0x50fa7a[_0xf6e8('0x2d')][_0xf6e8('0x50')]};var _0x396845={'rejectUnauthorized':![],'method':_0xf6e8('0x51'),'url':_0xf6e8('0x52'),'headers':{'X-APIKEY':_0x9d9a34[_0xf6e8('0x4c')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x50fa7a[_0xf6e8('0x3b')][_0xf6e8('0x4f')]],'buttons':null,'topic':_0x5dc90b[_0xf6e8('0x53')],'note':_[_0xf6e8('0x54')](_0x5dc90b['vidaooNote'])?null:getMustacheRender(_0x5dc90b['vidaooNote'],_0x1ee590),'metadata':null},'redirect':_0xf6e8('0x55'),'json':!![]};try{if(!_[_0xf6e8('0x54')](_0x5dc90b[_0xf6e8('0x56')])){var _0x342aeb=getMustacheRender(_0x5dc90b[_0xf6e8('0x56')],_0x1ee590);var _0x42f536=JSON[_0xf6e8('0x57')](_0x342aeb);_0x396845[_0xf6e8('0x2d')][_0xf6e8('0x58')]=_0x42f536;}}catch(_0x23ec6f){throw new db[(_0xf6e8('0x59'))][(_0xf6e8('0x5a'))](_0xf6e8('0x5b'));}return rp(_0x396845);}else{throw new db[(_0xf6e8('0x59'))]['ValidationError'](_0xf6e8('0x5c'));}})['then'](function(_0xa80fc1){_0x3c8ec2=_0xa80fc1;if(_0x3c8ec2['id']){var _0xa5adaf={'body':_0x3c8ec2[_0xf6e8('0x5d')],'ChatWebsiteId':_0x5dc90b['id'],'ChatInteractionId':_0xcda1ad['id'],'direction':_0xf6e8('0x5e'),'UserId':_0x50fa7a['user']['id']};return db[_0xf6e8('0x5f')][_0xf6e8('0x45')](_0xa5adaf,{});}else{throw new db[(_0xf6e8('0x59'))][(_0xf6e8('0x5a'))](_0xf6e8('0x60'));}})[_0xf6e8('0x14')](function(){return _0xcda1ad[_0xf6e8('0x61')]({'vidaooSessionId':_0x3c8ec2['id']});})[_0xf6e8('0x14')](respondWithResult(_0x3c008f,null))[_0xf6e8('0x1d')](handleError(_0x3c008f,null));};exports[_0xf6e8('0x62')]=function(_0x511bb2,_0x270812){if(_0x511bb2['body']['id']){delete _0x511bb2[_0xf6e8('0x2d')]['id'];}return db[_0xf6e8('0x33')]['find']({'where':{'id':_0x511bb2[_0xf6e8('0x3d')]['id']},'include':[{'model':db['CmContact'],'as':_0xf6e8('0x63')}]})[_0xf6e8('0x14')](handleEntityNotFound(_0x270812,null))[_0xf6e8('0x14')](saveUpdates(_0x511bb2[_0xf6e8('0x2d')],null))[_0xf6e8('0x14')](respondWithResult(_0x270812,null))[_0xf6e8('0x1d')](handleError(_0x270812,null));};exports[_0xf6e8('0x64')]=function(_0x797d9f,_0x192dca){if(_0x797d9f[_0xf6e8('0x2d')]['id']){delete _0x797d9f[_0xf6e8('0x2d')]['id'];}return db[_0xf6e8('0x33')][_0xf6e8('0x47')]({'where':{'id':_0x797d9f[_0xf6e8('0x3d')]['id']}})[_0xf6e8('0x14')](function(_0x4a6908){if(!_0x4a6908){logger['error'](_0xf6e8('0x65'),_0xf6e8('0x64'),0x194,_0xf6e8('0x66'));_0x192dca[_0xf6e8('0x1e')](0x194);}else{if(_0x4a6908[_0xf6e8('0x67')]){throw new db['Sequelize'][(_0xf6e8('0x5a'))](_0xf6e8('0x68'));}}return _0x4a6908;})[_0xf6e8('0x14')](function(_0x4e1359){if(_0x4e1359){return _0x4e1359[_0xf6e8('0x46')]({'closed':_0x797d9f[_0xf6e8('0x2d')][_0xf6e8('0x69')],'disposition':_0x797d9f['body'][_0xf6e8('0x6a')]})[_0xf6e8('0x14')](function(_0x2eceac){return _0x2eceac;});}})[_0xf6e8('0x14')](function(){return respondWithRpcPromise(_0xf6e8('0x6b'),_0xf6e8('0x64'),_0x797d9f[_0xf6e8('0x2d')],client9004);})[_0xf6e8('0x14')](respondWithResult(_0x192dca,null))['catch'](handleError(_0x192dca,null));};exports[_0xf6e8('0x6c')]=function(_0x15a0b0,_0x16a84a){_0x15a0b0[_0xf6e8('0x2d')][_0xf6e8('0x29')]=_0x15a0b0['file']['originalname'];_0x15a0b0[_0xf6e8('0x2d')][_0xf6e8('0x6d')]=_0x15a0b0[_0xf6e8('0x6e')][_0xf6e8('0x6f')];_0x15a0b0[_0xf6e8('0x2d')][_0xf6e8('0x36')]=_0x15a0b0[_0xf6e8('0x6e')][_0xf6e8('0x70')];return db[_0xf6e8('0x71')][_0xf6e8('0x45')](_0x15a0b0[_0xf6e8('0x2d')])['then'](respondWithResult(_0x16a84a,0xc9))[_0xf6e8('0x1d')](handleError(_0x16a84a,null));};exports[_0xf6e8('0x72')]=function(_0x2f61e8,_0x593718){return db[_0xf6e8('0x33')][_0xf6e8('0x4a')]({'where':{'id':_0x2f61e8[_0xf6e8('0x3d')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x593718,null))['then'](function(_0x487cd3){if(_0x487cd3){if(_0x487cd3[_0xf6e8('0x69')]){return _0x593718[_0xf6e8('0x1f')](0x193)[_0xf6e8('0x21')]({'status':0x193,'message':_0xf6e8('0x73')});}return db[_0xf6e8('0x71')]['findOne']({'where':{'id':_0x2f61e8[_0xf6e8('0x3a')]['attachId']},'raw':!![]})[_0xf6e8('0x14')](handleEntityNotFound(_0x593718,null));}})[_0xf6e8('0x14')](function(_0x109b4c){if(_0x109b4c){var _0xe59481=_0x109b4c['ChatOfflineMessageId']!==null;var _0x12a615=path[_0xf6e8('0x74')](config['root'],_0xf6e8('0x75'));if(_0xe59481){_0x12a615=path['join'](_0x12a615,_0xf6e8('0x76'));}var _0x5c7dce=path['join'](_0x12a615,_0x109b4c[_0xf6e8('0x6d')]);return _0x593718[_0xf6e8('0x77')](_0x5c7dce);}})[_0xf6e8('0x1d')](handleError(_0x593718,null));};exports[_0xf6e8('0x78')]=function(_0x307b96,_0x32b671){var _0x516fd4=null;var _0x5dd13c=null;var _0x299a93=null;if(_0x307b96[_0xf6e8('0x2d')]['id']){delete _0x307b96[_0xf6e8('0x2d')]['id'];}if(_0x307b96['body'][_0xf6e8('0x79')]){_0x299a93=path[_0xf6e8('0x74')](config[_0xf6e8('0x7a')],_0xf6e8('0x7b'),util['format'](_0xf6e8('0x7c'),Date[_0xf6e8('0x7d')]()));_0x307b96[_0xf6e8('0x2d')]['pathTranscript']=_0x299a93;}return db[_0xf6e8('0x33')]['find']({'where':{'id':_0x307b96['params']['id']},'include':[{'model':db[_0xf6e8('0x5f')],'as':_0xf6e8('0x7e'),'include':[{'model':db[_0xf6e8('0x7f')],'as':_0xf6e8('0x7f')}]}]})['then'](handleEntityNotFound(_0x32b671,null))[_0xf6e8('0x14')](saveUpdates(_0x307b96[_0xf6e8('0x2d')],null))[_0xf6e8('0x14')](function(_0x38b131){if(_0x38b131){_0x516fd4=_0x38b131;return db[_0xf6e8('0x4b')][_0xf6e8('0x47')]({'where':{'id':_0x516fd4[_0xf6e8('0x80')]}});}})['then'](function(_0x1569cc){if(_0x1569cc){_0x5dd13c=_0x1569cc;return db['CmContact'][_0xf6e8('0x47')]({'where':{'id':_0x516fd4[_0xf6e8('0x81')]}});}})['then'](function(_0x3edcf2){if(_0x3edcf2){if(_0x299a93){var _0x2d8767=null;for(var _0x2dba89=0x1;_0x2dba89<_0x516fd4[_0xf6e8('0x7e')][_0xf6e8('0x42')];++_0x2dba89){_0x2d8767=_0x516fd4['Messages'][_0x2dba89];var _0x4729b9=_0x2d8767['UserId']?util[_0xf6e8('0x82')]('%s%d',_0x5dd13c[_0xf6e8('0x83')],_0x2d8767[_0xf6e8('0x67')]):_0xf6e8('0x84');var _0x4fe4f8=_0x307b96[_0xf6e8('0x2d')][_0xf6e8('0x85')]||util['format'](_0xf6e8('0x86'),_0xf6e8('0x87'),_0x2d8767[_0xf6e8('0x81')]);switch(_0x5dd13c[_0xf6e8('0x88')]){case _0xf6e8('0x89'):_0x4729b9=_0x2d8767['UserId']?util[_0xf6e8('0x82')](_0xf6e8('0x86'),_0x5dd13c[_0xf6e8('0x83')],_0x2d8767[_0xf6e8('0x67')]):'System';break;case _0xf6e8('0x8a'):_0x4729b9=_0x2d8767[_0xf6e8('0x67')]?_0x2d8767[_0xf6e8('0x7f')]['alias']||_0x2d8767[_0xf6e8('0x7f')][_0xf6e8('0x8b')]:_0xf6e8('0x84');break;case _0xf6e8('0x8c'):_0x4729b9=_0x2d8767[_0xf6e8('0x67')]?_0x2d8767[_0xf6e8('0x7f')][_0xf6e8('0x8b')]:_0xf6e8('0x84');break;default:_0x4729b9=_0x2d8767[_0xf6e8('0x67')]?util['format'](_0xf6e8('0x86'),_0x5dd13c[_0xf6e8('0x83')],_0x2d8767['UserId']):'System';}var _0x45a3fb=util[_0xf6e8('0x82')](_0xf6e8('0x8d'),moment(_0x2d8767[_0xf6e8('0x8e')])[_0xf6e8('0x82')]('MM/DD/YYYY\x20HH:mm:ss'),_0x2d8767[_0xf6e8('0x8f')]==='in'?_0x4fe4f8:_0x4729b9,_0x2d8767['body']);if(!_0x2d8767['secret']){fs[_0xf6e8('0x90')](_0x299a93,_0x45a3fb);}}return db[_0xf6e8('0x91')][_0xf6e8('0x4a')]({'where':{'service':!![]},'include':[{'model':db[_0xf6e8('0x92')],'as':_0xf6e8('0x93'),'raw':!![],'include':[{'model':db[_0xf6e8('0x94')],'as':_0xf6e8('0x94'),'raw':!![]}]}]});}}})['then'](function(_0x3db798){if(!_0x3db798||!_0x3db798[_0xf6e8('0x93')]||!_0x307b96[_0xf6e8('0x2d')])return _0x516fd4;var _0x38a3f1=_0x3db798[_0xf6e8('0x95')]();return respondWithRpcPromise(_0xf6e8('0x96'),_0xf6e8('0x97'),{'account':_0x38a3f1,'message':{'from':util[_0xf6e8('0x82')](_0xf6e8('0x98'),_0x3db798[_0xf6e8('0x29')],_0x3db798[_0xf6e8('0x4f')]||_0x3db798[_0xf6e8('0x93')][_0xf6e8('0x3b')]),'to':_0x307b96[_0xf6e8('0x2d')]['mailTranscript'],'subject':_0xf6e8('0x99'),'text':util[_0xf6e8('0x82')](_0xf6e8('0x9a'),_0x307b96['body'][_0xf6e8('0x79')]),'attachments':[{'path':_0x299a93}]}})[_0xf6e8('0x14')](function(){return _0x516fd4;})[_0xf6e8('0x1d')](function(_0x37e9ae){logger['error'](_0x37e9ae);});})[_0xf6e8('0x14')](respondWithStatusCode(_0x32b671,0xc8))['catch'](handleError(_0x32b671,null));};exports[_0xf6e8('0x9b')]=function(_0x2c8ace,_0x2014e6){return db[_0xf6e8('0x5f')]['find']({'where':{'id':_0x2c8ace[_0xf6e8('0x3d')]['id']}})[_0xf6e8('0x14')](handleEntityNotFound(_0x2014e6,null))[_0xf6e8('0x14')](function(_0x4a242d){if(_0x4a242d){return _0x4a242d['addMessage'](_0x2c8ace[_0xf6e8('0x2d')][_0xf6e8('0x9c')],_['omit'](_0x2c8ace['body'],['ids','id'])||{});}})[_0xf6e8('0x14')](respondWithResult(_0x2014e6,null))[_0xf6e8('0x1d')](handleError(_0x2014e6,null));};exports['getMessages']=function(_0x2caa89,_0x451ea7){var _0x213a07={'raw':![],'where':{}};var _0x5ee162={};var _0x122a00={'count':0x0,'rows':[]};return db[_0xf6e8('0x33')]['findOne']({'where':{'id':_0x2caa89['params']['id']}})[_0xf6e8('0x14')](handleEntityNotFound(_0x451ea7,null))['then'](function(_0x52d113){if(_0x52d113){_0x5ee162[_0xf6e8('0x3e')]=_[_0xf6e8('0x3f')](db[_0xf6e8('0x5f')][_0xf6e8('0x34')]);_0x5ee162[_0xf6e8('0x3a')]=_['keys'](_0x2caa89[_0xf6e8('0x3a')]);_0x5ee162['filters']=_[_0xf6e8('0x9d')](_0x5ee162[_0xf6e8('0x3e')],_0x5ee162[_0xf6e8('0x3a')]);_0x213a07[_0xf6e8('0x40')]=_[_0xf6e8('0x9d')](_0x5ee162[_0xf6e8('0x3e')],qs['fields'](_0x2caa89['query'][_0xf6e8('0x41')]));_0x213a07['attributes']=_0x213a07[_0xf6e8('0x40')][_0xf6e8('0x42')]?_0x213a07['attributes']:_0x5ee162[_0xf6e8('0x3e')];if(!_0x2caa89[_0xf6e8('0x3a')][_0xf6e8('0x9e')](_0xf6e8('0x9f'))){_0x213a07[_0xf6e8('0x23')]=qs[_0xf6e8('0x23')](_0x2caa89[_0xf6e8('0x3a')]['limit']);_0x213a07[_0xf6e8('0x24')]=qs[_0xf6e8('0x24')](_0x2caa89[_0xf6e8('0x3a')][_0xf6e8('0x24')]);}_0x213a07[_0xf6e8('0xa0')]=qs[_0xf6e8('0xa1')](_0x2caa89[_0xf6e8('0x3a')]['sort']);_0x213a07[_0xf6e8('0xa2')]=qs[_0xf6e8('0xa3')](_[_0xf6e8('0xa4')](_0x2caa89[_0xf6e8('0x3a')],_0x5ee162[_0xf6e8('0xa3')]));_0x213a07[_0xf6e8('0xa2')][_0xf6e8('0xa5')]=_0x52d113['id'];if(_0x2caa89[_0xf6e8('0x3a')][_0xf6e8('0xa6')]){_0x213a07[_0xf6e8('0xa2')]=_['merge'](_0x213a07[_0xf6e8('0xa2')],{'$or':_[_0xf6e8('0x32')](_0x213a07['attributes'],function(_0x7e1ed6){var _0x3a2a5a={};_0x3a2a5a[_0x7e1ed6]={'$like':'%'+_0x2caa89['query'][_0xf6e8('0xa6')]+'%'};return _0x3a2a5a;})});}if(_0x2caa89[_0xf6e8('0x3a')]['$gte']){var _0x597e04=_0x2caa89['query'][_0xf6e8('0xa7')][_0xf6e8('0xa8')](',');var _0x9ae1c3={};_0x9ae1c3[_0x597e04[0x0]]={'$gte':moment(_0x597e04[0x1])['format'](_0xf6e8('0xa9'))};_0x213a07['where']=_['merge'](_0x213a07['where'],_0x9ae1c3);}_0x213a07=_['merge']({},_0x213a07,_0x2caa89[_0xf6e8('0x44')]);return db['ChatMessage']['count']({'where':_0x213a07[_0xf6e8('0xa2')]})[_0xf6e8('0x14')](function(_0x1f1903){_0x122a00[_0xf6e8('0x25')]=_0x1f1903;if(_0x2caa89['query']['includeAll']){_0x213a07[_0xf6e8('0xaa')]=[{'all':!![]}];}return db[_0xf6e8('0x5f')][_0xf6e8('0xab')](_0x213a07);})[_0xf6e8('0x14')](function(_0x3440d2){_0x122a00['rows']=_0x3440d2;return _0x122a00;});}})[_0xf6e8('0x14')](respondWithFilteredResult(_0x451ea7,_0x213a07))[_0xf6e8('0x1d')](handleError(_0x451ea7,null));};exports[_0xf6e8('0xac')]=function(_0x2abf38,_0x2ea641){var _0x406ce4={'where':{}},_0x583c7c={},_0xb99f4={'count':0x0,'rows':[]};return db[_0xf6e8('0x33')][_0xf6e8('0x4a')]({'where':{'id':_0x2abf38['params']['id']}})[_0xf6e8('0x14')](handleEntityNotFound(_0x2ea641,null))['then'](function(_0x2fa6fd){if(_0x2fa6fd){_0x583c7c[_0xf6e8('0x3e')]=_[_0xf6e8('0x3f')](db['ChatMessage'][_0xf6e8('0x34')]);_0x583c7c['query']=_[_0xf6e8('0x3f')](_0x2abf38['query']);_0x583c7c[_0xf6e8('0xa3')]=_['intersection'](_0x583c7c['model'],_0x583c7c['query']);_0x406ce4[_0xf6e8('0x40')]=_[_0xf6e8('0x9d')](_0x583c7c[_0xf6e8('0x3e')],qs['fields'](_0x2abf38[_0xf6e8('0x3a')][_0xf6e8('0x41')]));_0x406ce4[_0xf6e8('0x40')]=_0x406ce4[_0xf6e8('0x40')][_0xf6e8('0x42')]?_0x406ce4[_0xf6e8('0x40')]:_0x583c7c['model'];if(!_0x2abf38[_0xf6e8('0x3a')][_0xf6e8('0x9e')](_0xf6e8('0x9f'))){_0x406ce4['limit']=qs[_0xf6e8('0x23')](_0x2abf38[_0xf6e8('0x3a')][_0xf6e8('0x23')]);_0x406ce4[_0xf6e8('0x24')]=qs['offset'](_0x2abf38[_0xf6e8('0x3a')][_0xf6e8('0x24')]);}_0x406ce4[_0xf6e8('0xa0')]=qs[_0xf6e8('0xa1')](_0x2abf38['query']['sort']);_0x406ce4[_0xf6e8('0xa2')]=qs['filters'](_[_0xf6e8('0xa4')](_0x2abf38[_0xf6e8('0x3a')],_0x583c7c[_0xf6e8('0xa3')]));_0x406ce4['where'][_0xf6e8('0xa5')]=_0x2fa6fd['id'];if(_0x2abf38[_0xf6e8('0x3a')][_0xf6e8('0xa6')]){_0x406ce4[_0xf6e8('0xa2')]=_[_0xf6e8('0x2c')](_0x406ce4[_0xf6e8('0xa2')],{'$or':_[_0xf6e8('0x32')](_0x406ce4[_0xf6e8('0x40')],function(_0x4130a8){var _0x37cc22={};_0x37cc22[_0x4130a8]={'$like':'%'+_0x2abf38[_0xf6e8('0x3a')]['filter']+'%'};return _0x37cc22;})});}_0x406ce4[_0xf6e8('0xa2')][_0xf6e8('0xad')]=![];if(_0x2abf38[_0xf6e8('0x3a')]['id']){_0x406ce4[_0xf6e8('0xa2')]['id']={'$gt':_0x2abf38[_0xf6e8('0x3a')]['id']};}_0x406ce4=_[_0xf6e8('0x2c')]({},_0x406ce4,_0x2abf38['options']);return db['ChatMessage']['count']({'where':_0x406ce4[_0xf6e8('0xa2')]})[_0xf6e8('0x14')](function(_0x4ee5b2){_0xb99f4['count']=_0x4ee5b2;_0x406ce4[_0xf6e8('0xaa')]=[];if(_0x2abf38[_0xf6e8('0x3a')][_0xf6e8('0xae')]){_0x406ce4[_0xf6e8('0xaa')][_0xf6e8('0xaf')]({'model':db[_0xf6e8('0x7f')],'as':_0xf6e8('0x7f'),'attributes':['id',_0xf6e8('0x8b'),_0xf6e8('0xb0')]});}if(_0x2abf38[_0xf6e8('0x3a')][_0xf6e8('0x43')]){_0x406ce4['include']=[{'all':!![]}];}return db['ChatMessage'][_0xf6e8('0xab')](_0x406ce4);})[_0xf6e8('0x14')](function(_0x15b28c){_0xb99f4[_0xf6e8('0xb1')]=_0x15b28c;return _0xb99f4;});}})['then'](respondWithFilteredResult(_0x2ea641,_0x406ce4))[_0xf6e8('0x1d')](handleError(_0x2ea641,null));};exports[_0xf6e8('0xb2')]=function(_0x5e486d,_0x3fd7c2){return db[_0xf6e8('0x33')][_0xf6e8('0x47')]({'where':{'id':_0x5e486d['params']['id']}})['then'](handleEntityNotFound(_0x3fd7c2,null))[_0xf6e8('0x14')](function(_0x4caae0){if(_0x4caae0){return _0x4caae0[_0xf6e8('0xb3')](_0x5e486d[_0xf6e8('0x2d')]['ids'],_[_0xf6e8('0xb4')](_0x5e486d['body'],[_0xf6e8('0x9c'),'id'])||{})[_0xf6e8('0xb5')](function(){return db[_0xf6e8('0xb6')][_0xf6e8('0xab')]({'attributes':['id',_0xf6e8('0x29'),_0xf6e8('0xb7')],'where':{'id':_0x5e486d[_0xf6e8('0x2d')][_0xf6e8('0x9c')]}});})[_0xf6e8('0x14')](function(_0xfa3772){socket[_0xf6e8('0xb8')]('chatInteractionTags:save',{'id':Number(_0x5e486d[_0xf6e8('0x3d')]['id']),'tags':_0xfa3772||[]});return{'id':Number(_0x5e486d[_0xf6e8('0x3d')]['id']),'tags':_0xfa3772||[]};});}})[_0xf6e8('0x14')](respondWithResult(_0x3fd7c2,null))[_0xf6e8('0x1d')](handleError(_0x3fd7c2,null));};exports['removeTags']=function(_0x20fbc2,_0x5ae839){return db[_0xf6e8('0x33')][_0xf6e8('0x47')]({'where':{'id':_0x20fbc2[_0xf6e8('0x3d')]['id']}})[_0xf6e8('0x14')](handleEntityNotFound(_0x5ae839,null))[_0xf6e8('0x14')](function(_0x1bb33a){if(_0x1bb33a){return _0x1bb33a[_0xf6e8('0xb9')](_0x20fbc2[_0xf6e8('0x3a')][_0xf6e8('0x9c')]);}})[_0xf6e8('0x14')](respondWithStatusCode(_0x5ae839,null))[_0xf6e8('0x1d')](handleError(_0x5ae839,null));};exports[_0xf6e8('0x77')]=function(_0x597e3b,_0x2eecfa){var _0xda9469=moment()[_0xf6e8('0xba')]()[_0xf6e8('0xbb')]();var _0x58f61d=path['join'](config[_0xf6e8('0x7a')],_0xf6e8('0xbc'),_0xf6e8('0xbd'),'tmp');var _0x5c5d40=path[_0xf6e8('0x74')](config[_0xf6e8('0x7a')],'server','files','attachments');var _0x32f7ed=path['join'](_0x58f61d,_0xda9469);var _0x5cc39e=util[_0xf6e8('0x82')]('transcript-%d-%s.zip',_0x597e3b['params']['id'],_0xda9469);var _0x5627d0=path[_0xf6e8('0x74')](_0x58f61d,_0x5cc39e);var _0x683ef1=[];_0x683ef1['push']({'model':db[_0xf6e8('0x7f')],'as':_0xf6e8('0x7f'),'attributes':['id','fullname'],'raw':!![]});_0x683ef1[_0xf6e8('0xaf')]({'model':db[_0xf6e8('0xbe')],'as':_0xf6e8('0x63'),'attributes':['id','firstName',_0xf6e8('0xbf')],'raw':!![]});if(_0x597e3b['query']['attachments']){_0x683ef1[_0xf6e8('0xaf')]({'model':db[_0xf6e8('0x71')],'as':_0xf6e8('0x71'),'raw':!![]});}var _0x1b43ce=[{'model':db[_0xf6e8('0x5f')],'as':_0xf6e8('0x7e'),'attributes':['id',_0xf6e8('0x2d'),'createdAt',_0xf6e8('0x8f'),_0xf6e8('0xad'),'read'],'include':_0x683ef1}];_0x1b43ce[_0xf6e8('0xaf')]({'model':db[_0xf6e8('0x4b')],'as':_0xf6e8('0xc0'),'attributes':['id',_0xf6e8('0x29')]});_0x1b43ce[_0xf6e8('0xaf')]({'model':db[_0xf6e8('0x7f')],'as':'Owner','attributes':['id',_0xf6e8('0x8b')]});return db[_0xf6e8('0x33')]['find']({'where':{'id':_0x597e3b[_0xf6e8('0x3d')]['id']},'include':_0x1b43ce})[_0xf6e8('0x14')](handleEntityNotFound(_0x2eecfa,null))[_0xf6e8('0x14')](function(_0x2fb3fb){if(_0x2fb3fb){var _0x322220=_0x2fb3fb['get']({'plain':!![]});fs[_0xf6e8('0xc1')](_0x32f7ed);var _0x511f22={'channel':_0xf6e8('0xc2'),'account':_0x322220['Account'][_0xf6e8('0x29')],'agent':_0x322220[_0xf6e8('0xc3')]?_0x322220[_0xf6e8('0xc3')][_0xf6e8('0x8b')]:_0xf6e8('0xc4'),'createdAt':moment(_0x322220[_0xf6e8('0x8e')])[_0xf6e8('0x82')](_0xf6e8('0xa9'))[_0xf6e8('0xbb')](),'closedAt':_0x322220[_0xf6e8('0x69')]?moment(_0x322220['closedAt'])[_0xf6e8('0x82')](_0xf6e8('0xa9'))[_0xf6e8('0xbb')]():'','disposition':_0x322220[_0xf6e8('0x6a')],'chatInfo':{'browser':_0x322220['browserName'],'os':_0x322220[_0xf6e8('0xc5')],'referer':_0x322220[_0xf6e8('0xc6')],'customerIp':_0x322220[_0xf6e8('0xc7')],'customerPort':_0x322220['customerPort']?_0x322220['customerPort']:_0xf6e8('0xc4')},'messages':_(_0x322220[_0xf6e8('0x7e')])['tail']()[_0xf6e8('0xa6')]({'secret':![]})[_0xf6e8('0x32')](function(_0x59782e){if(_0x59782e[_0xf6e8('0x71')]){var _0x2c8225=path[_0xf6e8('0x74')](_0x5c5d40,_0x59782e['Attachment'][_0xf6e8('0x6d')]);if(fs[_0xf6e8('0xc8')](_0x2c8225)){fs[_0xf6e8('0xc9')](_0x2c8225)[_0xf6e8('0xca')](fs[_0xf6e8('0xcb')](path[_0xf6e8('0x74')](_0x32f7ed,_0x59782e[_0xf6e8('0x71')][_0xf6e8('0x6d')])));}}return{'date':moment(_0x59782e[_0xf6e8('0x8e')])[_0xf6e8('0x82')](_0xf6e8('0xa9'))['toString'](),'sender':_0x59782e[_0xf6e8('0x8f')]===_0xf6e8('0x5e')?_0x59782e[_0xf6e8('0x7f')]?_0x59782e['User'][_0xf6e8('0x8b')]:_0xf6e8('0x84'):_0x59782e[_0xf6e8('0x63')]['firstName']+(_0x59782e[_0xf6e8('0x63')]['lastName']?'\x20'+_0x59782e['Contact'][_0xf6e8('0xbf')]:''),'body':_0x59782e['Attachment']?_0x59782e[_0xf6e8('0x71')]['basename']:_0x59782e['body'],'direction':_0x59782e[_0xf6e8('0x8f')]==='out'?'A':'C','secret':_0x59782e[_0xf6e8('0xad')],'read':_0x59782e['read'],'attachment':_0x59782e['Attachment']};})[_0xf6e8('0xcc')]()};return ejs[_0xf6e8('0xcd')](path[_0xf6e8('0x74')](config[_0xf6e8('0x7a')],_0xf6e8('0xbc'),'views','downloadInteraction.ejs'),{'interaction':_0x511f22})[_0xf6e8('0x14')](function(_0x15d32f){var _0x14e785=path[_0xf6e8('0x74')](_0x32f7ed,'transcript-'+_0x322220['id']+'-'+_0xda9469+_0xf6e8('0xce'));var _0x166fc0={'path':_0x14e785,'channel':_0xf6e8('0xc2'),'interactionId':_0x322220['id']};return pdf['createPdfFromHTML'](_0x15d32f,_0x166fc0);})['then'](function(){return new Promise(function(_0x3efb1b,_0x1c6439){zipdir(_0x32f7ed,{'saveTo':_0x5627d0},function(_0x2ae667,_0x14cad5){if(_0x2ae667)return _0x1c6439(_0x2ae667);return _0x3efb1b(_0x14cad5);});})[_0xf6e8('0x14')](function(){return new BPromise(function(_0x3abad9,_0x33595a){rimraf(_0x32f7ed,function(_0xfa6e11){if(_0xfa6e11)_0x33595a(_0xfa6e11);return _0x3abad9();});});})[_0xf6e8('0x14')](function(){return _0x2eecfa[_0xf6e8('0x77')](_0x5627d0,_0x5cc39e,function(_0x57ed03){if(_0x57ed03){logger[_0xf6e8('0x1b')](_0xf6e8('0xcf'),_0x57ed03);}else{fs[_0xf6e8('0xd0')](_0x5627d0);}});});});}else{return _0x2eecfa[_0xf6e8('0x1e')](0xc8);}})[_0xf6e8('0x1d')](handleError(_0x2eecfa,null));};