a03c7fb5760a5279e27cc9e1cdb17e0ccf0d5fc2
[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 _0x7fbe=['ContactId','type','start','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','User','operator','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','buildExpression','text','compact','isEmpty','where','i.ChatWebsiteId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','filter','replace','\x27\x27\x27\x27','isNumeric','i.id\x20LIKE\x20?','i.id','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','DESC','t.id\x20IN\x20?','resolve','ChatWebsiteId','journey','i.ChatWebsiteId\x20IS\x20NOT\x20NULL','user','getChatWebsites','i.ChatWebsiteId\x20IS\x20NULL','sequelize','toString','keyBy','merge','ChatInteraction','a.key','a.mandatoryDisposition','Account.mandatoryDisposition','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','c.phone','c.mobile','Contact.mobile','o.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.ChatInteractionId\x20IN\x20?','groupBy','ChatInteractionId','all','rows','show','params','model','includeAll','create','body','describe','createVidaooSession','findOne','ChatWebsite','vidaooEscalation','vidaooApiKey','POST','MotionCWB:','follow','Sequelize','Error\x20in\x20Vidaoo\x20configuration','join_url','out','ValidationError','customUpdate','abandon','entity\x20not\x20found','Interaction\x20already\x20assigned','attachmentUpload','originalname','basename','file','filename','mimetype','Attachment','Unauthorized','download','join','root','server/files/attachments/','close','mailTranscript','format','transcript-%s.txt','now','pathTranscript','ChatMessage','Messages','CmContact','%s%d','System','customer','Visitor','agentIdentifier','website_alias','agentAlias','agent_alias','MM/DD/YYYY\x20HH:mm:ss','direction','secret','appendFileSync','MailServerOut','Smtp','service','host','port','secure','authentication','auth','SendMail','sendMail','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','ids','omit','getMessages','findAll','getMyMessages','options','include','includeAgent','alias','addTags','spread','color','emit','chatInteractionTags:save','removeTags','unix','server','files','tmp','attachments','transcript-%d-%s.zip','firstName','lastName','Owner','get','10px','40px','<div\x20class=\x22header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h5>Interaction\x20Transcript</h5>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>','<hr\x20class=\x22separator\x22/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22footer\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22left\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>%s</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22center\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>{{page}}/{{pages}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22right\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>%s</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>','%s\x20#%d','Chat','YYYY-MM-DD','N.A.','YYYY-MM-DD\x20HH:mm:ss','closed','browserName','osName','customerIp','customerPort','tail','createReadStream','createWriteStream','renderFile','downloadInteraction.html','toFile','transcript-','.pdf','log','err','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInteraction.socket','register','client','http','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','error','code','message','catch','sendStatus','status','end','json','count','offset','limit','set','apply','reject','save','update','destroy','stack','name','send','Users','map','fullname','TagIds','split','forEach','push','index','rawAttributes','fieldName','key','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','select','field','from','tools_tags','u.id','u.fullname','ui.ChatInteractionId','user_has_chat_interactions','left_join','users','u.id\x20=\x20ui.UserId','cm_contacts','chat_websites','a.id\x20=\x20i.ChatWebsiteId','chat_messages','chat_interaction_has_tags','it.ChatInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','sqlOperator','length','conditions','find','unreadMessages','value','`\x20=\x200','having','`\x20>\x200','Contact','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?'];(function(_0x4c7e8e,_0x3c5035){var _0x503c3f=function(_0x5a0659){while(--_0x5a0659){_0x4c7e8e['push'](_0x4c7e8e['shift']());}};_0x503c3f(++_0x3c5035);}(_0x7fbe,0x1ec));var _0xe7fb=function(_0xc498b3,_0x5610b4){_0xc498b3=_0xc498b3-0x0;var _0x1e2530=_0x7fbe[_0xc498b3];return _0x1e2530;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0xe7fb('0x0'));var zipdir=require(_0xe7fb('0x1'));var jsonpatch=require(_0xe7fb('0x2'));var rp=require(_0xe7fb('0x3'));var moment=require(_0xe7fb('0x4'));var BPromise=require(_0xe7fb('0x5'));var Mustache=require(_0xe7fb('0x6'));var util=require(_0xe7fb('0x7'));var path=require(_0xe7fb('0x8'));var sox=require(_0xe7fb('0x9'));var csv=require(_0xe7fb('0xa'));var ejs=require(_0xe7fb('0xb'));var fs=require('fs');var _=require(_0xe7fb('0xc'));var squel=require(_0xe7fb('0xd'));var crypto=require('crypto');var jsforce=require(_0xe7fb('0xe'));var deskjs=require(_0xe7fb('0xf'));var toCsv=require(_0xe7fb('0xa'));var querystring=require(_0xe7fb('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xe7fb('0x11'));var qs=require(_0xe7fb('0x12'));var as=require(_0xe7fb('0x13'));var hardwareService=require(_0xe7fb('0x14'));var logger=require(_0xe7fb('0x15'))(_0xe7fb('0x16'));var utils=require(_0xe7fb('0x17'));var config=require(_0xe7fb('0x18'));var licenseUtil=require(_0xe7fb('0x19'));var db=require(_0xe7fb('0x1a'))['db'];config[_0xe7fb('0x1b')]=_[_0xe7fb('0x1c')](config[_0xe7fb('0x1b')],{'host':_0xe7fb('0x1d'),'port':0x18eb});var socket=require(_0xe7fb('0x1e'))(new Redis(config['redis']));require(_0xe7fb('0x1f'))[_0xe7fb('0x20')](socket);var jayson=require('jayson/promise');var client=jayson[_0xe7fb('0x21')][_0xe7fb('0x22')]({'port':0x232b});var client9004=jayson['client'][_0xe7fb('0x22')]({'port':0x232c});function respondWithRpcPromise(_0x559129,_0x12fff6,_0x18d23c,_0x12603d){return new BPromise(function(_0x17e8a8,_0x562262){var _0x892b0f=_0x12603d||client;return _0x892b0f['request'](_0x559129,_0x18d23c)[_0xe7fb('0x23')](function(_0x546463){logger[_0xe7fb('0x24')](_0xe7fb('0x25'),_0x12fff6,_0xe7fb('0x26'));logger[_0xe7fb('0x27')]('ChatInteraction,\x20%s,\x20%s,\x20%s',_0x12fff6,_0xe7fb('0x26'),JSON['stringify'](_0x546463));if(_0x546463[_0xe7fb('0x28')]){if(_0x546463['error'][_0xe7fb('0x29')]===0x1f4){logger['error'](_0xe7fb('0x25'),_0x12fff6,_0x546463[_0xe7fb('0x28')]['message']);return _0x562262(_0x546463[_0xe7fb('0x28')][_0xe7fb('0x2a')]);}logger[_0xe7fb('0x28')]('ChatInteraction,\x20%s,\x20%s',_0x12fff6,_0x546463[_0xe7fb('0x28')][_0xe7fb('0x2a')]);return _0x17e8a8(_0x546463['error']['message']);}else{logger['info'](_0xe7fb('0x25'),_0x12fff6,'request\x20sent');_0x17e8a8(_0x546463['result'][_0xe7fb('0x2a')]);}})[_0xe7fb('0x2b')](function(_0x2996ae){logger['error'](_0xe7fb('0x25'),_0x12fff6,_0x2996ae);_0x562262(_0x2996ae);});});}function respondWithStatusCode(_0x2b69c4,_0x390f32){_0x390f32=_0x390f32||0xcc;return function(_0x1ceed8){if(_0x1ceed8){return _0x2b69c4[_0xe7fb('0x2c')](_0x390f32);}return _0x2b69c4[_0xe7fb('0x2d')](_0x390f32)[_0xe7fb('0x2e')]();};}function respondWithResult(_0x59e015,_0x5df9f2){_0x5df9f2=_0x5df9f2||0xc8;return function(_0x1086e6){if(_0x1086e6){return _0x59e015[_0xe7fb('0x2d')](_0x5df9f2)[_0xe7fb('0x2f')](_0x1086e6);}};}function respondWithFilteredResult(_0x4fd290,_0xb1f2f4){return function(_0x251807){if(_0x251807){var _0xd3fffe=_0x251807[_0xe7fb('0x30')],_0x5f265f=_0xb1f2f4[_0xe7fb('0x31')],_0x219554=_0xb1f2f4['offset']+_0xb1f2f4[_0xe7fb('0x32')],_0x1256d4;if(_0x219554>=_0xd3fffe){_0x219554=_0xd3fffe;_0x1256d4=0xc8;}else{_0x1256d4=0xce;}_0x4fd290[_0xe7fb('0x2d')](_0x1256d4);return _0x4fd290[_0xe7fb('0x33')]('Content-Range',_0x5f265f+'-'+_0x219554+'/'+_0xd3fffe)['json'](_0x251807);}return null;};}function patchUpdates(_0xf5cd9a){return function(_0x4a9fea){try{jsonpatch[_0xe7fb('0x34')](_0x4a9fea,_0xf5cd9a,!![]);}catch(_0x2f8774){return BPromise[_0xe7fb('0x35')](_0x2f8774);}return _0x4a9fea[_0xe7fb('0x36')]();};}function saveUpdates(_0x556368,_0x1af472){return function(_0x1d56d3){if(_0x1d56d3){return _0x1d56d3[_0xe7fb('0x37')](_0x556368)[_0xe7fb('0x23')](function(_0x2d650d){return _0x2d650d;});}return null;};}function removeEntity(_0x480819,_0x256694){return function(_0x121d19){if(_0x121d19){return _0x121d19[_0xe7fb('0x38')]()[_0xe7fb('0x23')](function(){_0x480819[_0xe7fb('0x2d')](0xcc)[_0xe7fb('0x2e')]();});}};}function handleEntityNotFound(_0x1bc72d,_0x147eb1){return function(_0x389903){if(!_0x389903){_0x1bc72d['sendStatus'](0x194);}return _0x389903;};}function handleError(_0x44d8cf,_0x29ef52){_0x29ef52=_0x29ef52||0x1f4;return function(_0x2593e3){logger['error'](_0x2593e3[_0xe7fb('0x39')]);if(_0x2593e3[_0xe7fb('0x3a')]){delete _0x2593e3[_0xe7fb('0x3a')];}_0x44d8cf[_0xe7fb('0x2d')](_0x29ef52)[_0xe7fb('0x3b')](_0x2593e3);};}function getInteractionUsers(_0x35b828,_0xfeefb1){return new BPromise(function(_0xc4e271,_0x195c35){try{if(_0xfeefb1[_0x35b828['id']]){_0x35b828[_0xe7fb('0x3c')]=_[_0xe7fb('0x3d')](_0xfeefb1[_0x35b828['id']],function(_0x3c4f4b){return{'id':_0x3c4f4b['id'],'fullname':_0x3c4f4b[_0xe7fb('0x3e')]};});}}catch(_0x1c81fe){_0x195c35(_0x1c81fe);}_0xc4e271(_0x35b828);});}function getInteractionTags(_0xeb7c29,_0x41e2d1){return new BPromise(function(_0x30dd5b,_0x15aad5){try{if(_0xeb7c29[_0xe7fb('0x3f')]){_0xeb7c29['Tags']=[];_0xeb7c29[_0xe7fb('0x3f')][_0xe7fb('0x40')](',')[_0xe7fb('0x41')](function(_0x444f98){_0xeb7c29['Tags'][_0xe7fb('0x42')](_0x41e2d1[_0x444f98]);});}delete _0xeb7c29[_0xe7fb('0x3f')];}catch(_0xd472d){_0x15aad5(_0xd472d);}_0x30dd5b(_0xeb7c29);});}function updateChatInteraction(_0x413a13,_0x49fe9d,_0x2f976f){return new BPromise(function(_0x451a6c,_0x34265f){return getInteractionUsers(_0x413a13,_0x2f976f)[_0xe7fb('0x23')](function(_0x468d16){return getInteractionTags(_0x468d16,_0x49fe9d);})[_0xe7fb('0x23')](function(_0x5c4243){_0x451a6c(_0x5c4243);})[_0xe7fb('0x2b')](function(_0x35139f){_0x34265f(_0x35139f);});});}exports[_0xe7fb('0x43')]=function(_0x4b263d,_0x36a341){var _0x3a8c52={},_0x5d42ac={},_0x490333={'count':0x0,'rows':[]};var _0x5a01ae=_['map'](db['ChatInteraction'][_0xe7fb('0x44')],function(_0x957ca3){return{'name':_0x957ca3[_0xe7fb('0x45')],'type':_0x957ca3['type'][_0xe7fb('0x46')]};});_0x5d42ac['model']=_[_0xe7fb('0x3d')](_0x5a01ae,_0xe7fb('0x3a'));_0x5d42ac['query']=_[_0xe7fb('0x47')](_0x4b263d[_0xe7fb('0x48')]);_0x5d42ac[_0xe7fb('0x49')]=_[_0xe7fb('0x4a')](_0x5d42ac['model'],_0x5d42ac[_0xe7fb('0x48')]);_0x3a8c52[_0xe7fb('0x4b')]=_[_0xe7fb('0x4a')](_0x5d42ac['model'],qs[_0xe7fb('0x4c')](_0x4b263d[_0xe7fb('0x48')][_0xe7fb('0x4c')]));_0x3a8c52[_0xe7fb('0x4b')]=_0x3a8c52[_0xe7fb('0x4b')]['length']?_0x3a8c52[_0xe7fb('0x4b')]:_0x5d42ac['model'];if(!_0x4b263d[_0xe7fb('0x48')][_0xe7fb('0x4d')](_0xe7fb('0x4e'))){_0x3a8c52[_0xe7fb('0x32')]=qs[_0xe7fb('0x32')](_0x4b263d['query'][_0xe7fb('0x32')]);_0x3a8c52['offset']=qs['offset'](_0x4b263d[_0xe7fb('0x48')][_0xe7fb('0x31')]);}_0x3a8c52[_0xe7fb('0x4f')]=qs['sort'](_0x4b263d[_0xe7fb('0x48')][_0xe7fb('0x50')]);_0x3a8c52['where']=qs['filters'](_[_0xe7fb('0x51')](_0x4b263d[_0xe7fb('0x48')],_0x5d42ac[_0xe7fb('0x49')]),_0x5a01ae);var _0x3dd6bf=[];var _0x2dc09c=squel[_0xe7fb('0x52')]()[_0xe7fb('0x53')]('id')[_0xe7fb('0x53')]('name')[_0xe7fb('0x53')]('color')[_0xe7fb('0x54')](_0xe7fb('0x55'));var _0x5cedfb=squel[_0xe7fb('0x52')]()['field'](_0xe7fb('0x56'))['field'](_0xe7fb('0x57'))['field'](_0xe7fb('0x58'))['from'](_0xe7fb('0x59'),'ui')[_0xe7fb('0x5a')](_0xe7fb('0x5b'),'u',_0xe7fb('0x5c'));var _0xb8179a=squel[_0xe7fb('0x52')]()[_0xe7fb('0x54')]('chat_interactions','i')['left_join'](_0xe7fb('0x5d'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')['left_join']('users','o','o.id\x20=\x20i.UserId')['left_join'](_0xe7fb('0x5e'),'a',_0xe7fb('0x5f'))[_0xe7fb('0x5a')](_0xe7fb('0x60'),'me','me.ChatInteractionId\x20=\x20i.id')[_0xe7fb('0x5a')](_0xe7fb('0x61'),'it',_0xe7fb('0x62'))['left_join']('tools_tags','t',_0xe7fb('0x63'));var _0x377e5f=squel[_0xe7fb('0x64')]();var _0x4f4ba3=[];var _0x27f860=squel[_0xe7fb('0x64')]();var _0x108475;if(_0x4b263d[_0xe7fb('0x48')]['search']){_0x108475=as['parseSearch'](_0x4b263d[_0xe7fb('0x48')][_0xe7fb('0x65')]);var _0x1f16b2=_0x108475[_0xe7fb('0x66')];for(var _0x3b0147=0x0;_0x3b0147<_0x108475['conditions'][_0xe7fb('0x67')];_0x3b0147++){var _0x349a2a=_0x108475[_0xe7fb('0x68')][_0x3b0147];var _0x590d7a='i';var _0x50563b=_[_0xe7fb('0x69')](_0x5a01ae,[_0xe7fb('0x3a'),_0x349a2a[_0xe7fb('0x53')]]);if(!_0x50563b){switch(_0x349a2a[_0xe7fb('0x53')]){case _0xe7fb('0x6a'):if(_0x349a2a[_0xe7fb('0x6b')]==0x1){_0xb8179a['having']('`'+_0x349a2a[_0xe7fb('0x53')]+_0xe7fb('0x6c'));}else{_0xb8179a[_0xe7fb('0x6d')]('`'+_0x349a2a[_0xe7fb('0x53')]+_0xe7fb('0x6e'));}break;case _0xe7fb('0x6f'):if(_0x349a2a['operator']===_0xe7fb('0x70')){if(_0x349a2a['value'][_0xe7fb('0x40')]('\x20')[_0xe7fb('0x67')]>0x1){_0x377e5f[_0x1f16b2](_0xe7fb('0x71'),qs[_0xe7fb('0x72')](_0x349a2a['value']),null);}else{var _0x47ac92='%'+_0x349a2a[_0xe7fb('0x6b')]+'%';_0x377e5f[_0x1f16b2](_0xe7fb('0x73'),_0x47ac92,_0x47ac92,_0x47ac92);}}else{_0x50563b=_[_0xe7fb('0x69')](_0x5a01ae,[_0xe7fb('0x3a'),_0xe7fb('0x74')]);_0x349a2a['field']=_0xe7fb('0x74');_0x1ac1fd=as['buildExpression'](_0x590d7a,_0x50563b[_0xe7fb('0x75')],_0x349a2a);_0x377e5f[_0x1f16b2](_0x1ac1fd['text'],_0x1ac1fd['value'][_0xe7fb('0x76')],_0x1ac1fd[_0xe7fb('0x6b')][_0xe7fb('0x2e')]);}break;case'Tag':var _0x475716=_0x349a2a[_0xe7fb('0x6b')][_0xe7fb('0x40')](',')[_0xe7fb('0x3d')](function(_0x275e11){return Number(_0x275e11);});_0x475716['forEach'](function(_0x404498){_0x27f860['or'](_0xe7fb('0x77'),'%,'+_0x404498+',%');});_0x4f4ba3=_['union'](_0x4f4ba3,_0x475716);break;case _0xe7fb('0x78'):if(_0x349a2a[_0xe7fb('0x79')]==='$substring'){_0x377e5f[_0x1f16b2](_0xe7fb('0x7a'),'%'+_0x349a2a['value']+'%',null);}else{_0x50563b=_[_0xe7fb('0x69')](_0x5a01ae,[_0xe7fb('0x3a'),_0xe7fb('0x7b')]);_0x349a2a['field']=_0xe7fb('0x7b');_0x1ac1fd=as[_0xe7fb('0x7c')](_0x590d7a,_0x50563b[_0xe7fb('0x75')],_0x349a2a);_0x377e5f[_0x1f16b2](_0x1ac1fd[_0xe7fb('0x7d')],_0x1ac1fd[_0xe7fb('0x6b')][_0xe7fb('0x76')],_0x1ac1fd[_0xe7fb('0x6b')][_0xe7fb('0x2e')]);}break;case'body':_0x1ac1fd=as['buildExpression']('me',null,_0x349a2a);_0x377e5f[_0x1f16b2](_0x1ac1fd[_0xe7fb('0x7d')],_0x1ac1fd[_0xe7fb('0x6b')][_0xe7fb('0x76')],_0x1ac1fd['value']['end']);break;}}else{var _0x1ac1fd=as[_0xe7fb('0x7c')](_0x590d7a,_0x50563b[_0xe7fb('0x75')],_0x349a2a);_0x377e5f[_0x1f16b2](_0x1ac1fd[_0xe7fb('0x7d')],_0x1ac1fd[_0xe7fb('0x6b')][_0xe7fb('0x76')],_0x1ac1fd[_0xe7fb('0x6b')][_0xe7fb('0x2e')]);}}}else{var _0xb06693=_(_0x4b263d[_0xe7fb('0x48')])[_0xe7fb('0x47')]()[_0xe7fb('0x3d')](function(_0x12b91f){return _['some'](_0x5a01ae,['name',_0x12b91f])?_0x12b91f:undefined;})[_0xe7fb('0x7e')]()[_0xe7fb('0x6b')]();if(!_[_0xe7fb('0x7f')](_0xb06693)){_0xb06693[_0xe7fb('0x41')](function(_0x8dd368){if(_0x8dd368==='ChatWebsiteId'){_0xb8179a[_0xe7fb('0x80')](_0xe7fb('0x81'),[][_0xe7fb('0x82')](_0x4b263d[_0xe7fb('0x48')][_0x8dd368]));}else if(_0x8dd368===_0xe7fb('0x83')){var _0x1c0f49=JSON[_0xe7fb('0x84')](_0x4b263d[_0xe7fb('0x48')][_0x8dd368])[_0xe7fb('0x85')];var _0x51eaec=JSON[_0xe7fb('0x84')](_0x4b263d['query'][_0x8dd368])[_0xe7fb('0x86')];_0xb8179a[_0xe7fb('0x80')](_0xe7fb('0x87'),_0x1c0f49,_0x51eaec);}else{if(_0x4b263d[_0xe7fb('0x48')][_0x8dd368]===_0xe7fb('0x88')){_0xb8179a['where']('i.'+_0x8dd368+_0xe7fb('0x89'));}else{_0xb8179a[_0xe7fb('0x80')]('i.'+_0x8dd368+_0xe7fb('0x8a'),_0x4b263d[_0xe7fb('0x48')][_0x8dd368]);}}});}if(_0x4b263d[_0xe7fb('0x48')][_0xe7fb('0x8b')]){if(_0x4b263d[_0xe7fb('0x48')][_0xe7fb('0x8b')]==0x1){_0xb8179a[_0xe7fb('0x6d')](_0xe7fb('0x8c'));}else{_0xb8179a[_0xe7fb('0x6d')](_0xe7fb('0x8d'));}}if(_0x4b263d[_0xe7fb('0x48')][_0xe7fb('0x8e')]){_0x4f4ba3=_['isArray'](_0x4b263d['query']['tag'])?_0x4b263d[_0xe7fb('0x48')][_0xe7fb('0x8e')]:new Array(_0x4b263d[_0xe7fb('0x48')][_0xe7fb('0x8e')]);_0x4f4ba3['forEach'](function(_0x175194){_0x27f860['or'](_0xe7fb('0x77'),'%,'+_0x175194+',%');});}if(_0x4b263d[_0xe7fb('0x48')][_0xe7fb('0x8f')]){var _0x5982f9=_0x4b263d[_0xe7fb('0x48')]['filter'][_0xe7fb('0x90')]('\x5c','\x5c\x5c')[_0xe7fb('0x90')]('\x27\x27',_0xe7fb('0x91'));if(qs[_0xe7fb('0x92')](_0x5982f9)){_0x377e5f['or'](_0xe7fb('0x93'),_0x5982f9+'%');}else{_0x377e5f['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0xe7fb('0x72')](_0x5982f9))['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x5982f9+'%');}}}_0xb8179a[_0xe7fb('0x80')](_0x377e5f);_0xb8179a['group'](_0xe7fb('0x94'));var _0x38f52c={'type':db['Sequelize'][_0xe7fb('0x95')][_0xe7fb('0x96')],'raw':!![]};var _0xb19e94=_0xb8179a[_0xe7fb('0x97')]();_0xb19e94['field'](_0xe7fb('0x94'));_0xb19e94[_0xe7fb('0x53')](_0xe7fb('0x98'),'unreadMessages');if(_0x3a8c52[_0xe7fb('0x4f')]){_0x3a8c52['order']['forEach'](function(_0x511bdc){_0xb8179a[_0xe7fb('0x4f')]('i.'+_0x511bdc[0x0],_0x511bdc[0x1]===_0xe7fb('0x99')?![]:!![]);});}if(!_['isEmpty'](_0x4f4ba3)){_0xb8179a[_0xe7fb('0x6d')](_0x27f860);_0xb19e94[_0xe7fb('0x80')](_0xe7fb('0x9a'),_0x4f4ba3);}BPromise[_0xe7fb('0x9b')]()[_0xe7fb('0x23')](function(){if(!_0x108475){if(_0x4b263d[_0xe7fb('0x48')][_0xe7fb('0x9c')]||_0x4b263d[_0xe7fb('0x48')][_0xe7fb('0x9d')])return;_0xb19e94[_0xe7fb('0x80')](_0xe7fb('0x9e'));_0xb8179a[_0xe7fb('0x80')](_0xe7fb('0x9e'));return;}return _0x4b263d[_0xe7fb('0x9f')][_0xe7fb('0xa0')]({'attributes':['id'],'raw':!![]})[_0xe7fb('0x23')](function(_0x3c5bd9){if(_[_0xe7fb('0x7f')](_0x3c5bd9)){_0xb19e94[_0xe7fb('0x80')](_0xe7fb('0xa1'));_0xb8179a['where'](_0xe7fb('0xa1'));}else{_0xb19e94[_0xe7fb('0x80')](_0xe7fb('0x81'),_[_0xe7fb('0x3d')](_0x3c5bd9,'id'));_0xb8179a[_0xe7fb('0x80')](_0xe7fb('0x81'),_[_0xe7fb('0x3d')](_0x3c5bd9,'id'));}});})['then'](function(){db['sequelize'][_0xe7fb('0x48')](_0xb19e94['toString'](),_0x38f52c)[_0xe7fb('0x23')](function(_0x496205){_0x490333['count']=_0x496205[_0xe7fb('0x67')];if(_0x490333[_0xe7fb('0x30')]===0x0)return[];return db[_0xe7fb('0xa2')][_0xe7fb('0x48')](_0x2dc09c[_0xe7fb('0xa3')](),_0x38f52c)[_0xe7fb('0x23')](function(_0x5be801){_0x3dd6bf=_[_0xe7fb('0xa4')](_0x5be801,'id');_0x38f52c=_[_0xe7fb('0xa5')](_0x38f52c,{'model':db[_0xe7fb('0xa6')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x4b263d[_0xe7fb('0x48')][_0xe7fb('0x4c')]){_0x3a8c52[_0xe7fb('0x4b')]['forEach'](function(_0x4b7b70){_0xb8179a['field']('i.'+_0x4b7b70);});}else{_0xb8179a[_0xe7fb('0x53')](_0xe7fb('0x98'),_0xe7fb('0x6a'));_0xb8179a['field'](_0xe7fb('0xa7'),'Account.key');_0xb8179a[_0xe7fb('0x53')](_0xe7fb('0xa8'),_0xe7fb('0xa9'));_0xb8179a[_0xe7fb('0x53')]('i.*');_0xb8179a[_0xe7fb('0x53')](_0xe7fb('0xaa'),_0xe7fb('0xab'));_0xb8179a[_0xe7fb('0x53')](_0xe7fb('0xac'),_0xe7fb('0xad'));_0xb8179a[_0xe7fb('0x53')](_0xe7fb('0xae'),'Contact.email');_0xb8179a['field'](_0xe7fb('0xaf'),'Contact.phone');_0xb8179a[_0xe7fb('0x53')](_0xe7fb('0xb0'),_0xe7fb('0xb1'));_0xb8179a[_0xe7fb('0x53')]('c.fax','Contact.fax');_0xb8179a[_0xe7fb('0x53')](_0xe7fb('0xb2'),'Owner.fullname');_0xb8179a[_0xe7fb('0x53')](_0xe7fb('0xb3'),_0xe7fb('0xb4'));_0xb8179a[_0xe7fb('0x53')](_0xe7fb('0xb5'),_0xe7fb('0x3f'));}if(_0x3a8c52['limit'])_0xb8179a[_0xe7fb('0x32')](_0x3a8c52[_0xe7fb('0x32')]);if(_0x3a8c52[_0xe7fb('0x31')])_0xb8179a[_0xe7fb('0x31')](_0x3a8c52[_0xe7fb('0x31')]);return db[_0xe7fb('0xa2')][_0xe7fb('0x48')](_0xb8179a[_0xe7fb('0xa3')](),_0x38f52c);})[_0xe7fb('0x23')](function(_0x41fa41){_0x5cedfb[_0xe7fb('0x80')](_0xe7fb('0xb6'),_[_0xe7fb('0x3d')](_0x41fa41,'id'));return db[_0xe7fb('0xa2')][_0xe7fb('0x48')](_0x5cedfb[_0xe7fb('0xa3')](),_0x38f52c)[_0xe7fb('0x23')](function(_0x19e86f){var _0x4b4cf6=_[_0xe7fb('0xb7')](_0x19e86f,_0xe7fb('0xb8'));var _0x8da949=[];_0x41fa41[_0xe7fb('0x41')](function(_0x5594d1){_0x8da949[_0xe7fb('0x42')](updateChatInteraction(_0x5594d1,_0x3dd6bf,_0x4b4cf6));});return BPromise[_0xe7fb('0xb9')](_0x8da949);});});})['then'](function(_0x241166){_0x490333[_0xe7fb('0xba')]=_0x241166;return _0x490333;})[_0xe7fb('0x23')](respondWithFilteredResult(_0x36a341,_0x3a8c52));})['catch'](handleError(_0x36a341,null));};exports[_0xe7fb('0xbb')]=function(_0x150dc5,_0x55ca24){var _0x4aafda={'raw':![],'where':{'id':_0x150dc5[_0xe7fb('0xbc')]['id']}},_0x3fb1d3={};_0x3fb1d3[_0xe7fb('0xbd')]=_[_0xe7fb('0x47')](db[_0xe7fb('0xa6')][_0xe7fb('0x44')]);_0x3fb1d3['query']=_[_0xe7fb('0x47')](_0x150dc5[_0xe7fb('0x48')]);_0x3fb1d3[_0xe7fb('0x49')]=_['intersection'](_0x3fb1d3[_0xe7fb('0xbd')],_0x3fb1d3[_0xe7fb('0x48')]);_0x4aafda[_0xe7fb('0x4b')]=_[_0xe7fb('0x4a')](_0x3fb1d3['model'],qs[_0xe7fb('0x4c')](_0x150dc5[_0xe7fb('0x48')][_0xe7fb('0x4c')]));_0x4aafda['attributes']=_0x4aafda[_0xe7fb('0x4b')][_0xe7fb('0x67')]?_0x4aafda[_0xe7fb('0x4b')]:_0x3fb1d3[_0xe7fb('0xbd')];if(_0x150dc5['query'][_0xe7fb('0xbe')]){_0x4aafda['include']=[{'all':!![]}];}_0x4aafda=_[_0xe7fb('0xa5')]({},_0x4aafda,_0x150dc5['options']);return db[_0xe7fb('0xa6')][_0xe7fb('0x69')](_0x4aafda)['then'](handleEntityNotFound(_0x55ca24,null))['then'](respondWithResult(_0x55ca24,null))[_0xe7fb('0x2b')](handleError(_0x55ca24,null));};exports['create']=function(_0x217692,_0xb87b18){return db[_0xe7fb('0xa6')][_0xe7fb('0xbf')](_0x217692['body'],{})[_0xe7fb('0x23')](respondWithResult(_0xb87b18,0xc9))[_0xe7fb('0x2b')](handleError(_0xb87b18,null));};exports[_0xe7fb('0x37')]=function(_0x27a822,_0x5505e5){if(_0x27a822[_0xe7fb('0xc0')]['id']){delete _0x27a822[_0xe7fb('0xc0')]['id'];}return db[_0xe7fb('0xa6')][_0xe7fb('0x69')]({'where':{'id':_0x27a822[_0xe7fb('0xbc')]['id']}})['then'](handleEntityNotFound(_0x5505e5,null))[_0xe7fb('0x23')](saveUpdates(_0x27a822[_0xe7fb('0xc0')],null))[_0xe7fb('0x23')](respondWithResult(_0x5505e5,null))[_0xe7fb('0x2b')](handleError(_0x5505e5,null));};exports[_0xe7fb('0x38')]=function(_0xc7599e,_0x40a5bc){return db[_0xe7fb('0xa6')][_0xe7fb('0x69')]({'where':{'id':_0xc7599e['params']['id']}})[_0xe7fb('0x23')](handleEntityNotFound(_0x40a5bc,null))[_0xe7fb('0x23')](removeEntity(_0x40a5bc,null))[_0xe7fb('0x2b')](handleError(_0x40a5bc,null));};exports[_0xe7fb('0xc1')]=function(_0x3acb56,_0x16f2b1){return db[_0xe7fb('0xa6')]['describe']()[_0xe7fb('0x23')](respondWithResult(_0x16f2b1,null))['catch'](handleError(_0x16f2b1,null));};exports[_0xe7fb('0xc2')]=function(_0x4b370c,_0x361c5d){var _0x5e7442=_0x4b370c['params']['id'];var _0x9d0fc1;var _0x5bd869;var _0x4036f4;return db['ChatInteraction'][_0xe7fb('0xc3')]({'where':{'id':_0x5e7442}})[_0xe7fb('0x23')](function(_0x35b66e){_0x9d0fc1=_0x35b66e;return db[_0xe7fb('0xc4')][_0xe7fb('0xc3')]({'where':{'id':_0x35b66e[_0xe7fb('0x9c')]},'attributes':['id','vidaooApiKey',_0xe7fb('0xc5')],'raw':!![]});})[_0xe7fb('0x23')](function(_0x808243){if(_0x808243&&_0x808243[_0xe7fb('0xc6')]&&_0x808243[_0xe7fb('0xc5')]){_0x5bd869=_0x808243;var _0x5797ca={'rejectUnauthorized':![],'method':_0xe7fb('0xc7'),'uri':'https://api-vidaoo.xcally.com/api/v1/sessions','headers':{'X-APIKEY':_0x808243[_0xe7fb('0xc6')]},'body':{'name':_0xe7fb('0xc8')+_0x5e7442},'redirect':_0xe7fb('0xc9'),'json':!![]};return rp(_0x5797ca);}else{throw new db[(_0xe7fb('0xca'))]['ValidationError'](_0xe7fb('0xcb'));}})[_0xe7fb('0x23')](function(_0x3871d8){_0x4036f4=_0x3871d8;if(_0x4036f4['id']){var _0xef87b6={'body':_0x4036f4[_0xe7fb('0xcc')],'ChatWebsiteId':_0x5bd869['id'],'ChatInteractionId':_0x9d0fc1['id'],'direction':_0xe7fb('0xcd'),'UserId':_0x4b370c[_0xe7fb('0x9f')]['id']};return db['ChatMessage']['create'](_0xef87b6,{});}else{throw new db[(_0xe7fb('0xca'))][(_0xe7fb('0xce'))]('Unable\x20to\x20create\x20Vidaoo\x20session');}})[_0xe7fb('0x23')](function(){return _0x9d0fc1['updateAttributes']({'vidaooSessionId':_0x4036f4['id']});})[_0xe7fb('0x23')](respondWithResult(_0x361c5d,null))[_0xe7fb('0x2b')](handleError(_0x361c5d,null));};exports[_0xe7fb('0xcf')]=function(_0x5ea91d,_0x53fa3f){if(_0x5ea91d[_0xe7fb('0xc0')]['id']){delete _0x5ea91d['body']['id'];}return db['ChatInteraction'][_0xe7fb('0x69')]({'where':{'id':_0x5ea91d[_0xe7fb('0xbc')]['id']}})[_0xe7fb('0x23')](handleEntityNotFound(_0x53fa3f,null))[_0xe7fb('0x23')](saveUpdates(_0x5ea91d[_0xe7fb('0xc0')],null))[_0xe7fb('0x23')](respondWithResult(_0x53fa3f,null))[_0xe7fb('0x2b')](handleError(_0x53fa3f,null));};exports[_0xe7fb('0xd0')]=function(_0xed5ff6,_0x197a65,_0x1c9783){if(_0xed5ff6[_0xe7fb('0xc0')]['id']){delete _0xed5ff6[_0xe7fb('0xc0')]['id'];}return db[_0xe7fb('0xa6')][_0xe7fb('0x69')]({'where':{'id':_0xed5ff6[_0xe7fb('0xbc')]['id']}})[_0xe7fb('0x23')](function(_0x249d6f){if(!_0x249d6f){logger[_0xe7fb('0x28')]('abandonInteraction,\x20%s,\x20%s,\x20%s',_0xe7fb('0xd0'),0x194,_0xe7fb('0xd1'));_0x197a65[_0xe7fb('0x2c')](0x194);}else{if(_0x249d6f[_0xe7fb('0x7b')]){throw new db['Sequelize'][(_0xe7fb('0xce'))](_0xe7fb('0xd2'));}}return _0x249d6f;})[_0xe7fb('0x23')](function(_0x3c30a8){if(_0x3c30a8){return _0x3c30a8[_0xe7fb('0x37')]({'closed':_0xed5ff6['body']['closed'],'disposition':_0xed5ff6[_0xe7fb('0xc0')]['disposition']})['then'](function(_0x5cf367){return _0x5cf367;});}})[_0xe7fb('0x23')](function(_0x5a97c8){return respondWithRpcPromise('AbandonInteraction','abandon',_0xed5ff6[_0xe7fb('0xc0')],client9004);})[_0xe7fb('0x23')](respondWithResult(_0x197a65,null))[_0xe7fb('0x2b')](handleError(_0x197a65,null));};exports[_0xe7fb('0xd3')]=function(_0x344a36,_0x1db971,_0x501a4f){_0x344a36['body'][_0xe7fb('0x3a')]=_0x344a36['file'][_0xe7fb('0xd4')];_0x344a36[_0xe7fb('0xc0')][_0xe7fb('0xd5')]=_0x344a36[_0xe7fb('0xd6')][_0xe7fb('0xd7')];_0x344a36[_0xe7fb('0xc0')]['type']=_0x344a36['file'][_0xe7fb('0xd8')];return db[_0xe7fb('0xd9')][_0xe7fb('0xbf')](_0x344a36[_0xe7fb('0xc0')])[_0xe7fb('0x23')](respondWithResult(_0x1db971,0xc9))[_0xe7fb('0x2b')](handleError(_0x1db971,null));};exports['attachmentDownload']=function(_0x356221,_0x1886eb,_0x461506){return db[_0xe7fb('0xa6')][_0xe7fb('0xc3')]({'where':{'id':_0x356221['params']['id']},'raw':!![]})[_0xe7fb('0x23')](handleEntityNotFound(_0x1886eb,null))[_0xe7fb('0x23')](function(_0x2d5f74){if(_0x2d5f74){if(_0x2d5f74['closed']){return _0x1886eb['status'](0x193)['json']({'status':0x193,'message':_0xe7fb('0xda')});}return db['Attachment']['findOne']({'where':{'id':_0x356221[_0xe7fb('0x48')]['attachId']},'raw':!![]})[_0xe7fb('0x23')](handleEntityNotFound(_0x1886eb,null));}})[_0xe7fb('0x23')](function(_0xb23f17){if(_0xb23f17){return _0x1886eb[_0xe7fb('0xdb')](path[_0xe7fb('0xdc')](config[_0xe7fb('0xdd')],_0xe7fb('0xde'),_0xb23f17['basename']));}})[_0xe7fb('0x2b')](handleError(_0x1886eb,null));};exports[_0xe7fb('0xdf')]=function(_0x538810,_0x3e75e9){var _0x415973=null;var _0x13a376=null;var _0x31b7eb=null;var _0x366acb=null;if(_0x538810[_0xe7fb('0xc0')]['id']){delete _0x538810['body']['id'];}if(_0x538810[_0xe7fb('0xc0')][_0xe7fb('0xe0')]){_0x366acb=path[_0xe7fb('0xdc')](config[_0xe7fb('0xdd')],'server/files/chat/upload/',util[_0xe7fb('0xe1')](_0xe7fb('0xe2'),Date[_0xe7fb('0xe3')]()));_0x538810['body'][_0xe7fb('0xe4')]=_0x366acb;}return db[_0xe7fb('0xa6')][_0xe7fb('0x69')]({'where':{'id':_0x538810['params']['id']},'include':[{'model':db[_0xe7fb('0xe5')],'as':_0xe7fb('0xe6'),'include':[{'model':db['User'],'as':_0xe7fb('0x78')}]}]})[_0xe7fb('0x23')](handleEntityNotFound(_0x3e75e9,null))['then'](saveUpdates(_0x538810[_0xe7fb('0xc0')],null))[_0xe7fb('0x23')](function(_0x1fc31b){if(_0x1fc31b){_0x415973=_0x1fc31b;return db[_0xe7fb('0xc4')][_0xe7fb('0x69')]({'where':{'id':_0x415973['ChatWebsiteId']}});}})['then'](function(_0x5986f1){if(_0x5986f1){_0x31b7eb=_0x5986f1;return db[_0xe7fb('0xe7')][_0xe7fb('0x69')]({'where':{'id':_0x415973[_0xe7fb('0x74')]}});}})[_0xe7fb('0x23')](function(_0x53c142){if(_0x53c142){_0x13a376=_0x53c142;if(_0x366acb){var _0x29de1e=null;for(var _0x12b30b=0x1;_0x12b30b<_0x415973['Messages']['length'];++_0x12b30b){_0x29de1e=_0x415973[_0xe7fb('0xe6')][_0x12b30b];var _0x3198ec=_0x29de1e[_0xe7fb('0x7b')]?util[_0xe7fb('0xe1')](_0xe7fb('0xe8'),_0x31b7eb['agentAlias'],_0x29de1e[_0xe7fb('0x7b')]):_0xe7fb('0xe9');var _0xe52155=_0x538810['body'][_0xe7fb('0xea')]||util[_0xe7fb('0xe1')]('%s%d',_0xe7fb('0xeb'),_0x29de1e[_0xe7fb('0x74')]);switch(_0x31b7eb[_0xe7fb('0xec')]){case _0xe7fb('0xed'):_0x3198ec=_0x29de1e['UserId']?util['format'](_0xe7fb('0xe8'),_0x31b7eb[_0xe7fb('0xee')],_0x29de1e[_0xe7fb('0x7b')]):'System';break;case _0xe7fb('0xef'):_0x3198ec=_0x29de1e[_0xe7fb('0x7b')]?_0x29de1e[_0xe7fb('0x78')]['alias']||_0x29de1e[_0xe7fb('0x78')][_0xe7fb('0x3e')]:_0xe7fb('0xe9');break;case'agent_fullname':_0x3198ec=_0x29de1e[_0xe7fb('0x7b')]?_0x29de1e[_0xe7fb('0x78')][_0xe7fb('0x3e')]:_0xe7fb('0xe9');break;default:_0x3198ec=_0x29de1e[_0xe7fb('0x7b')]?util[_0xe7fb('0xe1')](_0xe7fb('0xe8'),_0x31b7eb[_0xe7fb('0xee')],_0x29de1e['UserId']):_0xe7fb('0xe9');}var _0xd91ac9=util['format']('[%s]\x20%s:\x20%s\x0a',moment(_0x29de1e[_0xe7fb('0x83')])[_0xe7fb('0xe1')](_0xe7fb('0xf0')),_0x29de1e[_0xe7fb('0xf1')]==='in'?_0xe52155:_0x3198ec,_0x29de1e[_0xe7fb('0xc0')]);if(!_0x29de1e[_0xe7fb('0xf2')]){fs[_0xe7fb('0xf3')](_0x366acb,_0xd91ac9);}}return db['MailAccount'][_0xe7fb('0xc3')]({'where':{'service':!![]},'include':[{'model':db[_0xe7fb('0xf4')],'as':_0xe7fb('0xf5'),'raw':!![]}]});}}})[_0xe7fb('0x23')](function(_0x43358d){if(_0x43358d&&_0x43358d[_0xe7fb('0xf5')]&&_0x538810[_0xe7fb('0xc0')]){var _0x5431fc={'tls':{'rejectUnauthorized':![]}};if(_0x43358d[_0xe7fb('0xf5')]['service']){_0x5431fc[_0xe7fb('0xf6')]=_0x43358d['Smtp']['service'];}else{_0x5431fc[_0xe7fb('0xf7')]=_0x43358d[_0xe7fb('0xf5')][_0xe7fb('0xf7')];_0x5431fc[_0xe7fb('0xf8')]=_0x43358d[_0xe7fb('0xf5')][_0xe7fb('0xf8')];_0x5431fc[_0xe7fb('0xf9')]=_0x43358d['Smtp'][_0xe7fb('0xf9')];}if(_0x43358d[_0xe7fb('0xf5')][_0xe7fb('0xfa')]){_0x5431fc[_0xe7fb('0xfb')]={'user':_0x43358d[_0xe7fb('0xf5')][_0xe7fb('0x9f')],'pass':_0x43358d[_0xe7fb('0xf5')]['pass']};}return respondWithRpcPromise(_0xe7fb('0xfc'),_0xe7fb('0xfd'),{'account':_0x5431fc,'message':{'from':util[_0xe7fb('0xe1')]('\x22%s\x22\x20<%s>',_0x43358d[_0xe7fb('0x3a')],_0x43358d['email']||_0x43358d['Smtp']['user']),'to':_0x538810[_0xe7fb('0xc0')][_0xe7fb('0xe0')],'subject':'Mail\x20Transcript','text':util[_0xe7fb('0xe1')](_0xe7fb('0xfe'),_0x538810['body']['mailTranscript']),'attachments':[{'path':_0x366acb}]}})[_0xe7fb('0x23')](function(){return _0x415973;})[_0xe7fb('0x2b')](function(_0x3c65e9){console['error'](_0x3c65e9);});}else{return _0x415973;}})[_0xe7fb('0x23')](respondWithStatusCode(_0x3e75e9,0xc8))[_0xe7fb('0x2b')](handleError(_0x3e75e9,null));};exports['addMessage']=function(_0x4d55f4,_0x4562b8,_0x5e1be5){return db['ChatMessage']['find']({'where':{'id':_0x4d55f4[_0xe7fb('0xbc')]['id']}})[_0xe7fb('0x23')](handleEntityNotFound(_0x4562b8,null))['then'](function(_0x35b5ad){if(_0x35b5ad){return _0x35b5ad['addMessage'](_0x4d55f4[_0xe7fb('0xc0')][_0xe7fb('0xff')],_[_0xe7fb('0x100')](_0x4d55f4[_0xe7fb('0xc0')],[_0xe7fb('0xff'),'id'])||{});}})[_0xe7fb('0x23')](respondWithResult(_0x4562b8,null))[_0xe7fb('0x2b')](handleError(_0x4562b8,null));};exports[_0xe7fb('0x101')]=function(_0x1672d2,_0x25be68,_0x33de44){var _0x17b0f8={'raw':![],'where':{}};var _0x3ca38e={};var _0x5744a8={'count':0x0,'rows':[]};return db[_0xe7fb('0xa6')][_0xe7fb('0xc3')]({'where':{'id':_0x1672d2['params']['id']}})['then'](handleEntityNotFound(_0x25be68,null))[_0xe7fb('0x23')](function(_0x520b6b){if(_0x520b6b){_0x3ca38e[_0xe7fb('0xbd')]=_[_0xe7fb('0x47')](db[_0xe7fb('0xe5')][_0xe7fb('0x44')]);_0x3ca38e[_0xe7fb('0x48')]=_['keys'](_0x1672d2['query']);_0x3ca38e[_0xe7fb('0x49')]=_[_0xe7fb('0x4a')](_0x3ca38e[_0xe7fb('0xbd')],_0x3ca38e[_0xe7fb('0x48')]);_0x17b0f8[_0xe7fb('0x4b')]=_['intersection'](_0x3ca38e[_0xe7fb('0xbd')],qs['fields'](_0x1672d2[_0xe7fb('0x48')][_0xe7fb('0x4c')]));_0x17b0f8['attributes']=_0x17b0f8['attributes']['length']?_0x17b0f8[_0xe7fb('0x4b')]:_0x3ca38e[_0xe7fb('0xbd')];if(!_0x1672d2['query']['hasOwnProperty'](_0xe7fb('0x4e'))){_0x17b0f8[_0xe7fb('0x32')]=qs['limit'](_0x1672d2['query'][_0xe7fb('0x32')]);_0x17b0f8[_0xe7fb('0x31')]=qs[_0xe7fb('0x31')](_0x1672d2[_0xe7fb('0x48')]['offset']);}_0x17b0f8[_0xe7fb('0x4f')]=qs[_0xe7fb('0x50')](_0x1672d2[_0xe7fb('0x48')][_0xe7fb('0x50')]);_0x17b0f8[_0xe7fb('0x80')]=qs['filters'](_['pick'](_0x1672d2[_0xe7fb('0x48')],_0x3ca38e[_0xe7fb('0x49')]));_0x17b0f8[_0xe7fb('0x80')][_0xe7fb('0xb8')]=_0x520b6b['id'];if(_0x1672d2[_0xe7fb('0x48')]['filter']){_0x17b0f8[_0xe7fb('0x80')]=_['merge'](_0x17b0f8['where'],{'$or':_[_0xe7fb('0x3d')](_0x17b0f8[_0xe7fb('0x4b')],function(_0x13c882){var _0x2db379={};_0x2db379[_0x13c882]={'$like':'%'+_0x1672d2['query'][_0xe7fb('0x8f')]+'%'};return _0x2db379;})});}if(_0x1672d2['query']['$gte']){var _0x435788=_0x1672d2[_0xe7fb('0x48')][_0xe7fb('0x85')][_0xe7fb('0x40')](',');var _0x142e08={};_0x142e08[_0x435788[0x0]]={'$gte':moment(_0x435788[0x1])['format']('YYYY-MM-DD\x20HH:mm:ss')};_0x17b0f8[_0xe7fb('0x80')]=_['merge'](_0x17b0f8['where'],_0x142e08);}_0x17b0f8=_[_0xe7fb('0xa5')]({},_0x17b0f8,_0x1672d2['options']);return db['ChatMessage'][_0xe7fb('0x30')]({'where':_0x17b0f8[_0xe7fb('0x80')]})[_0xe7fb('0x23')](function(_0x415a24){_0x5744a8[_0xe7fb('0x30')]=_0x415a24;if(_0x1672d2['query'][_0xe7fb('0xbe')]){_0x17b0f8['include']=[{'all':!![]}];}return db['ChatMessage'][_0xe7fb('0x102')](_0x17b0f8);})[_0xe7fb('0x23')](function(_0x414e72){_0x5744a8[_0xe7fb('0xba')]=_0x414e72;return _0x5744a8;});}})[_0xe7fb('0x23')](respondWithFilteredResult(_0x25be68,_0x17b0f8))[_0xe7fb('0x2b')](handleError(_0x25be68,null));};exports[_0xe7fb('0x103')]=function(_0x5b555d,_0x538b9b,_0xf2bdf7){var _0x531605={'where':{}},_0x12803c={},_0x51ff1e={'count':0x0,'rows':[]};return db[_0xe7fb('0xa6')]['findOne']({'where':{'id':_0x5b555d[_0xe7fb('0xbc')]['id']}})[_0xe7fb('0x23')](handleEntityNotFound(_0x538b9b,null))['then'](function(_0x2139e3){if(_0x2139e3){_0x12803c[_0xe7fb('0xbd')]=_[_0xe7fb('0x47')](db[_0xe7fb('0xe5')]['rawAttributes']);_0x12803c[_0xe7fb('0x48')]=_[_0xe7fb('0x47')](_0x5b555d[_0xe7fb('0x48')]);_0x12803c[_0xe7fb('0x49')]=_[_0xe7fb('0x4a')](_0x12803c['model'],_0x12803c[_0xe7fb('0x48')]);_0x531605[_0xe7fb('0x4b')]=_[_0xe7fb('0x4a')](_0x12803c[_0xe7fb('0xbd')],qs[_0xe7fb('0x4c')](_0x5b555d[_0xe7fb('0x48')][_0xe7fb('0x4c')]));_0x531605[_0xe7fb('0x4b')]=_0x531605[_0xe7fb('0x4b')][_0xe7fb('0x67')]?_0x531605[_0xe7fb('0x4b')]:_0x12803c[_0xe7fb('0xbd')];if(!_0x5b555d[_0xe7fb('0x48')][_0xe7fb('0x4d')](_0xe7fb('0x4e'))){_0x531605['limit']=qs['limit'](_0x5b555d[_0xe7fb('0x48')][_0xe7fb('0x32')]);_0x531605[_0xe7fb('0x31')]=qs[_0xe7fb('0x31')](_0x5b555d[_0xe7fb('0x48')][_0xe7fb('0x31')]);}_0x531605[_0xe7fb('0x4f')]=qs[_0xe7fb('0x50')](_0x5b555d['query'][_0xe7fb('0x50')]);_0x531605[_0xe7fb('0x80')]=qs[_0xe7fb('0x49')](_[_0xe7fb('0x51')](_0x5b555d[_0xe7fb('0x48')],_0x12803c[_0xe7fb('0x49')]));_0x531605['where'][_0xe7fb('0xb8')]=_0x2139e3['id'];if(_0x5b555d[_0xe7fb('0x48')]['filter']){_0x531605[_0xe7fb('0x80')]=_['merge'](_0x531605[_0xe7fb('0x80')],{'$or':_['map'](_0x531605[_0xe7fb('0x4b')],function(_0x185a27){var _0x5c5abc={};_0x5c5abc[_0x185a27]={'$like':'%'+_0x5b555d[_0xe7fb('0x48')][_0xe7fb('0x8f')]+'%'};return _0x5c5abc;})});}_0x531605['where']['secret']=![];if(_0x5b555d['query']['id']){_0x531605['where']['id']={'$gt':_0x5b555d[_0xe7fb('0x48')]['id']};}_0x531605=_[_0xe7fb('0xa5')]({},_0x531605,_0x5b555d[_0xe7fb('0x104')]);return db[_0xe7fb('0xe5')][_0xe7fb('0x30')]({'where':_0x531605[_0xe7fb('0x80')]})['then'](function(_0x2c68e7){_0x51ff1e[_0xe7fb('0x30')]=_0x2c68e7;_0x531605[_0xe7fb('0x105')]=[];if(_0x5b555d['query'][_0xe7fb('0x106')]){_0x531605['include'][_0xe7fb('0x42')]({'model':db['User'],'as':'User','attributes':['id',_0xe7fb('0x3e'),_0xe7fb('0x107')]});}if(_0x5b555d[_0xe7fb('0x48')][_0xe7fb('0xbe')]){_0x531605['include']=[{'all':!![]}];}return db[_0xe7fb('0xe5')][_0xe7fb('0x102')](_0x531605);})[_0xe7fb('0x23')](function(_0x1c942a){_0x51ff1e[_0xe7fb('0xba')]=_0x1c942a;return _0x51ff1e;});}})[_0xe7fb('0x23')](respondWithFilteredResult(_0x538b9b,_0x531605))[_0xe7fb('0x2b')](handleError(_0x538b9b,null));};exports[_0xe7fb('0x108')]=function(_0x17bf63,_0x17d155,_0x5459d2){return db[_0xe7fb('0xa6')][_0xe7fb('0x69')]({'where':{'id':_0x17bf63[_0xe7fb('0xbc')]['id']}})[_0xe7fb('0x23')](handleEntityNotFound(_0x17d155,null))[_0xe7fb('0x23')](function(_0x3991d6){if(_0x3991d6){return _0x3991d6['setTags'](_0x17bf63[_0xe7fb('0xc0')][_0xe7fb('0xff')],_['omit'](_0x17bf63[_0xe7fb('0xc0')],[_0xe7fb('0xff'),'id'])||{})[_0xe7fb('0x109')](function(){return db['Tag'][_0xe7fb('0x102')]({'attributes':['id',_0xe7fb('0x3a'),_0xe7fb('0x10a')],'where':{'id':_0x17bf63[_0xe7fb('0xc0')][_0xe7fb('0xff')]}});})[_0xe7fb('0x23')](function(_0x5cf9a2){socket[_0xe7fb('0x10b')](_0xe7fb('0x10c'),{'id':Number(_0x17bf63[_0xe7fb('0xbc')]['id']),'tags':_0x5cf9a2||[]});return{'id':Number(_0x17bf63['params']['id']),'tags':_0x5cf9a2||[]};});}})[_0xe7fb('0x23')](respondWithResult(_0x17d155,null))[_0xe7fb('0x2b')](handleError(_0x17d155,null));};exports[_0xe7fb('0x10d')]=function(_0x24305b,_0x512efe,_0x151da2){return db[_0xe7fb('0xa6')][_0xe7fb('0x69')]({'where':{'id':_0x24305b[_0xe7fb('0xbc')]['id']}})['then'](handleEntityNotFound(_0x512efe,null))['then'](function(_0x6690b2){if(_0x6690b2){return _0x6690b2[_0xe7fb('0x10d')](_0x24305b[_0xe7fb('0x48')][_0xe7fb('0xff')]);}})['then'](respondWithStatusCode(_0x512efe,null))['catch'](handleError(_0x512efe,null));};exports[_0xe7fb('0xdb')]=function(_0x5a0b32,_0x2a3f46){var _0x5f1745=moment()[_0xe7fb('0x10e')]()[_0xe7fb('0xa3')]();var _0x3ed935=path[_0xe7fb('0xdc')](config[_0xe7fb('0xdd')],_0xe7fb('0x10f'),_0xe7fb('0x110'),_0xe7fb('0x111'));var _0x14a436=path[_0xe7fb('0xdc')](config[_0xe7fb('0xdd')],_0xe7fb('0x10f'),_0xe7fb('0x110'),_0xe7fb('0x112'));var _0x4d9a76=path[_0xe7fb('0xdc')](_0x3ed935,_0x5f1745);var _0x30651f=util[_0xe7fb('0xe1')](_0xe7fb('0x113'),_0x5a0b32['params']['id'],_0x5f1745);var _0x5b6da5=path[_0xe7fb('0xdc')](_0x3ed935,_0x30651f);var _0xc9f580=[];_0xc9f580[_0xe7fb('0x42')]({'model':db[_0xe7fb('0x78')],'as':'User','attributes':['id','fullname'],'raw':!![]});_0xc9f580[_0xe7fb('0x42')]({'model':db[_0xe7fb('0xe7')],'as':_0xe7fb('0x6f'),'attributes':['id',_0xe7fb('0x114'),_0xe7fb('0x115')],'raw':!![]});if(_0x5a0b32[_0xe7fb('0x48')][_0xe7fb('0x112')]){_0xc9f580[_0xe7fb('0x42')]({'model':db[_0xe7fb('0xd9')],'as':_0xe7fb('0xd9'),'raw':!![]});}var _0x45b449=[{'model':db['ChatMessage'],'as':_0xe7fb('0xe6'),'attributes':['id',_0xe7fb('0xc0'),_0xe7fb('0x83'),_0xe7fb('0xf1'),_0xe7fb('0xf2'),_0xe7fb('0x8b')],'include':_0xc9f580}];_0x45b449[_0xe7fb('0x42')]({'model':db[_0xe7fb('0xc4')],'as':'Account','attributes':['id',_0xe7fb('0x3a')]});_0x45b449[_0xe7fb('0x42')]({'model':db[_0xe7fb('0x78')],'as':_0xe7fb('0x116'),'attributes':['id','fullname']});return db[_0xe7fb('0xa6')][_0xe7fb('0x69')]({'where':{'id':_0x5a0b32[_0xe7fb('0xbc')]['id']},'include':_0x45b449})[_0xe7fb('0x23')](handleEntityNotFound(_0x2a3f46,null))[_0xe7fb('0x23')](function(_0x206a17){if(_0x206a17){var _0x3a909b=_0x206a17[_0xe7fb('0x117')]({'plain':!![]});fs['mkdirSync'](_0x4d9a76);var _0x10a4d3={'format':'A4','border':_0xe7fb('0x118'),'header':{'height':_0xe7fb('0x119'),'contents':{'first':_0xe7fb('0x11a')}},'footer':{'height':'30px','contents':{'default':util[_0xe7fb('0xe1')](_0xe7fb('0x11b'),util[_0xe7fb('0xe1')](_0xe7fb('0x11c'),_0xe7fb('0x11d'),_0x3a909b['id']),moment()[_0xe7fb('0xe1')](_0xe7fb('0x11e'))['toString']())}}};var _0x5cc42c={'channel':_0xe7fb('0x11d'),'account':_0x3a909b['Account']['name'],'agent':_0x3a909b[_0xe7fb('0x116')]?_0x3a909b[_0xe7fb('0x116')]['fullname']:_0xe7fb('0x11f'),'createdAt':moment(_0x3a909b[_0xe7fb('0x83')])['format'](_0xe7fb('0x120'))['toString'](),'closedAt':_0x3a909b[_0xe7fb('0x121')]?moment(_0x3a909b['closedAt'])['format'](_0xe7fb('0x120'))['toString']():'','disposition':_0x3a909b['disposition'],'chatInfo':{'browser':_0x3a909b[_0xe7fb('0x122')],'os':_0x3a909b[_0xe7fb('0x123')],'referer':_0x3a909b['referer'],'customerIp':_0x3a909b[_0xe7fb('0x124')],'customerPort':_0x3a909b[_0xe7fb('0x125')]?_0x3a909b[_0xe7fb('0x125')]:_0xe7fb('0x11f')},'messages':_(_0x3a909b[_0xe7fb('0xe6')])[_0xe7fb('0x126')]()[_0xe7fb('0x8f')]({'secret':![]})['map'](function(_0x5c5b2b){if(_0x5c5b2b[_0xe7fb('0xd9')]){var _0x485ada=path['join'](_0x14a436,_0x5c5b2b[_0xe7fb('0xd9')]['basename']);if(fs['existsSync'](_0x485ada)){fs[_0xe7fb('0x127')](_0x485ada)['pipe'](fs[_0xe7fb('0x128')](path[_0xe7fb('0xdc')](_0x4d9a76,_0x5c5b2b[_0xe7fb('0xd9')][_0xe7fb('0xd5')])));}}return{'date':moment(_0x5c5b2b[_0xe7fb('0x83')])[_0xe7fb('0xe1')]('YYYY-MM-DD\x20HH:mm:ss')[_0xe7fb('0xa3')](),'sender':_0x5c5b2b[_0xe7fb('0xf1')]===_0xe7fb('0xcd')?_0x5c5b2b[_0xe7fb('0x78')]?_0x5c5b2b[_0xe7fb('0x78')][_0xe7fb('0x3e')]:_0xe7fb('0xe9'):_0x5c5b2b[_0xe7fb('0x6f')][_0xe7fb('0x114')]+(_0x5c5b2b['Contact'][_0xe7fb('0x115')]?'\x20'+_0x5c5b2b[_0xe7fb('0x6f')][_0xe7fb('0x115')]:''),'body':_0x5c5b2b[_0xe7fb('0xd9')]?_0x5c5b2b[_0xe7fb('0xd9')][_0xe7fb('0xd5')]:_0x5c5b2b[_0xe7fb('0xc0')],'direction':_0x5c5b2b['direction']==='out'?'A':'C','secret':_0x5c5b2b['secret'],'read':_0x5c5b2b[_0xe7fb('0x8b')],'attachment':_0x5c5b2b[_0xe7fb('0xd9')]};})[_0xe7fb('0x6b')]()};return ejs[_0xe7fb('0x129')](path[_0xe7fb('0xdc')](config[_0xe7fb('0xdd')],_0xe7fb('0x10f'),'views',_0xe7fb('0x12a')),{'interaction':_0x5cc42c})[_0xe7fb('0x23')](function(_0xa75382){return new BPromise(function(_0x522a40,_0x52dc61){pdf[_0xe7fb('0xbf')](_0xa75382,_0x10a4d3)[_0xe7fb('0x12b')](path[_0xe7fb('0xdc')](_0x4d9a76,_0xe7fb('0x12c')+_0x3a909b['id']+'-'+_0x5f1745+_0xe7fb('0x12d')),function(_0x1e9ada,_0x3ab400){if(_0x1e9ada)return _0x52dc61(_0x1e9ada);_0x522a40(_0x3ab400);});});})['then'](function(){return new BPromise(function(_0x4199a6,_0x294068){zipdir(_0x4d9a76,{'saveTo':_0x5b6da5},function(_0x12baf7,_0x482384){if(_0x12baf7)return _0x294068(_0x12baf7);return _0x4199a6(_0x482384);});})[_0xe7fb('0x23')](function(){return new BPromise(function(_0x4eab52,_0x5cb6fe){rimraf(_0x4d9a76,function(_0x52c541){if(_0x52c541)_0x5cb6fe(_0x52c541);return _0x4eab52();});});})[_0xe7fb('0x23')](function(){return _0x2a3f46[_0xe7fb('0xdb')](_0x5b6da5,_0x30651f,function(_0x4667fa){if(_0x4667fa){console[_0xe7fb('0x12e')](_0xe7fb('0x12f'),_0x4667fa);}else{fs['unlinkSync'](_0x5b6da5);}});});});}else{return _0x2a3f46[_0xe7fb('0x2c')](0xc8);}})['catch'](handleError(_0x2a3f46,null));};