Built motion from commit (unavailable).|2.5.21
[motion2.git] / server / api / whatsappInteraction / whatsappInteraction.controller.js
index b51e093..7ff8002 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xb069=['downloadInteraction.html','toFile','log','err','unlinkSync','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','defaults','localhost','socket.io-emitter','redis','./whatsappInteraction.socket','register','sendStatus','status','end','count','offset','limit','set','json','apply','reject','save','update','then','destroy','stack','name','Users','fullname','TagIds','Tags','forEach','index','map','WhatsappInteraction','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','select','field','color','from','tools_tags','u.id','u.fullname','ui.WhatsappInteractionId','user_has_whatsapp_interactions','left_join','users','u.id\x20=\x20ui.UserId','whatsapp_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','whatsapp_messages','me.WhatsappInteractionId\x20=\x20i.id','whatsapp_interaction_has_tags','expr','parseSearch','sqlOperator','conditions','find','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','Contact','operator','split','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','text','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','User','$substring','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','buildExpression','body','compact','isEmpty','WhatsappAccountId','concat','createdAt','$gte','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','filter','replace','isNumeric','i.phone\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','Sequelize','QueryTypes','SELECT','contactName','DESC','t.id\x20IN\x20?','resolve','journey','i.WhatsappAccountId\x20IS\x20NOT\x20NULL','user','role','agent','i.WhatsappAccountId\x20IS\x20NULL','i.WhatsappAccountId\x20IN\x20?','sequelize','toString','merge','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','Account.key','a.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','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','o.fullname','Owner.fullname','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.WhatsappInteractionId\x20IN\x20?','WhatsappInteractionId','push','all','show','includeAll','include','catch','create','params','describe','addMessage','WhatsappMessage','ids','omit','getMessages','findOne','hasOwnProperty','format','YYYY-MM-DD\x20HH:mm:ss','findAll','rows','addTags','setTags','spread','emit','whatsappInteractionTags:save','removeTags','unix','join','root','server','files','tmp','attachments','transcript-%d-%s.zip','lastName','Attachment','Messages','direction','secret','WhatsappAccount','Account','Owner','get','mkdirSync','40px','<div\x20class=\x22header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h5>Interaction\x20Transcript</h5>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>','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>','Whatsapp','YYYY-MM-DD','N.A.','closed','closedAt','disposition','basename','existsSync','createReadStream','System','out','renderFile','views'];(function(_0x561a62,_0x36bcbf){var _0x106b48=function(_0x1d2e6d){while(--_0x1d2e6d){_0x561a62['push'](_0x561a62['shift']());}};_0x106b48(++_0x36bcbf);}(_0xb069,0x1e7));var _0x9b06=function(_0x471d79,_0x1ef782){_0x471d79=_0x471d79-0x0;var _0x103442=_0xb069[_0x471d79];return _0x103442;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x9b06('0x0'));var zipdir=require(_0x9b06('0x1'));var jsonpatch=require(_0x9b06('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x9b06('0x3'));var Mustache=require(_0x9b06('0x4'));var util=require(_0x9b06('0x5'));var path=require(_0x9b06('0x6'));var sox=require('sox');var csv=require(_0x9b06('0x7'));var ejs=require(_0x9b06('0x8'));var fs=require('fs');var _=require(_0x9b06('0x9'));var squel=require('squel');var crypto=require(_0x9b06('0xa'));var jsforce=require(_0x9b06('0xb'));var deskjs=require(_0x9b06('0xc'));var toCsv=require(_0x9b06('0x7'));var querystring=require(_0x9b06('0xd'));var Papa=require(_0x9b06('0xe'));var Redis=require(_0x9b06('0xf'));var authService=require(_0x9b06('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x9b06('0x11'));var hardwareService=require(_0x9b06('0x12'));var logger=require(_0x9b06('0x13'))('api');var utils=require(_0x9b06('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x9b06('0x15'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x9b06('0x16')](config['redis'],{'host':_0x9b06('0x17'),'port':0x18eb});var socket=require(_0x9b06('0x18'))(new Redis(config[_0x9b06('0x19')]));require(_0x9b06('0x1a'))[_0x9b06('0x1b')](socket);function respondWithStatusCode(_0x3b3c20,_0x3d31ae){_0x3d31ae=_0x3d31ae||0xcc;return function(_0xc3e53e){if(_0xc3e53e){return _0x3b3c20[_0x9b06('0x1c')](_0x3d31ae);}return _0x3b3c20[_0x9b06('0x1d')](_0x3d31ae)[_0x9b06('0x1e')]();};}function respondWithResult(_0x167063,_0x18e571){_0x18e571=_0x18e571||0xc8;return function(_0x42a741){if(_0x42a741){return _0x167063[_0x9b06('0x1d')](_0x18e571)['json'](_0x42a741);}};}function respondWithFilteredResult(_0x4ec199,_0x211f5d){return function(_0x358aaa){if(_0x358aaa){var _0x18174f=_0x358aaa[_0x9b06('0x1f')],_0x23a17a=_0x211f5d[_0x9b06('0x20')],_0x5f0dd4=_0x211f5d['offset']+_0x211f5d[_0x9b06('0x21')],_0xf4520e;if(_0x5f0dd4>=_0x18174f){_0x5f0dd4=_0x18174f;_0xf4520e=0xc8;}else{_0xf4520e=0xce;}_0x4ec199['status'](_0xf4520e);return _0x4ec199[_0x9b06('0x22')]('Content-Range',_0x23a17a+'-'+_0x5f0dd4+'/'+_0x18174f)[_0x9b06('0x23')](_0x358aaa);}return null;};}function patchUpdates(_0x38b471){return function(_0x2f4992){try{jsonpatch[_0x9b06('0x24')](_0x2f4992,_0x38b471,!![]);}catch(_0x4ffc32){return BPromise[_0x9b06('0x25')](_0x4ffc32);}return _0x2f4992[_0x9b06('0x26')]();};}function saveUpdates(_0x13774a,_0x12db7c){return function(_0x2d1752){if(_0x2d1752){return _0x2d1752[_0x9b06('0x27')](_0x13774a)[_0x9b06('0x28')](function(_0x4ee8f9){return _0x4ee8f9;});}return null;};}function removeEntity(_0x293175,_0x3dcf3b){return function(_0x133903){if(_0x133903){return _0x133903[_0x9b06('0x29')]()[_0x9b06('0x28')](function(){_0x293175[_0x9b06('0x1d')](0xcc)[_0x9b06('0x1e')]();});}};}function handleEntityNotFound(_0x4a7ff5,_0x13560b){return function(_0x13ddb3){if(!_0x13ddb3){_0x4a7ff5[_0x9b06('0x1c')](0x194);}return _0x13ddb3;};}function handleError(_0x3ee4ef,_0x12f321){_0x12f321=_0x12f321||0x1f4;return function(_0x25ba3f){logger['error'](_0x25ba3f[_0x9b06('0x2a')]);if(_0x25ba3f['name']){delete _0x25ba3f[_0x9b06('0x2b')];}_0x3ee4ef[_0x9b06('0x1d')](_0x12f321)['send'](_0x25ba3f);};}function getInteractionUsers(_0x5e5c17,_0x439c59){return new BPromise(function(_0x1aeca9,_0x47a80f){try{if(_0x439c59[_0x5e5c17['id']]){_0x5e5c17[_0x9b06('0x2c')]=_['map'](_0x439c59[_0x5e5c17['id']],function(_0x581bd3){return{'id':_0x581bd3['id'],'fullname':_0x581bd3[_0x9b06('0x2d')]};});}}catch(_0xea4484){_0x47a80f(_0xea4484);}_0x1aeca9(_0x5e5c17);});}function getInteractionTags(_0x14d510,_0xbb1b39){return new BPromise(function(_0x1ae67c,_0x4fb05a){try{if(_0x14d510[_0x9b06('0x2e')]){_0x14d510[_0x9b06('0x2f')]=[];_0x14d510[_0x9b06('0x2e')]['split'](',')[_0x9b06('0x30')](function(_0x5cc245){_0x14d510[_0x9b06('0x2f')]['push'](_0xbb1b39[_0x5cc245]);});}delete _0x14d510[_0x9b06('0x2e')];}catch(_0x5ea7f0){_0x4fb05a(_0x5ea7f0);}_0x1ae67c(_0x14d510);});}function updateWhatsappInteraction(_0x33fec6,_0x50b8e1,_0x4eca04){return new BPromise(function(_0x2b53a1,_0x32e73f){return getInteractionUsers(_0x33fec6,_0x4eca04)[_0x9b06('0x28')](function(_0x5225be){return getInteractionTags(_0x5225be,_0x50b8e1);})[_0x9b06('0x28')](function(_0x2e1df0){_0x2b53a1(_0x2e1df0);})['catch'](function(_0x38021b){_0x32e73f(_0x38021b);});});}exports[_0x9b06('0x31')]=function(_0x181cd9,_0xe2f520){var _0x1068b0={},_0x32659f={},_0x17790c={'count':0x0,'rows':[]};var _0x29a42c=_[_0x9b06('0x32')](db[_0x9b06('0x33')][_0x9b06('0x34')],function(_0x4f7d23){return{'name':_0x4f7d23[_0x9b06('0x35')],'type':_0x4f7d23[_0x9b06('0x36')][_0x9b06('0x37')]};});_0x32659f[_0x9b06('0x38')]=_['map'](_0x29a42c,'name');_0x32659f['query']=_[_0x9b06('0x39')](_0x181cd9[_0x9b06('0x3a')]);_0x32659f[_0x9b06('0x3b')]=_['intersection'](_0x32659f[_0x9b06('0x38')],_0x32659f['query']);_0x1068b0['attributes']=_[_0x9b06('0x3c')](_0x32659f[_0x9b06('0x38')],qs[_0x9b06('0x3d')](_0x181cd9[_0x9b06('0x3a')][_0x9b06('0x3d')]));_0x1068b0[_0x9b06('0x3e')]=_0x1068b0[_0x9b06('0x3e')][_0x9b06('0x3f')]?_0x1068b0['attributes']:_0x32659f[_0x9b06('0x38')];if(!_0x181cd9[_0x9b06('0x3a')]['hasOwnProperty'](_0x9b06('0x40'))){_0x1068b0['limit']=qs[_0x9b06('0x21')](_0x181cd9[_0x9b06('0x3a')]['limit']);_0x1068b0[_0x9b06('0x20')]=qs['offset'](_0x181cd9[_0x9b06('0x3a')][_0x9b06('0x20')]);}_0x1068b0[_0x9b06('0x41')]=qs[_0x9b06('0x42')](_0x181cd9[_0x9b06('0x3a')][_0x9b06('0x42')]);_0x1068b0[_0x9b06('0x43')]=qs['filters'](_[_0x9b06('0x44')](_0x181cd9[_0x9b06('0x3a')],_0x32659f['filters']),_0x29a42c);var _0x1427a0=[];var _0x1f1f51=squel[_0x9b06('0x45')]()[_0x9b06('0x46')]('id')[_0x9b06('0x46')](_0x9b06('0x2b'))[_0x9b06('0x46')](_0x9b06('0x47'))[_0x9b06('0x48')](_0x9b06('0x49'));var _0x3da1ea=squel['select']()['field'](_0x9b06('0x4a'))[_0x9b06('0x46')](_0x9b06('0x4b'))[_0x9b06('0x46')](_0x9b06('0x4c'))[_0x9b06('0x48')](_0x9b06('0x4d'),'ui')[_0x9b06('0x4e')](_0x9b06('0x4f'),'u',_0x9b06('0x50'));var _0x46ee82=squel['select']()[_0x9b06('0x48')](_0x9b06('0x51'),'i')[_0x9b06('0x4e')](_0x9b06('0x52'),'c',_0x9b06('0x53'))['left_join'](_0x9b06('0x4f'),'o',_0x9b06('0x54'))[_0x9b06('0x4e')]('whatsapp_accounts','a','a.id\x20=\x20i.WhatsappAccountId')[_0x9b06('0x4e')](_0x9b06('0x55'),'me',_0x9b06('0x56'))[_0x9b06('0x4e')](_0x9b06('0x57'),'it','it.WhatsappInteractionId\x20=\x20i.id')[_0x9b06('0x4e')](_0x9b06('0x49'),'t','t.id\x20=\x20it.TagId');var _0x5cefce=squel[_0x9b06('0x58')]();var _0x207021=[];var _0x1c955c=squel[_0x9b06('0x58')]();var _0x1cc94d;if(_0x181cd9[_0x9b06('0x3a')]['search']){_0x1cc94d=as[_0x9b06('0x59')](_0x181cd9['query']['search']);var _0x258cd0=_0x1cc94d[_0x9b06('0x5a')];for(var _0x1104bd=0x0;_0x1104bd<_0x1cc94d[_0x9b06('0x5b')][_0x9b06('0x3f')];_0x1104bd++){var _0x4506f9=_0x1cc94d['conditions'][_0x1104bd];var _0x1f2610='i';var _0x45832a=_[_0x9b06('0x5c')](_0x29a42c,[_0x9b06('0x2b'),_0x4506f9['field']]);if(!_0x45832a){switch(_0x4506f9[_0x9b06('0x46')]){case _0x9b06('0x5d'):if(_0x4506f9[_0x9b06('0x5e')]==0x1){_0x46ee82[_0x9b06('0x5f')]('`'+_0x4506f9[_0x9b06('0x46')]+_0x9b06('0x60'));}else{_0x46ee82[_0x9b06('0x5f')]('`'+_0x4506f9[_0x9b06('0x46')]+_0x9b06('0x61'));}break;case _0x9b06('0x62'):if(_0x4506f9[_0x9b06('0x63')]==='$substring'){if(_0x4506f9['value'][_0x9b06('0x64')]('\x20')['length']>0x1){_0x5cefce[_0x258cd0](_0x9b06('0x65'),qs[_0x9b06('0x66')](_0x4506f9[_0x9b06('0x5e')]),null);}else{var _0x3088b9='%'+_0x4506f9[_0x9b06('0x5e')]+'%';_0x5cefce[_0x258cd0]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x3088b9,_0x3088b9,_0x3088b9);}}else{_0x45832a=_[_0x9b06('0x5c')](_0x29a42c,[_0x9b06('0x2b'),_0x9b06('0x67')]);_0x4506f9[_0x9b06('0x46')]=_0x9b06('0x67');_0x10f90b=as['buildExpression'](_0x1f2610,_0x45832a[_0x9b06('0x36')],_0x4506f9);_0x5cefce[_0x258cd0](_0x10f90b[_0x9b06('0x68')],_0x10f90b['value'][_0x9b06('0x69')],_0x10f90b[_0x9b06('0x5e')][_0x9b06('0x1e')]);}break;case _0x9b06('0x6a'):var _0x1abbb4=_0x4506f9[_0x9b06('0x5e')][_0x9b06('0x64')](',')[_0x9b06('0x32')](function(_0xfee605){return Number(_0xfee605);});_0x1abbb4[_0x9b06('0x30')](function(_0x2590ea){_0x1c955c['or'](_0x9b06('0x6b'),'%,'+_0x2590ea+',%');});_0x207021=_['union'](_0x207021,_0x1abbb4);break;case _0x9b06('0x6c'):if(_0x4506f9[_0x9b06('0x63')]===_0x9b06('0x6d')){_0x5cefce[_0x258cd0](_0x9b06('0x6e'),'%'+_0x4506f9['value']+'%',null);}else{_0x45832a=_[_0x9b06('0x5c')](_0x29a42c,[_0x9b06('0x2b'),'UserId']);_0x4506f9['field']=_0x9b06('0x6f');_0x10f90b=as[_0x9b06('0x70')](_0x1f2610,_0x45832a[_0x9b06('0x36')],_0x4506f9);_0x5cefce[_0x258cd0](_0x10f90b[_0x9b06('0x68')],_0x10f90b[_0x9b06('0x5e')][_0x9b06('0x69')],_0x10f90b['value'][_0x9b06('0x1e')]);}break;case _0x9b06('0x71'):_0x10f90b=as[_0x9b06('0x70')]('me',null,_0x4506f9);_0x5cefce[_0x258cd0](_0x10f90b[_0x9b06('0x68')],_0x10f90b[_0x9b06('0x5e')][_0x9b06('0x69')],_0x10f90b['value'][_0x9b06('0x1e')]);break;}}else{var _0x10f90b=as['buildExpression'](_0x1f2610,_0x45832a[_0x9b06('0x36')],_0x4506f9);_0x5cefce[_0x258cd0](_0x10f90b[_0x9b06('0x68')],_0x10f90b[_0x9b06('0x5e')][_0x9b06('0x69')],_0x10f90b[_0x9b06('0x5e')][_0x9b06('0x1e')]);}}}else{var _0x2ec71a=_(_0x181cd9[_0x9b06('0x3a')])[_0x9b06('0x39')]()['map'](function(_0x1f6af0){return _['some'](_0x29a42c,[_0x9b06('0x2b'),_0x1f6af0])?_0x1f6af0:undefined;})[_0x9b06('0x72')]()[_0x9b06('0x5e')]();if(!_[_0x9b06('0x73')](_0x2ec71a)){_0x2ec71a['forEach'](function(_0x3926b4){if(_0x3926b4===_0x9b06('0x74')){_0x46ee82[_0x9b06('0x43')]('i.WhatsappAccountId\x20IN\x20?',[][_0x9b06('0x75')](_0x181cd9[_0x9b06('0x3a')][_0x3926b4]));}else if(_0x3926b4===_0x9b06('0x76')){var _0x3f88ac=JSON['parse'](_0x181cd9[_0x9b06('0x3a')][_0x3926b4])[_0x9b06('0x77')];var _0x34c689=JSON[_0x9b06('0x78')](_0x181cd9['query'][_0x3926b4])[_0x9b06('0x79')];_0x46ee82[_0x9b06('0x43')](_0x9b06('0x7a'),_0x3f88ac,_0x34c689);}else{if(_0x181cd9[_0x9b06('0x3a')][_0x3926b4]===_0x9b06('0x7b')){_0x46ee82[_0x9b06('0x43')]('i.'+_0x3926b4+_0x9b06('0x7c'));}else{_0x46ee82['where']('i.'+_0x3926b4+_0x9b06('0x7d'),_0x181cd9[_0x9b06('0x3a')][_0x3926b4]);}}});}if(_0x181cd9['query'][_0x9b06('0x7e')]){if(_0x181cd9['query']['read']==0x1){_0x46ee82[_0x9b06('0x5f')](_0x9b06('0x7f'));}else{_0x46ee82[_0x9b06('0x5f')](_0x9b06('0x80'));}}if(_0x181cd9['query'][_0x9b06('0x81')]){_0x207021=_['isArray'](_0x181cd9[_0x9b06('0x3a')]['tag'])?_0x181cd9['query'][_0x9b06('0x81')]:new Array(_0x181cd9[_0x9b06('0x3a')][_0x9b06('0x81')]);_0x207021[_0x9b06('0x30')](function(_0x1a42fb){_0x1c955c['or'](_0x9b06('0x6b'),'%,'+_0x1a42fb+',%');});}if(_0x181cd9[_0x9b06('0x3a')][_0x9b06('0x82')]){var _0x4f59cf=_0x181cd9[_0x9b06('0x3a')][_0x9b06('0x82')][_0x9b06('0x83')]('\x5c','\x5c\x5c')[_0x9b06('0x83')](/'/g,'\x27\x27');if(qs[_0x9b06('0x84')](_0x4f59cf)){_0x5cefce['or']('i.id\x20LIKE\x20?',_0x4f59cf+'%')['or'](_0x9b06('0x85'),_0x4f59cf+'%');}else{_0x5cefce['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x9b06('0x66')](_0x4f59cf))['or'](_0x9b06('0x86'),_0x4f59cf+'%');}}}_0x46ee82['where'](_0x5cefce);_0x46ee82[_0x9b06('0x87')](_0x9b06('0x88'));var _0x826956={'type':db[_0x9b06('0x89')][_0x9b06('0x8a')][_0x9b06('0x8b')],'raw':!![]};var _0x398988=_0x46ee82['clone']();_0x398988[_0x9b06('0x46')](_0x9b06('0x88'));_0x398988[_0x9b06('0x46')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x9b06('0x5d'));if(_0x1068b0[_0x9b06('0x41')]){_0x1068b0['order'][_0x9b06('0x30')](function(_0x2d1558){var _0x2c14e8=_0x2d1558[0x0]===_0x9b06('0x8c')?_0x2d1558[0x0]:'i.'+_0x2d1558[0x0];_0x46ee82[_0x9b06('0x41')](_0x2c14e8,_0x2d1558[0x1]===_0x9b06('0x8d')?![]:!![]);});}if(!_[_0x9b06('0x73')](_0x207021)){_0x46ee82[_0x9b06('0x5f')](_0x1c955c);_0x398988['where'](_0x9b06('0x8e'),_0x207021);}BPromise[_0x9b06('0x8f')]()['then'](function(){if(!_0x1cc94d){if(_0x181cd9[_0x9b06('0x3a')][_0x9b06('0x74')]||_0x181cd9[_0x9b06('0x3a')][_0x9b06('0x90')])return;_0x398988[_0x9b06('0x43')](_0x9b06('0x91'));_0x46ee82[_0x9b06('0x43')]('i.WhatsappAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x181cd9[_0x9b06('0x92')][_0x9b06('0x93')]!==_0x9b06('0x94'))return;return _0x181cd9['user']['getWhatsappAccounts']({'attributes':['id'],'raw':!![]})[_0x9b06('0x28')](function(_0x2053c7){if(_[_0x9b06('0x73')](_0x2053c7)){_0x398988[_0x9b06('0x43')](_0x9b06('0x95'));_0x46ee82[_0x9b06('0x43')](_0x9b06('0x95'));}else{_0x398988[_0x9b06('0x43')]('i.WhatsappAccountId\x20IN\x20?',_[_0x9b06('0x32')](_0x2053c7,'id'));_0x46ee82['where'](_0x9b06('0x96'),_['map'](_0x2053c7,'id'));}});})[_0x9b06('0x28')](function(){if(_0x181cd9[_0x9b06('0x92')]['role']===_0x9b06('0x94')&&!_0x1cc94d&&!_0x181cd9[_0x9b06('0x3a')][_0x9b06('0x74')])return[];return db[_0x9b06('0x97')][_0x9b06('0x3a')](_0x398988[_0x9b06('0x98')](),_0x826956);})[_0x9b06('0x28')](function(_0x518da9){_0x17790c[_0x9b06('0x1f')]=_0x518da9[_0x9b06('0x3f')];if(_0x17790c[_0x9b06('0x1f')]===0x0)return[];return db[_0x9b06('0x97')][_0x9b06('0x3a')](_0x1f1f51[_0x9b06('0x98')](),_0x826956)[_0x9b06('0x28')](function(_0x46d4d7){_0x1427a0=_['keyBy'](_0x46d4d7,'id');_0x826956=_[_0x9b06('0x99')](_0x826956,{'model':db[_0x9b06('0x33')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x181cd9[_0x9b06('0x3a')]['fields']){_0x1068b0[_0x9b06('0x3e')][_0x9b06('0x30')](function(_0x5acb7d){_0x46ee82[_0x9b06('0x46')]('i.'+_0x5acb7d);});}else{_0x46ee82[_0x9b06('0x46')](_0x9b06('0x9a'),'unreadMessages');_0x46ee82[_0x9b06('0x46')]('a.key',_0x9b06('0x9b'));_0x46ee82[_0x9b06('0x46')](_0x9b06('0x9c'),'Account.mandatoryDisposition');_0x46ee82[_0x9b06('0x46')](_0x9b06('0x9d'),_0x9b06('0x8c'));_0x46ee82[_0x9b06('0x46')]('i.*');_0x46ee82[_0x9b06('0x46')](_0x9b06('0x9e'),_0x9b06('0x9f'));_0x46ee82[_0x9b06('0x46')](_0x9b06('0xa0'),_0x9b06('0xa1'));_0x46ee82[_0x9b06('0x46')](_0x9b06('0xa2'),_0x9b06('0xa3'));_0x46ee82[_0x9b06('0x46')](_0x9b06('0xa4'),_0x9b06('0xa5'));_0x46ee82['field'](_0x9b06('0xa6'),_0x9b06('0xa7'));_0x46ee82[_0x9b06('0x46')](_0x9b06('0xa8'),'Contact.fax');_0x46ee82[_0x9b06('0x46')](_0x9b06('0xa9'),_0x9b06('0xaa'));_0x46ee82[_0x9b06('0x46')]('o.internal',_0x9b06('0xab'));_0x46ee82[_0x9b06('0x46')](_0x9b06('0xac'),'TagIds');}if(_0x1068b0[_0x9b06('0x21')])_0x46ee82[_0x9b06('0x21')](_0x1068b0[_0x9b06('0x21')]);if(_0x1068b0[_0x9b06('0x20')])_0x46ee82[_0x9b06('0x20')](_0x1068b0[_0x9b06('0x20')]);return db[_0x9b06('0x97')][_0x9b06('0x3a')](_0x46ee82[_0x9b06('0x98')](),_0x826956);})[_0x9b06('0x28')](function(_0x4a3ce7){_0x3da1ea[_0x9b06('0x43')](_0x9b06('0xad'),_[_0x9b06('0x32')](_0x4a3ce7,'id'));return db['sequelize'][_0x9b06('0x3a')](_0x3da1ea[_0x9b06('0x98')](),_0x826956)[_0x9b06('0x28')](function(_0x34bc67){var _0x41415a=_['groupBy'](_0x34bc67,_0x9b06('0xae'));var _0x56bbfd=[];_0x4a3ce7[_0x9b06('0x30')](function(_0x189c17){_0x56bbfd[_0x9b06('0xaf')](updateWhatsappInteraction(_0x189c17,_0x1427a0,_0x41415a));});return BPromise[_0x9b06('0xb0')](_0x56bbfd);});});})['then'](function(_0x137812){_0x17790c['rows']=_0x137812;return _0x17790c;})[_0x9b06('0x28')](respondWithFilteredResult(_0xe2f520,_0x1068b0))['catch'](handleError(_0xe2f520,null));};exports[_0x9b06('0xb1')]=function(_0x51307b,_0x460c9f){var _0x57e53f={'raw':![],'where':{'id':_0x51307b['params']['id']}},_0x4bf55a={};_0x4bf55a[_0x9b06('0x38')]=_['keys'](db[_0x9b06('0x33')]['rawAttributes']);_0x4bf55a[_0x9b06('0x3a')]=_[_0x9b06('0x39')](_0x51307b['query']);_0x4bf55a[_0x9b06('0x3b')]=_[_0x9b06('0x3c')](_0x4bf55a[_0x9b06('0x38')],_0x4bf55a[_0x9b06('0x3a')]);_0x57e53f[_0x9b06('0x3e')]=_[_0x9b06('0x3c')](_0x4bf55a[_0x9b06('0x38')],qs[_0x9b06('0x3d')](_0x51307b[_0x9b06('0x3a')][_0x9b06('0x3d')]));_0x57e53f[_0x9b06('0x3e')]=_0x57e53f['attributes'][_0x9b06('0x3f')]?_0x57e53f['attributes']:_0x4bf55a['model'];if(_0x51307b[_0x9b06('0x3a')][_0x9b06('0xb2')]){_0x57e53f[_0x9b06('0xb3')]=[{'all':!![]}];}_0x57e53f=_[_0x9b06('0x99')]({},_0x57e53f,_0x51307b['options']);return db[_0x9b06('0x33')][_0x9b06('0x5c')](_0x57e53f)[_0x9b06('0x28')](handleEntityNotFound(_0x460c9f,null))[_0x9b06('0x28')](respondWithResult(_0x460c9f,null))[_0x9b06('0xb4')](handleError(_0x460c9f,null));};exports[_0x9b06('0xb5')]=function(_0x40e636,_0x557f1c){return db['WhatsappInteraction'][_0x9b06('0xb5')](_0x40e636[_0x9b06('0x71')],{})[_0x9b06('0x28')](respondWithResult(_0x557f1c,0xc9))[_0x9b06('0xb4')](handleError(_0x557f1c,null));};exports[_0x9b06('0x27')]=function(_0x23fe9c,_0x69e7af){if(_0x23fe9c['body']['id']){delete _0x23fe9c[_0x9b06('0x71')]['id'];}return db['WhatsappInteraction']['find']({'where':{'id':_0x23fe9c[_0x9b06('0xb6')]['id']}})[_0x9b06('0x28')](handleEntityNotFound(_0x69e7af,null))[_0x9b06('0x28')](saveUpdates(_0x23fe9c[_0x9b06('0x71')],null))[_0x9b06('0x28')](respondWithResult(_0x69e7af,null))['catch'](handleError(_0x69e7af,null));};exports[_0x9b06('0x29')]=function(_0x314855,_0x95ae03){return db[_0x9b06('0x33')][_0x9b06('0x5c')]({'where':{'id':_0x314855[_0x9b06('0xb6')]['id']}})[_0x9b06('0x28')](handleEntityNotFound(_0x95ae03,null))['then'](removeEntity(_0x95ae03,null))[_0x9b06('0xb4')](handleError(_0x95ae03,null));};exports['describe']=function(_0x40ea4b,_0x379772){return db[_0x9b06('0x33')][_0x9b06('0xb7')]()[_0x9b06('0x28')](respondWithResult(_0x379772,null))[_0x9b06('0xb4')](handleError(_0x379772,null));};exports[_0x9b06('0xb8')]=function(_0x31c6ab,_0x5b1bbb,_0x285a82){return db[_0x9b06('0xb9')][_0x9b06('0x5c')]({'where':{'id':_0x31c6ab[_0x9b06('0xb6')]['id']}})[_0x9b06('0x28')](handleEntityNotFound(_0x5b1bbb,null))[_0x9b06('0x28')](function(_0x4335fe){if(_0x4335fe){return _0x4335fe[_0x9b06('0xb8')](_0x31c6ab[_0x9b06('0x71')][_0x9b06('0xba')],_[_0x9b06('0xbb')](_0x31c6ab['body'],[_0x9b06('0xba'),'id'])||{});}})[_0x9b06('0x28')](respondWithResult(_0x5b1bbb,null))['catch'](handleError(_0x5b1bbb,null));};exports[_0x9b06('0xbc')]=function(_0x13e849,_0x1f8802,_0x262137){var _0x55b71e={'raw':![],'where':{}};var _0x2d772e={};var _0x502a2f={'count':0x0,'rows':[]};return db['WhatsappInteraction'][_0x9b06('0xbd')]({'where':{'id':_0x13e849[_0x9b06('0xb6')]['id']}})['then'](handleEntityNotFound(_0x1f8802,null))[_0x9b06('0x28')](function(_0x5c829a){if(_0x5c829a){_0x2d772e[_0x9b06('0x38')]=_[_0x9b06('0x39')](db[_0x9b06('0xb9')][_0x9b06('0x34')]);_0x2d772e[_0x9b06('0x3a')]=_[_0x9b06('0x39')](_0x13e849[_0x9b06('0x3a')]);_0x2d772e[_0x9b06('0x3b')]=_[_0x9b06('0x3c')](_0x2d772e[_0x9b06('0x38')],_0x2d772e[_0x9b06('0x3a')]);_0x55b71e[_0x9b06('0x3e')]=_[_0x9b06('0x3c')](_0x2d772e[_0x9b06('0x38')],qs[_0x9b06('0x3d')](_0x13e849[_0x9b06('0x3a')][_0x9b06('0x3d')]));_0x55b71e[_0x9b06('0x3e')]=_0x55b71e['attributes'][_0x9b06('0x3f')]?_0x55b71e[_0x9b06('0x3e')]:_0x2d772e[_0x9b06('0x38')];if(!_0x13e849[_0x9b06('0x3a')][_0x9b06('0xbe')](_0x9b06('0x40'))){_0x55b71e[_0x9b06('0x21')]=qs[_0x9b06('0x21')](_0x13e849[_0x9b06('0x3a')][_0x9b06('0x21')]);_0x55b71e['offset']=qs[_0x9b06('0x20')](_0x13e849[_0x9b06('0x3a')]['offset']);}_0x55b71e[_0x9b06('0x41')]=qs[_0x9b06('0x42')](_0x13e849[_0x9b06('0x3a')][_0x9b06('0x42')]);_0x55b71e['where']=qs[_0x9b06('0x3b')](_[_0x9b06('0x44')](_0x13e849[_0x9b06('0x3a')],_0x2d772e['filters']));_0x55b71e[_0x9b06('0x43')][_0x9b06('0xae')]=_0x5c829a['id'];if(_0x13e849[_0x9b06('0x3a')][_0x9b06('0x82')]){_0x55b71e[_0x9b06('0x43')]=_[_0x9b06('0x99')](_0x55b71e[_0x9b06('0x43')],{'$or':_['map'](_0x55b71e['attributes'],function(_0x1bd884){var _0x58eea5={};_0x58eea5[_0x1bd884]={'$like':'%'+_0x13e849['query']['filter']+'%'};return _0x58eea5;})});}if(_0x13e849[_0x9b06('0x3a')][_0x9b06('0x77')]){var _0x50914b=_0x13e849[_0x9b06('0x3a')][_0x9b06('0x77')][_0x9b06('0x64')](',');var _0x345d22={};_0x345d22[_0x50914b[0x0]]={'$gte':moment(_0x50914b[0x1])[_0x9b06('0xbf')](_0x9b06('0xc0'))};_0x55b71e[_0x9b06('0x43')]=_['merge'](_0x55b71e[_0x9b06('0x43')],_0x345d22);}_0x55b71e=_[_0x9b06('0x99')]({},_0x55b71e,_0x13e849['options']);return db['WhatsappMessage'][_0x9b06('0x1f')]({'where':_0x55b71e[_0x9b06('0x43')]})['then'](function(_0x74fa4e){_0x502a2f['count']=_0x74fa4e;if(_0x13e849[_0x9b06('0x3a')][_0x9b06('0xb2')]){_0x55b71e[_0x9b06('0xb3')]=[{'all':!![]}];}return db[_0x9b06('0xb9')][_0x9b06('0xc1')](_0x55b71e);})[_0x9b06('0x28')](function(_0x2ec993){_0x502a2f[_0x9b06('0xc2')]=_0x2ec993;return _0x502a2f;});}})[_0x9b06('0x28')](respondWithFilteredResult(_0x1f8802,_0x55b71e))[_0x9b06('0xb4')](handleError(_0x1f8802,null));};exports[_0x9b06('0xc3')]=function(_0x3fb4bd,_0x2c0bd5,_0x388bf2){return db[_0x9b06('0x33')][_0x9b06('0x5c')]({'where':{'id':_0x3fb4bd[_0x9b06('0xb6')]['id']}})[_0x9b06('0x28')](handleEntityNotFound(_0x2c0bd5,null))[_0x9b06('0x28')](function(_0x4826da){if(_0x4826da){return _0x4826da[_0x9b06('0xc4')](_0x3fb4bd['body'][_0x9b06('0xba')],_[_0x9b06('0xbb')](_0x3fb4bd[_0x9b06('0x71')],[_0x9b06('0xba'),'id'])||{})[_0x9b06('0xc5')](function(){return db['Tag'][_0x9b06('0xc1')]({'attributes':['id',_0x9b06('0x2b'),_0x9b06('0x47')],'where':{'id':_0x3fb4bd[_0x9b06('0x71')][_0x9b06('0xba')]}});})[_0x9b06('0x28')](function(_0x416693){socket[_0x9b06('0xc6')](_0x9b06('0xc7'),{'id':Number(_0x3fb4bd['params']['id']),'tags':_0x416693||[]});return{'id':Number(_0x3fb4bd[_0x9b06('0xb6')]['id']),'tags':_0x416693||[]};});}})[_0x9b06('0x28')](respondWithResult(_0x2c0bd5,null))[_0x9b06('0xb4')](handleError(_0x2c0bd5,null));};exports[_0x9b06('0xc8')]=function(_0x54d788,_0x1d8131,_0x131d41){return db[_0x9b06('0x33')][_0x9b06('0x5c')]({'where':{'id':_0x54d788['params']['id']}})[_0x9b06('0x28')](handleEntityNotFound(_0x1d8131,null))[_0x9b06('0x28')](function(_0x5163d8){if(_0x5163d8){return _0x5163d8[_0x9b06('0xc8')](_0x54d788[_0x9b06('0x3a')][_0x9b06('0xba')]);}})[_0x9b06('0x28')](respondWithStatusCode(_0x1d8131,null))[_0x9b06('0xb4')](handleError(_0x1d8131,null));};exports['download']=function(_0x1373a0,_0x596a5b){var _0x306408=moment()[_0x9b06('0xc9')]()[_0x9b06('0x98')]();var _0x181a56=path[_0x9b06('0xca')](config[_0x9b06('0xcb')],_0x9b06('0xcc'),_0x9b06('0xcd'),_0x9b06('0xce'));var _0x3b2d99=path['join'](config[_0x9b06('0xcb')],_0x9b06('0xcc'),_0x9b06('0xcd'),_0x9b06('0xcf'));var _0x9f843d=path[_0x9b06('0xca')](_0x181a56,_0x306408);var _0x2de9d1=util['format'](_0x9b06('0xd0'),_0x1373a0[_0x9b06('0xb6')]['id'],_0x306408);var _0x906b7c=path[_0x9b06('0xca')](_0x181a56,_0x2de9d1);var _0x474184=[];_0x474184[_0x9b06('0xaf')]({'model':db[_0x9b06('0x6c')],'as':'User','attributes':['id',_0x9b06('0x2d')],'raw':!![]});_0x474184[_0x9b06('0xaf')]({'model':db['CmContact'],'as':_0x9b06('0x62'),'attributes':['id','firstName',_0x9b06('0xd1')],'raw':!![]});if(_0x1373a0['query'][_0x9b06('0xcf')]){_0x474184[_0x9b06('0xaf')]({'model':db[_0x9b06('0xd2')],'as':_0x9b06('0xd2'),'raw':!![]});}var _0x8e9824=[{'model':db[_0x9b06('0xb9')],'as':_0x9b06('0xd3'),'attributes':['id',_0x9b06('0x71'),_0x9b06('0x76'),_0x9b06('0xd4'),_0x9b06('0xd5'),_0x9b06('0x7e')],'include':_0x474184}];_0x8e9824[_0x9b06('0xaf')]({'model':db[_0x9b06('0xd6')],'as':_0x9b06('0xd7'),'attributes':['id',_0x9b06('0x2b')]});_0x8e9824[_0x9b06('0xaf')]({'model':db['User'],'as':_0x9b06('0xd8'),'attributes':['id',_0x9b06('0x2d')]});return db[_0x9b06('0x33')][_0x9b06('0x5c')]({'where':{'id':_0x1373a0[_0x9b06('0xb6')]['id']},'include':_0x8e9824})[_0x9b06('0x28')](handleEntityNotFound(_0x596a5b,null))[_0x9b06('0x28')](function(_0x471cd2){if(_0x471cd2){var _0x46b47f=_0x471cd2[_0x9b06('0xd9')]({'plain':!![]});fs[_0x9b06('0xda')](_0x9f843d);var _0x3d95cb={'format':'A4','border':'10px','header':{'height':_0x9b06('0xdb'),'contents':{'first':_0x9b06('0xdc')}},'footer':{'height':_0x9b06('0xdd'),'contents':{'default':util[_0x9b06('0xbf')](_0x9b06('0xde'),util[_0x9b06('0xbf')]('%s\x20#%d',_0x9b06('0xdf'),_0x46b47f['id']),moment()[_0x9b06('0xbf')](_0x9b06('0xe0'))[_0x9b06('0x98')]())}}};var _0x51138a={'channel':_0x9b06('0xdf'),'account':_0x46b47f[_0x9b06('0xd7')][_0x9b06('0x2b')],'agent':_0x46b47f['Owner']?_0x46b47f[_0x9b06('0xd8')]['fullname']:_0x9b06('0xe1'),'createdAt':moment(_0x46b47f['createdAt'])[_0x9b06('0xbf')](_0x9b06('0xc0'))['toString'](),'closedAt':_0x46b47f[_0x9b06('0xe2')]?moment(_0x46b47f[_0x9b06('0xe3')])[_0x9b06('0xbf')](_0x9b06('0xc0'))[_0x9b06('0x98')]():'','disposition':_0x46b47f[_0x9b06('0xe4')],'messages':_(_0x46b47f[_0x9b06('0xd3')])[_0x9b06('0x82')]({'secret':![]})[_0x9b06('0x32')](function(_0x212981){if(_0x212981[_0x9b06('0xd2')]){var _0x517632=path[_0x9b06('0xca')](_0x3b2d99,_0x212981[_0x9b06('0xd2')][_0x9b06('0xe5')]);if(fs[_0x9b06('0xe6')](_0x517632)){fs[_0x9b06('0xe7')](_0x517632)['pipe'](fs['createWriteStream'](path[_0x9b06('0xca')](_0x9f843d,_0x212981[_0x9b06('0xd2')][_0x9b06('0xe5')])));}}return{'date':moment(_0x212981['createdAt'])[_0x9b06('0xbf')](_0x9b06('0xc0'))[_0x9b06('0x98')](),'sender':_0x212981[_0x9b06('0xd4')]==='out'?_0x212981['User']?_0x212981['User'][_0x9b06('0x2d')]:_0x9b06('0xe8'):_0x212981[_0x9b06('0x62')]['firstName']+(_0x212981[_0x9b06('0x62')][_0x9b06('0xd1')]?'\x20'+_0x212981[_0x9b06('0x62')][_0x9b06('0xd1')]:''),'body':_0x212981[_0x9b06('0xd2')]?_0x212981['Attachment'][_0x9b06('0xe5')]:_0x212981[_0x9b06('0x71')],'direction':_0x212981[_0x9b06('0xd4')]===_0x9b06('0xe9')?'A':'C','secret':_0x212981['secret'],'read':_0x212981[_0x9b06('0x7e')],'attachment':_0x212981[_0x9b06('0xd2')]};})[_0x9b06('0x5e')]()};return ejs[_0x9b06('0xea')](path['join'](config[_0x9b06('0xcb')],_0x9b06('0xcc'),_0x9b06('0xeb'),_0x9b06('0xec')),{'interaction':_0x51138a})[_0x9b06('0x28')](function(_0x39571a){return new BPromise(function(_0x215f09,_0x49ace4){pdf['create'](_0x39571a,_0x3d95cb)[_0x9b06('0xed')](path[_0x9b06('0xca')](_0x9f843d,'transcript-'+_0x46b47f['id']+'-'+_0x306408+'.pdf'),function(_0x219d65,_0x50d99e){if(_0x219d65)return _0x49ace4(_0x219d65);_0x215f09(_0x50d99e);});});})[_0x9b06('0x28')](function(){return new BPromise(function(_0x5dce1b,_0x5347c3){zipdir(_0x9f843d,{'saveTo':_0x906b7c},function(_0x29e54c,_0x3f85d2){if(_0x29e54c)return _0x5347c3(_0x29e54c);return _0x5dce1b(_0x3f85d2);});})['then'](function(){return new BPromise(function(_0x312831,_0x544d34){rimraf(_0x9f843d,function(_0x52a476){if(_0x52a476)_0x544d34(_0x52a476);return _0x312831();});});})['then'](function(){return _0x596a5b['download'](_0x906b7c,_0x2de9d1,function(_0x68c9d){if(_0x68c9d){console[_0x9b06('0xee')](_0x9b06('0xef'),_0x68c9d);}else{fs[_0x9b06('0xf0')](_0x906b7c);}});});});}else{return _0x596a5b[_0x9b06('0x1c')](0xc8);}})[_0x9b06('0xb4')](handleError(_0x596a5b,null));};
\ No newline at end of file
+var _0xef0f=['body','some','compact','isEmpty','where','concat','parse','$gte','$lte','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','tag','isArray','filter','replace','i.id\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','i.id','Sequelize','SELECT','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','DESC','WhatsappAccountId','i.WhatsappAccountId\x20IS\x20NOT\x20NULL','user','agent','getWhatsappAccounts','i.WhatsappAccountId\x20IS\x20NULL','i.WhatsappAccountId\x20IN\x20?','role','sequelize','toString','keyBy','merge','Account.key','a.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','Contact.lastName','c.email','Contact.email','c.phone','Contact.fax','o.fullname','Owner.fullname','o.internal','GROUP_CONCAT(DISTINCT\x20t.id)','TagIds','groupBy','WhatsappInteractionId','all','rows','show','params','includeAll','include','options','create','destroy','describe','WhatsappMessage','addMessage','ids','omit','getMessages','findOne','hasOwnProperty','nolimit','format','YYYY-MM-DD\x20HH:mm:ss','findAll','addTags','spread','color','emit','whatsappInteractionTags:save','removeTags','download','root','files','tmp','server','attachments','join','transcript-%d-%s.zip','fullname','Contact','firstName','Attachment','Account','Owner','get','mkdirSync','10px','40px','<div\x20class=\x22header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h5>Interaction\x20Transcript</h5>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>','30px','%s\x20#%d','Whatsapp','YYYY-MM-DD','createdAt','closed','closedAt','disposition','Messages','existsSync','pipe','createWriteStream','basename','direction','System','lastName','out','renderFile','views','downloadInteraction.html','.pdf','err','html-pdf','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./whatsappInteraction.socket','register','end','status','json','count','offset','set','Content-Range','apply','update','then','sendStatus','stack','name','send','Users','map','Tags','push','catch','index','WhatsappInteraction','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','limit','order','sort','pick','filters','select','field','from','ui.WhatsappInteractionId','user_has_whatsapp_interactions','users','u.id\x20=\x20ui.UserId','left_join','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','whatsapp_accounts','whatsapp_messages','me.WhatsappInteractionId\x20=\x20i.id','it.WhatsappInteractionId\x20=\x20i.id','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','`\x20=\x200','having','`\x20>\x200','operator','$substring','value','split','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','buildExpression','start','Tag','forEach','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','User','UserId','text'];(function(_0x54f415,_0x52be28){var _0xaca73b=function(_0x5937ce){while(--_0x5937ce){_0x54f415['push'](_0x54f415['shift']());}};_0xaca73b(++_0x52be28);}(_0xef0f,0x168));var _0xfef0=function(_0x18baea,_0x5d935b){_0x18baea=_0x18baea-0x0;var _0x2fcbb0=_0xef0f[_0x18baea];return _0x2fcbb0;};'use strict';var pdf=require(_0xfef0('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xfef0('0x1'));var zipdir=require(_0xfef0('0x2'));var jsonpatch=require(_0xfef0('0x3'));var rp=require('request-promise');var moment=require(_0xfef0('0x4'));var BPromise=require(_0xfef0('0x5'));var Mustache=require(_0xfef0('0x6'));var util=require('util');var path=require(_0xfef0('0x7'));var sox=require(_0xfef0('0x8'));var csv=require(_0xfef0('0x9'));var ejs=require(_0xfef0('0xa'));var fs=require('fs');var _=require(_0xfef0('0xb'));var squel=require(_0xfef0('0xc'));var crypto=require('crypto');var jsforce=require(_0xfef0('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xfef0('0x9'));var querystring=require(_0xfef0('0xe'));var Papa=require(_0xfef0('0xf'));var Redis=require(_0xfef0('0x10'));var authService=require(_0xfef0('0x11'));var qs=require(_0xfef0('0x12'));var as=require(_0xfef0('0x13'));var hardwareService=require(_0xfef0('0x14'));var logger=require(_0xfef0('0x15'))(_0xfef0('0x16'));var utils=require(_0xfef0('0x17'));var config=require(_0xfef0('0x18'));var licenseUtil=require(_0xfef0('0x19'));var db=require(_0xfef0('0x1a'))['db'];config['redis']=_[_0xfef0('0x1b')](config[_0xfef0('0x1c')],{'host':_0xfef0('0x1d'),'port':0x18eb});var socket=require(_0xfef0('0x1e'))(new Redis(config[_0xfef0('0x1c')]));require(_0xfef0('0x1f'))[_0xfef0('0x20')](socket);function respondWithStatusCode(_0x573ae7,_0x3d1f02){_0x3d1f02=_0x3d1f02||0xcc;return function(_0x554aaa){if(_0x554aaa){return _0x573ae7['sendStatus'](_0x3d1f02);}return _0x573ae7['status'](_0x3d1f02)[_0xfef0('0x21')]();};}function respondWithResult(_0x284b6d,_0x3510a7){_0x3510a7=_0x3510a7||0xc8;return function(_0x1bce2f){if(_0x1bce2f){return _0x284b6d[_0xfef0('0x22')](_0x3510a7)[_0xfef0('0x23')](_0x1bce2f);}};}function respondWithFilteredResult(_0x155833,_0x2887e6){return function(_0x581459){if(_0x581459){var _0xd60678=_0x581459[_0xfef0('0x24')],_0x1642cd=_0x2887e6['offset'],_0x1577fa=_0x2887e6[_0xfef0('0x25')]+_0x2887e6['limit'],_0x39f9d3;if(_0x1577fa>=_0xd60678){_0x1577fa=_0xd60678;_0x39f9d3=0xc8;}else{_0x39f9d3=0xce;}_0x155833[_0xfef0('0x22')](_0x39f9d3);return _0x155833[_0xfef0('0x26')](_0xfef0('0x27'),_0x1642cd+'-'+_0x1577fa+'/'+_0xd60678)['json'](_0x581459);}return null;};}function patchUpdates(_0x2be956){return function(_0x4c304d){try{jsonpatch[_0xfef0('0x28')](_0x4c304d,_0x2be956,!![]);}catch(_0x394fbc){return BPromise['reject'](_0x394fbc);}return _0x4c304d['save']();};}function saveUpdates(_0x4b8b22,_0x19fde8){return function(_0x4faea8){if(_0x4faea8){return _0x4faea8[_0xfef0('0x29')](_0x4b8b22)[_0xfef0('0x2a')](function(_0x1a8d66){return _0x1a8d66;});}return null;};}function removeEntity(_0x4483f2,_0x249fe4){return function(_0xd687ed){if(_0xd687ed){return _0xd687ed['destroy']()['then'](function(){_0x4483f2[_0xfef0('0x22')](0xcc)[_0xfef0('0x21')]();});}};}function handleEntityNotFound(_0x924f6e,_0x34ca65){return function(_0xab231c){if(!_0xab231c){_0x924f6e[_0xfef0('0x2b')](0x194);}return _0xab231c;};}function handleError(_0x5df04f,_0x168b98){_0x168b98=_0x168b98||0x1f4;return function(_0x391279){logger['error'](_0x391279[_0xfef0('0x2c')]);if(_0x391279[_0xfef0('0x2d')]){delete _0x391279[_0xfef0('0x2d')];}_0x5df04f[_0xfef0('0x22')](_0x168b98)[_0xfef0('0x2e')](_0x391279);};}function getInteractionUsers(_0x1ac4a3,_0x3e3c4c){return new BPromise(function(_0x3e026a,_0x26cb9a){try{if(_0x3e3c4c[_0x1ac4a3['id']]){_0x1ac4a3[_0xfef0('0x2f')]=_[_0xfef0('0x30')](_0x3e3c4c[_0x1ac4a3['id']],function(_0x3ffea0){return{'id':_0x3ffea0['id'],'fullname':_0x3ffea0['fullname']};});}}catch(_0x445625){_0x26cb9a(_0x445625);}_0x3e026a(_0x1ac4a3);});}function getInteractionTags(_0x5806bd,_0x4eaf74){return new BPromise(function(_0x7d1692,_0x2ae54a){try{if(_0x5806bd['TagIds']){_0x5806bd['Tags']=[];_0x5806bd['TagIds']['split'](',')['forEach'](function(_0x417535){_0x5806bd[_0xfef0('0x31')][_0xfef0('0x32')](_0x4eaf74[_0x417535]);});}delete _0x5806bd['TagIds'];}catch(_0x4d0778){_0x2ae54a(_0x4d0778);}_0x7d1692(_0x5806bd);});}function updateWhatsappInteraction(_0x50430e,_0x1f8110,_0x55c458){return new BPromise(function(_0x215032,_0x3783f9){return getInteractionUsers(_0x50430e,_0x55c458)[_0xfef0('0x2a')](function(_0x4a2773){return getInteractionTags(_0x4a2773,_0x1f8110);})[_0xfef0('0x2a')](function(_0x4c3a0f){_0x215032(_0x4c3a0f);})[_0xfef0('0x33')](function(_0x1f21b7){_0x3783f9(_0x1f21b7);});});}exports[_0xfef0('0x34')]=function(_0xe5188e,_0x3e1a64){var _0x103d1f={},_0x92d420={},_0x2d97f8={'count':0x0,'rows':[]};var _0x590e37=_[_0xfef0('0x30')](db[_0xfef0('0x35')][_0xfef0('0x36')],function(_0x36b2d1){return{'name':_0x36b2d1[_0xfef0('0x37')],'type':_0x36b2d1[_0xfef0('0x38')][_0xfef0('0x39')]};});_0x92d420[_0xfef0('0x3a')]=_[_0xfef0('0x30')](_0x590e37,_0xfef0('0x2d'));_0x92d420[_0xfef0('0x3b')]=_[_0xfef0('0x3c')](_0xe5188e[_0xfef0('0x3b')]);_0x92d420['filters']=_[_0xfef0('0x3d')](_0x92d420['model'],_0x92d420[_0xfef0('0x3b')]);_0x103d1f[_0xfef0('0x3e')]=_[_0xfef0('0x3d')](_0x92d420['model'],qs[_0xfef0('0x3f')](_0xe5188e[_0xfef0('0x3b')][_0xfef0('0x3f')]));_0x103d1f['attributes']=_0x103d1f[_0xfef0('0x3e')][_0xfef0('0x40')]?_0x103d1f[_0xfef0('0x3e')]:_0x92d420['model'];if(!_0xe5188e[_0xfef0('0x3b')]['hasOwnProperty']('nolimit')){_0x103d1f[_0xfef0('0x41')]=qs['limit'](_0xe5188e['query'][_0xfef0('0x41')]);_0x103d1f[_0xfef0('0x25')]=qs[_0xfef0('0x25')](_0xe5188e[_0xfef0('0x3b')][_0xfef0('0x25')]);}_0x103d1f[_0xfef0('0x42')]=qs['sort'](_0xe5188e[_0xfef0('0x3b')][_0xfef0('0x43')]);_0x103d1f['where']=qs['filters'](_[_0xfef0('0x44')](_0xe5188e['query'],_0x92d420[_0xfef0('0x45')]),_0x590e37);var _0x22c940=[];var _0x3c100c=squel[_0xfef0('0x46')]()[_0xfef0('0x47')]('id')[_0xfef0('0x47')](_0xfef0('0x2d'))[_0xfef0('0x47')]('color')[_0xfef0('0x48')]('tools_tags');var _0x4b6da1=squel[_0xfef0('0x46')]()[_0xfef0('0x47')]('u.id')[_0xfef0('0x47')]('u.fullname')[_0xfef0('0x47')](_0xfef0('0x49'))[_0xfef0('0x48')](_0xfef0('0x4a'),'ui')['left_join'](_0xfef0('0x4b'),'u',_0xfef0('0x4c'));var _0x504967=squel['select']()[_0xfef0('0x48')]('whatsapp_interactions','i')[_0xfef0('0x4d')](_0xfef0('0x4e'),'c',_0xfef0('0x4f'))[_0xfef0('0x4d')](_0xfef0('0x4b'),'o',_0xfef0('0x50'))['left_join'](_0xfef0('0x51'),'a','a.id\x20=\x20i.WhatsappAccountId')['left_join'](_0xfef0('0x52'),'me',_0xfef0('0x53'))[_0xfef0('0x4d')]('whatsapp_interaction_has_tags','it',_0xfef0('0x54'))['left_join']('tools_tags','t','t.id\x20=\x20it.TagId');var _0x3a475a=squel[_0xfef0('0x55')]();var _0x249934=[];var _0x358ab2=squel[_0xfef0('0x55')]();var _0xa23cc8;if(_0xe5188e[_0xfef0('0x3b')][_0xfef0('0x56')]){_0xa23cc8=as[_0xfef0('0x57')](_0xe5188e['query']['search']);var _0x2bebec=_0xa23cc8[_0xfef0('0x58')];for(var _0x34e9ed=0x0;_0x34e9ed<_0xa23cc8[_0xfef0('0x59')][_0xfef0('0x40')];_0x34e9ed++){var _0x1e1458=_0xa23cc8[_0xfef0('0x59')][_0x34e9ed];var _0x20b647='i';var _0x5e989f=_[_0xfef0('0x5a')](_0x590e37,[_0xfef0('0x2d'),_0x1e1458[_0xfef0('0x47')]]);if(!_0x5e989f){switch(_0x1e1458[_0xfef0('0x47')]){case _0xfef0('0x5b'):if(_0x1e1458['value']==0x1){_0x504967['having']('`'+_0x1e1458['field']+_0xfef0('0x5c'));}else{_0x504967[_0xfef0('0x5d')]('`'+_0x1e1458[_0xfef0('0x47')]+_0xfef0('0x5e'));}break;case'Contact':if(_0x1e1458[_0xfef0('0x5f')]===_0xfef0('0x60')){if(_0x1e1458[_0xfef0('0x61')][_0xfef0('0x62')]('\x20')[_0xfef0('0x40')]>0x1){_0x3a475a[_0x2bebec](_0xfef0('0x63'),qs[_0xfef0('0x64')](_0x1e1458['value']),null);}else{var _0x3458b0='%'+_0x1e1458[_0xfef0('0x61')]+'%';_0x3a475a[_0x2bebec]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x3458b0,_0x3458b0,_0x3458b0);}}else{_0x5e989f=_[_0xfef0('0x5a')](_0x590e37,['name',_0xfef0('0x65')]);_0x1e1458[_0xfef0('0x47')]='ContactId';_0x7eed0=as[_0xfef0('0x66')](_0x20b647,_0x5e989f['type'],_0x1e1458);_0x3a475a[_0x2bebec](_0x7eed0['text'],_0x7eed0['value'][_0xfef0('0x67')],_0x7eed0[_0xfef0('0x61')][_0xfef0('0x21')]);}break;case _0xfef0('0x68'):var _0x16a498=_0x1e1458[_0xfef0('0x61')]['split'](',')[_0xfef0('0x30')](function(_0x4156d5){return Number(_0x4156d5);});_0x16a498[_0xfef0('0x69')](function(_0x45abb3){_0x358ab2['or'](_0xfef0('0x6a'),'%,'+_0x45abb3+',%');});_0x249934=_['union'](_0x249934,_0x16a498);break;case _0xfef0('0x6b'):if(_0x1e1458['operator']===_0xfef0('0x60')){_0x3a475a[_0x2bebec]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x1e1458[_0xfef0('0x61')]+'%',null);}else{_0x5e989f=_[_0xfef0('0x5a')](_0x590e37,[_0xfef0('0x2d'),_0xfef0('0x6c')]);_0x1e1458[_0xfef0('0x47')]='UserId';_0x7eed0=as[_0xfef0('0x66')](_0x20b647,_0x5e989f['type'],_0x1e1458);_0x3a475a[_0x2bebec](_0x7eed0[_0xfef0('0x6d')],_0x7eed0[_0xfef0('0x61')]['start'],_0x7eed0[_0xfef0('0x61')][_0xfef0('0x21')]);}break;case _0xfef0('0x6e'):_0x7eed0=as[_0xfef0('0x66')]('me',null,_0x1e1458);_0x3a475a[_0x2bebec](_0x7eed0[_0xfef0('0x6d')],_0x7eed0[_0xfef0('0x61')][_0xfef0('0x67')],_0x7eed0[_0xfef0('0x61')][_0xfef0('0x21')]);break;}}else{var _0x7eed0=as[_0xfef0('0x66')](_0x20b647,_0x5e989f[_0xfef0('0x38')],_0x1e1458);_0x3a475a[_0x2bebec](_0x7eed0['text'],_0x7eed0[_0xfef0('0x61')][_0xfef0('0x67')],_0x7eed0[_0xfef0('0x61')][_0xfef0('0x21')]);}}}else{var _0x16f0a2=_(_0xe5188e['query'])[_0xfef0('0x3c')]()[_0xfef0('0x30')](function(_0xf023ba){return _[_0xfef0('0x6f')](_0x590e37,[_0xfef0('0x2d'),_0xf023ba])?_0xf023ba:undefined;})[_0xfef0('0x70')]()[_0xfef0('0x61')]();if(!_[_0xfef0('0x71')](_0x16f0a2)){_0x16f0a2[_0xfef0('0x69')](function(_0x3f26d9){if(_0x3f26d9==='WhatsappAccountId'){_0x504967[_0xfef0('0x72')]('i.WhatsappAccountId\x20IN\x20?',[][_0xfef0('0x73')](_0xe5188e[_0xfef0('0x3b')][_0x3f26d9]));}else if(_0x3f26d9==='createdAt'){var _0x374b46=JSON[_0xfef0('0x74')](_0xe5188e[_0xfef0('0x3b')][_0x3f26d9])[_0xfef0('0x75')];var _0x1e0ad5=JSON['parse'](_0xe5188e[_0xfef0('0x3b')][_0x3f26d9])[_0xfef0('0x76')];_0x504967[_0xfef0('0x72')]('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x374b46,_0x1e0ad5);}else{if(_0xe5188e[_0xfef0('0x3b')][_0x3f26d9]===_0xfef0('0x77')){_0x504967[_0xfef0('0x72')]('i.'+_0x3f26d9+_0xfef0('0x78'));}else{_0x504967[_0xfef0('0x72')]('i.'+_0x3f26d9+_0xfef0('0x79'),_0xe5188e[_0xfef0('0x3b')][_0x3f26d9]);}}});}if(_0xe5188e['query'][_0xfef0('0x7a')]){if(_0xe5188e[_0xfef0('0x3b')][_0xfef0('0x7a')]==0x1){_0x504967[_0xfef0('0x5d')](_0xfef0('0x7b'));}else{_0x504967[_0xfef0('0x5d')]('`unreadMessages`\x20>\x200');}}if(_0xe5188e[_0xfef0('0x3b')][_0xfef0('0x7c')]){_0x249934=_[_0xfef0('0x7d')](_0xe5188e[_0xfef0('0x3b')]['tag'])?_0xe5188e[_0xfef0('0x3b')][_0xfef0('0x7c')]:new Array(_0xe5188e['query'][_0xfef0('0x7c')]);_0x249934[_0xfef0('0x69')](function(_0x1205e1){_0x358ab2['or'](_0xfef0('0x6a'),'%,'+_0x1205e1+',%');});}if(_0xe5188e[_0xfef0('0x3b')]['filter']){var _0x4eb78e=_0xe5188e['query'][_0xfef0('0x7e')][_0xfef0('0x7f')]('\x5c','\x5c\x5c')[_0xfef0('0x7f')](/'/g,'\x27\x27');if(qs['isNumeric'](_0x4eb78e)){_0x3a475a['or'](_0xfef0('0x80'),_0x4eb78e+'%')['or']('i.phone\x20LIKE\x20?',_0x4eb78e+'%');}else{_0x3a475a['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0x4eb78e))['or'](_0xfef0('0x81'),_0x4eb78e+'%');}}}_0x504967[_0xfef0('0x72')](_0x3a475a);_0x504967['group'](_0xfef0('0x82'));var _0x18b380={'type':db[_0xfef0('0x83')]['QueryTypes'][_0xfef0('0x84')],'raw':!![]};var _0x566a51=_0x504967['clone']();_0x566a51[_0xfef0('0x47')](_0xfef0('0x82'));_0x566a51[_0xfef0('0x47')](_0xfef0('0x85'),'unreadMessages');if(_0x103d1f['order']){_0x103d1f['order'][_0xfef0('0x69')](function(_0x546455){var _0x2e53e0=_0x546455[0x0]===_0xfef0('0x86')?_0x546455[0x0]:'i.'+_0x546455[0x0];_0x504967[_0xfef0('0x42')](_0x2e53e0,_0x546455[0x1]===_0xfef0('0x87')?![]:!![]);});}if(!_[_0xfef0('0x71')](_0x249934)){_0x504967['having'](_0x358ab2);_0x566a51[_0xfef0('0x72')]('t.id\x20IN\x20?',_0x249934);}BPromise['resolve']()[_0xfef0('0x2a')](function(){if(!_0xa23cc8){if(_0xe5188e[_0xfef0('0x3b')][_0xfef0('0x88')])return;_0x566a51[_0xfef0('0x72')]('i.WhatsappAccountId\x20IS\x20NOT\x20NULL');_0x504967['where'](_0xfef0('0x89'));return;}if(_0xe5188e[_0xfef0('0x8a')]['role']!==_0xfef0('0x8b'))return;return _0xe5188e[_0xfef0('0x8a')][_0xfef0('0x8c')]({'attributes':['id'],'raw':!![]})[_0xfef0('0x2a')](function(_0x12456e){if(_[_0xfef0('0x71')](_0x12456e)){_0x566a51[_0xfef0('0x72')](_0xfef0('0x8d'));_0x504967[_0xfef0('0x72')](_0xfef0('0x8d'));}else{_0x566a51[_0xfef0('0x72')](_0xfef0('0x8e'),_[_0xfef0('0x30')](_0x12456e,'id'));_0x504967[_0xfef0('0x72')](_0xfef0('0x8e'),_[_0xfef0('0x30')](_0x12456e,'id'));}});})[_0xfef0('0x2a')](function(){if(_0xe5188e['user'][_0xfef0('0x8f')]===_0xfef0('0x8b')&&!_0xa23cc8&&!_0xe5188e[_0xfef0('0x3b')][_0xfef0('0x88')])return[];return db[_0xfef0('0x90')][_0xfef0('0x3b')](_0x566a51[_0xfef0('0x91')](),_0x18b380);})[_0xfef0('0x2a')](function(_0x32944e){_0x2d97f8[_0xfef0('0x24')]=_0x32944e[_0xfef0('0x40')];if(_0x2d97f8[_0xfef0('0x24')]===0x0)return[];return db[_0xfef0('0x90')]['query'](_0x3c100c[_0xfef0('0x91')](),_0x18b380)['then'](function(_0x5b7911){_0x22c940=_[_0xfef0('0x92')](_0x5b7911,'id');_0x18b380=_[_0xfef0('0x93')](_0x18b380,{'model':db['WhatsappInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0xe5188e[_0xfef0('0x3b')]['fields']){_0x103d1f['attributes'][_0xfef0('0x69')](function(_0x1ba37d){_0x504967[_0xfef0('0x47')]('i.'+_0x1ba37d);});}else{_0x504967[_0xfef0('0x47')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0xfef0('0x5b'));_0x504967[_0xfef0('0x47')]('a.key',_0xfef0('0x94'));_0x504967[_0xfef0('0x47')](_0xfef0('0x95'),'Account.mandatoryDisposition');_0x504967['field'](_0xfef0('0x96'),'contactName');_0x504967['field'](_0xfef0('0x97'));_0x504967['field'](_0xfef0('0x98'),_0xfef0('0x99'));_0x504967[_0xfef0('0x47')](_0xfef0('0x9a'),_0xfef0('0x9b'));_0x504967[_0xfef0('0x47')](_0xfef0('0x9c'),_0xfef0('0x9d'));_0x504967[_0xfef0('0x47')](_0xfef0('0x9e'),'Contact.phone');_0x504967[_0xfef0('0x47')]('c.mobile','Contact.mobile');_0x504967[_0xfef0('0x47')]('c.fax',_0xfef0('0x9f'));_0x504967[_0xfef0('0x47')](_0xfef0('0xa0'),_0xfef0('0xa1'));_0x504967[_0xfef0('0x47')](_0xfef0('0xa2'),'Owner.internal');_0x504967[_0xfef0('0x47')](_0xfef0('0xa3'),_0xfef0('0xa4'));}if(_0x103d1f[_0xfef0('0x41')])_0x504967[_0xfef0('0x41')](_0x103d1f[_0xfef0('0x41')]);if(_0x103d1f[_0xfef0('0x25')])_0x504967[_0xfef0('0x25')](_0x103d1f['offset']);return db[_0xfef0('0x90')][_0xfef0('0x3b')](_0x504967['toString'](),_0x18b380);})[_0xfef0('0x2a')](function(_0x46fde3){_0x4b6da1[_0xfef0('0x72')]('ui.WhatsappInteractionId\x20IN\x20?',_[_0xfef0('0x30')](_0x46fde3,'id'));return db['sequelize'][_0xfef0('0x3b')](_0x4b6da1[_0xfef0('0x91')](),_0x18b380)['then'](function(_0x163e54){var _0x51f79b=_[_0xfef0('0xa5')](_0x163e54,_0xfef0('0xa6'));var _0x1b8ee7=[];_0x46fde3[_0xfef0('0x69')](function(_0x14d871){_0x1b8ee7[_0xfef0('0x32')](updateWhatsappInteraction(_0x14d871,_0x22c940,_0x51f79b));});return BPromise[_0xfef0('0xa7')](_0x1b8ee7);});});})[_0xfef0('0x2a')](function(_0x269d51){_0x2d97f8[_0xfef0('0xa8')]=_0x269d51;return _0x2d97f8;})[_0xfef0('0x2a')](respondWithFilteredResult(_0x3e1a64,_0x103d1f))['catch'](handleError(_0x3e1a64,null));};exports[_0xfef0('0xa9')]=function(_0x48d36d,_0x4c6a27){var _0x2c7069={'raw':![],'where':{'id':_0x48d36d[_0xfef0('0xaa')]['id']}},_0x4ff902={};_0x4ff902['model']=_['keys'](db[_0xfef0('0x35')]['rawAttributes']);_0x4ff902['query']=_['keys'](_0x48d36d[_0xfef0('0x3b')]);_0x4ff902[_0xfef0('0x45')]=_[_0xfef0('0x3d')](_0x4ff902[_0xfef0('0x3a')],_0x4ff902['query']);_0x2c7069[_0xfef0('0x3e')]=_[_0xfef0('0x3d')](_0x4ff902[_0xfef0('0x3a')],qs[_0xfef0('0x3f')](_0x48d36d[_0xfef0('0x3b')]['fields']));_0x2c7069['attributes']=_0x2c7069[_0xfef0('0x3e')][_0xfef0('0x40')]?_0x2c7069['attributes']:_0x4ff902[_0xfef0('0x3a')];if(_0x48d36d[_0xfef0('0x3b')][_0xfef0('0xab')]){_0x2c7069[_0xfef0('0xac')]=[{'all':!![]}];}_0x2c7069=_[_0xfef0('0x93')]({},_0x2c7069,_0x48d36d[_0xfef0('0xad')]);return db[_0xfef0('0x35')][_0xfef0('0x5a')](_0x2c7069)['then'](handleEntityNotFound(_0x4c6a27,null))['then'](respondWithResult(_0x4c6a27,null))[_0xfef0('0x33')](handleError(_0x4c6a27,null));};exports[_0xfef0('0xae')]=function(_0x14fc20,_0x475eb7){return db[_0xfef0('0x35')][_0xfef0('0xae')](_0x14fc20[_0xfef0('0x6e')],{})[_0xfef0('0x2a')](respondWithResult(_0x475eb7,0xc9))['catch'](handleError(_0x475eb7,null));};exports['update']=function(_0x2cbcdf,_0x28a5dc){if(_0x2cbcdf[_0xfef0('0x6e')]['id']){delete _0x2cbcdf[_0xfef0('0x6e')]['id'];}return db[_0xfef0('0x35')][_0xfef0('0x5a')]({'where':{'id':_0x2cbcdf['params']['id']}})[_0xfef0('0x2a')](handleEntityNotFound(_0x28a5dc,null))[_0xfef0('0x2a')](saveUpdates(_0x2cbcdf['body'],null))[_0xfef0('0x2a')](respondWithResult(_0x28a5dc,null))[_0xfef0('0x33')](handleError(_0x28a5dc,null));};exports[_0xfef0('0xaf')]=function(_0x448b15,_0x3b8b10){return db[_0xfef0('0x35')]['find']({'where':{'id':_0x448b15['params']['id']}})[_0xfef0('0x2a')](handleEntityNotFound(_0x3b8b10,null))[_0xfef0('0x2a')](removeEntity(_0x3b8b10,null))[_0xfef0('0x33')](handleError(_0x3b8b10,null));};exports[_0xfef0('0xb0')]=function(_0x37348b,_0x2636c4){return db['WhatsappInteraction'][_0xfef0('0xb0')]()['then'](respondWithResult(_0x2636c4,null))[_0xfef0('0x33')](handleError(_0x2636c4,null));};exports['addMessage']=function(_0x22f544,_0x8826ff,_0x4c5d4a){return db[_0xfef0('0xb1')][_0xfef0('0x5a')]({'where':{'id':_0x22f544[_0xfef0('0xaa')]['id']}})['then'](handleEntityNotFound(_0x8826ff,null))['then'](function(_0x57083a){if(_0x57083a){return _0x57083a[_0xfef0('0xb2')](_0x22f544['body'][_0xfef0('0xb3')],_[_0xfef0('0xb4')](_0x22f544['body'],[_0xfef0('0xb3'),'id'])||{});}})['then'](respondWithResult(_0x8826ff,null))[_0xfef0('0x33')](handleError(_0x8826ff,null));};exports[_0xfef0('0xb5')]=function(_0x5520ae,_0x1a9ed3,_0x107839){var _0x349cab={'raw':![],'where':{}};var _0x362c76={};var _0x53ecba={'count':0x0,'rows':[]};return db[_0xfef0('0x35')][_0xfef0('0xb6')]({'where':{'id':_0x5520ae[_0xfef0('0xaa')]['id']}})[_0xfef0('0x2a')](handleEntityNotFound(_0x1a9ed3,null))[_0xfef0('0x2a')](function(_0x110ef9){if(_0x110ef9){_0x362c76[_0xfef0('0x3a')]=_[_0xfef0('0x3c')](db[_0xfef0('0xb1')][_0xfef0('0x36')]);_0x362c76[_0xfef0('0x3b')]=_[_0xfef0('0x3c')](_0x5520ae[_0xfef0('0x3b')]);_0x362c76[_0xfef0('0x45')]=_['intersection'](_0x362c76[_0xfef0('0x3a')],_0x362c76[_0xfef0('0x3b')]);_0x349cab[_0xfef0('0x3e')]=_[_0xfef0('0x3d')](_0x362c76[_0xfef0('0x3a')],qs[_0xfef0('0x3f')](_0x5520ae[_0xfef0('0x3b')][_0xfef0('0x3f')]));_0x349cab[_0xfef0('0x3e')]=_0x349cab['attributes']['length']?_0x349cab[_0xfef0('0x3e')]:_0x362c76['model'];if(!_0x5520ae[_0xfef0('0x3b')][_0xfef0('0xb7')](_0xfef0('0xb8'))){_0x349cab[_0xfef0('0x41')]=qs[_0xfef0('0x41')](_0x5520ae[_0xfef0('0x3b')][_0xfef0('0x41')]);_0x349cab[_0xfef0('0x25')]=qs[_0xfef0('0x25')](_0x5520ae[_0xfef0('0x3b')][_0xfef0('0x25')]);}_0x349cab['order']=qs[_0xfef0('0x43')](_0x5520ae[_0xfef0('0x3b')]['sort']);_0x349cab[_0xfef0('0x72')]=qs[_0xfef0('0x45')](_['pick'](_0x5520ae[_0xfef0('0x3b')],_0x362c76['filters']));_0x349cab[_0xfef0('0x72')][_0xfef0('0xa6')]=_0x110ef9['id'];if(_0x5520ae[_0xfef0('0x3b')][_0xfef0('0x7e')]){_0x349cab[_0xfef0('0x72')]=_['merge'](_0x349cab[_0xfef0('0x72')],{'$or':_[_0xfef0('0x30')](_0x349cab['attributes'],function(_0x2d9229){var _0x544c95={};_0x544c95[_0x2d9229]={'$like':'%'+_0x5520ae[_0xfef0('0x3b')][_0xfef0('0x7e')]+'%'};return _0x544c95;})});}if(_0x5520ae[_0xfef0('0x3b')]['$gte']){var _0x4551b2=_0x5520ae['query']['$gte'][_0xfef0('0x62')](',');var _0x57b2b4={};_0x57b2b4[_0x4551b2[0x0]]={'$gte':moment(_0x4551b2[0x1])[_0xfef0('0xb9')](_0xfef0('0xba'))};_0x349cab[_0xfef0('0x72')]=_[_0xfef0('0x93')](_0x349cab[_0xfef0('0x72')],_0x57b2b4);}_0x349cab=_[_0xfef0('0x93')]({},_0x349cab,_0x5520ae[_0xfef0('0xad')]);return db['WhatsappMessage']['count']({'where':_0x349cab[_0xfef0('0x72')]})['then'](function(_0x2b0e9b){_0x53ecba[_0xfef0('0x24')]=_0x2b0e9b;if(_0x5520ae[_0xfef0('0x3b')][_0xfef0('0xab')]){_0x349cab[_0xfef0('0xac')]=[{'all':!![]}];}return db[_0xfef0('0xb1')][_0xfef0('0xbb')](_0x349cab);})[_0xfef0('0x2a')](function(_0x4a3b68){_0x53ecba['rows']=_0x4a3b68;return _0x53ecba;});}})[_0xfef0('0x2a')](respondWithFilteredResult(_0x1a9ed3,_0x349cab))[_0xfef0('0x33')](handleError(_0x1a9ed3,null));};exports[_0xfef0('0xbc')]=function(_0x23c42a,_0xdbd7f2,_0x4dfd79){return db['WhatsappInteraction']['find']({'where':{'id':_0x23c42a[_0xfef0('0xaa')]['id']}})[_0xfef0('0x2a')](handleEntityNotFound(_0xdbd7f2,null))['then'](function(_0x2ac02f){if(_0x2ac02f){return _0x2ac02f['setTags'](_0x23c42a[_0xfef0('0x6e')][_0xfef0('0xb3')],_[_0xfef0('0xb4')](_0x23c42a[_0xfef0('0x6e')],[_0xfef0('0xb3'),'id'])||{})[_0xfef0('0xbd')](function(){return db[_0xfef0('0x68')][_0xfef0('0xbb')]({'attributes':['id',_0xfef0('0x2d'),_0xfef0('0xbe')],'where':{'id':_0x23c42a[_0xfef0('0x6e')]['ids']}});})[_0xfef0('0x2a')](function(_0x530d89){socket[_0xfef0('0xbf')](_0xfef0('0xc0'),{'id':Number(_0x23c42a[_0xfef0('0xaa')]['id']),'tags':_0x530d89||[]});return{'id':Number(_0x23c42a[_0xfef0('0xaa')]['id']),'tags':_0x530d89||[]};});}})[_0xfef0('0x2a')](respondWithResult(_0xdbd7f2,null))[_0xfef0('0x33')](handleError(_0xdbd7f2,null));};exports[_0xfef0('0xc1')]=function(_0x2622df,_0x245b45,_0x5c72cf){return db['WhatsappInteraction'][_0xfef0('0x5a')]({'where':{'id':_0x2622df['params']['id']}})[_0xfef0('0x2a')](handleEntityNotFound(_0x245b45,null))[_0xfef0('0x2a')](function(_0x45049d){if(_0x45049d){return _0x45049d[_0xfef0('0xc1')](_0x2622df[_0xfef0('0x3b')]['ids']);}})[_0xfef0('0x2a')](respondWithStatusCode(_0x245b45,null))['catch'](handleError(_0x245b45,null));};exports[_0xfef0('0xc2')]=function(_0x454fab,_0x4894da){var _0x34bcc3=moment()['unix']()[_0xfef0('0x91')]();var _0x52973c=path['join'](config[_0xfef0('0xc3')],'server',_0xfef0('0xc4'),_0xfef0('0xc5'));var _0x275c64=path['join'](config['root'],_0xfef0('0xc6'),_0xfef0('0xc4'),_0xfef0('0xc7'));var _0x36a86c=path[_0xfef0('0xc8')](_0x52973c,_0x34bcc3);var _0x287105=util[_0xfef0('0xb9')](_0xfef0('0xc9'),_0x454fab[_0xfef0('0xaa')]['id'],_0x34bcc3);var _0x4d9d49=path[_0xfef0('0xc8')](_0x52973c,_0x287105);var _0x44edf5=[];_0x44edf5[_0xfef0('0x32')]({'model':db[_0xfef0('0x6b')],'as':_0xfef0('0x6b'),'attributes':['id',_0xfef0('0xca')],'raw':!![]});_0x44edf5[_0xfef0('0x32')]({'model':db['CmContact'],'as':_0xfef0('0xcb'),'attributes':['id',_0xfef0('0xcc'),'lastName'],'raw':!![]});if(_0x454fab[_0xfef0('0x3b')][_0xfef0('0xc7')]){_0x44edf5[_0xfef0('0x32')]({'model':db[_0xfef0('0xcd')],'as':_0xfef0('0xcd'),'raw':!![]});}var _0x484361=[{'model':db[_0xfef0('0xb1')],'as':'Messages','attributes':['id',_0xfef0('0x6e'),'createdAt','direction','secret',_0xfef0('0x7a')],'include':_0x44edf5}];_0x484361['push']({'model':db['WhatsappAccount'],'as':_0xfef0('0xce'),'attributes':['id',_0xfef0('0x2d')]});_0x484361['push']({'model':db[_0xfef0('0x6b')],'as':_0xfef0('0xcf'),'attributes':['id',_0xfef0('0xca')]});return db['WhatsappInteraction']['find']({'where':{'id':_0x454fab[_0xfef0('0xaa')]['id']},'include':_0x484361})[_0xfef0('0x2a')](handleEntityNotFound(_0x4894da,null))[_0xfef0('0x2a')](function(_0x3aba7e){if(_0x3aba7e){var _0x33f519=_0x3aba7e[_0xfef0('0xd0')]({'plain':!![]});fs[_0xfef0('0xd1')](_0x36a86c);var _0x4cd787={'format':'A4','border':_0xfef0('0xd2'),'header':{'height':_0xfef0('0xd3'),'contents':{'first':_0xfef0('0xd4')}},'footer':{'height':_0xfef0('0xd5'),'contents':{'default':util['format']('<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>',util[_0xfef0('0xb9')](_0xfef0('0xd6'),_0xfef0('0xd7'),_0x33f519['id']),moment()[_0xfef0('0xb9')](_0xfef0('0xd8'))[_0xfef0('0x91')]())}}};var _0xe24c2d={'channel':'Whatsapp','account':_0x33f519['Account']['name'],'agent':_0x33f519[_0xfef0('0xcf')]?_0x33f519['Owner'][_0xfef0('0xca')]:'N.A.','createdAt':moment(_0x33f519[_0xfef0('0xd9')])['format'](_0xfef0('0xba'))[_0xfef0('0x91')](),'closedAt':_0x33f519[_0xfef0('0xda')]?moment(_0x33f519[_0xfef0('0xdb')])[_0xfef0('0xb9')]('YYYY-MM-DD\x20HH:mm:ss')[_0xfef0('0x91')]():'','disposition':_0x33f519[_0xfef0('0xdc')],'messages':_(_0x33f519[_0xfef0('0xdd')])[_0xfef0('0x7e')]({'secret':![]})['map'](function(_0x6c77b0){if(_0x6c77b0['Attachment']){var _0x4c861d=path[_0xfef0('0xc8')](_0x275c64,_0x6c77b0['Attachment']['basename']);if(fs[_0xfef0('0xde')](_0x4c861d)){fs['createReadStream'](_0x4c861d)[_0xfef0('0xdf')](fs[_0xfef0('0xe0')](path[_0xfef0('0xc8')](_0x36a86c,_0x6c77b0[_0xfef0('0xcd')][_0xfef0('0xe1')])));}}return{'date':moment(_0x6c77b0[_0xfef0('0xd9')])['format'](_0xfef0('0xba'))[_0xfef0('0x91')](),'sender':_0x6c77b0[_0xfef0('0xe2')]==='out'?_0x6c77b0[_0xfef0('0x6b')]?_0x6c77b0['User'][_0xfef0('0xca')]:_0xfef0('0xe3'):_0x6c77b0[_0xfef0('0xcb')]['firstName']+(_0x6c77b0[_0xfef0('0xcb')]['lastName']?'\x20'+_0x6c77b0['Contact'][_0xfef0('0xe4')]:''),'body':_0x6c77b0[_0xfef0('0xcd')]?_0x6c77b0['Attachment'][_0xfef0('0xe1')]:_0x6c77b0[_0xfef0('0x6e')],'direction':_0x6c77b0[_0xfef0('0xe2')]===_0xfef0('0xe5')?'A':'C','secret':_0x6c77b0['secret'],'read':_0x6c77b0[_0xfef0('0x7a')],'attachment':_0x6c77b0['Attachment']};})[_0xfef0('0x61')]()};return ejs[_0xfef0('0xe6')](path[_0xfef0('0xc8')](config[_0xfef0('0xc3')],_0xfef0('0xc6'),_0xfef0('0xe7'),_0xfef0('0xe8')),{'interaction':_0xe24c2d})[_0xfef0('0x2a')](function(_0x360716){return new BPromise(function(_0x4aa83b,_0x9d311f){pdf[_0xfef0('0xae')](_0x360716,_0x4cd787)['toFile'](path[_0xfef0('0xc8')](_0x36a86c,'transcript-'+_0x33f519['id']+'-'+_0x34bcc3+_0xfef0('0xe9')),function(_0x3fe64b,_0x13c455){if(_0x3fe64b)return _0x9d311f(_0x3fe64b);_0x4aa83b(_0x13c455);});});})[_0xfef0('0x2a')](function(){return new BPromise(function(_0x2bf0f0,_0x537f82){zipdir(_0x36a86c,{'saveTo':_0x4d9d49},function(_0xa130df,_0x31de16){if(_0xa130df)return _0x537f82(_0xa130df);return _0x2bf0f0(_0x31de16);});})[_0xfef0('0x2a')](function(){return new BPromise(function(_0x5b8745,_0x5df6d5){rimraf(_0x36a86c,function(_0x14da8b){if(_0x14da8b)_0x5df6d5(_0x14da8b);return _0x5b8745();});});})[_0xfef0('0x2a')](function(){return _0x4894da[_0xfef0('0xc2')](_0x4d9d49,_0x287105,function(_0x25f46f){if(_0x25f46f){console['log'](_0xfef0('0xea'),_0x25f46f);}else{fs['unlinkSync'](_0x4d9d49);}});});});}else{return _0x4894da[_0xfef0('0x2b')](0xc8);}})[_0xfef0('0x33')](handleError(_0x4894da,null));};
\ No newline at end of file