Built motion from commit (unavailable).|2.0.82
[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 _0x850a=['attachId','download','join','root','close','server/files/chat/upload/','format','User','ChatWebsite','ContactId','UserId','%s%d','agentAlias','System','customer','Visitor','alias','agent_fullname','[%s]\x20%s:\x20%s\x0a','MM/DD/YYYY\x20HH:mm:ss','secret','appendFileSync','MailServerOut','Smtp','service','host','port','secure','authentication','user','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','mailTranscript','addMessage','omit','ids','pick','map','$gte','split','YYYY-MM-DD\x20HH:mm:ss','getMyMessages','includeAgent','rows','addTags','setTags','spread','chatInteractionTags:save','removeTags','unix','server','files','tmp','attachments','interaction-%s.zip','Contact','firstName','Letter','1cm','mkdirSync','<h2>Date:\x20%s</h2>','MMMM\x20Do\x20YYYY,\x20HH:mm:ss','<hr>','<div\x20style=\x22border-style:\x20solid;\x20border-width:\x201px;\x20margin:\x203px;\x22>','<p\x20style=\x22margin:\x203px;\x22>%s:\x20%s</p>','</div>','existsSync','createReadStream','pipe','createWriteStream','toFile','interaction-','.pdf','unlinkSync','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','socket.io-emitter','localhost','jayson/promise','client','http','then','request\x20sent','debug','stringify','error','code','ChatInteraction,\x20%s,\x20%s','message','info','sendStatus','status','end','json','offset','set','apply','reject','save','update','destroy','stack','name','send','ChatInteraction','rawAttributes','keys','query','dateEnd','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','where','filters','dateStart','add','day','merge','filter','options','include','tag','push','Tag','distinct','read','ChatMessage','Messages','direction','count','includeAll','Users','fullname','CmContact','Account','key','createdAt','Tags','color','ThroughTags','findAll','show','params','model','length','find','catch','create','body','describe','customUpdate','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','Sequelize','ValidationError','closed','disposition','AbandonInteraction','basename','file','filename','type','mimetype','Attachment','attachmentDownload','findOne','Unauthorized'];(function(_0x101802,_0x11f913){var _0x5d61ce=function(_0x4acc0){while(--_0x4acc0){_0x101802['push'](_0x101802['shift']());}};_0x5d61ce(++_0x11f913);}(_0x850a,0x111));var _0xa850=function(_0x5cbd7b,_0x207439){_0x5cbd7b=_0x5cbd7b-0x0;var _0x3fdfb8=_0x850a[_0x5cbd7b];return _0x3fdfb8;};'use strict';var pdf=require(_0xa850('0x0'));var emlformat=require(_0xa850('0x1'));var rimraf=require(_0xa850('0x2'));var zipdir=require(_0xa850('0x3'));var jsonpatch=require(_0xa850('0x4'));var rp=require(_0xa850('0x5'));var moment=require(_0xa850('0x6'));var BPromise=require(_0xa850('0x7'));var Mustache=require('mustache');var util=require('util');var path=require(_0xa850('0x8'));var sox=require(_0xa850('0x9'));var csv=require('to-csv');var ejs=require(_0xa850('0xa'));var fs=require('fs');var _=require(_0xa850('0xb'));var squel=require(_0xa850('0xc'));var crypto=require(_0xa850('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xa850('0xe'));var toCsv=require('to-csv');var querystring=require(_0xa850('0xf'));var Papa=require(_0xa850('0x10'));var qs=require('../../components/parsers/qs');var logger=require(_0xa850('0x11'))(_0xa850('0x12'));var utils=require(_0xa850('0x13'));var config=require(_0xa850('0x14'));var db=require(_0xa850('0x15'))['db'];var socket=require(_0xa850('0x16'))({'host':_0xa850('0x17'),'port':0x18eb});require('./chatInteraction.socket')['register'](socket);var jayson=require(_0xa850('0x18'));var client=jayson[_0xa850('0x19')]['http']({'port':0x232b});var client9004=jayson[_0xa850('0x19')][_0xa850('0x1a')]({'port':0x232c});function respondWithRpcPromise(_0x39f819,_0x1e9a33,_0x4f88f2,_0x2dc91f){return new BPromise(function(_0x4d03c2,_0xd91ff5){var _0x541e66=_0x2dc91f||client;return _0x541e66['request'](_0x39f819,_0x4f88f2)[_0xa850('0x1b')](function(_0x4f2950){logger['info']('ChatInteraction,\x20%s,\x20%s',_0x1e9a33,_0xa850('0x1c'));logger[_0xa850('0x1d')]('ChatInteraction,\x20%s,\x20%s,\x20%s',_0x1e9a33,_0xa850('0x1c'),JSON[_0xa850('0x1e')](_0x4f2950));if(_0x4f2950[_0xa850('0x1f')]){if(_0x4f2950['error'][_0xa850('0x20')]===0x1f4){logger[_0xa850('0x1f')](_0xa850('0x21'),_0x1e9a33,_0x4f2950[_0xa850('0x1f')][_0xa850('0x22')]);return _0xd91ff5(_0x4f2950[_0xa850('0x1f')]['message']);}logger['error']('ChatInteraction,\x20%s,\x20%s',_0x1e9a33,_0x4f2950[_0xa850('0x1f')][_0xa850('0x22')]);return _0x4d03c2(_0x4f2950[_0xa850('0x1f')][_0xa850('0x22')]);}else{logger[_0xa850('0x23')]('ChatInteraction,\x20%s,\x20%s',_0x1e9a33,_0xa850('0x1c'));_0x4d03c2(_0x4f2950['result'][_0xa850('0x22')]);}})['catch'](function(_0x202dd4){logger['error'](_0xa850('0x21'),_0x1e9a33,_0x202dd4);_0xd91ff5(_0x202dd4);});});}function respondWithStatusCode(_0x234f12,_0x2eb26c){_0x2eb26c=_0x2eb26c||0xcc;return function(_0x3788ef){if(_0x3788ef){return _0x234f12[_0xa850('0x24')](_0x2eb26c);}return _0x234f12[_0xa850('0x25')](_0x2eb26c)[_0xa850('0x26')]();};}function respondWithResult(_0x173a20,_0x5ade45){_0x5ade45=_0x5ade45||0xc8;return function(_0x7d96f6){if(_0x7d96f6){return _0x173a20['status'](_0x5ade45)[_0xa850('0x27')](_0x7d96f6);}};}function respondWithFilteredResult(_0x777262,_0x192ed7){return function(_0x4c56a6){if(_0x4c56a6){var _0x5dbc02=_0x4c56a6['count'],_0x263928=_0x192ed7['offset'],_0x1a8587=_0x192ed7[_0xa850('0x28')]+_0x192ed7['limit'],_0x2baef4;if(_0x1a8587>=_0x5dbc02){_0x1a8587=_0x5dbc02;_0x2baef4=0xc8;}else{_0x2baef4=0xce;}_0x777262[_0xa850('0x25')](_0x2baef4);return _0x777262[_0xa850('0x29')]('Content-Range',_0x263928+'-'+_0x1a8587+'/'+_0x5dbc02)['json'](_0x4c56a6);}return null;};}function patchUpdates(_0x406193){return function(_0x56f8e5){try{jsonpatch[_0xa850('0x2a')](_0x56f8e5,_0x406193,!![]);}catch(_0x117412){return BPromise[_0xa850('0x2b')](_0x117412);}return _0x56f8e5[_0xa850('0x2c')]();};}function saveUpdates(_0x156085,_0x221798){return function(_0x411b53){if(_0x411b53){return _0x411b53[_0xa850('0x2d')](_0x156085)[_0xa850('0x1b')](function(_0x140577){return _0x140577;});}return null;};}function removeEntity(_0x3906df,_0x2dff2b){return function(_0x2c229e){if(_0x2c229e){return _0x2c229e[_0xa850('0x2e')]()[_0xa850('0x1b')](function(){_0x3906df[_0xa850('0x25')](0xcc)[_0xa850('0x26')]();});}};}function handleEntityNotFound(_0x5ec5b2,_0x1e8935){return function(_0x23dcd1){if(!_0x23dcd1){_0x5ec5b2[_0xa850('0x24')](0x194);}return _0x23dcd1;};}function handleError(_0x3f9131,_0x15f083){_0x15f083=_0x15f083||0x1f4;return function(_0x44793e){logger['error'](_0x44793e[_0xa850('0x2f')]);if(_0x44793e[_0xa850('0x30')]){delete _0x44793e[_0xa850('0x30')];}_0x3f9131[_0xa850('0x25')](_0x15f083)[_0xa850('0x31')](_0x44793e);};}exports['index']=function(_0x25da92,_0x2153b1){var _0x2ec67b={},_0xdd5f32={},_0x31ac94={'count':0x0,'rows':[]};var _0x33a28b=db[_0xa850('0x32')][_0xa850('0x33')];_0xdd5f32['model']=_[_0xa850('0x34')](_0x33a28b);var _0x2710ba={'dateStart':_0x25da92['query']['dateStart'],'dateEnd':_0x25da92[_0xa850('0x35')][_0xa850('0x36')]};delete _0x25da92['query']['dateStart'];delete _0x25da92[_0xa850('0x35')][_0xa850('0x36')];_0xdd5f32[_0xa850('0x35')]=_[_0xa850('0x34')](_0x25da92['query']);_0xdd5f32['filters']=_[_0xa850('0x37')](_0xdd5f32['model'],_0xdd5f32['query']);_0x2ec67b[_0xa850('0x38')]=_[_0xa850('0x37')](_0xdd5f32['model'],qs[_0xa850('0x39')](_0x25da92['query'][_0xa850('0x39')]));_0x2ec67b[_0xa850('0x38')]=_0x2ec67b[_0xa850('0x38')]['length']?_0x2ec67b[_0xa850('0x38')]:_0xdd5f32['model'];if(!_0x25da92[_0xa850('0x35')][_0xa850('0x3a')](_0xa850('0x3b'))){_0x2ec67b[_0xa850('0x3c')]=qs[_0xa850('0x3c')](_0x25da92[_0xa850('0x35')][_0xa850('0x3c')]);_0x2ec67b[_0xa850('0x28')]=qs[_0xa850('0x28')](_0x25da92[_0xa850('0x35')][_0xa850('0x28')]);}_0x2ec67b[_0xa850('0x3d')]=qs[_0xa850('0x3e')](_0x25da92[_0xa850('0x35')][_0xa850('0x3e')]);_0x2ec67b[_0xa850('0x3f')]=qs['filters'](_['pick'](_0x25da92[_0xa850('0x35')],_0xdd5f32[_0xa850('0x40')]));if(_0x2710ba[_0xa850('0x41')]){if(_0x2710ba[_0xa850('0x36')]){_0x2710ba[_0xa850('0x36')]=moment(_0x2710ba[_0xa850('0x36')])[_0xa850('0x42')](0x1,_0xa850('0x43'));}else{_0x2710ba[_0xa850('0x36')]=moment(_0x2710ba[_0xa850('0x41')])[_0xa850('0x42')](0x1,'day');}_[_0xa850('0x44')](_0x2ec67b[_0xa850('0x3f')],{'createdAt':{'$gte':_0x2710ba[_0xa850('0x41')],'$lte':_0x2710ba[_0xa850('0x36')]}});}if(_0x25da92[_0xa850('0x35')][_0xa850('0x45')]){_0x2ec67b[_0xa850('0x3f')]=_[_0xa850('0x44')](_0x2ec67b['where'],{'$or':_['map'](_0x2ec67b['attributes'],function(_0x357cd1){var _0x47ca92={};_0x47ca92[_0x357cd1]={'$like':'%'+_0x25da92[_0xa850('0x35')]['filter']+'%'};return _0x47ca92;})});}_0x2ec67b=_['merge']({},_0x2ec67b,_0x25da92[_0xa850('0x46')]);var _0x20b768={'where':_0x2ec67b[_0xa850('0x3f')]};_0x20b768[_0xa850('0x47')]=[];if(_0x25da92[_0xa850('0x35')][_0xa850('0x48')]){_0x20b768[_0xa850('0x47')][_0xa850('0x49')]({'model':db[_0xa850('0x4a')],'as':'Tags','attributes':['id'],'where':{'id':_0x25da92['query'][_0xa850('0x48')]},'required':!![]});_0x20b768[_0xa850('0x4b')]=!![];}if(_0x25da92['query'][_0xa850('0x4c')]){_0x20b768['include'][_0xa850('0x49')]({'model':db[_0xa850('0x4d')],'as':_0xa850('0x4e'),'attributes':['id',_0xa850('0x4f'),'createdAt','read'],'where':{'direction':'in','read':_0x25da92[_0xa850('0x35')][_0xa850('0x4c')]||![]},'required':!![]});_0x20b768[_0xa850('0x4b')]=!![];}return db[_0xa850('0x32')]['count'](_0x20b768)[_0xa850('0x1b')](function(_0x322813){_0x31ac94[_0xa850('0x50')]=_0x322813;if(_0x25da92[_0xa850('0x35')][_0xa850('0x51')]){_0x2ec67b[_0xa850('0x47')]=[{'model':db['User'],'as':_0xa850('0x52'),'required':![],'attributes':['id','name',_0xa850('0x53')]},{'model':db[_0xa850('0x54')],'as':'Contact','required':![]},{'model':db['User'],'as':'Owner','attributes':[_0xa850('0x30'),'fullname','internal'],'required':![]},{'model':db['ChatWebsite'],'as':_0xa850('0x55'),'attributes':['name',_0xa850('0x56')],'required':![]},{'model':db[_0xa850('0x4d')],'as':'Messages','attributes':['id',_0xa850('0x4f'),_0xa850('0x57'),'read'],'where':{'direction':'in','read':_0x25da92['query'][_0xa850('0x4c')]||![]},'required':_0x25da92[_0xa850('0x35')][_0xa850('0x4c')]||![]},{'model':db[_0xa850('0x4a')],'as':_0xa850('0x58'),'attributes':['id',_0xa850('0x30'),_0xa850('0x59')],'required':_0x25da92[_0xa850('0x35')][_0xa850('0x48')]?!![]:![]},{'model':db['Tag'],'as':_0xa850('0x5a'),'attributes':['id',_0xa850('0x30'),_0xa850('0x59')],'through':_0x25da92['query'][_0xa850('0x48')]?{'attributes':[],'where':{'TagId':_0x25da92[_0xa850('0x35')][_0xa850('0x48')]||undefined}}:{},'required':_0x25da92[_0xa850('0x35')][_0xa850('0x48')]?!![]:![]}];}return db[_0xa850('0x32')][_0xa850('0x5b')](_0x2ec67b);})[_0xa850('0x1b')](function(_0x10c44f){_0x31ac94['rows']=_0x10c44f;return _0x31ac94;})['then'](respondWithFilteredResult(_0x2153b1,_0x2ec67b))['catch'](handleError(_0x2153b1,null));};exports[_0xa850('0x5c')]=function(_0x56c4a2,_0x1bd787){var _0x12529={'raw':![],'where':{'id':_0x56c4a2[_0xa850('0x5d')]['id']}},_0x3e7546={};_0x3e7546['model']=_['keys'](db[_0xa850('0x32')]['rawAttributes']);_0x3e7546[_0xa850('0x35')]=_[_0xa850('0x34')](_0x56c4a2[_0xa850('0x35')]);_0x3e7546['filters']=_[_0xa850('0x37')](_0x3e7546[_0xa850('0x5e')],_0x3e7546[_0xa850('0x35')]);_0x12529[_0xa850('0x38')]=_[_0xa850('0x37')](_0x3e7546['model'],qs[_0xa850('0x39')](_0x56c4a2[_0xa850('0x35')][_0xa850('0x39')]));_0x12529[_0xa850('0x38')]=_0x12529['attributes'][_0xa850('0x5f')]?_0x12529['attributes']:_0x3e7546[_0xa850('0x5e')];if(_0x56c4a2[_0xa850('0x35')]['includeAll']){_0x12529['include']=[{'all':!![]}];}_0x12529=_[_0xa850('0x44')]({},_0x12529,_0x56c4a2['options']);return db[_0xa850('0x32')][_0xa850('0x60')](_0x12529)[_0xa850('0x1b')](handleEntityNotFound(_0x1bd787,null))[_0xa850('0x1b')](respondWithResult(_0x1bd787,null))[_0xa850('0x61')](handleError(_0x1bd787,null));};exports[_0xa850('0x62')]=function(_0x1204a7,_0x297ea0){return db[_0xa850('0x32')][_0xa850('0x62')](_0x1204a7['body'],{})['then'](respondWithResult(_0x297ea0,0xc9))[_0xa850('0x61')](handleError(_0x297ea0,null));};exports[_0xa850('0x2d')]=function(_0x1ac54d,_0x138b21){if(_0x1ac54d['body']['id']){delete _0x1ac54d[_0xa850('0x63')]['id'];}return db[_0xa850('0x32')][_0xa850('0x60')]({'where':{'id':_0x1ac54d[_0xa850('0x5d')]['id']}})['then'](handleEntityNotFound(_0x138b21,null))[_0xa850('0x1b')](saveUpdates(_0x1ac54d[_0xa850('0x63')],null))['then'](respondWithResult(_0x138b21,null))[_0xa850('0x61')](handleError(_0x138b21,null));};exports[_0xa850('0x2e')]=function(_0x31f15a,_0x437d70){return db[_0xa850('0x32')][_0xa850('0x60')]({'where':{'id':_0x31f15a[_0xa850('0x5d')]['id']}})['then'](handleEntityNotFound(_0x437d70,null))['then'](removeEntity(_0x437d70,null))['catch'](handleError(_0x437d70,null));};exports[_0xa850('0x64')]=function(_0x58d1c8,_0x4c26c8){return db[_0xa850('0x32')]['describe']()[_0xa850('0x1b')](respondWithResult(_0x4c26c8,null))[_0xa850('0x61')](handleError(_0x4c26c8,null));};exports[_0xa850('0x65')]=function(_0x43f1c6,_0xe89f70){if(_0x43f1c6[_0xa850('0x63')]['id']){delete _0x43f1c6['body']['id'];}return db[_0xa850('0x32')][_0xa850('0x60')]({'where':{'id':_0x43f1c6[_0xa850('0x5d')]['id']}})[_0xa850('0x1b')](handleEntityNotFound(_0xe89f70,null))['then'](saveUpdates(_0x43f1c6['body'],null))['then'](respondWithResult(_0xe89f70,null))[_0xa850('0x61')](handleError(_0xe89f70,null));};exports[_0xa850('0x66')]=function(_0x31509b,_0x4de01f,_0x6a384d){if(_0x31509b[_0xa850('0x63')]['id']){delete _0x31509b[_0xa850('0x63')]['id'];}return db[_0xa850('0x32')][_0xa850('0x60')]({'where':{'id':_0x31509b[_0xa850('0x5d')]['id']}})[_0xa850('0x1b')](function(_0x2f575e){if(!_0x2f575e){logger[_0xa850('0x1f')](_0xa850('0x67'),'abandon',0x194,_0xa850('0x68'));_0x4de01f[_0xa850('0x24')](0x194);}else{if(_0x2f575e['UserId']){throw new db[(_0xa850('0x69'))][(_0xa850('0x6a'))]('Interaction\x20already\x20assigned');}}return _0x2f575e;})[_0xa850('0x1b')](function(_0x5474d8){if(_0x5474d8){return _0x5474d8[_0xa850('0x2d')]({'closed':_0x31509b[_0xa850('0x63')][_0xa850('0x6b')],'closedAt':_0x31509b[_0xa850('0x63')]['closedAt'],'disposition':_0x31509b[_0xa850('0x63')][_0xa850('0x6c')]})[_0xa850('0x1b')](function(_0x4c8f0e){return _0x4c8f0e;});}})[_0xa850('0x1b')](function(_0x22254b){return respondWithRpcPromise(_0xa850('0x6d'),_0xa850('0x66'),_0x31509b[_0xa850('0x63')],client9004);})['then'](respondWithResult(_0x4de01f,null))[_0xa850('0x61')](handleError(_0x4de01f,null));};exports['attachmentUpload']=function(_0x280ece,_0xfb6f0e,_0x3abcd9){_0x280ece[_0xa850('0x63')][_0xa850('0x30')]=_0x280ece['file']['originalname'];_0x280ece[_0xa850('0x63')][_0xa850('0x6e')]=_0x280ece[_0xa850('0x6f')][_0xa850('0x70')];_0x280ece[_0xa850('0x63')][_0xa850('0x71')]=_0x280ece[_0xa850('0x6f')][_0xa850('0x72')];return db[_0xa850('0x73')][_0xa850('0x62')](_0x280ece['body'])['then'](respondWithResult(_0xfb6f0e,0xc9))[_0xa850('0x61')](handleError(_0xfb6f0e,null));};exports[_0xa850('0x74')]=function(_0x42ae37,_0x426914,_0x2c2866){return db[_0xa850('0x32')][_0xa850('0x75')]({'where':{'id':_0x42ae37[_0xa850('0x5d')]['id']},'raw':!![]})[_0xa850('0x1b')](handleEntityNotFound(_0x426914,null))[_0xa850('0x1b')](function(_0x2356d4){if(_0x2356d4){if(_0x2356d4[_0xa850('0x6b')]){return _0x426914[_0xa850('0x25')](0x193)[_0xa850('0x27')]({'status':0x193,'message':_0xa850('0x76')});}return db[_0xa850('0x73')][_0xa850('0x75')]({'where':{'id':_0x42ae37[_0xa850('0x35')][_0xa850('0x77')]},'raw':!![]})[_0xa850('0x1b')](handleEntityNotFound(_0x426914,null));}})[_0xa850('0x1b')](function(_0x18927f){if(_0x18927f){return _0x426914[_0xa850('0x78')](path[_0xa850('0x79')](config[_0xa850('0x7a')],'server/files/attachments/',_0x18927f[_0xa850('0x6e')]));}})[_0xa850('0x61')](handleError(_0x426914,null));};exports[_0xa850('0x7b')]=function(_0x26f26d,_0x3ecb8c){var _0x5bea58=null;var _0x4a73bc=null;var _0x1ad191=null;var _0x5adc2f=null;if(_0x26f26d[_0xa850('0x63')]['id']){delete _0x26f26d[_0xa850('0x63')]['id'];}if(_0x26f26d[_0xa850('0x63')]['mailTranscript']){_0x5adc2f=path[_0xa850('0x79')](config[_0xa850('0x7a')],_0xa850('0x7c'),util[_0xa850('0x7d')]('transcript-%s.txt',Date['now']()));_0x26f26d[_0xa850('0x63')]['pathTranscript']=_0x5adc2f;}return db[_0xa850('0x32')][_0xa850('0x60')]({'where':{'id':_0x26f26d[_0xa850('0x5d')]['id']},'include':[{'model':db[_0xa850('0x4d')],'as':_0xa850('0x4e'),'include':[{'model':db[_0xa850('0x7e')],'as':'User'}]}]})[_0xa850('0x1b')](handleEntityNotFound(_0x3ecb8c,null))['then'](saveUpdates(_0x26f26d['body'],null))[_0xa850('0x1b')](function(_0x269af4){if(_0x269af4){_0x5bea58=_0x269af4;return db[_0xa850('0x7f')][_0xa850('0x60')]({'where':{'id':_0x5bea58['ChatWebsiteId']}});}})['then'](function(_0x244572){if(_0x244572){_0x1ad191=_0x244572;return db[_0xa850('0x54')][_0xa850('0x60')]({'where':{'id':_0x5bea58[_0xa850('0x80')]}});}})[_0xa850('0x1b')](function(_0x5362f0){if(_0x5362f0){_0x4a73bc=_0x5362f0;if(_0x5adc2f){var _0x3ec702=null;for(var _0x517588=0x1;_0x517588<_0x5bea58[_0xa850('0x4e')]['length'];++_0x517588){_0x3ec702=_0x5bea58[_0xa850('0x4e')][_0x517588];var _0x17756b=_0x3ec702[_0xa850('0x81')]?util[_0xa850('0x7d')](_0xa850('0x82'),_0x1ad191[_0xa850('0x83')],_0x3ec702[_0xa850('0x81')]):_0xa850('0x84');var _0x3b34a2=_0x26f26d[_0xa850('0x63')][_0xa850('0x85')]||util[_0xa850('0x7d')](_0xa850('0x82'),_0xa850('0x86'),_0x3ec702[_0xa850('0x80')]);switch(_0x1ad191['agentIdentifier']){case'website_alias':_0x17756b=_0x3ec702['UserId']?util[_0xa850('0x7d')](_0xa850('0x82'),_0x1ad191['agentAlias'],_0x3ec702[_0xa850('0x81')]):'System';break;case'agent_alias':_0x17756b=_0x3ec702[_0xa850('0x81')]?_0x3ec702[_0xa850('0x7e')][_0xa850('0x87')]||_0x3ec702[_0xa850('0x7e')][_0xa850('0x53')]:_0xa850('0x84');break;case _0xa850('0x88'):_0x17756b=_0x3ec702['UserId']?_0x3ec702['User'][_0xa850('0x53')]:_0xa850('0x84');break;default:_0x17756b=_0x3ec702[_0xa850('0x81')]?util[_0xa850('0x7d')](_0xa850('0x82'),_0x1ad191[_0xa850('0x83')],_0x3ec702[_0xa850('0x81')]):_0xa850('0x84');}var _0x3cf757=util[_0xa850('0x7d')](_0xa850('0x89'),moment(_0x3ec702[_0xa850('0x57')])[_0xa850('0x7d')](_0xa850('0x8a')),_0x3ec702[_0xa850('0x4f')]==='in'?_0x3b34a2:_0x17756b,_0x3ec702[_0xa850('0x63')]);if(!_0x3ec702[_0xa850('0x8b')]){fs[_0xa850('0x8c')](_0x5adc2f,_0x3cf757);}}return db['MailAccount'][_0xa850('0x75')]({'where':{'service':!![]},'include':[{'model':db[_0xa850('0x8d')],'as':'Smtp','raw':!![]}]});}}})[_0xa850('0x1b')](function(_0x10322c){if(_0x10322c&&_0x10322c[_0xa850('0x8e')]&&_0x26f26d[_0xa850('0x63')]){var _0x3d693e={'tls':{'rejectUnauthorized':![]}};if(_0x10322c[_0xa850('0x8e')][_0xa850('0x8f')]){_0x3d693e[_0xa850('0x8f')]=_0x10322c[_0xa850('0x8e')][_0xa850('0x8f')];}else{_0x3d693e[_0xa850('0x90')]=_0x10322c['Smtp'][_0xa850('0x90')];_0x3d693e[_0xa850('0x91')]=_0x10322c['Smtp'][_0xa850('0x91')];_0x3d693e['secure']=_0x10322c[_0xa850('0x8e')][_0xa850('0x92')];}if(_0x10322c[_0xa850('0x8e')][_0xa850('0x93')]){_0x3d693e['auth']={'user':_0x10322c['Smtp'][_0xa850('0x94')],'pass':_0x10322c[_0xa850('0x8e')]['pass']};}return respondWithRpcPromise(_0xa850('0x95'),_0xa850('0x96'),{'account':_0x3d693e,'message':{'from':util[_0xa850('0x7d')](_0xa850('0x97'),_0x10322c[_0xa850('0x30')],_0x10322c['email']||_0x10322c[_0xa850('0x8e')][_0xa850('0x94')]),'to':_0x26f26d[_0xa850('0x63')]['mailTranscript'],'subject':_0xa850('0x98'),'text':util[_0xa850('0x7d')](_0xa850('0x99'),_0x26f26d[_0xa850('0x63')][_0xa850('0x9a')]),'attachments':[{'path':_0x5adc2f}]}})['then'](function(){return _0x5bea58;})['catch'](function(_0x55123d){console[_0xa850('0x1f')](_0x55123d);});}else{return _0x5bea58;}})[_0xa850('0x1b')](respondWithStatusCode(_0x3ecb8c,0xc8))[_0xa850('0x61')](handleError(_0x3ecb8c,null));};exports[_0xa850('0x9b')]=function(_0x2b683a,_0x257e88,_0x52a5ec){return db[_0xa850('0x4d')]['find']({'where':{'id':_0x2b683a[_0xa850('0x5d')]['id']}})['then'](handleEntityNotFound(_0x257e88,null))['then'](function(_0xa3cddd){if(_0xa3cddd){return _0xa3cddd[_0xa850('0x9b')](_0x2b683a[_0xa850('0x63')]['ids'],_[_0xa850('0x9c')](_0x2b683a[_0xa850('0x63')],[_0xa850('0x9d'),'id'])||{});}})[_0xa850('0x1b')](respondWithResult(_0x257e88,null))[_0xa850('0x61')](handleError(_0x257e88,null));};exports['getMessages']=function(_0x5251ea,_0x27a67f,_0x525c43){var _0x4c3463={'raw':![],'where':{}};var _0x26604f={};var _0x367c99={'count':0x0,'rows':[]};return db[_0xa850('0x32')][_0xa850('0x75')]({'where':{'id':_0x5251ea[_0xa850('0x5d')]['id']}})[_0xa850('0x1b')](handleEntityNotFound(_0x27a67f,null))[_0xa850('0x1b')](function(_0x219787){if(_0x219787){_0x26604f[_0xa850('0x5e')]=_[_0xa850('0x34')](db[_0xa850('0x4d')][_0xa850('0x33')]);_0x26604f[_0xa850('0x35')]=_[_0xa850('0x34')](_0x5251ea[_0xa850('0x35')]);_0x26604f['filters']=_[_0xa850('0x37')](_0x26604f[_0xa850('0x5e')],_0x26604f[_0xa850('0x35')]);_0x4c3463['attributes']=_['intersection'](_0x26604f[_0xa850('0x5e')],qs[_0xa850('0x39')](_0x5251ea['query'][_0xa850('0x39')]));_0x4c3463['attributes']=_0x4c3463[_0xa850('0x38')]['length']?_0x4c3463['attributes']:_0x26604f[_0xa850('0x5e')];if(!_0x5251ea[_0xa850('0x35')]['hasOwnProperty']('nolimit')){_0x4c3463['limit']=qs[_0xa850('0x3c')](_0x5251ea[_0xa850('0x35')]['limit']);_0x4c3463[_0xa850('0x28')]=qs[_0xa850('0x28')](_0x5251ea[_0xa850('0x35')][_0xa850('0x28')]);}_0x4c3463[_0xa850('0x3d')]=qs[_0xa850('0x3e')](_0x5251ea[_0xa850('0x35')]['sort']);_0x4c3463[_0xa850('0x3f')]=qs[_0xa850('0x40')](_[_0xa850('0x9e')](_0x5251ea[_0xa850('0x35')],_0x26604f[_0xa850('0x40')]));_0x4c3463[_0xa850('0x3f')]['ChatInteractionId']=_0x219787['id'];if(_0x5251ea[_0xa850('0x35')][_0xa850('0x45')]){_0x4c3463[_0xa850('0x3f')]=_[_0xa850('0x44')](_0x4c3463[_0xa850('0x3f')],{'$or':_[_0xa850('0x9f')](_0x4c3463[_0xa850('0x38')],function(_0x40fe07){var _0x313c74={};_0x313c74[_0x40fe07]={'$like':'%'+_0x5251ea[_0xa850('0x35')]['filter']+'%'};return _0x313c74;})});}if(_0x5251ea['query'][_0xa850('0xa0')]){var _0x29e739=_0x5251ea['query'][_0xa850('0xa0')][_0xa850('0xa1')](',');var _0x39672b={};_0x39672b[_0x29e739[0x0]]={'$gte':moment(_0x29e739[0x1])[_0xa850('0x7d')](_0xa850('0xa2'))};_0x4c3463[_0xa850('0x3f')]=_[_0xa850('0x44')](_0x4c3463['where'],_0x39672b);}_0x4c3463=_[_0xa850('0x44')]({},_0x4c3463,_0x5251ea[_0xa850('0x46')]);return db[_0xa850('0x4d')][_0xa850('0x50')]({'where':_0x4c3463[_0xa850('0x3f')]})[_0xa850('0x1b')](function(_0x6f822){_0x367c99[_0xa850('0x50')]=_0x6f822;if(_0x5251ea[_0xa850('0x35')][_0xa850('0x51')]){_0x4c3463['include']=[{'all':!![]}];}return db[_0xa850('0x4d')]['findAll'](_0x4c3463);})[_0xa850('0x1b')](function(_0x285e0f){_0x367c99['rows']=_0x285e0f;return _0x367c99;});}})[_0xa850('0x1b')](respondWithFilteredResult(_0x27a67f,_0x4c3463))['catch'](handleError(_0x27a67f,null));};exports[_0xa850('0xa3')]=function(_0x2288b4,_0x203d27,_0x51fbe4){var _0x5dfd88={'where':{}},_0x12b422={},_0x5ed66d={'count':0x0,'rows':[]};return db[_0xa850('0x32')][_0xa850('0x75')]({'where':{'id':_0x2288b4[_0xa850('0x5d')]['id']}})['then'](handleEntityNotFound(_0x203d27,null))[_0xa850('0x1b')](function(_0x463b1d){if(_0x463b1d){_0x12b422[_0xa850('0x5e')]=_[_0xa850('0x34')](db[_0xa850('0x4d')][_0xa850('0x33')]);_0x12b422[_0xa850('0x35')]=_[_0xa850('0x34')](_0x2288b4[_0xa850('0x35')]);_0x12b422['filters']=_[_0xa850('0x37')](_0x12b422[_0xa850('0x5e')],_0x12b422[_0xa850('0x35')]);_0x5dfd88['attributes']=_[_0xa850('0x37')](_0x12b422[_0xa850('0x5e')],qs[_0xa850('0x39')](_0x2288b4[_0xa850('0x35')][_0xa850('0x39')]));_0x5dfd88['attributes']=_0x5dfd88[_0xa850('0x38')]['length']?_0x5dfd88[_0xa850('0x38')]:_0x12b422[_0xa850('0x5e')];if(!_0x2288b4['query'][_0xa850('0x3a')]('nolimit')){_0x5dfd88[_0xa850('0x3c')]=qs[_0xa850('0x3c')](_0x2288b4[_0xa850('0x35')]['limit']);_0x5dfd88[_0xa850('0x28')]=qs[_0xa850('0x28')](_0x2288b4[_0xa850('0x35')]['offset']);}_0x5dfd88['order']=qs[_0xa850('0x3e')](_0x2288b4[_0xa850('0x35')]['sort']);_0x5dfd88['where']=qs[_0xa850('0x40')](_[_0xa850('0x9e')](_0x2288b4[_0xa850('0x35')],_0x12b422['filters']));_0x5dfd88[_0xa850('0x3f')]['ChatInteractionId']=_0x463b1d['id'];if(_0x2288b4['query'][_0xa850('0x45')]){_0x5dfd88[_0xa850('0x3f')]=_[_0xa850('0x44')](_0x5dfd88['where'],{'$or':_['map'](_0x5dfd88[_0xa850('0x38')],function(_0x466e28){var _0x2650bb={};_0x2650bb[_0x466e28]={'$like':'%'+_0x2288b4[_0xa850('0x35')][_0xa850('0x45')]+'%'};return _0x2650bb;})});}_0x5dfd88[_0xa850('0x3f')][_0xa850('0x8b')]=![];if(_0x2288b4[_0xa850('0x35')]['id']){_0x5dfd88[_0xa850('0x3f')]['id']={'$gt':_0x2288b4['query']['id']};}_0x5dfd88=_[_0xa850('0x44')]({},_0x5dfd88,_0x2288b4['options']);return db[_0xa850('0x4d')]['count']({'where':_0x5dfd88[_0xa850('0x3f')]})[_0xa850('0x1b')](function(_0x1bab79){_0x5ed66d[_0xa850('0x50')]=_0x1bab79;_0x5dfd88['include']=[];if(_0x2288b4['query'][_0xa850('0xa4')]){_0x5dfd88[_0xa850('0x47')][_0xa850('0x49')]({'model':db[_0xa850('0x7e')],'as':_0xa850('0x7e'),'attributes':['id',_0xa850('0x53'),_0xa850('0x87')]});}if(_0x2288b4[_0xa850('0x35')][_0xa850('0x51')]){_0x5dfd88[_0xa850('0x47')]=[{'all':!![]}];}return db['ChatMessage'][_0xa850('0x5b')](_0x5dfd88);})[_0xa850('0x1b')](function(_0x5a628b){_0x5ed66d[_0xa850('0xa5')]=_0x5a628b;return _0x5ed66d;});}})[_0xa850('0x1b')](respondWithFilteredResult(_0x203d27,_0x5dfd88))[_0xa850('0x61')](handleError(_0x203d27,null));};exports[_0xa850('0xa6')]=function(_0x24222a,_0x3e1c17,_0x23bc1f){return db[_0xa850('0x32')][_0xa850('0x60')]({'where':{'id':_0x24222a['params']['id']}})[_0xa850('0x1b')](handleEntityNotFound(_0x3e1c17,null))[_0xa850('0x1b')](function(_0x591a26){if(_0x591a26){return _0x591a26[_0xa850('0xa7')](_0x24222a[_0xa850('0x63')][_0xa850('0x9d')],_[_0xa850('0x9c')](_0x24222a[_0xa850('0x63')],[_0xa850('0x9d'),'id'])||{})[_0xa850('0xa8')](function(){return db[_0xa850('0x4a')]['findAll']({'attributes':['id',_0xa850('0x30'),_0xa850('0x59')],'where':{'id':_0x24222a['body']['ids']}});})[_0xa850('0x1b')](function(_0x3d4a63){socket['emit'](_0xa850('0xa9'),{'id':Number(_0x24222a['params']['id']),'tags':_0x3d4a63||[]});return{'id':Number(_0x24222a['params']['id']),'tags':_0x3d4a63||[]};});}})[_0xa850('0x1b')](respondWithResult(_0x3e1c17,null))[_0xa850('0x61')](handleError(_0x3e1c17,null));};exports[_0xa850('0xaa')]=function(_0x335e47,_0x5d4edb,_0x178be3){var _0x2271e1;return db[_0xa850('0x32')][_0xa850('0x60')]({'where':{'id':_0x335e47['params']['id']}})[_0xa850('0x1b')](handleEntityNotFound(_0x5d4edb,null))['then'](function(_0x20f6b6){if(_0x20f6b6){return _0x20f6b6[_0xa850('0xaa')](_0x335e47['query'][_0xa850('0x9d')]);}})[_0xa850('0x1b')](respondWithStatusCode(_0x5d4edb,null))[_0xa850('0x61')](handleError(_0x5d4edb,null));};exports['download']=function(_0x495c7e,_0x5aad5c){var _0x52fbb1=moment()[_0xa850('0xab')]()['toString']();var _0x13ce69=path['join'](config[_0xa850('0x7a')],_0xa850('0xac'),_0xa850('0xad'),_0xa850('0xae'));var _0x325432=path[_0xa850('0x79')](config[_0xa850('0x7a')],'server',_0xa850('0xad'),_0xa850('0xaf'));var _0x125573=path[_0xa850('0x79')](_0x13ce69,_0x52fbb1);var _0x591c5e=util['format'](_0xa850('0xb0'),_0x52fbb1);var _0xe286d5=path[_0xa850('0x79')](_0x13ce69,_0x591c5e);var _0x42f92e=![];return db[_0xa850('0x32')]['find']({'where':{'id':_0x495c7e[_0xa850('0x5d')]['id']},'include':[{'model':db[_0xa850('0x4d')],'as':'Messages','attributes':['id',_0xa850('0x63')],'include':[{'model':db[_0xa850('0x7e')],'as':'User','attributes':['id',_0xa850('0x53')],'raw':!![]},{'model':db['CmContact'],'as':_0xa850('0xb1'),'attributes':['id',_0xa850('0xb2')],'raw':!![]},{'model':db['Attachment'],'as':_0xa850('0x73'),'raw':!![]}]}]})['then'](handleEntityNotFound(_0x5aad5c,null))[_0xa850('0x1b')](function(_0x90c94c){if(_0x90c94c){_0x42f92e=!![];var _0x42509e='';var _0x35d4ec={'format':_0xa850('0xb3'),'border':_0xa850('0xb4')};fs[_0xa850('0xb5')](_0x125573);_0x42509e+=util[_0xa850('0x7d')]('<h1>Chat\x20Interaction:\x20#%d</h1>',_0x90c94c['id']);_0x42509e+=util[_0xa850('0x7d')](_0xa850('0xb6'),moment()[_0xa850('0x7d')](_0xa850('0xb7'))['toString']());_0x42509e+=_0xa850('0xb8');for(var _0xb5c0de=0x1;_0xb5c0de<_0x90c94c['Messages'][_0xa850('0x5f')];_0xb5c0de++){var _0x18a822=_0x90c94c['Messages'][_0xb5c0de];_0x42509e+=_0xa850('0xb9');_0x42509e+=util[_0xa850('0x7d')](_0xa850('0xba'),_0x18a822[_0xa850('0x7e')]?_0x18a822[_0xa850('0x7e')]['fullname']:_0x18a822['Contact'][_0xa850('0xb2')],_0x18a822[_0xa850('0x63')]);_0x42509e+=_0xa850('0xbb');if(_0x18a822[_0xa850('0x73')]){var _0x385208=_0x18a822[_0xa850('0x73')];var _0xc7e446=path[_0xa850('0x79')](_0x325432,_0x385208[_0xa850('0x6e')]);if(fs[_0xa850('0xbc')](_0xc7e446)){fs[_0xa850('0xbd')](_0xc7e446)[_0xa850('0xbe')](fs[_0xa850('0xbf')](path[_0xa850('0x79')](_0x125573,_0x385208[_0xa850('0x6e')])));}}}return new BPromise(function(_0x340e02,_0x1bdba6){pdf[_0xa850('0x62')](_0x42509e,_0x35d4ec)[_0xa850('0xc0')](path[_0xa850('0x79')](_0x125573,_0xa850('0xc1')+_0x52fbb1+_0xa850('0xc2')),function(_0x455e94,_0x2e3246){if(_0x455e94)return _0x1bdba6(_0x455e94);_0x340e02(_0x2e3246);});});}})[_0xa850('0x1b')](function(){if(_0x42f92e){return new BPromise(function(_0xeb5fc8,_0x5da081){zipdir(_0x125573,{'saveTo':_0xe286d5},function(_0x489cd3,_0x3d05be){if(_0x489cd3)return _0x5da081(_0x489cd3);return _0xeb5fc8(_0x3d05be);});});}})[_0xa850('0x1b')](function(){if(_0x42f92e){return new BPromise(function(_0x1b8f9d,_0x30ca67){rimraf(_0x125573,function(_0x20eb16){if(_0x20eb16)_0x30ca67(_0x20eb16);return _0x1b8f9d();});});}})[_0xa850('0x1b')](function(){if(_0x42f92e){return _0x5aad5c['download'](_0xe286d5,_0x591c5e,function(_0x3d8f03){if(_0x3d8f03){console['log']('err',_0x3d8f03);}else{fs[_0xa850('0xc3')](_0xe286d5);}});}else{return _0x5aad5c[_0xa850('0x24')](0xc8);}})['catch'](handleError(_0x5aad5c,null));};