Built motion from commit 994c64e1.|2.6.1
[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 _0x22fb=['vidaooTopic','vidaooMetadata','vidaooEscalation','email','contact','POST','https://api-vidaoo.xcally.com/api/v1/meetings','isNull','follow','metadata','Error\x20in\x20conversion\x20vidaooMetadata','Sequelize','ValidationError','Error\x20in\x20Vidaoo\x20configuration','join_url','out','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','customUpdate','CmContact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','Interaction\x20already\x20assigned','attachmentUpload','file','originalname','basename','filename','mimetype','Attachment','attachmentDownload','Unauthorized','attachId','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','download','close','mailTranscript','transcript-%s.txt','now','pathTranscript','ChatMessage','Messages','System','customer','%s%d','Visitor','website_alias','format','agentAlias','agent_alias','alias','agent_fullname','MM/DD/YYYY\x20HH:mm:ss','secret','appendFileSync','MailServerOut','Smtp','getSmtpOptions','\x22%s\x22\x20<%s>','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','ids','getMessages','hasOwnProperty','YYYY-MM-DD\x20HH:mm:ss','includeAll','include','findAll','addTags','setTags','omit','spread','color','emit','chatInteractionTags:save','removeTags','unix','server','files','tmp','attachments','firstName','lastName','direction','read','Account','get','Chat','Owner','N.A.','closedAt','browserName','osName','referer','customerIp','customerPort','createWriteStream','views','createPdfFromHTML','err','unlinkSync','request-promise','bluebird','mustache','util','path','ejs','squel','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/logger','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInteraction.socket','register','jayson/promise','http','request','then','info','request\x20sent','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','message','ChatInteraction,\x20%s,\x20%s','result','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','destroy','end','name','send','render','merge','body','account','Users','map','fullname','Tags','TagIds','split','catch','waiting','talking','answered','unmanaged','abandoned','total','UserId','closed','disposition','index','ChatInteraction','rawAttributes','fieldName','type','model','query','keys','filters','attributes','intersection','fields','nolimit','sort','pick','select','field','from','tools_tags','u.id','ui.ChatInteractionId','user_has_chat_interactions','left_join','users','u.id\x20=\x20ui.UserId','chat_interactions','cm_contacts','o.id\x20=\x20i.UserId','a.id\x20=\x20i.ChatWebsiteId','chat_messages','me.ChatInteractionId\x20=\x20i.id','chat_interaction_has_tags','it.ChatInteractionId\x20=\x20i.id','expr','parseSearch','search','sqlOperator','length','conditions','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','find','ContactId','start','Tag','forEach','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','buildExpression','text','some','compact','isEmpty','ChatWebsiteId','where','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','\x20IS\x20NULL','\x20=\x20?','`unreadMessages`\x20>\x200','tag','filter','replace','i.id\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','i.id','QueryTypes','SELECT','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','contactName','t.id\x20IN\x20?','resolve','i.ChatWebsiteId\x20IS\x20NOT\x20NULL','user','role','agent','getChatWebsites','i.ChatWebsiteId\x20IS\x20NULL','i.ChatWebsiteId\x20IN\x20?','sequelize','toString','keyBy','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','i.*','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.fax','o.fullname','o.internal','Owner.internal','ui.ChatInteractionId\x20IN\x20?','ChatInteractionId','push','all','rows','show','params','options','create','update','describe','findOne','ChatWebsite','vidaooApiKey'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0x22fb,0x192));var _0xb22f=function(_0x359230,_0x3d8896){_0x359230=_0x359230-0x0;var _0x3075aa=_0x22fb[_0x359230];return _0x3075aa;};'use strict';var rimraf=require('rimraf');var zipdir=require('zip-dir');var rp=require(_0xb22f('0x0'));var moment=require('moment');var BPromise=require(_0xb22f('0x1'));var Mustache=require(_0xb22f('0x2'));var util=require(_0xb22f('0x3'));var path=require(_0xb22f('0x4'));var ejs=require(_0xb22f('0x5'));var fs=require('fs');var _=require('lodash');var squel=require(_0xb22f('0x6'));var Redis=require(_0xb22f('0x7'));var qs=require(_0xb22f('0x8'));var as=require(_0xb22f('0x9'));var pdf=require(_0xb22f('0xa'));var logger=require(_0xb22f('0xb'))('api');var config=require(_0xb22f('0xc'));var db=require(_0xb22f('0xd'))['db'];config[_0xb22f('0xe')]=_[_0xb22f('0xf')](config[_0xb22f('0xe')],{'host':_0xb22f('0x10'),'port':0x18eb});var socket=require(_0xb22f('0x11'))(new Redis(config[_0xb22f('0xe')]));require(_0xb22f('0x12'))[_0xb22f('0x13')](socket);var jayson=require(_0xb22f('0x14'));var client=jayson['client']['http']({'port':0x232b});var client9004=jayson['client'][_0xb22f('0x15')]({'port':0x232c});function respondWithRpcPromise(_0x4923d3,_0x4bb02a,_0x5bf0b9,_0x45e426){return new BPromise(function(_0x40fcf8,_0x4ae6bb){var _0x2f046d=_0x45e426||client;return _0x2f046d[_0xb22f('0x16')](_0x4923d3,_0x5bf0b9)[_0xb22f('0x17')](function(_0x5c6ccf){logger[_0xb22f('0x18')]('ChatInteraction,\x20%s,\x20%s',_0x4bb02a,_0xb22f('0x19'));logger['debug'](_0xb22f('0x1a'),_0x4bb02a,_0xb22f('0x19'),JSON[_0xb22f('0x1b')](_0x5c6ccf));if(_0x5c6ccf[_0xb22f('0x1c')]){if(_0x5c6ccf[_0xb22f('0x1c')]['code']===0x1f4){logger[_0xb22f('0x1c')]('ChatInteraction,\x20%s,\x20%s',_0x4bb02a,_0x5c6ccf[_0xb22f('0x1c')][_0xb22f('0x1d')]);return _0x4ae6bb(_0x5c6ccf[_0xb22f('0x1c')][_0xb22f('0x1d')]);}logger[_0xb22f('0x1c')](_0xb22f('0x1e'),_0x4bb02a,_0x5c6ccf['error'][_0xb22f('0x1d')]);return _0x40fcf8(_0x5c6ccf['error'][_0xb22f('0x1d')]);}else{logger[_0xb22f('0x18')](_0xb22f('0x1e'),_0x4bb02a,_0xb22f('0x19'));_0x40fcf8(_0x5c6ccf[_0xb22f('0x1f')]['message']);}})['catch'](function(_0x3da442){logger[_0xb22f('0x1c')](_0xb22f('0x1e'),_0x4bb02a,_0x3da442);_0x4ae6bb(_0x3da442);});});}function respondWithStatusCode(_0x16e465,_0x39c05a){_0x39c05a=_0x39c05a||0xcc;return function(_0xcb9a74){if(_0xcb9a74){return _0x16e465[_0xb22f('0x20')](_0x39c05a);}return _0x16e465[_0xb22f('0x21')](_0x39c05a)['end']();};}function respondWithResult(_0x482b3a,_0x3ab1d8){_0x3ab1d8=_0x3ab1d8||0xc8;return function(_0x33163d){if(_0x33163d){return _0x482b3a['status'](_0x3ab1d8)[_0xb22f('0x22')](_0x33163d);}};}function respondWithFilteredResult(_0x4364f5,_0x4f2986){return function(_0x4687f2){if(_0x4687f2){var _0x2918be=typeof _0x4f2986['offset']===_0xb22f('0x23')&&typeof _0x4f2986[_0xb22f('0x24')]===_0xb22f('0x23');var _0xec047c=_0x4687f2[_0xb22f('0x25')];var _0x246a0c=_0x2918be?0x0:_0x4f2986[_0xb22f('0x26')];var _0x2ae6d4=_0x2918be?_0x4687f2['count']:_0x4f2986['offset']+_0x4f2986['limit'];var _0x2f6b97;if(_0x2ae6d4>=_0xec047c){_0x2ae6d4=_0xec047c;_0x2f6b97=0xc8;}else{_0x2f6b97=0xce;}_0x4364f5['status'](_0x2f6b97);return _0x4364f5[_0xb22f('0x27')](_0xb22f('0x28'),_0x246a0c+'-'+_0x2ae6d4+'/'+_0xec047c)[_0xb22f('0x22')](_0x4687f2);}return null;};}function saveUpdates(_0x413575){return function(_0x3bf636){if(_0x3bf636){return _0x3bf636['update'](_0x413575)['then'](function(_0x435690){return _0x435690;});}return null;};}function removeEntity(_0x12c042){return function(_0x319e56){if(_0x319e56){return _0x319e56[_0xb22f('0x29')]()['then'](function(){_0x12c042[_0xb22f('0x21')](0xcc)[_0xb22f('0x2a')]();});}};}function handleEntityNotFound(_0x58f560){return function(_0x344c30){if(!_0x344c30){_0x58f560[_0xb22f('0x20')](0x194);}return _0x344c30;};}function handleError(_0x308ecd,_0x225194){_0x225194=_0x225194||0x1f4;return function(_0x82c88){logger['error'](_0x82c88['stack']);if(_0x82c88[_0xb22f('0x2b')]){delete _0x82c88[_0xb22f('0x2b')];}_0x308ecd[_0xb22f('0x21')](_0x225194)[_0xb22f('0x2c')](_0x82c88);};}function getMustacheRender(_0x2e1758,_0x12b079){return Mustache[_0xb22f('0x2d')](_0x2e1758,_[_0xb22f('0x2e')](_0x12b079[_0xb22f('0x2f')],{'contact':_0x12b079['contact'],'message':_0x12b079[_0xb22f('0x1d')],'agent':_0x12b079['agent'],'interaction':_0x12b079['interaction'],'account':_0x12b079[_0xb22f('0x30')]}))||'';}function getInteractionUsers(_0x27d03d,_0x2a9bf5){return new BPromise(function(_0xf3e898,_0x142ec1){try{if(_0x2a9bf5[_0x27d03d['id']]){_0x27d03d[_0xb22f('0x31')]=_[_0xb22f('0x32')](_0x2a9bf5[_0x27d03d['id']],function(_0x167dd0){return{'id':_0x167dd0['id'],'fullname':_0x167dd0[_0xb22f('0x33')]};});}}catch(_0x23c30f){_0x142ec1(_0x23c30f);}_0xf3e898(_0x27d03d);});}function getInteractionTags(_0x2b60d8,_0x17bb65){return new BPromise(function(_0x2ab591,_0x56efb5){try{if(_0x2b60d8['TagIds']){_0x2b60d8[_0xb22f('0x34')]=[];_0x2b60d8[_0xb22f('0x35')][_0xb22f('0x36')](',')['forEach'](function(_0xea3cc8){_0x2b60d8[_0xb22f('0x34')]['push'](_0x17bb65[_0xea3cc8]);});}delete _0x2b60d8['TagIds'];}catch(_0x2ddd64){_0x56efb5(_0x2ddd64);}_0x2ab591(_0x2b60d8);});}function updateChatInteraction(_0x5a5ee7,_0x234d17,_0x560574){return new BPromise(function(_0xdc9129,_0x43976d){return getInteractionUsers(_0x5a5ee7,_0x560574)[_0xb22f('0x17')](function(_0x52a3c7){return getInteractionTags(_0x52a3c7,_0x234d17);})[_0xb22f('0x17')](function(_0x2d265c){return getStateInteraction(_0x2d265c);})[_0xb22f('0x17')](function(_0x5e2faa){_0xdc9129(_0x5e2faa);})[_0xb22f('0x37')](function(_0x195985){_0x43976d(_0x195985);});});}function getStateInteraction(_0x186a66){return new BPromise(function(_0x476ff6){_0x186a66[_0xb22f('0x38')]=0x0;_0x186a66[_0xb22f('0x39')]=0x0;_0x186a66[_0xb22f('0x3a')]=0x0;_0x186a66[_0xb22f('0x3b')]=0x0;_0x186a66[_0xb22f('0x3c')]=0x0;_0x186a66[_0xb22f('0x3d')]=0x0;if(!_0x186a66['closed']&&!_0x186a66[_0xb22f('0x3e')]){_0x186a66[_0xb22f('0x38')]+=0x1;}if(!_0x186a66['closed']&&_0x186a66[_0xb22f('0x3e')]){_0x186a66['talking']+=0x1;if(_0x186a66['waiting']){_0x186a66[_0xb22f('0x38')]-=0x1;}}if(_0x186a66[_0xb22f('0x3f')]&&_0x186a66[_0xb22f('0x40')]===_0xb22f('0x3c')){_0x186a66['abandoned']+=0x1;if(_0x186a66[_0xb22f('0x38')]){_0x186a66['waiting']-=0x1;}}else if(_0x186a66[_0xb22f('0x3f')]&&!_0x186a66[_0xb22f('0x3e')]&&_0x186a66[_0xb22f('0x40')]){_0x186a66[_0xb22f('0x3b')]+=0x1;if(_0x186a66[_0xb22f('0x38')]){_0x186a66[_0xb22f('0x38')]-=0x1;}}else if(_0x186a66['closed']&&_0x186a66[_0xb22f('0x3e')]){_0x186a66['answered']+=0x1;if(_0x186a66[_0xb22f('0x39')]){_0x186a66[_0xb22f('0x39')]-=0x1;}}_0x186a66['total']+=0x1;_0x476ff6(_0x186a66);});}exports[_0xb22f('0x41')]=function(_0x48fa8b,_0x5f306a){var _0x48f94e={},_0x402901={},_0x577416={'count':0x0,'rows':[]};var _0x217e60=_[_0xb22f('0x32')](db[_0xb22f('0x42')][_0xb22f('0x43')],function(_0x490536){return{'name':_0x490536[_0xb22f('0x44')],'type':_0x490536[_0xb22f('0x45')]['key']};});_0x402901[_0xb22f('0x46')]=_[_0xb22f('0x32')](_0x217e60,_0xb22f('0x2b'));_0x402901[_0xb22f('0x47')]=_[_0xb22f('0x48')](_0x48fa8b['query']);_0x402901[_0xb22f('0x49')]=_['intersection'](_0x402901['model'],_0x402901[_0xb22f('0x47')]);_0x48f94e[_0xb22f('0x4a')]=_[_0xb22f('0x4b')](_0x402901[_0xb22f('0x46')],qs[_0xb22f('0x4c')](_0x48fa8b['query'][_0xb22f('0x4c')]));_0x48f94e['attributes']=_0x48f94e[_0xb22f('0x4a')]['length']?_0x48f94e[_0xb22f('0x4a')]:_0x402901[_0xb22f('0x46')];if(!_0x48fa8b[_0xb22f('0x47')]['hasOwnProperty'](_0xb22f('0x4d'))){_0x48f94e[_0xb22f('0x24')]=qs['limit'](_0x48fa8b[_0xb22f('0x47')][_0xb22f('0x24')]);_0x48f94e['offset']=qs['offset'](_0x48fa8b[_0xb22f('0x47')][_0xb22f('0x26')]);}_0x48f94e['order']=qs[_0xb22f('0x4e')](_0x48fa8b[_0xb22f('0x47')]['sort']);_0x48f94e['where']=qs[_0xb22f('0x49')](_[_0xb22f('0x4f')](_0x48fa8b['query'],_0x402901[_0xb22f('0x49')]),_0x217e60);var _0xaec9f=[];var _0x147279=squel[_0xb22f('0x50')]()['field']('id')[_0xb22f('0x51')](_0xb22f('0x2b'))['field']('color')[_0xb22f('0x52')](_0xb22f('0x53'));var _0x32dd9a=squel[_0xb22f('0x50')]()['field'](_0xb22f('0x54'))[_0xb22f('0x51')]('u.fullname')[_0xb22f('0x51')](_0xb22f('0x55'))[_0xb22f('0x52')](_0xb22f('0x56'),'ui')[_0xb22f('0x57')](_0xb22f('0x58'),'u',_0xb22f('0x59'));var _0x502c7f=squel[_0xb22f('0x50')]()[_0xb22f('0x52')](_0xb22f('0x5a'),'i')[_0xb22f('0x57')](_0xb22f('0x5b'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')['left_join'](_0xb22f('0x58'),'o',_0xb22f('0x5c'))[_0xb22f('0x57')]('chat_websites','a',_0xb22f('0x5d'))[_0xb22f('0x57')](_0xb22f('0x5e'),'me',_0xb22f('0x5f'))[_0xb22f('0x57')](_0xb22f('0x60'),'it',_0xb22f('0x61'))[_0xb22f('0x57')]('tools_tags','t','t.id\x20=\x20it.TagId');var _0x35320e=squel[_0xb22f('0x62')]();var _0x4f4245=[];var _0x4bd0ed=squel[_0xb22f('0x62')]();var _0x137761;if(_0x48fa8b['query']['search']){_0x137761=as[_0xb22f('0x63')](_0x48fa8b['query'][_0xb22f('0x64')]);var _0x343378=_0x137761[_0xb22f('0x65')];for(var _0x50e874=0x0;_0x50e874<_0x137761['conditions'][_0xb22f('0x66')];_0x50e874++){var _0x5cff10=_0x137761[_0xb22f('0x67')][_0x50e874];var _0xf1a5fc='i';var _0x31485a=_['find'](_0x217e60,['name',_0x5cff10[_0xb22f('0x51')]]);if(!_0x31485a){switch(_0x5cff10['field']){case _0xb22f('0x68'):if(_0x5cff10[_0xb22f('0x69')]==0x1){_0x502c7f[_0xb22f('0x6a')]('`'+_0x5cff10['field']+_0xb22f('0x6b'));}else{_0x502c7f['having']('`'+_0x5cff10[_0xb22f('0x51')]+_0xb22f('0x6c'));}break;case _0xb22f('0x6d'):if(_0x5cff10[_0xb22f('0x6e')]===_0xb22f('0x6f')){if(_0x5cff10[_0xb22f('0x69')][_0xb22f('0x36')]('\x20')[_0xb22f('0x66')]>0x1){_0x35320e[_0x343378](_0xb22f('0x70'),qs['getFullTextValue'](_0x5cff10[_0xb22f('0x69')]),null);}else{var _0x1487e7='%'+_0x5cff10[_0xb22f('0x69')]+'%';_0x35320e[_0x343378]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x1487e7,_0x1487e7,_0x1487e7);}}else{_0x31485a=_[_0xb22f('0x71')](_0x217e60,[_0xb22f('0x2b'),_0xb22f('0x72')]);_0x5cff10[_0xb22f('0x51')]='ContactId';_0x1e7f7a=as['buildExpression'](_0xf1a5fc,_0x31485a[_0xb22f('0x45')],_0x5cff10);_0x35320e[_0x343378](_0x1e7f7a['text'],_0x1e7f7a[_0xb22f('0x69')][_0xb22f('0x73')],_0x1e7f7a[_0xb22f('0x69')][_0xb22f('0x2a')]);}break;case _0xb22f('0x74'):var _0x1e7059=_0x5cff10[_0xb22f('0x69')][_0xb22f('0x36')](',')[_0xb22f('0x32')](function(_0x1f62b7){return Number(_0x1f62b7);});_0x1e7059[_0xb22f('0x75')](function(_0x2247a4){_0x4bd0ed['or'](_0xb22f('0x76'),'%,'+_0x2247a4+',%');});_0x4f4245=_['union'](_0x4f4245,_0x1e7059);break;case _0xb22f('0x77'):if(_0x5cff10[_0xb22f('0x6e')]===_0xb22f('0x6f')){_0x35320e[_0x343378](_0xb22f('0x78'),'%'+_0x5cff10[_0xb22f('0x69')]+'%',null);}else{_0x31485a=_[_0xb22f('0x71')](_0x217e60,[_0xb22f('0x2b'),_0xb22f('0x3e')]);_0x5cff10[_0xb22f('0x51')]=_0xb22f('0x3e');_0x1e7f7a=as[_0xb22f('0x79')](_0xf1a5fc,_0x31485a[_0xb22f('0x45')],_0x5cff10);_0x35320e[_0x343378](_0x1e7f7a['text'],_0x1e7f7a['value']['start'],_0x1e7f7a[_0xb22f('0x69')][_0xb22f('0x2a')]);}break;case'body':_0x1e7f7a=as[_0xb22f('0x79')]('me',null,_0x5cff10);_0x35320e[_0x343378](_0x1e7f7a[_0xb22f('0x7a')],_0x1e7f7a['value'][_0xb22f('0x73')],_0x1e7f7a[_0xb22f('0x69')][_0xb22f('0x2a')]);break;}}else{var _0x1e7f7a=as[_0xb22f('0x79')](_0xf1a5fc,_0x31485a['type'],_0x5cff10);_0x35320e[_0x343378](_0x1e7f7a['text'],_0x1e7f7a['value'][_0xb22f('0x73')],_0x1e7f7a[_0xb22f('0x69')][_0xb22f('0x2a')]);}}}else{var _0x5dc246=_(_0x48fa8b[_0xb22f('0x47')])[_0xb22f('0x48')]()['map'](function(_0x17f81a){return _[_0xb22f('0x7b')](_0x217e60,[_0xb22f('0x2b'),_0x17f81a])?_0x17f81a:undefined;})[_0xb22f('0x7c')]()[_0xb22f('0x69')]();if(!_[_0xb22f('0x7d')](_0x5dc246)){_0x5dc246[_0xb22f('0x75')](function(_0x30c7a7){if(_0x30c7a7===_0xb22f('0x7e')){_0x502c7f[_0xb22f('0x7f')]('i.ChatWebsiteId\x20IN\x20?',[][_0xb22f('0x80')](_0x48fa8b[_0xb22f('0x47')][_0x30c7a7]));}else if(_0x30c7a7===_0xb22f('0x81')){var _0x13ef04=JSON[_0xb22f('0x82')](_0x48fa8b[_0xb22f('0x47')][_0x30c7a7])[_0xb22f('0x83')];var _0x4ba979=JSON[_0xb22f('0x82')](_0x48fa8b[_0xb22f('0x47')][_0x30c7a7])[_0xb22f('0x84')];_0x502c7f[_0xb22f('0x7f')](_0xb22f('0x85'),_0x13ef04,_0x4ba979);}else{if(_0x48fa8b[_0xb22f('0x47')][_0x30c7a7]==='null'){_0x502c7f[_0xb22f('0x7f')]('i.'+_0x30c7a7+_0xb22f('0x86'));}else{_0x502c7f['where']('i.'+_0x30c7a7+_0xb22f('0x87'),_0x48fa8b['query'][_0x30c7a7]);}}});}if(_0x48fa8b['query']['read']){if(_0x48fa8b[_0xb22f('0x47')]['read']==0x1){_0x502c7f[_0xb22f('0x6a')]('`unreadMessages`\x20=\x200');}else{_0x502c7f['having'](_0xb22f('0x88'));}}if(_0x48fa8b[_0xb22f('0x47')]['tag']){_0x4f4245=_['isArray'](_0x48fa8b[_0xb22f('0x47')][_0xb22f('0x89')])?_0x48fa8b['query'][_0xb22f('0x89')]:new Array(_0x48fa8b['query']['tag']);_0x4f4245[_0xb22f('0x75')](function(_0x445353){_0x4bd0ed['or'](_0xb22f('0x76'),'%,'+_0x445353+',%');});}if(_0x48fa8b['query']['filter']){var _0x4c9977=_0x48fa8b[_0xb22f('0x47')][_0xb22f('0x8a')][_0xb22f('0x8b')]('\x5c','\x5c\x5c')[_0xb22f('0x8b')](/'/g,'\x27\x27');if(qs['isNumeric'](_0x4c9977)){_0x35320e['or'](_0xb22f('0x8c'),_0x4c9977+'%');}else{_0x35320e['or'](_0xb22f('0x8d'),qs[_0xb22f('0x8e')](_0x4c9977))['or'](_0xb22f('0x8f'),_0x4c9977+'%');}}}_0x502c7f[_0xb22f('0x7f')](_0x35320e);_0x502c7f['group'](_0xb22f('0x90'));var _0x4a3d67={'type':db['Sequelize'][_0xb22f('0x91')][_0xb22f('0x92')],'raw':!![]};var _0xa9a827=_0x502c7f['clone']();_0xa9a827[_0xb22f('0x51')](_0xb22f('0x90'));_0xa9a827[_0xb22f('0x51')](_0xb22f('0x93'),_0xb22f('0x68'));if(_0x48f94e[_0xb22f('0x94')]){_0x48f94e[_0xb22f('0x94')][_0xb22f('0x75')](function(_0x4d8f0){var _0x16370a=_0x4d8f0[0x0]===_0xb22f('0x95')?_0x4d8f0[0x0]:'i.'+_0x4d8f0[0x0];_0x502c7f['order'](_0x16370a,_0x4d8f0[0x1]==='DESC'?![]:!![]);});}if(!_[_0xb22f('0x7d')](_0x4f4245)){_0x502c7f[_0xb22f('0x6a')](_0x4bd0ed);_0xa9a827['where'](_0xb22f('0x96'),_0x4f4245);}BPromise[_0xb22f('0x97')]()[_0xb22f('0x17')](function(){if(!_0x137761){if(_0x48fa8b[_0xb22f('0x47')][_0xb22f('0x7e')])return;_0xa9a827[_0xb22f('0x7f')](_0xb22f('0x98'));_0x502c7f[_0xb22f('0x7f')]('i.ChatWebsiteId\x20IS\x20NOT\x20NULL');return;}if(_0x48fa8b[_0xb22f('0x99')][_0xb22f('0x9a')]!==_0xb22f('0x9b'))return;return _0x48fa8b['user'][_0xb22f('0x9c')]({'attributes':['id'],'raw':!![]})[_0xb22f('0x17')](function(_0x2ff6c6){if(_['isEmpty'](_0x2ff6c6)){_0xa9a827[_0xb22f('0x7f')]('i.ChatWebsiteId\x20IS\x20NULL');_0x502c7f[_0xb22f('0x7f')](_0xb22f('0x9d'));}else{_0xa9a827[_0xb22f('0x7f')](_0xb22f('0x9e'),_[_0xb22f('0x32')](_0x2ff6c6,'id'));_0x502c7f[_0xb22f('0x7f')](_0xb22f('0x9e'),_[_0xb22f('0x32')](_0x2ff6c6,'id'));}});})[_0xb22f('0x17')](function(){if(_0x48fa8b['user'][_0xb22f('0x9a')]===_0xb22f('0x9b')&&!_0x137761&&!_0x48fa8b[_0xb22f('0x47')]['ChatWebsiteId'])return[];return db[_0xb22f('0x9f')]['query'](_0xa9a827['toString'](),_0x4a3d67);})['then'](function(_0x165113){_0x577416[_0xb22f('0x25')]=_0x165113[_0xb22f('0x66')];if(_0x577416[_0xb22f('0x25')]===0x0)return[];return db[_0xb22f('0x9f')][_0xb22f('0x47')](_0x147279[_0xb22f('0xa0')](),_0x4a3d67)['then'](function(_0x295294){_0xaec9f=_[_0xb22f('0xa1')](_0x295294,'id');_0x4a3d67=_[_0xb22f('0x2e')](_0x4a3d67,{'model':db[_0xb22f('0x42')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x48fa8b[_0xb22f('0x47')][_0xb22f('0x4c')]){_0x48f94e[_0xb22f('0x4a')][_0xb22f('0x75')](function(_0x5ae21b){_0x502c7f[_0xb22f('0x51')]('i.'+_0x5ae21b);});}else{_0x502c7f[_0xb22f('0x51')](_0xb22f('0x93'),_0xb22f('0x68'));_0x502c7f[_0xb22f('0x51')](_0xb22f('0xa2'),_0xb22f('0xa3'));_0x502c7f[_0xb22f('0x51')](_0xb22f('0xa4'),_0xb22f('0xa5'));_0x502c7f[_0xb22f('0x51')]('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',_0xb22f('0x95'));_0x502c7f['field'](_0xb22f('0xa6'));_0x502c7f[_0xb22f('0x51')]('c.firstName','Contact.firstName');_0x502c7f[_0xb22f('0x51')](_0xb22f('0xa7'),_0xb22f('0xa8'));_0x502c7f[_0xb22f('0x51')](_0xb22f('0xa9'),_0xb22f('0xaa'));_0x502c7f['field'](_0xb22f('0xab'),'Contact.phone');_0x502c7f[_0xb22f('0x51')]('c.mobile','Contact.mobile');_0x502c7f[_0xb22f('0x51')]('c.fax',_0xb22f('0xac'));_0x502c7f[_0xb22f('0x51')](_0xb22f('0xad'),'Owner.fullname');_0x502c7f[_0xb22f('0x51')](_0xb22f('0xae'),_0xb22f('0xaf'));_0x502c7f[_0xb22f('0x51')]('GROUP_CONCAT(DISTINCT\x20t.id)',_0xb22f('0x35'));}if(_0x48f94e[_0xb22f('0x24')])_0x502c7f['limit'](_0x48f94e['limit']);if(_0x48f94e[_0xb22f('0x26')])_0x502c7f[_0xb22f('0x26')](_0x48f94e['offset']);return db['sequelize'][_0xb22f('0x47')](_0x502c7f[_0xb22f('0xa0')](),_0x4a3d67);})[_0xb22f('0x17')](function(_0x3df89c){if(_0x3df89c['length']>0x0)_0x32dd9a[_0xb22f('0x7f')](_0xb22f('0xb0'),_[_0xb22f('0x32')](_0x3df89c,'id'));return db[_0xb22f('0x9f')][_0xb22f('0x47')](_0x32dd9a[_0xb22f('0xa0')](),_0x4a3d67)['then'](function(_0x135b93){var _0x4d6249=_['groupBy'](_0x135b93,_0xb22f('0xb1'));var _0x4a1e18=[];_0x3df89c[_0xb22f('0x75')](function(_0x29f553){_0x4a1e18[_0xb22f('0xb2')](updateChatInteraction(_0x29f553,_0xaec9f,_0x4d6249));});return BPromise[_0xb22f('0xb3')](_0x4a1e18);});});})['then'](function(_0x1e24d3){_0x577416[_0xb22f('0xb4')]=_0x1e24d3;return _0x577416;})[_0xb22f('0x17')](respondWithFilteredResult(_0x5f306a,_0x48f94e))[_0xb22f('0x37')](handleError(_0x5f306a,null));};exports[_0xb22f('0xb5')]=function(_0xaefb23,_0xe5461c){var _0x4ff0e5={'raw':![],'where':{'id':_0xaefb23[_0xb22f('0xb6')]['id']}},_0x4cf12e={};_0x4cf12e['model']=_[_0xb22f('0x48')](db[_0xb22f('0x42')][_0xb22f('0x43')]);_0x4cf12e[_0xb22f('0x47')]=_[_0xb22f('0x48')](_0xaefb23[_0xb22f('0x47')]);_0x4cf12e['filters']=_[_0xb22f('0x4b')](_0x4cf12e[_0xb22f('0x46')],_0x4cf12e[_0xb22f('0x47')]);_0x4ff0e5['attributes']=_['intersection'](_0x4cf12e[_0xb22f('0x46')],qs['fields'](_0xaefb23['query'][_0xb22f('0x4c')]));_0x4ff0e5[_0xb22f('0x4a')]=_0x4ff0e5[_0xb22f('0x4a')]['length']?_0x4ff0e5['attributes']:_0x4cf12e[_0xb22f('0x46')];if(_0xaefb23[_0xb22f('0x47')]['includeAll']){_0x4ff0e5['include']=[{'all':!![]}];}_0x4ff0e5=_['merge']({},_0x4ff0e5,_0xaefb23[_0xb22f('0xb7')]);return db[_0xb22f('0x42')][_0xb22f('0x71')](_0x4ff0e5)[_0xb22f('0x17')](handleEntityNotFound(_0xe5461c,null))['then'](respondWithResult(_0xe5461c,null))[_0xb22f('0x37')](handleError(_0xe5461c,null));};exports['create']=function(_0x43e152,_0x23c467){return db[_0xb22f('0x42')][_0xb22f('0xb8')](_0x43e152[_0xb22f('0x2f')],{})['then'](respondWithResult(_0x23c467,0xc9))['catch'](handleError(_0x23c467,null));};exports[_0xb22f('0xb9')]=function(_0x31ec4c,_0x40ed02){if(_0x31ec4c[_0xb22f('0x2f')]['id']){delete _0x31ec4c['body']['id'];}return db[_0xb22f('0x42')][_0xb22f('0x71')]({'where':{'id':_0x31ec4c[_0xb22f('0xb6')]['id']}})[_0xb22f('0x17')](handleEntityNotFound(_0x40ed02,null))[_0xb22f('0x17')](saveUpdates(_0x31ec4c['body'],null))['then'](respondWithResult(_0x40ed02,null))['catch'](handleError(_0x40ed02,null));};exports[_0xb22f('0x29')]=function(_0x22a64e,_0x199cfd){return db['ChatInteraction'][_0xb22f('0x71')]({'where':{'id':_0x22a64e[_0xb22f('0xb6')]['id']}})[_0xb22f('0x17')](handleEntityNotFound(_0x199cfd,null))[_0xb22f('0x17')](removeEntity(_0x199cfd,null))[_0xb22f('0x37')](handleError(_0x199cfd,null));};exports[_0xb22f('0xba')]=function(_0x41e957,_0x504330){return db['ChatInteraction']['describe']()[_0xb22f('0x17')](respondWithResult(_0x504330,null))[_0xb22f('0x37')](handleError(_0x504330,null));};exports['createVidaooSession']=function(_0x602c26,_0x402c9c){var _0x77ec4=_0x602c26[_0xb22f('0xb6')]['id'];var _0x4b3963;var _0x1cf2d3;var _0x3acb3c;return db['ChatInteraction'][_0xb22f('0xbb')]({'where':{'id':_0x77ec4}})[_0xb22f('0x17')](function(_0x38f1b6){_0x4b3963=_0x38f1b6;return db[_0xb22f('0xbc')][_0xb22f('0xbb')]({'where':{'id':_0x38f1b6[_0xb22f('0x7e')]},'attributes':['id',_0xb22f('0xbd'),'vidaooEscalation',_0xb22f('0xbe'),'vidaooNote',_0xb22f('0xbf')],'raw':!![]});})[_0xb22f('0x17')](function(_0x1d7b7a){if(_0x1d7b7a&&_0x1d7b7a[_0xb22f('0xbd')]&&_0x1d7b7a[_0xb22f('0xc0')]){_0x1cf2d3=_0x1d7b7a;var _0xd18812={'interaction':{'id':_0x77ec4},'agent':{'id':_0x602c26[_0xb22f('0x99')]['id'],'name':_0x602c26[_0xb22f('0x99')]['name'],'fullname':_0x602c26[_0xb22f('0x99')][_0xb22f('0x33')],'email':_0x602c26[_0xb22f('0x99')][_0xb22f('0xc1')]},'contact':_0x602c26['body'][_0xb22f('0xc2')],'account':_0x602c26[_0xb22f('0x2f')][_0xb22f('0x30')]};var _0x37e277={'rejectUnauthorized':![],'method':_0xb22f('0xc3'),'url':_0xb22f('0xc4'),'headers':{'X-APIKEY':_0x1d7b7a['vidaooApiKey']},'body':{'duration':null,'scheduledAt':null,'participants':[_0x602c26['user'][_0xb22f('0xc1')]],'buttons':null,'topic':_0x1cf2d3[_0xb22f('0xbe')],'note':_[_0xb22f('0xc5')](_0x1cf2d3['vidaooNote'])?null:getMustacheRender(_0x1cf2d3['vidaooNote'],_0xd18812),'metadata':null},'redirect':_0xb22f('0xc6'),'json':!![]};try{if(!_[_0xb22f('0xc5')](_0x1cf2d3[_0xb22f('0xbf')])){var _0x4a3f65=getMustacheRender(_0x1cf2d3['vidaooMetadata'],_0xd18812);var _0x17daa7=JSON[_0xb22f('0x82')](_0x4a3f65);_0x37e277[_0xb22f('0x2f')][_0xb22f('0xc7')]=_0x17daa7;}}catch(_0xfd1685){throw new db['Sequelize']['ValidationError'](_0xb22f('0xc8'));}return rp(_0x37e277);}else{throw new db[(_0xb22f('0xc9'))][(_0xb22f('0xca'))](_0xb22f('0xcb'));}})['then'](function(_0x123e07){_0x3acb3c=_0x123e07;if(_0x3acb3c['id']){var _0xfa2645={'body':_0x3acb3c[_0xb22f('0xcc')],'ChatWebsiteId':_0x1cf2d3['id'],'ChatInteractionId':_0x4b3963['id'],'direction':_0xb22f('0xcd'),'UserId':_0x602c26[_0xb22f('0x99')]['id']};return db['ChatMessage']['create'](_0xfa2645,{});}else{throw new db['Sequelize'][(_0xb22f('0xca'))](_0xb22f('0xce'));}})[_0xb22f('0x17')](function(){return _0x4b3963[_0xb22f('0xcf')]({'vidaooSessionId':_0x3acb3c['id']});})[_0xb22f('0x17')](respondWithResult(_0x402c9c,null))[_0xb22f('0x37')](handleError(_0x402c9c,null));};exports[_0xb22f('0xd0')]=function(_0x583d54,_0x2f233c){if(_0x583d54[_0xb22f('0x2f')]['id']){delete _0x583d54[_0xb22f('0x2f')]['id'];}return db[_0xb22f('0x42')][_0xb22f('0x71')]({'where':{'id':_0x583d54['params']['id']},'include':[{'model':db[_0xb22f('0xd1')],'as':'Contact'}]})[_0xb22f('0x17')](handleEntityNotFound(_0x2f233c,null))[_0xb22f('0x17')](saveUpdates(_0x583d54[_0xb22f('0x2f')],null))[_0xb22f('0x17')](respondWithResult(_0x2f233c,null))[_0xb22f('0x37')](handleError(_0x2f233c,null));};exports[_0xb22f('0xd2')]=function(_0x47d1ed,_0x25d917){if(_0x47d1ed['body']['id']){delete _0x47d1ed['body']['id'];}return db['ChatInteraction'][_0xb22f('0x71')]({'where':{'id':_0x47d1ed[_0xb22f('0xb6')]['id']}})[_0xb22f('0x17')](function(_0x34f605){if(!_0x34f605){logger[_0xb22f('0x1c')](_0xb22f('0xd3'),_0xb22f('0xd2'),0x194,_0xb22f('0xd4'));_0x25d917[_0xb22f('0x20')](0x194);}else{if(_0x34f605[_0xb22f('0x3e')]){throw new db[(_0xb22f('0xc9'))]['ValidationError'](_0xb22f('0xd5'));}}return _0x34f605;})[_0xb22f('0x17')](function(_0x1b19e7){if(_0x1b19e7){return _0x1b19e7[_0xb22f('0xb9')]({'closed':_0x47d1ed['body'][_0xb22f('0x3f')],'disposition':_0x47d1ed[_0xb22f('0x2f')][_0xb22f('0x40')]})[_0xb22f('0x17')](function(_0x30b923){return _0x30b923;});}})[_0xb22f('0x17')](function(){return respondWithRpcPromise('AbandonInteraction',_0xb22f('0xd2'),_0x47d1ed[_0xb22f('0x2f')],client9004);})[_0xb22f('0x17')](respondWithResult(_0x25d917,null))[_0xb22f('0x37')](handleError(_0x25d917,null));};exports[_0xb22f('0xd6')]=function(_0x20c0e0,_0xfb3ea2){_0x20c0e0[_0xb22f('0x2f')][_0xb22f('0x2b')]=_0x20c0e0[_0xb22f('0xd7')][_0xb22f('0xd8')];_0x20c0e0[_0xb22f('0x2f')][_0xb22f('0xd9')]=_0x20c0e0[_0xb22f('0xd7')][_0xb22f('0xda')];_0x20c0e0[_0xb22f('0x2f')][_0xb22f('0x45')]=_0x20c0e0[_0xb22f('0xd7')][_0xb22f('0xdb')];return db[_0xb22f('0xdc')][_0xb22f('0xb8')](_0x20c0e0[_0xb22f('0x2f')])[_0xb22f('0x17')](respondWithResult(_0xfb3ea2,0xc9))[_0xb22f('0x37')](handleError(_0xfb3ea2,null));};exports[_0xb22f('0xdd')]=function(_0xbf43b1,_0x462e14){return db[_0xb22f('0x42')][_0xb22f('0xbb')]({'where':{'id':_0xbf43b1['params']['id']},'raw':!![]})[_0xb22f('0x17')](handleEntityNotFound(_0x462e14,null))[_0xb22f('0x17')](function(_0xe2e8e6){if(_0xe2e8e6){if(_0xe2e8e6[_0xb22f('0x3f')]){return _0x462e14[_0xb22f('0x21')](0x193)[_0xb22f('0x22')]({'status':0x193,'message':_0xb22f('0xde')});}return db[_0xb22f('0xdc')]['findOne']({'where':{'id':_0xbf43b1[_0xb22f('0x47')][_0xb22f('0xdf')]},'raw':!![]})['then'](handleEntityNotFound(_0x462e14,null));}})[_0xb22f('0x17')](function(_0x2d5e9d){if(_0x2d5e9d){var _0x456ac4=_0x2d5e9d[_0xb22f('0xe0')]!==null;var _0x88a571=path[_0xb22f('0xe1')](config[_0xb22f('0xe2')],_0xb22f('0xe3'));if(_0x456ac4){_0x88a571=path[_0xb22f('0xe1')](_0x88a571,_0xb22f('0xe4'));}var _0x2a6d8b=path[_0xb22f('0xe1')](_0x88a571,_0x2d5e9d[_0xb22f('0xd9')]);return _0x462e14[_0xb22f('0xe5')](_0x2a6d8b);}})[_0xb22f('0x37')](handleError(_0x462e14,null));};exports[_0xb22f('0xe6')]=function(_0x3186d4,_0x852a25){var _0x4d3eef=null;var _0x58f35e=null;var _0x5b6a95=null;if(_0x3186d4[_0xb22f('0x2f')]['id']){delete _0x3186d4['body']['id'];}if(_0x3186d4['body'][_0xb22f('0xe7')]){_0x5b6a95=path['join'](config[_0xb22f('0xe2')],'server/files/chat/upload/',util['format'](_0xb22f('0xe8'),Date[_0xb22f('0xe9')]()));_0x3186d4['body'][_0xb22f('0xea')]=_0x5b6a95;}return db['ChatInteraction'][_0xb22f('0x71')]({'where':{'id':_0x3186d4[_0xb22f('0xb6')]['id']},'include':[{'model':db[_0xb22f('0xeb')],'as':_0xb22f('0xec'),'include':[{'model':db['User'],'as':_0xb22f('0x77')}]}]})[_0xb22f('0x17')](handleEntityNotFound(_0x852a25,null))[_0xb22f('0x17')](saveUpdates(_0x3186d4['body'],null))['then'](function(_0x3a15ed){if(_0x3a15ed){_0x4d3eef=_0x3a15ed;return db[_0xb22f('0xbc')][_0xb22f('0x71')]({'where':{'id':_0x4d3eef[_0xb22f('0x7e')]}});}})['then'](function(_0x10a563){if(_0x10a563){_0x58f35e=_0x10a563;return db[_0xb22f('0xd1')][_0xb22f('0x71')]({'where':{'id':_0x4d3eef[_0xb22f('0x72')]}});}})[_0xb22f('0x17')](function(_0x5edf16){if(_0x5edf16){if(_0x5b6a95){var _0x169b79=null;for(var _0x34c963=0x1;_0x34c963<_0x4d3eef[_0xb22f('0xec')][_0xb22f('0x66')];++_0x34c963){_0x169b79=_0x4d3eef[_0xb22f('0xec')][_0x34c963];var _0xfc737=_0x169b79[_0xb22f('0x3e')]?util['format']('%s%d',_0x58f35e['agentAlias'],_0x169b79[_0xb22f('0x3e')]):_0xb22f('0xed');var _0x46f9a8=_0x3186d4[_0xb22f('0x2f')][_0xb22f('0xee')]||util['format'](_0xb22f('0xef'),_0xb22f('0xf0'),_0x169b79[_0xb22f('0x72')]);switch(_0x58f35e['agentIdentifier']){case _0xb22f('0xf1'):_0xfc737=_0x169b79[_0xb22f('0x3e')]?util[_0xb22f('0xf2')](_0xb22f('0xef'),_0x58f35e[_0xb22f('0xf3')],_0x169b79[_0xb22f('0x3e')]):_0xb22f('0xed');break;case _0xb22f('0xf4'):_0xfc737=_0x169b79['UserId']?_0x169b79[_0xb22f('0x77')][_0xb22f('0xf5')]||_0x169b79['User'][_0xb22f('0x33')]:_0xb22f('0xed');break;case _0xb22f('0xf6'):_0xfc737=_0x169b79[_0xb22f('0x3e')]?_0x169b79[_0xb22f('0x77')]['fullname']:_0xb22f('0xed');break;default:_0xfc737=_0x169b79[_0xb22f('0x3e')]?util['format']('%s%d',_0x58f35e[_0xb22f('0xf3')],_0x169b79[_0xb22f('0x3e')]):_0xb22f('0xed');}var _0x372ac6=util[_0xb22f('0xf2')]('[%s]\x20%s:\x20%s\x0a',moment(_0x169b79[_0xb22f('0x81')])[_0xb22f('0xf2')](_0xb22f('0xf7')),_0x169b79['direction']==='in'?_0x46f9a8:_0xfc737,_0x169b79[_0xb22f('0x2f')]);if(!_0x169b79[_0xb22f('0xf8')]){fs[_0xb22f('0xf9')](_0x5b6a95,_0x372ac6);}}return db['MailAccount'][_0xb22f('0xbb')]({'where':{'service':!![]},'include':[{'model':db[_0xb22f('0xfa')],'as':_0xb22f('0xfb'),'raw':!![],'include':[{'model':db['CloudProvider'],'as':'CloudProvider','raw':!![]}]}]});}}})[_0xb22f('0x17')](function(_0x156449){if(!_0x156449||!_0x156449[_0xb22f('0xfb')]||!_0x3186d4['body'])return _0x4d3eef;var _0x15888d=_0x156449[_0xb22f('0xfc')]();return respondWithRpcPromise('SendMail','sendMail',{'account':_0x15888d,'message':{'from':util['format'](_0xb22f('0xfd'),_0x156449['name'],_0x156449['email']||_0x156449[_0xb22f('0xfb')][_0xb22f('0x99')]),'to':_0x3186d4[_0xb22f('0x2f')]['mailTranscript'],'subject':'Mail\x20Transcript','text':util['format'](_0xb22f('0xfe'),_0x3186d4[_0xb22f('0x2f')][_0xb22f('0xe7')]),'attachments':[{'path':_0x5b6a95}]}})[_0xb22f('0x17')](function(){return _0x4d3eef;})['catch'](function(_0xd33df9){logger[_0xb22f('0x1c')](_0xd33df9);});})[_0xb22f('0x17')](respondWithStatusCode(_0x852a25,0xc8))['catch'](handleError(_0x852a25,null));};exports[_0xb22f('0xff')]=function(_0x24fb48,_0x5c2181){return db[_0xb22f('0xeb')][_0xb22f('0x71')]({'where':{'id':_0x24fb48[_0xb22f('0xb6')]['id']}})[_0xb22f('0x17')](handleEntityNotFound(_0x5c2181,null))[_0xb22f('0x17')](function(_0x260fb0){if(_0x260fb0){return _0x260fb0[_0xb22f('0xff')](_0x24fb48[_0xb22f('0x2f')][_0xb22f('0x100')],_['omit'](_0x24fb48[_0xb22f('0x2f')],[_0xb22f('0x100'),'id'])||{});}})[_0xb22f('0x17')](respondWithResult(_0x5c2181,null))[_0xb22f('0x37')](handleError(_0x5c2181,null));};exports[_0xb22f('0x101')]=function(_0x1a8d28,_0x47071b){var _0x44dd72={'raw':![],'where':{}};var _0x31b719={};var _0x6400b2={'count':0x0,'rows':[]};return db['ChatInteraction'][_0xb22f('0xbb')]({'where':{'id':_0x1a8d28[_0xb22f('0xb6')]['id']}})[_0xb22f('0x17')](handleEntityNotFound(_0x47071b,null))[_0xb22f('0x17')](function(_0x635b38){if(_0x635b38){_0x31b719[_0xb22f('0x46')]=_[_0xb22f('0x48')](db['ChatMessage'][_0xb22f('0x43')]);_0x31b719['query']=_['keys'](_0x1a8d28[_0xb22f('0x47')]);_0x31b719[_0xb22f('0x49')]=_[_0xb22f('0x4b')](_0x31b719[_0xb22f('0x46')],_0x31b719[_0xb22f('0x47')]);_0x44dd72[_0xb22f('0x4a')]=_[_0xb22f('0x4b')](_0x31b719[_0xb22f('0x46')],qs[_0xb22f('0x4c')](_0x1a8d28[_0xb22f('0x47')]['fields']));_0x44dd72[_0xb22f('0x4a')]=_0x44dd72[_0xb22f('0x4a')][_0xb22f('0x66')]?_0x44dd72[_0xb22f('0x4a')]:_0x31b719[_0xb22f('0x46')];if(!_0x1a8d28[_0xb22f('0x47')][_0xb22f('0x102')](_0xb22f('0x4d'))){_0x44dd72[_0xb22f('0x24')]=qs[_0xb22f('0x24')](_0x1a8d28[_0xb22f('0x47')]['limit']);_0x44dd72[_0xb22f('0x26')]=qs['offset'](_0x1a8d28[_0xb22f('0x47')][_0xb22f('0x26')]);}_0x44dd72[_0xb22f('0x94')]=qs['sort'](_0x1a8d28['query'][_0xb22f('0x4e')]);_0x44dd72[_0xb22f('0x7f')]=qs[_0xb22f('0x49')](_[_0xb22f('0x4f')](_0x1a8d28[_0xb22f('0x47')],_0x31b719['filters']));_0x44dd72['where'][_0xb22f('0xb1')]=_0x635b38['id'];if(_0x1a8d28[_0xb22f('0x47')][_0xb22f('0x8a')]){_0x44dd72[_0xb22f('0x7f')]=_[_0xb22f('0x2e')](_0x44dd72[_0xb22f('0x7f')],{'$or':_[_0xb22f('0x32')](_0x44dd72[_0xb22f('0x4a')],function(_0x36e7f2){var _0x329028={};_0x329028[_0x36e7f2]={'$like':'%'+_0x1a8d28[_0xb22f('0x47')]['filter']+'%'};return _0x329028;})});}if(_0x1a8d28[_0xb22f('0x47')][_0xb22f('0x83')]){var _0x25bec3=_0x1a8d28[_0xb22f('0x47')][_0xb22f('0x83')]['split'](',');var _0x307e55={};_0x307e55[_0x25bec3[0x0]]={'$gte':moment(_0x25bec3[0x1])['format'](_0xb22f('0x103'))};_0x44dd72['where']=_[_0xb22f('0x2e')](_0x44dd72[_0xb22f('0x7f')],_0x307e55);}_0x44dd72=_['merge']({},_0x44dd72,_0x1a8d28['options']);return db['ChatMessage'][_0xb22f('0x25')]({'where':_0x44dd72['where']})['then'](function(_0x73d6b6){_0x6400b2[_0xb22f('0x25')]=_0x73d6b6;if(_0x1a8d28['query'][_0xb22f('0x104')]){_0x44dd72[_0xb22f('0x105')]=[{'all':!![]}];}return db[_0xb22f('0xeb')][_0xb22f('0x106')](_0x44dd72);})[_0xb22f('0x17')](function(_0x1a061c){_0x6400b2[_0xb22f('0xb4')]=_0x1a061c;return _0x6400b2;});}})['then'](respondWithFilteredResult(_0x47071b,_0x44dd72))[_0xb22f('0x37')](handleError(_0x47071b,null));};exports['getMyMessages']=function(_0x182627,_0x49701f){var _0x1852b2={'where':{}},_0xb5212={},_0x582726={'count':0x0,'rows':[]};return db[_0xb22f('0x42')]['findOne']({'where':{'id':_0x182627[_0xb22f('0xb6')]['id']}})[_0xb22f('0x17')](handleEntityNotFound(_0x49701f,null))[_0xb22f('0x17')](function(_0x43d8c8){if(_0x43d8c8){_0xb5212[_0xb22f('0x46')]=_[_0xb22f('0x48')](db[_0xb22f('0xeb')][_0xb22f('0x43')]);_0xb5212[_0xb22f('0x47')]=_[_0xb22f('0x48')](_0x182627[_0xb22f('0x47')]);_0xb5212[_0xb22f('0x49')]=_[_0xb22f('0x4b')](_0xb5212['model'],_0xb5212[_0xb22f('0x47')]);_0x1852b2[_0xb22f('0x4a')]=_['intersection'](_0xb5212[_0xb22f('0x46')],qs[_0xb22f('0x4c')](_0x182627[_0xb22f('0x47')]['fields']));_0x1852b2[_0xb22f('0x4a')]=_0x1852b2[_0xb22f('0x4a')][_0xb22f('0x66')]?_0x1852b2[_0xb22f('0x4a')]:_0xb5212['model'];if(!_0x182627[_0xb22f('0x47')][_0xb22f('0x102')](_0xb22f('0x4d'))){_0x1852b2[_0xb22f('0x24')]=qs[_0xb22f('0x24')](_0x182627['query'][_0xb22f('0x24')]);_0x1852b2[_0xb22f('0x26')]=qs[_0xb22f('0x26')](_0x182627[_0xb22f('0x47')][_0xb22f('0x26')]);}_0x1852b2[_0xb22f('0x94')]=qs[_0xb22f('0x4e')](_0x182627['query'][_0xb22f('0x4e')]);_0x1852b2[_0xb22f('0x7f')]=qs['filters'](_[_0xb22f('0x4f')](_0x182627[_0xb22f('0x47')],_0xb5212[_0xb22f('0x49')]));_0x1852b2[_0xb22f('0x7f')]['ChatInteractionId']=_0x43d8c8['id'];if(_0x182627['query'][_0xb22f('0x8a')]){_0x1852b2[_0xb22f('0x7f')]=_[_0xb22f('0x2e')](_0x1852b2['where'],{'$or':_[_0xb22f('0x32')](_0x1852b2[_0xb22f('0x4a')],function(_0x42f08b){var _0x408d5c={};_0x408d5c[_0x42f08b]={'$like':'%'+_0x182627[_0xb22f('0x47')][_0xb22f('0x8a')]+'%'};return _0x408d5c;})});}_0x1852b2[_0xb22f('0x7f')][_0xb22f('0xf8')]=![];if(_0x182627[_0xb22f('0x47')]['id']){_0x1852b2['where']['id']={'$gt':_0x182627[_0xb22f('0x47')]['id']};}_0x1852b2=_[_0xb22f('0x2e')]({},_0x1852b2,_0x182627[_0xb22f('0xb7')]);return db[_0xb22f('0xeb')]['count']({'where':_0x1852b2[_0xb22f('0x7f')]})[_0xb22f('0x17')](function(_0xc1396d){_0x582726['count']=_0xc1396d;_0x1852b2[_0xb22f('0x105')]=[];if(_0x182627[_0xb22f('0x47')]['includeAgent']){_0x1852b2[_0xb22f('0x105')][_0xb22f('0xb2')]({'model':db['User'],'as':_0xb22f('0x77'),'attributes':['id',_0xb22f('0x33'),'alias']});}if(_0x182627[_0xb22f('0x47')][_0xb22f('0x104')]){_0x1852b2[_0xb22f('0x105')]=[{'all':!![]}];}return db[_0xb22f('0xeb')][_0xb22f('0x106')](_0x1852b2);})[_0xb22f('0x17')](function(_0xa70a9d){_0x582726[_0xb22f('0xb4')]=_0xa70a9d;return _0x582726;});}})[_0xb22f('0x17')](respondWithFilteredResult(_0x49701f,_0x1852b2))['catch'](handleError(_0x49701f,null));};exports[_0xb22f('0x107')]=function(_0x5c9ee1,_0x464143){return db[_0xb22f('0x42')]['find']({'where':{'id':_0x5c9ee1[_0xb22f('0xb6')]['id']}})[_0xb22f('0x17')](handleEntityNotFound(_0x464143,null))[_0xb22f('0x17')](function(_0x7d97b5){if(_0x7d97b5){return _0x7d97b5[_0xb22f('0x108')](_0x5c9ee1['body']['ids'],_[_0xb22f('0x109')](_0x5c9ee1[_0xb22f('0x2f')],[_0xb22f('0x100'),'id'])||{})[_0xb22f('0x10a')](function(){return db['Tag'][_0xb22f('0x106')]({'attributes':['id',_0xb22f('0x2b'),_0xb22f('0x10b')],'where':{'id':_0x5c9ee1[_0xb22f('0x2f')][_0xb22f('0x100')]}});})[_0xb22f('0x17')](function(_0x5db5ff){socket[_0xb22f('0x10c')](_0xb22f('0x10d'),{'id':Number(_0x5c9ee1[_0xb22f('0xb6')]['id']),'tags':_0x5db5ff||[]});return{'id':Number(_0x5c9ee1['params']['id']),'tags':_0x5db5ff||[]};});}})[_0xb22f('0x17')](respondWithResult(_0x464143,null))[_0xb22f('0x37')](handleError(_0x464143,null));};exports[_0xb22f('0x10e')]=function(_0x503379,_0x3170b7){return db[_0xb22f('0x42')][_0xb22f('0x71')]({'where':{'id':_0x503379[_0xb22f('0xb6')]['id']}})['then'](handleEntityNotFound(_0x3170b7,null))[_0xb22f('0x17')](function(_0xe940e0){if(_0xe940e0){return _0xe940e0['removeTags'](_0x503379[_0xb22f('0x47')][_0xb22f('0x100')]);}})[_0xb22f('0x17')](respondWithStatusCode(_0x3170b7,null))['catch'](handleError(_0x3170b7,null));};exports[_0xb22f('0xe5')]=function(_0x4eb42b,_0x3bfd6a){var _0x25c40d=moment()[_0xb22f('0x10f')]()['toString']();var _0x50e280=path['join'](config[_0xb22f('0xe2')],_0xb22f('0x110'),_0xb22f('0x111'),_0xb22f('0x112'));var _0x703bd8=path[_0xb22f('0xe1')](config['root'],_0xb22f('0x110'),_0xb22f('0x111'),_0xb22f('0x113'));var _0x1b527c=path[_0xb22f('0xe1')](_0x50e280,_0x25c40d);var _0x37719d=util[_0xb22f('0xf2')]('transcript-%d-%s.zip',_0x4eb42b[_0xb22f('0xb6')]['id'],_0x25c40d);var _0x37f72c=path[_0xb22f('0xe1')](_0x50e280,_0x37719d);var _0x1c3084=[];_0x1c3084['push']({'model':db[_0xb22f('0x77')],'as':_0xb22f('0x77'),'attributes':['id',_0xb22f('0x33')],'raw':!![]});_0x1c3084['push']({'model':db[_0xb22f('0xd1')],'as':_0xb22f('0x6d'),'attributes':['id',_0xb22f('0x114'),_0xb22f('0x115')],'raw':!![]});if(_0x4eb42b['query'][_0xb22f('0x113')]){_0x1c3084[_0xb22f('0xb2')]({'model':db['Attachment'],'as':_0xb22f('0xdc'),'raw':!![]});}var _0x205656=[{'model':db[_0xb22f('0xeb')],'as':'Messages','attributes':['id',_0xb22f('0x2f'),_0xb22f('0x81'),_0xb22f('0x116'),'secret',_0xb22f('0x117')],'include':_0x1c3084}];_0x205656[_0xb22f('0xb2')]({'model':db['ChatWebsite'],'as':_0xb22f('0x118'),'attributes':['id',_0xb22f('0x2b')]});_0x205656['push']({'model':db[_0xb22f('0x77')],'as':'Owner','attributes':['id',_0xb22f('0x33')]});return db[_0xb22f('0x42')][_0xb22f('0x71')]({'where':{'id':_0x4eb42b[_0xb22f('0xb6')]['id']},'include':_0x205656})[_0xb22f('0x17')](handleEntityNotFound(_0x3bfd6a,null))['then'](function(_0x36baa2){if(_0x36baa2){var _0x4f684d=_0x36baa2[_0xb22f('0x119')]({'plain':!![]});fs['mkdirSync'](_0x1b527c);var _0x1f2c2c={'channel':_0xb22f('0x11a'),'account':_0x4f684d[_0xb22f('0x118')][_0xb22f('0x2b')],'agent':_0x4f684d[_0xb22f('0x11b')]?_0x4f684d[_0xb22f('0x11b')]['fullname']:_0xb22f('0x11c'),'createdAt':moment(_0x4f684d['createdAt'])['format'](_0xb22f('0x103'))['toString'](),'closedAt':_0x4f684d[_0xb22f('0x3f')]?moment(_0x4f684d[_0xb22f('0x11d')])[_0xb22f('0xf2')]('YYYY-MM-DD\x20HH:mm:ss')['toString']():'','disposition':_0x4f684d[_0xb22f('0x40')],'chatInfo':{'browser':_0x4f684d[_0xb22f('0x11e')],'os':_0x4f684d[_0xb22f('0x11f')],'referer':_0x4f684d[_0xb22f('0x120')],'customerIp':_0x4f684d[_0xb22f('0x121')],'customerPort':_0x4f684d[_0xb22f('0x122')]?_0x4f684d['customerPort']:'N.A.'},'messages':_(_0x4f684d['Messages'])['tail']()['filter']({'secret':![]})[_0xb22f('0x32')](function(_0xf7f2fe){if(_0xf7f2fe[_0xb22f('0xdc')]){var _0x2c3a5f=path['join'](_0x703bd8,_0xf7f2fe[_0xb22f('0xdc')][_0xb22f('0xd9')]);if(fs['existsSync'](_0x2c3a5f)){fs['createReadStream'](_0x2c3a5f)['pipe'](fs[_0xb22f('0x123')](path['join'](_0x1b527c,_0xf7f2fe[_0xb22f('0xdc')]['basename'])));}}return{'date':moment(_0xf7f2fe[_0xb22f('0x81')])[_0xb22f('0xf2')]('YYYY-MM-DD\x20HH:mm:ss')['toString'](),'sender':_0xf7f2fe[_0xb22f('0x116')]===_0xb22f('0xcd')?_0xf7f2fe['User']?_0xf7f2fe[_0xb22f('0x77')][_0xb22f('0x33')]:_0xb22f('0xed'):_0xf7f2fe['Contact'][_0xb22f('0x114')]+(_0xf7f2fe['Contact'][_0xb22f('0x115')]?'\x20'+_0xf7f2fe[_0xb22f('0x6d')]['lastName']:''),'body':_0xf7f2fe[_0xb22f('0xdc')]?_0xf7f2fe['Attachment'][_0xb22f('0xd9')]:_0xf7f2fe['body'],'direction':_0xf7f2fe[_0xb22f('0x116')]==='out'?'A':'C','secret':_0xf7f2fe[_0xb22f('0xf8')],'read':_0xf7f2fe[_0xb22f('0x117')],'attachment':_0xf7f2fe['Attachment']};})[_0xb22f('0x69')]()};return ejs['renderFile'](path['join'](config[_0xb22f('0xe2')],'server',_0xb22f('0x124'),'downloadInteraction.ejs'),{'interaction':_0x1f2c2c})[_0xb22f('0x17')](function(_0x1e033e){var _0x233ac8=path[_0xb22f('0xe1')](_0x1b527c,'transcript-'+_0x4f684d['id']+'-'+_0x25c40d+'.pdf');var _0x4c6e7d={'path':_0x233ac8,'channel':_0xb22f('0x11a'),'interactionId':_0x4f684d['id']};return pdf[_0xb22f('0x125')](_0x1e033e,_0x4c6e7d);})[_0xb22f('0x17')](function(){return new Promise(function(_0xbe146b,_0x5c2fea){zipdir(_0x1b527c,{'saveTo':_0x37f72c},function(_0x2df258,_0x20c18e){if(_0x2df258)return _0x5c2fea(_0x2df258);return _0xbe146b(_0x20c18e);});})[_0xb22f('0x17')](function(){return new BPromise(function(_0x17743d,_0xc2ab4d){rimraf(_0x1b527c,function(_0x5043d9){if(_0x5043d9)_0xc2ab4d(_0x5043d9);return _0x17743d();});});})[_0xb22f('0x17')](function(){return _0x3bfd6a[_0xb22f('0xe5')](_0x37f72c,_0x37719d,function(_0x3f6c47){if(_0x3f6c47){logger['error'](_0xb22f('0x126'),_0x3f6c47);}else{fs[_0xb22f('0x127')](_0x37f72c);}});});});}else{return _0x3bfd6a[_0xb22f('0x20')](0xc8);}})['catch'](handleError(_0x3bfd6a,null));};