1ebb0819311d97d95ab631644e8ee5bdb72337d6
[motion2.git] / server / api / smsInteraction / smsInteraction.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 _0x5804=['jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','defaults','redis','localhost','socket.io-emitter','./smsInteraction.socket','register','status','offset','undefined','limit','count','Content-Range','json','apply','reject','save','update','then','destroy','end','stack','name','send','render','merge','body','contact','message','agent','interaction','account','Users','map','TagIds','Tags','split','forEach','push','catch','index','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','select','field','from','tools_tags','u.id','u.fullname','ui.SmsInteractionId','user_has_sms_interactions','left_join','users','sms_interactions','cm_contacts','o.id\x20=\x20i.UserId','sms_accounts','a.id\x20=\x20i.SmsAccountId','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','having','`\x20=\x200','Contact','$substring','getFullTextValue','value','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','text','start','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','operator','UserId','buildExpression','some','compact','isEmpty','SmsAccountId','i.SmsAccountId\x20IN\x20?','concat','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','\x20=\x20?','read','`unreadMessages`\x20=\x200','isArray','tag','filter','replace','isNumeric','i.id\x20LIKE\x20?','i.phone\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','i.id','Sequelize','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','DESC','t.id\x20IN\x20?','resolve','i.SmsAccountId\x20IS\x20NOT\x20NULL','role','user','getSmsAccounts','i.SmsAccountId\x20IS\x20NULL','sequelize','toString','SmsInteraction','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','Contact.firstName','c.lastName','Contact.lastName','Contact.email','c.phone','Contact.phone','c.mobile','c.fax','Contact.fax','Owner.fullname','o.internal','Owner.internal','ui.SmsInteractionId\x20IN\x20?','SmsInteractionId','rows','show','params','includeAll','include','options','create','describe','addMessage','SmsMessage','ids','omit','getMessages','hasOwnProperty','addTags','setTags','spread','findAll','color','removeTags','download','unix','join','root','files','server','attachments','format','transcript-%d-%s.zip','fullname','firstName','lastName','Messages','createdAt','direction','secret','Owner','mkdirSync','Sms','Account','YYYY-MM-DD\x20HH:mm:ss','closed','closedAt','out','System','views','.pdf','createPdfFromHTML','log','unlinkSync','sendStatus','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel'];(function(_0x4a9433,_0x5337cb){var _0x434947=function(_0x3ab6cd){while(--_0x3ab6cd){_0x4a9433['push'](_0x4a9433['shift']());}};_0x434947(++_0x5337cb);}(_0x5804,0x1c6));var _0x4580=function(_0x30d14d,_0x5b7cdc){_0x30d14d=_0x30d14d-0x0;var _0x47054e=_0x5804[_0x30d14d];return _0x47054e;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x4580('0x0'));var zipdir=require(_0x4580('0x1'));var jsonpatch=require(_0x4580('0x2'));var rp=require(_0x4580('0x3'));var moment=require(_0x4580('0x4'));var BPromise=require(_0x4580('0x5'));var Mustache=require(_0x4580('0x6'));var util=require('util');var path=require(_0x4580('0x7'));var sox=require(_0x4580('0x8'));var csv=require(_0x4580('0x9'));var ejs=require(_0x4580('0xa'));var fs=require('fs');var fs_extra=require(_0x4580('0xb'));var _=require(_0x4580('0xc'));var squel=require(_0x4580('0xd'));var crypto=require('crypto');var jsforce=require(_0x4580('0xe'));var deskjs=require(_0x4580('0xf'));var toCsv=require(_0x4580('0x9'));var querystring=require('querystring');var Papa=require(_0x4580('0x10'));var Redis=require(_0x4580('0x11'));var authService=require(_0x4580('0x12'));var qs=require(_0x4580('0x13'));var as=require(_0x4580('0x14'));var pdf=require(_0x4580('0x15'));var hardwareService=require(_0x4580('0x16'));var logger=require(_0x4580('0x17'))('api');var utils=require(_0x4580('0x18'));var config=require(_0x4580('0x19'));var licenseUtil=require(_0x4580('0x1a'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x4580('0x1b')](config[_0x4580('0x1c')],{'host':_0x4580('0x1d'),'port':0x18eb});var socket=require(_0x4580('0x1e'))(new Redis(config[_0x4580('0x1c')]));require(_0x4580('0x1f'))[_0x4580('0x20')](socket);function respondWithStatusCode(_0xc1f8b8,_0x2494d6){_0x2494d6=_0x2494d6||0xcc;return function(_0x361637){if(_0x361637){return _0xc1f8b8['sendStatus'](_0x2494d6);}return _0xc1f8b8['status'](_0x2494d6)['end']();};}function respondWithResult(_0xcc6089,_0x32973c){_0x32973c=_0x32973c||0xc8;return function(_0x473fac){if(_0x473fac){return _0xcc6089[_0x4580('0x21')](_0x32973c)['json'](_0x473fac);}};}function respondWithFilteredResult(_0x50cde5,_0x4e2c7b){return function(_0x372eb2){if(_0x372eb2){var _0x51e809=typeof _0x4e2c7b[_0x4580('0x22')]===_0x4580('0x23')&&typeof _0x4e2c7b[_0x4580('0x24')]===_0x4580('0x23');var _0x22ca33=_0x372eb2[_0x4580('0x25')];var _0x190d33=_0x51e809?0x0:_0x4e2c7b[_0x4580('0x22')];var _0x1b264e=_0x51e809?_0x372eb2[_0x4580('0x25')]:_0x4e2c7b[_0x4580('0x22')]+_0x4e2c7b[_0x4580('0x24')];var _0x35b8aa;if(_0x1b264e>=_0x22ca33){_0x1b264e=_0x22ca33;_0x35b8aa=0xc8;}else{_0x35b8aa=0xce;}_0x50cde5[_0x4580('0x21')](_0x35b8aa);return _0x50cde5['set'](_0x4580('0x26'),_0x190d33+'-'+_0x1b264e+'/'+_0x22ca33)[_0x4580('0x27')](_0x372eb2);}return null;};}function patchUpdates(_0xc9031c){return function(_0x3424da){try{jsonpatch[_0x4580('0x28')](_0x3424da,_0xc9031c,!![]);}catch(_0x42f614){return BPromise[_0x4580('0x29')](_0x42f614);}return _0x3424da[_0x4580('0x2a')]();};}function saveUpdates(_0x3fac10,_0x3d5675){return function(_0x584253){if(_0x584253){return _0x584253[_0x4580('0x2b')](_0x3fac10)[_0x4580('0x2c')](function(_0x274dcc){return _0x274dcc;});}return null;};}function removeEntity(_0x1a6649,_0x30a9c2){return function(_0x2de9ed){if(_0x2de9ed){return _0x2de9ed[_0x4580('0x2d')]()[_0x4580('0x2c')](function(){_0x1a6649[_0x4580('0x21')](0xcc)[_0x4580('0x2e')]();});}};}function handleEntityNotFound(_0x5e1112,_0xef51cd){return function(_0x5753e3){if(!_0x5753e3){_0x5e1112['sendStatus'](0x194);}return _0x5753e3;};}function handleError(_0x4a445e,_0x18ceda){_0x18ceda=_0x18ceda||0x1f4;return function(_0x2921e8){logger['error'](_0x2921e8[_0x4580('0x2f')]);if(_0x2921e8[_0x4580('0x30')]){delete _0x2921e8['name'];}_0x4a445e[_0x4580('0x21')](_0x18ceda)[_0x4580('0x31')](_0x2921e8);};}function getMustacheRender(_0x5bf104,_0x19b24a){return Mustache[_0x4580('0x32')](_0x5bf104,_[_0x4580('0x33')](_0x19b24a[_0x4580('0x34')],{'contact':_0x19b24a[_0x4580('0x35')],'message':_0x19b24a[_0x4580('0x36')],'agent':_0x19b24a[_0x4580('0x37')],'interaction':_0x19b24a[_0x4580('0x38')],'account':_0x19b24a[_0x4580('0x39')]}))||'';}function getInteractionUsers(_0x4c50f4,_0x5d3d69){return new BPromise(function(_0x55e159,_0x44b8c3){try{if(_0x5d3d69[_0x4c50f4['id']]){_0x4c50f4[_0x4580('0x3a')]=_[_0x4580('0x3b')](_0x5d3d69[_0x4c50f4['id']],function(_0x3bc86c){return{'id':_0x3bc86c['id'],'fullname':_0x3bc86c['fullname']};});}}catch(_0x1e6c44){_0x44b8c3(_0x1e6c44);}_0x55e159(_0x4c50f4);});}function getInteractionTags(_0x3cc837,_0x4452ee){return new BPromise(function(_0x2c3a1c,_0x2c545d){try{if(_0x3cc837[_0x4580('0x3c')]){_0x3cc837[_0x4580('0x3d')]=[];_0x3cc837[_0x4580('0x3c')][_0x4580('0x3e')](',')[_0x4580('0x3f')](function(_0x4f44bd){_0x3cc837['Tags'][_0x4580('0x40')](_0x4452ee[_0x4f44bd]);});}delete _0x3cc837[_0x4580('0x3c')];}catch(_0x46e777){_0x2c545d(_0x46e777);}_0x2c3a1c(_0x3cc837);});}function updateSmsInteraction(_0x4ad8ae,_0x58e7f3,_0x221b5e){return new BPromise(function(_0x273c44,_0x45c8df){return getInteractionUsers(_0x4ad8ae,_0x221b5e)[_0x4580('0x2c')](function(_0x260fd2){return getInteractionTags(_0x260fd2,_0x58e7f3);})[_0x4580('0x2c')](function(_0x5a79f5){_0x273c44(_0x5a79f5);})[_0x4580('0x41')](function(_0x2b40a6){_0x45c8df(_0x2b40a6);});});}exports[_0x4580('0x42')]=function(_0x5d4189,_0x448ffb){var _0x20b18e={},_0x12d550={},_0x2cd0fa={'count':0x0,'rows':[]};var _0x486f6b=_[_0x4580('0x3b')](db['SmsInteraction'][_0x4580('0x43')],function(_0x1c400c){return{'name':_0x1c400c[_0x4580('0x44')],'type':_0x1c400c[_0x4580('0x45')][_0x4580('0x46')]};});_0x12d550[_0x4580('0x47')]=_['map'](_0x486f6b,_0x4580('0x30'));_0x12d550[_0x4580('0x48')]=_[_0x4580('0x49')](_0x5d4189[_0x4580('0x48')]);_0x12d550[_0x4580('0x4a')]=_[_0x4580('0x4b')](_0x12d550[_0x4580('0x47')],_0x12d550[_0x4580('0x48')]);_0x20b18e['attributes']=_[_0x4580('0x4b')](_0x12d550[_0x4580('0x47')],qs[_0x4580('0x4c')](_0x5d4189[_0x4580('0x48')]['fields']));_0x20b18e[_0x4580('0x4d')]=_0x20b18e[_0x4580('0x4d')][_0x4580('0x4e')]?_0x20b18e[_0x4580('0x4d')]:_0x12d550['model'];if(!_0x5d4189[_0x4580('0x48')]['hasOwnProperty'](_0x4580('0x4f'))){_0x20b18e[_0x4580('0x24')]=qs[_0x4580('0x24')](_0x5d4189[_0x4580('0x48')][_0x4580('0x24')]);_0x20b18e[_0x4580('0x22')]=qs[_0x4580('0x22')](_0x5d4189['query']['offset']);}_0x20b18e[_0x4580('0x50')]=qs[_0x4580('0x51')](_0x5d4189[_0x4580('0x48')][_0x4580('0x51')]);_0x20b18e[_0x4580('0x52')]=qs['filters'](_[_0x4580('0x53')](_0x5d4189[_0x4580('0x48')],_0x12d550[_0x4580('0x4a')]),_0x486f6b);var _0x264787=[];var _0x3c2dee=squel[_0x4580('0x54')]()[_0x4580('0x55')]('id')['field'](_0x4580('0x30'))[_0x4580('0x55')]('color')[_0x4580('0x56')](_0x4580('0x57'));var _0x17fa2c=squel[_0x4580('0x54')]()['field'](_0x4580('0x58'))['field'](_0x4580('0x59'))[_0x4580('0x55')](_0x4580('0x5a'))[_0x4580('0x56')](_0x4580('0x5b'),'ui')[_0x4580('0x5c')](_0x4580('0x5d'),'u','u.id\x20=\x20ui.UserId');var _0x1b8a13=squel[_0x4580('0x54')]()[_0x4580('0x56')](_0x4580('0x5e'),'i')[_0x4580('0x5c')](_0x4580('0x5f'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')['left_join'](_0x4580('0x5d'),'o',_0x4580('0x60'))[_0x4580('0x5c')](_0x4580('0x61'),'a',_0x4580('0x62'))[_0x4580('0x5c')]('sms_messages','me','me.SmsInteractionId\x20=\x20i.id')[_0x4580('0x5c')]('sms_interaction_has_tags','it','it.SmsInteractionId\x20=\x20i.id')[_0x4580('0x5c')](_0x4580('0x57'),'t',_0x4580('0x63'));var _0x4466b4=squel[_0x4580('0x64')]();var _0x47504b=[];var _0x147793=squel[_0x4580('0x64')]();var _0x3652c9;if(_0x5d4189[_0x4580('0x48')][_0x4580('0x65')]){_0x3652c9=as[_0x4580('0x66')](_0x5d4189[_0x4580('0x48')][_0x4580('0x65')]);var _0x4c9305=_0x3652c9[_0x4580('0x67')];for(var _0x4903da=0x0;_0x4903da<_0x3652c9['conditions'][_0x4580('0x4e')];_0x4903da++){var _0x42276c=_0x3652c9[_0x4580('0x68')][_0x4903da];var _0x325263='i';var _0x4fbf94=_[_0x4580('0x69')](_0x486f6b,[_0x4580('0x30'),_0x42276c['field']]);if(!_0x4fbf94){switch(_0x42276c[_0x4580('0x55')]){case _0x4580('0x6a'):if(_0x42276c['value']==0x1){_0x1b8a13[_0x4580('0x6b')]('`'+_0x42276c[_0x4580('0x55')]+_0x4580('0x6c'));}else{_0x1b8a13['having']('`'+_0x42276c[_0x4580('0x55')]+'`\x20>\x200');}break;case _0x4580('0x6d'):if(_0x42276c['operator']===_0x4580('0x6e')){if(_0x42276c['value'][_0x4580('0x3e')]('\x20')[_0x4580('0x4e')]>0x1){_0x4466b4[_0x4c9305]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x4580('0x6f')](_0x42276c['value']),null);}else{var _0x4b220a='%'+_0x42276c[_0x4580('0x70')]+'%';_0x4466b4[_0x4c9305](_0x4580('0x71'),_0x4b220a,_0x4b220a,_0x4b220a);}}else{_0x4fbf94=_['find'](_0x486f6b,['name',_0x4580('0x72')]);_0x42276c[_0x4580('0x55')]=_0x4580('0x72');_0x27518c=as['buildExpression'](_0x325263,_0x4fbf94[_0x4580('0x45')],_0x42276c);_0x4466b4[_0x4c9305](_0x27518c[_0x4580('0x73')],_0x27518c[_0x4580('0x70')][_0x4580('0x74')],_0x27518c[_0x4580('0x70')]['end']);}break;case'Tag':var _0x41abb=_0x42276c[_0x4580('0x70')][_0x4580('0x3e')](',')[_0x4580('0x3b')](function(_0x29cc27){return Number(_0x29cc27);});_0x41abb[_0x4580('0x3f')](function(_0x5f16f7){_0x147793['or'](_0x4580('0x75'),'%,'+_0x5f16f7+',%');});_0x47504b=_[_0x4580('0x76')](_0x47504b,_0x41abb);break;case _0x4580('0x77'):if(_0x42276c[_0x4580('0x78')]===_0x4580('0x6e')){_0x4466b4[_0x4c9305]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x42276c[_0x4580('0x70')]+'%',null);}else{_0x4fbf94=_[_0x4580('0x69')](_0x486f6b,[_0x4580('0x30'),'UserId']);_0x42276c[_0x4580('0x55')]=_0x4580('0x79');_0x27518c=as[_0x4580('0x7a')](_0x325263,_0x4fbf94[_0x4580('0x45')],_0x42276c);_0x4466b4[_0x4c9305](_0x27518c[_0x4580('0x73')],_0x27518c[_0x4580('0x70')][_0x4580('0x74')],_0x27518c[_0x4580('0x70')][_0x4580('0x2e')]);}break;case'body':_0x27518c=as['buildExpression']('me',null,_0x42276c);_0x4466b4[_0x4c9305](_0x27518c[_0x4580('0x73')],_0x27518c[_0x4580('0x70')][_0x4580('0x74')],_0x27518c[_0x4580('0x70')][_0x4580('0x2e')]);break;}}else{var _0x27518c=as[_0x4580('0x7a')](_0x325263,_0x4fbf94[_0x4580('0x45')],_0x42276c);_0x4466b4[_0x4c9305](_0x27518c[_0x4580('0x73')],_0x27518c[_0x4580('0x70')]['start'],_0x27518c[_0x4580('0x70')][_0x4580('0x2e')]);}}}else{var _0x28ef13=_(_0x5d4189[_0x4580('0x48')])['keys']()['map'](function(_0x26a4c4){return _[_0x4580('0x7b')](_0x486f6b,[_0x4580('0x30'),_0x26a4c4])?_0x26a4c4:undefined;})[_0x4580('0x7c')]()[_0x4580('0x70')]();if(!_[_0x4580('0x7d')](_0x28ef13)){_0x28ef13[_0x4580('0x3f')](function(_0x226c71){if(_0x226c71===_0x4580('0x7e')){_0x1b8a13[_0x4580('0x52')](_0x4580('0x7f'),[][_0x4580('0x80')](_0x5d4189[_0x4580('0x48')][_0x226c71]));}else if(_0x226c71==='createdAt'){var _0xc68c59=JSON[_0x4580('0x81')](_0x5d4189[_0x4580('0x48')][_0x226c71])[_0x4580('0x82')];var _0x2fc948=JSON[_0x4580('0x81')](_0x5d4189['query'][_0x226c71])[_0x4580('0x83')];_0x1b8a13[_0x4580('0x52')](_0x4580('0x84'),_0xc68c59,_0x2fc948);}else{if(_0x5d4189['query'][_0x226c71]==='null'){_0x1b8a13[_0x4580('0x52')]('i.'+_0x226c71+'\x20IS\x20NULL');}else{_0x1b8a13[_0x4580('0x52')]('i.'+_0x226c71+_0x4580('0x85'),_0x5d4189[_0x4580('0x48')][_0x226c71]);}}});}if(_0x5d4189[_0x4580('0x48')][_0x4580('0x86')]){if(_0x5d4189['query'][_0x4580('0x86')]==0x1){_0x1b8a13[_0x4580('0x6b')](_0x4580('0x87'));}else{_0x1b8a13[_0x4580('0x6b')]('`unreadMessages`\x20>\x200');}}if(_0x5d4189[_0x4580('0x48')]['tag']){_0x47504b=_[_0x4580('0x88')](_0x5d4189[_0x4580('0x48')][_0x4580('0x89')])?_0x5d4189['query'][_0x4580('0x89')]:new Array(_0x5d4189[_0x4580('0x48')]['tag']);_0x47504b['forEach'](function(_0x16334f){_0x147793['or'](_0x4580('0x75'),'%,'+_0x16334f+',%');});}if(_0x5d4189['query'][_0x4580('0x8a')]){var _0x19fb29=_0x5d4189[_0x4580('0x48')][_0x4580('0x8a')][_0x4580('0x8b')]('\x5c','\x5c\x5c')[_0x4580('0x8b')](/'/g,'\x27\x27');if(qs[_0x4580('0x8c')](_0x19fb29)){_0x4466b4['or'](_0x4580('0x8d'),_0x19fb29+'%')['or'](_0x4580('0x8e'),_0x19fb29+'%');}else{_0x4466b4['or'](_0x4580('0x8f'),qs['getFullTextValue'](_0x19fb29))['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x19fb29+'%');}}}_0x1b8a13[_0x4580('0x52')](_0x4466b4);_0x1b8a13[_0x4580('0x90')](_0x4580('0x91'));var _0x3384bd={'type':db[_0x4580('0x92')][_0x4580('0x93')][_0x4580('0x94')],'raw':!![]};var _0x30afd5=_0x1b8a13[_0x4580('0x95')]();_0x30afd5[_0x4580('0x55')]('i.id');_0x30afd5[_0x4580('0x55')](_0x4580('0x96'),'unreadMessages');if(_0x20b18e[_0x4580('0x50')]){_0x20b18e['order'][_0x4580('0x3f')](function(_0x12daef){var _0x3c789b=_0x12daef[0x0]==='contactName'?_0x12daef[0x0]:'i.'+_0x12daef[0x0];_0x1b8a13[_0x4580('0x50')](_0x3c789b,_0x12daef[0x1]===_0x4580('0x97')?![]:!![]);});}if(!_[_0x4580('0x7d')](_0x47504b)){_0x1b8a13[_0x4580('0x6b')](_0x147793);_0x30afd5[_0x4580('0x52')](_0x4580('0x98'),_0x47504b);}BPromise[_0x4580('0x99')]()[_0x4580('0x2c')](function(){if(!_0x3652c9){if(_0x5d4189[_0x4580('0x48')]['SmsAccountId'])return;_0x30afd5[_0x4580('0x52')](_0x4580('0x9a'));_0x1b8a13[_0x4580('0x52')](_0x4580('0x9a'));return;}if(_0x5d4189['user'][_0x4580('0x9b')]!==_0x4580('0x37'))return;return _0x5d4189[_0x4580('0x9c')][_0x4580('0x9d')]({'attributes':['id'],'raw':!![]})['then'](function(_0x5b1e47){if(_[_0x4580('0x7d')](_0x5b1e47)){_0x30afd5[_0x4580('0x52')](_0x4580('0x9e'));_0x1b8a13[_0x4580('0x52')](_0x4580('0x9e'));}else{_0x30afd5[_0x4580('0x52')](_0x4580('0x7f'),_[_0x4580('0x3b')](_0x5b1e47,'id'));_0x1b8a13[_0x4580('0x52')](_0x4580('0x7f'),_['map'](_0x5b1e47,'id'));}});})[_0x4580('0x2c')](function(){if(_0x5d4189['user']['role']==='agent'&&!_0x3652c9&&!_0x5d4189[_0x4580('0x48')][_0x4580('0x7e')])return[];return db[_0x4580('0x9f')][_0x4580('0x48')](_0x30afd5['toString'](),_0x3384bd);})[_0x4580('0x2c')](function(_0xc0b348){_0x2cd0fa['count']=_0xc0b348[_0x4580('0x4e')];if(_0x2cd0fa[_0x4580('0x25')]===0x0)return[];return db[_0x4580('0x9f')]['query'](_0x3c2dee[_0x4580('0xa0')](),_0x3384bd)['then'](function(_0x4fe0e3){_0x264787=_['keyBy'](_0x4fe0e3,'id');_0x3384bd=_['merge'](_0x3384bd,{'model':db[_0x4580('0xa1')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x5d4189['query']['fields']){_0x20b18e[_0x4580('0x4d')][_0x4580('0x3f')](function(_0xe1020a){_0x1b8a13['field']('i.'+_0xe1020a);});}else{_0x1b8a13[_0x4580('0x55')](_0x4580('0x96'),_0x4580('0x6a'));_0x1b8a13['field'](_0x4580('0xa2'),_0x4580('0xa3'));_0x1b8a13[_0x4580('0x55')](_0x4580('0xa4'),_0x4580('0xa5'));_0x1b8a13[_0x4580('0x55')](_0x4580('0xa6'),'contactName');_0x1b8a13['field'](_0x4580('0xa7'));_0x1b8a13[_0x4580('0x55')](_0x4580('0xa8'),_0x4580('0xa9'));_0x1b8a13['field'](_0x4580('0xaa'),_0x4580('0xab'));_0x1b8a13[_0x4580('0x55')]('c.email',_0x4580('0xac'));_0x1b8a13[_0x4580('0x55')](_0x4580('0xad'),_0x4580('0xae'));_0x1b8a13[_0x4580('0x55')](_0x4580('0xaf'),'Contact.mobile');_0x1b8a13[_0x4580('0x55')](_0x4580('0xb0'),_0x4580('0xb1'));_0x1b8a13[_0x4580('0x55')]('o.fullname',_0x4580('0xb2'));_0x1b8a13[_0x4580('0x55')](_0x4580('0xb3'),_0x4580('0xb4'));_0x1b8a13[_0x4580('0x55')]('GROUP_CONCAT(DISTINCT\x20t.id)',_0x4580('0x3c'));}if(_0x20b18e[_0x4580('0x24')])_0x1b8a13['limit'](_0x20b18e[_0x4580('0x24')]);if(_0x20b18e[_0x4580('0x22')])_0x1b8a13[_0x4580('0x22')](_0x20b18e[_0x4580('0x22')]);return db[_0x4580('0x9f')][_0x4580('0x48')](_0x1b8a13[_0x4580('0xa0')](),_0x3384bd);})[_0x4580('0x2c')](function(_0x58c8b2){if(_0x58c8b2['length']>0x0)_0x17fa2c[_0x4580('0x52')](_0x4580('0xb5'),_[_0x4580('0x3b')](_0x58c8b2,'id'));return db['sequelize'][_0x4580('0x48')](_0x17fa2c[_0x4580('0xa0')](),_0x3384bd)['then'](function(_0x54de53){var _0x16bb40=_['groupBy'](_0x54de53,_0x4580('0xb6'));var _0x353776=[];_0x58c8b2[_0x4580('0x3f')](function(_0x5baadf){_0x353776[_0x4580('0x40')](updateSmsInteraction(_0x5baadf,_0x264787,_0x16bb40));});return BPromise['all'](_0x353776);});});})[_0x4580('0x2c')](function(_0x322ec9){_0x2cd0fa[_0x4580('0xb7')]=_0x322ec9;return _0x2cd0fa;})[_0x4580('0x2c')](respondWithFilteredResult(_0x448ffb,_0x20b18e))[_0x4580('0x41')](handleError(_0x448ffb,null));};exports[_0x4580('0xb8')]=function(_0x2b35b5,_0x5c7539){var _0x15a94c={'raw':![],'where':{'id':_0x2b35b5[_0x4580('0xb9')]['id']}},_0x4ec810={};_0x4ec810[_0x4580('0x47')]=_['keys'](db['SmsInteraction'][_0x4580('0x43')]);_0x4ec810[_0x4580('0x48')]=_[_0x4580('0x49')](_0x2b35b5[_0x4580('0x48')]);_0x4ec810[_0x4580('0x4a')]=_['intersection'](_0x4ec810[_0x4580('0x47')],_0x4ec810['query']);_0x15a94c[_0x4580('0x4d')]=_[_0x4580('0x4b')](_0x4ec810[_0x4580('0x47')],qs['fields'](_0x2b35b5['query'][_0x4580('0x4c')]));_0x15a94c['attributes']=_0x15a94c['attributes']['length']?_0x15a94c['attributes']:_0x4ec810[_0x4580('0x47')];if(_0x2b35b5[_0x4580('0x48')][_0x4580('0xba')]){_0x15a94c[_0x4580('0xbb')]=[{'all':!![]}];}_0x15a94c=_[_0x4580('0x33')]({},_0x15a94c,_0x2b35b5[_0x4580('0xbc')]);return db[_0x4580('0xa1')][_0x4580('0x69')](_0x15a94c)[_0x4580('0x2c')](handleEntityNotFound(_0x5c7539,null))[_0x4580('0x2c')](respondWithResult(_0x5c7539,null))[_0x4580('0x41')](handleError(_0x5c7539,null));};exports[_0x4580('0xbd')]=function(_0x472cbe,_0x3fc075){return db[_0x4580('0xa1')][_0x4580('0xbd')](_0x472cbe[_0x4580('0x34')],{})[_0x4580('0x2c')](respondWithResult(_0x3fc075,0xc9))['catch'](handleError(_0x3fc075,null));};exports['update']=function(_0x10937a,_0x52d480){if(_0x10937a[_0x4580('0x34')]['id']){delete _0x10937a[_0x4580('0x34')]['id'];}return db[_0x4580('0xa1')][_0x4580('0x69')]({'where':{'id':_0x10937a[_0x4580('0xb9')]['id']}})['then'](handleEntityNotFound(_0x52d480,null))['then'](saveUpdates(_0x10937a[_0x4580('0x34')],null))[_0x4580('0x2c')](respondWithResult(_0x52d480,null))[_0x4580('0x41')](handleError(_0x52d480,null));};exports[_0x4580('0x2d')]=function(_0x281814,_0x11496d){return db[_0x4580('0xa1')]['find']({'where':{'id':_0x281814['params']['id']}})['then'](handleEntityNotFound(_0x11496d,null))[_0x4580('0x2c')](removeEntity(_0x11496d,null))['catch'](handleError(_0x11496d,null));};exports[_0x4580('0xbe')]=function(_0x37e849,_0x16e9a8){return db[_0x4580('0xa1')][_0x4580('0xbe')]()[_0x4580('0x2c')](respondWithResult(_0x16e9a8,null))[_0x4580('0x41')](handleError(_0x16e9a8,null));};exports[_0x4580('0xbf')]=function(_0x38cff4,_0x3e91c9,_0x1fbf29){return db[_0x4580('0xc0')][_0x4580('0x69')]({'where':{'id':_0x38cff4[_0x4580('0xb9')]['id']}})['then'](handleEntityNotFound(_0x3e91c9,null))['then'](function(_0x3bd3dc){if(_0x3bd3dc){return _0x3bd3dc[_0x4580('0xbf')](_0x38cff4[_0x4580('0x34')][_0x4580('0xc1')],_[_0x4580('0xc2')](_0x38cff4[_0x4580('0x34')],[_0x4580('0xc1'),'id'])||{});}})[_0x4580('0x2c')](respondWithResult(_0x3e91c9,null))[_0x4580('0x41')](handleError(_0x3e91c9,null));};exports[_0x4580('0xc3')]=function(_0xab8662,_0x148dbc,_0x57b292){var _0xaf653a={'raw':![],'where':{}};var _0x27ed62={};var _0x14c18c={'count':0x0,'rows':[]};return db['SmsInteraction']['findOne']({'where':{'id':_0xab8662[_0x4580('0xb9')]['id']}})[_0x4580('0x2c')](handleEntityNotFound(_0x148dbc,null))[_0x4580('0x2c')](function(_0x340e21){if(_0x340e21){_0x27ed62[_0x4580('0x47')]=_[_0x4580('0x49')](db[_0x4580('0xc0')][_0x4580('0x43')]);_0x27ed62[_0x4580('0x48')]=_[_0x4580('0x49')](_0xab8662[_0x4580('0x48')]);_0x27ed62[_0x4580('0x4a')]=_['intersection'](_0x27ed62[_0x4580('0x47')],_0x27ed62[_0x4580('0x48')]);_0xaf653a[_0x4580('0x4d')]=_[_0x4580('0x4b')](_0x27ed62[_0x4580('0x47')],qs[_0x4580('0x4c')](_0xab8662['query'][_0x4580('0x4c')]));_0xaf653a[_0x4580('0x4d')]=_0xaf653a[_0x4580('0x4d')][_0x4580('0x4e')]?_0xaf653a[_0x4580('0x4d')]:_0x27ed62[_0x4580('0x47')];if(!_0xab8662['query'][_0x4580('0xc4')]('nolimit')){_0xaf653a[_0x4580('0x24')]=qs[_0x4580('0x24')](_0xab8662[_0x4580('0x48')][_0x4580('0x24')]);_0xaf653a[_0x4580('0x22')]=qs[_0x4580('0x22')](_0xab8662[_0x4580('0x48')][_0x4580('0x22')]);}_0xaf653a[_0x4580('0x50')]=qs[_0x4580('0x51')](_0xab8662[_0x4580('0x48')]['sort']);_0xaf653a[_0x4580('0x52')]=qs['filters'](_[_0x4580('0x53')](_0xab8662[_0x4580('0x48')],_0x27ed62[_0x4580('0x4a')]));_0xaf653a[_0x4580('0x52')][_0x4580('0xb6')]=_0x340e21['id'];if(_0xab8662['query'][_0x4580('0x8a')]){_0xaf653a['where']=_[_0x4580('0x33')](_0xaf653a[_0x4580('0x52')],{'$or':_[_0x4580('0x3b')](_0xaf653a['attributes'],function(_0x3a0ead){var _0x5e3bab={};_0x5e3bab[_0x3a0ead]={'$like':'%'+_0xab8662[_0x4580('0x48')][_0x4580('0x8a')]+'%'};return _0x5e3bab;})});}if(_0xab8662['query']['$gte']){var _0x5492dd=_0xab8662[_0x4580('0x48')][_0x4580('0x82')][_0x4580('0x3e')](',');var _0x5ac77c={};_0x5ac77c[_0x5492dd[0x0]]={'$gte':moment(_0x5492dd[0x1])['format']('YYYY-MM-DD\x20HH:mm:ss')};_0xaf653a[_0x4580('0x52')]=_[_0x4580('0x33')](_0xaf653a[_0x4580('0x52')],_0x5ac77c);}_0xaf653a=_[_0x4580('0x33')]({},_0xaf653a,_0xab8662['options']);return db['SmsMessage']['count']({'where':_0xaf653a[_0x4580('0x52')]})['then'](function(_0x3acde1){_0x14c18c[_0x4580('0x25')]=_0x3acde1;if(_0xab8662['query'][_0x4580('0xba')]){_0xaf653a['include']=[{'all':!![]}];}return db[_0x4580('0xc0')]['findAll'](_0xaf653a);})[_0x4580('0x2c')](function(_0x4da9a6){_0x14c18c[_0x4580('0xb7')]=_0x4da9a6;return _0x14c18c;});}})[_0x4580('0x2c')](respondWithFilteredResult(_0x148dbc,_0xaf653a))[_0x4580('0x41')](handleError(_0x148dbc,null));};exports[_0x4580('0xc5')]=function(_0x443b6f,_0x87a12b,_0x7bd86d){return db[_0x4580('0xa1')][_0x4580('0x69')]({'where':{'id':_0x443b6f[_0x4580('0xb9')]['id']}})[_0x4580('0x2c')](handleEntityNotFound(_0x87a12b,null))[_0x4580('0x2c')](function(_0x113683){if(_0x113683){return _0x113683[_0x4580('0xc6')](_0x443b6f[_0x4580('0x34')][_0x4580('0xc1')],_[_0x4580('0xc2')](_0x443b6f[_0x4580('0x34')],['ids','id'])||{})[_0x4580('0xc7')](function(){return db['Tag'][_0x4580('0xc8')]({'attributes':['id',_0x4580('0x30'),_0x4580('0xc9')],'where':{'id':_0x443b6f[_0x4580('0x34')][_0x4580('0xc1')]}});})[_0x4580('0x2c')](function(_0x160c69){socket['emit']('smsInteractionTags:save',{'id':Number(_0x443b6f[_0x4580('0xb9')]['id']),'tags':_0x160c69||[]});return{'id':Number(_0x443b6f[_0x4580('0xb9')]['id']),'tags':_0x160c69||[]};});}})[_0x4580('0x2c')](respondWithResult(_0x87a12b,null))[_0x4580('0x41')](handleError(_0x87a12b,null));};exports['removeTags']=function(_0x59824f,_0x119ff2,_0x2bf16e){return db[_0x4580('0xa1')]['find']({'where':{'id':_0x59824f[_0x4580('0xb9')]['id']}})[_0x4580('0x2c')](handleEntityNotFound(_0x119ff2,null))[_0x4580('0x2c')](function(_0x35f0cc){if(_0x35f0cc){return _0x35f0cc[_0x4580('0xca')](_0x59824f[_0x4580('0x48')]['ids']);}})[_0x4580('0x2c')](respondWithStatusCode(_0x119ff2,null))[_0x4580('0x41')](handleError(_0x119ff2,null));};exports[_0x4580('0xcb')]=function(_0x598cf3,_0x15462c){var _0x4450b2=moment()[_0x4580('0xcc')]()[_0x4580('0xa0')]();var _0x19c159=path[_0x4580('0xcd')](config[_0x4580('0xce')],'server',_0x4580('0xcf'),'tmp');var _0x3d8ac8=path[_0x4580('0xcd')](config[_0x4580('0xce')],_0x4580('0xd0'),'files',_0x4580('0xd1'));var _0x23f4b9=path[_0x4580('0xcd')](_0x19c159,_0x4450b2);var _0x5698bf=util[_0x4580('0xd2')](_0x4580('0xd3'),_0x598cf3[_0x4580('0xb9')]['id'],_0x4450b2);var _0x3016cf=path[_0x4580('0xcd')](_0x19c159,_0x5698bf);var _0x24d169=[];_0x24d169[_0x4580('0x40')]({'model':db['User'],'as':_0x4580('0x77'),'attributes':['id',_0x4580('0xd4')],'raw':!![]});_0x24d169[_0x4580('0x40')]({'model':db['CmContact'],'as':_0x4580('0x6d'),'attributes':['id',_0x4580('0xd5'),_0x4580('0xd6')],'raw':!![]});var _0x41fe91=[{'model':db[_0x4580('0xc0')],'as':_0x4580('0xd7'),'attributes':['id',_0x4580('0x34'),_0x4580('0xd8'),_0x4580('0xd9'),_0x4580('0xda'),_0x4580('0x86')],'include':_0x24d169}];_0x41fe91['push']({'model':db['SmsAccount'],'as':'Account','attributes':['id',_0x4580('0x30')]});_0x41fe91[_0x4580('0x40')]({'model':db[_0x4580('0x77')],'as':_0x4580('0xdb'),'attributes':['id',_0x4580('0xd4')]});return db[_0x4580('0xa1')][_0x4580('0x69')]({'where':{'id':_0x598cf3['params']['id']},'include':_0x41fe91})['then'](handleEntityNotFound(_0x15462c,null))[_0x4580('0x2c')](function(_0x3bb66a){if(_0x3bb66a){var _0x25891a=_0x3bb66a['get']({'plain':!![]});fs[_0x4580('0xdc')](_0x23f4b9);var _0xbda403={'channel':_0x4580('0xdd'),'account':_0x25891a[_0x4580('0xde')]['name'],'agent':_0x25891a['Owner']?_0x25891a[_0x4580('0xdb')][_0x4580('0xd4')]:'N.A.','createdAt':moment(_0x25891a[_0x4580('0xd8')])['format'](_0x4580('0xdf'))[_0x4580('0xa0')](),'closedAt':_0x25891a[_0x4580('0xe0')]?moment(_0x25891a[_0x4580('0xe1')])[_0x4580('0xd2')](_0x4580('0xdf'))[_0x4580('0xa0')]():'','disposition':_0x25891a['disposition'],'messages':_(_0x25891a[_0x4580('0xd7')])[_0x4580('0x8a')]({'secret':![]})[_0x4580('0x3b')](function(_0x159342){return{'date':moment(_0x159342[_0x4580('0xd8')])['format'](_0x4580('0xdf'))['toString'](),'sender':_0x159342[_0x4580('0xd9')]===_0x4580('0xe2')?_0x159342[_0x4580('0x77')]?_0x159342[_0x4580('0x77')][_0x4580('0xd4')]:_0x4580('0xe3'):_0x159342[_0x4580('0x6d')]['firstName']+(_0x159342['Contact'][_0x4580('0xd6')]?'\x20'+_0x159342[_0x4580('0x6d')][_0x4580('0xd6')]:''),'body':_0x159342[_0x4580('0x34')],'direction':_0x159342[_0x4580('0xd9')]===_0x4580('0xe2')?'A':'C','secret':_0x159342[_0x4580('0xda')],'read':_0x159342[_0x4580('0x86')]};})[_0x4580('0x70')]()};return ejs['renderFile'](path[_0x4580('0xcd')](config[_0x4580('0xce')],_0x4580('0xd0'),_0x4580('0xe4'),'downloadInteraction.html'),{'interaction':_0xbda403})[_0x4580('0x2c')](function(_0x5c9298){var _0x3fbde2=path['join'](_0x23f4b9,'transcript-'+_0x25891a['id']+'-'+_0x4450b2+_0x4580('0xe5'));var _0x583597={'path':_0x3fbde2,'channel':_0x4580('0xdd'),'interactionId':_0x25891a['id']};return pdf[_0x4580('0xe6')](_0x5c9298,_0x583597);})[_0x4580('0x2c')](function(){return new BPromise(function(_0x508af8,_0x20bbcd){zipdir(_0x23f4b9,{'saveTo':_0x3016cf},function(_0x117153,_0x134161){if(_0x117153)return _0x20bbcd(_0x117153);return _0x508af8(_0x134161);});})['then'](function(){return new BPromise(function(_0x492843,_0x430a1a){rimraf(_0x23f4b9,function(_0x369c79){if(_0x369c79)_0x430a1a(_0x369c79);return _0x492843();});});})[_0x4580('0x2c')](function(){return _0x15462c['download'](_0x3016cf,_0x5698bf,function(_0x3ff2cf){if(_0x3ff2cf){console[_0x4580('0xe7')]('err',_0x3ff2cf);}else{fs[_0x4580('0xe8')](_0x3016cf);}});});});}else{return _0x15462c[_0x4580('0xe9')](0xc8);}})[_0x4580('0x41')](handleError(_0x15462c,null));};