Built motion from commit 00bf23f6.|2.6.16
[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 _0x19dc=['file','originalname','basename','filename','mimetype','Attachment','attachmentDownload','Unauthorized','attachId','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','download','close','server/files/chat/upload/','format','transcript-%s.txt','now','pathTranscript','ContactId','Messages','agentAlias','UserId','%s%d','System','agent_alias','User','alias','fullname','agent_fullname','[%s]\x20%s:\x20%s\x0a','createdAt','direction','secret','MailAccount','MailServerOut','Smtp','CloudProvider','getSmtpOptions','sendMail','\x22%s\x22\x20<%s>','addMessage','ids','omit','getMessages','length','hasOwnProperty','nolimit','order','sort','where','pick','filters','filter','map','$gte','YYYY-MM-DD\x20HH:mm:ss','includeAll','rows','getMyMessages','includeAgent','push','addTags','spread','Tag','removeTags','unix','toString','server','files','attachments','transcript-%d-%s.zip','Owner','mkdirSync','Chat','closedAt','osName','referer','customerIp','customerPort','N.A.','existsSync','createReadStream','pipe','createWriteStream','out','firstName','lastName','value','renderFile','downloadInteraction.ejs','transcript-','createPdfFromHTML','err','unlinkSync','rimraf','request-promise','moment','bluebird','mustache','path','ejs','lodash','../../components/interaction/service','../../components/parsers/qs','../../components/export/pdf','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','jayson/promise','client','http','request','then','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','catch','sendStatus','status','end','json','undefined','limit','count','offset','set','update','destroy','stack','name','send','render','merge','body','contact','agent','interaction','account','index','ChatInteraction','fieldName','type','key','getOptions','findAll','chat','query','user','show','params','model','keys','rawAttributes','intersection','attributes','fields','include','options','create','find','describe','createVidaooSession','findOne','ChatWebsite','ChatWebsiteId','vidaooApiKey','vidaooEscalation','vidaooTopic','vidaooNote','email','POST','https://api-vidaoo.xcally.com/api/v1/meetings','vidaooMetadata','parse','metadata','Sequelize','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','Error\x20in\x20Vidaoo\x20configuration','ChatMessage','customUpdate','CmContact','Contact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','Interaction\x20already\x20assigned','closed','disposition','attachmentUpload'];(function(_0x5de514,_0x59bf18){var _0x20f32f=function(_0x4543bd){while(--_0x4543bd){_0x5de514['push'](_0x5de514['shift']());}};_0x20f32f(++_0x59bf18);}(_0x19dc,0x12c));var _0xc19d=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x19dc[_0x3dd15e];return _0x231fd0;};'use strict';var rimraf=require(_0xc19d('0x0'));var zipdir=require('zip-dir');var rp=require(_0xc19d('0x1'));var moment=require(_0xc19d('0x2'));var BPromise=require(_0xc19d('0x3'));var Mustache=require(_0xc19d('0x4'));var util=require('util');var path=require(_0xc19d('0x5'));var ejs=require(_0xc19d('0x6'));var fs=require('fs');var _=require(_0xc19d('0x7'));var Redis=require('ioredis');var interaction=require(_0xc19d('0x8'));var qs=require(_0xc19d('0x9'));var pdf=require(_0xc19d('0xa'));var logger=require(_0xc19d('0xb'))(_0xc19d('0xc'));var config=require(_0xc19d('0xd'));var db=require(_0xc19d('0xe'))['db'];config[_0xc19d('0xf')]=_[_0xc19d('0x10')](config[_0xc19d('0xf')],{'host':_0xc19d('0x11'),'port':0x18eb});var socket=require(_0xc19d('0x12'))(new Redis(config[_0xc19d('0xf')]));require('./chatInteraction.socket')[_0xc19d('0x13')](socket);var jayson=require(_0xc19d('0x14'));var client=jayson[_0xc19d('0x15')]['http']({'port':0x232b});var client9004=jayson[_0xc19d('0x15')][_0xc19d('0x16')]({'port':0x232c});function respondWithRpcPromise(_0x48168c,_0x353c57,_0x599d3c,_0x4978e5){return new BPromise(function(_0x500e2c,_0x58d246){var _0x49e445=_0x4978e5||client;return _0x49e445[_0xc19d('0x17')](_0x48168c,_0x599d3c)[_0xc19d('0x18')](function(_0x558b39){logger['info'](_0xc19d('0x19'),_0x353c57,_0xc19d('0x1a'));logger[_0xc19d('0x1b')]('ChatInteraction,\x20%s,\x20%s,\x20%s',_0x353c57,_0xc19d('0x1a'),JSON[_0xc19d('0x1c')](_0x558b39));if(_0x558b39[_0xc19d('0x1d')]){if(_0x558b39[_0xc19d('0x1d')]['code']===0x1f4){logger['error'](_0xc19d('0x19'),_0x353c57,_0x558b39['error']['message']);return _0x58d246(_0x558b39['error'][_0xc19d('0x1e')]);}logger[_0xc19d('0x1d')](_0xc19d('0x19'),_0x353c57,_0x558b39[_0xc19d('0x1d')][_0xc19d('0x1e')]);return _0x500e2c(_0x558b39[_0xc19d('0x1d')][_0xc19d('0x1e')]);}else{logger['info'](_0xc19d('0x19'),_0x353c57,_0xc19d('0x1a'));_0x500e2c(_0x558b39[_0xc19d('0x1f')][_0xc19d('0x1e')]);}})[_0xc19d('0x20')](function(_0x421d2e){logger[_0xc19d('0x1d')](_0xc19d('0x19'),_0x353c57,_0x421d2e);_0x58d246(_0x421d2e);});});}function respondWithStatusCode(_0xa81cca,_0x260d43){_0x260d43=_0x260d43||0xcc;return function(_0x25f044){if(_0x25f044){return _0xa81cca[_0xc19d('0x21')](_0x260d43);}return _0xa81cca[_0xc19d('0x22')](_0x260d43)[_0xc19d('0x23')]();};}function respondWithResult(_0x419b93,_0x30ff65){_0x30ff65=_0x30ff65||0xc8;return function(_0x39beed){if(_0x39beed){return _0x419b93[_0xc19d('0x22')](_0x30ff65)[_0xc19d('0x24')](_0x39beed);}};}function respondWithFilteredResult(_0x488b70,_0x2364ed){return function(_0x517092){if(_0x517092){var _0xc8c5dc=typeof _0x2364ed['offset']===_0xc19d('0x25')&&typeof _0x2364ed[_0xc19d('0x26')]===_0xc19d('0x25');var _0x3bb1f0=_0x517092[_0xc19d('0x27')];var _0x4ce34e=_0xc8c5dc?0x0:_0x2364ed['offset'];var _0x3af720=_0xc8c5dc?_0x517092[_0xc19d('0x27')]:_0x2364ed[_0xc19d('0x28')]+_0x2364ed[_0xc19d('0x26')];var _0x3c7d6c;if(_0x3af720>=_0x3bb1f0){_0x3af720=_0x3bb1f0;_0x3c7d6c=0xc8;}else{_0x3c7d6c=0xce;}_0x488b70['status'](_0x3c7d6c);return _0x488b70[_0xc19d('0x29')]('Content-Range',_0x4ce34e+'-'+_0x3af720+'/'+_0x3bb1f0)['json'](_0x517092);}return null;};}function saveUpdates(_0x46e5c4){return function(_0x1ab042){if(_0x1ab042){return _0x1ab042[_0xc19d('0x2a')](_0x46e5c4)[_0xc19d('0x18')](function(_0x333333){return _0x333333;});}return null;};}function removeEntity(_0x308ef8){return function(_0xea3948){if(_0xea3948){return _0xea3948[_0xc19d('0x2b')]()[_0xc19d('0x18')](function(){_0x308ef8[_0xc19d('0x22')](0xcc)[_0xc19d('0x23')]();});}};}function handleEntityNotFound(_0x4523d4){return function(_0x14b7e4){if(!_0x14b7e4){_0x4523d4[_0xc19d('0x21')](0x194);}return _0x14b7e4;};}function handleError(_0x195134,_0x5b0eef){_0x5b0eef=_0x5b0eef||0x1f4;return function(_0x2aa023){logger[_0xc19d('0x1d')](_0x2aa023[_0xc19d('0x2c')]);if(_0x2aa023[_0xc19d('0x2d')]){delete _0x2aa023['name'];}_0x195134['status'](_0x5b0eef)[_0xc19d('0x2e')](_0x2aa023);};}function getMustacheRender(_0x137936,_0x1d9025){return Mustache[_0xc19d('0x2f')](_0x137936,_[_0xc19d('0x30')](_0x1d9025[_0xc19d('0x31')],{'contact':_0x1d9025[_0xc19d('0x32')],'message':_0x1d9025[_0xc19d('0x1e')],'agent':_0x1d9025[_0xc19d('0x33')],'interaction':_0x1d9025[_0xc19d('0x34')],'account':_0x1d9025[_0xc19d('0x35')]}))||'';}exports[_0xc19d('0x36')]=function(_0x56eb4b,_0x2fe111){var _0x525c5f={};var _0xb3a99=_['map'](db[_0xc19d('0x37')]['rawAttributes'],function(_0x1c05d8){return{'name':_0x1c05d8[_0xc19d('0x38')],'type':_0x1c05d8[_0xc19d('0x39')][_0xc19d('0x3a')]};});_0x525c5f=qs[_0xc19d('0x3b')](_0xb3a99,_0x56eb4b);return interaction[_0xc19d('0x3c')](_0xc19d('0x3d'),_0x56eb4b[_0xc19d('0x3e')],_0x56eb4b[_0xc19d('0x3f')],_0x525c5f,_0xb3a99)[_0xc19d('0x18')](respondWithFilteredResult(_0x2fe111,_0x525c5f))['catch'](handleError(_0x2fe111,null));};exports[_0xc19d('0x40')]=function(_0x16983b,_0x5c9ac1){var _0x3de2be={'raw':![],'where':{'id':_0x16983b[_0xc19d('0x41')]['id']}},_0x52ff04={};_0x52ff04[_0xc19d('0x42')]=_[_0xc19d('0x43')](db[_0xc19d('0x37')][_0xc19d('0x44')]);_0x52ff04['query']=_['keys'](_0x16983b['query']);_0x52ff04['filters']=_[_0xc19d('0x45')](_0x52ff04[_0xc19d('0x42')],_0x52ff04[_0xc19d('0x3e')]);_0x3de2be[_0xc19d('0x46')]=_[_0xc19d('0x45')](_0x52ff04[_0xc19d('0x42')],qs[_0xc19d('0x47')](_0x16983b[_0xc19d('0x3e')]['fields']));_0x3de2be['attributes']=_0x3de2be[_0xc19d('0x46')]['length']?_0x3de2be[_0xc19d('0x46')]:_0x52ff04[_0xc19d('0x42')];if(_0x16983b[_0xc19d('0x3e')]['includeAll']){_0x3de2be[_0xc19d('0x48')]=[{'all':!![]}];}_0x3de2be=_[_0xc19d('0x30')]({},_0x3de2be,_0x16983b[_0xc19d('0x49')]);return db['ChatInteraction']['find'](_0x3de2be)[_0xc19d('0x18')](handleEntityNotFound(_0x5c9ac1,null))[_0xc19d('0x18')](respondWithResult(_0x5c9ac1,null))[_0xc19d('0x20')](handleError(_0x5c9ac1,null));};exports[_0xc19d('0x4a')]=function(_0x49160d,_0x2202df){return db['ChatInteraction']['create'](_0x49160d[_0xc19d('0x31')],{})[_0xc19d('0x18')](respondWithResult(_0x2202df,0xc9))[_0xc19d('0x20')](handleError(_0x2202df,null));};exports[_0xc19d('0x2a')]=function(_0x30eb3f,_0x3e4ea9){if(_0x30eb3f[_0xc19d('0x31')]['id']){delete _0x30eb3f[_0xc19d('0x31')]['id'];}return db[_0xc19d('0x37')]['find']({'where':{'id':_0x30eb3f[_0xc19d('0x41')]['id']}})[_0xc19d('0x18')](handleEntityNotFound(_0x3e4ea9,null))[_0xc19d('0x18')](saveUpdates(_0x30eb3f[_0xc19d('0x31')],null))[_0xc19d('0x18')](respondWithResult(_0x3e4ea9,null))[_0xc19d('0x20')](handleError(_0x3e4ea9,null));};exports[_0xc19d('0x2b')]=function(_0x21f918,_0x543a0c){return db['ChatInteraction'][_0xc19d('0x4b')]({'where':{'id':_0x21f918[_0xc19d('0x41')]['id']}})['then'](handleEntityNotFound(_0x543a0c,null))[_0xc19d('0x18')](removeEntity(_0x543a0c,null))[_0xc19d('0x20')](handleError(_0x543a0c,null));};exports[_0xc19d('0x4c')]=function(_0x2abebc,_0x5c0273){return db[_0xc19d('0x37')][_0xc19d('0x4c')]()[_0xc19d('0x18')](respondWithResult(_0x5c0273,null))[_0xc19d('0x20')](handleError(_0x5c0273,null));};exports[_0xc19d('0x4d')]=function(_0x3cf777,_0x2f3a91){var _0x5563a1=_0x3cf777[_0xc19d('0x41')]['id'];var _0x30f27f;var _0x33b9e7;var _0x30aa97;return db[_0xc19d('0x37')][_0xc19d('0x4e')]({'where':{'id':_0x5563a1}})[_0xc19d('0x18')](function(_0x1e02bd){_0x30f27f=_0x1e02bd;return db[_0xc19d('0x4f')][_0xc19d('0x4e')]({'where':{'id':_0x1e02bd[_0xc19d('0x50')]},'attributes':['id',_0xc19d('0x51'),_0xc19d('0x52'),_0xc19d('0x53'),_0xc19d('0x54'),'vidaooMetadata'],'raw':!![]});})[_0xc19d('0x18')](function(_0x5d1abc){if(_0x5d1abc&&_0x5d1abc[_0xc19d('0x51')]&&_0x5d1abc[_0xc19d('0x52')]){_0x33b9e7=_0x5d1abc;var _0x49b0db={'interaction':{'id':_0x5563a1},'agent':{'id':_0x3cf777[_0xc19d('0x3f')]['id'],'name':_0x3cf777[_0xc19d('0x3f')][_0xc19d('0x2d')],'fullname':_0x3cf777[_0xc19d('0x3f')]['fullname'],'email':_0x3cf777['user'][_0xc19d('0x55')]},'contact':_0x3cf777[_0xc19d('0x31')][_0xc19d('0x32')],'account':_0x3cf777['body'][_0xc19d('0x35')]};var _0x4304f4={'rejectUnauthorized':![],'method':_0xc19d('0x56'),'url':_0xc19d('0x57'),'headers':{'X-APIKEY':_0x5d1abc[_0xc19d('0x51')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x3cf777['user'][_0xc19d('0x55')]],'buttons':null,'topic':_0x33b9e7[_0xc19d('0x53')],'note':_['isNull'](_0x33b9e7[_0xc19d('0x54')])?null:getMustacheRender(_0x33b9e7[_0xc19d('0x54')],_0x49b0db),'metadata':null},'redirect':'follow','json':!![]};try{if(!_['isNull'](_0x33b9e7[_0xc19d('0x58')])){var _0x210b95=getMustacheRender(_0x33b9e7[_0xc19d('0x58')],_0x49b0db);var _0x1e6983=JSON[_0xc19d('0x59')](_0x210b95);_0x4304f4[_0xc19d('0x31')][_0xc19d('0x5a')]=_0x1e6983;}}catch(_0x49f2bb){throw new db[(_0xc19d('0x5b'))][(_0xc19d('0x5c'))](_0xc19d('0x5d'));}return rp(_0x4304f4);}else{throw new db[(_0xc19d('0x5b'))][(_0xc19d('0x5c'))](_0xc19d('0x5e'));}})[_0xc19d('0x18')](function(_0x1d43c4){_0x30aa97=_0x1d43c4;if(_0x30aa97['id']){var _0x1ebb05={'body':_0x30aa97['join_url'],'ChatWebsiteId':_0x33b9e7['id'],'ChatInteractionId':_0x30f27f['id'],'direction':'out','UserId':_0x3cf777[_0xc19d('0x3f')]['id']};return db[_0xc19d('0x5f')][_0xc19d('0x4a')](_0x1ebb05,{});}else{throw new db['Sequelize'][(_0xc19d('0x5c'))]('Unable\x20to\x20create\x20Vidaoo\x20session');}})[_0xc19d('0x18')](function(){return _0x30f27f['updateAttributes']({'vidaooSessionId':_0x30aa97['id']});})[_0xc19d('0x18')](respondWithResult(_0x2f3a91,null))[_0xc19d('0x20')](handleError(_0x2f3a91,null));};exports[_0xc19d('0x60')]=function(_0x706fc0,_0x337f2f){if(_0x706fc0[_0xc19d('0x31')]['id']){delete _0x706fc0[_0xc19d('0x31')]['id'];}return db[_0xc19d('0x37')][_0xc19d('0x4b')]({'where':{'id':_0x706fc0['params']['id']},'include':[{'model':db[_0xc19d('0x61')],'as':_0xc19d('0x62')}]})[_0xc19d('0x18')](handleEntityNotFound(_0x337f2f,null))[_0xc19d('0x18')](saveUpdates(_0x706fc0[_0xc19d('0x31')],null))['then'](respondWithResult(_0x337f2f,null))['catch'](handleError(_0x337f2f,null));};exports[_0xc19d('0x63')]=function(_0xee4fb7,_0x4c7a82){if(_0xee4fb7[_0xc19d('0x31')]['id']){delete _0xee4fb7[_0xc19d('0x31')]['id'];}return db[_0xc19d('0x37')][_0xc19d('0x4b')]({'where':{'id':_0xee4fb7['params']['id']}})[_0xc19d('0x18')](function(_0x570df8){if(!_0x570df8){logger[_0xc19d('0x1d')](_0xc19d('0x64'),_0xc19d('0x63'),0x194,_0xc19d('0x65'));_0x4c7a82[_0xc19d('0x21')](0x194);}else{if(_0x570df8['UserId']){throw new db[(_0xc19d('0x5b'))]['ValidationError'](_0xc19d('0x66'));}}return _0x570df8;})[_0xc19d('0x18')](function(_0xfd3ba7){if(_0xfd3ba7){return _0xfd3ba7['update']({'closed':_0xee4fb7['body'][_0xc19d('0x67')],'disposition':_0xee4fb7['body'][_0xc19d('0x68')]})[_0xc19d('0x18')](function(_0x23f62e){return _0x23f62e;});}})['then'](function(){return respondWithRpcPromise('AbandonInteraction',_0xc19d('0x63'),_0xee4fb7[_0xc19d('0x31')],client9004);})['then'](respondWithResult(_0x4c7a82,null))[_0xc19d('0x20')](handleError(_0x4c7a82,null));};exports[_0xc19d('0x69')]=function(_0x4a2818,_0x33d99f){_0x4a2818[_0xc19d('0x31')][_0xc19d('0x2d')]=_0x4a2818[_0xc19d('0x6a')][_0xc19d('0x6b')];_0x4a2818[_0xc19d('0x31')][_0xc19d('0x6c')]=_0x4a2818[_0xc19d('0x6a')][_0xc19d('0x6d')];_0x4a2818[_0xc19d('0x31')][_0xc19d('0x39')]=_0x4a2818[_0xc19d('0x6a')][_0xc19d('0x6e')];return db[_0xc19d('0x6f')][_0xc19d('0x4a')](_0x4a2818[_0xc19d('0x31')])[_0xc19d('0x18')](respondWithResult(_0x33d99f,0xc9))[_0xc19d('0x20')](handleError(_0x33d99f,null));};exports[_0xc19d('0x70')]=function(_0x27fafe,_0x37c55c){return db[_0xc19d('0x37')][_0xc19d('0x4e')]({'where':{'id':_0x27fafe[_0xc19d('0x41')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x37c55c,null))[_0xc19d('0x18')](function(_0x2b9cf6){if(_0x2b9cf6){if(_0x2b9cf6[_0xc19d('0x67')]){return _0x37c55c[_0xc19d('0x22')](0x193)[_0xc19d('0x24')]({'status':0x193,'message':_0xc19d('0x71')});}return db[_0xc19d('0x6f')]['findOne']({'where':{'id':_0x27fafe[_0xc19d('0x3e')][_0xc19d('0x72')]},'raw':!![]})['then'](handleEntityNotFound(_0x37c55c,null));}})[_0xc19d('0x18')](function(_0x1ba2c4){if(_0x1ba2c4){var _0x1e6e11=_0x1ba2c4[_0xc19d('0x73')]!==null;var _0x4a4c68=path[_0xc19d('0x74')](config[_0xc19d('0x75')],_0xc19d('0x76'));if(_0x1e6e11){_0x4a4c68=path['join'](_0x4a4c68,_0xc19d('0x77'));}var _0x51a304=path[_0xc19d('0x74')](_0x4a4c68,_0x1ba2c4[_0xc19d('0x6c')]);return _0x37c55c[_0xc19d('0x78')](_0x51a304);}})[_0xc19d('0x20')](handleError(_0x37c55c,null));};exports[_0xc19d('0x79')]=function(_0x171968,_0x54e48e){var _0x3982ee=null;var _0x1390f7=null;var _0x30d6f4=null;if(_0x171968['body']['id']){delete _0x171968[_0xc19d('0x31')]['id'];}if(_0x171968['body']['mailTranscript']){_0x30d6f4=path['join'](config[_0xc19d('0x75')],_0xc19d('0x7a'),util[_0xc19d('0x7b')](_0xc19d('0x7c'),Date[_0xc19d('0x7d')]()));_0x171968[_0xc19d('0x31')][_0xc19d('0x7e')]=_0x30d6f4;}return db['ChatInteraction'][_0xc19d('0x4b')]({'where':{'id':_0x171968['params']['id']},'include':[{'model':db['ChatMessage'],'as':'Messages','include':[{'model':db['User'],'as':'User'}]}]})[_0xc19d('0x18')](handleEntityNotFound(_0x54e48e,null))[_0xc19d('0x18')](saveUpdates(_0x171968['body'],null))[_0xc19d('0x18')](function(_0x4d6a63){if(_0x4d6a63){_0x3982ee=_0x4d6a63;return db[_0xc19d('0x4f')][_0xc19d('0x4b')]({'where':{'id':_0x3982ee['ChatWebsiteId']}});}})[_0xc19d('0x18')](function(_0x54811d){if(_0x54811d){_0x1390f7=_0x54811d;return db['CmContact']['find']({'where':{'id':_0x3982ee[_0xc19d('0x7f')]}});}})[_0xc19d('0x18')](function(_0x44c6f1){if(_0x44c6f1){if(_0x30d6f4){var _0x50cb91=null;for(var _0x31358f=0x1;_0x31358f<_0x3982ee[_0xc19d('0x80')]['length'];++_0x31358f){_0x50cb91=_0x3982ee[_0xc19d('0x80')][_0x31358f];var _0x345e82=_0x50cb91['UserId']?util['format']('%s%d',_0x1390f7[_0xc19d('0x81')],_0x50cb91[_0xc19d('0x82')]):'System';var _0x84d68d=_0x171968['body']['customer']||util['format'](_0xc19d('0x83'),'Visitor',_0x50cb91[_0xc19d('0x7f')]);switch(_0x1390f7['agentIdentifier']){case'website_alias':_0x345e82=_0x50cb91[_0xc19d('0x82')]?util[_0xc19d('0x7b')]('%s%d',_0x1390f7[_0xc19d('0x81')],_0x50cb91[_0xc19d('0x82')]):_0xc19d('0x84');break;case _0xc19d('0x85'):_0x345e82=_0x50cb91[_0xc19d('0x82')]?_0x50cb91[_0xc19d('0x86')][_0xc19d('0x87')]||_0x50cb91[_0xc19d('0x86')][_0xc19d('0x88')]:_0xc19d('0x84');break;case _0xc19d('0x89'):_0x345e82=_0x50cb91[_0xc19d('0x82')]?_0x50cb91[_0xc19d('0x86')][_0xc19d('0x88')]:'System';break;default:_0x345e82=_0x50cb91[_0xc19d('0x82')]?util[_0xc19d('0x7b')]('%s%d',_0x1390f7[_0xc19d('0x81')],_0x50cb91[_0xc19d('0x82')]):_0xc19d('0x84');}var _0x395a12=util[_0xc19d('0x7b')](_0xc19d('0x8a'),moment(_0x50cb91[_0xc19d('0x8b')])['format']('MM/DD/YYYY\x20HH:mm:ss'),_0x50cb91[_0xc19d('0x8c')]==='in'?_0x84d68d:_0x345e82,_0x50cb91['body']);if(!_0x50cb91[_0xc19d('0x8d')]){fs['appendFileSync'](_0x30d6f4,_0x395a12);}}return db[_0xc19d('0x8e')][_0xc19d('0x4e')]({'where':{'service':!![]},'include':[{'model':db[_0xc19d('0x8f')],'as':_0xc19d('0x90'),'raw':!![],'include':[{'model':db[_0xc19d('0x91')],'as':'CloudProvider','raw':!![]}]}]});}}})[_0xc19d('0x18')](function(_0x43beba){if(!_0x43beba||!_0x43beba[_0xc19d('0x90')]||!_0x171968['body'])return _0x3982ee;var _0x42d7d8=_0x43beba[_0xc19d('0x92')]();return respondWithRpcPromise('SendMail',_0xc19d('0x93'),{'account':_0x42d7d8,'message':{'from':util['format'](_0xc19d('0x94'),_0x43beba[_0xc19d('0x2d')],_0x43beba['email']||_0x43beba[_0xc19d('0x90')][_0xc19d('0x3f')]),'to':_0x171968['body']['mailTranscript'],'subject':'Mail\x20Transcript','text':util[_0xc19d('0x7b')]('Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a',_0x171968[_0xc19d('0x31')]['mailTranscript']),'attachments':[{'path':_0x30d6f4}]}})['then'](function(){return _0x3982ee;})[_0xc19d('0x20')](function(_0x3b6c45){logger[_0xc19d('0x1d')](_0x3b6c45);});})['then'](respondWithStatusCode(_0x54e48e,0xc8))[_0xc19d('0x20')](handleError(_0x54e48e,null));};exports[_0xc19d('0x95')]=function(_0x18bb0a,_0x2ff13d){return db['ChatMessage'][_0xc19d('0x4b')]({'where':{'id':_0x18bb0a[_0xc19d('0x41')]['id']}})[_0xc19d('0x18')](handleEntityNotFound(_0x2ff13d,null))[_0xc19d('0x18')](function(_0x5945d1){if(_0x5945d1){return _0x5945d1['addMessage'](_0x18bb0a['body'][_0xc19d('0x96')],_[_0xc19d('0x97')](_0x18bb0a['body'],[_0xc19d('0x96'),'id'])||{});}})[_0xc19d('0x18')](respondWithResult(_0x2ff13d,null))[_0xc19d('0x20')](handleError(_0x2ff13d,null));};exports[_0xc19d('0x98')]=function(_0x23fbc7,_0x5d7658){var _0x290e6f={'raw':![],'where':{}};var _0x3642b2={};var _0x403286={'count':0x0,'rows':[]};return db[_0xc19d('0x37')][_0xc19d('0x4e')]({'where':{'id':_0x23fbc7['params']['id']}})[_0xc19d('0x18')](handleEntityNotFound(_0x5d7658,null))['then'](function(_0x390aba){if(_0x390aba){_0x3642b2[_0xc19d('0x42')]=_['keys'](db[_0xc19d('0x5f')][_0xc19d('0x44')]);_0x3642b2['query']=_[_0xc19d('0x43')](_0x23fbc7[_0xc19d('0x3e')]);_0x3642b2['filters']=_['intersection'](_0x3642b2[_0xc19d('0x42')],_0x3642b2['query']);_0x290e6f[_0xc19d('0x46')]=_[_0xc19d('0x45')](_0x3642b2[_0xc19d('0x42')],qs[_0xc19d('0x47')](_0x23fbc7['query'][_0xc19d('0x47')]));_0x290e6f[_0xc19d('0x46')]=_0x290e6f[_0xc19d('0x46')][_0xc19d('0x99')]?_0x290e6f['attributes']:_0x3642b2[_0xc19d('0x42')];if(!_0x23fbc7['query'][_0xc19d('0x9a')](_0xc19d('0x9b'))){_0x290e6f[_0xc19d('0x26')]=qs['limit'](_0x23fbc7[_0xc19d('0x3e')][_0xc19d('0x26')]);_0x290e6f['offset']=qs[_0xc19d('0x28')](_0x23fbc7[_0xc19d('0x3e')]['offset']);}_0x290e6f[_0xc19d('0x9c')]=qs[_0xc19d('0x9d')](_0x23fbc7['query'][_0xc19d('0x9d')]);_0x290e6f[_0xc19d('0x9e')]=qs['filters'](_[_0xc19d('0x9f')](_0x23fbc7[_0xc19d('0x3e')],_0x3642b2[_0xc19d('0xa0')]));_0x290e6f[_0xc19d('0x9e')]['ChatInteractionId']=_0x390aba['id'];if(_0x23fbc7[_0xc19d('0x3e')][_0xc19d('0xa1')]){_0x290e6f['where']=_['merge'](_0x290e6f['where'],{'$or':_[_0xc19d('0xa2')](_0x290e6f[_0xc19d('0x46')],function(_0x336ef0){var _0x3fde7a={};_0x3fde7a[_0x336ef0]={'$like':'%'+_0x23fbc7[_0xc19d('0x3e')]['filter']+'%'};return _0x3fde7a;})});}if(_0x23fbc7[_0xc19d('0x3e')]['$gte']){var _0x5d3a4c=_0x23fbc7[_0xc19d('0x3e')][_0xc19d('0xa3')]['split'](',');var _0x3b17eb={};_0x3b17eb[_0x5d3a4c[0x0]]={'$gte':moment(_0x5d3a4c[0x1])[_0xc19d('0x7b')](_0xc19d('0xa4'))};_0x290e6f['where']=_[_0xc19d('0x30')](_0x290e6f[_0xc19d('0x9e')],_0x3b17eb);}_0x290e6f=_[_0xc19d('0x30')]({},_0x290e6f,_0x23fbc7[_0xc19d('0x49')]);return db[_0xc19d('0x5f')][_0xc19d('0x27')]({'where':_0x290e6f[_0xc19d('0x9e')]})[_0xc19d('0x18')](function(_0x587b33){_0x403286['count']=_0x587b33;if(_0x23fbc7['query'][_0xc19d('0xa5')]){_0x290e6f[_0xc19d('0x48')]=[{'all':!![]}];}return db['ChatMessage']['findAll'](_0x290e6f);})[_0xc19d('0x18')](function(_0x76ba0){_0x403286[_0xc19d('0xa6')]=_0x76ba0;return _0x403286;});}})[_0xc19d('0x18')](respondWithFilteredResult(_0x5d7658,_0x290e6f))[_0xc19d('0x20')](handleError(_0x5d7658,null));};exports[_0xc19d('0xa7')]=function(_0x1c1812,_0x4e46fc){var _0x414bbb={'where':{}},_0x4ebb6b={},_0x2d55d9={'count':0x0,'rows':[]};return db['ChatInteraction'][_0xc19d('0x4e')]({'where':{'id':_0x1c1812[_0xc19d('0x41')]['id']}})[_0xc19d('0x18')](handleEntityNotFound(_0x4e46fc,null))['then'](function(_0x508db4){if(_0x508db4){_0x4ebb6b['model']=_['keys'](db[_0xc19d('0x5f')][_0xc19d('0x44')]);_0x4ebb6b[_0xc19d('0x3e')]=_[_0xc19d('0x43')](_0x1c1812[_0xc19d('0x3e')]);_0x4ebb6b[_0xc19d('0xa0')]=_['intersection'](_0x4ebb6b[_0xc19d('0x42')],_0x4ebb6b[_0xc19d('0x3e')]);_0x414bbb[_0xc19d('0x46')]=_[_0xc19d('0x45')](_0x4ebb6b[_0xc19d('0x42')],qs[_0xc19d('0x47')](_0x1c1812[_0xc19d('0x3e')][_0xc19d('0x47')]));_0x414bbb[_0xc19d('0x46')]=_0x414bbb[_0xc19d('0x46')][_0xc19d('0x99')]?_0x414bbb[_0xc19d('0x46')]:_0x4ebb6b['model'];if(!_0x1c1812[_0xc19d('0x3e')]['hasOwnProperty'](_0xc19d('0x9b'))){_0x414bbb[_0xc19d('0x26')]=qs[_0xc19d('0x26')](_0x1c1812[_0xc19d('0x3e')]['limit']);_0x414bbb[_0xc19d('0x28')]=qs[_0xc19d('0x28')](_0x1c1812['query'][_0xc19d('0x28')]);}_0x414bbb[_0xc19d('0x9c')]=qs[_0xc19d('0x9d')](_0x1c1812[_0xc19d('0x3e')][_0xc19d('0x9d')]);_0x414bbb[_0xc19d('0x9e')]=qs[_0xc19d('0xa0')](_[_0xc19d('0x9f')](_0x1c1812[_0xc19d('0x3e')],_0x4ebb6b[_0xc19d('0xa0')]));_0x414bbb[_0xc19d('0x9e')]['ChatInteractionId']=_0x508db4['id'];if(_0x1c1812['query'][_0xc19d('0xa1')]){_0x414bbb[_0xc19d('0x9e')]=_[_0xc19d('0x30')](_0x414bbb[_0xc19d('0x9e')],{'$or':_[_0xc19d('0xa2')](_0x414bbb[_0xc19d('0x46')],function(_0x51e4a9){var _0xe859b4={};_0xe859b4[_0x51e4a9]={'$like':'%'+_0x1c1812[_0xc19d('0x3e')][_0xc19d('0xa1')]+'%'};return _0xe859b4;})});}_0x414bbb[_0xc19d('0x9e')][_0xc19d('0x8d')]=![];if(_0x1c1812[_0xc19d('0x3e')]['id']){_0x414bbb[_0xc19d('0x9e')]['id']={'$gt':_0x1c1812[_0xc19d('0x3e')]['id']};}_0x414bbb=_['merge']({},_0x414bbb,_0x1c1812[_0xc19d('0x49')]);return db[_0xc19d('0x5f')][_0xc19d('0x27')]({'where':_0x414bbb[_0xc19d('0x9e')]})[_0xc19d('0x18')](function(_0x42b3f1){_0x2d55d9[_0xc19d('0x27')]=_0x42b3f1;_0x414bbb[_0xc19d('0x48')]=[];if(_0x1c1812['query'][_0xc19d('0xa8')]){_0x414bbb[_0xc19d('0x48')][_0xc19d('0xa9')]({'model':db[_0xc19d('0x86')],'as':_0xc19d('0x86'),'attributes':['id',_0xc19d('0x88'),'alias']});}if(_0x1c1812[_0xc19d('0x3e')][_0xc19d('0xa5')]){_0x414bbb['include']=[{'all':!![]}];}return db[_0xc19d('0x5f')][_0xc19d('0x3c')](_0x414bbb);})[_0xc19d('0x18')](function(_0xd77ac3){_0x2d55d9[_0xc19d('0xa6')]=_0xd77ac3;return _0x2d55d9;});}})[_0xc19d('0x18')](respondWithFilteredResult(_0x4e46fc,_0x414bbb))[_0xc19d('0x20')](handleError(_0x4e46fc,null));};exports[_0xc19d('0xaa')]=function(_0x35ab01,_0x428995){return db[_0xc19d('0x37')]['find']({'where':{'id':_0x35ab01[_0xc19d('0x41')]['id']}})[_0xc19d('0x18')](handleEntityNotFound(_0x428995,null))[_0xc19d('0x18')](function(_0x2d4d1e){if(_0x2d4d1e){return _0x2d4d1e['setTags'](_0x35ab01[_0xc19d('0x31')][_0xc19d('0x96')],_[_0xc19d('0x97')](_0x35ab01['body'],[_0xc19d('0x96'),'id'])||{})[_0xc19d('0xab')](function(){return db[_0xc19d('0xac')][_0xc19d('0x3c')]({'attributes':['id',_0xc19d('0x2d'),'color'],'where':{'id':_0x35ab01[_0xc19d('0x31')][_0xc19d('0x96')]}});})[_0xc19d('0x18')](function(_0x4906d8){socket['emit']('chatInteractionTags:save',{'id':Number(_0x35ab01['params']['id']),'tags':_0x4906d8||[]});return{'id':Number(_0x35ab01[_0xc19d('0x41')]['id']),'tags':_0x4906d8||[]};});}})[_0xc19d('0x18')](respondWithResult(_0x428995,null))['catch'](handleError(_0x428995,null));};exports[_0xc19d('0xad')]=function(_0x19dbc4,_0x219d21){return db[_0xc19d('0x37')]['find']({'where':{'id':_0x19dbc4[_0xc19d('0x41')]['id']}})[_0xc19d('0x18')](handleEntityNotFound(_0x219d21,null))[_0xc19d('0x18')](function(_0x447f41){if(_0x447f41){return _0x447f41[_0xc19d('0xad')](_0x19dbc4[_0xc19d('0x3e')]['ids']);}})[_0xc19d('0x18')](respondWithStatusCode(_0x219d21,null))[_0xc19d('0x20')](handleError(_0x219d21,null));};exports[_0xc19d('0x78')]=function(_0x20b67c,_0x2d8ff6){var _0x1533a0=moment()[_0xc19d('0xae')]()[_0xc19d('0xaf')]();var _0xaf6136=path[_0xc19d('0x74')](config[_0xc19d('0x75')],_0xc19d('0xb0'),_0xc19d('0xb1'),'tmp');var _0x4bfc37=path[_0xc19d('0x74')](config[_0xc19d('0x75')],'server',_0xc19d('0xb1'),_0xc19d('0xb2'));var _0x4d7ed8=path[_0xc19d('0x74')](_0xaf6136,_0x1533a0);var _0x5a9316=util[_0xc19d('0x7b')](_0xc19d('0xb3'),_0x20b67c['params']['id'],_0x1533a0);var _0xb463dd=path[_0xc19d('0x74')](_0xaf6136,_0x5a9316);var _0x165000=[];_0x165000[_0xc19d('0xa9')]({'model':db[_0xc19d('0x86')],'as':_0xc19d('0x86'),'attributes':['id',_0xc19d('0x88')],'raw':!![]});_0x165000[_0xc19d('0xa9')]({'model':db[_0xc19d('0x61')],'as':_0xc19d('0x62'),'attributes':['id','firstName','lastName'],'raw':!![]});if(_0x20b67c[_0xc19d('0x3e')]['attachments']){_0x165000[_0xc19d('0xa9')]({'model':db[_0xc19d('0x6f')],'as':'Attachment','raw':!![]});}var _0x21d22d=[{'model':db[_0xc19d('0x5f')],'as':_0xc19d('0x80'),'attributes':['id',_0xc19d('0x31'),_0xc19d('0x8b'),_0xc19d('0x8c'),_0xc19d('0x8d'),'read'],'include':_0x165000}];_0x21d22d[_0xc19d('0xa9')]({'model':db[_0xc19d('0x4f')],'as':'Account','attributes':['id',_0xc19d('0x2d')]});_0x21d22d[_0xc19d('0xa9')]({'model':db[_0xc19d('0x86')],'as':_0xc19d('0xb4'),'attributes':['id',_0xc19d('0x88')]});return db[_0xc19d('0x37')]['find']({'where':{'id':_0x20b67c['params']['id']},'include':_0x21d22d})[_0xc19d('0x18')](handleEntityNotFound(_0x2d8ff6,null))[_0xc19d('0x18')](function(_0x373d4f){if(_0x373d4f){var _0x5bcb81=_0x373d4f['get']({'plain':!![]});fs[_0xc19d('0xb5')](_0x4d7ed8);var _0x3596cd={'channel':_0xc19d('0xb6'),'account':_0x5bcb81['Account']['name'],'agent':_0x5bcb81['Owner']?_0x5bcb81['Owner'][_0xc19d('0x88')]:'N.A.','createdAt':moment(_0x5bcb81['createdAt'])[_0xc19d('0x7b')](_0xc19d('0xa4'))[_0xc19d('0xaf')](),'closedAt':_0x5bcb81[_0xc19d('0x67')]?moment(_0x5bcb81[_0xc19d('0xb7')])['format'](_0xc19d('0xa4'))[_0xc19d('0xaf')]():'','disposition':_0x5bcb81['disposition'],'chatInfo':{'browser':_0x5bcb81['browserName'],'os':_0x5bcb81[_0xc19d('0xb8')],'referer':_0x5bcb81[_0xc19d('0xb9')],'customerIp':_0x5bcb81[_0xc19d('0xba')],'customerPort':_0x5bcb81[_0xc19d('0xbb')]?_0x5bcb81[_0xc19d('0xbb')]:_0xc19d('0xbc')},'messages':_(_0x5bcb81[_0xc19d('0x80')])['tail']()['filter']({'secret':![]})[_0xc19d('0xa2')](function(_0x4e43c8){if(_0x4e43c8[_0xc19d('0x6f')]){var _0xb977f5=path[_0xc19d('0x74')](_0x4bfc37,_0x4e43c8['Attachment'][_0xc19d('0x6c')]);if(fs[_0xc19d('0xbd')](_0xb977f5)){fs[_0xc19d('0xbe')](_0xb977f5)[_0xc19d('0xbf')](fs[_0xc19d('0xc0')](path[_0xc19d('0x74')](_0x4d7ed8,_0x4e43c8[_0xc19d('0x6f')][_0xc19d('0x6c')])));}}return{'date':moment(_0x4e43c8[_0xc19d('0x8b')])[_0xc19d('0x7b')](_0xc19d('0xa4'))[_0xc19d('0xaf')](),'sender':_0x4e43c8[_0xc19d('0x8c')]===_0xc19d('0xc1')?_0x4e43c8[_0xc19d('0x86')]?_0x4e43c8[_0xc19d('0x86')]['fullname']:_0xc19d('0x84'):_0x4e43c8[_0xc19d('0x62')][_0xc19d('0xc2')]+(_0x4e43c8['Contact']['lastName']?'\x20'+_0x4e43c8[_0xc19d('0x62')][_0xc19d('0xc3')]:''),'body':_0x4e43c8[_0xc19d('0x6f')]?_0x4e43c8[_0xc19d('0x6f')][_0xc19d('0x6c')]:_0x4e43c8['body'],'direction':_0x4e43c8[_0xc19d('0x8c')]==='out'?'A':'C','secret':_0x4e43c8['secret'],'read':_0x4e43c8['read'],'attachment':_0x4e43c8[_0xc19d('0x6f')]};})[_0xc19d('0xc4')]()};return ejs[_0xc19d('0xc5')](path[_0xc19d('0x74')](config['root'],_0xc19d('0xb0'),'views',_0xc19d('0xc6')),{'interaction':_0x3596cd})[_0xc19d('0x18')](function(_0x51b12f){var _0x1c1d03=path['join'](_0x4d7ed8,_0xc19d('0xc7')+_0x5bcb81['id']+'-'+_0x1533a0+'.pdf');var _0x28e6db={'path':_0x1c1d03,'channel':'Chat','interactionId':_0x5bcb81['id']};return pdf[_0xc19d('0xc8')](_0x51b12f,_0x28e6db);})['then'](function(){return new Promise(function(_0x28a413,_0xfd148f){zipdir(_0x4d7ed8,{'saveTo':_0xb463dd},function(_0x42c417,_0x2f6911){if(_0x42c417)return _0xfd148f(_0x42c417);return _0x28a413(_0x2f6911);});})[_0xc19d('0x18')](function(){return new BPromise(function(_0x301aa9,_0x479876){rimraf(_0x4d7ed8,function(_0x50cf7f){if(_0x50cf7f)_0x479876(_0x50cf7f);return _0x301aa9();});});})[_0xc19d('0x18')](function(){return _0x2d8ff6[_0xc19d('0x78')](_0xb463dd,_0x5a9316,function(_0x583425){if(_0x583425){logger[_0xc19d('0x1d')](_0xc19d('0xc9'),_0x583425);}else{fs[_0xc19d('0xca')](_0xb463dd);}});});});}else{return _0x2d8ff6[_0xc19d('0x21')](0xc8);}})[_0xc19d('0x20')](handleError(_0x2d8ff6,null));};