20d75a3043ae84ccfe792b2a1291ef011b701b9f
[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 _0x5316=['updateAttributes','customUpdate','CmContact','abandon','UserId','Interaction\x20already\x20assigned','closed','disposition','AbandonInteraction','basename','filename','file','mimetype','Attachment','attachId','join','offline-chat/','download','close','root','server/files/chat/upload/','format','transcript-%s.txt','now','pathTranscript','Messages','User','ChatWebsite','ContactId','length','System','customer','Visitor','agentIdentifier','website_alias','%s%d','agentAlias','agent_alias','alias','agent_fullname','[%s]\x20%s:\x20%s\x0a','createdAt','MM/DD/YYYY\x20HH:mm:ss','direction','secret','appendFileSync','MailAccount','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','addMessage','ids','getMessages','nolimit','order','sort','where','filter','$gte','YYYY-MM-DD\x20HH:mm:ss','include','rows','getMyMessages','pick','ChatInteractionId','includeAgent','push','addTags','setTags','omit','Tag','color','emit','removeTags','toString','server','tmp','files','attachments','transcript-%d-%s.zip','Contact','firstName','Account','mkdirSync','Chat','Owner','N.A.','closedAt','browserName','osName','customerPort','tail','createWriteStream','lastName','value','views','downloadInteraction.ejs','.pdf','createPdfFromHTML','err','unlinkSync','zip-dir','request-promise','bluebird','mustache','util','path','ejs','ioredis','../../components/parsers/qs','../../components/export/pdf','../../config/logger','../../config/environment','redis','localhost','./chatInteraction.socket','register','jayson/promise','client','http','request','then','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','info','message','catch','status','json','offset','undefined','limit','count','set','Content-Range','destroy','sendStatus','stack','name','merge','body','contact','agent','interaction','account','map','ChatInteraction','type','findAll','chat','query','show','model','rawAttributes','keys','filters','intersection','fields','attributes','includeAll','options','find','create','update','params','describe','findOne','ChatWebsiteId','vidaooApiKey','vidaooEscalation','vidaooMetadata','user','fullname','https://api-vidaoo.xcally.com/api/v1/meetings','email','vidaooNote','follow','isNull','parse','Sequelize','Error\x20in\x20Vidaoo\x20configuration','join_url','out','ChatMessage','ValidationError','Unable\x20to\x20create\x20Vidaoo\x20session'];(function(_0x4716ad,_0x43e86a){var _0x5f50ba=function(_0x107e7f){while(--_0x107e7f){_0x4716ad['push'](_0x4716ad['shift']());}};_0x5f50ba(++_0x43e86a);}(_0x5316,0x6c));var _0x6531=function(_0xdb47d8,_0x933e5b){_0xdb47d8=_0xdb47d8-0x0;var _0x5cdfd9=_0x5316[_0xdb47d8];return _0x5cdfd9;};'use strict';var rimraf=require('rimraf');var zipdir=require(_0x6531('0x0'));var rp=require(_0x6531('0x1'));var moment=require('moment');var BPromise=require(_0x6531('0x2'));var Mustache=require(_0x6531('0x3'));var util=require(_0x6531('0x4'));var path=require(_0x6531('0x5'));var ejs=require(_0x6531('0x6'));var fs=require('fs');var _=require('lodash');var Redis=require(_0x6531('0x7'));var interaction=require('../../components/interaction/service');var qs=require(_0x6531('0x8'));var pdf=require(_0x6531('0x9'));var logger=require(_0x6531('0xa'))('api');var config=require(_0x6531('0xb'));var db=require('../../mysqldb')['db'];config[_0x6531('0xc')]=_['defaults'](config[_0x6531('0xc')],{'host':_0x6531('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x6531('0xc')]));require(_0x6531('0xe'))[_0x6531('0xf')](socket);var jayson=require(_0x6531('0x10'));var client=jayson[_0x6531('0x11')][_0x6531('0x12')]({'port':0x232b});var client9004=jayson[_0x6531('0x11')][_0x6531('0x12')]({'port':0x232c});function respondWithRpcPromise(_0x4ef17b,_0x5994c5,_0x4ce8dc,_0x4f3d96){return new BPromise(function(_0x15694c,_0x47d6dc){var _0x330754=_0x4f3d96||client;return _0x330754[_0x6531('0x13')](_0x4ef17b,_0x4ce8dc)[_0x6531('0x14')](function(_0x2859af){logger['info'](_0x6531('0x15'),_0x5994c5,_0x6531('0x16'));logger[_0x6531('0x17')](_0x6531('0x18'),_0x5994c5,'request\x20sent',JSON[_0x6531('0x19')](_0x2859af));if(_0x2859af[_0x6531('0x1a')]){if(_0x2859af[_0x6531('0x1a')][_0x6531('0x1b')]===0x1f4){logger['error'](_0x6531('0x15'),_0x5994c5,_0x2859af[_0x6531('0x1a')]['message']);return _0x47d6dc(_0x2859af['error']['message']);}logger['error'](_0x6531('0x15'),_0x5994c5,_0x2859af[_0x6531('0x1a')]['message']);return _0x15694c(_0x2859af[_0x6531('0x1a')]['message']);}else{logger[_0x6531('0x1c')](_0x6531('0x15'),_0x5994c5,'request\x20sent');_0x15694c(_0x2859af['result'][_0x6531('0x1d')]);}})[_0x6531('0x1e')](function(_0x4049fc){logger[_0x6531('0x1a')](_0x6531('0x15'),_0x5994c5,_0x4049fc);_0x47d6dc(_0x4049fc);});});}function respondWithStatusCode(_0x282af1,_0xef9308){_0xef9308=_0xef9308||0xcc;return function(_0xe5c47c){if(_0xe5c47c){return _0x282af1['sendStatus'](_0xef9308);}return _0x282af1[_0x6531('0x1f')](_0xef9308)['end']();};}function respondWithResult(_0x34184a,_0xf9dab9){_0xf9dab9=_0xf9dab9||0xc8;return function(_0x322a97){if(_0x322a97){return _0x34184a[_0x6531('0x1f')](_0xf9dab9)[_0x6531('0x20')](_0x322a97);}};}function respondWithFilteredResult(_0x3e9c40,_0x43eed9){return function(_0x5a3767){if(_0x5a3767){var _0x347950=typeof _0x43eed9[_0x6531('0x21')]===_0x6531('0x22')&&typeof _0x43eed9[_0x6531('0x23')]===_0x6531('0x22');var _0x317652=_0x5a3767['count'];var _0x417368=_0x347950?0x0:_0x43eed9[_0x6531('0x21')];var _0x2056e2=_0x347950?_0x5a3767[_0x6531('0x24')]:_0x43eed9['offset']+_0x43eed9['limit'];var _0x1415d0;if(_0x2056e2>=_0x317652){_0x2056e2=_0x317652;_0x1415d0=0xc8;}else{_0x1415d0=0xce;}_0x3e9c40['status'](_0x1415d0);return _0x3e9c40[_0x6531('0x25')](_0x6531('0x26'),_0x417368+'-'+_0x2056e2+'/'+_0x317652)[_0x6531('0x20')](_0x5a3767);}return null;};}function saveUpdates(_0x55951e){return function(_0x40d72f){if(_0x40d72f){return _0x40d72f['update'](_0x55951e)[_0x6531('0x14')](function(_0x1659d5){return _0x1659d5;});}return null;};}function removeEntity(_0x59bdaa){return function(_0x3d7c86){if(_0x3d7c86){return _0x3d7c86[_0x6531('0x27')]()[_0x6531('0x14')](function(){_0x59bdaa[_0x6531('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2bec87){return function(_0x3a8097){if(!_0x3a8097){_0x2bec87[_0x6531('0x28')](0x194);}return _0x3a8097;};}function handleError(_0x8713ee,_0x4127c1){_0x4127c1=_0x4127c1||0x1f4;return function(_0x16d7ab){logger['error'](_0x16d7ab[_0x6531('0x29')]);if(_0x16d7ab['name']){delete _0x16d7ab[_0x6531('0x2a')];}_0x8713ee[_0x6531('0x1f')](_0x4127c1)['send'](_0x16d7ab);};}function getMustacheRender(_0x41e0a3,_0x67ed4){return Mustache['render'](_0x41e0a3,_[_0x6531('0x2b')](_0x67ed4[_0x6531('0x2c')],{'contact':_0x67ed4[_0x6531('0x2d')],'message':_0x67ed4[_0x6531('0x1d')],'agent':_0x67ed4[_0x6531('0x2e')],'interaction':_0x67ed4[_0x6531('0x2f')],'account':_0x67ed4[_0x6531('0x30')]}))||'';}exports['index']=function(_0x42a8e2,_0x40627d){var _0x5b1959={};var _0x36089e=_[_0x6531('0x31')](db[_0x6531('0x32')]['rawAttributes'],function(_0x3a81cc){return{'name':_0x3a81cc['fieldName'],'type':_0x3a81cc[_0x6531('0x33')]['key']};});_0x5b1959=qs['getOptions'](_0x36089e,_0x42a8e2);return interaction[_0x6531('0x34')](_0x6531('0x35'),_0x42a8e2[_0x6531('0x36')],_0x42a8e2['user'],_0x5b1959,_0x36089e)['then'](respondWithFilteredResult(_0x40627d,_0x5b1959))[_0x6531('0x1e')](handleError(_0x40627d,null));};exports[_0x6531('0x37')]=function(_0x4fcb7a,_0x4eb7fd){var _0x2d3db4={'raw':![],'where':{'id':_0x4fcb7a['params']['id']}},_0x2e8058={};_0x2e8058[_0x6531('0x38')]=_['keys'](db[_0x6531('0x32')][_0x6531('0x39')]);_0x2e8058[_0x6531('0x36')]=_[_0x6531('0x3a')](_0x4fcb7a[_0x6531('0x36')]);_0x2e8058[_0x6531('0x3b')]=_[_0x6531('0x3c')](_0x2e8058[_0x6531('0x38')],_0x2e8058['query']);_0x2d3db4['attributes']=_[_0x6531('0x3c')](_0x2e8058[_0x6531('0x38')],qs[_0x6531('0x3d')](_0x4fcb7a[_0x6531('0x36')][_0x6531('0x3d')]));_0x2d3db4['attributes']=_0x2d3db4[_0x6531('0x3e')]['length']?_0x2d3db4[_0x6531('0x3e')]:_0x2e8058[_0x6531('0x38')];if(_0x4fcb7a['query'][_0x6531('0x3f')]){_0x2d3db4['include']=[{'all':!![]}];}_0x2d3db4=_[_0x6531('0x2b')]({},_0x2d3db4,_0x4fcb7a[_0x6531('0x40')]);return db[_0x6531('0x32')][_0x6531('0x41')](_0x2d3db4)['then'](handleEntityNotFound(_0x4eb7fd,null))[_0x6531('0x14')](respondWithResult(_0x4eb7fd,null))['catch'](handleError(_0x4eb7fd,null));};exports[_0x6531('0x42')]=function(_0xa5ab28,_0x2139b5){return db[_0x6531('0x32')][_0x6531('0x42')](_0xa5ab28[_0x6531('0x2c')],{})[_0x6531('0x14')](respondWithResult(_0x2139b5,0xc9))['catch'](handleError(_0x2139b5,null));};exports[_0x6531('0x43')]=function(_0x1799c1,_0x270687){if(_0x1799c1[_0x6531('0x2c')]['id']){delete _0x1799c1['body']['id'];}return db['ChatInteraction'][_0x6531('0x41')]({'where':{'id':_0x1799c1['params']['id']}})[_0x6531('0x14')](handleEntityNotFound(_0x270687,null))['then'](saveUpdates(_0x1799c1[_0x6531('0x2c')],null))['then'](respondWithResult(_0x270687,null))[_0x6531('0x1e')](handleError(_0x270687,null));};exports['destroy']=function(_0x39c149,_0x3f38ae){return db['ChatInteraction']['find']({'where':{'id':_0x39c149[_0x6531('0x44')]['id']}})[_0x6531('0x14')](handleEntityNotFound(_0x3f38ae,null))[_0x6531('0x14')](removeEntity(_0x3f38ae,null))[_0x6531('0x1e')](handleError(_0x3f38ae,null));};exports[_0x6531('0x45')]=function(_0x51045b,_0x18e720){return db[_0x6531('0x32')]['describe']()['then'](respondWithResult(_0x18e720,null))[_0x6531('0x1e')](handleError(_0x18e720,null));};exports['createVidaooSession']=function(_0x1b54df,_0x4613e0){var _0x569a75=_0x1b54df['params']['id'];var _0x14b874;var _0x1133d7;var _0x280546;return db['ChatInteraction'][_0x6531('0x46')]({'where':{'id':_0x569a75}})[_0x6531('0x14')](function(_0x53908d){_0x14b874=_0x53908d;return db['ChatWebsite']['findOne']({'where':{'id':_0x53908d[_0x6531('0x47')]},'attributes':['id',_0x6531('0x48'),_0x6531('0x49'),'vidaooTopic','vidaooNote',_0x6531('0x4a')],'raw':!![]});})[_0x6531('0x14')](function(_0x5320f3){if(_0x5320f3&&_0x5320f3[_0x6531('0x48')]&&_0x5320f3['vidaooEscalation']){_0x1133d7=_0x5320f3;var _0x1ed396={'interaction':{'id':_0x569a75},'agent':{'id':_0x1b54df[_0x6531('0x4b')]['id'],'name':_0x1b54df[_0x6531('0x4b')]['name'],'fullname':_0x1b54df[_0x6531('0x4b')][_0x6531('0x4c')],'email':_0x1b54df['user']['email']},'contact':_0x1b54df[_0x6531('0x2c')][_0x6531('0x2d')],'account':_0x1b54df[_0x6531('0x2c')]['account']};var _0x1e3d5d={'rejectUnauthorized':![],'method':'POST','url':_0x6531('0x4d'),'headers':{'X-APIKEY':_0x5320f3[_0x6531('0x48')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x1b54df[_0x6531('0x4b')][_0x6531('0x4e')]],'buttons':null,'topic':_0x1133d7['vidaooTopic'],'note':_['isNull'](_0x1133d7[_0x6531('0x4f')])?null:getMustacheRender(_0x1133d7[_0x6531('0x4f')],_0x1ed396),'metadata':null},'redirect':_0x6531('0x50'),'json':!![]};try{if(!_[_0x6531('0x51')](_0x1133d7[_0x6531('0x4a')])){var _0x4e675a=getMustacheRender(_0x1133d7[_0x6531('0x4a')],_0x1ed396);var _0x2a3f15=JSON[_0x6531('0x52')](_0x4e675a);_0x1e3d5d[_0x6531('0x2c')]['metadata']=_0x2a3f15;}}catch(_0x4aa15b){throw new db[(_0x6531('0x53'))]['ValidationError']('Error\x20in\x20conversion\x20vidaooMetadata');}return rp(_0x1e3d5d);}else{throw new db[(_0x6531('0x53'))]['ValidationError'](_0x6531('0x54'));}})[_0x6531('0x14')](function(_0xd365d7){_0x280546=_0xd365d7;if(_0x280546['id']){var _0x59e605={'body':_0x280546[_0x6531('0x55')],'ChatWebsiteId':_0x1133d7['id'],'ChatInteractionId':_0x14b874['id'],'direction':_0x6531('0x56'),'UserId':_0x1b54df[_0x6531('0x4b')]['id']};return db[_0x6531('0x57')][_0x6531('0x42')](_0x59e605,{});}else{throw new db['Sequelize'][(_0x6531('0x58'))](_0x6531('0x59'));}})[_0x6531('0x14')](function(){return _0x14b874[_0x6531('0x5a')]({'vidaooSessionId':_0x280546['id']});})[_0x6531('0x14')](respondWithResult(_0x4613e0,null))[_0x6531('0x1e')](handleError(_0x4613e0,null));};exports[_0x6531('0x5b')]=function(_0x167f7d,_0x35b530){if(_0x167f7d[_0x6531('0x2c')]['id']){delete _0x167f7d[_0x6531('0x2c')]['id'];}return db[_0x6531('0x32')][_0x6531('0x41')]({'where':{'id':_0x167f7d[_0x6531('0x44')]['id']},'include':[{'model':db[_0x6531('0x5c')],'as':'Contact'}]})[_0x6531('0x14')](handleEntityNotFound(_0x35b530,null))[_0x6531('0x14')](saveUpdates(_0x167f7d[_0x6531('0x2c')],null))[_0x6531('0x14')](respondWithResult(_0x35b530,null))[_0x6531('0x1e')](handleError(_0x35b530,null));};exports[_0x6531('0x5d')]=function(_0x378d11,_0xd9e9d9){if(_0x378d11[_0x6531('0x2c')]['id']){delete _0x378d11[_0x6531('0x2c')]['id'];}return db[_0x6531('0x32')][_0x6531('0x41')]({'where':{'id':_0x378d11['params']['id']}})[_0x6531('0x14')](function(_0x281fa4){if(!_0x281fa4){logger[_0x6531('0x1a')]('abandonInteraction,\x20%s,\x20%s,\x20%s',_0x6531('0x5d'),0x194,'entity\x20not\x20found');_0xd9e9d9[_0x6531('0x28')](0x194);}else{if(_0x281fa4[_0x6531('0x5e')]){throw new db[(_0x6531('0x53'))][(_0x6531('0x58'))](_0x6531('0x5f'));}}return _0x281fa4;})[_0x6531('0x14')](function(_0x2ea28e){if(_0x2ea28e){return _0x2ea28e[_0x6531('0x43')]({'closed':_0x378d11[_0x6531('0x2c')][_0x6531('0x60')],'disposition':_0x378d11[_0x6531('0x2c')][_0x6531('0x61')]})[_0x6531('0x14')](function(_0x10b046){return _0x10b046;});}})[_0x6531('0x14')](function(){return respondWithRpcPromise(_0x6531('0x62'),'abandon',_0x378d11[_0x6531('0x2c')],client9004);})[_0x6531('0x14')](respondWithResult(_0xd9e9d9,null))[_0x6531('0x1e')](handleError(_0xd9e9d9,null));};exports['attachmentUpload']=function(_0x512fc4,_0x13450d){_0x512fc4[_0x6531('0x2c')][_0x6531('0x2a')]=_0x512fc4['file']['originalname'];_0x512fc4['body'][_0x6531('0x63')]=_0x512fc4['file'][_0x6531('0x64')];_0x512fc4[_0x6531('0x2c')][_0x6531('0x33')]=_0x512fc4[_0x6531('0x65')][_0x6531('0x66')];return db[_0x6531('0x67')]['create'](_0x512fc4[_0x6531('0x2c')])['then'](respondWithResult(_0x13450d,0xc9))[_0x6531('0x1e')](handleError(_0x13450d,null));};exports['attachmentDownload']=function(_0x17b5ff,_0x2544c7){return db[_0x6531('0x32')][_0x6531('0x46')]({'where':{'id':_0x17b5ff[_0x6531('0x44')]['id']},'raw':!![]})[_0x6531('0x14')](handleEntityNotFound(_0x2544c7,null))[_0x6531('0x14')](function(_0x3ad9a7){if(_0x3ad9a7){if(_0x3ad9a7['closed']){return _0x2544c7[_0x6531('0x1f')](0x193)[_0x6531('0x20')]({'status':0x193,'message':'Unauthorized'});}return db[_0x6531('0x67')][_0x6531('0x46')]({'where':{'id':_0x17b5ff[_0x6531('0x36')][_0x6531('0x68')]},'raw':!![]})['then'](handleEntityNotFound(_0x2544c7,null));}})[_0x6531('0x14')](function(_0x29de44){if(_0x29de44){var _0x2d717c=_0x29de44['ChatOfflineMessageId']!==null;var _0x529826=path[_0x6531('0x69')](config['root'],'server/files/attachments/');if(_0x2d717c){_0x529826=path['join'](_0x529826,_0x6531('0x6a'));}var _0x5b769d=path[_0x6531('0x69')](_0x529826,_0x29de44[_0x6531('0x63')]);return _0x2544c7[_0x6531('0x6b')](_0x5b769d);}})[_0x6531('0x1e')](handleError(_0x2544c7,null));};exports[_0x6531('0x6c')]=function(_0x2abb1c,_0x3125ba){var _0x522967=null;var _0xba7c11=null;var _0x2c6b75=null;if(_0x2abb1c[_0x6531('0x2c')]['id']){delete _0x2abb1c[_0x6531('0x2c')]['id'];}if(_0x2abb1c[_0x6531('0x2c')]['mailTranscript']){_0x2c6b75=path[_0x6531('0x69')](config[_0x6531('0x6d')],_0x6531('0x6e'),util[_0x6531('0x6f')](_0x6531('0x70'),Date[_0x6531('0x71')]()));_0x2abb1c[_0x6531('0x2c')][_0x6531('0x72')]=_0x2c6b75;}return db[_0x6531('0x32')][_0x6531('0x41')]({'where':{'id':_0x2abb1c[_0x6531('0x44')]['id']},'include':[{'model':db[_0x6531('0x57')],'as':_0x6531('0x73'),'include':[{'model':db[_0x6531('0x74')],'as':'User'}]}]})[_0x6531('0x14')](handleEntityNotFound(_0x3125ba,null))['then'](saveUpdates(_0x2abb1c[_0x6531('0x2c')],null))[_0x6531('0x14')](function(_0x3f7ad2){if(_0x3f7ad2){_0x522967=_0x3f7ad2;return db[_0x6531('0x75')][_0x6531('0x41')]({'where':{'id':_0x522967[_0x6531('0x47')]}});}})['then'](function(_0x1b0ec7){if(_0x1b0ec7){_0xba7c11=_0x1b0ec7;return db['CmContact'][_0x6531('0x41')]({'where':{'id':_0x522967[_0x6531('0x76')]}});}})[_0x6531('0x14')](function(_0x5e7c2c){if(_0x5e7c2c){if(_0x2c6b75){var _0x3dc904=null;for(var _0xb2e2e8=0x1;_0xb2e2e8<_0x522967['Messages'][_0x6531('0x77')];++_0xb2e2e8){_0x3dc904=_0x522967['Messages'][_0xb2e2e8];var _0x5c4fa3=_0x3dc904[_0x6531('0x5e')]?util[_0x6531('0x6f')]('%s%d',_0xba7c11['agentAlias'],_0x3dc904['UserId']):_0x6531('0x78');var _0x25c9b1=_0x2abb1c[_0x6531('0x2c')][_0x6531('0x79')]||util['format']('%s%d',_0x6531('0x7a'),_0x3dc904[_0x6531('0x76')]);switch(_0xba7c11[_0x6531('0x7b')]){case _0x6531('0x7c'):_0x5c4fa3=_0x3dc904['UserId']?util[_0x6531('0x6f')](_0x6531('0x7d'),_0xba7c11[_0x6531('0x7e')],_0x3dc904[_0x6531('0x5e')]):_0x6531('0x78');break;case _0x6531('0x7f'):_0x5c4fa3=_0x3dc904[_0x6531('0x5e')]?_0x3dc904[_0x6531('0x74')][_0x6531('0x80')]||_0x3dc904[_0x6531('0x74')][_0x6531('0x4c')]:'System';break;case _0x6531('0x81'):_0x5c4fa3=_0x3dc904['UserId']?_0x3dc904[_0x6531('0x74')][_0x6531('0x4c')]:_0x6531('0x78');break;default:_0x5c4fa3=_0x3dc904['UserId']?util[_0x6531('0x6f')](_0x6531('0x7d'),_0xba7c11[_0x6531('0x7e')],_0x3dc904[_0x6531('0x5e')]):'System';}var _0xfe2a7f=util[_0x6531('0x6f')](_0x6531('0x82'),moment(_0x3dc904[_0x6531('0x83')])[_0x6531('0x6f')](_0x6531('0x84')),_0x3dc904[_0x6531('0x85')]==='in'?_0x25c9b1:_0x5c4fa3,_0x3dc904[_0x6531('0x2c')]);if(!_0x3dc904[_0x6531('0x86')]){fs[_0x6531('0x87')](_0x2c6b75,_0xfe2a7f);}}return db[_0x6531('0x88')]['findOne']({'where':{'service':!![]},'include':[{'model':db[_0x6531('0x89')],'as':_0x6531('0x8a'),'raw':!![],'include':[{'model':db[_0x6531('0x8b')],'as':_0x6531('0x8b'),'raw':!![]}]}]});}}})[_0x6531('0x14')](function(_0x107c18){if(!_0x107c18||!_0x107c18[_0x6531('0x8a')]||!_0x2abb1c[_0x6531('0x2c')])return _0x522967;var _0x47c286=_0x107c18[_0x6531('0x8c')]();return respondWithRpcPromise(_0x6531('0x8d'),_0x6531('0x8e'),{'account':_0x47c286,'message':{'from':util[_0x6531('0x6f')](_0x6531('0x8f'),_0x107c18[_0x6531('0x2a')],_0x107c18[_0x6531('0x4e')]||_0x107c18[_0x6531('0x8a')]['user']),'to':_0x2abb1c[_0x6531('0x2c')][_0x6531('0x90')],'subject':_0x6531('0x91'),'text':util[_0x6531('0x6f')](_0x6531('0x92'),_0x2abb1c['body']['mailTranscript']),'attachments':[{'path':_0x2c6b75}]}})[_0x6531('0x14')](function(){return _0x522967;})[_0x6531('0x1e')](function(_0x48a0b5){logger[_0x6531('0x1a')](_0x48a0b5);});})[_0x6531('0x14')](respondWithStatusCode(_0x3125ba,0xc8))[_0x6531('0x1e')](handleError(_0x3125ba,null));};exports[_0x6531('0x93')]=function(_0x64e56e,_0x321ea0){return db['ChatMessage'][_0x6531('0x41')]({'where':{'id':_0x64e56e[_0x6531('0x44')]['id']}})[_0x6531('0x14')](handleEntityNotFound(_0x321ea0,null))['then'](function(_0x184e7f){if(_0x184e7f){return _0x184e7f['addMessage'](_0x64e56e['body'][_0x6531('0x94')],_['omit'](_0x64e56e[_0x6531('0x2c')],[_0x6531('0x94'),'id'])||{});}})[_0x6531('0x14')](respondWithResult(_0x321ea0,null))[_0x6531('0x1e')](handleError(_0x321ea0,null));};exports[_0x6531('0x95')]=function(_0x549459,_0x35c7cd){var _0x1db446={'raw':![],'where':{}};var _0x2c5d23={};var _0x819075={'count':0x0,'rows':[]};return db[_0x6531('0x32')][_0x6531('0x46')]({'where':{'id':_0x549459[_0x6531('0x44')]['id']}})[_0x6531('0x14')](handleEntityNotFound(_0x35c7cd,null))[_0x6531('0x14')](function(_0x543a92){if(_0x543a92){_0x2c5d23[_0x6531('0x38')]=_[_0x6531('0x3a')](db[_0x6531('0x57')][_0x6531('0x39')]);_0x2c5d23['query']=_['keys'](_0x549459[_0x6531('0x36')]);_0x2c5d23['filters']=_[_0x6531('0x3c')](_0x2c5d23['model'],_0x2c5d23[_0x6531('0x36')]);_0x1db446[_0x6531('0x3e')]=_[_0x6531('0x3c')](_0x2c5d23[_0x6531('0x38')],qs[_0x6531('0x3d')](_0x549459[_0x6531('0x36')][_0x6531('0x3d')]));_0x1db446['attributes']=_0x1db446[_0x6531('0x3e')]['length']?_0x1db446[_0x6531('0x3e')]:_0x2c5d23[_0x6531('0x38')];if(!_0x549459[_0x6531('0x36')]['hasOwnProperty'](_0x6531('0x96'))){_0x1db446['limit']=qs[_0x6531('0x23')](_0x549459[_0x6531('0x36')][_0x6531('0x23')]);_0x1db446[_0x6531('0x21')]=qs[_0x6531('0x21')](_0x549459[_0x6531('0x36')]['offset']);}_0x1db446[_0x6531('0x97')]=qs[_0x6531('0x98')](_0x549459[_0x6531('0x36')]['sort']);_0x1db446[_0x6531('0x99')]=qs[_0x6531('0x3b')](_['pick'](_0x549459[_0x6531('0x36')],_0x2c5d23['filters']));_0x1db446['where']['ChatInteractionId']=_0x543a92['id'];if(_0x549459[_0x6531('0x36')][_0x6531('0x9a')]){_0x1db446['where']=_[_0x6531('0x2b')](_0x1db446['where'],{'$or':_[_0x6531('0x31')](_0x1db446['attributes'],function(_0x384a4e){var _0x4df2f1={};_0x4df2f1[_0x384a4e]={'$like':'%'+_0x549459[_0x6531('0x36')][_0x6531('0x9a')]+'%'};return _0x4df2f1;})});}if(_0x549459['query'][_0x6531('0x9b')]){var _0x2af11a=_0x549459[_0x6531('0x36')][_0x6531('0x9b')]['split'](',');var _0x396b88={};_0x396b88[_0x2af11a[0x0]]={'$gte':moment(_0x2af11a[0x1])[_0x6531('0x6f')](_0x6531('0x9c'))};_0x1db446[_0x6531('0x99')]=_['merge'](_0x1db446['where'],_0x396b88);}_0x1db446=_[_0x6531('0x2b')]({},_0x1db446,_0x549459[_0x6531('0x40')]);return db[_0x6531('0x57')][_0x6531('0x24')]({'where':_0x1db446[_0x6531('0x99')]})[_0x6531('0x14')](function(_0x109c5b){_0x819075[_0x6531('0x24')]=_0x109c5b;if(_0x549459[_0x6531('0x36')]['includeAll']){_0x1db446[_0x6531('0x9d')]=[{'all':!![]}];}return db[_0x6531('0x57')][_0x6531('0x34')](_0x1db446);})[_0x6531('0x14')](function(_0x1e4b23){_0x819075[_0x6531('0x9e')]=_0x1e4b23;return _0x819075;});}})[_0x6531('0x14')](respondWithFilteredResult(_0x35c7cd,_0x1db446))[_0x6531('0x1e')](handleError(_0x35c7cd,null));};exports[_0x6531('0x9f')]=function(_0x3c88a4,_0x298b44){var _0x251d8d={'where':{}},_0x4b068d={},_0x339496={'count':0x0,'rows':[]};return db['ChatInteraction'][_0x6531('0x46')]({'where':{'id':_0x3c88a4[_0x6531('0x44')]['id']}})[_0x6531('0x14')](handleEntityNotFound(_0x298b44,null))[_0x6531('0x14')](function(_0x514024){if(_0x514024){_0x4b068d[_0x6531('0x38')]=_['keys'](db[_0x6531('0x57')][_0x6531('0x39')]);_0x4b068d['query']=_[_0x6531('0x3a')](_0x3c88a4[_0x6531('0x36')]);_0x4b068d[_0x6531('0x3b')]=_['intersection'](_0x4b068d[_0x6531('0x38')],_0x4b068d['query']);_0x251d8d[_0x6531('0x3e')]=_[_0x6531('0x3c')](_0x4b068d[_0x6531('0x38')],qs[_0x6531('0x3d')](_0x3c88a4[_0x6531('0x36')][_0x6531('0x3d')]));_0x251d8d[_0x6531('0x3e')]=_0x251d8d[_0x6531('0x3e')][_0x6531('0x77')]?_0x251d8d[_0x6531('0x3e')]:_0x4b068d['model'];if(!_0x3c88a4['query']['hasOwnProperty'](_0x6531('0x96'))){_0x251d8d[_0x6531('0x23')]=qs[_0x6531('0x23')](_0x3c88a4[_0x6531('0x36')]['limit']);_0x251d8d[_0x6531('0x21')]=qs[_0x6531('0x21')](_0x3c88a4['query'][_0x6531('0x21')]);}_0x251d8d[_0x6531('0x97')]=qs[_0x6531('0x98')](_0x3c88a4[_0x6531('0x36')][_0x6531('0x98')]);_0x251d8d['where']=qs['filters'](_[_0x6531('0xa0')](_0x3c88a4[_0x6531('0x36')],_0x4b068d[_0x6531('0x3b')]));_0x251d8d[_0x6531('0x99')][_0x6531('0xa1')]=_0x514024['id'];if(_0x3c88a4[_0x6531('0x36')][_0x6531('0x9a')]){_0x251d8d[_0x6531('0x99')]=_[_0x6531('0x2b')](_0x251d8d[_0x6531('0x99')],{'$or':_[_0x6531('0x31')](_0x251d8d[_0x6531('0x3e')],function(_0x2fb1c8){var _0x5c8501={};_0x5c8501[_0x2fb1c8]={'$like':'%'+_0x3c88a4['query']['filter']+'%'};return _0x5c8501;})});}_0x251d8d[_0x6531('0x99')][_0x6531('0x86')]=![];if(_0x3c88a4['query']['id']){_0x251d8d['where']['id']={'$gt':_0x3c88a4[_0x6531('0x36')]['id']};}_0x251d8d=_[_0x6531('0x2b')]({},_0x251d8d,_0x3c88a4['options']);return db[_0x6531('0x57')][_0x6531('0x24')]({'where':_0x251d8d['where']})[_0x6531('0x14')](function(_0x1098b4){_0x339496[_0x6531('0x24')]=_0x1098b4;_0x251d8d[_0x6531('0x9d')]=[];if(_0x3c88a4[_0x6531('0x36')][_0x6531('0xa2')]){_0x251d8d['include'][_0x6531('0xa3')]({'model':db[_0x6531('0x74')],'as':_0x6531('0x74'),'attributes':['id',_0x6531('0x4c'),'alias']});}if(_0x3c88a4['query'][_0x6531('0x3f')]){_0x251d8d[_0x6531('0x9d')]=[{'all':!![]}];}return db[_0x6531('0x57')][_0x6531('0x34')](_0x251d8d);})[_0x6531('0x14')](function(_0xe46052){_0x339496[_0x6531('0x9e')]=_0xe46052;return _0x339496;});}})['then'](respondWithFilteredResult(_0x298b44,_0x251d8d))['catch'](handleError(_0x298b44,null));};exports[_0x6531('0xa4')]=function(_0xddfa5e,_0x468725){return db[_0x6531('0x32')][_0x6531('0x41')]({'where':{'id':_0xddfa5e['params']['id']}})['then'](handleEntityNotFound(_0x468725,null))[_0x6531('0x14')](function(_0x417e3e){if(_0x417e3e){return _0x417e3e[_0x6531('0xa5')](_0xddfa5e['body'][_0x6531('0x94')],_[_0x6531('0xa6')](_0xddfa5e[_0x6531('0x2c')],[_0x6531('0x94'),'id'])||{})['spread'](function(){return db[_0x6531('0xa7')][_0x6531('0x34')]({'attributes':['id','name',_0x6531('0xa8')],'where':{'id':_0xddfa5e[_0x6531('0x2c')][_0x6531('0x94')]}});})[_0x6531('0x14')](function(_0x1249c1){socket[_0x6531('0xa9')]('chatInteractionTags:save',{'id':Number(_0xddfa5e[_0x6531('0x44')]['id']),'tags':_0x1249c1||[]});return{'id':Number(_0xddfa5e[_0x6531('0x44')]['id']),'tags':_0x1249c1||[]};});}})[_0x6531('0x14')](respondWithResult(_0x468725,null))['catch'](handleError(_0x468725,null));};exports[_0x6531('0xaa')]=function(_0x1b1ffb,_0x301e13){return db['ChatInteraction'][_0x6531('0x41')]({'where':{'id':_0x1b1ffb[_0x6531('0x44')]['id']}})[_0x6531('0x14')](handleEntityNotFound(_0x301e13,null))['then'](function(_0x424d07){if(_0x424d07){return _0x424d07[_0x6531('0xaa')](_0x1b1ffb[_0x6531('0x36')][_0x6531('0x94')]);}})[_0x6531('0x14')](respondWithStatusCode(_0x301e13,null))[_0x6531('0x1e')](handleError(_0x301e13,null));};exports[_0x6531('0x6b')]=function(_0x27d245,_0x1119b8){var _0x46a656=moment()['unix']()[_0x6531('0xab')]();var _0x577378=path[_0x6531('0x69')](config['root'],_0x6531('0xac'),'files',_0x6531('0xad'));var _0x54990a=path[_0x6531('0x69')](config['root'],_0x6531('0xac'),_0x6531('0xae'),_0x6531('0xaf'));var _0x392deb=path[_0x6531('0x69')](_0x577378,_0x46a656);var _0x1cc140=util['format'](_0x6531('0xb0'),_0x27d245[_0x6531('0x44')]['id'],_0x46a656);var _0x3b8843=path[_0x6531('0x69')](_0x577378,_0x1cc140);var _0x5afa77=[];_0x5afa77[_0x6531('0xa3')]({'model':db[_0x6531('0x74')],'as':_0x6531('0x74'),'attributes':['id',_0x6531('0x4c')],'raw':!![]});_0x5afa77[_0x6531('0xa3')]({'model':db['CmContact'],'as':_0x6531('0xb1'),'attributes':['id',_0x6531('0xb2'),'lastName'],'raw':!![]});if(_0x27d245[_0x6531('0x36')][_0x6531('0xaf')]){_0x5afa77[_0x6531('0xa3')]({'model':db[_0x6531('0x67')],'as':'Attachment','raw':!![]});}var _0x276c0c=[{'model':db[_0x6531('0x57')],'as':_0x6531('0x73'),'attributes':['id',_0x6531('0x2c'),_0x6531('0x83'),'direction',_0x6531('0x86'),'read'],'include':_0x5afa77}];_0x276c0c[_0x6531('0xa3')]({'model':db[_0x6531('0x75')],'as':_0x6531('0xb3'),'attributes':['id',_0x6531('0x2a')]});_0x276c0c[_0x6531('0xa3')]({'model':db[_0x6531('0x74')],'as':'Owner','attributes':['id',_0x6531('0x4c')]});return db[_0x6531('0x32')][_0x6531('0x41')]({'where':{'id':_0x27d245[_0x6531('0x44')]['id']},'include':_0x276c0c})[_0x6531('0x14')](handleEntityNotFound(_0x1119b8,null))[_0x6531('0x14')](function(_0x4cd39b){if(_0x4cd39b){var _0x317531=_0x4cd39b['get']({'plain':!![]});fs[_0x6531('0xb4')](_0x392deb);var _0x3ca22a={'channel':_0x6531('0xb5'),'account':_0x317531[_0x6531('0xb3')][_0x6531('0x2a')],'agent':_0x317531[_0x6531('0xb6')]?_0x317531[_0x6531('0xb6')][_0x6531('0x4c')]:_0x6531('0xb7'),'createdAt':moment(_0x317531[_0x6531('0x83')])[_0x6531('0x6f')](_0x6531('0x9c'))[_0x6531('0xab')](),'closedAt':_0x317531[_0x6531('0x60')]?moment(_0x317531[_0x6531('0xb8')])['format'](_0x6531('0x9c'))[_0x6531('0xab')]():'','disposition':_0x317531[_0x6531('0x61')],'chatInfo':{'browser':_0x317531[_0x6531('0xb9')],'os':_0x317531[_0x6531('0xba')],'referer':_0x317531['referer'],'customerIp':_0x317531['customerIp'],'customerPort':_0x317531[_0x6531('0xbb')]?_0x317531[_0x6531('0xbb')]:_0x6531('0xb7')},'messages':_(_0x317531[_0x6531('0x73')])[_0x6531('0xbc')]()['filter']({'secret':![]})[_0x6531('0x31')](function(_0x5e3222){if(_0x5e3222[_0x6531('0x67')]){var _0x7f302c=path[_0x6531('0x69')](_0x54990a,_0x5e3222[_0x6531('0x67')][_0x6531('0x63')]);if(fs['existsSync'](_0x7f302c)){fs['createReadStream'](_0x7f302c)['pipe'](fs[_0x6531('0xbd')](path[_0x6531('0x69')](_0x392deb,_0x5e3222[_0x6531('0x67')][_0x6531('0x63')])));}}return{'date':moment(_0x5e3222['createdAt'])[_0x6531('0x6f')](_0x6531('0x9c'))[_0x6531('0xab')](),'sender':_0x5e3222[_0x6531('0x85')]===_0x6531('0x56')?_0x5e3222[_0x6531('0x74')]?_0x5e3222[_0x6531('0x74')][_0x6531('0x4c')]:_0x6531('0x78'):_0x5e3222[_0x6531('0xb1')][_0x6531('0xb2')]+(_0x5e3222[_0x6531('0xb1')][_0x6531('0xbe')]?'\x20'+_0x5e3222['Contact'][_0x6531('0xbe')]:''),'body':_0x5e3222[_0x6531('0x67')]?_0x5e3222['Attachment'][_0x6531('0x63')]:_0x5e3222[_0x6531('0x2c')],'direction':_0x5e3222[_0x6531('0x85')]===_0x6531('0x56')?'A':'C','secret':_0x5e3222[_0x6531('0x86')],'read':_0x5e3222['read'],'attachment':_0x5e3222[_0x6531('0x67')]};})[_0x6531('0xbf')]()};return ejs['renderFile'](path[_0x6531('0x69')](config[_0x6531('0x6d')],'server',_0x6531('0xc0'),_0x6531('0xc1')),{'interaction':_0x3ca22a})[_0x6531('0x14')](function(_0x5be33c){var _0x455b14=path[_0x6531('0x69')](_0x392deb,'transcript-'+_0x317531['id']+'-'+_0x46a656+_0x6531('0xc2'));var _0x10f816={'path':_0x455b14,'channel':_0x6531('0xb5'),'interactionId':_0x317531['id']};return pdf[_0x6531('0xc3')](_0x5be33c,_0x10f816);})[_0x6531('0x14')](function(){return new Promise(function(_0x29499d,_0x411eeb){zipdir(_0x392deb,{'saveTo':_0x3b8843},function(_0x540f18,_0x2e5711){if(_0x540f18)return _0x411eeb(_0x540f18);return _0x29499d(_0x2e5711);});})[_0x6531('0x14')](function(){return new BPromise(function(_0x24ab58,_0x1824c0){rimraf(_0x392deb,function(_0x228245){if(_0x228245)_0x1824c0(_0x228245);return _0x24ab58();});});})[_0x6531('0x14')](function(){return _0x1119b8[_0x6531('0x6b')](_0x3b8843,_0x1cc140,function(_0x484369){if(_0x484369){logger[_0x6531('0x1a')](_0x6531('0xc4'),_0x484369);}else{fs[_0x6531('0xc5')](_0x3b8843);}});});});}else{return _0x1119b8['sendStatus'](0xc8);}})[_0x6531('0x1e')](handleError(_0x1119b8,null));};