Built motion from commit (unavailable).|2.2.6
[motion2.git] / server / api / chatInteraction / chatInteraction.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x2adc=['.pdf','log','err','unlinkSync','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','ejs','lodash','squel','crypto','jsforce','to-csv','papaparse','ioredis','../../components/parsers/qs','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','./chatInteraction.socket','register','jayson/promise','client','http','request','then','info','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','error','ChatInteraction,\x20%s,\x20%s','message','catch','sendStatus','end','status','json','offset','set','apply','save','update','stack','name','send','index','rawAttributes','model','query','filters','intersection','fields','length','nolimit','limit','order','sort','where','filter','map','key','VIRTUAL','field','options','tag','push','Tag','include','Messages','direction','createdAt','read','distinct','ChatInteraction','count','User','fullname','Contact','Owner','internal','ChatWebsite','Account','ChatMessage','Tags','color','ThroughTags','rows','show','keys','attributes','includeAll','merge','find','create','body','params','destroy','describe','customUpdate','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','UserId','Sequelize','ValidationError','Interaction\x20already\x20assigned','closedAt','AbandonInteraction','abandon','file','filename','type','findOne','closed','Unauthorized','Attachment','attachId','download','join','root','server/files/attachments/','basename','format','pathTranscript','ChatWebsiteId','CmContact','ContactId','%s%d','agentAlias','Visitor','website_alias','System','alias','[%s]\x20%s:\x20%s\x0a','MM/DD/YYYY\x20HH:mm:ss','secret','appendFileSync','MailAccount','Smtp','service','port','secure','authentication','auth','user','SendMail','sendMail','\x22%s\x22\x20<%s>','email','mailTranscript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','ids','omit','getMessages','hasOwnProperty','ChatInteractionId','split','YYYY-MM-DD\x20HH:mm:ss','findAll','getMyMessages','includeAgent','addTags','setTags','spread','emit','chatInteractionTags:save','removeTags','unix','toString','files','server','interaction-%s.zip','firstName','Letter','1cm','<h1>Chat\x20Interaction:\x20#%d</h1>','<h2>Date:\x20%s</h2>','<hr>','<div\x20style=\x22border-style:\x20solid;\x20border-width:\x201px;\x20margin:\x203px;\x22>','<p\x20style=\x22margin:\x203px;\x22>%s:\x20%s</p>','</div>','existsSync','pipe','createWriteStream','toFile','interaction-'];(function(_0xdd42bb,_0x3376f7){var _0xba6fcf=function(_0x3cc17b){while(--_0x3cc17b){_0xdd42bb['push'](_0xdd42bb['shift']());}};_0xba6fcf(++_0x3376f7);}(_0x2adc,0xc8));var _0xc2ad=function(_0x297105,_0xd8f291){_0x297105=_0x297105-0x0;var _0x3bcb9e=_0x2adc[_0x297105];return _0x3bcb9e;};'use strict';var pdf=require(_0xc2ad('0x0'));var emlformat=require(_0xc2ad('0x1'));var rimraf=require(_0xc2ad('0x2'));var zipdir=require(_0xc2ad('0x3'));var jsonpatch=require(_0xc2ad('0x4'));var rp=require('request-promise');var moment=require(_0xc2ad('0x5'));var BPromise=require(_0xc2ad('0x6'));var Mustache=require(_0xc2ad('0x7'));var util=require('util');var path=require(_0xc2ad('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xc2ad('0x9'));var fs=require('fs');var _=require(_0xc2ad('0xa'));var squel=require(_0xc2ad('0xb'));var crypto=require(_0xc2ad('0xc'));var jsforce=require(_0xc2ad('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xc2ad('0xe'));var querystring=require('querystring');var Papa=require(_0xc2ad('0xf'));var Redis=require(_0xc2ad('0x10'));var qs=require(_0xc2ad('0x11'));var logger=require('../../config/logger')('api');var utils=require(_0xc2ad('0x12'));var config=require(_0xc2ad('0x13'));var db=require(_0xc2ad('0x14'))['db'];config[_0xc2ad('0x15')]=_[_0xc2ad('0x16')](config['redis'],{'host':_0xc2ad('0x17'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc2ad('0x15')]));require(_0xc2ad('0x18'))[_0xc2ad('0x19')](socket);var jayson=require(_0xc2ad('0x1a'));var client=jayson[_0xc2ad('0x1b')][_0xc2ad('0x1c')]({'port':0x232b});var client9004=jayson[_0xc2ad('0x1b')][_0xc2ad('0x1c')]({'port':0x232c});function respondWithRpcPromise(_0x142564,_0x592a83,_0x1f8892,_0xb29f47){return new BPromise(function(_0x352172,_0x293af7){var _0xe85522=_0xb29f47||client;return _0xe85522[_0xc2ad('0x1d')](_0x142564,_0x1f8892)[_0xc2ad('0x1e')](function(_0x1ba7e1){logger[_0xc2ad('0x1f')]('ChatInteraction,\x20%s,\x20%s',_0x592a83,_0xc2ad('0x20'));logger[_0xc2ad('0x21')](_0xc2ad('0x22'),_0x592a83,'request\x20sent',JSON['stringify'](_0x1ba7e1));if(_0x1ba7e1[_0xc2ad('0x23')]){if(_0x1ba7e1[_0xc2ad('0x23')]['code']===0x1f4){logger['error'](_0xc2ad('0x24'),_0x592a83,_0x1ba7e1[_0xc2ad('0x23')][_0xc2ad('0x25')]);return _0x293af7(_0x1ba7e1[_0xc2ad('0x23')]['message']);}logger[_0xc2ad('0x23')]('ChatInteraction,\x20%s,\x20%s',_0x592a83,_0x1ba7e1[_0xc2ad('0x23')][_0xc2ad('0x25')]);return _0x352172(_0x1ba7e1['error'][_0xc2ad('0x25')]);}else{logger[_0xc2ad('0x1f')](_0xc2ad('0x24'),_0x592a83,_0xc2ad('0x20'));_0x352172(_0x1ba7e1['result'][_0xc2ad('0x25')]);}})[_0xc2ad('0x26')](function(_0x4eb1ca){logger[_0xc2ad('0x23')](_0xc2ad('0x24'),_0x592a83,_0x4eb1ca);_0x293af7(_0x4eb1ca);});});}function respondWithStatusCode(_0x2830a8,_0xef693f){_0xef693f=_0xef693f||0xcc;return function(_0x2de67f){if(_0x2de67f){return _0x2830a8[_0xc2ad('0x27')](_0xef693f);}return _0x2830a8['status'](_0xef693f)[_0xc2ad('0x28')]();};}function respondWithResult(_0x4381a4,_0x71aabc){_0x71aabc=_0x71aabc||0xc8;return function(_0xe42735){if(_0xe42735){return _0x4381a4[_0xc2ad('0x29')](_0x71aabc)[_0xc2ad('0x2a')](_0xe42735);}};}function respondWithFilteredResult(_0x356c59,_0x391256){return function(_0x1c5fbf){if(_0x1c5fbf){var _0x591717=_0x1c5fbf['count'],_0x2cdde1=_0x391256[_0xc2ad('0x2b')],_0xb5b3f8=_0x391256[_0xc2ad('0x2b')]+_0x391256['limit'],_0x276da6;if(_0xb5b3f8>=_0x591717){_0xb5b3f8=_0x591717;_0x276da6=0xc8;}else{_0x276da6=0xce;}_0x356c59[_0xc2ad('0x29')](_0x276da6);return _0x356c59[_0xc2ad('0x2c')]('Content-Range',_0x2cdde1+'-'+_0xb5b3f8+'/'+_0x591717)[_0xc2ad('0x2a')](_0x1c5fbf);}return null;};}function patchUpdates(_0x496c28){return function(_0x495ad8){try{jsonpatch[_0xc2ad('0x2d')](_0x495ad8,_0x496c28,!![]);}catch(_0x107b43){return BPromise['reject'](_0x107b43);}return _0x495ad8[_0xc2ad('0x2e')]();};}function saveUpdates(_0x4b7cdd,_0x5a7054){return function(_0x29dc2f){if(_0x29dc2f){return _0x29dc2f[_0xc2ad('0x2f')](_0x4b7cdd)[_0xc2ad('0x1e')](function(_0x362411){return _0x362411;});}return null;};}function removeEntity(_0x317809,_0x40a68e){return function(_0x128726){if(_0x128726){return _0x128726['destroy']()[_0xc2ad('0x1e')](function(){_0x317809[_0xc2ad('0x29')](0xcc)[_0xc2ad('0x28')]();});}};}function handleEntityNotFound(_0x48d0d9,_0x54c4f5){return function(_0x41bbf0){if(!_0x41bbf0){_0x48d0d9['sendStatus'](0x194);}return _0x41bbf0;};}function handleError(_0x5af18f,_0x3681f){_0x3681f=_0x3681f||0x1f4;return function(_0x451a86){logger[_0xc2ad('0x23')](_0x451a86[_0xc2ad('0x30')]);if(_0x451a86[_0xc2ad('0x31')]){delete _0x451a86[_0xc2ad('0x31')];}_0x5af18f[_0xc2ad('0x29')](_0x3681f)[_0xc2ad('0x32')](_0x451a86);};}exports[_0xc2ad('0x33')]=function(_0x2b7552,_0x243a70){var _0x1711d8={},_0x2bcfc3={},_0x2d03b1={'count':0x0,'rows':[]};var _0x264258=db['ChatInteraction'][_0xc2ad('0x34')];_0x2bcfc3[_0xc2ad('0x35')]=_['keys'](_0x264258);_0x2bcfc3['query']=_['keys'](_0x2b7552[_0xc2ad('0x36')]);_0x2bcfc3[_0xc2ad('0x37')]=_[_0xc2ad('0x38')](_0x2bcfc3[_0xc2ad('0x35')],_0x2bcfc3[_0xc2ad('0x36')]);_0x1711d8['attributes']=_[_0xc2ad('0x38')](_0x2bcfc3['model'],qs['fields'](_0x2b7552[_0xc2ad('0x36')][_0xc2ad('0x39')]));_0x1711d8['attributes']=_0x1711d8['attributes'][_0xc2ad('0x3a')]?_0x1711d8['attributes']:_0x2bcfc3[_0xc2ad('0x35')];if(!_0x2b7552[_0xc2ad('0x36')]['hasOwnProperty'](_0xc2ad('0x3b'))){_0x1711d8['limit']=qs['limit'](_0x2b7552[_0xc2ad('0x36')][_0xc2ad('0x3c')]);_0x1711d8['offset']=qs[_0xc2ad('0x2b')](_0x2b7552[_0xc2ad('0x36')][_0xc2ad('0x2b')]);}_0x1711d8[_0xc2ad('0x3d')]=qs[_0xc2ad('0x3e')](_0x2b7552[_0xc2ad('0x36')][_0xc2ad('0x3e')]);_0x1711d8[_0xc2ad('0x3f')]=qs[_0xc2ad('0x37')](_['pick'](_0x2b7552[_0xc2ad('0x36')],_0x2bcfc3[_0xc2ad('0x37')]));if(_0x2b7552[_0xc2ad('0x36')][_0xc2ad('0x40')]){_0x1711d8[_0xc2ad('0x3f')]=_['merge'](_0x1711d8[_0xc2ad('0x3f')],{'$or':_[_0xc2ad('0x41')](_0x264258,function(_0x3a6b22){if(_0x3a6b22['type'][_0xc2ad('0x42')]!==_0xc2ad('0x43')){var _0x4fb39d={};_0x4fb39d[_0x3a6b22[_0xc2ad('0x44')]]={'$like':'%'+_0x2b7552[_0xc2ad('0x36')][_0xc2ad('0x40')]+'%'};return _0x4fb39d;}})});}_0x1711d8=_['merge']({},_0x1711d8,_0x2b7552[_0xc2ad('0x45')]);var _0x254464={'where':_0x1711d8[_0xc2ad('0x3f')]};_0x254464['include']=[];if(_0x2b7552[_0xc2ad('0x36')][_0xc2ad('0x46')]){_0x254464['include'][_0xc2ad('0x47')]({'model':db[_0xc2ad('0x48')],'as':'Tags','attributes':['id'],'where':{'id':_0x2b7552['query']['tag']},'required':!![]});_0x254464['distinct']=!![];}if(_0x2b7552[_0xc2ad('0x36')]['read']){_0x254464[_0xc2ad('0x49')]['push']({'model':db['ChatMessage'],'as':_0xc2ad('0x4a'),'attributes':['id',_0xc2ad('0x4b'),_0xc2ad('0x4c'),_0xc2ad('0x4d')],'where':{'direction':'in','read':_0x2b7552[_0xc2ad('0x36')][_0xc2ad('0x4d')]||![]},'required':!![]});_0x254464[_0xc2ad('0x4e')]=!![];}return db[_0xc2ad('0x4f')][_0xc2ad('0x50')](_0x254464)['then'](function(_0x14659f){_0x2d03b1[_0xc2ad('0x50')]=_0x14659f;if(_0x2b7552[_0xc2ad('0x36')]['includeAll']){_0x1711d8[_0xc2ad('0x49')]=[{'model':db[_0xc2ad('0x51')],'as':'Users','required':![],'attributes':['id',_0xc2ad('0x31'),_0xc2ad('0x52')]},{'model':db['CmContact'],'as':_0xc2ad('0x53'),'required':![]},{'model':db[_0xc2ad('0x51')],'as':_0xc2ad('0x54'),'attributes':['name',_0xc2ad('0x52'),_0xc2ad('0x55')],'required':![]},{'model':db[_0xc2ad('0x56')],'as':_0xc2ad('0x57'),'attributes':[_0xc2ad('0x31'),'key'],'required':![]},{'model':db[_0xc2ad('0x58')],'as':_0xc2ad('0x4a'),'attributes':['id',_0xc2ad('0x4b'),_0xc2ad('0x4c'),_0xc2ad('0x4d')],'where':{'direction':'in','read':_0x2b7552[_0xc2ad('0x36')][_0xc2ad('0x4d')]||![]},'required':_0x2b7552[_0xc2ad('0x36')]['read']||![]},{'model':db['Tag'],'as':_0xc2ad('0x59'),'attributes':['id',_0xc2ad('0x31'),_0xc2ad('0x5a')],'required':_0x2b7552['query'][_0xc2ad('0x46')]?!![]:![]},{'model':db[_0xc2ad('0x48')],'as':_0xc2ad('0x5b'),'attributes':['id',_0xc2ad('0x31'),'color'],'through':_0x2b7552[_0xc2ad('0x36')][_0xc2ad('0x46')]?{'attributes':[],'where':{'TagId':_0x2b7552[_0xc2ad('0x36')]['tag']||undefined}}:{},'required':_0x2b7552['query'][_0xc2ad('0x46')]?!![]:![]}];}return db[_0xc2ad('0x4f')]['findAll'](_0x1711d8);})['then'](function(_0x46642e){_0x2d03b1[_0xc2ad('0x5c')]=_0x46642e;return _0x2d03b1;})[_0xc2ad('0x1e')](respondWithFilteredResult(_0x243a70,_0x1711d8))['catch'](handleError(_0x243a70,null));};exports[_0xc2ad('0x5d')]=function(_0x5c7852,_0x1550ce){var _0x12392b={'raw':![],'where':{'id':_0x5c7852['params']['id']}},_0x482829={};_0x482829[_0xc2ad('0x35')]=_[_0xc2ad('0x5e')](db['ChatInteraction']['rawAttributes']);_0x482829[_0xc2ad('0x36')]=_[_0xc2ad('0x5e')](_0x5c7852[_0xc2ad('0x36')]);_0x482829['filters']=_[_0xc2ad('0x38')](_0x482829['model'],_0x482829['query']);_0x12392b[_0xc2ad('0x5f')]=_[_0xc2ad('0x38')](_0x482829[_0xc2ad('0x35')],qs['fields'](_0x5c7852[_0xc2ad('0x36')][_0xc2ad('0x39')]));_0x12392b[_0xc2ad('0x5f')]=_0x12392b[_0xc2ad('0x5f')][_0xc2ad('0x3a')]?_0x12392b[_0xc2ad('0x5f')]:_0x482829[_0xc2ad('0x35')];if(_0x5c7852[_0xc2ad('0x36')][_0xc2ad('0x60')]){_0x12392b[_0xc2ad('0x49')]=[{'all':!![]}];}_0x12392b=_[_0xc2ad('0x61')]({},_0x12392b,_0x5c7852[_0xc2ad('0x45')]);return db[_0xc2ad('0x4f')][_0xc2ad('0x62')](_0x12392b)[_0xc2ad('0x1e')](handleEntityNotFound(_0x1550ce,null))[_0xc2ad('0x1e')](respondWithResult(_0x1550ce,null))['catch'](handleError(_0x1550ce,null));};exports[_0xc2ad('0x63')]=function(_0xd2925d,_0x5d3779){return db[_0xc2ad('0x4f')]['create'](_0xd2925d[_0xc2ad('0x64')],{})[_0xc2ad('0x1e')](respondWithResult(_0x5d3779,0xc9))[_0xc2ad('0x26')](handleError(_0x5d3779,null));};exports[_0xc2ad('0x2f')]=function(_0xd434f3,_0x323c38){if(_0xd434f3[_0xc2ad('0x64')]['id']){delete _0xd434f3[_0xc2ad('0x64')]['id'];}return db[_0xc2ad('0x4f')]['find']({'where':{'id':_0xd434f3[_0xc2ad('0x65')]['id']}})[_0xc2ad('0x1e')](handleEntityNotFound(_0x323c38,null))[_0xc2ad('0x1e')](saveUpdates(_0xd434f3['body'],null))[_0xc2ad('0x1e')](respondWithResult(_0x323c38,null))[_0xc2ad('0x26')](handleError(_0x323c38,null));};exports[_0xc2ad('0x66')]=function(_0x363e53,_0x2cc020){return db['ChatInteraction']['find']({'where':{'id':_0x363e53[_0xc2ad('0x65')]['id']}})[_0xc2ad('0x1e')](handleEntityNotFound(_0x2cc020,null))['then'](removeEntity(_0x2cc020,null))[_0xc2ad('0x26')](handleError(_0x2cc020,null));};exports[_0xc2ad('0x67')]=function(_0x39d4a4,_0x4f351a){return db[_0xc2ad('0x4f')][_0xc2ad('0x67')]()[_0xc2ad('0x1e')](respondWithResult(_0x4f351a,null))['catch'](handleError(_0x4f351a,null));};exports[_0xc2ad('0x68')]=function(_0x2cc019,_0x15e975){if(_0x2cc019['body']['id']){delete _0x2cc019['body']['id'];}return db[_0xc2ad('0x4f')][_0xc2ad('0x62')]({'where':{'id':_0x2cc019[_0xc2ad('0x65')]['id']}})[_0xc2ad('0x1e')](handleEntityNotFound(_0x15e975,null))[_0xc2ad('0x1e')](saveUpdates(_0x2cc019[_0xc2ad('0x64')],null))['then'](respondWithResult(_0x15e975,null))[_0xc2ad('0x26')](handleError(_0x15e975,null));};exports['abandon']=function(_0x380146,_0x269b7c,_0x7649ce){if(_0x380146[_0xc2ad('0x64')]['id']){delete _0x380146[_0xc2ad('0x64')]['id'];}return db['ChatInteraction'][_0xc2ad('0x62')]({'where':{'id':_0x380146[_0xc2ad('0x65')]['id']}})[_0xc2ad('0x1e')](function(_0x4d8f4e){if(!_0x4d8f4e){logger[_0xc2ad('0x23')](_0xc2ad('0x69'),'abandon',0x194,_0xc2ad('0x6a'));_0x269b7c[_0xc2ad('0x27')](0x194);}else{if(_0x4d8f4e[_0xc2ad('0x6b')]){throw new db[(_0xc2ad('0x6c'))][(_0xc2ad('0x6d'))](_0xc2ad('0x6e'));}}return _0x4d8f4e;})[_0xc2ad('0x1e')](function(_0x52afce){if(_0x52afce){return _0x52afce[_0xc2ad('0x2f')]({'closed':_0x380146[_0xc2ad('0x64')]['closed'],'closedAt':_0x380146['body'][_0xc2ad('0x6f')],'disposition':_0x380146[_0xc2ad('0x64')]['disposition']})[_0xc2ad('0x1e')](function(_0x18db8e){return _0x18db8e;});}})[_0xc2ad('0x1e')](function(_0x3f2916){return respondWithRpcPromise(_0xc2ad('0x70'),_0xc2ad('0x71'),_0x380146['body'],client9004);})[_0xc2ad('0x1e')](respondWithResult(_0x269b7c,null))['catch'](handleError(_0x269b7c,null));};exports['attachmentUpload']=function(_0x2bf8dd,_0x3d9410,_0x57dd14){_0x2bf8dd[_0xc2ad('0x64')][_0xc2ad('0x31')]=_0x2bf8dd[_0xc2ad('0x72')]['originalname'];_0x2bf8dd[_0xc2ad('0x64')]['basename']=_0x2bf8dd['file'][_0xc2ad('0x73')];_0x2bf8dd[_0xc2ad('0x64')][_0xc2ad('0x74')]=_0x2bf8dd[_0xc2ad('0x72')]['mimetype'];return db['Attachment']['create'](_0x2bf8dd['body'])[_0xc2ad('0x1e')](respondWithResult(_0x3d9410,0xc9))[_0xc2ad('0x26')](handleError(_0x3d9410,null));};exports['attachmentDownload']=function(_0x658fd4,_0x23affc,_0x16e6f9){return db[_0xc2ad('0x4f')][_0xc2ad('0x75')]({'where':{'id':_0x658fd4[_0xc2ad('0x65')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x23affc,null))[_0xc2ad('0x1e')](function(_0x106eba){if(_0x106eba){if(_0x106eba[_0xc2ad('0x76')]){return _0x23affc[_0xc2ad('0x29')](0x193)['json']({'status':0x193,'message':_0xc2ad('0x77')});}return db[_0xc2ad('0x78')]['findOne']({'where':{'id':_0x658fd4[_0xc2ad('0x36')][_0xc2ad('0x79')]},'raw':!![]})[_0xc2ad('0x1e')](handleEntityNotFound(_0x23affc,null));}})['then'](function(_0x962e44){if(_0x962e44){return _0x23affc[_0xc2ad('0x7a')](path[_0xc2ad('0x7b')](config[_0xc2ad('0x7c')],_0xc2ad('0x7d'),_0x962e44[_0xc2ad('0x7e')]));}})[_0xc2ad('0x26')](handleError(_0x23affc,null));};exports['close']=function(_0x31526c,_0x317e4a){var _0x199956=null;var _0x1b1f12=null;var _0x7b6bbe=null;var _0x34a7f5=null;if(_0x31526c[_0xc2ad('0x64')]['id']){delete _0x31526c[_0xc2ad('0x64')]['id'];}if(_0x31526c[_0xc2ad('0x64')]['mailTranscript']){_0x34a7f5=path['join'](config[_0xc2ad('0x7c')],'server/files/chat/upload/',util[_0xc2ad('0x7f')]('transcript-%s.txt',Date['now']()));_0x31526c['body'][_0xc2ad('0x80')]=_0x34a7f5;}return db[_0xc2ad('0x4f')][_0xc2ad('0x62')]({'where':{'id':_0x31526c[_0xc2ad('0x65')]['id']},'include':[{'model':db[_0xc2ad('0x58')],'as':_0xc2ad('0x4a'),'include':[{'model':db['User'],'as':_0xc2ad('0x51')}]}]})['then'](handleEntityNotFound(_0x317e4a,null))['then'](saveUpdates(_0x31526c[_0xc2ad('0x64')],null))[_0xc2ad('0x1e')](function(_0x3e20ce){if(_0x3e20ce){_0x199956=_0x3e20ce;return db[_0xc2ad('0x56')]['find']({'where':{'id':_0x199956[_0xc2ad('0x81')]}});}})[_0xc2ad('0x1e')](function(_0x55f77d){if(_0x55f77d){_0x7b6bbe=_0x55f77d;return db[_0xc2ad('0x82')][_0xc2ad('0x62')]({'where':{'id':_0x199956[_0xc2ad('0x83')]}});}})['then'](function(_0x348eee){if(_0x348eee){_0x1b1f12=_0x348eee;if(_0x34a7f5){var _0x8596ce=null;for(var _0x50d891=0x1;_0x50d891<_0x199956[_0xc2ad('0x4a')][_0xc2ad('0x3a')];++_0x50d891){_0x8596ce=_0x199956[_0xc2ad('0x4a')][_0x50d891];var _0x37c677=_0x8596ce['UserId']?util['format'](_0xc2ad('0x84'),_0x7b6bbe[_0xc2ad('0x85')],_0x8596ce[_0xc2ad('0x6b')]):'System';var _0x1f2f87=_0x31526c[_0xc2ad('0x64')]['customer']||util[_0xc2ad('0x7f')]('%s%d',_0xc2ad('0x86'),_0x8596ce[_0xc2ad('0x83')]);switch(_0x7b6bbe['agentIdentifier']){case _0xc2ad('0x87'):_0x37c677=_0x8596ce[_0xc2ad('0x6b')]?util[_0xc2ad('0x7f')]('%s%d',_0x7b6bbe[_0xc2ad('0x85')],_0x8596ce[_0xc2ad('0x6b')]):_0xc2ad('0x88');break;case'agent_alias':_0x37c677=_0x8596ce[_0xc2ad('0x6b')]?_0x8596ce[_0xc2ad('0x51')][_0xc2ad('0x89')]||_0x8596ce['User'][_0xc2ad('0x52')]:_0xc2ad('0x88');break;case'agent_fullname':_0x37c677=_0x8596ce[_0xc2ad('0x6b')]?_0x8596ce[_0xc2ad('0x51')]['fullname']:_0xc2ad('0x88');break;default:_0x37c677=_0x8596ce['UserId']?util[_0xc2ad('0x7f')]('%s%d',_0x7b6bbe[_0xc2ad('0x85')],_0x8596ce['UserId']):_0xc2ad('0x88');}var _0x44076f=util[_0xc2ad('0x7f')](_0xc2ad('0x8a'),moment(_0x8596ce['createdAt'])[_0xc2ad('0x7f')](_0xc2ad('0x8b')),_0x8596ce[_0xc2ad('0x4b')]==='in'?_0x1f2f87:_0x37c677,_0x8596ce[_0xc2ad('0x64')]);if(!_0x8596ce[_0xc2ad('0x8c')]){fs[_0xc2ad('0x8d')](_0x34a7f5,_0x44076f);}}return db[_0xc2ad('0x8e')][_0xc2ad('0x75')]({'where':{'service':!![]},'include':[{'model':db['MailServerOut'],'as':_0xc2ad('0x8f'),'raw':!![]}]});}}})[_0xc2ad('0x1e')](function(_0x2ae0df){if(_0x2ae0df&&_0x2ae0df[_0xc2ad('0x8f')]&&_0x31526c[_0xc2ad('0x64')]){var _0x32683f={'tls':{'rejectUnauthorized':![]}};if(_0x2ae0df[_0xc2ad('0x8f')]['service']){_0x32683f[_0xc2ad('0x90')]=_0x2ae0df[_0xc2ad('0x8f')][_0xc2ad('0x90')];}else{_0x32683f['host']=_0x2ae0df[_0xc2ad('0x8f')]['host'];_0x32683f[_0xc2ad('0x91')]=_0x2ae0df[_0xc2ad('0x8f')][_0xc2ad('0x91')];_0x32683f['secure']=_0x2ae0df[_0xc2ad('0x8f')][_0xc2ad('0x92')];}if(_0x2ae0df[_0xc2ad('0x8f')][_0xc2ad('0x93')]){_0x32683f[_0xc2ad('0x94')]={'user':_0x2ae0df[_0xc2ad('0x8f')][_0xc2ad('0x95')],'pass':_0x2ae0df['Smtp']['pass']};}return respondWithRpcPromise(_0xc2ad('0x96'),_0xc2ad('0x97'),{'account':_0x32683f,'message':{'from':util[_0xc2ad('0x7f')](_0xc2ad('0x98'),_0x2ae0df[_0xc2ad('0x31')],_0x2ae0df[_0xc2ad('0x99')]||_0x2ae0df['Smtp'][_0xc2ad('0x95')]),'to':_0x31526c[_0xc2ad('0x64')][_0xc2ad('0x9a')],'subject':'Mail\x20Transcript','text':util['format'](_0xc2ad('0x9b'),_0x31526c['body'][_0xc2ad('0x9a')]),'attachments':[{'path':_0x34a7f5}]}})[_0xc2ad('0x1e')](function(){return _0x199956;})[_0xc2ad('0x26')](function(_0x3538ff){console[_0xc2ad('0x23')](_0x3538ff);});}else{return _0x199956;}})[_0xc2ad('0x1e')](respondWithStatusCode(_0x317e4a,0xc8))[_0xc2ad('0x26')](handleError(_0x317e4a,null));};exports[_0xc2ad('0x9c')]=function(_0x5dc36e,_0x57bf53,_0x3a7324){return db[_0xc2ad('0x58')]['find']({'where':{'id':_0x5dc36e[_0xc2ad('0x65')]['id']}})[_0xc2ad('0x1e')](handleEntityNotFound(_0x57bf53,null))[_0xc2ad('0x1e')](function(_0x1bb0a5){if(_0x1bb0a5){return _0x1bb0a5['addMessage'](_0x5dc36e['body'][_0xc2ad('0x9d')],_[_0xc2ad('0x9e')](_0x5dc36e['body'],[_0xc2ad('0x9d'),'id'])||{});}})[_0xc2ad('0x1e')](respondWithResult(_0x57bf53,null))[_0xc2ad('0x26')](handleError(_0x57bf53,null));};exports[_0xc2ad('0x9f')]=function(_0x7e0563,_0x59e400,_0x2ab1e1){var _0x2344de={'raw':![],'where':{}};var _0x4d9914={};var _0x31891b={'count':0x0,'rows':[]};return db[_0xc2ad('0x4f')]['findOne']({'where':{'id':_0x7e0563['params']['id']}})[_0xc2ad('0x1e')](handleEntityNotFound(_0x59e400,null))[_0xc2ad('0x1e')](function(_0x2806fe){if(_0x2806fe){_0x4d9914['model']=_[_0xc2ad('0x5e')](db[_0xc2ad('0x58')]['rawAttributes']);_0x4d9914[_0xc2ad('0x36')]=_['keys'](_0x7e0563[_0xc2ad('0x36')]);_0x4d9914[_0xc2ad('0x37')]=_['intersection'](_0x4d9914[_0xc2ad('0x35')],_0x4d9914[_0xc2ad('0x36')]);_0x2344de[_0xc2ad('0x5f')]=_[_0xc2ad('0x38')](_0x4d9914[_0xc2ad('0x35')],qs['fields'](_0x7e0563[_0xc2ad('0x36')][_0xc2ad('0x39')]));_0x2344de[_0xc2ad('0x5f')]=_0x2344de[_0xc2ad('0x5f')][_0xc2ad('0x3a')]?_0x2344de[_0xc2ad('0x5f')]:_0x4d9914[_0xc2ad('0x35')];if(!_0x7e0563['query'][_0xc2ad('0xa0')](_0xc2ad('0x3b'))){_0x2344de[_0xc2ad('0x3c')]=qs[_0xc2ad('0x3c')](_0x7e0563[_0xc2ad('0x36')]['limit']);_0x2344de['offset']=qs['offset'](_0x7e0563[_0xc2ad('0x36')]['offset']);}_0x2344de[_0xc2ad('0x3d')]=qs[_0xc2ad('0x3e')](_0x7e0563[_0xc2ad('0x36')]['sort']);_0x2344de[_0xc2ad('0x3f')]=qs[_0xc2ad('0x37')](_['pick'](_0x7e0563[_0xc2ad('0x36')],_0x4d9914[_0xc2ad('0x37')]));_0x2344de[_0xc2ad('0x3f')][_0xc2ad('0xa1')]=_0x2806fe['id'];if(_0x7e0563['query'][_0xc2ad('0x40')]){_0x2344de[_0xc2ad('0x3f')]=_[_0xc2ad('0x61')](_0x2344de['where'],{'$or':_[_0xc2ad('0x41')](_0x2344de[_0xc2ad('0x5f')],function(_0x25db7f){var _0x238dae={};_0x238dae[_0x25db7f]={'$like':'%'+_0x7e0563[_0xc2ad('0x36')][_0xc2ad('0x40')]+'%'};return _0x238dae;})});}if(_0x7e0563['query']['$gte']){var _0x2c2175=_0x7e0563[_0xc2ad('0x36')]['$gte'][_0xc2ad('0xa2')](',');var _0x4f63b9={};_0x4f63b9[_0x2c2175[0x0]]={'$gte':moment(_0x2c2175[0x1])[_0xc2ad('0x7f')](_0xc2ad('0xa3'))};_0x2344de[_0xc2ad('0x3f')]=_[_0xc2ad('0x61')](_0x2344de[_0xc2ad('0x3f')],_0x4f63b9);}_0x2344de=_[_0xc2ad('0x61')]({},_0x2344de,_0x7e0563['options']);return db[_0xc2ad('0x58')]['count']({'where':_0x2344de[_0xc2ad('0x3f')]})[_0xc2ad('0x1e')](function(_0x4d8d5c){_0x31891b[_0xc2ad('0x50')]=_0x4d8d5c;if(_0x7e0563[_0xc2ad('0x36')][_0xc2ad('0x60')]){_0x2344de['include']=[{'all':!![]}];}return db[_0xc2ad('0x58')][_0xc2ad('0xa4')](_0x2344de);})[_0xc2ad('0x1e')](function(_0x5c014e){_0x31891b['rows']=_0x5c014e;return _0x31891b;});}})[_0xc2ad('0x1e')](respondWithFilteredResult(_0x59e400,_0x2344de))[_0xc2ad('0x26')](handleError(_0x59e400,null));};exports[_0xc2ad('0xa5')]=function(_0x35a7a2,_0x18e8cb,_0x59957a){var _0x5a6aa4={'where':{}},_0x1c59c0={},_0x5424e5={'count':0x0,'rows':[]};return db['ChatInteraction'][_0xc2ad('0x75')]({'where':{'id':_0x35a7a2[_0xc2ad('0x65')]['id']}})['then'](handleEntityNotFound(_0x18e8cb,null))['then'](function(_0x21e21a){if(_0x21e21a){_0x1c59c0[_0xc2ad('0x35')]=_['keys'](db[_0xc2ad('0x58')]['rawAttributes']);_0x1c59c0[_0xc2ad('0x36')]=_[_0xc2ad('0x5e')](_0x35a7a2[_0xc2ad('0x36')]);_0x1c59c0[_0xc2ad('0x37')]=_[_0xc2ad('0x38')](_0x1c59c0[_0xc2ad('0x35')],_0x1c59c0['query']);_0x5a6aa4[_0xc2ad('0x5f')]=_['intersection'](_0x1c59c0[_0xc2ad('0x35')],qs[_0xc2ad('0x39')](_0x35a7a2[_0xc2ad('0x36')]['fields']));_0x5a6aa4[_0xc2ad('0x5f')]=_0x5a6aa4['attributes']['length']?_0x5a6aa4['attributes']:_0x1c59c0[_0xc2ad('0x35')];if(!_0x35a7a2[_0xc2ad('0x36')][_0xc2ad('0xa0')](_0xc2ad('0x3b'))){_0x5a6aa4['limit']=qs['limit'](_0x35a7a2[_0xc2ad('0x36')][_0xc2ad('0x3c')]);_0x5a6aa4[_0xc2ad('0x2b')]=qs[_0xc2ad('0x2b')](_0x35a7a2[_0xc2ad('0x36')][_0xc2ad('0x2b')]);}_0x5a6aa4[_0xc2ad('0x3d')]=qs['sort'](_0x35a7a2[_0xc2ad('0x36')]['sort']);_0x5a6aa4[_0xc2ad('0x3f')]=qs[_0xc2ad('0x37')](_['pick'](_0x35a7a2[_0xc2ad('0x36')],_0x1c59c0[_0xc2ad('0x37')]));_0x5a6aa4[_0xc2ad('0x3f')]['ChatInteractionId']=_0x21e21a['id'];if(_0x35a7a2[_0xc2ad('0x36')]['filter']){_0x5a6aa4[_0xc2ad('0x3f')]=_[_0xc2ad('0x61')](_0x5a6aa4[_0xc2ad('0x3f')],{'$or':_['map'](_0x5a6aa4[_0xc2ad('0x5f')],function(_0x2ec4ab){var _0x12161e={};_0x12161e[_0x2ec4ab]={'$like':'%'+_0x35a7a2[_0xc2ad('0x36')][_0xc2ad('0x40')]+'%'};return _0x12161e;})});}_0x5a6aa4['where'][_0xc2ad('0x8c')]=![];if(_0x35a7a2[_0xc2ad('0x36')]['id']){_0x5a6aa4[_0xc2ad('0x3f')]['id']={'$gt':_0x35a7a2[_0xc2ad('0x36')]['id']};}_0x5a6aa4=_['merge']({},_0x5a6aa4,_0x35a7a2['options']);return db[_0xc2ad('0x58')]['count']({'where':_0x5a6aa4[_0xc2ad('0x3f')]})[_0xc2ad('0x1e')](function(_0x415539){_0x5424e5['count']=_0x415539;_0x5a6aa4[_0xc2ad('0x49')]=[];if(_0x35a7a2[_0xc2ad('0x36')][_0xc2ad('0xa6')]){_0x5a6aa4[_0xc2ad('0x49')][_0xc2ad('0x47')]({'model':db[_0xc2ad('0x51')],'as':_0xc2ad('0x51'),'attributes':['id',_0xc2ad('0x52'),'alias']});}if(_0x35a7a2[_0xc2ad('0x36')]['includeAll']){_0x5a6aa4[_0xc2ad('0x49')]=[{'all':!![]}];}return db[_0xc2ad('0x58')][_0xc2ad('0xa4')](_0x5a6aa4);})[_0xc2ad('0x1e')](function(_0x448915){_0x5424e5['rows']=_0x448915;return _0x5424e5;});}})[_0xc2ad('0x1e')](respondWithFilteredResult(_0x18e8cb,_0x5a6aa4))[_0xc2ad('0x26')](handleError(_0x18e8cb,null));};exports[_0xc2ad('0xa7')]=function(_0x19fe0f,_0x5bc193,_0x38c7c2){return db['ChatInteraction'][_0xc2ad('0x62')]({'where':{'id':_0x19fe0f[_0xc2ad('0x65')]['id']}})[_0xc2ad('0x1e')](handleEntityNotFound(_0x5bc193,null))['then'](function(_0x3e0bea){if(_0x3e0bea){return _0x3e0bea[_0xc2ad('0xa8')](_0x19fe0f[_0xc2ad('0x64')][_0xc2ad('0x9d')],_[_0xc2ad('0x9e')](_0x19fe0f[_0xc2ad('0x64')],[_0xc2ad('0x9d'),'id'])||{})[_0xc2ad('0xa9')](function(){return db['Tag']['findAll']({'attributes':['id',_0xc2ad('0x31'),'color'],'where':{'id':_0x19fe0f[_0xc2ad('0x64')]['ids']}});})[_0xc2ad('0x1e')](function(_0x4618c9){socket[_0xc2ad('0xaa')](_0xc2ad('0xab'),{'id':Number(_0x19fe0f[_0xc2ad('0x65')]['id']),'tags':_0x4618c9||[]});return{'id':Number(_0x19fe0f[_0xc2ad('0x65')]['id']),'tags':_0x4618c9||[]};});}})['then'](respondWithResult(_0x5bc193,null))[_0xc2ad('0x26')](handleError(_0x5bc193,null));};exports[_0xc2ad('0xac')]=function(_0x4290c0,_0x23efb7,_0x3f8239){var _0x415bcb;return db[_0xc2ad('0x4f')][_0xc2ad('0x62')]({'where':{'id':_0x4290c0[_0xc2ad('0x65')]['id']}})['then'](handleEntityNotFound(_0x23efb7,null))[_0xc2ad('0x1e')](function(_0x392ea0){if(_0x392ea0){return _0x392ea0[_0xc2ad('0xac')](_0x4290c0[_0xc2ad('0x36')]['ids']);}})[_0xc2ad('0x1e')](respondWithStatusCode(_0x23efb7,null))[_0xc2ad('0x26')](handleError(_0x23efb7,null));};exports[_0xc2ad('0x7a')]=function(_0x85125f,_0x550a1b){var _0x275e4f=moment()[_0xc2ad('0xad')]()[_0xc2ad('0xae')]();var _0x410b21=path['join'](config[_0xc2ad('0x7c')],'server',_0xc2ad('0xaf'),'tmp');var _0x4b1362=path['join'](config['root'],_0xc2ad('0xb0'),'files','attachments');var _0x2fc488=path[_0xc2ad('0x7b')](_0x410b21,_0x275e4f);var _0x2f2926=util[_0xc2ad('0x7f')](_0xc2ad('0xb1'),_0x275e4f);var _0xdec9e2=path[_0xc2ad('0x7b')](_0x410b21,_0x2f2926);var _0x3f0168=![];return db[_0xc2ad('0x4f')]['find']({'where':{'id':_0x85125f[_0xc2ad('0x65')]['id']},'include':[{'model':db[_0xc2ad('0x58')],'as':'Messages','attributes':['id',_0xc2ad('0x64')],'include':[{'model':db[_0xc2ad('0x51')],'as':_0xc2ad('0x51'),'attributes':['id',_0xc2ad('0x52')],'raw':!![]},{'model':db[_0xc2ad('0x82')],'as':_0xc2ad('0x53'),'attributes':['id',_0xc2ad('0xb2')],'raw':!![]},{'model':db['Attachment'],'as':_0xc2ad('0x78'),'raw':!![]}]}]})[_0xc2ad('0x1e')](handleEntityNotFound(_0x550a1b,null))[_0xc2ad('0x1e')](function(_0x4e28d2){if(_0x4e28d2){_0x3f0168=!![];var _0x2b3fe6='';var _0x297ab4={'format':_0xc2ad('0xb3'),'border':_0xc2ad('0xb4')};fs['mkdirSync'](_0x2fc488);_0x2b3fe6+=util[_0xc2ad('0x7f')](_0xc2ad('0xb5'),_0x4e28d2['id']);_0x2b3fe6+=util[_0xc2ad('0x7f')](_0xc2ad('0xb6'),moment()[_0xc2ad('0x7f')]('MMMM\x20Do\x20YYYY,\x20HH:mm:ss')[_0xc2ad('0xae')]());_0x2b3fe6+=_0xc2ad('0xb7');for(var _0x4dae65=0x1;_0x4dae65<_0x4e28d2['Messages']['length'];_0x4dae65++){var _0x4c2231=_0x4e28d2[_0xc2ad('0x4a')][_0x4dae65];_0x2b3fe6+=_0xc2ad('0xb8');_0x2b3fe6+=util[_0xc2ad('0x7f')](_0xc2ad('0xb9'),_0x4c2231[_0xc2ad('0x51')]?_0x4c2231[_0xc2ad('0x51')]['fullname']:_0x4c2231[_0xc2ad('0x53')][_0xc2ad('0xb2')],_0x4c2231['body']);_0x2b3fe6+=_0xc2ad('0xba');if(_0x4c2231[_0xc2ad('0x78')]){var _0x4a2784=_0x4c2231[_0xc2ad('0x78')];var _0x4f98d0=path[_0xc2ad('0x7b')](_0x4b1362,_0x4a2784[_0xc2ad('0x7e')]);if(fs[_0xc2ad('0xbb')](_0x4f98d0)){fs['createReadStream'](_0x4f98d0)[_0xc2ad('0xbc')](fs[_0xc2ad('0xbd')](path['join'](_0x2fc488,_0x4a2784['basename'])));}}}return new BPromise(function(_0x31c33c,_0x4661b0){pdf[_0xc2ad('0x63')](_0x2b3fe6,_0x297ab4)[_0xc2ad('0xbe')](path[_0xc2ad('0x7b')](_0x2fc488,_0xc2ad('0xbf')+_0x275e4f+_0xc2ad('0xc0')),function(_0x1b477f,_0x251080){if(_0x1b477f)return _0x4661b0(_0x1b477f);_0x31c33c(_0x251080);});});}})['then'](function(){if(_0x3f0168){return new BPromise(function(_0x351536,_0x3c20ad){zipdir(_0x2fc488,{'saveTo':_0xdec9e2},function(_0x4f085a,_0x4858d6){if(_0x4f085a)return _0x3c20ad(_0x4f085a);return _0x351536(_0x4858d6);});});}})[_0xc2ad('0x1e')](function(){if(_0x3f0168){return new BPromise(function(_0x57ccc2,_0x2860dd){rimraf(_0x2fc488,function(_0x272224){if(_0x272224)_0x2860dd(_0x272224);return _0x57ccc2();});});}})['then'](function(){if(_0x3f0168){return _0x550a1b[_0xc2ad('0x7a')](_0xdec9e2,_0x2f2926,function(_0x385819){if(_0x385819){console[_0xc2ad('0xc1')](_0xc2ad('0xc2'),_0x385819);}else{fs[_0xc2ad('0xc3')](_0xdec9e2);}});}else{return _0x550a1b[_0xc2ad('0x27')](0xc8);}})['catch'](handleError(_0x550a1b,null));};