Built motion from commit 85328c08.|2.5.50
[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 _0x0e85=['sequelize','groupBy','ChatInteractionId','all','show','params','rawAttributes','includeAll','include','options','create','describe','ChatWebsite','findOne','vidaooApiKey','vidaooTopic','vidaooMetadata','fullname','email','POST','https://api-vidaoo.xcally.com/api/v1/meetings','isNull','vidaooNote','follow','metadata','Sequelize','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','out','ChatMessage','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','customUpdate','Contact','abandonInteraction,\x20%s,\x20%s,\x20%s','disposition','AbandonInteraction','abandon','file','originalname','basename','attachmentDownload','Unauthorized','attachId','ChatOfflineMessageId','join','server/files/attachments/','offline-chat/','root','server/files/chat/upload/','format','transcript-%s.txt','pathTranscript','Messages','CmContact','%s%d','Visitor','agentIdentifier','website_alias','agentAlias','System','agent_alias','alias','agent_fullname','[%s]\x20%s:\x20%s\x0a','createdAt','MM/DD/YYYY\x20HH:mm:ss','direction','secret','appendFileSync','MailServerOut','Smtp','getSmtpOptions','SendMail','\x22%s\x22\x20<%s>','mailTranscript','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','ids','omit','getMessages','hasOwnProperty','filter','YYYY-MM-DD\x20HH:mm:ss','findAll','rows','getMyMessages','includeAgent','setTags','spread','emit','chatInteractionTags:save','removeTags','download','unix','server','files','tmp','attachments','transcript-%d-%s.zip','firstName','lastName','Attachment','Account','Owner','mkdirSync','N.A.','closedAt','osName','referer','customerIp','customerPort','tail','existsSync','createReadStream','pipe','renderFile','downloadInteraction.ejs','transcript-','.pdf','createPdfFromHTML','err','unlinkSync','rimraf','zip-dir','moment','bluebird','ejs','squel','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInteraction.socket','register','jayson/promise','client','http','request','info','ChatInteraction,\x20%s,\x20%s','ChatInteraction,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','update','then','end','stack','name','send','render','merge','contact','interaction','account','Users','map','Tags','TagIds','split','forEach','push','catch','waiting','answered','unmanaged','abandoned','total','closed','UserId','talking','index','ChatInteraction','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','field','color','from','tools_tags','select','u.id','ui.ChatInteractionId','user_has_chat_interactions','left_join','users','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','chat_websites','a.id\x20=\x20i.ChatWebsiteId','chat_messages','me.ChatInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','having','`\x20=\x200','`\x20>\x200','$substring','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','find','ContactId','buildExpression','text','value','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','body','some','i.ChatWebsiteId\x20IN\x20?','concat','$gte','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20>\x200','isArray','tag','replace','isNumeric','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','unreadMessages','DESC','isEmpty','resolve','i.ChatWebsiteId\x20IS\x20NOT\x20NULL','role','agent','getChatWebsites','i.ChatWebsiteId\x20IS\x20NULL','user','ChatWebsiteId','toString','keyBy','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','Contact.firstName','c.lastName','c.email','Contact.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','o.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)'];(function(_0x4a94b1,_0x4f2518){var _0x20949f=function(_0x1c4aa6){while(--_0x1c4aa6){_0x4a94b1['push'](_0x4a94b1['shift']());}};_0x20949f(++_0x4f2518);}(_0x0e85,0x7c));var _0x50e8=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0x0e85[_0x21a9d9];return _0x46adce;};'use strict';var rimraf=require(_0x50e8('0x0'));var zipdir=require(_0x50e8('0x1'));var rp=require('request-promise');var moment=require(_0x50e8('0x2'));var BPromise=require(_0x50e8('0x3'));var Mustache=require('mustache');var util=require('util');var path=require('path');var ejs=require(_0x50e8('0x4'));var fs=require('fs');var _=require('lodash');var squel=require(_0x50e8('0x5'));var Redis=require(_0x50e8('0x6'));var qs=require(_0x50e8('0x7'));var as=require(_0x50e8('0x8'));var pdf=require('../../components/export/pdf');var logger=require(_0x50e8('0x9'))(_0x50e8('0xa'));var config=require(_0x50e8('0xb'));var db=require(_0x50e8('0xc'))['db'];config[_0x50e8('0xd')]=_[_0x50e8('0xe')](config['redis'],{'host':_0x50e8('0xf'),'port':0x18eb});var socket=require(_0x50e8('0x10'))(new Redis(config[_0x50e8('0xd')]));require(_0x50e8('0x11'))[_0x50e8('0x12')](socket);var jayson=require(_0x50e8('0x13'));var client=jayson[_0x50e8('0x14')][_0x50e8('0x15')]({'port':0x232b});var client9004=jayson['client']['http']({'port':0x232c});function respondWithRpcPromise(_0xfc6bb9,_0x24d381,_0x508377,_0x49e02f){return new BPromise(function(_0x3cb45c,_0x2abda1){var _0x1a4c85=_0x49e02f||client;return _0x1a4c85[_0x50e8('0x16')](_0xfc6bb9,_0x508377)['then'](function(_0x18596f){logger[_0x50e8('0x17')](_0x50e8('0x18'),_0x24d381,'request\x20sent');logger['debug'](_0x50e8('0x19'),_0x24d381,_0x50e8('0x1a'),JSON[_0x50e8('0x1b')](_0x18596f));if(_0x18596f[_0x50e8('0x1c')]){if(_0x18596f[_0x50e8('0x1c')][_0x50e8('0x1d')]===0x1f4){logger['error']('ChatInteraction,\x20%s,\x20%s',_0x24d381,_0x18596f[_0x50e8('0x1c')][_0x50e8('0x1e')]);return _0x2abda1(_0x18596f[_0x50e8('0x1c')][_0x50e8('0x1e')]);}logger[_0x50e8('0x1c')](_0x50e8('0x18'),_0x24d381,_0x18596f[_0x50e8('0x1c')]['message']);return _0x3cb45c(_0x18596f[_0x50e8('0x1c')]['message']);}else{logger[_0x50e8('0x17')](_0x50e8('0x18'),_0x24d381,_0x50e8('0x1a'));_0x3cb45c(_0x18596f[_0x50e8('0x1f')][_0x50e8('0x1e')]);}})['catch'](function(_0x2c7c25){logger[_0x50e8('0x1c')]('ChatInteraction,\x20%s,\x20%s',_0x24d381,_0x2c7c25);_0x2abda1(_0x2c7c25);});});}function respondWithStatusCode(_0x31d23c,_0x41500f){_0x41500f=_0x41500f||0xcc;return function(_0x5691b2){if(_0x5691b2){return _0x31d23c[_0x50e8('0x20')](_0x41500f);}return _0x31d23c[_0x50e8('0x21')](_0x41500f)['end']();};}function respondWithResult(_0x47a3d8,_0x59582d){_0x59582d=_0x59582d||0xc8;return function(_0x3e1234){if(_0x3e1234){return _0x47a3d8[_0x50e8('0x21')](_0x59582d)[_0x50e8('0x22')](_0x3e1234);}};}function respondWithFilteredResult(_0x371a1f,_0xc2f832){return function(_0x13b6e9){if(_0x13b6e9){var _0x53d848=typeof _0xc2f832[_0x50e8('0x23')]===_0x50e8('0x24')&&typeof _0xc2f832['limit']===_0x50e8('0x24');var _0x2bc8d8=_0x13b6e9[_0x50e8('0x25')];var _0x2af330=_0x53d848?0x0:_0xc2f832['offset'];var _0x1f5a6c=_0x53d848?_0x13b6e9['count']:_0xc2f832[_0x50e8('0x23')]+_0xc2f832[_0x50e8('0x26')];var _0x42bbef;if(_0x1f5a6c>=_0x2bc8d8){_0x1f5a6c=_0x2bc8d8;_0x42bbef=0xc8;}else{_0x42bbef=0xce;}_0x371a1f['status'](_0x42bbef);return _0x371a1f[_0x50e8('0x27')](_0x50e8('0x28'),_0x2af330+'-'+_0x1f5a6c+'/'+_0x2bc8d8)[_0x50e8('0x22')](_0x13b6e9);}return null;};}function saveUpdates(_0x8d68c8){return function(_0x1d77d0){if(_0x1d77d0){return _0x1d77d0[_0x50e8('0x29')](_0x8d68c8)[_0x50e8('0x2a')](function(_0x54d81d){return _0x54d81d;});}return null;};}function removeEntity(_0x290fd2){return function(_0x123be9){if(_0x123be9){return _0x123be9['destroy']()['then'](function(){_0x290fd2[_0x50e8('0x21')](0xcc)[_0x50e8('0x2b')]();});}};}function handleEntityNotFound(_0x32db93){return function(_0x47ace2){if(!_0x47ace2){_0x32db93['sendStatus'](0x194);}return _0x47ace2;};}function handleError(_0x3e58a9,_0x19e3cc){_0x19e3cc=_0x19e3cc||0x1f4;return function(_0x5c2e04){logger[_0x50e8('0x1c')](_0x5c2e04[_0x50e8('0x2c')]);if(_0x5c2e04[_0x50e8('0x2d')]){delete _0x5c2e04[_0x50e8('0x2d')];}_0x3e58a9['status'](_0x19e3cc)[_0x50e8('0x2e')](_0x5c2e04);};}function getMustacheRender(_0x4ec6ad,_0x3aec30){return Mustache[_0x50e8('0x2f')](_0x4ec6ad,_[_0x50e8('0x30')](_0x3aec30['body'],{'contact':_0x3aec30[_0x50e8('0x31')],'message':_0x3aec30[_0x50e8('0x1e')],'agent':_0x3aec30['agent'],'interaction':_0x3aec30[_0x50e8('0x32')],'account':_0x3aec30[_0x50e8('0x33')]}))||'';}function getInteractionUsers(_0x5db19b,_0x1a7ba4){return new BPromise(function(_0x5b827f,_0x1c513c){try{if(_0x1a7ba4[_0x5db19b['id']]){_0x5db19b[_0x50e8('0x34')]=_[_0x50e8('0x35')](_0x1a7ba4[_0x5db19b['id']],function(_0x4e2a37){return{'id':_0x4e2a37['id'],'fullname':_0x4e2a37['fullname']};});}}catch(_0x3c7778){_0x1c513c(_0x3c7778);}_0x5b827f(_0x5db19b);});}function getInteractionTags(_0x2d0ccf,_0x3f01ee){return new BPromise(function(_0x4d3454,_0x58ec1c){try{if(_0x2d0ccf['TagIds']){_0x2d0ccf[_0x50e8('0x36')]=[];_0x2d0ccf[_0x50e8('0x37')][_0x50e8('0x38')](',')[_0x50e8('0x39')](function(_0x35514b){_0x2d0ccf[_0x50e8('0x36')][_0x50e8('0x3a')](_0x3f01ee[_0x35514b]);});}delete _0x2d0ccf[_0x50e8('0x37')];}catch(_0x35f802){_0x58ec1c(_0x35f802);}_0x4d3454(_0x2d0ccf);});}function updateChatInteraction(_0x3a1b4d,_0x53066b,_0x3371a4){return new BPromise(function(_0x40214f,_0x2379cf){return getInteractionUsers(_0x3a1b4d,_0x3371a4)[_0x50e8('0x2a')](function(_0x5dbbe1){return getInteractionTags(_0x5dbbe1,_0x53066b);})[_0x50e8('0x2a')](function(_0x944e46){return getStateInteraction(_0x944e46);})[_0x50e8('0x2a')](function(_0x169b4f){_0x40214f(_0x169b4f);})[_0x50e8('0x3b')](function(_0x5c7bef){_0x2379cf(_0x5c7bef);});});}function getStateInteraction(_0x53b198){return new BPromise(function(_0x81e6f3){_0x53b198[_0x50e8('0x3c')]=0x0;_0x53b198['talking']=0x0;_0x53b198[_0x50e8('0x3d')]=0x0;_0x53b198[_0x50e8('0x3e')]=0x0;_0x53b198[_0x50e8('0x3f')]=0x0;_0x53b198[_0x50e8('0x40')]=0x0;if(!_0x53b198[_0x50e8('0x41')]&&!_0x53b198[_0x50e8('0x42')]){_0x53b198[_0x50e8('0x3c')]+=0x1;}if(!_0x53b198[_0x50e8('0x41')]&&_0x53b198['UserId']){_0x53b198[_0x50e8('0x43')]+=0x1;if(_0x53b198[_0x50e8('0x3c')]){_0x53b198[_0x50e8('0x3c')]-=0x1;}}if(_0x53b198[_0x50e8('0x41')]&&_0x53b198['disposition']===_0x50e8('0x3f')){_0x53b198[_0x50e8('0x3f')]+=0x1;if(_0x53b198[_0x50e8('0x3c')]){_0x53b198[_0x50e8('0x3c')]-=0x1;}}else if(_0x53b198['closed']&&!_0x53b198[_0x50e8('0x42')]&&_0x53b198['disposition']){_0x53b198['unmanaged']+=0x1;if(_0x53b198['waiting']){_0x53b198[_0x50e8('0x3c')]-=0x1;}}else if(_0x53b198[_0x50e8('0x41')]&&_0x53b198['UserId']){_0x53b198[_0x50e8('0x3d')]+=0x1;if(_0x53b198[_0x50e8('0x43')]){_0x53b198[_0x50e8('0x43')]-=0x1;}}_0x53b198[_0x50e8('0x40')]+=0x1;_0x81e6f3(_0x53b198);});}exports[_0x50e8('0x44')]=function(_0x22527f,_0x51d239){var _0x16fdf6={},_0x596f62={},_0x1cc4fe={'count':0x0,'rows':[]};var _0x504d97=_['map'](db[_0x50e8('0x45')]['rawAttributes'],function(_0x2cbcac){return{'name':_0x2cbcac[_0x50e8('0x46')],'type':_0x2cbcac[_0x50e8('0x47')][_0x50e8('0x48')]};});_0x596f62[_0x50e8('0x49')]=_[_0x50e8('0x35')](_0x504d97,_0x50e8('0x2d'));_0x596f62[_0x50e8('0x4a')]=_[_0x50e8('0x4b')](_0x22527f[_0x50e8('0x4a')]);_0x596f62[_0x50e8('0x4c')]=_['intersection'](_0x596f62[_0x50e8('0x49')],_0x596f62[_0x50e8('0x4a')]);_0x16fdf6['attributes']=_[_0x50e8('0x4d')](_0x596f62['model'],qs[_0x50e8('0x4e')](_0x22527f['query'][_0x50e8('0x4e')]));_0x16fdf6[_0x50e8('0x4f')]=_0x16fdf6[_0x50e8('0x4f')][_0x50e8('0x50')]?_0x16fdf6[_0x50e8('0x4f')]:_0x596f62[_0x50e8('0x49')];if(!_0x22527f[_0x50e8('0x4a')]['hasOwnProperty'](_0x50e8('0x51'))){_0x16fdf6[_0x50e8('0x26')]=qs[_0x50e8('0x26')](_0x22527f[_0x50e8('0x4a')][_0x50e8('0x26')]);_0x16fdf6[_0x50e8('0x23')]=qs['offset'](_0x22527f[_0x50e8('0x4a')][_0x50e8('0x23')]);}_0x16fdf6[_0x50e8('0x52')]=qs[_0x50e8('0x53')](_0x22527f['query'][_0x50e8('0x53')]);_0x16fdf6[_0x50e8('0x54')]=qs[_0x50e8('0x4c')](_[_0x50e8('0x55')](_0x22527f[_0x50e8('0x4a')],_0x596f62[_0x50e8('0x4c')]),_0x504d97);var _0x320b00=[];var _0x5f5220=squel['select']()['field']('id')[_0x50e8('0x56')](_0x50e8('0x2d'))[_0x50e8('0x56')](_0x50e8('0x57'))[_0x50e8('0x58')](_0x50e8('0x59'));var _0x566723=squel[_0x50e8('0x5a')]()[_0x50e8('0x56')](_0x50e8('0x5b'))[_0x50e8('0x56')]('u.fullname')[_0x50e8('0x56')](_0x50e8('0x5c'))[_0x50e8('0x58')](_0x50e8('0x5d'),'ui')[_0x50e8('0x5e')](_0x50e8('0x5f'),'u','u.id\x20=\x20ui.UserId');var _0x234f94=squel['select']()['from']('chat_interactions','i')[_0x50e8('0x5e')]('cm_contacts','c',_0x50e8('0x60'))[_0x50e8('0x5e')](_0x50e8('0x5f'),'o',_0x50e8('0x61'))[_0x50e8('0x5e')](_0x50e8('0x62'),'a',_0x50e8('0x63'))['left_join'](_0x50e8('0x64'),'me',_0x50e8('0x65'))[_0x50e8('0x5e')]('chat_interaction_has_tags','it','it.ChatInteractionId\x20=\x20i.id')['left_join'](_0x50e8('0x59'),'t',_0x50e8('0x66'));var _0x63ca8=squel[_0x50e8('0x67')]();var _0x3327d5=[];var _0x102181=squel['expr']();var _0x42c2d0;if(_0x22527f['query'][_0x50e8('0x68')]){_0x42c2d0=as[_0x50e8('0x69')](_0x22527f['query']['search']);var _0x51775a=_0x42c2d0[_0x50e8('0x6a')];for(var _0x3588f0=0x0;_0x3588f0<_0x42c2d0['conditions'][_0x50e8('0x50')];_0x3588f0++){var _0xb2d01a=_0x42c2d0[_0x50e8('0x6b')][_0x3588f0];var _0x3bbd6f='i';var _0x71bf27=_['find'](_0x504d97,[_0x50e8('0x2d'),_0xb2d01a[_0x50e8('0x56')]]);if(!_0x71bf27){switch(_0xb2d01a[_0x50e8('0x56')]){case'unreadMessages':if(_0xb2d01a['value']==0x1){_0x234f94[_0x50e8('0x6c')]('`'+_0xb2d01a[_0x50e8('0x56')]+_0x50e8('0x6d'));}else{_0x234f94[_0x50e8('0x6c')]('`'+_0xb2d01a[_0x50e8('0x56')]+_0x50e8('0x6e'));}break;case'Contact':if(_0xb2d01a['operator']===_0x50e8('0x6f')){if(_0xb2d01a['value'][_0x50e8('0x38')]('\x20')[_0x50e8('0x50')]>0x1){_0x63ca8[_0x51775a]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x50e8('0x70')](_0xb2d01a['value']),null);}else{var _0x58657d='%'+_0xb2d01a['value']+'%';_0x63ca8[_0x51775a](_0x50e8('0x71'),_0x58657d,_0x58657d,_0x58657d);}}else{_0x71bf27=_[_0x50e8('0x72')](_0x504d97,[_0x50e8('0x2d'),_0x50e8('0x73')]);_0xb2d01a['field']='ContactId';_0x1637b2=as[_0x50e8('0x74')](_0x3bbd6f,_0x71bf27[_0x50e8('0x47')],_0xb2d01a);_0x63ca8[_0x51775a](_0x1637b2[_0x50e8('0x75')],_0x1637b2[_0x50e8('0x76')][_0x50e8('0x77')],_0x1637b2[_0x50e8('0x76')][_0x50e8('0x2b')]);}break;case _0x50e8('0x78'):var _0x2635f0=_0xb2d01a[_0x50e8('0x76')][_0x50e8('0x38')](',')[_0x50e8('0x35')](function(_0x1ad71a){return Number(_0x1ad71a);});_0x2635f0[_0x50e8('0x39')](function(_0x310091){_0x102181['or'](_0x50e8('0x79'),'%,'+_0x310091+',%');});_0x3327d5=_[_0x50e8('0x7a')](_0x3327d5,_0x2635f0);break;case _0x50e8('0x7b'):if(_0xb2d01a['operator']===_0x50e8('0x6f')){_0x63ca8[_0x51775a](_0x50e8('0x7c'),'%'+_0xb2d01a[_0x50e8('0x76')]+'%',null);}else{_0x71bf27=_[_0x50e8('0x72')](_0x504d97,['name',_0x50e8('0x42')]);_0xb2d01a[_0x50e8('0x56')]=_0x50e8('0x42');_0x1637b2=as[_0x50e8('0x74')](_0x3bbd6f,_0x71bf27[_0x50e8('0x47')],_0xb2d01a);_0x63ca8[_0x51775a](_0x1637b2[_0x50e8('0x75')],_0x1637b2['value'][_0x50e8('0x77')],_0x1637b2[_0x50e8('0x76')][_0x50e8('0x2b')]);}break;case _0x50e8('0x7d'):_0x1637b2=as['buildExpression']('me',null,_0xb2d01a);_0x63ca8[_0x51775a](_0x1637b2[_0x50e8('0x75')],_0x1637b2['value'][_0x50e8('0x77')],_0x1637b2[_0x50e8('0x76')][_0x50e8('0x2b')]);break;}}else{var _0x1637b2=as[_0x50e8('0x74')](_0x3bbd6f,_0x71bf27['type'],_0xb2d01a);_0x63ca8[_0x51775a](_0x1637b2[_0x50e8('0x75')],_0x1637b2[_0x50e8('0x76')][_0x50e8('0x77')],_0x1637b2[_0x50e8('0x76')][_0x50e8('0x2b')]);}}}else{var _0x1dc51d=_(_0x22527f['query'])[_0x50e8('0x4b')]()[_0x50e8('0x35')](function(_0x4fc73d){return _[_0x50e8('0x7e')](_0x504d97,[_0x50e8('0x2d'),_0x4fc73d])?_0x4fc73d:undefined;})['compact']()[_0x50e8('0x76')]();if(!_['isEmpty'](_0x1dc51d)){_0x1dc51d[_0x50e8('0x39')](function(_0x26f96d){if(_0x26f96d==='ChatWebsiteId'){_0x234f94[_0x50e8('0x54')](_0x50e8('0x7f'),[][_0x50e8('0x80')](_0x22527f[_0x50e8('0x4a')][_0x26f96d]));}else if(_0x26f96d==='createdAt'){var _0xf21b2f=JSON['parse'](_0x22527f[_0x50e8('0x4a')][_0x26f96d])[_0x50e8('0x81')];var _0x52cb34=JSON[_0x50e8('0x82')](_0x22527f[_0x50e8('0x4a')][_0x26f96d])[_0x50e8('0x83')];_0x234f94[_0x50e8('0x54')](_0x50e8('0x84'),_0xf21b2f,_0x52cb34);}else{if(_0x22527f[_0x50e8('0x4a')][_0x26f96d]===_0x50e8('0x85')){_0x234f94[_0x50e8('0x54')]('i.'+_0x26f96d+_0x50e8('0x86'));}else{_0x234f94['where']('i.'+_0x26f96d+_0x50e8('0x87'),_0x22527f[_0x50e8('0x4a')][_0x26f96d]);}}});}if(_0x22527f[_0x50e8('0x4a')]['read']){if(_0x22527f[_0x50e8('0x4a')][_0x50e8('0x88')]==0x1){_0x234f94[_0x50e8('0x6c')]('`unreadMessages`\x20=\x200');}else{_0x234f94['having'](_0x50e8('0x89'));}}if(_0x22527f[_0x50e8('0x4a')]['tag']){_0x3327d5=_[_0x50e8('0x8a')](_0x22527f['query'][_0x50e8('0x8b')])?_0x22527f[_0x50e8('0x4a')][_0x50e8('0x8b')]:new Array(_0x22527f[_0x50e8('0x4a')]['tag']);_0x3327d5[_0x50e8('0x39')](function(_0x4ac008){_0x102181['or'](_0x50e8('0x79'),'%,'+_0x4ac008+',%');});}if(_0x22527f['query']['filter']){var _0x368d17=_0x22527f[_0x50e8('0x4a')]['filter'][_0x50e8('0x8c')]('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0x50e8('0x8d')](_0x368d17)){_0x63ca8['or']('i.id\x20LIKE\x20?',_0x368d17+'%');}else{_0x63ca8['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x50e8('0x70')](_0x368d17))['or'](_0x50e8('0x8e'),_0x368d17+'%');}}}_0x234f94[_0x50e8('0x54')](_0x63ca8);_0x234f94[_0x50e8('0x8f')]('i.id');var _0x2de6b4={'type':db['Sequelize']['QueryTypes'][_0x50e8('0x90')],'raw':!![]};var _0x805b93=_0x234f94[_0x50e8('0x91')]();_0x805b93['field']('i.id');_0x805b93['field'](_0x50e8('0x92'),_0x50e8('0x93'));if(_0x16fdf6[_0x50e8('0x52')]){_0x16fdf6[_0x50e8('0x52')][_0x50e8('0x39')](function(_0x1869e9){var _0x500cdd=_0x1869e9[0x0]==='contactName'?_0x1869e9[0x0]:'i.'+_0x1869e9[0x0];_0x234f94[_0x50e8('0x52')](_0x500cdd,_0x1869e9[0x1]===_0x50e8('0x94')?![]:!![]);});}if(!_[_0x50e8('0x95')](_0x3327d5)){_0x234f94[_0x50e8('0x6c')](_0x102181);_0x805b93[_0x50e8('0x54')]('t.id\x20IN\x20?',_0x3327d5);}BPromise[_0x50e8('0x96')]()[_0x50e8('0x2a')](function(){if(!_0x42c2d0){if(_0x22527f[_0x50e8('0x4a')]['ChatWebsiteId'])return;_0x805b93['where'](_0x50e8('0x97'));_0x234f94[_0x50e8('0x54')](_0x50e8('0x97'));return;}if(_0x22527f['user'][_0x50e8('0x98')]!==_0x50e8('0x99'))return;return _0x22527f['user'][_0x50e8('0x9a')]({'attributes':['id'],'raw':!![]})['then'](function(_0x306fc0){if(_[_0x50e8('0x95')](_0x306fc0)){_0x805b93[_0x50e8('0x54')](_0x50e8('0x9b'));_0x234f94[_0x50e8('0x54')](_0x50e8('0x9b'));}else{_0x805b93[_0x50e8('0x54')](_0x50e8('0x7f'),_[_0x50e8('0x35')](_0x306fc0,'id'));_0x234f94['where'](_0x50e8('0x7f'),_['map'](_0x306fc0,'id'));}});})[_0x50e8('0x2a')](function(){if(_0x22527f[_0x50e8('0x9c')][_0x50e8('0x98')]===_0x50e8('0x99')&&!_0x42c2d0&&!_0x22527f[_0x50e8('0x4a')][_0x50e8('0x9d')])return[];return db['sequelize'][_0x50e8('0x4a')](_0x805b93[_0x50e8('0x9e')](),_0x2de6b4);})[_0x50e8('0x2a')](function(_0x10b0cd){_0x1cc4fe[_0x50e8('0x25')]=_0x10b0cd[_0x50e8('0x50')];if(_0x1cc4fe[_0x50e8('0x25')]===0x0)return[];return db['sequelize'][_0x50e8('0x4a')](_0x5f5220[_0x50e8('0x9e')](),_0x2de6b4)[_0x50e8('0x2a')](function(_0xc55fb5){_0x320b00=_[_0x50e8('0x9f')](_0xc55fb5,'id');_0x2de6b4=_[_0x50e8('0x30')](_0x2de6b4,{'model':db[_0x50e8('0x45')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x22527f[_0x50e8('0x4a')]['fields']){_0x16fdf6['attributes']['forEach'](function(_0x27c159){_0x234f94['field']('i.'+_0x27c159);});}else{_0x234f94[_0x50e8('0x56')](_0x50e8('0x92'),_0x50e8('0x93'));_0x234f94[_0x50e8('0x56')](_0x50e8('0xa0'),_0x50e8('0xa1'));_0x234f94[_0x50e8('0x56')](_0x50e8('0xa2'),_0x50e8('0xa3'));_0x234f94[_0x50e8('0x56')](_0x50e8('0xa4'),'contactName');_0x234f94[_0x50e8('0x56')](_0x50e8('0xa5'));_0x234f94['field'](_0x50e8('0xa6'),_0x50e8('0xa7'));_0x234f94[_0x50e8('0x56')](_0x50e8('0xa8'),'Contact.lastName');_0x234f94[_0x50e8('0x56')](_0x50e8('0xa9'),'Contact.email');_0x234f94[_0x50e8('0x56')]('c.phone',_0x50e8('0xaa'));_0x234f94[_0x50e8('0x56')](_0x50e8('0xab'),_0x50e8('0xac'));_0x234f94[_0x50e8('0x56')](_0x50e8('0xad'),_0x50e8('0xae'));_0x234f94[_0x50e8('0x56')](_0x50e8('0xaf'),'Owner.fullname');_0x234f94[_0x50e8('0x56')](_0x50e8('0xb0'),_0x50e8('0xb1'));_0x234f94['field'](_0x50e8('0xb2'),_0x50e8('0x37'));}if(_0x16fdf6[_0x50e8('0x26')])_0x234f94[_0x50e8('0x26')](_0x16fdf6['limit']);if(_0x16fdf6['offset'])_0x234f94[_0x50e8('0x23')](_0x16fdf6[_0x50e8('0x23')]);return db[_0x50e8('0xb3')][_0x50e8('0x4a')](_0x234f94[_0x50e8('0x9e')](),_0x2de6b4);})['then'](function(_0x3b85a9){if(_0x3b85a9[_0x50e8('0x50')]>0x0)_0x566723['where']('ui.ChatInteractionId\x20IN\x20?',_[_0x50e8('0x35')](_0x3b85a9,'id'));return db[_0x50e8('0xb3')]['query'](_0x566723[_0x50e8('0x9e')](),_0x2de6b4)['then'](function(_0x3620e3){var _0x353ab9=_[_0x50e8('0xb4')](_0x3620e3,_0x50e8('0xb5'));var _0x97c1e9=[];_0x3b85a9[_0x50e8('0x39')](function(_0x53f5ef){_0x97c1e9['push'](updateChatInteraction(_0x53f5ef,_0x320b00,_0x353ab9));});return BPromise[_0x50e8('0xb6')](_0x97c1e9);});});})[_0x50e8('0x2a')](function(_0x5d0198){_0x1cc4fe['rows']=_0x5d0198;return _0x1cc4fe;})[_0x50e8('0x2a')](respondWithFilteredResult(_0x51d239,_0x16fdf6))['catch'](handleError(_0x51d239,null));};exports[_0x50e8('0xb7')]=function(_0x384eef,_0x563dcc){var _0x1806ef={'raw':![],'where':{'id':_0x384eef[_0x50e8('0xb8')]['id']}},_0x5248d6={};_0x5248d6['model']=_[_0x50e8('0x4b')](db['ChatInteraction'][_0x50e8('0xb9')]);_0x5248d6[_0x50e8('0x4a')]=_[_0x50e8('0x4b')](_0x384eef[_0x50e8('0x4a')]);_0x5248d6['filters']=_[_0x50e8('0x4d')](_0x5248d6[_0x50e8('0x49')],_0x5248d6['query']);_0x1806ef[_0x50e8('0x4f')]=_[_0x50e8('0x4d')](_0x5248d6[_0x50e8('0x49')],qs[_0x50e8('0x4e')](_0x384eef[_0x50e8('0x4a')][_0x50e8('0x4e')]));_0x1806ef[_0x50e8('0x4f')]=_0x1806ef['attributes'][_0x50e8('0x50')]?_0x1806ef[_0x50e8('0x4f')]:_0x5248d6[_0x50e8('0x49')];if(_0x384eef[_0x50e8('0x4a')][_0x50e8('0xba')]){_0x1806ef[_0x50e8('0xbb')]=[{'all':!![]}];}_0x1806ef=_[_0x50e8('0x30')]({},_0x1806ef,_0x384eef[_0x50e8('0xbc')]);return db[_0x50e8('0x45')]['find'](_0x1806ef)[_0x50e8('0x2a')](handleEntityNotFound(_0x563dcc,null))[_0x50e8('0x2a')](respondWithResult(_0x563dcc,null))[_0x50e8('0x3b')](handleError(_0x563dcc,null));};exports[_0x50e8('0xbd')]=function(_0x2c8f31,_0x179022){return db[_0x50e8('0x45')][_0x50e8('0xbd')](_0x2c8f31[_0x50e8('0x7d')],{})['then'](respondWithResult(_0x179022,0xc9))[_0x50e8('0x3b')](handleError(_0x179022,null));};exports['update']=function(_0x5e15d7,_0x31b00e){if(_0x5e15d7['body']['id']){delete _0x5e15d7[_0x50e8('0x7d')]['id'];}return db[_0x50e8('0x45')]['find']({'where':{'id':_0x5e15d7['params']['id']}})[_0x50e8('0x2a')](handleEntityNotFound(_0x31b00e,null))[_0x50e8('0x2a')](saveUpdates(_0x5e15d7[_0x50e8('0x7d')],null))['then'](respondWithResult(_0x31b00e,null))[_0x50e8('0x3b')](handleError(_0x31b00e,null));};exports['destroy']=function(_0x2cf36f,_0x3cc7e5){return db[_0x50e8('0x45')][_0x50e8('0x72')]({'where':{'id':_0x2cf36f['params']['id']}})[_0x50e8('0x2a')](handleEntityNotFound(_0x3cc7e5,null))[_0x50e8('0x2a')](removeEntity(_0x3cc7e5,null))[_0x50e8('0x3b')](handleError(_0x3cc7e5,null));};exports[_0x50e8('0xbe')]=function(_0x54282e,_0x3e36ea){return db[_0x50e8('0x45')]['describe']()[_0x50e8('0x2a')](respondWithResult(_0x3e36ea,null))[_0x50e8('0x3b')](handleError(_0x3e36ea,null));};exports['createVidaooSession']=function(_0x511606,_0x57ebe1){var _0x2e5e22=_0x511606[_0x50e8('0xb8')]['id'];var _0x16e2fe;var _0x4eb523;var _0x230791;return db[_0x50e8('0x45')]['findOne']({'where':{'id':_0x2e5e22}})[_0x50e8('0x2a')](function(_0x39f412){_0x16e2fe=_0x39f412;return db[_0x50e8('0xbf')][_0x50e8('0xc0')]({'where':{'id':_0x39f412[_0x50e8('0x9d')]},'attributes':['id',_0x50e8('0xc1'),'vidaooEscalation',_0x50e8('0xc2'),'vidaooNote',_0x50e8('0xc3')],'raw':!![]});})['then'](function(_0x2ab4c5){if(_0x2ab4c5&&_0x2ab4c5[_0x50e8('0xc1')]&&_0x2ab4c5['vidaooEscalation']){_0x4eb523=_0x2ab4c5;var _0x2ef5d9={'interaction':{'id':_0x2e5e22},'agent':{'id':_0x511606[_0x50e8('0x9c')]['id'],'name':_0x511606[_0x50e8('0x9c')][_0x50e8('0x2d')],'fullname':_0x511606[_0x50e8('0x9c')][_0x50e8('0xc4')],'email':_0x511606[_0x50e8('0x9c')][_0x50e8('0xc5')]},'contact':_0x511606[_0x50e8('0x7d')][_0x50e8('0x31')],'account':_0x511606[_0x50e8('0x7d')][_0x50e8('0x33')]};var _0x4aa481={'rejectUnauthorized':![],'method':_0x50e8('0xc6'),'url':_0x50e8('0xc7'),'headers':{'X-APIKEY':_0x2ab4c5[_0x50e8('0xc1')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x511606[_0x50e8('0x9c')][_0x50e8('0xc5')]],'buttons':null,'topic':_0x4eb523[_0x50e8('0xc2')],'note':_[_0x50e8('0xc8')](_0x4eb523['vidaooNote'])?null:getMustacheRender(_0x4eb523[_0x50e8('0xc9')],_0x2ef5d9),'metadata':null},'redirect':_0x50e8('0xca'),'json':!![]};try{if(!_[_0x50e8('0xc8')](_0x4eb523[_0x50e8('0xc3')])){var _0x27957b=getMustacheRender(_0x4eb523[_0x50e8('0xc3')],_0x2ef5d9);var _0x4a6e82=JSON['parse'](_0x27957b);_0x4aa481[_0x50e8('0x7d')][_0x50e8('0xcb')]=_0x4a6e82;}}catch(_0x546026){throw new db[(_0x50e8('0xcc'))][(_0x50e8('0xcd'))](_0x50e8('0xce'));}return rp(_0x4aa481);}else{throw new db['Sequelize'][(_0x50e8('0xcd'))]('Error\x20in\x20Vidaoo\x20configuration');}})[_0x50e8('0x2a')](function(_0x224e44){_0x230791=_0x224e44;if(_0x230791['id']){var _0x4e33ff={'body':_0x230791['join_url'],'ChatWebsiteId':_0x4eb523['id'],'ChatInteractionId':_0x16e2fe['id'],'direction':_0x50e8('0xcf'),'UserId':_0x511606[_0x50e8('0x9c')]['id']};return db[_0x50e8('0xd0')]['create'](_0x4e33ff,{});}else{throw new db[(_0x50e8('0xcc'))]['ValidationError'](_0x50e8('0xd1'));}})[_0x50e8('0x2a')](function(){return _0x16e2fe[_0x50e8('0xd2')]({'vidaooSessionId':_0x230791['id']});})[_0x50e8('0x2a')](respondWithResult(_0x57ebe1,null))['catch'](handleError(_0x57ebe1,null));};exports[_0x50e8('0xd3')]=function(_0xe34b94,_0x3c07e0){if(_0xe34b94[_0x50e8('0x7d')]['id']){delete _0xe34b94['body']['id'];}return db[_0x50e8('0x45')]['find']({'where':{'id':_0xe34b94[_0x50e8('0xb8')]['id']},'include':[{'model':db['CmContact'],'as':_0x50e8('0xd4')}]})[_0x50e8('0x2a')](handleEntityNotFound(_0x3c07e0,null))[_0x50e8('0x2a')](saveUpdates(_0xe34b94[_0x50e8('0x7d')],null))[_0x50e8('0x2a')](respondWithResult(_0x3c07e0,null))[_0x50e8('0x3b')](handleError(_0x3c07e0,null));};exports['abandon']=function(_0x105640,_0x9f3ed5){if(_0x105640[_0x50e8('0x7d')]['id']){delete _0x105640[_0x50e8('0x7d')]['id'];}return db[_0x50e8('0x45')][_0x50e8('0x72')]({'where':{'id':_0x105640[_0x50e8('0xb8')]['id']}})[_0x50e8('0x2a')](function(_0x32f213){if(!_0x32f213){logger[_0x50e8('0x1c')](_0x50e8('0xd5'),'abandon',0x194,'entity\x20not\x20found');_0x9f3ed5[_0x50e8('0x20')](0x194);}else{if(_0x32f213[_0x50e8('0x42')]){throw new db[(_0x50e8('0xcc'))][(_0x50e8('0xcd'))]('Interaction\x20already\x20assigned');}}return _0x32f213;})[_0x50e8('0x2a')](function(_0x2b952b){if(_0x2b952b){return _0x2b952b['update']({'closed':_0x105640[_0x50e8('0x7d')][_0x50e8('0x41')],'disposition':_0x105640[_0x50e8('0x7d')][_0x50e8('0xd6')]})[_0x50e8('0x2a')](function(_0x41fff7){return _0x41fff7;});}})[_0x50e8('0x2a')](function(){return respondWithRpcPromise(_0x50e8('0xd7'),_0x50e8('0xd8'),_0x105640[_0x50e8('0x7d')],client9004);})[_0x50e8('0x2a')](respondWithResult(_0x9f3ed5,null))[_0x50e8('0x3b')](handleError(_0x9f3ed5,null));};exports['attachmentUpload']=function(_0x3a408d,_0x1cdea7){_0x3a408d[_0x50e8('0x7d')][_0x50e8('0x2d')]=_0x3a408d[_0x50e8('0xd9')][_0x50e8('0xda')];_0x3a408d[_0x50e8('0x7d')][_0x50e8('0xdb')]=_0x3a408d[_0x50e8('0xd9')]['filename'];_0x3a408d[_0x50e8('0x7d')][_0x50e8('0x47')]=_0x3a408d['file']['mimetype'];return db['Attachment'][_0x50e8('0xbd')](_0x3a408d[_0x50e8('0x7d')])['then'](respondWithResult(_0x1cdea7,0xc9))[_0x50e8('0x3b')](handleError(_0x1cdea7,null));};exports[_0x50e8('0xdc')]=function(_0x4eec14,_0x415022){return db[_0x50e8('0x45')]['findOne']({'where':{'id':_0x4eec14[_0x50e8('0xb8')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x415022,null))[_0x50e8('0x2a')](function(_0x358f4c){if(_0x358f4c){if(_0x358f4c['closed']){return _0x415022[_0x50e8('0x21')](0x193)[_0x50e8('0x22')]({'status':0x193,'message':_0x50e8('0xdd')});}return db['Attachment'][_0x50e8('0xc0')]({'where':{'id':_0x4eec14['query'][_0x50e8('0xde')]},'raw':!![]})['then'](handleEntityNotFound(_0x415022,null));}})['then'](function(_0x20f900){if(_0x20f900){var _0x3fba15=_0x20f900[_0x50e8('0xdf')]!==null;var _0x246bc3=path[_0x50e8('0xe0')](config['root'],_0x50e8('0xe1'));if(_0x3fba15){_0x246bc3=path[_0x50e8('0xe0')](_0x246bc3,_0x50e8('0xe2'));}var _0x5d976a=path['join'](_0x246bc3,_0x20f900[_0x50e8('0xdb')]);return _0x415022['download'](_0x5d976a);}})['catch'](handleError(_0x415022,null));};exports['close']=function(_0x96c8fe,_0x18eb34){var _0x4c5bfe=null;var _0x28886c=null;var _0xc62623=null;if(_0x96c8fe[_0x50e8('0x7d')]['id']){delete _0x96c8fe[_0x50e8('0x7d')]['id'];}if(_0x96c8fe[_0x50e8('0x7d')]['mailTranscript']){_0xc62623=path[_0x50e8('0xe0')](config[_0x50e8('0xe3')],_0x50e8('0xe4'),util[_0x50e8('0xe5')](_0x50e8('0xe6'),Date['now']()));_0x96c8fe[_0x50e8('0x7d')][_0x50e8('0xe7')]=_0xc62623;}return db[_0x50e8('0x45')][_0x50e8('0x72')]({'where':{'id':_0x96c8fe['params']['id']},'include':[{'model':db[_0x50e8('0xd0')],'as':_0x50e8('0xe8'),'include':[{'model':db[_0x50e8('0x7b')],'as':_0x50e8('0x7b')}]}]})['then'](handleEntityNotFound(_0x18eb34,null))[_0x50e8('0x2a')](saveUpdates(_0x96c8fe[_0x50e8('0x7d')],null))[_0x50e8('0x2a')](function(_0x4997d1){if(_0x4997d1){_0x4c5bfe=_0x4997d1;return db['ChatWebsite']['find']({'where':{'id':_0x4c5bfe['ChatWebsiteId']}});}})[_0x50e8('0x2a')](function(_0x1869f1){if(_0x1869f1){_0x28886c=_0x1869f1;return db[_0x50e8('0xe9')][_0x50e8('0x72')]({'where':{'id':_0x4c5bfe[_0x50e8('0x73')]}});}})[_0x50e8('0x2a')](function(_0x5c494d){if(_0x5c494d){if(_0xc62623){var _0x1f2e86=null;for(var _0x138cc2=0x1;_0x138cc2<_0x4c5bfe[_0x50e8('0xe8')]['length'];++_0x138cc2){_0x1f2e86=_0x4c5bfe[_0x50e8('0xe8')][_0x138cc2];var _0x2f6310=_0x1f2e86[_0x50e8('0x42')]?util['format'](_0x50e8('0xea'),_0x28886c['agentAlias'],_0x1f2e86[_0x50e8('0x42')]):'System';var _0x9cdbf6=_0x96c8fe[_0x50e8('0x7d')]['customer']||util[_0x50e8('0xe5')](_0x50e8('0xea'),_0x50e8('0xeb'),_0x1f2e86['ContactId']);switch(_0x28886c[_0x50e8('0xec')]){case _0x50e8('0xed'):_0x2f6310=_0x1f2e86['UserId']?util[_0x50e8('0xe5')](_0x50e8('0xea'),_0x28886c[_0x50e8('0xee')],_0x1f2e86[_0x50e8('0x42')]):_0x50e8('0xef');break;case _0x50e8('0xf0'):_0x2f6310=_0x1f2e86[_0x50e8('0x42')]?_0x1f2e86[_0x50e8('0x7b')][_0x50e8('0xf1')]||_0x1f2e86[_0x50e8('0x7b')][_0x50e8('0xc4')]:'System';break;case _0x50e8('0xf2'):_0x2f6310=_0x1f2e86[_0x50e8('0x42')]?_0x1f2e86[_0x50e8('0x7b')][_0x50e8('0xc4')]:'System';break;default:_0x2f6310=_0x1f2e86[_0x50e8('0x42')]?util[_0x50e8('0xe5')](_0x50e8('0xea'),_0x28886c['agentAlias'],_0x1f2e86[_0x50e8('0x42')]):_0x50e8('0xef');}var _0x229de0=util[_0x50e8('0xe5')](_0x50e8('0xf3'),moment(_0x1f2e86[_0x50e8('0xf4')])['format'](_0x50e8('0xf5')),_0x1f2e86[_0x50e8('0xf6')]==='in'?_0x9cdbf6:_0x2f6310,_0x1f2e86[_0x50e8('0x7d')]);if(!_0x1f2e86[_0x50e8('0xf7')]){fs[_0x50e8('0xf8')](_0xc62623,_0x229de0);}}return db['MailAccount'][_0x50e8('0xc0')]({'where':{'service':!![]},'include':[{'model':db[_0x50e8('0xf9')],'as':_0x50e8('0xfa'),'raw':!![],'include':[{'model':db['CloudProvider'],'as':'CloudProvider','raw':!![]}]}]});}}})[_0x50e8('0x2a')](function(_0x336e22){if(!_0x336e22||!_0x336e22[_0x50e8('0xfa')]||!_0x96c8fe[_0x50e8('0x7d')])return _0x4c5bfe;var _0x1657bc=_0x336e22[_0x50e8('0xfb')]();return respondWithRpcPromise(_0x50e8('0xfc'),'sendMail',{'account':_0x1657bc,'message':{'from':util[_0x50e8('0xe5')](_0x50e8('0xfd'),_0x336e22[_0x50e8('0x2d')],_0x336e22[_0x50e8('0xc5')]||_0x336e22['Smtp'][_0x50e8('0x9c')]),'to':_0x96c8fe[_0x50e8('0x7d')][_0x50e8('0xfe')],'subject':_0x50e8('0xff'),'text':util[_0x50e8('0xe5')](_0x50e8('0x100'),_0x96c8fe[_0x50e8('0x7d')]['mailTranscript']),'attachments':[{'path':_0xc62623}]}})[_0x50e8('0x2a')](function(){return _0x4c5bfe;})['catch'](function(_0x34eb5d){logger[_0x50e8('0x1c')](_0x34eb5d);});})[_0x50e8('0x2a')](respondWithStatusCode(_0x18eb34,0xc8))[_0x50e8('0x3b')](handleError(_0x18eb34,null));};exports['addMessage']=function(_0x271d19,_0x45a8ff){return db['ChatMessage'][_0x50e8('0x72')]({'where':{'id':_0x271d19[_0x50e8('0xb8')]['id']}})[_0x50e8('0x2a')](handleEntityNotFound(_0x45a8ff,null))[_0x50e8('0x2a')](function(_0x2c4a90){if(_0x2c4a90){return _0x2c4a90[_0x50e8('0x101')](_0x271d19['body'][_0x50e8('0x102')],_[_0x50e8('0x103')](_0x271d19[_0x50e8('0x7d')],['ids','id'])||{});}})['then'](respondWithResult(_0x45a8ff,null))[_0x50e8('0x3b')](handleError(_0x45a8ff,null));};exports[_0x50e8('0x104')]=function(_0x2c8142,_0x1456aa){var _0x5f2cb3={'raw':![],'where':{}};var _0x1a77fb={};var _0xdcb7ce={'count':0x0,'rows':[]};return db[_0x50e8('0x45')]['findOne']({'where':{'id':_0x2c8142[_0x50e8('0xb8')]['id']}})[_0x50e8('0x2a')](handleEntityNotFound(_0x1456aa,null))[_0x50e8('0x2a')](function(_0x49c22c){if(_0x49c22c){_0x1a77fb[_0x50e8('0x49')]=_['keys'](db[_0x50e8('0xd0')][_0x50e8('0xb9')]);_0x1a77fb[_0x50e8('0x4a')]=_[_0x50e8('0x4b')](_0x2c8142['query']);_0x1a77fb['filters']=_[_0x50e8('0x4d')](_0x1a77fb[_0x50e8('0x49')],_0x1a77fb[_0x50e8('0x4a')]);_0x5f2cb3[_0x50e8('0x4f')]=_[_0x50e8('0x4d')](_0x1a77fb['model'],qs['fields'](_0x2c8142[_0x50e8('0x4a')]['fields']));_0x5f2cb3['attributes']=_0x5f2cb3[_0x50e8('0x4f')][_0x50e8('0x50')]?_0x5f2cb3[_0x50e8('0x4f')]:_0x1a77fb['model'];if(!_0x2c8142[_0x50e8('0x4a')][_0x50e8('0x105')](_0x50e8('0x51'))){_0x5f2cb3[_0x50e8('0x26')]=qs[_0x50e8('0x26')](_0x2c8142[_0x50e8('0x4a')]['limit']);_0x5f2cb3['offset']=qs[_0x50e8('0x23')](_0x2c8142[_0x50e8('0x4a')][_0x50e8('0x23')]);}_0x5f2cb3['order']=qs[_0x50e8('0x53')](_0x2c8142['query']['sort']);_0x5f2cb3[_0x50e8('0x54')]=qs[_0x50e8('0x4c')](_[_0x50e8('0x55')](_0x2c8142[_0x50e8('0x4a')],_0x1a77fb[_0x50e8('0x4c')]));_0x5f2cb3[_0x50e8('0x54')][_0x50e8('0xb5')]=_0x49c22c['id'];if(_0x2c8142[_0x50e8('0x4a')][_0x50e8('0x106')]){_0x5f2cb3['where']=_[_0x50e8('0x30')](_0x5f2cb3[_0x50e8('0x54')],{'$or':_[_0x50e8('0x35')](_0x5f2cb3[_0x50e8('0x4f')],function(_0x4952b4){var _0x3818cc={};_0x3818cc[_0x4952b4]={'$like':'%'+_0x2c8142['query']['filter']+'%'};return _0x3818cc;})});}if(_0x2c8142[_0x50e8('0x4a')][_0x50e8('0x81')]){var _0x51f73c=_0x2c8142[_0x50e8('0x4a')][_0x50e8('0x81')][_0x50e8('0x38')](',');var _0x1e4e44={};_0x1e4e44[_0x51f73c[0x0]]={'$gte':moment(_0x51f73c[0x1])['format'](_0x50e8('0x107'))};_0x5f2cb3[_0x50e8('0x54')]=_[_0x50e8('0x30')](_0x5f2cb3[_0x50e8('0x54')],_0x1e4e44);}_0x5f2cb3=_[_0x50e8('0x30')]({},_0x5f2cb3,_0x2c8142['options']);return db[_0x50e8('0xd0')][_0x50e8('0x25')]({'where':_0x5f2cb3[_0x50e8('0x54')]})[_0x50e8('0x2a')](function(_0x5c1ab2){_0xdcb7ce[_0x50e8('0x25')]=_0x5c1ab2;if(_0x2c8142['query'][_0x50e8('0xba')]){_0x5f2cb3[_0x50e8('0xbb')]=[{'all':!![]}];}return db[_0x50e8('0xd0')][_0x50e8('0x108')](_0x5f2cb3);})[_0x50e8('0x2a')](function(_0x329fff){_0xdcb7ce[_0x50e8('0x109')]=_0x329fff;return _0xdcb7ce;});}})[_0x50e8('0x2a')](respondWithFilteredResult(_0x1456aa,_0x5f2cb3))['catch'](handleError(_0x1456aa,null));};exports[_0x50e8('0x10a')]=function(_0x80fe2,_0x2a8b16){var _0x436ce2={'where':{}},_0x4942dd={},_0x812161={'count':0x0,'rows':[]};return db['ChatInteraction'][_0x50e8('0xc0')]({'where':{'id':_0x80fe2[_0x50e8('0xb8')]['id']}})['then'](handleEntityNotFound(_0x2a8b16,null))['then'](function(_0x3e9cae){if(_0x3e9cae){_0x4942dd[_0x50e8('0x49')]=_[_0x50e8('0x4b')](db[_0x50e8('0xd0')][_0x50e8('0xb9')]);_0x4942dd['query']=_[_0x50e8('0x4b')](_0x80fe2[_0x50e8('0x4a')]);_0x4942dd[_0x50e8('0x4c')]=_['intersection'](_0x4942dd['model'],_0x4942dd['query']);_0x436ce2[_0x50e8('0x4f')]=_[_0x50e8('0x4d')](_0x4942dd[_0x50e8('0x49')],qs[_0x50e8('0x4e')](_0x80fe2[_0x50e8('0x4a')][_0x50e8('0x4e')]));_0x436ce2[_0x50e8('0x4f')]=_0x436ce2[_0x50e8('0x4f')]['length']?_0x436ce2[_0x50e8('0x4f')]:_0x4942dd['model'];if(!_0x80fe2[_0x50e8('0x4a')][_0x50e8('0x105')]('nolimit')){_0x436ce2[_0x50e8('0x26')]=qs['limit'](_0x80fe2[_0x50e8('0x4a')]['limit']);_0x436ce2[_0x50e8('0x23')]=qs['offset'](_0x80fe2[_0x50e8('0x4a')][_0x50e8('0x23')]);}_0x436ce2[_0x50e8('0x52')]=qs['sort'](_0x80fe2['query'][_0x50e8('0x53')]);_0x436ce2['where']=qs[_0x50e8('0x4c')](_['pick'](_0x80fe2['query'],_0x4942dd['filters']));_0x436ce2['where'][_0x50e8('0xb5')]=_0x3e9cae['id'];if(_0x80fe2[_0x50e8('0x4a')]['filter']){_0x436ce2[_0x50e8('0x54')]=_[_0x50e8('0x30')](_0x436ce2[_0x50e8('0x54')],{'$or':_['map'](_0x436ce2[_0x50e8('0x4f')],function(_0x2a3344){var _0x37a785={};_0x37a785[_0x2a3344]={'$like':'%'+_0x80fe2[_0x50e8('0x4a')][_0x50e8('0x106')]+'%'};return _0x37a785;})});}_0x436ce2['where']['secret']=![];if(_0x80fe2[_0x50e8('0x4a')]['id']){_0x436ce2[_0x50e8('0x54')]['id']={'$gt':_0x80fe2[_0x50e8('0x4a')]['id']};}_0x436ce2=_[_0x50e8('0x30')]({},_0x436ce2,_0x80fe2[_0x50e8('0xbc')]);return db[_0x50e8('0xd0')]['count']({'where':_0x436ce2[_0x50e8('0x54')]})[_0x50e8('0x2a')](function(_0x100d2d){_0x812161['count']=_0x100d2d;_0x436ce2[_0x50e8('0xbb')]=[];if(_0x80fe2[_0x50e8('0x4a')][_0x50e8('0x10b')]){_0x436ce2[_0x50e8('0xbb')]['push']({'model':db[_0x50e8('0x7b')],'as':_0x50e8('0x7b'),'attributes':['id',_0x50e8('0xc4'),_0x50e8('0xf1')]});}if(_0x80fe2[_0x50e8('0x4a')][_0x50e8('0xba')]){_0x436ce2[_0x50e8('0xbb')]=[{'all':!![]}];}return db[_0x50e8('0xd0')][_0x50e8('0x108')](_0x436ce2);})[_0x50e8('0x2a')](function(_0x26d4b4){_0x812161['rows']=_0x26d4b4;return _0x812161;});}})['then'](respondWithFilteredResult(_0x2a8b16,_0x436ce2))[_0x50e8('0x3b')](handleError(_0x2a8b16,null));};exports['addTags']=function(_0x5b564d,_0x45e5a0){return db[_0x50e8('0x45')][_0x50e8('0x72')]({'where':{'id':_0x5b564d[_0x50e8('0xb8')]['id']}})[_0x50e8('0x2a')](handleEntityNotFound(_0x45e5a0,null))[_0x50e8('0x2a')](function(_0xdda1e5){if(_0xdda1e5){return _0xdda1e5[_0x50e8('0x10c')](_0x5b564d[_0x50e8('0x7d')][_0x50e8('0x102')],_['omit'](_0x5b564d[_0x50e8('0x7d')],[_0x50e8('0x102'),'id'])||{})[_0x50e8('0x10d')](function(){return db['Tag'][_0x50e8('0x108')]({'attributes':['id','name',_0x50e8('0x57')],'where':{'id':_0x5b564d['body'][_0x50e8('0x102')]}});})[_0x50e8('0x2a')](function(_0x26fdc7){socket[_0x50e8('0x10e')](_0x50e8('0x10f'),{'id':Number(_0x5b564d[_0x50e8('0xb8')]['id']),'tags':_0x26fdc7||[]});return{'id':Number(_0x5b564d[_0x50e8('0xb8')]['id']),'tags':_0x26fdc7||[]};});}})[_0x50e8('0x2a')](respondWithResult(_0x45e5a0,null))[_0x50e8('0x3b')](handleError(_0x45e5a0,null));};exports['removeTags']=function(_0xba62b2,_0x2df2ce){return db[_0x50e8('0x45')][_0x50e8('0x72')]({'where':{'id':_0xba62b2[_0x50e8('0xb8')]['id']}})[_0x50e8('0x2a')](handleEntityNotFound(_0x2df2ce,null))[_0x50e8('0x2a')](function(_0x5d5537){if(_0x5d5537){return _0x5d5537[_0x50e8('0x110')](_0xba62b2[_0x50e8('0x4a')][_0x50e8('0x102')]);}})[_0x50e8('0x2a')](respondWithStatusCode(_0x2df2ce,null))[_0x50e8('0x3b')](handleError(_0x2df2ce,null));};exports[_0x50e8('0x111')]=function(_0x319b5a,_0x26fa2c){var _0x40ecf7=moment()[_0x50e8('0x112')]()['toString']();var _0x56d2e6=path[_0x50e8('0xe0')](config[_0x50e8('0xe3')],_0x50e8('0x113'),_0x50e8('0x114'),_0x50e8('0x115'));var _0x32c089=path[_0x50e8('0xe0')](config[_0x50e8('0xe3')],_0x50e8('0x113'),_0x50e8('0x114'),_0x50e8('0x116'));var _0x1c2fd5=path[_0x50e8('0xe0')](_0x56d2e6,_0x40ecf7);var _0x289024=util['format'](_0x50e8('0x117'),_0x319b5a['params']['id'],_0x40ecf7);var _0x1abc45=path[_0x50e8('0xe0')](_0x56d2e6,_0x289024);var _0x6c75c2=[];_0x6c75c2[_0x50e8('0x3a')]({'model':db[_0x50e8('0x7b')],'as':_0x50e8('0x7b'),'attributes':['id',_0x50e8('0xc4')],'raw':!![]});_0x6c75c2[_0x50e8('0x3a')]({'model':db['CmContact'],'as':_0x50e8('0xd4'),'attributes':['id',_0x50e8('0x118'),_0x50e8('0x119')],'raw':!![]});if(_0x319b5a['query'][_0x50e8('0x116')]){_0x6c75c2['push']({'model':db[_0x50e8('0x11a')],'as':_0x50e8('0x11a'),'raw':!![]});}var _0x8ca769=[{'model':db[_0x50e8('0xd0')],'as':_0x50e8('0xe8'),'attributes':['id',_0x50e8('0x7d'),_0x50e8('0xf4'),_0x50e8('0xf6'),_0x50e8('0xf7'),_0x50e8('0x88')],'include':_0x6c75c2}];_0x8ca769['push']({'model':db['ChatWebsite'],'as':_0x50e8('0x11b'),'attributes':['id',_0x50e8('0x2d')]});_0x8ca769[_0x50e8('0x3a')]({'model':db[_0x50e8('0x7b')],'as':_0x50e8('0x11c'),'attributes':['id',_0x50e8('0xc4')]});return db[_0x50e8('0x45')][_0x50e8('0x72')]({'where':{'id':_0x319b5a['params']['id']},'include':_0x8ca769})['then'](handleEntityNotFound(_0x26fa2c,null))[_0x50e8('0x2a')](function(_0x2a030f){if(_0x2a030f){var _0x57e649=_0x2a030f['get']({'plain':!![]});fs[_0x50e8('0x11d')](_0x1c2fd5);var _0x3f342b={'channel':'Chat','account':_0x57e649[_0x50e8('0x11b')][_0x50e8('0x2d')],'agent':_0x57e649[_0x50e8('0x11c')]?_0x57e649[_0x50e8('0x11c')]['fullname']:_0x50e8('0x11e'),'createdAt':moment(_0x57e649[_0x50e8('0xf4')])[_0x50e8('0xe5')](_0x50e8('0x107'))[_0x50e8('0x9e')](),'closedAt':_0x57e649[_0x50e8('0x41')]?moment(_0x57e649[_0x50e8('0x11f')])[_0x50e8('0xe5')](_0x50e8('0x107'))['toString']():'','disposition':_0x57e649['disposition'],'chatInfo':{'browser':_0x57e649['browserName'],'os':_0x57e649[_0x50e8('0x120')],'referer':_0x57e649[_0x50e8('0x121')],'customerIp':_0x57e649[_0x50e8('0x122')],'customerPort':_0x57e649[_0x50e8('0x123')]?_0x57e649[_0x50e8('0x123')]:'N.A.'},'messages':_(_0x57e649[_0x50e8('0xe8')])[_0x50e8('0x124')]()['filter']({'secret':![]})[_0x50e8('0x35')](function(_0x53bad8){if(_0x53bad8[_0x50e8('0x11a')]){var _0x30d372=path[_0x50e8('0xe0')](_0x32c089,_0x53bad8[_0x50e8('0x11a')][_0x50e8('0xdb')]);if(fs[_0x50e8('0x125')](_0x30d372)){fs[_0x50e8('0x126')](_0x30d372)[_0x50e8('0x127')](fs['createWriteStream'](path[_0x50e8('0xe0')](_0x1c2fd5,_0x53bad8[_0x50e8('0x11a')][_0x50e8('0xdb')])));}}return{'date':moment(_0x53bad8[_0x50e8('0xf4')])[_0x50e8('0xe5')]('YYYY-MM-DD\x20HH:mm:ss')[_0x50e8('0x9e')](),'sender':_0x53bad8[_0x50e8('0xf6')]==='out'?_0x53bad8[_0x50e8('0x7b')]?_0x53bad8[_0x50e8('0x7b')]['fullname']:'System':_0x53bad8[_0x50e8('0xd4')]['firstName']+(_0x53bad8[_0x50e8('0xd4')][_0x50e8('0x119')]?'\x20'+_0x53bad8['Contact'][_0x50e8('0x119')]:''),'body':_0x53bad8['Attachment']?_0x53bad8[_0x50e8('0x11a')][_0x50e8('0xdb')]:_0x53bad8[_0x50e8('0x7d')],'direction':_0x53bad8['direction']==='out'?'A':'C','secret':_0x53bad8[_0x50e8('0xf7')],'read':_0x53bad8[_0x50e8('0x88')],'attachment':_0x53bad8['Attachment']};})[_0x50e8('0x76')]()};return ejs[_0x50e8('0x128')](path[_0x50e8('0xe0')](config[_0x50e8('0xe3')],_0x50e8('0x113'),'views',_0x50e8('0x129')),{'interaction':_0x3f342b})[_0x50e8('0x2a')](function(_0x1e3192){var _0x4c294b=path[_0x50e8('0xe0')](_0x1c2fd5,_0x50e8('0x12a')+_0x57e649['id']+'-'+_0x40ecf7+_0x50e8('0x12b'));var _0x3b0c3d={'path':_0x4c294b,'channel':'Chat','interactionId':_0x57e649['id']};return pdf[_0x50e8('0x12c')](_0x1e3192,_0x3b0c3d);})[_0x50e8('0x2a')](function(){return new Promise(function(_0x23eec2,_0x19cf56){zipdir(_0x1c2fd5,{'saveTo':_0x1abc45},function(_0x595588,_0x30f8c9){if(_0x595588)return _0x19cf56(_0x595588);return _0x23eec2(_0x30f8c9);});})[_0x50e8('0x2a')](function(){return new BPromise(function(_0x26fa23,_0x278f3d){rimraf(_0x1c2fd5,function(_0x441ad6){if(_0x441ad6)_0x278f3d(_0x441ad6);return _0x26fa23();});});})[_0x50e8('0x2a')](function(){return _0x26fa2c[_0x50e8('0x111')](_0x1abc45,_0x289024,function(_0x3281d8){if(_0x3281d8){logger[_0x50e8('0x1c')](_0x50e8('0x12d'),_0x3281d8);}else{fs[_0x50e8('0x12e')](_0x1abc45);}});});});}else{return _0x26fa2c[_0x50e8('0x20')](0xc8);}})[_0x50e8('0x3b')](handleError(_0x26fa2c,null));};