b83db9214fc53ee8ad0f399b305111ab49eae1f0
[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 _0xed1f=['create','body','update','describe','customUpdate','abandon','entity\x20not\x20found','Interaction\x20already\x20assigned','disposition','AbandonInteraction','file','basename','mimetype','Attachment','closed','Unauthorized','findOne','attachId','download','join','root','server/files/attachments/','close','mailTranscript','server/files/chat/upload/','format','transcript-%s.txt','now','pathTranscript','ChatMessage','Messages','CmContact','%s%d','agentAlias','System','customer','Visitor','agentIdentifier','alias','agent_fullname','[%s]\x20%s:\x20%s\x0a','secret','appendFileSync','MailAccount','MailServerOut','Smtp','service','host','port','secure','authentication','auth','SendMail','sendMail','\x22%s\x22\x20<%s>','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','omit','getMessages','rawAttributes','$gte','YYYY-MM-DD\x20HH:mm:ss','findAll','getMyMessages','addTags','setTags','ids','spread','color','emit','chatInteractionTags:save','removeTags','unix','server','files','attachments','transcript-%d-%s.zip','Contact','firstName','lastName','direction','ChatWebsite','Account','get','<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>','30px','<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','YYYY-MM-DD','Chat','Owner','N.A.','closedAt','osName','referer','customerIp','tail','existsSync','pipe','createWriteStream','out','views','toFile','transcript-','.pdf','err','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../mysqldb','redis','./chatInteraction.socket','jayson/promise','client','http','Sequelize','ValidationError','request','then','info','ChatInteraction,\x20%s,\x20%s','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','catch','status','count','offset','set','Content-Range','json','apply','reject','save','destroy','sendStatus','stack','name','send','Users','fullname','TagIds','Tags','push','index','map','ChatInteraction','fieldName','type','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','select','field','tools_tags','u.fullname','user_has_chat_interactions','left_join','users','u.id\x20=\x20ui.UserId','from','chat_interactions','cm_contacts','o.id\x20=\x20i.UserId','chat_websites','a.id\x20=\x20i.ChatWebsiteId','chat_messages','me.ChatInteractionId\x20=\x20i.id','chat_interaction_has_tags','it.ChatInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','value','`\x20=\x200','`\x20>\x200','operator','$substring','split','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?','ContactId','buildExpression','text','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','start','end','some','isEmpty','ChatWebsiteId','i.ChatWebsiteId\x20IN\x20?','concat','createdAt','parse','null','\x20=\x20?','read','having','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','forEach','filter','replace','\x27\x27\x27\x27','isNumeric','i.id\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','SELECT','clone','unreadMessages','DESC','resolve','journey','i.ChatWebsiteId\x20IS\x20NOT\x20NULL','user','getChatWebsites','i.ChatWebsiteId\x20IS\x20NULL','sequelize','toString','keyBy','merge','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','ui.ChatInteractionId\x20IN\x20?','groupBy','ChatInteractionId','all','rows','show','params','includeAll','include','options'];(function(_0x74015a,_0x921d69){var _0x245a21=function(_0x1c68c8){while(--_0x1c68c8){_0x74015a['push'](_0x74015a['shift']());}};_0x245a21(++_0x921d69);}(_0xed1f,0x6a));var _0xfed1=function(_0x5c2e3e,_0x26ecd3){_0x5c2e3e=_0x5c2e3e-0x0;var _0x53f64a=_0xed1f[_0x5c2e3e];return _0x53f64a;};'use strict';var pdf=require(_0xfed1('0x0'));var emlformat=require(_0xfed1('0x1'));var rimraf=require(_0xfed1('0x2'));var zipdir=require(_0xfed1('0x3'));var jsonpatch=require(_0xfed1('0x4'));var rp=require(_0xfed1('0x5'));var moment=require(_0xfed1('0x6'));var BPromise=require(_0xfed1('0x7'));var Mustache=require(_0xfed1('0x8'));var util=require(_0xfed1('0x9'));var path=require(_0xfed1('0xa'));var sox=require(_0xfed1('0xb'));var csv=require(_0xfed1('0xc'));var ejs=require(_0xfed1('0xd'));var fs=require('fs');var _=require(_0xfed1('0xe'));var squel=require(_0xfed1('0xf'));var crypto=require(_0xfed1('0x10'));var jsforce=require(_0xfed1('0x11'));var deskjs=require('desk.js');var toCsv=require(_0xfed1('0xc'));var querystring=require(_0xfed1('0x12'));var Papa=require('papaparse');var Redis=require(_0xfed1('0x13'));var authService=require(_0xfed1('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0xfed1('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xfed1('0x16'))(_0xfed1('0x17'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0xfed1('0x18'))['db'];config[_0xfed1('0x19')]=_['defaults'](config[_0xfed1('0x19')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xfed1('0x19')]));require(_0xfed1('0x1a'))['register'](socket);var jayson=require(_0xfed1('0x1b'));var client=jayson['client']['http']({'port':0x232b});var client9004=jayson[_0xfed1('0x1c')][_0xfed1('0x1d')]({'port':0x232c});function checkPasswordPattern(_0x1fbb7a,_0x123c46,_0x582e67){if(_0x582e67){var _0x1a00f6=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x1a00f6['test'](_0x123c46)){return _0x1fbb7a;}else{throw new db[(_0xfed1('0x1e'))][(_0xfed1('0x1f'))]('The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.');}}else{return _0x1fbb7a;}}function respondWithRpcPromise(_0x3d0517,_0xa72a20,_0x5c0d9f,_0x59509b){return new BPromise(function(_0x586ea6,_0x1e5afb){var _0x51f12a=_0x59509b||client;return _0x51f12a[_0xfed1('0x20')](_0x3d0517,_0x5c0d9f)[_0xfed1('0x21')](function(_0x51a860){logger[_0xfed1('0x22')](_0xfed1('0x23'),_0xa72a20,'request\x20sent');logger[_0xfed1('0x24')](_0xfed1('0x25'),_0xa72a20,_0xfed1('0x26'),JSON[_0xfed1('0x27')](_0x51a860));if(_0x51a860['error']){if(_0x51a860[_0xfed1('0x28')]['code']===0x1f4){logger[_0xfed1('0x28')](_0xfed1('0x23'),_0xa72a20,_0x51a860[_0xfed1('0x28')]['message']);return _0x1e5afb(_0x51a860[_0xfed1('0x28')]['message']);}logger[_0xfed1('0x28')](_0xfed1('0x23'),_0xa72a20,_0x51a860[_0xfed1('0x28')][_0xfed1('0x29')]);return _0x586ea6(_0x51a860[_0xfed1('0x28')][_0xfed1('0x29')]);}else{logger['info'](_0xfed1('0x23'),_0xa72a20,_0xfed1('0x26'));_0x586ea6(_0x51a860['result'][_0xfed1('0x29')]);}})[_0xfed1('0x2a')](function(_0x1b871a){logger[_0xfed1('0x28')](_0xfed1('0x23'),_0xa72a20,_0x1b871a);_0x1e5afb(_0x1b871a);});});}function respondWithStatusCode(_0x1761d1,_0x583953){_0x583953=_0x583953||0xcc;return function(_0x4607e9){if(_0x4607e9){return _0x1761d1['sendStatus'](_0x583953);}return _0x1761d1[_0xfed1('0x2b')](_0x583953)['end']();};}function respondWithResult(_0x53b0c9,_0x1cec64){_0x1cec64=_0x1cec64||0xc8;return function(_0x42c950){if(_0x42c950){return _0x53b0c9[_0xfed1('0x2b')](_0x1cec64)['json'](_0x42c950);}};}function respondWithFilteredResult(_0x18e4e7,_0x437a25){return function(_0x13f414){if(_0x13f414){var _0x383955=_0x13f414[_0xfed1('0x2c')],_0x12399f=_0x437a25[_0xfed1('0x2d')],_0x30272b=_0x437a25['offset']+_0x437a25['limit'],_0x5ccc3a;if(_0x30272b>=_0x383955){_0x30272b=_0x383955;_0x5ccc3a=0xc8;}else{_0x5ccc3a=0xce;}_0x18e4e7[_0xfed1('0x2b')](_0x5ccc3a);return _0x18e4e7[_0xfed1('0x2e')](_0xfed1('0x2f'),_0x12399f+'-'+_0x30272b+'/'+_0x383955)[_0xfed1('0x30')](_0x13f414);}return null;};}function patchUpdates(_0x44c24a){return function(_0x57ca74){try{jsonpatch[_0xfed1('0x31')](_0x57ca74,_0x44c24a,!![]);}catch(_0x21b292){return BPromise[_0xfed1('0x32')](_0x21b292);}return _0x57ca74[_0xfed1('0x33')]();};}function saveUpdates(_0xa4c53c,_0x4fde94){return function(_0x1da4b7){if(_0x1da4b7){return _0x1da4b7['update'](_0xa4c53c)[_0xfed1('0x21')](function(_0x2bea11){return _0x2bea11;});}return null;};}function removeEntity(_0x17554f,_0x321c1b){return function(_0x1c0523){if(_0x1c0523){return _0x1c0523[_0xfed1('0x34')]()[_0xfed1('0x21')](function(){_0x17554f[_0xfed1('0x2b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1158c6,_0x46268a){return function(_0x45f106){if(!_0x45f106){_0x1158c6[_0xfed1('0x35')](0x194);}return _0x45f106;};}function handleError(_0x57da75,_0x4b1d7b){_0x4b1d7b=_0x4b1d7b||0x1f4;return function(_0x42d5df){logger[_0xfed1('0x28')](_0x42d5df[_0xfed1('0x36')]);if(_0x42d5df[_0xfed1('0x37')]){delete _0x42d5df[_0xfed1('0x37')];}_0x57da75[_0xfed1('0x2b')](_0x4b1d7b)[_0xfed1('0x38')](_0x42d5df);};}function getInteractionUsers(_0x2f183c,_0x5793a4){return new BPromise(function(_0x52c7b8,_0x23f75f){try{if(_0x5793a4[_0x2f183c['id']]){_0x2f183c[_0xfed1('0x39')]=_['map'](_0x5793a4[_0x2f183c['id']],function(_0x1dae7c){return{'id':_0x1dae7c['id'],'fullname':_0x1dae7c[_0xfed1('0x3a')]};});}}catch(_0x3b0973){_0x23f75f(_0x3b0973);}_0x52c7b8(_0x2f183c);});}function getInteractionTags(_0x421620,_0x2807c){return new BPromise(function(_0x31ffeb,_0xe55b5){try{if(_0x421620[_0xfed1('0x3b')]){_0x421620[_0xfed1('0x3c')]=[];_0x421620['TagIds']['split'](',')['forEach'](function(_0x9e11){_0x421620[_0xfed1('0x3c')][_0xfed1('0x3d')](_0x2807c[_0x9e11]);});}delete _0x421620['TagIds'];}catch(_0x3454e6){_0xe55b5(_0x3454e6);}_0x31ffeb(_0x421620);});}function updateChatInteraction(_0x4a0b04,_0x284215,_0x2cfdca){return new BPromise(function(_0x2f4e0f,_0x4f042a){return getInteractionUsers(_0x4a0b04,_0x2cfdca)[_0xfed1('0x21')](function(_0x6f1647){return getInteractionTags(_0x6f1647,_0x284215);})[_0xfed1('0x21')](function(_0x4b4115){_0x2f4e0f(_0x4b4115);})[_0xfed1('0x2a')](function(_0x545f22){_0x4f042a(_0x545f22);});});}exports[_0xfed1('0x3e')]=function(_0xf1f739,_0x229fc7){var _0x13c087={},_0x1bfbe8={},_0x371047={'count':0x0,'rows':[]};var _0x2d4f82=_[_0xfed1('0x3f')](db[_0xfed1('0x40')]['rawAttributes'],function(_0xbc835e){return{'name':_0xbc835e[_0xfed1('0x41')],'type':_0xbc835e[_0xfed1('0x42')]['key']};});_0x1bfbe8['model']=_[_0xfed1('0x3f')](_0x2d4f82,_0xfed1('0x37'));_0x1bfbe8[_0xfed1('0x43')]=_[_0xfed1('0x44')](_0xf1f739[_0xfed1('0x43')]);_0x1bfbe8[_0xfed1('0x45')]=_[_0xfed1('0x46')](_0x1bfbe8[_0xfed1('0x47')],_0x1bfbe8[_0xfed1('0x43')]);_0x13c087[_0xfed1('0x48')]=_[_0xfed1('0x46')](_0x1bfbe8[_0xfed1('0x47')],qs['fields'](_0xf1f739[_0xfed1('0x43')][_0xfed1('0x49')]));_0x13c087[_0xfed1('0x48')]=_0x13c087[_0xfed1('0x48')][_0xfed1('0x4a')]?_0x13c087[_0xfed1('0x48')]:_0x1bfbe8['model'];if(!_0xf1f739[_0xfed1('0x43')][_0xfed1('0x4b')](_0xfed1('0x4c'))){_0x13c087['limit']=qs[_0xfed1('0x4d')](_0xf1f739[_0xfed1('0x43')][_0xfed1('0x4d')]);_0x13c087[_0xfed1('0x2d')]=qs['offset'](_0xf1f739[_0xfed1('0x43')][_0xfed1('0x2d')]);}_0x13c087[_0xfed1('0x4e')]=qs[_0xfed1('0x4f')](_0xf1f739[_0xfed1('0x43')][_0xfed1('0x4f')]);_0x13c087[_0xfed1('0x50')]=qs[_0xfed1('0x45')](_[_0xfed1('0x51')](_0xf1f739[_0xfed1('0x43')],_0x1bfbe8[_0xfed1('0x45')]));var _0xb3a534=[];var _0x1c6ea8=squel[_0xfed1('0x52')]()[_0xfed1('0x53')]('id')[_0xfed1('0x53')](_0xfed1('0x37'))[_0xfed1('0x53')]('color')['from'](_0xfed1('0x54'));var _0x3b1299=squel[_0xfed1('0x52')]()[_0xfed1('0x53')]('u.id')[_0xfed1('0x53')](_0xfed1('0x55'))['field']('ui.ChatInteractionId')['from'](_0xfed1('0x56'),'ui')[_0xfed1('0x57')](_0xfed1('0x58'),'u',_0xfed1('0x59'));var _0x2665c8=squel[_0xfed1('0x52')]()[_0xfed1('0x5a')](_0xfed1('0x5b'),'i')[_0xfed1('0x57')](_0xfed1('0x5c'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')['left_join'](_0xfed1('0x58'),'o',_0xfed1('0x5d'))[_0xfed1('0x57')](_0xfed1('0x5e'),'a',_0xfed1('0x5f'))[_0xfed1('0x57')](_0xfed1('0x60'),'me',_0xfed1('0x61'))[_0xfed1('0x57')](_0xfed1('0x62'),'it',_0xfed1('0x63'))[_0xfed1('0x57')](_0xfed1('0x54'),'t',_0xfed1('0x64'));var _0x463486=squel[_0xfed1('0x65')]();var _0x1e79f2=[];var _0x54eb53=squel['expr']();var _0x2fe019;if(_0xf1f739[_0xfed1('0x43')][_0xfed1('0x66')]){_0x2fe019=as[_0xfed1('0x67')](_0xf1f739[_0xfed1('0x43')][_0xfed1('0x66')]);var _0x2ccdc3=_0x2fe019[_0xfed1('0x68')];for(var _0x25e568=0x0;_0x25e568<_0x2fe019[_0xfed1('0x69')][_0xfed1('0x4a')];_0x25e568++){var _0x3fdab3=_0x2fe019[_0xfed1('0x69')][_0x25e568];var _0x1a8ebe='i';var _0x59ecc4=_[_0xfed1('0x6a')](_0x2d4f82,['name',_0x3fdab3['field']]);if(!_0x59ecc4){switch(_0x3fdab3[_0xfed1('0x53')]){case'unreadMessages':if(_0x3fdab3[_0xfed1('0x6b')]==0x1){_0x2665c8['having']('`'+_0x3fdab3[_0xfed1('0x53')]+_0xfed1('0x6c'));}else{_0x2665c8['having']('`'+_0x3fdab3[_0xfed1('0x53')]+_0xfed1('0x6d'));}break;case'Contact':if(_0x3fdab3[_0xfed1('0x6e')]===_0xfed1('0x6f')){if(_0x3fdab3[_0xfed1('0x6b')][_0xfed1('0x70')]('\x20')['length']>0x1){_0x463486[_0x2ccdc3](_0xfed1('0x71'),qs[_0xfed1('0x72')](_0x3fdab3[_0xfed1('0x6b')]),null);}else{var _0x3b9c51='%'+_0x3fdab3[_0xfed1('0x6b')]+'%';_0x463486[_0x2ccdc3](_0xfed1('0x73'),_0x3b9c51,_0x3b9c51,_0x3b9c51);}}else{_0x59ecc4=_[_0xfed1('0x6a')](_0x2d4f82,[_0xfed1('0x37'),'ContactId']);_0x3fdab3[_0xfed1('0x53')]=_0xfed1('0x74');_0x440e40=as[_0xfed1('0x75')](_0x1a8ebe,_0x59ecc4[_0xfed1('0x42')],_0x3fdab3);_0x463486[_0x2ccdc3](_0x440e40[_0xfed1('0x76')],_0x440e40[_0xfed1('0x6b')]['start'],_0x440e40['value']['end']);}break;case _0xfed1('0x77'):var _0x364fbd=_0x3fdab3[_0xfed1('0x6b')][_0xfed1('0x70')](',')['map'](function(_0x1910e5){return Number(_0x1910e5);});_0x364fbd['forEach'](function(_0x3747cd){_0x54eb53['or'](_0xfed1('0x78'),'%,'+_0x3747cd+',%');});_0x1e79f2=_[_0xfed1('0x79')](_0x1e79f2,_0x364fbd);break;case _0xfed1('0x7a'):if(_0x3fdab3[_0xfed1('0x6e')]==='$substring'){_0x463486[_0x2ccdc3](_0xfed1('0x7b'),'%'+_0x3fdab3[_0xfed1('0x6b')]+'%',null);}else{_0x59ecc4=_[_0xfed1('0x6a')](_0x2d4f82,['name',_0xfed1('0x7c')]);_0x3fdab3[_0xfed1('0x53')]=_0xfed1('0x7c');_0x440e40=as[_0xfed1('0x75')](_0x1a8ebe,_0x59ecc4['type'],_0x3fdab3);_0x463486[_0x2ccdc3](_0x440e40[_0xfed1('0x76')],_0x440e40['value'][_0xfed1('0x7d')],_0x440e40[_0xfed1('0x6b')]['end']);}break;case'body':_0x440e40=as[_0xfed1('0x75')]('me',null,_0x3fdab3);_0x463486[_0x2ccdc3](_0x440e40[_0xfed1('0x76')],_0x440e40[_0xfed1('0x6b')][_0xfed1('0x7d')],_0x440e40['value'][_0xfed1('0x7e')]);break;}}else{var _0x440e40=as[_0xfed1('0x75')](_0x1a8ebe,_0x59ecc4[_0xfed1('0x42')],_0x3fdab3);_0x463486[_0x2ccdc3](_0x440e40[_0xfed1('0x76')],_0x440e40[_0xfed1('0x6b')]['start'],_0x440e40[_0xfed1('0x6b')][_0xfed1('0x7e')]);}}}else{var _0x5ceedd=_(_0xf1f739[_0xfed1('0x43')])[_0xfed1('0x44')]()[_0xfed1('0x3f')](function(_0x278d1e){return _[_0xfed1('0x7f')](_0x2d4f82,[_0xfed1('0x37'),_0x278d1e])?_0x278d1e:undefined;})['compact']()['value']();if(!_[_0xfed1('0x80')](_0x5ceedd)){_0x5ceedd['forEach'](function(_0x3a914b){if(_0x3a914b===_0xfed1('0x81')){_0x2665c8[_0xfed1('0x50')](_0xfed1('0x82'),[][_0xfed1('0x83')](_0xf1f739[_0xfed1('0x43')][_0x3a914b]));}else if(_0x3a914b===_0xfed1('0x84')){var _0xdb6875=JSON[_0xfed1('0x85')](_0xf1f739[_0xfed1('0x43')][_0x3a914b])['$gte'];var _0x20d749=JSON[_0xfed1('0x85')](_0xf1f739['query'][_0x3a914b])['$lte'];_0x2665c8[_0xfed1('0x50')]('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0xdb6875,_0x20d749);}else{if(_0xf1f739[_0xfed1('0x43')][_0x3a914b]===_0xfed1('0x86')){_0x2665c8[_0xfed1('0x50')]('i.'+_0x3a914b+'\x20IS\x20NULL');}else{_0x2665c8[_0xfed1('0x50')]('i.'+_0x3a914b+_0xfed1('0x87'),_0xf1f739[_0xfed1('0x43')][_0x3a914b]);}}});}if(_0xf1f739[_0xfed1('0x43')][_0xfed1('0x88')]){if(_0xf1f739['query'][_0xfed1('0x88')]==0x1){_0x2665c8[_0xfed1('0x89')](_0xfed1('0x8a'));}else{_0x2665c8[_0xfed1('0x89')](_0xfed1('0x8b'));}}if(_0xf1f739['query'][_0xfed1('0x8c')]){_0x1e79f2=_[_0xfed1('0x8d')](_0xf1f739[_0xfed1('0x43')][_0xfed1('0x8c')])?_0xf1f739[_0xfed1('0x43')][_0xfed1('0x8c')]:new Array(_0xf1f739[_0xfed1('0x43')][_0xfed1('0x8c')]);_0x1e79f2[_0xfed1('0x8e')](function(_0x2171f3){_0x54eb53['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x2171f3+',%');});}if(_0xf1f739[_0xfed1('0x43')][_0xfed1('0x8f')]){var _0x248bae=_0xf1f739[_0xfed1('0x43')][_0xfed1('0x8f')]['replace']('\x5c','\x5c\x5c')[_0xfed1('0x90')]('\x27\x27',_0xfed1('0x91'));if(qs[_0xfed1('0x92')](_0x248bae)){_0x463486['or'](_0xfed1('0x93'),_0x248bae+'%');}else{_0x463486['or'](_0xfed1('0x94'),qs[_0xfed1('0x72')](_0x248bae))['or'](_0xfed1('0x95'),_0x248bae+'%');}}}_0x2665c8[_0xfed1('0x50')](_0x463486);_0x2665c8[_0xfed1('0x96')]('i.id');var _0x5188f8={'type':db[_0xfed1('0x1e')]['QueryTypes'][_0xfed1('0x97')],'raw':!![]};var _0x3ab92e=_0x2665c8[_0xfed1('0x98')]();_0x3ab92e['field']('i.id');_0x3ab92e[_0xfed1('0x53')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0xfed1('0x99'));if(_0x13c087['order']){_0x13c087[_0xfed1('0x4e')][_0xfed1('0x8e')](function(_0x112ed5){_0x2665c8[_0xfed1('0x4e')]('i.'+_0x112ed5[0x0],_0x112ed5[0x1]===_0xfed1('0x9a')?![]:!![]);});}if(!_['isEmpty'](_0x1e79f2)){_0x2665c8[_0xfed1('0x89')](_0x54eb53);_0x3ab92e[_0xfed1('0x50')]('t.id\x20IN\x20?',_0x1e79f2);}BPromise[_0xfed1('0x9b')]()[_0xfed1('0x21')](function(){if(!_0x2fe019){if(_0xf1f739['query'][_0xfed1('0x81')]||_0xf1f739[_0xfed1('0x43')][_0xfed1('0x9c')])return;_0x3ab92e['where'](_0xfed1('0x9d'));_0x2665c8[_0xfed1('0x50')]('i.ChatWebsiteId\x20IS\x20NOT\x20NULL');return;}return _0xf1f739[_0xfed1('0x9e')][_0xfed1('0x9f')]({'attributes':['id'],'raw':!![]})[_0xfed1('0x21')](function(_0x4ea8bd){if(_[_0xfed1('0x80')](_0x4ea8bd)){_0x3ab92e[_0xfed1('0x50')]('i.ChatWebsiteId\x20IS\x20NULL');_0x2665c8['where'](_0xfed1('0xa0'));}else{_0x3ab92e[_0xfed1('0x50')](_0xfed1('0x82'),_[_0xfed1('0x3f')](_0x4ea8bd,'id'));_0x2665c8[_0xfed1('0x50')](_0xfed1('0x82'),_[_0xfed1('0x3f')](_0x4ea8bd,'id'));}});})[_0xfed1('0x21')](function(){db[_0xfed1('0xa1')][_0xfed1('0x43')](_0x3ab92e[_0xfed1('0xa2')](),_0x5188f8)[_0xfed1('0x21')](function(_0x4b4099){_0x371047[_0xfed1('0x2c')]=_0x4b4099[_0xfed1('0x4a')];if(_0x371047['count']===0x0)return[];return db[_0xfed1('0xa1')][_0xfed1('0x43')](_0x1c6ea8['toString'](),_0x5188f8)[_0xfed1('0x21')](function(_0x408ee0){_0xb3a534=_[_0xfed1('0xa3')](_0x408ee0,'id');_0x5188f8=_[_0xfed1('0xa4')](_0x5188f8,{'model':db['ChatInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0xf1f739[_0xfed1('0x43')][_0xfed1('0x49')]){_0x13c087[_0xfed1('0x48')][_0xfed1('0x8e')](function(_0x1ecef6){_0x2665c8[_0xfed1('0x53')]('i.'+_0x1ecef6);});}else{_0x2665c8[_0xfed1('0x53')](_0xfed1('0xa5'),'unreadMessages');_0x2665c8[_0xfed1('0x53')](_0xfed1('0xa6'),_0xfed1('0xa7'));_0x2665c8['field'](_0xfed1('0xa8'),_0xfed1('0xa9'));_0x2665c8[_0xfed1('0x53')]('i.*');_0x2665c8['field'](_0xfed1('0xaa'),_0xfed1('0xab'));_0x2665c8[_0xfed1('0x53')](_0xfed1('0xac'),_0xfed1('0xad'));_0x2665c8[_0xfed1('0x53')](_0xfed1('0xae'),_0xfed1('0xaf'));_0x2665c8[_0xfed1('0x53')](_0xfed1('0xb0'),_0xfed1('0xb1'));_0x2665c8[_0xfed1('0x53')](_0xfed1('0xb2'),_0xfed1('0xb3'));_0x2665c8[_0xfed1('0x53')](_0xfed1('0xb4'),_0xfed1('0xb5'));_0x2665c8[_0xfed1('0x53')](_0xfed1('0xb6'),_0xfed1('0xb7'));_0x2665c8['field'](_0xfed1('0xb8'),_0xfed1('0xb9'));_0x2665c8[_0xfed1('0x53')]('GROUP_CONCAT(DISTINCT\x20t.id)',_0xfed1('0x3b'));}_0x2665c8[_0xfed1('0x4d')](_0x13c087[_0xfed1('0x4d')]);_0x2665c8[_0xfed1('0x2d')](_0x13c087[_0xfed1('0x2d')]);return db[_0xfed1('0xa1')][_0xfed1('0x43')](_0x2665c8['toString'](),_0x5188f8);})['then'](function(_0x1ff56a){_0x3b1299[_0xfed1('0x50')](_0xfed1('0xba'),_['map'](_0x1ff56a,'id'));return db[_0xfed1('0xa1')][_0xfed1('0x43')](_0x3b1299[_0xfed1('0xa2')](),_0x5188f8)['then'](function(_0x313261){var _0x1021a5=_[_0xfed1('0xbb')](_0x313261,_0xfed1('0xbc'));var _0x3b5381=[];_0x1ff56a['forEach'](function(_0x50d44a){_0x3b5381[_0xfed1('0x3d')](updateChatInteraction(_0x50d44a,_0xb3a534,_0x1021a5));});return BPromise[_0xfed1('0xbd')](_0x3b5381);});});})['then'](function(_0x4fdebc){_0x371047[_0xfed1('0xbe')]=_0x4fdebc;return _0x371047;})[_0xfed1('0x21')](respondWithFilteredResult(_0x229fc7,_0x13c087));})[_0xfed1('0x2a')](handleError(_0x229fc7,null));};exports[_0xfed1('0xbf')]=function(_0x665e4,_0x3d9838){var _0x523f67={'raw':![],'where':{'id':_0x665e4[_0xfed1('0xc0')]['id']}},_0x16276e={};_0x16276e[_0xfed1('0x47')]=_[_0xfed1('0x44')](db[_0xfed1('0x40')]['rawAttributes']);_0x16276e[_0xfed1('0x43')]=_['keys'](_0x665e4[_0xfed1('0x43')]);_0x16276e['filters']=_['intersection'](_0x16276e['model'],_0x16276e['query']);_0x523f67[_0xfed1('0x48')]=_[_0xfed1('0x46')](_0x16276e[_0xfed1('0x47')],qs['fields'](_0x665e4[_0xfed1('0x43')][_0xfed1('0x49')]));_0x523f67[_0xfed1('0x48')]=_0x523f67[_0xfed1('0x48')][_0xfed1('0x4a')]?_0x523f67[_0xfed1('0x48')]:_0x16276e['model'];if(_0x665e4[_0xfed1('0x43')][_0xfed1('0xc1')]){_0x523f67[_0xfed1('0xc2')]=[{'all':!![]}];}_0x523f67=_[_0xfed1('0xa4')]({},_0x523f67,_0x665e4[_0xfed1('0xc3')]);return db[_0xfed1('0x40')][_0xfed1('0x6a')](_0x523f67)['then'](handleEntityNotFound(_0x3d9838,null))[_0xfed1('0x21')](respondWithResult(_0x3d9838,null))[_0xfed1('0x2a')](handleError(_0x3d9838,null));};exports[_0xfed1('0xc4')]=function(_0x3bd852,_0x313843){return db['ChatInteraction'][_0xfed1('0xc4')](_0x3bd852[_0xfed1('0xc5')],{})[_0xfed1('0x21')](respondWithResult(_0x313843,0xc9))[_0xfed1('0x2a')](handleError(_0x313843,null));};exports[_0xfed1('0xc6')]=function(_0x4f4682,_0x1c63c7){if(_0x4f4682[_0xfed1('0xc5')]['id']){delete _0x4f4682['body']['id'];}return db[_0xfed1('0x40')][_0xfed1('0x6a')]({'where':{'id':_0x4f4682[_0xfed1('0xc0')]['id']}})[_0xfed1('0x21')](handleEntityNotFound(_0x1c63c7,null))[_0xfed1('0x21')](saveUpdates(_0x4f4682['body'],null))[_0xfed1('0x21')](respondWithResult(_0x1c63c7,null))[_0xfed1('0x2a')](handleError(_0x1c63c7,null));};exports[_0xfed1('0x34')]=function(_0xc88f81,_0x1809cc){return db[_0xfed1('0x40')][_0xfed1('0x6a')]({'where':{'id':_0xc88f81[_0xfed1('0xc0')]['id']}})['then'](handleEntityNotFound(_0x1809cc,null))[_0xfed1('0x21')](removeEntity(_0x1809cc,null))[_0xfed1('0x2a')](handleError(_0x1809cc,null));};exports[_0xfed1('0xc7')]=function(_0x4f163c,_0x547acc){return db[_0xfed1('0x40')][_0xfed1('0xc7')]()[_0xfed1('0x21')](respondWithResult(_0x547acc,null))[_0xfed1('0x2a')](handleError(_0x547acc,null));};exports[_0xfed1('0xc8')]=function(_0x56ba22,_0x2eaed8){if(_0x56ba22[_0xfed1('0xc5')]['id']){delete _0x56ba22[_0xfed1('0xc5')]['id'];}return db[_0xfed1('0x40')][_0xfed1('0x6a')]({'where':{'id':_0x56ba22[_0xfed1('0xc0')]['id']}})['then'](handleEntityNotFound(_0x2eaed8,null))[_0xfed1('0x21')](saveUpdates(_0x56ba22[_0xfed1('0xc5')],null))['then'](respondWithResult(_0x2eaed8,null))[_0xfed1('0x2a')](handleError(_0x2eaed8,null));};exports[_0xfed1('0xc9')]=function(_0x1f17d6,_0x3bc2db,_0x4c77d2){if(_0x1f17d6[_0xfed1('0xc5')]['id']){delete _0x1f17d6[_0xfed1('0xc5')]['id'];}return db[_0xfed1('0x40')][_0xfed1('0x6a')]({'where':{'id':_0x1f17d6[_0xfed1('0xc0')]['id']}})[_0xfed1('0x21')](function(_0x212721){if(!_0x212721){logger['error']('abandonInteraction,\x20%s,\x20%s,\x20%s',_0xfed1('0xc9'),0x194,_0xfed1('0xca'));_0x3bc2db[_0xfed1('0x35')](0x194);}else{if(_0x212721['UserId']){throw new db[(_0xfed1('0x1e'))]['ValidationError'](_0xfed1('0xcb'));}}return _0x212721;})[_0xfed1('0x21')](function(_0x182185){if(_0x182185){return _0x182185[_0xfed1('0xc6')]({'closed':_0x1f17d6[_0xfed1('0xc5')]['closed'],'disposition':_0x1f17d6[_0xfed1('0xc5')][_0xfed1('0xcc')]})[_0xfed1('0x21')](function(_0x433805){return _0x433805;});}})[_0xfed1('0x21')](function(_0x29ae92){return respondWithRpcPromise(_0xfed1('0xcd'),'abandon',_0x1f17d6[_0xfed1('0xc5')],client9004);})['then'](respondWithResult(_0x3bc2db,null))[_0xfed1('0x2a')](handleError(_0x3bc2db,null));};exports['attachmentUpload']=function(_0x1df565,_0x485aec,_0x407c73){_0x1df565[_0xfed1('0xc5')][_0xfed1('0x37')]=_0x1df565[_0xfed1('0xce')]['originalname'];_0x1df565[_0xfed1('0xc5')][_0xfed1('0xcf')]=_0x1df565['file']['filename'];_0x1df565[_0xfed1('0xc5')][_0xfed1('0x42')]=_0x1df565['file'][_0xfed1('0xd0')];return db[_0xfed1('0xd1')][_0xfed1('0xc4')](_0x1df565[_0xfed1('0xc5')])[_0xfed1('0x21')](respondWithResult(_0x485aec,0xc9))[_0xfed1('0x2a')](handleError(_0x485aec,null));};exports['attachmentDownload']=function(_0x3142a3,_0x24f814,_0x5888df){return db[_0xfed1('0x40')]['findOne']({'where':{'id':_0x3142a3[_0xfed1('0xc0')]['id']},'raw':!![]})[_0xfed1('0x21')](handleEntityNotFound(_0x24f814,null))[_0xfed1('0x21')](function(_0x2b6645){if(_0x2b6645){if(_0x2b6645[_0xfed1('0xd2')]){return _0x24f814[_0xfed1('0x2b')](0x193)[_0xfed1('0x30')]({'status':0x193,'message':_0xfed1('0xd3')});}return db[_0xfed1('0xd1')][_0xfed1('0xd4')]({'where':{'id':_0x3142a3[_0xfed1('0x43')][_0xfed1('0xd5')]},'raw':!![]})['then'](handleEntityNotFound(_0x24f814,null));}})[_0xfed1('0x21')](function(_0x15cb1c){if(_0x15cb1c){return _0x24f814[_0xfed1('0xd6')](path[_0xfed1('0xd7')](config[_0xfed1('0xd8')],_0xfed1('0xd9'),_0x15cb1c[_0xfed1('0xcf')]));}})['catch'](handleError(_0x24f814,null));};exports[_0xfed1('0xda')]=function(_0x140735,_0x27f448){var _0x28c1c8=null;var _0x476495=null;var _0x1c63a4=null;var _0x4993dd=null;if(_0x140735[_0xfed1('0xc5')]['id']){delete _0x140735['body']['id'];}if(_0x140735[_0xfed1('0xc5')][_0xfed1('0xdb')]){_0x4993dd=path[_0xfed1('0xd7')](config[_0xfed1('0xd8')],_0xfed1('0xdc'),util[_0xfed1('0xdd')](_0xfed1('0xde'),Date[_0xfed1('0xdf')]()));_0x140735[_0xfed1('0xc5')][_0xfed1('0xe0')]=_0x4993dd;}return db[_0xfed1('0x40')][_0xfed1('0x6a')]({'where':{'id':_0x140735['params']['id']},'include':[{'model':db[_0xfed1('0xe1')],'as':_0xfed1('0xe2'),'include':[{'model':db[_0xfed1('0x7a')],'as':'User'}]}]})[_0xfed1('0x21')](handleEntityNotFound(_0x27f448,null))['then'](saveUpdates(_0x140735[_0xfed1('0xc5')],null))[_0xfed1('0x21')](function(_0x426927){if(_0x426927){_0x28c1c8=_0x426927;return db['ChatWebsite'][_0xfed1('0x6a')]({'where':{'id':_0x28c1c8[_0xfed1('0x81')]}});}})[_0xfed1('0x21')](function(_0x11966c){if(_0x11966c){_0x1c63a4=_0x11966c;return db[_0xfed1('0xe3')][_0xfed1('0x6a')]({'where':{'id':_0x28c1c8[_0xfed1('0x74')]}});}})[_0xfed1('0x21')](function(_0x3980dd){if(_0x3980dd){_0x476495=_0x3980dd;if(_0x4993dd){var _0x23712d=null;for(var _0x46ec82=0x1;_0x46ec82<_0x28c1c8[_0xfed1('0xe2')]['length'];++_0x46ec82){_0x23712d=_0x28c1c8[_0xfed1('0xe2')][_0x46ec82];var _0x283d69=_0x23712d[_0xfed1('0x7c')]?util[_0xfed1('0xdd')](_0xfed1('0xe4'),_0x1c63a4[_0xfed1('0xe5')],_0x23712d[_0xfed1('0x7c')]):_0xfed1('0xe6');var _0x3b6ced=_0x140735[_0xfed1('0xc5')][_0xfed1('0xe7')]||util['format'](_0xfed1('0xe4'),_0xfed1('0xe8'),_0x23712d[_0xfed1('0x74')]);switch(_0x1c63a4[_0xfed1('0xe9')]){case'website_alias':_0x283d69=_0x23712d[_0xfed1('0x7c')]?util['format'](_0xfed1('0xe4'),_0x1c63a4['agentAlias'],_0x23712d[_0xfed1('0x7c')]):_0xfed1('0xe6');break;case'agent_alias':_0x283d69=_0x23712d[_0xfed1('0x7c')]?_0x23712d['User'][_0xfed1('0xea')]||_0x23712d[_0xfed1('0x7a')][_0xfed1('0x3a')]:_0xfed1('0xe6');break;case _0xfed1('0xeb'):_0x283d69=_0x23712d[_0xfed1('0x7c')]?_0x23712d[_0xfed1('0x7a')][_0xfed1('0x3a')]:_0xfed1('0xe6');break;default:_0x283d69=_0x23712d['UserId']?util[_0xfed1('0xdd')](_0xfed1('0xe4'),_0x1c63a4['agentAlias'],_0x23712d[_0xfed1('0x7c')]):_0xfed1('0xe6');}var _0x2f09bf=util[_0xfed1('0xdd')](_0xfed1('0xec'),moment(_0x23712d[_0xfed1('0x84')])['format']('MM/DD/YYYY\x20HH:mm:ss'),_0x23712d['direction']==='in'?_0x3b6ced:_0x283d69,_0x23712d[_0xfed1('0xc5')]);if(!_0x23712d[_0xfed1('0xed')]){fs[_0xfed1('0xee')](_0x4993dd,_0x2f09bf);}}return db[_0xfed1('0xef')][_0xfed1('0xd4')]({'where':{'service':!![]},'include':[{'model':db[_0xfed1('0xf0')],'as':_0xfed1('0xf1'),'raw':!![]}]});}}})['then'](function(_0x1bf70b){if(_0x1bf70b&&_0x1bf70b[_0xfed1('0xf1')]&&_0x140735['body']){var _0x5be472={'tls':{'rejectUnauthorized':![]}};if(_0x1bf70b[_0xfed1('0xf1')][_0xfed1('0xf2')]){_0x5be472[_0xfed1('0xf2')]=_0x1bf70b[_0xfed1('0xf1')][_0xfed1('0xf2')];}else{_0x5be472[_0xfed1('0xf3')]=_0x1bf70b[_0xfed1('0xf1')]['host'];_0x5be472[_0xfed1('0xf4')]=_0x1bf70b[_0xfed1('0xf1')][_0xfed1('0xf4')];_0x5be472[_0xfed1('0xf5')]=_0x1bf70b['Smtp'][_0xfed1('0xf5')];}if(_0x1bf70b[_0xfed1('0xf1')][_0xfed1('0xf6')]){_0x5be472[_0xfed1('0xf7')]={'user':_0x1bf70b[_0xfed1('0xf1')][_0xfed1('0x9e')],'pass':_0x1bf70b[_0xfed1('0xf1')]['pass']};}return respondWithRpcPromise(_0xfed1('0xf8'),_0xfed1('0xf9'),{'account':_0x5be472,'message':{'from':util[_0xfed1('0xdd')](_0xfed1('0xfa'),_0x1bf70b[_0xfed1('0x37')],_0x1bf70b['email']||_0x1bf70b[_0xfed1('0xf1')][_0xfed1('0x9e')]),'to':_0x140735['body'][_0xfed1('0xdb')],'subject':'Mail\x20Transcript','text':util[_0xfed1('0xdd')](_0xfed1('0xfb'),_0x140735[_0xfed1('0xc5')][_0xfed1('0xdb')]),'attachments':[{'path':_0x4993dd}]}})['then'](function(){return _0x28c1c8;})[_0xfed1('0x2a')](function(_0x83add8){console[_0xfed1('0x28')](_0x83add8);});}else{return _0x28c1c8;}})[_0xfed1('0x21')](respondWithStatusCode(_0x27f448,0xc8))[_0xfed1('0x2a')](handleError(_0x27f448,null));};exports['addMessage']=function(_0x1eaf25,_0x1971dd,_0x1a00b9){return db[_0xfed1('0xe1')][_0xfed1('0x6a')]({'where':{'id':_0x1eaf25[_0xfed1('0xc0')]['id']}})['then'](handleEntityNotFound(_0x1971dd,null))[_0xfed1('0x21')](function(_0x150457){if(_0x150457){return _0x150457[_0xfed1('0xfc')](_0x1eaf25['body']['ids'],_[_0xfed1('0xfd')](_0x1eaf25['body'],['ids','id'])||{});}})[_0xfed1('0x21')](respondWithResult(_0x1971dd,null))[_0xfed1('0x2a')](handleError(_0x1971dd,null));};exports[_0xfed1('0xfe')]=function(_0x12fd76,_0x43ed77,_0x4fdc5a){var _0x25ebdd={'raw':![],'where':{}};var _0x51de2a={};var _0x2f63d0={'count':0x0,'rows':[]};return db[_0xfed1('0x40')][_0xfed1('0xd4')]({'where':{'id':_0x12fd76[_0xfed1('0xc0')]['id']}})[_0xfed1('0x21')](handleEntityNotFound(_0x43ed77,null))[_0xfed1('0x21')](function(_0x28e89b){if(_0x28e89b){_0x51de2a[_0xfed1('0x47')]=_[_0xfed1('0x44')](db[_0xfed1('0xe1')][_0xfed1('0xff')]);_0x51de2a[_0xfed1('0x43')]=_[_0xfed1('0x44')](_0x12fd76[_0xfed1('0x43')]);_0x51de2a[_0xfed1('0x45')]=_[_0xfed1('0x46')](_0x51de2a[_0xfed1('0x47')],_0x51de2a['query']);_0x25ebdd[_0xfed1('0x48')]=_['intersection'](_0x51de2a['model'],qs[_0xfed1('0x49')](_0x12fd76[_0xfed1('0x43')]['fields']));_0x25ebdd[_0xfed1('0x48')]=_0x25ebdd['attributes']['length']?_0x25ebdd[_0xfed1('0x48')]:_0x51de2a[_0xfed1('0x47')];if(!_0x12fd76[_0xfed1('0x43')]['hasOwnProperty']('nolimit')){_0x25ebdd['limit']=qs[_0xfed1('0x4d')](_0x12fd76[_0xfed1('0x43')][_0xfed1('0x4d')]);_0x25ebdd[_0xfed1('0x2d')]=qs[_0xfed1('0x2d')](_0x12fd76['query']['offset']);}_0x25ebdd[_0xfed1('0x4e')]=qs['sort'](_0x12fd76['query'][_0xfed1('0x4f')]);_0x25ebdd[_0xfed1('0x50')]=qs[_0xfed1('0x45')](_[_0xfed1('0x51')](_0x12fd76['query'],_0x51de2a[_0xfed1('0x45')]));_0x25ebdd[_0xfed1('0x50')][_0xfed1('0xbc')]=_0x28e89b['id'];if(_0x12fd76['query'][_0xfed1('0x8f')]){_0x25ebdd[_0xfed1('0x50')]=_[_0xfed1('0xa4')](_0x25ebdd[_0xfed1('0x50')],{'$or':_[_0xfed1('0x3f')](_0x25ebdd['attributes'],function(_0x17b575){var _0x423b21={};_0x423b21[_0x17b575]={'$like':'%'+_0x12fd76['query'][_0xfed1('0x8f')]+'%'};return _0x423b21;})});}if(_0x12fd76[_0xfed1('0x43')][_0xfed1('0x100')]){var _0x51f785=_0x12fd76[_0xfed1('0x43')][_0xfed1('0x100')][_0xfed1('0x70')](',');var _0xa2838a={};_0xa2838a[_0x51f785[0x0]]={'$gte':moment(_0x51f785[0x1])['format'](_0xfed1('0x101'))};_0x25ebdd[_0xfed1('0x50')]=_[_0xfed1('0xa4')](_0x25ebdd[_0xfed1('0x50')],_0xa2838a);}_0x25ebdd=_[_0xfed1('0xa4')]({},_0x25ebdd,_0x12fd76['options']);return db['ChatMessage'][_0xfed1('0x2c')]({'where':_0x25ebdd['where']})[_0xfed1('0x21')](function(_0x29536){_0x2f63d0[_0xfed1('0x2c')]=_0x29536;if(_0x12fd76['query'][_0xfed1('0xc1')]){_0x25ebdd[_0xfed1('0xc2')]=[{'all':!![]}];}return db[_0xfed1('0xe1')][_0xfed1('0x102')](_0x25ebdd);})[_0xfed1('0x21')](function(_0x527fcc){_0x2f63d0['rows']=_0x527fcc;return _0x2f63d0;});}})['then'](respondWithFilteredResult(_0x43ed77,_0x25ebdd))['catch'](handleError(_0x43ed77,null));};exports[_0xfed1('0x103')]=function(_0xf62837,_0x4a673f,_0x4193c4){var _0x557c57={'where':{}},_0x9d85ee={},_0x12f5c3={'count':0x0,'rows':[]};return db[_0xfed1('0x40')][_0xfed1('0xd4')]({'where':{'id':_0xf62837[_0xfed1('0xc0')]['id']}})[_0xfed1('0x21')](handleEntityNotFound(_0x4a673f,null))[_0xfed1('0x21')](function(_0x3092bd){if(_0x3092bd){_0x9d85ee[_0xfed1('0x47')]=_[_0xfed1('0x44')](db[_0xfed1('0xe1')][_0xfed1('0xff')]);_0x9d85ee['query']=_[_0xfed1('0x44')](_0xf62837[_0xfed1('0x43')]);_0x9d85ee[_0xfed1('0x45')]=_['intersection'](_0x9d85ee[_0xfed1('0x47')],_0x9d85ee[_0xfed1('0x43')]);_0x557c57[_0xfed1('0x48')]=_['intersection'](_0x9d85ee[_0xfed1('0x47')],qs[_0xfed1('0x49')](_0xf62837['query']['fields']));_0x557c57[_0xfed1('0x48')]=_0x557c57[_0xfed1('0x48')][_0xfed1('0x4a')]?_0x557c57[_0xfed1('0x48')]:_0x9d85ee[_0xfed1('0x47')];if(!_0xf62837[_0xfed1('0x43')][_0xfed1('0x4b')](_0xfed1('0x4c'))){_0x557c57[_0xfed1('0x4d')]=qs[_0xfed1('0x4d')](_0xf62837[_0xfed1('0x43')][_0xfed1('0x4d')]);_0x557c57['offset']=qs[_0xfed1('0x2d')](_0xf62837[_0xfed1('0x43')][_0xfed1('0x2d')]);}_0x557c57[_0xfed1('0x4e')]=qs[_0xfed1('0x4f')](_0xf62837[_0xfed1('0x43')]['sort']);_0x557c57['where']=qs[_0xfed1('0x45')](_[_0xfed1('0x51')](_0xf62837[_0xfed1('0x43')],_0x9d85ee[_0xfed1('0x45')]));_0x557c57[_0xfed1('0x50')]['ChatInteractionId']=_0x3092bd['id'];if(_0xf62837[_0xfed1('0x43')][_0xfed1('0x8f')]){_0x557c57[_0xfed1('0x50')]=_[_0xfed1('0xa4')](_0x557c57[_0xfed1('0x50')],{'$or':_['map'](_0x557c57[_0xfed1('0x48')],function(_0x39e24a){var _0x36ac08={};_0x36ac08[_0x39e24a]={'$like':'%'+_0xf62837[_0xfed1('0x43')][_0xfed1('0x8f')]+'%'};return _0x36ac08;})});}_0x557c57['where'][_0xfed1('0xed')]=![];if(_0xf62837[_0xfed1('0x43')]['id']){_0x557c57[_0xfed1('0x50')]['id']={'$gt':_0xf62837['query']['id']};}_0x557c57=_['merge']({},_0x557c57,_0xf62837[_0xfed1('0xc3')]);return db[_0xfed1('0xe1')]['count']({'where':_0x557c57[_0xfed1('0x50')]})[_0xfed1('0x21')](function(_0x24f66d){_0x12f5c3[_0xfed1('0x2c')]=_0x24f66d;_0x557c57[_0xfed1('0xc2')]=[];if(_0xf62837['query']['includeAgent']){_0x557c57['include']['push']({'model':db[_0xfed1('0x7a')],'as':_0xfed1('0x7a'),'attributes':['id',_0xfed1('0x3a'),_0xfed1('0xea')]});}if(_0xf62837[_0xfed1('0x43')][_0xfed1('0xc1')]){_0x557c57[_0xfed1('0xc2')]=[{'all':!![]}];}return db[_0xfed1('0xe1')][_0xfed1('0x102')](_0x557c57);})[_0xfed1('0x21')](function(_0x2a8a31){_0x12f5c3[_0xfed1('0xbe')]=_0x2a8a31;return _0x12f5c3;});}})[_0xfed1('0x21')](respondWithFilteredResult(_0x4a673f,_0x557c57))[_0xfed1('0x2a')](handleError(_0x4a673f,null));};exports[_0xfed1('0x104')]=function(_0x17993c,_0x196a0d,_0x892347){return db[_0xfed1('0x40')][_0xfed1('0x6a')]({'where':{'id':_0x17993c[_0xfed1('0xc0')]['id']}})[_0xfed1('0x21')](handleEntityNotFound(_0x196a0d,null))[_0xfed1('0x21')](function(_0x2908e5){if(_0x2908e5){return _0x2908e5[_0xfed1('0x105')](_0x17993c[_0xfed1('0xc5')][_0xfed1('0x106')],_[_0xfed1('0xfd')](_0x17993c[_0xfed1('0xc5')],['ids','id'])||{})[_0xfed1('0x107')](function(){return db[_0xfed1('0x77')][_0xfed1('0x102')]({'attributes':['id',_0xfed1('0x37'),_0xfed1('0x108')],'where':{'id':_0x17993c[_0xfed1('0xc5')][_0xfed1('0x106')]}});})[_0xfed1('0x21')](function(_0x198c56){socket[_0xfed1('0x109')](_0xfed1('0x10a'),{'id':Number(_0x17993c[_0xfed1('0xc0')]['id']),'tags':_0x198c56||[]});return{'id':Number(_0x17993c[_0xfed1('0xc0')]['id']),'tags':_0x198c56||[]};});}})['then'](respondWithResult(_0x196a0d,null))[_0xfed1('0x2a')](handleError(_0x196a0d,null));};exports[_0xfed1('0x10b')]=function(_0x480816,_0x5a27dd,_0x55ad9b){return db[_0xfed1('0x40')]['find']({'where':{'id':_0x480816[_0xfed1('0xc0')]['id']}})[_0xfed1('0x21')](handleEntityNotFound(_0x5a27dd,null))[_0xfed1('0x21')](function(_0x50807b){if(_0x50807b){return _0x50807b[_0xfed1('0x10b')](_0x480816[_0xfed1('0x43')][_0xfed1('0x106')]);}})['then'](respondWithStatusCode(_0x5a27dd,null))['catch'](handleError(_0x5a27dd,null));};exports[_0xfed1('0xd6')]=function(_0x3d8c97,_0x5b00b8){var _0x524fc3=moment()[_0xfed1('0x10c')]()[_0xfed1('0xa2')]();var _0x3a1cd1=path[_0xfed1('0xd7')](config[_0xfed1('0xd8')],_0xfed1('0x10d'),_0xfed1('0x10e'),'tmp');var _0x1b4477=path[_0xfed1('0xd7')](config['root'],'server','files',_0xfed1('0x10f'));var _0x503ea8=path['join'](_0x3a1cd1,_0x524fc3);var _0x253d58=util[_0xfed1('0xdd')](_0xfed1('0x110'),_0x3d8c97[_0xfed1('0xc0')]['id'],_0x524fc3);var _0x59c2d7=path['join'](_0x3a1cd1,_0x253d58);var _0x63c60e=[];_0x63c60e['push']({'model':db[_0xfed1('0x7a')],'as':'User','attributes':['id','fullname'],'raw':!![]});_0x63c60e[_0xfed1('0x3d')]({'model':db['CmContact'],'as':_0xfed1('0x111'),'attributes':['id',_0xfed1('0x112'),_0xfed1('0x113')],'raw':!![]});if(_0x3d8c97[_0xfed1('0x43')][_0xfed1('0x10f')]){_0x63c60e[_0xfed1('0x3d')]({'model':db['Attachment'],'as':_0xfed1('0xd1'),'raw':!![]});}var _0x3f6ae6=[{'model':db[_0xfed1('0xe1')],'as':_0xfed1('0xe2'),'attributes':['id',_0xfed1('0xc5'),_0xfed1('0x84'),_0xfed1('0x114'),_0xfed1('0xed'),_0xfed1('0x88')],'include':_0x63c60e}];_0x3f6ae6['push']({'model':db[_0xfed1('0x115')],'as':_0xfed1('0x116'),'attributes':['id',_0xfed1('0x37')]});_0x3f6ae6[_0xfed1('0x3d')]({'model':db[_0xfed1('0x7a')],'as':'Owner','attributes':['id','fullname']});return db['ChatInteraction'][_0xfed1('0x6a')]({'where':{'id':_0x3d8c97['params']['id']},'include':_0x3f6ae6})[_0xfed1('0x21')](handleEntityNotFound(_0x5b00b8,null))['then'](function(_0x2fa3e8){if(_0x2fa3e8){var _0x3cb83d=_0x2fa3e8[_0xfed1('0x117')]({'plain':!![]});fs['mkdirSync'](_0x503ea8);var _0x1638c6={'format':'A4','border':'10px','header':{'height':'40px','contents':{'first':_0xfed1('0x118')}},'footer':{'height':_0xfed1('0x119'),'contents':{'default':util['format'](_0xfed1('0x11a'),util[_0xfed1('0xdd')](_0xfed1('0x11b'),'Chat',_0x3cb83d['id']),moment()[_0xfed1('0xdd')](_0xfed1('0x11c'))[_0xfed1('0xa2')]())}}};var _0x2b6324={'channel':_0xfed1('0x11d'),'account':_0x3cb83d[_0xfed1('0x116')]['name'],'agent':_0x3cb83d[_0xfed1('0x11e')]?_0x3cb83d[_0xfed1('0x11e')][_0xfed1('0x3a')]:_0xfed1('0x11f'),'createdAt':moment(_0x3cb83d[_0xfed1('0x84')])[_0xfed1('0xdd')](_0xfed1('0x101'))['toString'](),'closedAt':_0x3cb83d[_0xfed1('0xd2')]?moment(_0x3cb83d[_0xfed1('0x120')])['format'](_0xfed1('0x101'))[_0xfed1('0xa2')]():'','disposition':_0x3cb83d[_0xfed1('0xcc')],'chatInfo':{'browser':_0x3cb83d['browserName'],'os':_0x3cb83d[_0xfed1('0x121')],'referer':_0x3cb83d[_0xfed1('0x122')],'customerIp':_0x3cb83d[_0xfed1('0x123')],'customerPort':_0x3cb83d['customerPort']?_0x3cb83d['customerPort']:'N.A.'},'messages':_(_0x3cb83d[_0xfed1('0xe2')])[_0xfed1('0x124')]()[_0xfed1('0x8f')]({'secret':![]})[_0xfed1('0x3f')](function(_0x2b23aa){if(_0x2b23aa[_0xfed1('0xd1')]){var _0x28d4c3=path[_0xfed1('0xd7')](_0x1b4477,_0x2b23aa[_0xfed1('0xd1')][_0xfed1('0xcf')]);if(fs[_0xfed1('0x125')](_0x28d4c3)){fs['createReadStream'](_0x28d4c3)[_0xfed1('0x126')](fs[_0xfed1('0x127')](path[_0xfed1('0xd7')](_0x503ea8,_0x2b23aa[_0xfed1('0xd1')][_0xfed1('0xcf')])));}}return{'date':moment(_0x2b23aa[_0xfed1('0x84')])['format']('YYYY-MM-DD\x20HH:mm:ss')[_0xfed1('0xa2')](),'sender':_0x2b23aa[_0xfed1('0x114')]===_0xfed1('0x128')?_0x2b23aa[_0xfed1('0x7a')]?_0x2b23aa['User'][_0xfed1('0x3a')]:'System':_0x2b23aa[_0xfed1('0x111')][_0xfed1('0x112')]+(_0x2b23aa[_0xfed1('0x111')][_0xfed1('0x113')]?'\x20'+_0x2b23aa[_0xfed1('0x111')][_0xfed1('0x113')]:''),'body':_0x2b23aa[_0xfed1('0xd1')]?_0x2b23aa[_0xfed1('0xd1')][_0xfed1('0xcf')]:_0x2b23aa[_0xfed1('0xc5')],'direction':_0x2b23aa[_0xfed1('0x114')]===_0xfed1('0x128')?'A':'C','secret':_0x2b23aa[_0xfed1('0xed')],'read':_0x2b23aa[_0xfed1('0x88')],'attachment':_0x2b23aa[_0xfed1('0xd1')]};})['value']()};return ejs['renderFile'](path['join'](config['root'],_0xfed1('0x10d'),_0xfed1('0x129'),'downloadInteraction.html'),{'interaction':_0x2b6324})[_0xfed1('0x21')](function(_0x170a83){return new BPromise(function(_0x39aac7,_0x489f7c){pdf[_0xfed1('0xc4')](_0x170a83,_0x1638c6)[_0xfed1('0x12a')](path[_0xfed1('0xd7')](_0x503ea8,_0xfed1('0x12b')+_0x3cb83d['id']+'-'+_0x524fc3+_0xfed1('0x12c')),function(_0x3be76e,_0x3aad26){if(_0x3be76e)return _0x489f7c(_0x3be76e);_0x39aac7(_0x3aad26);});});})[_0xfed1('0x21')](function(){return new BPromise(function(_0x3f78e3,_0x46c1b8){zipdir(_0x503ea8,{'saveTo':_0x59c2d7},function(_0x5e031b,_0x2943dd){if(_0x5e031b)return _0x46c1b8(_0x5e031b);return _0x3f78e3(_0x2943dd);});})[_0xfed1('0x21')](function(){return new BPromise(function(_0x36d3c5,_0x5eeb1f){rimraf(_0x503ea8,function(_0x586c4c){if(_0x586c4c)_0x5eeb1f(_0x586c4c);return _0x36d3c5();});});})[_0xfed1('0x21')](function(){return _0x5b00b8[_0xfed1('0xd6')](_0x59c2d7,_0x253d58,function(_0x47b811){if(_0x47b811){console['log'](_0xfed1('0x12d'),_0x47b811);}else{fs['unlinkSync'](_0x59c2d7);}});});});}else{return _0x5b00b8[_0xfed1('0x35')](0xc8);}})['catch'](handleError(_0x5b00b8,null));};