d3fcf66a08cb8dcdb27f9859fbbdf1dbbcff7e83
[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 _0xdb94=['type','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','where','filters','pick','select','field','from','u.id','ui.SmsInteractionId','users','u.id\x20=\x20ui.UserId','sms_interactions','left_join','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','a.id\x20=\x20i.SmsAccountId','sms_messages','me.SmsInteractionId\x20=\x20i.id','sms_interaction_has_tags','it.SmsInteractionId\x20=\x20i.id','tools_tags','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','length','unreadMessages','value','having','`\x20=\x200','operator','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','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?','find','UserId','body','some','compact','isEmpty','SmsAccountId','createdAt','parse','$gte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','read','`unreadMessages`\x20>\x200','isArray','tag','filter','\x27\x27\x27\x27','isNumeric','i.id\x20LIKE\x20?','i.phone\x20LIKE\x20?','getFullTextValue','group','i.id','Sequelize','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','DESC','journey','i.SmsAccountId\x20IS\x20NOT\x20NULL','user','i.SmsAccountId\x20IS\x20NULL','i.SmsAccountId\x20IN\x20?','sequelize','toString','merge','Account.key','i.*','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','Contact.mobile','c.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','groupBy','all','show','params','includeAll','include','options','create','destroy','describe','addMessage','SmsMessage','ids','omit','findOne','format','findAll','rows','addTags','setTags','spread','color','smsInteractionTags:save','removeTags','download','root','files','tmp','join','transcript-%d-%s.zip','CmContact','Contact','firstName','lastName','Messages','secret','SmsAccount','Account','Owner','mkdirSync','10px','<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>','<hr\x20class=\x22separator\x22/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22footer\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22left\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>%s</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22center\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>{{page}}/{{pages}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22right\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>%s</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>','%s\x20#%d','Sms','YYYY-MM-DD','N.A.','YYYY-MM-DD\x20HH:mm:ss','disposition','System','direction','renderFile','server','views','downloadInteraction.html','toFile','transcript-','log','unlinkSync','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','path','ejs','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','defaults','socket.io-emitter','redis','register','end','status','count','offset','set','Content-Range','apply','reject','save','update','then','sendStatus','error','stack','name','send','Users','map','fullname','TagIds','Tags','split','forEach','push','catch','SmsInteraction','rawAttributes'];(function(_0x287528,_0x2fbba7){var _0xc05e28=function(_0x264866){while(--_0x264866){_0x287528['push'](_0x287528['shift']());}};_0xc05e28(++_0x2fbba7);}(_0xdb94,0xab));var _0x4db9=function(_0x2da37f,_0x102d53){_0x2da37f=_0x2da37f-0x0;var _0x46a4c2=_0xdb94[_0x2da37f];return _0x46a4c2;};'use strict';var pdf=require(_0x4db9('0x0'));var emlformat=require(_0x4db9('0x1'));var rimraf=require(_0x4db9('0x2'));var zipdir=require(_0x4db9('0x3'));var jsonpatch=require(_0x4db9('0x4'));var rp=require('request-promise');var moment=require(_0x4db9('0x5'));var BPromise=require(_0x4db9('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0x4db9('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x4db9('0x8'));var fs=require('fs');var _=require('lodash');var squel=require(_0x4db9('0x9'));var crypto=require('crypto');var jsforce=require(_0x4db9('0xa'));var deskjs=require(_0x4db9('0xb'));var toCsv=require(_0x4db9('0xc'));var querystring=require(_0x4db9('0xd'));var Papa=require(_0x4db9('0xe'));var Redis=require(_0x4db9('0xf'));var authService=require(_0x4db9('0x10'));var qs=require(_0x4db9('0x11'));var as=require(_0x4db9('0x12'));var hardwareService=require(_0x4db9('0x13'));var logger=require(_0x4db9('0x14'))('api');var utils=require(_0x4db9('0x15'));var config=require(_0x4db9('0x16'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x4db9('0x17')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x4db9('0x18'))(new Redis(config[_0x4db9('0x19')]));require('./smsInteraction.socket')[_0x4db9('0x1a')](socket);function respondWithStatusCode(_0x1f9638,_0x452896){_0x452896=_0x452896||0xcc;return function(_0x22667c){if(_0x22667c){return _0x1f9638['sendStatus'](_0x452896);}return _0x1f9638['status'](_0x452896)[_0x4db9('0x1b')]();};}function respondWithResult(_0x34de1a,_0x4a037f){_0x4a037f=_0x4a037f||0xc8;return function(_0xadc104){if(_0xadc104){return _0x34de1a[_0x4db9('0x1c')](_0x4a037f)['json'](_0xadc104);}};}function respondWithFilteredResult(_0x5a85c4,_0x250a80){return function(_0x143b88){if(_0x143b88){var _0x462af3=_0x143b88[_0x4db9('0x1d')],_0xa693c4=_0x250a80[_0x4db9('0x1e')],_0x1d3c33=_0x250a80[_0x4db9('0x1e')]+_0x250a80['limit'],_0x55494a;if(_0x1d3c33>=_0x462af3){_0x1d3c33=_0x462af3;_0x55494a=0xc8;}else{_0x55494a=0xce;}_0x5a85c4[_0x4db9('0x1c')](_0x55494a);return _0x5a85c4[_0x4db9('0x1f')](_0x4db9('0x20'),_0xa693c4+'-'+_0x1d3c33+'/'+_0x462af3)['json'](_0x143b88);}return null;};}function patchUpdates(_0x46b522){return function(_0x2e8f95){try{jsonpatch[_0x4db9('0x21')](_0x2e8f95,_0x46b522,!![]);}catch(_0x46fc3d){return BPromise[_0x4db9('0x22')](_0x46fc3d);}return _0x2e8f95[_0x4db9('0x23')]();};}function saveUpdates(_0x3585d5,_0x5aef3b){return function(_0x4ceb0c){if(_0x4ceb0c){return _0x4ceb0c[_0x4db9('0x24')](_0x3585d5)[_0x4db9('0x25')](function(_0x319475){return _0x319475;});}return null;};}function removeEntity(_0x4aaa84,_0x213daa){return function(_0xdac966){if(_0xdac966){return _0xdac966['destroy']()[_0x4db9('0x25')](function(){_0x4aaa84[_0x4db9('0x1c')](0xcc)[_0x4db9('0x1b')]();});}};}function handleEntityNotFound(_0x4dbb1b,_0x3c8237){return function(_0xd250c5){if(!_0xd250c5){_0x4dbb1b[_0x4db9('0x26')](0x194);}return _0xd250c5;};}function handleError(_0x2d330e,_0x3f9f7e){_0x3f9f7e=_0x3f9f7e||0x1f4;return function(_0x385e22){logger[_0x4db9('0x27')](_0x385e22[_0x4db9('0x28')]);if(_0x385e22[_0x4db9('0x29')]){delete _0x385e22[_0x4db9('0x29')];}_0x2d330e[_0x4db9('0x1c')](_0x3f9f7e)[_0x4db9('0x2a')](_0x385e22);};}function getInteractionUsers(_0x2d646d,_0x20f133){return new BPromise(function(_0x583861,_0x5031fe){try{if(_0x20f133[_0x2d646d['id']]){_0x2d646d[_0x4db9('0x2b')]=_[_0x4db9('0x2c')](_0x20f133[_0x2d646d['id']],function(_0x119371){return{'id':_0x119371['id'],'fullname':_0x119371[_0x4db9('0x2d')]};});}}catch(_0x2af884){_0x5031fe(_0x2af884);}_0x583861(_0x2d646d);});}function getInteractionTags(_0x459131,_0x4dc946){return new BPromise(function(_0x375834,_0x554eef){try{if(_0x459131[_0x4db9('0x2e')]){_0x459131[_0x4db9('0x2f')]=[];_0x459131[_0x4db9('0x2e')][_0x4db9('0x30')](',')[_0x4db9('0x31')](function(_0x515f3a){_0x459131['Tags'][_0x4db9('0x32')](_0x4dc946[_0x515f3a]);});}delete _0x459131['TagIds'];}catch(_0x337d74){_0x554eef(_0x337d74);}_0x375834(_0x459131);});}function updateSmsInteraction(_0xddc8b1,_0x4f5b57,_0x430711){return new BPromise(function(_0x3131ba,_0x32c12d){return getInteractionUsers(_0xddc8b1,_0x430711)['then'](function(_0x34f480){return getInteractionTags(_0x34f480,_0x4f5b57);})['then'](function(_0x40226c){_0x3131ba(_0x40226c);})[_0x4db9('0x33')](function(_0x1f4959){_0x32c12d(_0x1f4959);});});}exports['index']=function(_0x4f17a0,_0x2a9b6b){var _0x1494bc={},_0x12a208={},_0x3aec38={'count':0x0,'rows':[]};var _0x2dca24=_[_0x4db9('0x2c')](db[_0x4db9('0x34')][_0x4db9('0x35')],function(_0x4289f3){return{'name':_0x4289f3['fieldName'],'type':_0x4289f3[_0x4db9('0x36')][_0x4db9('0x37')]};});_0x12a208[_0x4db9('0x38')]=_[_0x4db9('0x2c')](_0x2dca24,'name');_0x12a208[_0x4db9('0x39')]=_[_0x4db9('0x3a')](_0x4f17a0[_0x4db9('0x39')]);_0x12a208['filters']=_[_0x4db9('0x3b')](_0x12a208[_0x4db9('0x38')],_0x12a208[_0x4db9('0x39')]);_0x1494bc[_0x4db9('0x3c')]=_['intersection'](_0x12a208['model'],qs[_0x4db9('0x3d')](_0x4f17a0[_0x4db9('0x39')][_0x4db9('0x3d')]));_0x1494bc[_0x4db9('0x3c')]=_0x1494bc[_0x4db9('0x3c')]['length']?_0x1494bc[_0x4db9('0x3c')]:_0x12a208[_0x4db9('0x38')];if(!_0x4f17a0[_0x4db9('0x39')][_0x4db9('0x3e')](_0x4db9('0x3f'))){_0x1494bc['limit']=qs[_0x4db9('0x40')](_0x4f17a0[_0x4db9('0x39')][_0x4db9('0x40')]);_0x1494bc['offset']=qs[_0x4db9('0x1e')](_0x4f17a0[_0x4db9('0x39')][_0x4db9('0x1e')]);}_0x1494bc[_0x4db9('0x41')]=qs[_0x4db9('0x42')](_0x4f17a0[_0x4db9('0x39')][_0x4db9('0x42')]);_0x1494bc[_0x4db9('0x43')]=qs[_0x4db9('0x44')](_[_0x4db9('0x45')](_0x4f17a0['query'],_0x12a208['filters']),_0x2dca24);var _0x48aaf5=[];var _0x22a021=squel[_0x4db9('0x46')]()['field']('id')[_0x4db9('0x47')](_0x4db9('0x29'))['field']('color')[_0x4db9('0x48')]('tools_tags');var _0x16be76=squel[_0x4db9('0x46')]()['field'](_0x4db9('0x49'))[_0x4db9('0x47')]('u.fullname')[_0x4db9('0x47')](_0x4db9('0x4a'))[_0x4db9('0x48')]('user_has_sms_interactions','ui')['left_join'](_0x4db9('0x4b'),'u',_0x4db9('0x4c'));var _0x719001=squel[_0x4db9('0x46')]()[_0x4db9('0x48')](_0x4db9('0x4d'),'i')[_0x4db9('0x4e')](_0x4db9('0x4f'),'c',_0x4db9('0x50'))[_0x4db9('0x4e')](_0x4db9('0x4b'),'o',_0x4db9('0x51'))[_0x4db9('0x4e')]('sms_accounts','a',_0x4db9('0x52'))[_0x4db9('0x4e')](_0x4db9('0x53'),'me',_0x4db9('0x54'))[_0x4db9('0x4e')](_0x4db9('0x55'),'it',_0x4db9('0x56'))[_0x4db9('0x4e')](_0x4db9('0x57'),'t',_0x4db9('0x58'));var _0x10dccb=squel['expr']();var _0x4f2e54=[];var _0x36cd58=squel[_0x4db9('0x59')]();var _0x34b366;if(_0x4f17a0[_0x4db9('0x39')][_0x4db9('0x5a')]){_0x34b366=as[_0x4db9('0x5b')](_0x4f17a0[_0x4db9('0x39')][_0x4db9('0x5a')]);var _0x4f1e36=_0x34b366[_0x4db9('0x5c')];for(var _0xcb832e=0x0;_0xcb832e<_0x34b366[_0x4db9('0x5d')][_0x4db9('0x5e')];_0xcb832e++){var _0x3c1ad2=_0x34b366[_0x4db9('0x5d')][_0xcb832e];var _0x1226ea='i';var _0x3db087=_['find'](_0x2dca24,[_0x4db9('0x29'),_0x3c1ad2[_0x4db9('0x47')]]);if(!_0x3db087){switch(_0x3c1ad2[_0x4db9('0x47')]){case _0x4db9('0x5f'):if(_0x3c1ad2[_0x4db9('0x60')]==0x1){_0x719001[_0x4db9('0x61')]('`'+_0x3c1ad2['field']+_0x4db9('0x62'));}else{_0x719001['having']('`'+_0x3c1ad2[_0x4db9('0x47')]+'`\x20>\x200');}break;case'Contact':if(_0x3c1ad2[_0x4db9('0x63')]==='$substring'){if(_0x3c1ad2[_0x4db9('0x60')][_0x4db9('0x30')]('\x20')[_0x4db9('0x5e')]>0x1){_0x10dccb[_0x4f1e36](_0x4db9('0x64'),qs['getFullTextValue'](_0x3c1ad2[_0x4db9('0x60')]),null);}else{var _0x543301='%'+_0x3c1ad2[_0x4db9('0x60')]+'%';_0x10dccb[_0x4f1e36](_0x4db9('0x65'),_0x543301,_0x543301,_0x543301);}}else{_0x3db087=_['find'](_0x2dca24,[_0x4db9('0x29'),'ContactId']);_0x3c1ad2[_0x4db9('0x47')]=_0x4db9('0x66');_0x5bafe4=as[_0x4db9('0x67')](_0x1226ea,_0x3db087[_0x4db9('0x36')],_0x3c1ad2);_0x10dccb[_0x4f1e36](_0x5bafe4[_0x4db9('0x68')],_0x5bafe4[_0x4db9('0x60')][_0x4db9('0x69')],_0x5bafe4[_0x4db9('0x60')][_0x4db9('0x1b')]);}break;case _0x4db9('0x6a'):var _0x19649c=_0x3c1ad2[_0x4db9('0x60')][_0x4db9('0x30')](',')[_0x4db9('0x2c')](function(_0x125b69){return Number(_0x125b69);});_0x19649c['forEach'](function(_0x225382){_0x36cd58['or'](_0x4db9('0x6b'),'%,'+_0x225382+',%');});_0x4f2e54=_['union'](_0x4f2e54,_0x19649c);break;case _0x4db9('0x6c'):if(_0x3c1ad2[_0x4db9('0x63')]===_0x4db9('0x6d')){_0x10dccb[_0x4f1e36](_0x4db9('0x6e'),'%'+_0x3c1ad2[_0x4db9('0x60')]+'%',null);}else{_0x3db087=_[_0x4db9('0x6f')](_0x2dca24,[_0x4db9('0x29'),_0x4db9('0x70')]);_0x3c1ad2[_0x4db9('0x47')]='UserId';_0x5bafe4=as['buildExpression'](_0x1226ea,_0x3db087[_0x4db9('0x36')],_0x3c1ad2);_0x10dccb[_0x4f1e36](_0x5bafe4[_0x4db9('0x68')],_0x5bafe4[_0x4db9('0x60')][_0x4db9('0x69')],_0x5bafe4[_0x4db9('0x60')][_0x4db9('0x1b')]);}break;case _0x4db9('0x71'):_0x5bafe4=as[_0x4db9('0x67')]('me',null,_0x3c1ad2);_0x10dccb[_0x4f1e36](_0x5bafe4[_0x4db9('0x68')],_0x5bafe4[_0x4db9('0x60')]['start'],_0x5bafe4[_0x4db9('0x60')]['end']);break;}}else{var _0x5bafe4=as['buildExpression'](_0x1226ea,_0x3db087['type'],_0x3c1ad2);_0x10dccb[_0x4f1e36](_0x5bafe4[_0x4db9('0x68')],_0x5bafe4['value']['start'],_0x5bafe4[_0x4db9('0x60')][_0x4db9('0x1b')]);}}}else{var _0xf1e173=_(_0x4f17a0[_0x4db9('0x39')])[_0x4db9('0x3a')]()[_0x4db9('0x2c')](function(_0xaea8ff){return _[_0x4db9('0x72')](_0x2dca24,[_0x4db9('0x29'),_0xaea8ff])?_0xaea8ff:undefined;})[_0x4db9('0x73')]()[_0x4db9('0x60')]();if(!_[_0x4db9('0x74')](_0xf1e173)){_0xf1e173[_0x4db9('0x31')](function(_0x1080ab){if(_0x1080ab===_0x4db9('0x75')){_0x719001[_0x4db9('0x43')]('i.SmsAccountId\x20IN\x20?',[]['concat'](_0x4f17a0['query'][_0x1080ab]));}else if(_0x1080ab===_0x4db9('0x76')){var _0x4de478=JSON[_0x4db9('0x77')](_0x4f17a0[_0x4db9('0x39')][_0x1080ab])[_0x4db9('0x78')];var _0x4ad693=JSON['parse'](_0x4f17a0[_0x4db9('0x39')][_0x1080ab])['$lte'];_0x719001[_0x4db9('0x43')](_0x4db9('0x79'),_0x4de478,_0x4ad693);}else{if(_0x4f17a0[_0x4db9('0x39')][_0x1080ab]===_0x4db9('0x7a')){_0x719001[_0x4db9('0x43')]('i.'+_0x1080ab+'\x20IS\x20NULL');}else{_0x719001[_0x4db9('0x43')]('i.'+_0x1080ab+'\x20=\x20?',_0x4f17a0[_0x4db9('0x39')][_0x1080ab]);}}});}if(_0x4f17a0[_0x4db9('0x39')][_0x4db9('0x7b')]){if(_0x4f17a0[_0x4db9('0x39')][_0x4db9('0x7b')]==0x1){_0x719001['having']('`unreadMessages`\x20=\x200');}else{_0x719001[_0x4db9('0x61')](_0x4db9('0x7c'));}}if(_0x4f17a0['query']['tag']){_0x4f2e54=_[_0x4db9('0x7d')](_0x4f17a0['query'][_0x4db9('0x7e')])?_0x4f17a0['query'][_0x4db9('0x7e')]:new Array(_0x4f17a0[_0x4db9('0x39')]['tag']);_0x4f2e54['forEach'](function(_0x3de95c){_0x36cd58['or'](_0x4db9('0x6b'),'%,'+_0x3de95c+',%');});}if(_0x4f17a0[_0x4db9('0x39')][_0x4db9('0x7f')]){var _0x3e85aa=_0x4f17a0['query']['filter']['replace']('\x5c','\x5c\x5c')['replace']('\x27\x27',_0x4db9('0x80'));if(qs[_0x4db9('0x81')](_0x3e85aa)){_0x10dccb['or'](_0x4db9('0x82'),_0x3e85aa+'%')['or'](_0x4db9('0x83'),_0x3e85aa+'%');}else{_0x10dccb['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x4db9('0x84')](_0x3e85aa))['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x3e85aa+'%');}}}_0x719001[_0x4db9('0x43')](_0x10dccb);_0x719001[_0x4db9('0x85')](_0x4db9('0x86'));var _0x372573={'type':db[_0x4db9('0x87')][_0x4db9('0x88')][_0x4db9('0x89')],'raw':!![]};var _0x521622=_0x719001[_0x4db9('0x8a')]();_0x521622[_0x4db9('0x47')](_0x4db9('0x86'));_0x521622['field'](_0x4db9('0x8b'),_0x4db9('0x5f'));if(_0x1494bc['order']){_0x1494bc['order'][_0x4db9('0x31')](function(_0x5aa698){_0x719001['order']('i.'+_0x5aa698[0x0],_0x5aa698[0x1]===_0x4db9('0x8c')?![]:!![]);});}if(!_[_0x4db9('0x74')](_0x4f2e54)){_0x719001[_0x4db9('0x61')](_0x36cd58);_0x521622['where']('t.id\x20IN\x20?',_0x4f2e54);}BPromise['resolve']()['then'](function(){if(!_0x34b366){if(_0x4f17a0['query'][_0x4db9('0x75')]||_0x4f17a0[_0x4db9('0x39')][_0x4db9('0x8d')])return;_0x521622[_0x4db9('0x43')](_0x4db9('0x8e'));_0x719001[_0x4db9('0x43')](_0x4db9('0x8e'));return;}return _0x4f17a0[_0x4db9('0x8f')]['getSmsAccounts']({'attributes':['id'],'raw':!![]})[_0x4db9('0x25')](function(_0x427434){if(_[_0x4db9('0x74')](_0x427434)){_0x521622[_0x4db9('0x43')](_0x4db9('0x90'));_0x719001[_0x4db9('0x43')](_0x4db9('0x90'));}else{_0x521622[_0x4db9('0x43')]('i.SmsAccountId\x20IN\x20?',_[_0x4db9('0x2c')](_0x427434,'id'));_0x719001['where'](_0x4db9('0x91'),_[_0x4db9('0x2c')](_0x427434,'id'));}});})[_0x4db9('0x25')](function(){db[_0x4db9('0x92')]['query'](_0x521622['toString'](),_0x372573)[_0x4db9('0x25')](function(_0x5912c9){_0x3aec38[_0x4db9('0x1d')]=_0x5912c9[_0x4db9('0x5e')];if(_0x3aec38[_0x4db9('0x1d')]===0x0)return[];return db[_0x4db9('0x92')][_0x4db9('0x39')](_0x22a021[_0x4db9('0x93')](),_0x372573)[_0x4db9('0x25')](function(_0xdd8823){_0x48aaf5=_['keyBy'](_0xdd8823,'id');_0x372573=_[_0x4db9('0x94')](_0x372573,{'model':db[_0x4db9('0x34')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x4f17a0[_0x4db9('0x39')][_0x4db9('0x3d')]){_0x1494bc['attributes'][_0x4db9('0x31')](function(_0x18391e){_0x719001['field']('i.'+_0x18391e);});}else{_0x719001[_0x4db9('0x47')](_0x4db9('0x8b'),_0x4db9('0x5f'));_0x719001['field']('a.key',_0x4db9('0x95'));_0x719001[_0x4db9('0x47')]('a.mandatoryDisposition','Account.mandatoryDisposition');_0x719001[_0x4db9('0x47')](_0x4db9('0x96'));_0x719001[_0x4db9('0x47')](_0x4db9('0x97'),_0x4db9('0x98'));_0x719001[_0x4db9('0x47')](_0x4db9('0x99'),_0x4db9('0x9a'));_0x719001[_0x4db9('0x47')](_0x4db9('0x9b'),_0x4db9('0x9c'));_0x719001[_0x4db9('0x47')](_0x4db9('0x9d'),_0x4db9('0x9e'));_0x719001[_0x4db9('0x47')]('c.mobile',_0x4db9('0x9f'));_0x719001['field'](_0x4db9('0xa0'),'Contact.fax');_0x719001[_0x4db9('0x47')](_0x4db9('0xa1'),_0x4db9('0xa2'));_0x719001[_0x4db9('0x47')](_0x4db9('0xa3'),_0x4db9('0xa4'));_0x719001[_0x4db9('0x47')](_0x4db9('0xa5'),_0x4db9('0x2e'));}if(_0x1494bc[_0x4db9('0x40')])_0x719001[_0x4db9('0x40')](_0x1494bc[_0x4db9('0x40')]);if(_0x1494bc['offset'])_0x719001[_0x4db9('0x1e')](_0x1494bc[_0x4db9('0x1e')]);return db['sequelize'][_0x4db9('0x39')](_0x719001[_0x4db9('0x93')](),_0x372573);})[_0x4db9('0x25')](function(_0x29e429){_0x16be76['where']('ui.SmsInteractionId\x20IN\x20?',_[_0x4db9('0x2c')](_0x29e429,'id'));return db['sequelize'][_0x4db9('0x39')](_0x16be76[_0x4db9('0x93')](),_0x372573)[_0x4db9('0x25')](function(_0x27eeca){var _0x44a9e8=_[_0x4db9('0xa6')](_0x27eeca,'SmsInteractionId');var _0xe17e8e=[];_0x29e429[_0x4db9('0x31')](function(_0x3d02c1){_0xe17e8e[_0x4db9('0x32')](updateSmsInteraction(_0x3d02c1,_0x48aaf5,_0x44a9e8));});return BPromise[_0x4db9('0xa7')](_0xe17e8e);});});})[_0x4db9('0x25')](function(_0x41bde3){_0x3aec38['rows']=_0x41bde3;return _0x3aec38;})[_0x4db9('0x25')](respondWithFilteredResult(_0x2a9b6b,_0x1494bc));})[_0x4db9('0x33')](handleError(_0x2a9b6b,null));};exports[_0x4db9('0xa8')]=function(_0x1e47b3,_0x5ed0fe){var _0x49594a={'raw':![],'where':{'id':_0x1e47b3[_0x4db9('0xa9')]['id']}},_0x564dcf={};_0x564dcf[_0x4db9('0x38')]=_[_0x4db9('0x3a')](db['SmsInteraction']['rawAttributes']);_0x564dcf[_0x4db9('0x39')]=_[_0x4db9('0x3a')](_0x1e47b3['query']);_0x564dcf['filters']=_[_0x4db9('0x3b')](_0x564dcf[_0x4db9('0x38')],_0x564dcf['query']);_0x49594a['attributes']=_[_0x4db9('0x3b')](_0x564dcf['model'],qs['fields'](_0x1e47b3[_0x4db9('0x39')][_0x4db9('0x3d')]));_0x49594a[_0x4db9('0x3c')]=_0x49594a['attributes'][_0x4db9('0x5e')]?_0x49594a['attributes']:_0x564dcf[_0x4db9('0x38')];if(_0x1e47b3['query'][_0x4db9('0xaa')]){_0x49594a[_0x4db9('0xab')]=[{'all':!![]}];}_0x49594a=_[_0x4db9('0x94')]({},_0x49594a,_0x1e47b3[_0x4db9('0xac')]);return db[_0x4db9('0x34')][_0x4db9('0x6f')](_0x49594a)[_0x4db9('0x25')](handleEntityNotFound(_0x5ed0fe,null))['then'](respondWithResult(_0x5ed0fe,null))['catch'](handleError(_0x5ed0fe,null));};exports['create']=function(_0x5dc771,_0x1de02e){return db['SmsInteraction'][_0x4db9('0xad')](_0x5dc771['body'],{})['then'](respondWithResult(_0x1de02e,0xc9))[_0x4db9('0x33')](handleError(_0x1de02e,null));};exports['update']=function(_0x47512a,_0x3495ec){if(_0x47512a[_0x4db9('0x71')]['id']){delete _0x47512a[_0x4db9('0x71')]['id'];}return db[_0x4db9('0x34')][_0x4db9('0x6f')]({'where':{'id':_0x47512a[_0x4db9('0xa9')]['id']}})[_0x4db9('0x25')](handleEntityNotFound(_0x3495ec,null))[_0x4db9('0x25')](saveUpdates(_0x47512a[_0x4db9('0x71')],null))[_0x4db9('0x25')](respondWithResult(_0x3495ec,null))[_0x4db9('0x33')](handleError(_0x3495ec,null));};exports[_0x4db9('0xae')]=function(_0x2f19a6,_0x2f1200){return db['SmsInteraction'][_0x4db9('0x6f')]({'where':{'id':_0x2f19a6[_0x4db9('0xa9')]['id']}})[_0x4db9('0x25')](handleEntityNotFound(_0x2f1200,null))[_0x4db9('0x25')](removeEntity(_0x2f1200,null))[_0x4db9('0x33')](handleError(_0x2f1200,null));};exports[_0x4db9('0xaf')]=function(_0x16f72f,_0x5dc000){return db[_0x4db9('0x34')][_0x4db9('0xaf')]()['then'](respondWithResult(_0x5dc000,null))[_0x4db9('0x33')](handleError(_0x5dc000,null));};exports[_0x4db9('0xb0')]=function(_0x43f030,_0x5e293f,_0x5059ed){return db[_0x4db9('0xb1')][_0x4db9('0x6f')]({'where':{'id':_0x43f030[_0x4db9('0xa9')]['id']}})[_0x4db9('0x25')](handleEntityNotFound(_0x5e293f,null))['then'](function(_0x11de91){if(_0x11de91){return _0x11de91[_0x4db9('0xb0')](_0x43f030[_0x4db9('0x71')][_0x4db9('0xb2')],_[_0x4db9('0xb3')](_0x43f030['body'],[_0x4db9('0xb2'),'id'])||{});}})[_0x4db9('0x25')](respondWithResult(_0x5e293f,null))[_0x4db9('0x33')](handleError(_0x5e293f,null));};exports['getMessages']=function(_0xcf3981,_0x518d8b,_0x5ddae1){var _0x25577b={'raw':![],'where':{}};var _0x22d686={};var _0x12a0c0={'count':0x0,'rows':[]};return db[_0x4db9('0x34')][_0x4db9('0xb4')]({'where':{'id':_0xcf3981[_0x4db9('0xa9')]['id']}})['then'](handleEntityNotFound(_0x518d8b,null))[_0x4db9('0x25')](function(_0x474fb0){if(_0x474fb0){_0x22d686['model']=_[_0x4db9('0x3a')](db[_0x4db9('0xb1')][_0x4db9('0x35')]);_0x22d686['query']=_[_0x4db9('0x3a')](_0xcf3981[_0x4db9('0x39')]);_0x22d686[_0x4db9('0x44')]=_[_0x4db9('0x3b')](_0x22d686[_0x4db9('0x38')],_0x22d686[_0x4db9('0x39')]);_0x25577b[_0x4db9('0x3c')]=_['intersection'](_0x22d686[_0x4db9('0x38')],qs[_0x4db9('0x3d')](_0xcf3981['query'][_0x4db9('0x3d')]));_0x25577b[_0x4db9('0x3c')]=_0x25577b[_0x4db9('0x3c')][_0x4db9('0x5e')]?_0x25577b[_0x4db9('0x3c')]:_0x22d686[_0x4db9('0x38')];if(!_0xcf3981['query']['hasOwnProperty'](_0x4db9('0x3f'))){_0x25577b[_0x4db9('0x40')]=qs[_0x4db9('0x40')](_0xcf3981[_0x4db9('0x39')][_0x4db9('0x40')]);_0x25577b['offset']=qs[_0x4db9('0x1e')](_0xcf3981[_0x4db9('0x39')][_0x4db9('0x1e')]);}_0x25577b['order']=qs[_0x4db9('0x42')](_0xcf3981[_0x4db9('0x39')]['sort']);_0x25577b[_0x4db9('0x43')]=qs[_0x4db9('0x44')](_['pick'](_0xcf3981[_0x4db9('0x39')],_0x22d686[_0x4db9('0x44')]));_0x25577b[_0x4db9('0x43')]['SmsInteractionId']=_0x474fb0['id'];if(_0xcf3981['query']['filter']){_0x25577b[_0x4db9('0x43')]=_[_0x4db9('0x94')](_0x25577b['where'],{'$or':_[_0x4db9('0x2c')](_0x25577b[_0x4db9('0x3c')],function(_0x6dc7ac){var _0x39c33a={};_0x39c33a[_0x6dc7ac]={'$like':'%'+_0xcf3981[_0x4db9('0x39')][_0x4db9('0x7f')]+'%'};return _0x39c33a;})});}if(_0xcf3981[_0x4db9('0x39')]['$gte']){var _0x22ba86=_0xcf3981['query']['$gte'][_0x4db9('0x30')](',');var _0x509b91={};_0x509b91[_0x22ba86[0x0]]={'$gte':moment(_0x22ba86[0x1])[_0x4db9('0xb5')]('YYYY-MM-DD\x20HH:mm:ss')};_0x25577b['where']=_['merge'](_0x25577b['where'],_0x509b91);}_0x25577b=_[_0x4db9('0x94')]({},_0x25577b,_0xcf3981[_0x4db9('0xac')]);return db[_0x4db9('0xb1')][_0x4db9('0x1d')]({'where':_0x25577b['where']})[_0x4db9('0x25')](function(_0x28d14c){_0x12a0c0['count']=_0x28d14c;if(_0xcf3981[_0x4db9('0x39')][_0x4db9('0xaa')]){_0x25577b[_0x4db9('0xab')]=[{'all':!![]}];}return db[_0x4db9('0xb1')][_0x4db9('0xb6')](_0x25577b);})[_0x4db9('0x25')](function(_0x5c35f0){_0x12a0c0[_0x4db9('0xb7')]=_0x5c35f0;return _0x12a0c0;});}})[_0x4db9('0x25')](respondWithFilteredResult(_0x518d8b,_0x25577b))['catch'](handleError(_0x518d8b,null));};exports[_0x4db9('0xb8')]=function(_0x131e92,_0x2e89cb,_0x19e6be){return db[_0x4db9('0x34')][_0x4db9('0x6f')]({'where':{'id':_0x131e92[_0x4db9('0xa9')]['id']}})['then'](handleEntityNotFound(_0x2e89cb,null))[_0x4db9('0x25')](function(_0x1270f9){if(_0x1270f9){return _0x1270f9[_0x4db9('0xb9')](_0x131e92['body'][_0x4db9('0xb2')],_['omit'](_0x131e92[_0x4db9('0x71')],[_0x4db9('0xb2'),'id'])||{})[_0x4db9('0xba')](function(){return db[_0x4db9('0x6a')][_0x4db9('0xb6')]({'attributes':['id','name',_0x4db9('0xbb')],'where':{'id':_0x131e92[_0x4db9('0x71')]['ids']}});})[_0x4db9('0x25')](function(_0x5d5132){socket['emit'](_0x4db9('0xbc'),{'id':Number(_0x131e92[_0x4db9('0xa9')]['id']),'tags':_0x5d5132||[]});return{'id':Number(_0x131e92[_0x4db9('0xa9')]['id']),'tags':_0x5d5132||[]};});}})[_0x4db9('0x25')](respondWithResult(_0x2e89cb,null))[_0x4db9('0x33')](handleError(_0x2e89cb,null));};exports[_0x4db9('0xbd')]=function(_0x1a0de2,_0x3bebc3,_0x56de0e){return db[_0x4db9('0x34')][_0x4db9('0x6f')]({'where':{'id':_0x1a0de2[_0x4db9('0xa9')]['id']}})[_0x4db9('0x25')](handleEntityNotFound(_0x3bebc3,null))[_0x4db9('0x25')](function(_0x4bfe67){if(_0x4bfe67){return _0x4bfe67['removeTags'](_0x1a0de2['query'][_0x4db9('0xb2')]);}})['then'](respondWithStatusCode(_0x3bebc3,null))[_0x4db9('0x33')](handleError(_0x3bebc3,null));};exports[_0x4db9('0xbe')]=function(_0x3b7bdf,_0x5bba48){var _0x205751=moment()['unix']()[_0x4db9('0x93')]();var _0x10e60f=path['join'](config[_0x4db9('0xbf')],'server',_0x4db9('0xc0'),_0x4db9('0xc1'));var _0x30bde3=path[_0x4db9('0xc2')](config[_0x4db9('0xbf')],'server','files','attachments');var _0x2860d6=path[_0x4db9('0xc2')](_0x10e60f,_0x205751);var _0x3ac397=util[_0x4db9('0xb5')](_0x4db9('0xc3'),_0x3b7bdf[_0x4db9('0xa9')]['id'],_0x205751);var _0x3f36a0=path[_0x4db9('0xc2')](_0x10e60f,_0x3ac397);var _0x1d0751=[];_0x1d0751[_0x4db9('0x32')]({'model':db[_0x4db9('0x6c')],'as':_0x4db9('0x6c'),'attributes':['id',_0x4db9('0x2d')],'raw':!![]});_0x1d0751[_0x4db9('0x32')]({'model':db[_0x4db9('0xc4')],'as':_0x4db9('0xc5'),'attributes':['id',_0x4db9('0xc6'),_0x4db9('0xc7')],'raw':!![]});var _0x8a5442=[{'model':db[_0x4db9('0xb1')],'as':_0x4db9('0xc8'),'attributes':['id','body',_0x4db9('0x76'),'direction',_0x4db9('0xc9'),'read'],'include':_0x1d0751}];_0x8a5442[_0x4db9('0x32')]({'model':db[_0x4db9('0xca')],'as':_0x4db9('0xcb'),'attributes':['id',_0x4db9('0x29')]});_0x8a5442['push']({'model':db[_0x4db9('0x6c')],'as':_0x4db9('0xcc'),'attributes':['id','fullname']});return db['SmsInteraction'][_0x4db9('0x6f')]({'where':{'id':_0x3b7bdf[_0x4db9('0xa9')]['id']},'include':_0x8a5442})[_0x4db9('0x25')](handleEntityNotFound(_0x5bba48,null))[_0x4db9('0x25')](function(_0x419cf1){if(_0x419cf1){var _0x161048=_0x419cf1['get']({'plain':!![]});fs[_0x4db9('0xcd')](_0x2860d6);var _0x15956b={'format':'A4','border':_0x4db9('0xce'),'header':{'height':'40px','contents':{'first':_0x4db9('0xcf')}},'footer':{'height':'30px','contents':{'default':util[_0x4db9('0xb5')](_0x4db9('0xd0'),util[_0x4db9('0xb5')](_0x4db9('0xd1'),_0x4db9('0xd2'),_0x161048['id']),moment()[_0x4db9('0xb5')](_0x4db9('0xd3'))[_0x4db9('0x93')]())}}};var _0x18ffad={'channel':_0x4db9('0xd2'),'account':_0x161048['Account'][_0x4db9('0x29')],'agent':_0x161048[_0x4db9('0xcc')]?_0x161048[_0x4db9('0xcc')][_0x4db9('0x2d')]:_0x4db9('0xd4'),'createdAt':moment(_0x161048[_0x4db9('0x76')])[_0x4db9('0xb5')](_0x4db9('0xd5'))['toString'](),'closedAt':_0x161048['closed']?moment(_0x161048['closedAt'])['format'](_0x4db9('0xd5'))['toString']():'','disposition':_0x161048[_0x4db9('0xd6')],'messages':_(_0x161048[_0x4db9('0xc8')])[_0x4db9('0x7f')]({'secret':![]})[_0x4db9('0x2c')](function(_0xae69a1){return{'date':moment(_0xae69a1[_0x4db9('0x76')])[_0x4db9('0xb5')](_0x4db9('0xd5'))[_0x4db9('0x93')](),'sender':_0xae69a1['direction']==='out'?_0xae69a1[_0x4db9('0x6c')]?_0xae69a1[_0x4db9('0x6c')][_0x4db9('0x2d')]:_0x4db9('0xd7'):_0xae69a1[_0x4db9('0xc5')][_0x4db9('0xc6')]+(_0xae69a1[_0x4db9('0xc5')][_0x4db9('0xc7')]?'\x20'+_0xae69a1[_0x4db9('0xc5')][_0x4db9('0xc7')]:''),'body':_0xae69a1[_0x4db9('0x71')],'direction':_0xae69a1[_0x4db9('0xd8')]==='out'?'A':'C','secret':_0xae69a1[_0x4db9('0xc9')],'read':_0xae69a1[_0x4db9('0x7b')]};})[_0x4db9('0x60')]()};return ejs[_0x4db9('0xd9')](path['join'](config['root'],_0x4db9('0xda'),_0x4db9('0xdb'),_0x4db9('0xdc')),{'interaction':_0x18ffad})['then'](function(_0x115964){return new BPromise(function(_0xde1699,_0x4ef644){pdf[_0x4db9('0xad')](_0x115964,_0x15956b)[_0x4db9('0xdd')](path['join'](_0x2860d6,_0x4db9('0xde')+_0x161048['id']+'-'+_0x205751+'.pdf'),function(_0x5750ab,_0x4ae593){if(_0x5750ab)return _0x4ef644(_0x5750ab);_0xde1699(_0x4ae593);});});})['then'](function(){return new BPromise(function(_0x2a8b0e,_0x78de3){zipdir(_0x2860d6,{'saveTo':_0x3f36a0},function(_0x2c5afb,_0x41b8b3){if(_0x2c5afb)return _0x78de3(_0x2c5afb);return _0x2a8b0e(_0x41b8b3);});})[_0x4db9('0x25')](function(){return new BPromise(function(_0x2527f5,_0x4754f3){rimraf(_0x2860d6,function(_0x35599b){if(_0x35599b)_0x4754f3(_0x35599b);return _0x2527f5();});});})[_0x4db9('0x25')](function(){return _0x5bba48['download'](_0x3f36a0,_0x3ac397,function(_0x4df2a7){if(_0x4df2a7){console[_0x4db9('0xdf')]('err',_0x4df2a7);}else{fs[_0x4db9('0xe0')](_0x3f36a0);}});});});}else{return _0x5bba48[_0x4db9('0x26')](0xc8);}})[_0x4db9('0x33')](handleError(_0x5bba48,null));};