Built motion from commit 775e2a94.|2.6.3
[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 _0xc556=['tmp','attachments','transcript-%d-%s.zip','CmContact','Contact','lastName','Messages','createdAt','direction','secret','SmsAccount','Owner','Account','N.A.','closedAt','YYYY-MM-DD\x20HH:mm:ss','out','System','renderFile','views','transcript-','.pdf','Sms','createPdfFromHTML','log','err','unlinkSync','eml-format','request-promise','moment','mustache','util','sox','to-csv','lodash','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/export/pdf','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','./smsInteraction.socket','sendStatus','status','json','offset','undefined','limit','count','apply','reject','save','update','destroy','then','end','error','stack','name','send','Users','fullname','TagIds','Tags','split','push','catch','waiting','answered','unmanaged','total','closed','UserId','talking','map','SmsInteraction','rawAttributes','fieldName','key','model','filters','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','select','field','color','u.id','u.fullname','from','users','u.id\x20=\x20ui.UserId','sms_interactions','left_join','o.id\x20=\x20i.UserId','sms_accounts','a.id\x20=\x20i.SmsAccountId','sms_messages','me.SmsInteractionId\x20=\x20i.id','sms_interaction_has_tags','tools_tags','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','having','`\x20>\x200','operator','$substring','value','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','type','text','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','start','body','keys','compact','isEmpty','i.SmsAccountId\x20IN\x20?','parse','$gte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','isArray','tag','forEach','filter','replace','i.id\x20LIKE\x20?','i.phone\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','Sequelize','QueryTypes','SELECT','clone','contactName','t.id\x20IN\x20?','resolve','SmsAccountId','i.SmsAccountId\x20IS\x20NOT\x20NULL','user','getSmsAccounts','i.SmsAccountId\x20IS\x20NULL','role','agent','sequelize','toString','keyBy','merge','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','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','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.SmsInteractionId\x20IN\x20?','groupBy','SmsInteractionId','all','rows','show','params','includeAll','include','options','create','describe','addMessage','SmsMessage','ids','getMessages','findOne','format','findAll','addTags','setTags','spread','emit','smsInteractionTags:save','download','unix','join','root','server','files'];(function(_0x2f8bc6,_0x4dc869){var _0x2d008a=function(_0x276072){while(--_0x276072){_0x2f8bc6['push'](_0x2f8bc6['shift']());}};_0x2d008a(++_0x4dc869);}(_0xc556,0x1eb));var _0x6c55=function(_0x1968b1,_0x58467d){_0x1968b1=_0x1968b1-0x0;var _0x447458=_0xc556[_0x1968b1];return _0x447458;};'use strict';var emlformat=require(_0x6c55('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x6c55('0x1'));var moment=require(_0x6c55('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x6c55('0x3'));var util=require(_0x6c55('0x4'));var path=require('path');var sox=require(_0x6c55('0x5'));var csv=require(_0x6c55('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6c55('0x7'));var squel=require('squel');var crypto=require(_0x6c55('0x8'));var jsforce=require(_0x6c55('0x9'));var deskjs=require(_0x6c55('0xa'));var toCsv=require(_0x6c55('0x6'));var querystring=require(_0x6c55('0xb'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x6c55('0xc'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var pdf=require(_0x6c55('0xd'));var hardwareService=require(_0x6c55('0xe'));var logger=require('../../config/logger')(_0x6c55('0xf'));var utils=require(_0x6c55('0x10'));var config=require(_0x6c55('0x11'));var licenseUtil=require(_0x6c55('0x12'));var db=require(_0x6c55('0x13'))['db'];config['redis']=_['defaults'](config[_0x6c55('0x14')],{'host':_0x6c55('0x15'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x6c55('0x14')]));require(_0x6c55('0x16'))['register'](socket);function respondWithStatusCode(_0x2d1fe2,_0xde1a81){_0xde1a81=_0xde1a81||0xcc;return function(_0x146c42){if(_0x146c42){return _0x2d1fe2[_0x6c55('0x17')](_0xde1a81);}return _0x2d1fe2[_0x6c55('0x18')](_0xde1a81)['end']();};}function respondWithResult(_0x243d13,_0x3cd0f4){_0x3cd0f4=_0x3cd0f4||0xc8;return function(_0x1183c0){if(_0x1183c0){return _0x243d13[_0x6c55('0x18')](_0x3cd0f4)[_0x6c55('0x19')](_0x1183c0);}};}function respondWithFilteredResult(_0x1128ff,_0x1f1204){return function(_0xb6d6e){if(_0xb6d6e){var _0x116fed=typeof _0x1f1204[_0x6c55('0x1a')]===_0x6c55('0x1b')&&typeof _0x1f1204[_0x6c55('0x1c')]===_0x6c55('0x1b');var _0x228ef4=_0xb6d6e['count'];var _0x5e15bb=_0x116fed?0x0:_0x1f1204[_0x6c55('0x1a')];var _0x223fba=_0x116fed?_0xb6d6e[_0x6c55('0x1d')]:_0x1f1204[_0x6c55('0x1a')]+_0x1f1204[_0x6c55('0x1c')];var _0x28cdd6;if(_0x223fba>=_0x228ef4){_0x223fba=_0x228ef4;_0x28cdd6=0xc8;}else{_0x28cdd6=0xce;}_0x1128ff[_0x6c55('0x18')](_0x28cdd6);return _0x1128ff['set']('Content-Range',_0x5e15bb+'-'+_0x223fba+'/'+_0x228ef4)[_0x6c55('0x19')](_0xb6d6e);}return null;};}function patchUpdates(_0x225ead){return function(_0x4d4a91){try{jsonpatch[_0x6c55('0x1e')](_0x4d4a91,_0x225ead,!![]);}catch(_0x5ea7db){return BPromise[_0x6c55('0x1f')](_0x5ea7db);}return _0x4d4a91[_0x6c55('0x20')]();};}function saveUpdates(_0x5930f9,_0x4c7bca){return function(_0x24a3e2){if(_0x24a3e2){return _0x24a3e2[_0x6c55('0x21')](_0x5930f9)['then'](function(_0x33421e){return _0x33421e;});}return null;};}function removeEntity(_0x1a6268,_0x417d25){return function(_0x597e42){if(_0x597e42){return _0x597e42[_0x6c55('0x22')]()[_0x6c55('0x23')](function(){_0x1a6268[_0x6c55('0x18')](0xcc)[_0x6c55('0x24')]();});}};}function handleEntityNotFound(_0x22f99c,_0x452eb6){return function(_0x363264){if(!_0x363264){_0x22f99c[_0x6c55('0x17')](0x194);}return _0x363264;};}function handleError(_0x1931ed,_0x9b768e){_0x9b768e=_0x9b768e||0x1f4;return function(_0x1681cc){logger[_0x6c55('0x25')](_0x1681cc[_0x6c55('0x26')]);if(_0x1681cc[_0x6c55('0x27')]){delete _0x1681cc['name'];}_0x1931ed['status'](_0x9b768e)[_0x6c55('0x28')](_0x1681cc);};}function getInteractionUsers(_0x2c171b,_0xbe228b){return new BPromise(function(_0x1d8a96,_0x447172){try{if(_0xbe228b[_0x2c171b['id']]){_0x2c171b[_0x6c55('0x29')]=_['map'](_0xbe228b[_0x2c171b['id']],function(_0x55402e){return{'id':_0x55402e['id'],'fullname':_0x55402e[_0x6c55('0x2a')]};});}}catch(_0x148081){_0x447172(_0x148081);}_0x1d8a96(_0x2c171b);});}function getInteractionTags(_0x3794ac,_0x7cf95b){return new BPromise(function(_0x27d75d,_0x46a459){try{if(_0x3794ac[_0x6c55('0x2b')]){_0x3794ac[_0x6c55('0x2c')]=[];_0x3794ac[_0x6c55('0x2b')][_0x6c55('0x2d')](',')['forEach'](function(_0x55c0c4){_0x3794ac[_0x6c55('0x2c')][_0x6c55('0x2e')](_0x7cf95b[_0x55c0c4]);});}delete _0x3794ac['TagIds'];}catch(_0x158e0a){_0x46a459(_0x158e0a);}_0x27d75d(_0x3794ac);});}function updateSmsInteraction(_0x4205eb,_0xc4ece1,_0x277b1f){return new BPromise(function(_0x47f3dc,_0x26d883){return getInteractionUsers(_0x4205eb,_0x277b1f)[_0x6c55('0x23')](function(_0x70fc07){return getInteractionTags(_0x70fc07,_0xc4ece1);})[_0x6c55('0x23')](function(_0x122661){return getStateInteraction(_0x122661);})['then'](function(_0x4d0e83){_0x47f3dc(_0x4d0e83);})[_0x6c55('0x2f')](function(_0x560b17){_0x26d883(_0x560b17);});});}function getStateInteraction(_0x58a867){return new BPromise(function(_0x41be3b){_0x58a867[_0x6c55('0x30')]=0x0;_0x58a867['talking']=0x0;_0x58a867[_0x6c55('0x31')]=0x0;_0x58a867[_0x6c55('0x32')]=0x0;_0x58a867[_0x6c55('0x33')]=0x0;if(!_0x58a867[_0x6c55('0x34')]&&!_0x58a867['UserId']){_0x58a867[_0x6c55('0x30')]+=0x1;}if(!_0x58a867[_0x6c55('0x34')]&&_0x58a867[_0x6c55('0x35')]){_0x58a867[_0x6c55('0x36')]+=0x1;if(_0x58a867[_0x6c55('0x30')]){_0x58a867[_0x6c55('0x30')]-=0x1;}}if(_0x58a867[_0x6c55('0x34')]&&_0x58a867['UserId']){_0x58a867[_0x6c55('0x31')]+=0x1;if(_0x58a867[_0x6c55('0x36')]){_0x58a867[_0x6c55('0x36')]-=0x1;}}if(_0x58a867['closed']&&!_0x58a867[_0x6c55('0x35')]){_0x58a867[_0x6c55('0x32')]+=0x1;if(_0x58a867[_0x6c55('0x30')]){_0x58a867[_0x6c55('0x30')]-=0x1;}}_0x58a867[_0x6c55('0x33')]+=0x1;_0x41be3b(_0x58a867);});}exports['index']=function(_0x15a910,_0x130283){var _0xc16b64={},_0x272c3a={},_0x10b39e={'count':0x0,'rows':[]};var _0x3286f9=_[_0x6c55('0x37')](db[_0x6c55('0x38')][_0x6c55('0x39')],function(_0x18a170){return{'name':_0x18a170[_0x6c55('0x3a')],'type':_0x18a170['type'][_0x6c55('0x3b')]};});_0x272c3a[_0x6c55('0x3c')]=_[_0x6c55('0x37')](_0x3286f9,_0x6c55('0x27'));_0x272c3a['query']=_['keys'](_0x15a910['query']);_0x272c3a[_0x6c55('0x3d')]=_[_0x6c55('0x3e')](_0x272c3a[_0x6c55('0x3c')],_0x272c3a[_0x6c55('0x3f')]);_0xc16b64[_0x6c55('0x40')]=_[_0x6c55('0x3e')](_0x272c3a[_0x6c55('0x3c')],qs[_0x6c55('0x41')](_0x15a910['query'][_0x6c55('0x41')]));_0xc16b64[_0x6c55('0x40')]=_0xc16b64[_0x6c55('0x40')][_0x6c55('0x42')]?_0xc16b64[_0x6c55('0x40')]:_0x272c3a[_0x6c55('0x3c')];if(!_0x15a910[_0x6c55('0x3f')][_0x6c55('0x43')](_0x6c55('0x44'))){_0xc16b64[_0x6c55('0x1c')]=qs[_0x6c55('0x1c')](_0x15a910[_0x6c55('0x3f')][_0x6c55('0x1c')]);_0xc16b64['offset']=qs[_0x6c55('0x1a')](_0x15a910[_0x6c55('0x3f')]['offset']);}_0xc16b64[_0x6c55('0x45')]=qs[_0x6c55('0x46')](_0x15a910[_0x6c55('0x3f')][_0x6c55('0x46')]);_0xc16b64[_0x6c55('0x47')]=qs[_0x6c55('0x3d')](_[_0x6c55('0x48')](_0x15a910[_0x6c55('0x3f')],_0x272c3a[_0x6c55('0x3d')]),_0x3286f9);var _0x1600f1=[];var _0xedad0e=squel[_0x6c55('0x49')]()[_0x6c55('0x4a')]('id')[_0x6c55('0x4a')](_0x6c55('0x27'))[_0x6c55('0x4a')](_0x6c55('0x4b'))['from']('tools_tags');var _0x2d64ee=squel[_0x6c55('0x49')]()['field'](_0x6c55('0x4c'))[_0x6c55('0x4a')](_0x6c55('0x4d'))['field']('ui.SmsInteractionId')[_0x6c55('0x4e')]('user_has_sms_interactions','ui')['left_join'](_0x6c55('0x4f'),'u',_0x6c55('0x50'));var _0xff81dc=squel[_0x6c55('0x49')]()[_0x6c55('0x4e')](_0x6c55('0x51'),'i')[_0x6c55('0x52')]('cm_contacts','c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0x6c55('0x52')](_0x6c55('0x4f'),'o',_0x6c55('0x53'))[_0x6c55('0x52')](_0x6c55('0x54'),'a',_0x6c55('0x55'))[_0x6c55('0x52')](_0x6c55('0x56'),'me',_0x6c55('0x57'))[_0x6c55('0x52')](_0x6c55('0x58'),'it','it.SmsInteractionId\x20=\x20i.id')[_0x6c55('0x52')](_0x6c55('0x59'),'t',_0x6c55('0x5a'));var _0x3cd98d=squel[_0x6c55('0x5b')]();var _0x33d119=[];var _0x36bbd1=squel[_0x6c55('0x5b')]();var _0x45b234;if(_0x15a910['query'][_0x6c55('0x5c')]){_0x45b234=as[_0x6c55('0x5d')](_0x15a910[_0x6c55('0x3f')]['search']);var _0x4d230c=_0x45b234[_0x6c55('0x5e')];for(var _0x591b5a=0x0;_0x591b5a<_0x45b234[_0x6c55('0x5f')][_0x6c55('0x42')];_0x591b5a++){var _0x5b331b=_0x45b234[_0x6c55('0x5f')][_0x591b5a];var _0x3cbbe2='i';var _0x148c93=_[_0x6c55('0x60')](_0x3286f9,[_0x6c55('0x27'),_0x5b331b[_0x6c55('0x4a')]]);if(!_0x148c93){switch(_0x5b331b[_0x6c55('0x4a')]){case _0x6c55('0x61'):if(_0x5b331b['value']==0x1){_0xff81dc[_0x6c55('0x62')]('`'+_0x5b331b['field']+'`\x20=\x200');}else{_0xff81dc['having']('`'+_0x5b331b[_0x6c55('0x4a')]+_0x6c55('0x63'));}break;case'Contact':if(_0x5b331b[_0x6c55('0x64')]===_0x6c55('0x65')){if(_0x5b331b[_0x6c55('0x66')][_0x6c55('0x2d')]('\x20')['length']>0x1){_0x3cd98d[_0x4d230c]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x6c55('0x67')](_0x5b331b[_0x6c55('0x66')]),null);}else{var _0x1106e3='%'+_0x5b331b[_0x6c55('0x66')]+'%';_0x3cd98d[_0x4d230c](_0x6c55('0x68'),_0x1106e3,_0x1106e3,_0x1106e3);}}else{_0x148c93=_['find'](_0x3286f9,[_0x6c55('0x27'),_0x6c55('0x69')]);_0x5b331b['field']=_0x6c55('0x69');_0x350cc2=as[_0x6c55('0x6a')](_0x3cbbe2,_0x148c93[_0x6c55('0x6b')],_0x5b331b);_0x3cd98d[_0x4d230c](_0x350cc2[_0x6c55('0x6c')],_0x350cc2[_0x6c55('0x66')]['start'],_0x350cc2[_0x6c55('0x66')][_0x6c55('0x24')]);}break;case _0x6c55('0x6d'):var _0x4d333a=_0x5b331b[_0x6c55('0x66')][_0x6c55('0x2d')](',')[_0x6c55('0x37')](function(_0x31e0bf){return Number(_0x31e0bf);});_0x4d333a['forEach'](function(_0xa38e83){_0x36bbd1['or'](_0x6c55('0x6e'),'%,'+_0xa38e83+',%');});_0x33d119=_[_0x6c55('0x6f')](_0x33d119,_0x4d333a);break;case _0x6c55('0x70'):if(_0x5b331b[_0x6c55('0x64')]===_0x6c55('0x65')){_0x3cd98d[_0x4d230c](_0x6c55('0x71'),'%'+_0x5b331b[_0x6c55('0x66')]+'%',null);}else{_0x148c93=_[_0x6c55('0x60')](_0x3286f9,[_0x6c55('0x27'),_0x6c55('0x35')]);_0x5b331b['field']=_0x6c55('0x35');_0x350cc2=as['buildExpression'](_0x3cbbe2,_0x148c93[_0x6c55('0x6b')],_0x5b331b);_0x3cd98d[_0x4d230c](_0x350cc2['text'],_0x350cc2[_0x6c55('0x66')][_0x6c55('0x72')],_0x350cc2[_0x6c55('0x66')]['end']);}break;case _0x6c55('0x73'):_0x350cc2=as[_0x6c55('0x6a')]('me',null,_0x5b331b);_0x3cd98d[_0x4d230c](_0x350cc2['text'],_0x350cc2[_0x6c55('0x66')][_0x6c55('0x72')],_0x350cc2[_0x6c55('0x66')]['end']);break;}}else{var _0x350cc2=as[_0x6c55('0x6a')](_0x3cbbe2,_0x148c93[_0x6c55('0x6b')],_0x5b331b);_0x3cd98d[_0x4d230c](_0x350cc2[_0x6c55('0x6c')],_0x350cc2['value']['start'],_0x350cc2[_0x6c55('0x66')]['end']);}}}else{var _0x533422=_(_0x15a910['query'])[_0x6c55('0x74')]()[_0x6c55('0x37')](function(_0x14931b){return _['some'](_0x3286f9,[_0x6c55('0x27'),_0x14931b])?_0x14931b:undefined;})[_0x6c55('0x75')]()[_0x6c55('0x66')]();if(!_[_0x6c55('0x76')](_0x533422)){_0x533422['forEach'](function(_0x29236b){if(_0x29236b==='SmsAccountId'){_0xff81dc[_0x6c55('0x47')](_0x6c55('0x77'),[]['concat'](_0x15a910[_0x6c55('0x3f')][_0x29236b]));}else if(_0x29236b==='createdAt'){var _0x2fae9b=JSON[_0x6c55('0x78')](_0x15a910['query'][_0x29236b])[_0x6c55('0x79')];var _0x28d9a4=JSON['parse'](_0x15a910[_0x6c55('0x3f')][_0x29236b])['$lte'];_0xff81dc[_0x6c55('0x47')](_0x6c55('0x7a'),_0x2fae9b,_0x28d9a4);}else{if(_0x15a910[_0x6c55('0x3f')][_0x29236b]===_0x6c55('0x7b')){_0xff81dc[_0x6c55('0x47')]('i.'+_0x29236b+_0x6c55('0x7c'));}else{_0xff81dc[_0x6c55('0x47')]('i.'+_0x29236b+_0x6c55('0x7d'),_0x15a910[_0x6c55('0x3f')][_0x29236b]);}}});}if(_0x15a910[_0x6c55('0x3f')]['read']){if(_0x15a910[_0x6c55('0x3f')][_0x6c55('0x7e')]==0x1){_0xff81dc[_0x6c55('0x62')](_0x6c55('0x7f'));}else{_0xff81dc[_0x6c55('0x62')](_0x6c55('0x80'));}}if(_0x15a910[_0x6c55('0x3f')]['tag']){_0x33d119=_[_0x6c55('0x81')](_0x15a910[_0x6c55('0x3f')][_0x6c55('0x82')])?_0x15a910[_0x6c55('0x3f')][_0x6c55('0x82')]:new Array(_0x15a910[_0x6c55('0x3f')][_0x6c55('0x82')]);_0x33d119[_0x6c55('0x83')](function(_0x2c5704){_0x36bbd1['or'](_0x6c55('0x6e'),'%,'+_0x2c5704+',%');});}if(_0x15a910[_0x6c55('0x3f')][_0x6c55('0x84')]){var _0x427f7c=_0x15a910[_0x6c55('0x3f')][_0x6c55('0x84')][_0x6c55('0x85')]('\x5c','\x5c\x5c')[_0x6c55('0x85')](/'/g,'\x27\x27');if(qs['isNumeric'](_0x427f7c)){_0x3cd98d['or'](_0x6c55('0x86'),_0x427f7c+'%')['or'](_0x6c55('0x87'),_0x427f7c+'%');}else{_0x3cd98d['or'](_0x6c55('0x88'),qs[_0x6c55('0x67')](_0x427f7c))['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x427f7c+'%');}}}_0xff81dc[_0x6c55('0x47')](_0x3cd98d);_0xff81dc['group']('i.id');var _0x495747={'type':db[_0x6c55('0x89')][_0x6c55('0x8a')][_0x6c55('0x8b')],'raw':!![]};var _0x5e13f4=_0xff81dc[_0x6c55('0x8c')]();_0x5e13f4[_0x6c55('0x4a')]('i.id');_0x5e13f4[_0x6c55('0x4a')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x6c55('0x61'));if(_0xc16b64[_0x6c55('0x45')]){_0xc16b64[_0x6c55('0x45')]['forEach'](function(_0x4d9090){var _0x5d53a6=_0x4d9090[0x0]===_0x6c55('0x8d')?_0x4d9090[0x0]:'i.'+_0x4d9090[0x0];_0xff81dc['order'](_0x5d53a6,_0x4d9090[0x1]==='DESC'?![]:!![]);});}if(!_['isEmpty'](_0x33d119)){_0xff81dc['having'](_0x36bbd1);_0x5e13f4['where'](_0x6c55('0x8e'),_0x33d119);}BPromise[_0x6c55('0x8f')]()[_0x6c55('0x23')](function(){if(!_0x45b234){if(_0x15a910[_0x6c55('0x3f')][_0x6c55('0x90')])return;_0x5e13f4[_0x6c55('0x47')]('i.SmsAccountId\x20IS\x20NOT\x20NULL');_0xff81dc[_0x6c55('0x47')](_0x6c55('0x91'));return;}if(_0x15a910[_0x6c55('0x92')]['role']!=='agent')return;return _0x15a910[_0x6c55('0x92')][_0x6c55('0x93')]({'attributes':['id'],'raw':!![]})[_0x6c55('0x23')](function(_0x2aa1a0){if(_[_0x6c55('0x76')](_0x2aa1a0)){_0x5e13f4[_0x6c55('0x47')](_0x6c55('0x94'));_0xff81dc['where'](_0x6c55('0x94'));}else{_0x5e13f4[_0x6c55('0x47')](_0x6c55('0x77'),_['map'](_0x2aa1a0,'id'));_0xff81dc[_0x6c55('0x47')]('i.SmsAccountId\x20IN\x20?',_[_0x6c55('0x37')](_0x2aa1a0,'id'));}});})[_0x6c55('0x23')](function(){if(_0x15a910['user'][_0x6c55('0x95')]===_0x6c55('0x96')&&!_0x45b234&&!_0x15a910['query']['SmsAccountId'])return[];return db[_0x6c55('0x97')][_0x6c55('0x3f')](_0x5e13f4[_0x6c55('0x98')](),_0x495747);})[_0x6c55('0x23')](function(_0xb35e8a){_0x10b39e[_0x6c55('0x1d')]=_0xb35e8a[_0x6c55('0x42')];if(_0x10b39e[_0x6c55('0x1d')]===0x0)return[];return db[_0x6c55('0x97')]['query'](_0xedad0e[_0x6c55('0x98')](),_0x495747)[_0x6c55('0x23')](function(_0x51c86e){_0x1600f1=_[_0x6c55('0x99')](_0x51c86e,'id');_0x495747=_[_0x6c55('0x9a')](_0x495747,{'model':db[_0x6c55('0x38')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x15a910['query'][_0x6c55('0x41')]){_0xc16b64[_0x6c55('0x40')][_0x6c55('0x83')](function(_0x471fea){_0xff81dc[_0x6c55('0x4a')]('i.'+_0x471fea);});}else{_0xff81dc[_0x6c55('0x4a')](_0x6c55('0x9b'),_0x6c55('0x61'));_0xff81dc[_0x6c55('0x4a')]('a.key','Account.key');_0xff81dc[_0x6c55('0x4a')](_0x6c55('0x9c'),'Account.mandatoryDisposition');_0xff81dc[_0x6c55('0x4a')](_0x6c55('0x9d'),_0x6c55('0x8d'));_0xff81dc[_0x6c55('0x4a')](_0x6c55('0x9e'));_0xff81dc[_0x6c55('0x4a')](_0x6c55('0x9f'),_0x6c55('0xa0'));_0xff81dc[_0x6c55('0x4a')]('c.lastName',_0x6c55('0xa1'));_0xff81dc[_0x6c55('0x4a')](_0x6c55('0xa2'),_0x6c55('0xa3'));_0xff81dc['field'](_0x6c55('0xa4'),_0x6c55('0xa5'));_0xff81dc[_0x6c55('0x4a')](_0x6c55('0xa6'),_0x6c55('0xa7'));_0xff81dc['field'](_0x6c55('0xa8'),_0x6c55('0xa9'));_0xff81dc['field'](_0x6c55('0xaa'),_0x6c55('0xab'));_0xff81dc['field'](_0x6c55('0xac'),_0x6c55('0xad'));_0xff81dc['field'](_0x6c55('0xae'),_0x6c55('0x2b'));}if(_0xc16b64[_0x6c55('0x1c')])_0xff81dc[_0x6c55('0x1c')](_0xc16b64[_0x6c55('0x1c')]);if(_0xc16b64['offset'])_0xff81dc[_0x6c55('0x1a')](_0xc16b64[_0x6c55('0x1a')]);return db[_0x6c55('0x97')][_0x6c55('0x3f')](_0xff81dc[_0x6c55('0x98')](),_0x495747);})[_0x6c55('0x23')](function(_0x11ad95){if(_0x11ad95[_0x6c55('0x42')]>0x0)_0x2d64ee['where'](_0x6c55('0xaf'),_['map'](_0x11ad95,'id'));return db[_0x6c55('0x97')][_0x6c55('0x3f')](_0x2d64ee['toString'](),_0x495747)[_0x6c55('0x23')](function(_0x15080a){var _0x2ed8ae=_[_0x6c55('0xb0')](_0x15080a,_0x6c55('0xb1'));var _0x163e96=[];_0x11ad95[_0x6c55('0x83')](function(_0x29acf5){_0x163e96[_0x6c55('0x2e')](updateSmsInteraction(_0x29acf5,_0x1600f1,_0x2ed8ae));});return BPromise[_0x6c55('0xb2')](_0x163e96);});});})[_0x6c55('0x23')](function(_0x4119b7){_0x10b39e[_0x6c55('0xb3')]=_0x4119b7;return _0x10b39e;})[_0x6c55('0x23')](respondWithFilteredResult(_0x130283,_0xc16b64))[_0x6c55('0x2f')](handleError(_0x130283,null));};exports[_0x6c55('0xb4')]=function(_0x266c90,_0x4ac154){var _0x5469df={'raw':![],'where':{'id':_0x266c90[_0x6c55('0xb5')]['id']}},_0x5a3c={};_0x5a3c[_0x6c55('0x3c')]=_[_0x6c55('0x74')](db['SmsInteraction'][_0x6c55('0x39')]);_0x5a3c[_0x6c55('0x3f')]=_[_0x6c55('0x74')](_0x266c90[_0x6c55('0x3f')]);_0x5a3c['filters']=_[_0x6c55('0x3e')](_0x5a3c[_0x6c55('0x3c')],_0x5a3c[_0x6c55('0x3f')]);_0x5469df[_0x6c55('0x40')]=_[_0x6c55('0x3e')](_0x5a3c[_0x6c55('0x3c')],qs['fields'](_0x266c90[_0x6c55('0x3f')][_0x6c55('0x41')]));_0x5469df[_0x6c55('0x40')]=_0x5469df[_0x6c55('0x40')][_0x6c55('0x42')]?_0x5469df[_0x6c55('0x40')]:_0x5a3c['model'];if(_0x266c90['query'][_0x6c55('0xb6')]){_0x5469df[_0x6c55('0xb7')]=[{'all':!![]}];}_0x5469df=_[_0x6c55('0x9a')]({},_0x5469df,_0x266c90[_0x6c55('0xb8')]);return db[_0x6c55('0x38')][_0x6c55('0x60')](_0x5469df)[_0x6c55('0x23')](handleEntityNotFound(_0x4ac154,null))[_0x6c55('0x23')](respondWithResult(_0x4ac154,null))['catch'](handleError(_0x4ac154,null));};exports[_0x6c55('0xb9')]=function(_0x35d21f,_0x5815ff){return db[_0x6c55('0x38')]['create'](_0x35d21f[_0x6c55('0x73')],{})[_0x6c55('0x23')](respondWithResult(_0x5815ff,0xc9))[_0x6c55('0x2f')](handleError(_0x5815ff,null));};exports[_0x6c55('0x21')]=function(_0x50995f,_0x2318f7){if(_0x50995f[_0x6c55('0x73')]['id']){delete _0x50995f[_0x6c55('0x73')]['id'];}return db[_0x6c55('0x38')][_0x6c55('0x60')]({'where':{'id':_0x50995f[_0x6c55('0xb5')]['id']}})['then'](handleEntityNotFound(_0x2318f7,null))[_0x6c55('0x23')](saveUpdates(_0x50995f[_0x6c55('0x73')],null))[_0x6c55('0x23')](respondWithResult(_0x2318f7,null))[_0x6c55('0x2f')](handleError(_0x2318f7,null));};exports[_0x6c55('0x22')]=function(_0x351cd0,_0x4eb709){return db[_0x6c55('0x38')]['find']({'where':{'id':_0x351cd0['params']['id']}})['then'](handleEntityNotFound(_0x4eb709,null))['then'](removeEntity(_0x4eb709,null))[_0x6c55('0x2f')](handleError(_0x4eb709,null));};exports['describe']=function(_0x593cbc,_0x270218){return db[_0x6c55('0x38')][_0x6c55('0xba')]()[_0x6c55('0x23')](respondWithResult(_0x270218,null))[_0x6c55('0x2f')](handleError(_0x270218,null));};exports[_0x6c55('0xbb')]=function(_0x39ec88,_0x49498b,_0xc4aed5){return db[_0x6c55('0xbc')][_0x6c55('0x60')]({'where':{'id':_0x39ec88[_0x6c55('0xb5')]['id']}})[_0x6c55('0x23')](handleEntityNotFound(_0x49498b,null))[_0x6c55('0x23')](function(_0x1fc55b){if(_0x1fc55b){return _0x1fc55b[_0x6c55('0xbb')](_0x39ec88[_0x6c55('0x73')][_0x6c55('0xbd')],_['omit'](_0x39ec88[_0x6c55('0x73')],[_0x6c55('0xbd'),'id'])||{});}})[_0x6c55('0x23')](respondWithResult(_0x49498b,null))[_0x6c55('0x2f')](handleError(_0x49498b,null));};exports[_0x6c55('0xbe')]=function(_0x53d86e,_0x2656d6,_0x2201de){var _0xb4c80f={'raw':![],'where':{}};var _0xf244c8={};var _0x231c0e={'count':0x0,'rows':[]};return db[_0x6c55('0x38')][_0x6c55('0xbf')]({'where':{'id':_0x53d86e['params']['id']}})[_0x6c55('0x23')](handleEntityNotFound(_0x2656d6,null))['then'](function(_0x2f8ddb){if(_0x2f8ddb){_0xf244c8[_0x6c55('0x3c')]=_[_0x6c55('0x74')](db[_0x6c55('0xbc')]['rawAttributes']);_0xf244c8['query']=_[_0x6c55('0x74')](_0x53d86e['query']);_0xf244c8[_0x6c55('0x3d')]=_[_0x6c55('0x3e')](_0xf244c8[_0x6c55('0x3c')],_0xf244c8['query']);_0xb4c80f[_0x6c55('0x40')]=_[_0x6c55('0x3e')](_0xf244c8[_0x6c55('0x3c')],qs[_0x6c55('0x41')](_0x53d86e[_0x6c55('0x3f')][_0x6c55('0x41')]));_0xb4c80f[_0x6c55('0x40')]=_0xb4c80f[_0x6c55('0x40')][_0x6c55('0x42')]?_0xb4c80f[_0x6c55('0x40')]:_0xf244c8[_0x6c55('0x3c')];if(!_0x53d86e[_0x6c55('0x3f')][_0x6c55('0x43')](_0x6c55('0x44'))){_0xb4c80f[_0x6c55('0x1c')]=qs[_0x6c55('0x1c')](_0x53d86e[_0x6c55('0x3f')][_0x6c55('0x1c')]);_0xb4c80f['offset']=qs['offset'](_0x53d86e['query']['offset']);}_0xb4c80f['order']=qs['sort'](_0x53d86e[_0x6c55('0x3f')][_0x6c55('0x46')]);_0xb4c80f['where']=qs['filters'](_['pick'](_0x53d86e['query'],_0xf244c8[_0x6c55('0x3d')]));_0xb4c80f['where'][_0x6c55('0xb1')]=_0x2f8ddb['id'];if(_0x53d86e[_0x6c55('0x3f')][_0x6c55('0x84')]){_0xb4c80f['where']=_['merge'](_0xb4c80f[_0x6c55('0x47')],{'$or':_['map'](_0xb4c80f[_0x6c55('0x40')],function(_0x2ec2de){var _0x1fa5a3={};_0x1fa5a3[_0x2ec2de]={'$like':'%'+_0x53d86e[_0x6c55('0x3f')][_0x6c55('0x84')]+'%'};return _0x1fa5a3;})});}if(_0x53d86e['query'][_0x6c55('0x79')]){var _0x22585e=_0x53d86e[_0x6c55('0x3f')][_0x6c55('0x79')]['split'](',');var _0x4f1fe3={};_0x4f1fe3[_0x22585e[0x0]]={'$gte':moment(_0x22585e[0x1])[_0x6c55('0xc0')]('YYYY-MM-DD\x20HH:mm:ss')};_0xb4c80f[_0x6c55('0x47')]=_['merge'](_0xb4c80f['where'],_0x4f1fe3);}_0xb4c80f=_[_0x6c55('0x9a')]({},_0xb4c80f,_0x53d86e[_0x6c55('0xb8')]);return db[_0x6c55('0xbc')][_0x6c55('0x1d')]({'where':_0xb4c80f['where']})[_0x6c55('0x23')](function(_0x885fd9){_0x231c0e[_0x6c55('0x1d')]=_0x885fd9;if(_0x53d86e[_0x6c55('0x3f')]['includeAll']){_0xb4c80f[_0x6c55('0xb7')]=[{'all':!![]}];}return db[_0x6c55('0xbc')][_0x6c55('0xc1')](_0xb4c80f);})[_0x6c55('0x23')](function(_0x380485){_0x231c0e[_0x6c55('0xb3')]=_0x380485;return _0x231c0e;});}})['then'](respondWithFilteredResult(_0x2656d6,_0xb4c80f))[_0x6c55('0x2f')](handleError(_0x2656d6,null));};exports[_0x6c55('0xc2')]=function(_0x201960,_0x3ad1b3,_0x248177){return db[_0x6c55('0x38')][_0x6c55('0x60')]({'where':{'id':_0x201960[_0x6c55('0xb5')]['id']}})[_0x6c55('0x23')](handleEntityNotFound(_0x3ad1b3,null))[_0x6c55('0x23')](function(_0x236254){if(_0x236254){return _0x236254[_0x6c55('0xc3')](_0x201960[_0x6c55('0x73')]['ids'],_['omit'](_0x201960[_0x6c55('0x73')],[_0x6c55('0xbd'),'id'])||{})[_0x6c55('0xc4')](function(){return db[_0x6c55('0x6d')][_0x6c55('0xc1')]({'attributes':['id',_0x6c55('0x27'),'color'],'where':{'id':_0x201960[_0x6c55('0x73')][_0x6c55('0xbd')]}});})[_0x6c55('0x23')](function(_0x1777af){socket[_0x6c55('0xc5')](_0x6c55('0xc6'),{'id':Number(_0x201960[_0x6c55('0xb5')]['id']),'tags':_0x1777af||[]});return{'id':Number(_0x201960[_0x6c55('0xb5')]['id']),'tags':_0x1777af||[]};});}})[_0x6c55('0x23')](respondWithResult(_0x3ad1b3,null))[_0x6c55('0x2f')](handleError(_0x3ad1b3,null));};exports['removeTags']=function(_0x4977e8,_0xb57e7,_0x668c42){return db['SmsInteraction'][_0x6c55('0x60')]({'where':{'id':_0x4977e8[_0x6c55('0xb5')]['id']}})[_0x6c55('0x23')](handleEntityNotFound(_0xb57e7,null))[_0x6c55('0x23')](function(_0x2bfc98){if(_0x2bfc98){return _0x2bfc98['removeTags'](_0x4977e8[_0x6c55('0x3f')][_0x6c55('0xbd')]);}})[_0x6c55('0x23')](respondWithStatusCode(_0xb57e7,null))[_0x6c55('0x2f')](handleError(_0xb57e7,null));};exports[_0x6c55('0xc7')]=function(_0x44a979,_0x4dd153){var _0x476a27=moment()[_0x6c55('0xc8')]()[_0x6c55('0x98')]();var _0x1024a3=path[_0x6c55('0xc9')](config[_0x6c55('0xca')],_0x6c55('0xcb'),_0x6c55('0xcc'),_0x6c55('0xcd'));var _0x10f132=path[_0x6c55('0xc9')](config[_0x6c55('0xca')],_0x6c55('0xcb'),_0x6c55('0xcc'),_0x6c55('0xce'));var _0x298aa9=path[_0x6c55('0xc9')](_0x1024a3,_0x476a27);var _0x3796f3=util[_0x6c55('0xc0')](_0x6c55('0xcf'),_0x44a979[_0x6c55('0xb5')]['id'],_0x476a27);var _0x370540=path[_0x6c55('0xc9')](_0x1024a3,_0x3796f3);var _0x21a47b=[];_0x21a47b[_0x6c55('0x2e')]({'model':db[_0x6c55('0x70')],'as':_0x6c55('0x70'),'attributes':['id',_0x6c55('0x2a')],'raw':!![]});_0x21a47b[_0x6c55('0x2e')]({'model':db[_0x6c55('0xd0')],'as':_0x6c55('0xd1'),'attributes':['id','firstName',_0x6c55('0xd2')],'raw':!![]});var _0x38e8e3=[{'model':db[_0x6c55('0xbc')],'as':_0x6c55('0xd3'),'attributes':['id',_0x6c55('0x73'),_0x6c55('0xd4'),_0x6c55('0xd5'),_0x6c55('0xd6'),_0x6c55('0x7e')],'include':_0x21a47b}];_0x38e8e3[_0x6c55('0x2e')]({'model':db[_0x6c55('0xd7')],'as':'Account','attributes':['id','name']});_0x38e8e3[_0x6c55('0x2e')]({'model':db[_0x6c55('0x70')],'as':_0x6c55('0xd8'),'attributes':['id',_0x6c55('0x2a')]});return db[_0x6c55('0x38')][_0x6c55('0x60')]({'where':{'id':_0x44a979[_0x6c55('0xb5')]['id']},'include':_0x38e8e3})[_0x6c55('0x23')](handleEntityNotFound(_0x4dd153,null))[_0x6c55('0x23')](function(_0x4dd188){if(_0x4dd188){var _0x15f846=_0x4dd188['get']({'plain':!![]});fs['mkdirSync'](_0x298aa9);var _0xdc7fee={'channel':'Sms','account':_0x15f846[_0x6c55('0xd9')]['name'],'agent':_0x15f846[_0x6c55('0xd8')]?_0x15f846[_0x6c55('0xd8')][_0x6c55('0x2a')]:_0x6c55('0xda'),'createdAt':moment(_0x15f846[_0x6c55('0xd4')])[_0x6c55('0xc0')]('YYYY-MM-DD\x20HH:mm:ss')[_0x6c55('0x98')](),'closedAt':_0x15f846[_0x6c55('0x34')]?moment(_0x15f846[_0x6c55('0xdb')])[_0x6c55('0xc0')](_0x6c55('0xdc'))['toString']():'','disposition':_0x15f846['disposition'],'messages':_(_0x15f846[_0x6c55('0xd3')])[_0x6c55('0x84')]({'secret':![]})[_0x6c55('0x37')](function(_0x3abb38){return{'date':moment(_0x3abb38[_0x6c55('0xd4')])[_0x6c55('0xc0')](_0x6c55('0xdc'))['toString'](),'sender':_0x3abb38[_0x6c55('0xd5')]===_0x6c55('0xdd')?_0x3abb38[_0x6c55('0x70')]?_0x3abb38['User'][_0x6c55('0x2a')]:_0x6c55('0xde'):_0x3abb38['Contact']['firstName']+(_0x3abb38[_0x6c55('0xd1')]['lastName']?'\x20'+_0x3abb38[_0x6c55('0xd1')][_0x6c55('0xd2')]:''),'body':_0x3abb38[_0x6c55('0x73')],'direction':_0x3abb38['direction']===_0x6c55('0xdd')?'A':'C','secret':_0x3abb38['secret'],'read':_0x3abb38[_0x6c55('0x7e')]};})[_0x6c55('0x66')]()};return ejs[_0x6c55('0xdf')](path['join'](config['root'],_0x6c55('0xcb'),_0x6c55('0xe0'),'downloadInteraction.ejs'),{'interaction':_0xdc7fee})['then'](function(_0x391eb8){var _0x4162e0=path[_0x6c55('0xc9')](_0x298aa9,_0x6c55('0xe1')+_0x15f846['id']+'-'+_0x476a27+_0x6c55('0xe2'));var _0x2582d9={'path':_0x4162e0,'channel':_0x6c55('0xe3'),'interactionId':_0x15f846['id']};return pdf[_0x6c55('0xe4')](_0x391eb8,_0x2582d9);})[_0x6c55('0x23')](function(){return new BPromise(function(_0x5db3b2,_0x21e401){zipdir(_0x298aa9,{'saveTo':_0x370540},function(_0x4c2f41,_0x322530){if(_0x4c2f41)return _0x21e401(_0x4c2f41);return _0x5db3b2(_0x322530);});})[_0x6c55('0x23')](function(){return new BPromise(function(_0xb912bb,_0x3610f3){rimraf(_0x298aa9,function(_0x5dd9e5){if(_0x5dd9e5)_0x3610f3(_0x5dd9e5);return _0xb912bb();});});})[_0x6c55('0x23')](function(){return _0x4dd153[_0x6c55('0xc7')](_0x370540,_0x3796f3,function(_0x505dbb){if(_0x505dbb){console[_0x6c55('0xe5')](_0x6c55('0xe6'),_0x505dbb);}else{fs[_0x6c55('0xe7')](_0x370540);}});});});}else{return _0x4dd153[_0x6c55('0x17')](0xc8);}})[_0x6c55('0x2f')](handleError(_0x4dd153,null));};