Built motion from commit (unavailable).|2.2.5
[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 _0xc1c3=['service','host','port','secure','authentication','auth','user','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','ChatMessage','addMessage','omit','ids','getMessages','ChatInteractionId','split','YYYY-MM-DD\x20HH:mm:ss','findAll','secret','includeAgent','push','alias','addTags','setTags','spread','emit','removeTags','toString','files','tmp','server','interaction-%s.zip','firstName','Letter','mkdirSync','<h1>Chat\x20Interaction:\x20#%d</h1>','<h2>Date:\x20%s</h2>','MMMM\x20Do\x20YYYY,\x20HH:mm:ss','<div\x20style=\x22border-style:\x20solid;\x20border-width:\x201px;\x20margin:\x203px;\x22>','<p\x20style=\x22margin:\x203px;\x22>%s:\x20%s</p>','existsSync','createReadStream','createWriteStream','toFile','interaction-','.pdf','log','err','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','util','sox','to-csv','ejs','lodash','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','redis','defaults','localhost','socket.io-emitter','./chatInteraction.socket','register','jayson/promise','client','http','request','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','sendStatus','status','end','json','count','offset','set','Content-Range','apply','reject','save','update','stack','name','send','ChatInteraction','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','map','type','VIRTUAL','field','options','include','tag','Tag','Tags','distinct','read','Messages','direction','createdAt','includeAll','User','CmContact','Contact','Owner','internal','ChatWebsite','Account','key','color','ThroughTags','rows','show','params','keys','rawAttributes','find','create','body','destroy','describe','customUpdate','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','UserId','Sequelize','Interaction\x20already\x20assigned','closed','closedAt','disposition','AbandonInteraction','attachmentUpload','file','basename','filename','Attachment','attachmentDownload','findOne','attachId','download','join','root','mailTranscript','transcript-%s.txt','pathTranscript','ChatWebsiteId','ContactId','format','%s%d','agentAlias','customer','Visitor','agentIdentifier','website_alias','System','agent_alias','fullname','[%s]\x20%s:\x20%s\x0a','MM/DD/YYYY\x20HH:mm:ss','appendFileSync','MailServerOut','Smtp'];(function(_0xe7a0a0,_0x1ae5d){var _0x57c955=function(_0x83c096){while(--_0x83c096){_0xe7a0a0['push'](_0xe7a0a0['shift']());}};_0x57c955(++_0x1ae5d);}(_0xc1c3,0x1b3));var _0x3c1c=function(_0x529f03,_0xd26899){_0x529f03=_0x529f03-0x0;var _0x42f9d2=_0xc1c3[_0x529f03];return _0x42f9d2;};'use strict';var pdf=require(_0x3c1c('0x0'));var emlformat=require(_0x3c1c('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x3c1c('0x2'));var jsonpatch=require(_0x3c1c('0x3'));var rp=require(_0x3c1c('0x4'));var moment=require(_0x3c1c('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x3c1c('0x6'));var path=require('path');var sox=require(_0x3c1c('0x7'));var csv=require(_0x3c1c('0x8'));var ejs=require(_0x3c1c('0x9'));var fs=require('fs');var _=require(_0x3c1c('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x3c1c('0xb'));var toCsv=require(_0x3c1c('0x8'));var querystring=require(_0x3c1c('0xc'));var Papa=require(_0x3c1c('0xd'));var Redis=require(_0x3c1c('0xe'));var qs=require(_0x3c1c('0xf'));var logger=require(_0x3c1c('0x10'))(_0x3c1c('0x11'));var utils=require('../../config/utils');var config=require(_0x3c1c('0x12'));var db=require('../../mysqldb')['db'];config[_0x3c1c('0x13')]=_[_0x3c1c('0x14')](config['redis'],{'host':_0x3c1c('0x15'),'port':0x18eb});var socket=require(_0x3c1c('0x16'))(new Redis(config[_0x3c1c('0x13')]));require(_0x3c1c('0x17'))[_0x3c1c('0x18')](socket);var jayson=require(_0x3c1c('0x19'));var client=jayson[_0x3c1c('0x1a')]['http']({'port':0x232b});var client9004=jayson['client'][_0x3c1c('0x1b')]({'port':0x232c});function respondWithRpcPromise(_0x4a1105,_0x556c81,_0x474bac,_0x4c1e95){return new BPromise(function(_0x4ec6d5,_0x5a0e50){var _0x1007d0=_0x4c1e95||client;return _0x1007d0[_0x3c1c('0x1c')](_0x4a1105,_0x474bac)[_0x3c1c('0x1d')](function(_0x4fb381){logger[_0x3c1c('0x1e')](_0x3c1c('0x1f'),_0x556c81,_0x3c1c('0x20'));logger['debug']('ChatInteraction,\x20%s,\x20%s,\x20%s',_0x556c81,_0x3c1c('0x20'),JSON[_0x3c1c('0x21')](_0x4fb381));if(_0x4fb381[_0x3c1c('0x22')]){if(_0x4fb381['error'][_0x3c1c('0x23')]===0x1f4){logger[_0x3c1c('0x22')](_0x3c1c('0x1f'),_0x556c81,_0x4fb381[_0x3c1c('0x22')][_0x3c1c('0x24')]);return _0x5a0e50(_0x4fb381[_0x3c1c('0x22')][_0x3c1c('0x24')]);}logger[_0x3c1c('0x22')](_0x3c1c('0x1f'),_0x556c81,_0x4fb381[_0x3c1c('0x22')][_0x3c1c('0x24')]);return _0x4ec6d5(_0x4fb381['error'][_0x3c1c('0x24')]);}else{logger[_0x3c1c('0x1e')](_0x3c1c('0x1f'),_0x556c81,'request\x20sent');_0x4ec6d5(_0x4fb381[_0x3c1c('0x25')][_0x3c1c('0x24')]);}})[_0x3c1c('0x26')](function(_0x8981dc){logger[_0x3c1c('0x22')](_0x3c1c('0x1f'),_0x556c81,_0x8981dc);_0x5a0e50(_0x8981dc);});});}function respondWithStatusCode(_0x3683bd,_0x401fba){_0x401fba=_0x401fba||0xcc;return function(_0x44e01b){if(_0x44e01b){return _0x3683bd[_0x3c1c('0x27')](_0x401fba);}return _0x3683bd[_0x3c1c('0x28')](_0x401fba)[_0x3c1c('0x29')]();};}function respondWithResult(_0x3d08be,_0x212125){_0x212125=_0x212125||0xc8;return function(_0x1f4b71){if(_0x1f4b71){return _0x3d08be[_0x3c1c('0x28')](_0x212125)[_0x3c1c('0x2a')](_0x1f4b71);}};}function respondWithFilteredResult(_0x373470,_0x15e2f9){return function(_0x3aa47b){if(_0x3aa47b){var _0x271a58=_0x3aa47b[_0x3c1c('0x2b')],_0x3a8583=_0x15e2f9[_0x3c1c('0x2c')],_0x259642=_0x15e2f9['offset']+_0x15e2f9['limit'],_0x52a1e8;if(_0x259642>=_0x271a58){_0x259642=_0x271a58;_0x52a1e8=0xc8;}else{_0x52a1e8=0xce;}_0x373470[_0x3c1c('0x28')](_0x52a1e8);return _0x373470[_0x3c1c('0x2d')](_0x3c1c('0x2e'),_0x3a8583+'-'+_0x259642+'/'+_0x271a58)[_0x3c1c('0x2a')](_0x3aa47b);}return null;};}function patchUpdates(_0x23d5e3){return function(_0x30583f){try{jsonpatch[_0x3c1c('0x2f')](_0x30583f,_0x23d5e3,!![]);}catch(_0x4ccd3f){return BPromise[_0x3c1c('0x30')](_0x4ccd3f);}return _0x30583f[_0x3c1c('0x31')]();};}function saveUpdates(_0x58728b,_0x2fb9e4){return function(_0x296dea){if(_0x296dea){return _0x296dea[_0x3c1c('0x32')](_0x58728b)['then'](function(_0x47a845){return _0x47a845;});}return null;};}function removeEntity(_0x4bc91f,_0x430a88){return function(_0xeb6b8b){if(_0xeb6b8b){return _0xeb6b8b['destroy']()[_0x3c1c('0x1d')](function(){_0x4bc91f[_0x3c1c('0x28')](0xcc)[_0x3c1c('0x29')]();});}};}function handleEntityNotFound(_0x34f490,_0x6c3509){return function(_0x4f8a05){if(!_0x4f8a05){_0x34f490[_0x3c1c('0x27')](0x194);}return _0x4f8a05;};}function handleError(_0x22b7e0,_0x7a0a86){_0x7a0a86=_0x7a0a86||0x1f4;return function(_0x40db1f){logger[_0x3c1c('0x22')](_0x40db1f[_0x3c1c('0x33')]);if(_0x40db1f[_0x3c1c('0x34')]){delete _0x40db1f[_0x3c1c('0x34')];}_0x22b7e0['status'](_0x7a0a86)[_0x3c1c('0x35')](_0x40db1f);};}exports['index']=function(_0x2df0bc,_0x1c0a88){var _0x4bcca8={},_0xadf8aa={},_0x516b8a={'count':0x0,'rows':[]};var _0xf5a16c=db[_0x3c1c('0x36')]['rawAttributes'];_0xadf8aa['model']=_['keys'](_0xf5a16c);_0xadf8aa[_0x3c1c('0x37')]=_['keys'](_0x2df0bc[_0x3c1c('0x37')]);_0xadf8aa[_0x3c1c('0x38')]=_[_0x3c1c('0x39')](_0xadf8aa[_0x3c1c('0x3a')],_0xadf8aa[_0x3c1c('0x37')]);_0x4bcca8[_0x3c1c('0x3b')]=_[_0x3c1c('0x39')](_0xadf8aa[_0x3c1c('0x3a')],qs[_0x3c1c('0x3c')](_0x2df0bc[_0x3c1c('0x37')][_0x3c1c('0x3c')]));_0x4bcca8[_0x3c1c('0x3b')]=_0x4bcca8[_0x3c1c('0x3b')][_0x3c1c('0x3d')]?_0x4bcca8['attributes']:_0xadf8aa[_0x3c1c('0x3a')];if(!_0x2df0bc[_0x3c1c('0x37')][_0x3c1c('0x3e')](_0x3c1c('0x3f'))){_0x4bcca8[_0x3c1c('0x40')]=qs[_0x3c1c('0x40')](_0x2df0bc[_0x3c1c('0x37')][_0x3c1c('0x40')]);_0x4bcca8[_0x3c1c('0x2c')]=qs[_0x3c1c('0x2c')](_0x2df0bc[_0x3c1c('0x37')][_0x3c1c('0x2c')]);}_0x4bcca8[_0x3c1c('0x41')]=qs['sort'](_0x2df0bc['query'][_0x3c1c('0x42')]);_0x4bcca8[_0x3c1c('0x43')]=qs[_0x3c1c('0x38')](_[_0x3c1c('0x44')](_0x2df0bc['query'],_0xadf8aa[_0x3c1c('0x38')]));if(_0x2df0bc[_0x3c1c('0x37')][_0x3c1c('0x45')]){_0x4bcca8['where']=_[_0x3c1c('0x46')](_0x4bcca8[_0x3c1c('0x43')],{'$or':_[_0x3c1c('0x47')](_0xf5a16c,function(_0x34ff85){if(_0x34ff85[_0x3c1c('0x48')]['key']!==_0x3c1c('0x49')){var _0x22a8a4={};_0x22a8a4[_0x34ff85[_0x3c1c('0x4a')]]={'$like':'%'+_0x2df0bc[_0x3c1c('0x37')][_0x3c1c('0x45')]+'%'};return _0x22a8a4;}})});}_0x4bcca8=_['merge']({},_0x4bcca8,_0x2df0bc[_0x3c1c('0x4b')]);var _0x6af5ed={'where':_0x4bcca8[_0x3c1c('0x43')]};_0x6af5ed[_0x3c1c('0x4c')]=[];if(_0x2df0bc[_0x3c1c('0x37')][_0x3c1c('0x4d')]){_0x6af5ed['include']['push']({'model':db[_0x3c1c('0x4e')],'as':_0x3c1c('0x4f'),'attributes':['id'],'where':{'id':_0x2df0bc['query'][_0x3c1c('0x4d')]},'required':!![]});_0x6af5ed[_0x3c1c('0x50')]=!![];}if(_0x2df0bc[_0x3c1c('0x37')][_0x3c1c('0x51')]){_0x6af5ed[_0x3c1c('0x4c')]['push']({'model':db['ChatMessage'],'as':_0x3c1c('0x52'),'attributes':['id',_0x3c1c('0x53'),_0x3c1c('0x54'),_0x3c1c('0x51')],'where':{'direction':'in','read':_0x2df0bc[_0x3c1c('0x37')]['read']||![]},'required':!![]});_0x6af5ed[_0x3c1c('0x50')]=!![];}return db[_0x3c1c('0x36')][_0x3c1c('0x2b')](_0x6af5ed)[_0x3c1c('0x1d')](function(_0x35a7cd){_0x516b8a[_0x3c1c('0x2b')]=_0x35a7cd;if(_0x2df0bc[_0x3c1c('0x37')][_0x3c1c('0x55')]){_0x4bcca8[_0x3c1c('0x4c')]=[{'model':db[_0x3c1c('0x56')],'as':'Users','required':![],'attributes':['id','name','fullname']},{'model':db[_0x3c1c('0x57')],'as':_0x3c1c('0x58'),'required':![]},{'model':db[_0x3c1c('0x56')],'as':_0x3c1c('0x59'),'attributes':[_0x3c1c('0x34'),'fullname',_0x3c1c('0x5a')],'required':![]},{'model':db[_0x3c1c('0x5b')],'as':_0x3c1c('0x5c'),'attributes':['name',_0x3c1c('0x5d')],'required':![]},{'model':db['ChatMessage'],'as':_0x3c1c('0x52'),'attributes':['id',_0x3c1c('0x53'),_0x3c1c('0x54'),_0x3c1c('0x51')],'where':{'direction':'in','read':_0x2df0bc[_0x3c1c('0x37')][_0x3c1c('0x51')]||![]},'required':_0x2df0bc[_0x3c1c('0x37')][_0x3c1c('0x51')]||![]},{'model':db[_0x3c1c('0x4e')],'as':_0x3c1c('0x4f'),'attributes':['id',_0x3c1c('0x34'),_0x3c1c('0x5e')],'required':_0x2df0bc[_0x3c1c('0x37')][_0x3c1c('0x4d')]?!![]:![]},{'model':db[_0x3c1c('0x4e')],'as':_0x3c1c('0x5f'),'attributes':['id',_0x3c1c('0x34'),'color'],'through':_0x2df0bc['query'][_0x3c1c('0x4d')]?{'attributes':[],'where':{'TagId':_0x2df0bc[_0x3c1c('0x37')][_0x3c1c('0x4d')]||undefined}}:{},'required':_0x2df0bc[_0x3c1c('0x37')][_0x3c1c('0x4d')]?!![]:![]}];}return db[_0x3c1c('0x36')]['findAll'](_0x4bcca8);})[_0x3c1c('0x1d')](function(_0x9c316b){_0x516b8a[_0x3c1c('0x60')]=_0x9c316b;return _0x516b8a;})[_0x3c1c('0x1d')](respondWithFilteredResult(_0x1c0a88,_0x4bcca8))[_0x3c1c('0x26')](handleError(_0x1c0a88,null));};exports[_0x3c1c('0x61')]=function(_0x135d03,_0x86070e){var _0x39fd23={'raw':![],'where':{'id':_0x135d03[_0x3c1c('0x62')]['id']}},_0x2d5f7a={};_0x2d5f7a[_0x3c1c('0x3a')]=_[_0x3c1c('0x63')](db['ChatInteraction'][_0x3c1c('0x64')]);_0x2d5f7a[_0x3c1c('0x37')]=_[_0x3c1c('0x63')](_0x135d03[_0x3c1c('0x37')]);_0x2d5f7a[_0x3c1c('0x38')]=_[_0x3c1c('0x39')](_0x2d5f7a[_0x3c1c('0x3a')],_0x2d5f7a[_0x3c1c('0x37')]);_0x39fd23[_0x3c1c('0x3b')]=_[_0x3c1c('0x39')](_0x2d5f7a['model'],qs[_0x3c1c('0x3c')](_0x135d03[_0x3c1c('0x37')][_0x3c1c('0x3c')]));_0x39fd23['attributes']=_0x39fd23[_0x3c1c('0x3b')][_0x3c1c('0x3d')]?_0x39fd23[_0x3c1c('0x3b')]:_0x2d5f7a['model'];if(_0x135d03[_0x3c1c('0x37')]['includeAll']){_0x39fd23[_0x3c1c('0x4c')]=[{'all':!![]}];}_0x39fd23=_[_0x3c1c('0x46')]({},_0x39fd23,_0x135d03[_0x3c1c('0x4b')]);return db[_0x3c1c('0x36')][_0x3c1c('0x65')](_0x39fd23)[_0x3c1c('0x1d')](handleEntityNotFound(_0x86070e,null))['then'](respondWithResult(_0x86070e,null))[_0x3c1c('0x26')](handleError(_0x86070e,null));};exports[_0x3c1c('0x66')]=function(_0x5e214a,_0x2baaf3){return db[_0x3c1c('0x36')][_0x3c1c('0x66')](_0x5e214a['body'],{})[_0x3c1c('0x1d')](respondWithResult(_0x2baaf3,0xc9))[_0x3c1c('0x26')](handleError(_0x2baaf3,null));};exports[_0x3c1c('0x32')]=function(_0x5276f9,_0x1eeb21){if(_0x5276f9[_0x3c1c('0x67')]['id']){delete _0x5276f9[_0x3c1c('0x67')]['id'];}return db[_0x3c1c('0x36')]['find']({'where':{'id':_0x5276f9[_0x3c1c('0x62')]['id']}})['then'](handleEntityNotFound(_0x1eeb21,null))[_0x3c1c('0x1d')](saveUpdates(_0x5276f9[_0x3c1c('0x67')],null))['then'](respondWithResult(_0x1eeb21,null))[_0x3c1c('0x26')](handleError(_0x1eeb21,null));};exports[_0x3c1c('0x68')]=function(_0xa5e9b,_0x2bf7ca){return db[_0x3c1c('0x36')][_0x3c1c('0x65')]({'where':{'id':_0xa5e9b[_0x3c1c('0x62')]['id']}})[_0x3c1c('0x1d')](handleEntityNotFound(_0x2bf7ca,null))[_0x3c1c('0x1d')](removeEntity(_0x2bf7ca,null))['catch'](handleError(_0x2bf7ca,null));};exports[_0x3c1c('0x69')]=function(_0x351684,_0x254732){return db[_0x3c1c('0x36')][_0x3c1c('0x69')]()[_0x3c1c('0x1d')](respondWithResult(_0x254732,null))[_0x3c1c('0x26')](handleError(_0x254732,null));};exports[_0x3c1c('0x6a')]=function(_0x275361,_0x5aebf2){if(_0x275361[_0x3c1c('0x67')]['id']){delete _0x275361[_0x3c1c('0x67')]['id'];}return db['ChatInteraction'][_0x3c1c('0x65')]({'where':{'id':_0x275361[_0x3c1c('0x62')]['id']}})[_0x3c1c('0x1d')](handleEntityNotFound(_0x5aebf2,null))[_0x3c1c('0x1d')](saveUpdates(_0x275361['body'],null))[_0x3c1c('0x1d')](respondWithResult(_0x5aebf2,null))['catch'](handleError(_0x5aebf2,null));};exports[_0x3c1c('0x6b')]=function(_0x448ecd,_0x17dca9,_0x52fe7e){if(_0x448ecd[_0x3c1c('0x67')]['id']){delete _0x448ecd[_0x3c1c('0x67')]['id'];}return db[_0x3c1c('0x36')]['find']({'where':{'id':_0x448ecd['params']['id']}})['then'](function(_0x336ec8){if(!_0x336ec8){logger[_0x3c1c('0x22')](_0x3c1c('0x6c'),_0x3c1c('0x6b'),0x194,'entity\x20not\x20found');_0x17dca9['sendStatus'](0x194);}else{if(_0x336ec8[_0x3c1c('0x6d')]){throw new db[(_0x3c1c('0x6e'))]['ValidationError'](_0x3c1c('0x6f'));}}return _0x336ec8;})['then'](function(_0x31241b){if(_0x31241b){return _0x31241b[_0x3c1c('0x32')]({'closed':_0x448ecd['body'][_0x3c1c('0x70')],'closedAt':_0x448ecd[_0x3c1c('0x67')][_0x3c1c('0x71')],'disposition':_0x448ecd[_0x3c1c('0x67')][_0x3c1c('0x72')]})['then'](function(_0x474a7f){return _0x474a7f;});}})['then'](function(_0x21681d){return respondWithRpcPromise(_0x3c1c('0x73'),'abandon',_0x448ecd[_0x3c1c('0x67')],client9004);})['then'](respondWithResult(_0x17dca9,null))['catch'](handleError(_0x17dca9,null));};exports[_0x3c1c('0x74')]=function(_0x2dc88d,_0x47c7eb,_0x2ebc64){_0x2dc88d['body'][_0x3c1c('0x34')]=_0x2dc88d[_0x3c1c('0x75')]['originalname'];_0x2dc88d['body'][_0x3c1c('0x76')]=_0x2dc88d[_0x3c1c('0x75')][_0x3c1c('0x77')];_0x2dc88d[_0x3c1c('0x67')]['type']=_0x2dc88d[_0x3c1c('0x75')]['mimetype'];return db[_0x3c1c('0x78')][_0x3c1c('0x66')](_0x2dc88d['body'])[_0x3c1c('0x1d')](respondWithResult(_0x47c7eb,0xc9))[_0x3c1c('0x26')](handleError(_0x47c7eb,null));};exports[_0x3c1c('0x79')]=function(_0x3ab227,_0x3efb1c,_0x2558c2){return db[_0x3c1c('0x36')][_0x3c1c('0x7a')]({'where':{'id':_0x3ab227['params']['id']},'raw':!![]})[_0x3c1c('0x1d')](handleEntityNotFound(_0x3efb1c,null))[_0x3c1c('0x1d')](function(_0x7a8992){if(_0x7a8992){if(_0x7a8992[_0x3c1c('0x70')]){return _0x3efb1c['status'](0x193)[_0x3c1c('0x2a')]({'status':0x193,'message':'Unauthorized'});}return db[_0x3c1c('0x78')][_0x3c1c('0x7a')]({'where':{'id':_0x3ab227[_0x3c1c('0x37')][_0x3c1c('0x7b')]},'raw':!![]})[_0x3c1c('0x1d')](handleEntityNotFound(_0x3efb1c,null));}})[_0x3c1c('0x1d')](function(_0x5160a5){if(_0x5160a5){return _0x3efb1c[_0x3c1c('0x7c')](path[_0x3c1c('0x7d')](config[_0x3c1c('0x7e')],'server/files/attachments/',_0x5160a5[_0x3c1c('0x76')]));}})[_0x3c1c('0x26')](handleError(_0x3efb1c,null));};exports['close']=function(_0x56824a,_0x4d676d){var _0x5389b2=null;var _0x5f5d06=null;var _0x5ae07b=null;var _0x2e460b=null;if(_0x56824a[_0x3c1c('0x67')]['id']){delete _0x56824a['body']['id'];}if(_0x56824a[_0x3c1c('0x67')][_0x3c1c('0x7f')]){_0x2e460b=path[_0x3c1c('0x7d')](config[_0x3c1c('0x7e')],'server/files/chat/upload/',util['format'](_0x3c1c('0x80'),Date['now']()));_0x56824a[_0x3c1c('0x67')][_0x3c1c('0x81')]=_0x2e460b;}return db[_0x3c1c('0x36')][_0x3c1c('0x65')]({'where':{'id':_0x56824a['params']['id']},'include':[{'model':db['ChatMessage'],'as':'Messages','include':[{'model':db['User'],'as':_0x3c1c('0x56')}]}]})[_0x3c1c('0x1d')](handleEntityNotFound(_0x4d676d,null))[_0x3c1c('0x1d')](saveUpdates(_0x56824a[_0x3c1c('0x67')],null))['then'](function(_0x2ddbad){if(_0x2ddbad){_0x5389b2=_0x2ddbad;return db['ChatWebsite'][_0x3c1c('0x65')]({'where':{'id':_0x5389b2[_0x3c1c('0x82')]}});}})['then'](function(_0x33ddb2){if(_0x33ddb2){_0x5ae07b=_0x33ddb2;return db['CmContact'][_0x3c1c('0x65')]({'where':{'id':_0x5389b2[_0x3c1c('0x83')]}});}})[_0x3c1c('0x1d')](function(_0x1dc2bf){if(_0x1dc2bf){_0x5f5d06=_0x1dc2bf;if(_0x2e460b){var _0x48c13f=null;for(var _0x5df2aa=0x1;_0x5df2aa<_0x5389b2['Messages'][_0x3c1c('0x3d')];++_0x5df2aa){_0x48c13f=_0x5389b2[_0x3c1c('0x52')][_0x5df2aa];var _0x41e7c7=_0x48c13f['UserId']?util[_0x3c1c('0x84')](_0x3c1c('0x85'),_0x5ae07b[_0x3c1c('0x86')],_0x48c13f[_0x3c1c('0x6d')]):'System';var _0x3b4366=_0x56824a[_0x3c1c('0x67')][_0x3c1c('0x87')]||util[_0x3c1c('0x84')](_0x3c1c('0x85'),_0x3c1c('0x88'),_0x48c13f['ContactId']);switch(_0x5ae07b[_0x3c1c('0x89')]){case _0x3c1c('0x8a'):_0x41e7c7=_0x48c13f[_0x3c1c('0x6d')]?util[_0x3c1c('0x84')]('%s%d',_0x5ae07b[_0x3c1c('0x86')],_0x48c13f[_0x3c1c('0x6d')]):_0x3c1c('0x8b');break;case _0x3c1c('0x8c'):_0x41e7c7=_0x48c13f['UserId']?_0x48c13f[_0x3c1c('0x56')]['alias']||_0x48c13f[_0x3c1c('0x56')]['fullname']:_0x3c1c('0x8b');break;case'agent_fullname':_0x41e7c7=_0x48c13f[_0x3c1c('0x6d')]?_0x48c13f[_0x3c1c('0x56')][_0x3c1c('0x8d')]:_0x3c1c('0x8b');break;default:_0x41e7c7=_0x48c13f[_0x3c1c('0x6d')]?util[_0x3c1c('0x84')]('%s%d',_0x5ae07b['agentAlias'],_0x48c13f[_0x3c1c('0x6d')]):'System';}var _0x48a35d=util[_0x3c1c('0x84')](_0x3c1c('0x8e'),moment(_0x48c13f[_0x3c1c('0x54')])[_0x3c1c('0x84')](_0x3c1c('0x8f')),_0x48c13f['direction']==='in'?_0x3b4366:_0x41e7c7,_0x48c13f['body']);if(!_0x48c13f['secret']){fs[_0x3c1c('0x90')](_0x2e460b,_0x48a35d);}}return db['MailAccount'][_0x3c1c('0x7a')]({'where':{'service':!![]},'include':[{'model':db[_0x3c1c('0x91')],'as':_0x3c1c('0x92'),'raw':!![]}]});}}})[_0x3c1c('0x1d')](function(_0x5e90df){if(_0x5e90df&&_0x5e90df[_0x3c1c('0x92')]&&_0x56824a[_0x3c1c('0x67')]){var _0x5c3119={'tls':{'rejectUnauthorized':![]}};if(_0x5e90df[_0x3c1c('0x92')][_0x3c1c('0x93')]){_0x5c3119[_0x3c1c('0x93')]=_0x5e90df['Smtp'][_0x3c1c('0x93')];}else{_0x5c3119[_0x3c1c('0x94')]=_0x5e90df['Smtp'][_0x3c1c('0x94')];_0x5c3119['port']=_0x5e90df['Smtp'][_0x3c1c('0x95')];_0x5c3119[_0x3c1c('0x96')]=_0x5e90df[_0x3c1c('0x92')][_0x3c1c('0x96')];}if(_0x5e90df[_0x3c1c('0x92')][_0x3c1c('0x97')]){_0x5c3119[_0x3c1c('0x98')]={'user':_0x5e90df[_0x3c1c('0x92')][_0x3c1c('0x99')],'pass':_0x5e90df['Smtp']['pass']};}return respondWithRpcPromise('SendMail','sendMail',{'account':_0x5c3119,'message':{'from':util[_0x3c1c('0x84')]('\x22%s\x22\x20<%s>',_0x5e90df[_0x3c1c('0x34')],_0x5e90df['email']||_0x5e90df[_0x3c1c('0x92')][_0x3c1c('0x99')]),'to':_0x56824a[_0x3c1c('0x67')][_0x3c1c('0x7f')],'subject':'Mail\x20Transcript','text':util[_0x3c1c('0x84')](_0x3c1c('0x9a'),_0x56824a[_0x3c1c('0x67')][_0x3c1c('0x7f')]),'attachments':[{'path':_0x2e460b}]}})[_0x3c1c('0x1d')](function(){return _0x5389b2;})['catch'](function(_0x407841){console[_0x3c1c('0x22')](_0x407841);});}else{return _0x5389b2;}})[_0x3c1c('0x1d')](respondWithStatusCode(_0x4d676d,0xc8))[_0x3c1c('0x26')](handleError(_0x4d676d,null));};exports['addMessage']=function(_0x58eaff,_0xd18881,_0x2ff53d){return db[_0x3c1c('0x9b')]['find']({'where':{'id':_0x58eaff[_0x3c1c('0x62')]['id']}})[_0x3c1c('0x1d')](handleEntityNotFound(_0xd18881,null))['then'](function(_0x4d3d3d){if(_0x4d3d3d){return _0x4d3d3d[_0x3c1c('0x9c')](_0x58eaff[_0x3c1c('0x67')]['ids'],_[_0x3c1c('0x9d')](_0x58eaff[_0x3c1c('0x67')],[_0x3c1c('0x9e'),'id'])||{});}})[_0x3c1c('0x1d')](respondWithResult(_0xd18881,null))['catch'](handleError(_0xd18881,null));};exports[_0x3c1c('0x9f')]=function(_0x29ad7e,_0x4461f6,_0x82df81){var _0x52f459={'raw':![],'where':{}};var _0x461d51={};var _0x177e30={'count':0x0,'rows':[]};return db[_0x3c1c('0x36')]['findOne']({'where':{'id':_0x29ad7e[_0x3c1c('0x62')]['id']}})[_0x3c1c('0x1d')](handleEntityNotFound(_0x4461f6,null))['then'](function(_0x336df8){if(_0x336df8){_0x461d51[_0x3c1c('0x3a')]=_[_0x3c1c('0x63')](db[_0x3c1c('0x9b')][_0x3c1c('0x64')]);_0x461d51[_0x3c1c('0x37')]=_['keys'](_0x29ad7e['query']);_0x461d51[_0x3c1c('0x38')]=_[_0x3c1c('0x39')](_0x461d51[_0x3c1c('0x3a')],_0x461d51['query']);_0x52f459['attributes']=_[_0x3c1c('0x39')](_0x461d51[_0x3c1c('0x3a')],qs[_0x3c1c('0x3c')](_0x29ad7e[_0x3c1c('0x37')][_0x3c1c('0x3c')]));_0x52f459['attributes']=_0x52f459['attributes'][_0x3c1c('0x3d')]?_0x52f459[_0x3c1c('0x3b')]:_0x461d51[_0x3c1c('0x3a')];if(!_0x29ad7e[_0x3c1c('0x37')][_0x3c1c('0x3e')](_0x3c1c('0x3f'))){_0x52f459[_0x3c1c('0x40')]=qs['limit'](_0x29ad7e[_0x3c1c('0x37')][_0x3c1c('0x40')]);_0x52f459[_0x3c1c('0x2c')]=qs[_0x3c1c('0x2c')](_0x29ad7e['query'][_0x3c1c('0x2c')]);}_0x52f459[_0x3c1c('0x41')]=qs[_0x3c1c('0x42')](_0x29ad7e[_0x3c1c('0x37')]['sort']);_0x52f459['where']=qs[_0x3c1c('0x38')](_[_0x3c1c('0x44')](_0x29ad7e[_0x3c1c('0x37')],_0x461d51[_0x3c1c('0x38')]));_0x52f459['where'][_0x3c1c('0xa0')]=_0x336df8['id'];if(_0x29ad7e[_0x3c1c('0x37')][_0x3c1c('0x45')]){_0x52f459['where']=_['merge'](_0x52f459[_0x3c1c('0x43')],{'$or':_[_0x3c1c('0x47')](_0x52f459['attributes'],function(_0x11c6eb){var _0x2ee319={};_0x2ee319[_0x11c6eb]={'$like':'%'+_0x29ad7e[_0x3c1c('0x37')][_0x3c1c('0x45')]+'%'};return _0x2ee319;})});}if(_0x29ad7e[_0x3c1c('0x37')]['$gte']){var _0x1cbac7=_0x29ad7e[_0x3c1c('0x37')]['$gte'][_0x3c1c('0xa1')](',');var _0x3267b4={};_0x3267b4[_0x1cbac7[0x0]]={'$gte':moment(_0x1cbac7[0x1])[_0x3c1c('0x84')](_0x3c1c('0xa2'))};_0x52f459[_0x3c1c('0x43')]=_[_0x3c1c('0x46')](_0x52f459[_0x3c1c('0x43')],_0x3267b4);}_0x52f459=_[_0x3c1c('0x46')]({},_0x52f459,_0x29ad7e['options']);return db[_0x3c1c('0x9b')][_0x3c1c('0x2b')]({'where':_0x52f459[_0x3c1c('0x43')]})[_0x3c1c('0x1d')](function(_0x3faf90){_0x177e30[_0x3c1c('0x2b')]=_0x3faf90;if(_0x29ad7e[_0x3c1c('0x37')][_0x3c1c('0x55')]){_0x52f459[_0x3c1c('0x4c')]=[{'all':!![]}];}return db[_0x3c1c('0x9b')][_0x3c1c('0xa3')](_0x52f459);})['then'](function(_0x1d26d9){_0x177e30[_0x3c1c('0x60')]=_0x1d26d9;return _0x177e30;});}})[_0x3c1c('0x1d')](respondWithFilteredResult(_0x4461f6,_0x52f459))[_0x3c1c('0x26')](handleError(_0x4461f6,null));};exports['getMyMessages']=function(_0x399ddb,_0xeb0085,_0x2f3eab){var _0x16df0c={'where':{}},_0x1cfa61={},_0x2d6230={'count':0x0,'rows':[]};return db[_0x3c1c('0x36')]['findOne']({'where':{'id':_0x399ddb[_0x3c1c('0x62')]['id']}})[_0x3c1c('0x1d')](handleEntityNotFound(_0xeb0085,null))[_0x3c1c('0x1d')](function(_0x31da0f){if(_0x31da0f){_0x1cfa61['model']=_['keys'](db[_0x3c1c('0x9b')][_0x3c1c('0x64')]);_0x1cfa61[_0x3c1c('0x37')]=_[_0x3c1c('0x63')](_0x399ddb[_0x3c1c('0x37')]);_0x1cfa61[_0x3c1c('0x38')]=_['intersection'](_0x1cfa61[_0x3c1c('0x3a')],_0x1cfa61[_0x3c1c('0x37')]);_0x16df0c[_0x3c1c('0x3b')]=_[_0x3c1c('0x39')](_0x1cfa61[_0x3c1c('0x3a')],qs['fields'](_0x399ddb['query'][_0x3c1c('0x3c')]));_0x16df0c[_0x3c1c('0x3b')]=_0x16df0c[_0x3c1c('0x3b')][_0x3c1c('0x3d')]?_0x16df0c[_0x3c1c('0x3b')]:_0x1cfa61[_0x3c1c('0x3a')];if(!_0x399ddb[_0x3c1c('0x37')][_0x3c1c('0x3e')](_0x3c1c('0x3f'))){_0x16df0c['limit']=qs[_0x3c1c('0x40')](_0x399ddb[_0x3c1c('0x37')][_0x3c1c('0x40')]);_0x16df0c[_0x3c1c('0x2c')]=qs[_0x3c1c('0x2c')](_0x399ddb[_0x3c1c('0x37')][_0x3c1c('0x2c')]);}_0x16df0c[_0x3c1c('0x41')]=qs[_0x3c1c('0x42')](_0x399ddb[_0x3c1c('0x37')][_0x3c1c('0x42')]);_0x16df0c['where']=qs['filters'](_[_0x3c1c('0x44')](_0x399ddb[_0x3c1c('0x37')],_0x1cfa61[_0x3c1c('0x38')]));_0x16df0c[_0x3c1c('0x43')][_0x3c1c('0xa0')]=_0x31da0f['id'];if(_0x399ddb[_0x3c1c('0x37')]['filter']){_0x16df0c[_0x3c1c('0x43')]=_[_0x3c1c('0x46')](_0x16df0c[_0x3c1c('0x43')],{'$or':_[_0x3c1c('0x47')](_0x16df0c[_0x3c1c('0x3b')],function(_0xa9fb4c){var _0x5442fe={};_0x5442fe[_0xa9fb4c]={'$like':'%'+_0x399ddb[_0x3c1c('0x37')][_0x3c1c('0x45')]+'%'};return _0x5442fe;})});}_0x16df0c[_0x3c1c('0x43')][_0x3c1c('0xa4')]=![];if(_0x399ddb[_0x3c1c('0x37')]['id']){_0x16df0c[_0x3c1c('0x43')]['id']={'$gt':_0x399ddb[_0x3c1c('0x37')]['id']};}_0x16df0c=_[_0x3c1c('0x46')]({},_0x16df0c,_0x399ddb[_0x3c1c('0x4b')]);return db['ChatMessage'][_0x3c1c('0x2b')]({'where':_0x16df0c[_0x3c1c('0x43')]})['then'](function(_0x39fd11){_0x2d6230[_0x3c1c('0x2b')]=_0x39fd11;_0x16df0c[_0x3c1c('0x4c')]=[];if(_0x399ddb['query'][_0x3c1c('0xa5')]){_0x16df0c[_0x3c1c('0x4c')][_0x3c1c('0xa6')]({'model':db[_0x3c1c('0x56')],'as':_0x3c1c('0x56'),'attributes':['id',_0x3c1c('0x8d'),_0x3c1c('0xa7')]});}if(_0x399ddb['query'][_0x3c1c('0x55')]){_0x16df0c[_0x3c1c('0x4c')]=[{'all':!![]}];}return db[_0x3c1c('0x9b')][_0x3c1c('0xa3')](_0x16df0c);})[_0x3c1c('0x1d')](function(_0x3ed8af){_0x2d6230[_0x3c1c('0x60')]=_0x3ed8af;return _0x2d6230;});}})[_0x3c1c('0x1d')](respondWithFilteredResult(_0xeb0085,_0x16df0c))[_0x3c1c('0x26')](handleError(_0xeb0085,null));};exports[_0x3c1c('0xa8')]=function(_0x2b7d6f,_0x446147,_0xd7873e){return db[_0x3c1c('0x36')]['find']({'where':{'id':_0x2b7d6f[_0x3c1c('0x62')]['id']}})[_0x3c1c('0x1d')](handleEntityNotFound(_0x446147,null))[_0x3c1c('0x1d')](function(_0x27f8b4){if(_0x27f8b4){return _0x27f8b4[_0x3c1c('0xa9')](_0x2b7d6f[_0x3c1c('0x67')]['ids'],_[_0x3c1c('0x9d')](_0x2b7d6f[_0x3c1c('0x67')],['ids','id'])||{})[_0x3c1c('0xaa')](function(){return db['Tag'][_0x3c1c('0xa3')]({'attributes':['id',_0x3c1c('0x34'),_0x3c1c('0x5e')],'where':{'id':_0x2b7d6f[_0x3c1c('0x67')][_0x3c1c('0x9e')]}});})['then'](function(_0x2ee1bc){socket[_0x3c1c('0xab')]('chatInteractionTags:save',{'id':Number(_0x2b7d6f['params']['id']),'tags':_0x2ee1bc||[]});return{'id':Number(_0x2b7d6f[_0x3c1c('0x62')]['id']),'tags':_0x2ee1bc||[]};});}})['then'](respondWithResult(_0x446147,null))['catch'](handleError(_0x446147,null));};exports[_0x3c1c('0xac')]=function(_0x354391,_0x139d01,_0x17abab){var _0x3227ec;return db['ChatInteraction'][_0x3c1c('0x65')]({'where':{'id':_0x354391[_0x3c1c('0x62')]['id']}})[_0x3c1c('0x1d')](handleEntityNotFound(_0x139d01,null))[_0x3c1c('0x1d')](function(_0x5c1eab){if(_0x5c1eab){return _0x5c1eab[_0x3c1c('0xac')](_0x354391[_0x3c1c('0x37')][_0x3c1c('0x9e')]);}})[_0x3c1c('0x1d')](respondWithStatusCode(_0x139d01,null))['catch'](handleError(_0x139d01,null));};exports[_0x3c1c('0x7c')]=function(_0x3a7bee,_0x467998){var _0x51e566=moment()['unix']()[_0x3c1c('0xad')]();var _0xf93559=path[_0x3c1c('0x7d')](config[_0x3c1c('0x7e')],'server',_0x3c1c('0xae'),_0x3c1c('0xaf'));var _0x3f164e=path[_0x3c1c('0x7d')](config['root'],_0x3c1c('0xb0'),_0x3c1c('0xae'),'attachments');var _0x37032c=path[_0x3c1c('0x7d')](_0xf93559,_0x51e566);var _0xc98eed=util['format'](_0x3c1c('0xb1'),_0x51e566);var _0x1c6bf5=path[_0x3c1c('0x7d')](_0xf93559,_0xc98eed);var _0x1280e1=![];return db[_0x3c1c('0x36')][_0x3c1c('0x65')]({'where':{'id':_0x3a7bee[_0x3c1c('0x62')]['id']},'include':[{'model':db[_0x3c1c('0x9b')],'as':_0x3c1c('0x52'),'attributes':['id',_0x3c1c('0x67')],'include':[{'model':db['User'],'as':_0x3c1c('0x56'),'attributes':['id',_0x3c1c('0x8d')],'raw':!![]},{'model':db[_0x3c1c('0x57')],'as':_0x3c1c('0x58'),'attributes':['id',_0x3c1c('0xb2')],'raw':!![]},{'model':db[_0x3c1c('0x78')],'as':_0x3c1c('0x78'),'raw':!![]}]}]})[_0x3c1c('0x1d')](handleEntityNotFound(_0x467998,null))[_0x3c1c('0x1d')](function(_0x8addaf){if(_0x8addaf){_0x1280e1=!![];var _0x485ae9='';var _0xf149f9={'format':_0x3c1c('0xb3'),'border':'1cm'};fs[_0x3c1c('0xb4')](_0x37032c);_0x485ae9+=util[_0x3c1c('0x84')](_0x3c1c('0xb5'),_0x8addaf['id']);_0x485ae9+=util[_0x3c1c('0x84')](_0x3c1c('0xb6'),moment()[_0x3c1c('0x84')](_0x3c1c('0xb7'))[_0x3c1c('0xad')]());_0x485ae9+='<hr>';for(var _0x5eeaef=0x1;_0x5eeaef<_0x8addaf[_0x3c1c('0x52')]['length'];_0x5eeaef++){var _0x1ff356=_0x8addaf['Messages'][_0x5eeaef];_0x485ae9+=_0x3c1c('0xb8');_0x485ae9+=util[_0x3c1c('0x84')](_0x3c1c('0xb9'),_0x1ff356[_0x3c1c('0x56')]?_0x1ff356[_0x3c1c('0x56')][_0x3c1c('0x8d')]:_0x1ff356[_0x3c1c('0x58')][_0x3c1c('0xb2')],_0x1ff356[_0x3c1c('0x67')]);_0x485ae9+='</div>';if(_0x1ff356[_0x3c1c('0x78')]){var _0x40f872=_0x1ff356[_0x3c1c('0x78')];var _0x25e149=path[_0x3c1c('0x7d')](_0x3f164e,_0x40f872[_0x3c1c('0x76')]);if(fs[_0x3c1c('0xba')](_0x25e149)){fs[_0x3c1c('0xbb')](_0x25e149)['pipe'](fs[_0x3c1c('0xbc')](path[_0x3c1c('0x7d')](_0x37032c,_0x40f872[_0x3c1c('0x76')])));}}}return new BPromise(function(_0x37d905,_0x4a1c12){pdf[_0x3c1c('0x66')](_0x485ae9,_0xf149f9)[_0x3c1c('0xbd')](path[_0x3c1c('0x7d')](_0x37032c,_0x3c1c('0xbe')+_0x51e566+_0x3c1c('0xbf')),function(_0x555dd7,_0x34e759){if(_0x555dd7)return _0x4a1c12(_0x555dd7);_0x37d905(_0x34e759);});});}})['then'](function(){if(_0x1280e1){return new BPromise(function(_0x132a2d,_0x143bcb){zipdir(_0x37032c,{'saveTo':_0x1c6bf5},function(_0x21c212,_0x1f620c){if(_0x21c212)return _0x143bcb(_0x21c212);return _0x132a2d(_0x1f620c);});});}})[_0x3c1c('0x1d')](function(){if(_0x1280e1){return new BPromise(function(_0x896576,_0x3134f1){rimraf(_0x37032c,function(_0x4097e5){if(_0x4097e5)_0x3134f1(_0x4097e5);return _0x896576();});});}})[_0x3c1c('0x1d')](function(){if(_0x1280e1){return _0x467998[_0x3c1c('0x7c')](_0x1c6bf5,_0xc98eed,function(_0x705918){if(_0x705918){console[_0x3c1c('0xc0')](_0x3c1c('0xc1'),_0x705918);}else{fs['unlinkSync'](_0x1c6bf5);}});}else{return _0x467998[_0x3c1c('0x27')](0xc8);}})[_0x3c1c('0x26')](handleError(_0x467998,null));};