094758362fe67bc3f1f1f605ac0156dd4d4b22e5
[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 _0x4a95=['split','Tags','SmsInteraction','rawAttributes','fieldName','type','key','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','select','field','tools_tags','u.id','u.fullname','ui.SmsInteractionId','from','user_has_sms_interactions','left_join','users','u.id\x20=\x20ui.UserId','sms_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','sms_accounts','a.id\x20=\x20i.SmsAccountId','sms_messages','me.SmsInteractionId\x20=\x20i.id','it.SmsInteractionId\x20=\x20i.id','expr','search','parseSearch','find','unreadMessages','value','having','Contact','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','text','start','forEach','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','operator','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','buildExpression','some','compact','SmsAccountId','concat','createdAt','$gte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','tag','isArray','filter','replace','i.id\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','Sequelize','clone','i.id','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','DESC','t.id\x20IN\x20?','resolve','i.SmsAccountId\x20IS\x20NOT\x20NULL','user','role','getSmsAccounts','isEmpty','i.SmsAccountId\x20IS\x20NULL','i.SmsAccountId\x20IN\x20?','agent','sequelize','toString','keyBy','merge','a.key','Account.key','a.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','Contact.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.SmsInteractionId\x20IN\x20?','SmsInteractionId','push','all','rows','show','params','includeAll','include','catch','create','body','describe','SmsMessage','ids','omit','getMessages','findOne','format','YYYY-MM-DD\x20HH:mm:ss','options','findAll','spread','Tag','color','smsInteractionTags:save','join','files','tmp','root','server','attachments','transcript-%d-%s.zip','User','firstName','lastName','direction','SmsAccount','Account','Owner','get','mkdirSync','10px','40px','<div\x20class=\x22header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h5>Interaction\x20Transcript</h5>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>','30px','<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','closed','closedAt','Messages','out','System','secret','renderFile','views','downloadInteraction.html','toFile','transcript-','.pdf','download','log','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','status','json','count','offset','Content-Range','update','then','destroy','end','sendStatus','stack','name','map','fullname','TagIds'];(function(_0x4ef51f,_0x1c42a7){var _0x1ae7c8=function(_0x24809){while(--_0x24809){_0x4ef51f['push'](_0x4ef51f['shift']());}};_0x1ae7c8(++_0x1c42a7);}(_0x4a95,0x19d));var _0x54a9=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x4a95[_0x14add3];return _0x4a174f;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x54a9('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x54a9('0x1'));var jsonpatch=require(_0x54a9('0x2'));var rp=require(_0x54a9('0x3'));var moment=require(_0x54a9('0x4'));var BPromise=require(_0x54a9('0x5'));var Mustache=require(_0x54a9('0x6'));var util=require('util');var path=require(_0x54a9('0x7'));var sox=require(_0x54a9('0x8'));var csv=require(_0x54a9('0x9'));var ejs=require(_0x54a9('0xa'));var fs=require('fs');var _=require(_0x54a9('0xb'));var squel=require(_0x54a9('0xc'));var crypto=require(_0x54a9('0xd'));var jsforce=require(_0x54a9('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x54a9('0x9'));var querystring=require(_0x54a9('0xf'));var Papa=require(_0x54a9('0x10'));var Redis=require(_0x54a9('0x11'));var authService=require(_0x54a9('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x54a9('0x13'));var hardwareService=require(_0x54a9('0x14'));var logger=require(_0x54a9('0x15'))('api');var utils=require('../../config/utils');var config=require(_0x54a9('0x16'));var licenseUtil=require(_0x54a9('0x17'));var db=require(_0x54a9('0x18'))['db'];config[_0x54a9('0x19')]=_[_0x54a9('0x1a')](config[_0x54a9('0x19')],{'host':_0x54a9('0x1b'),'port':0x18eb});var socket=require(_0x54a9('0x1c'))(new Redis(config[_0x54a9('0x19')]));require('./smsInteraction.socket')[_0x54a9('0x1d')](socket);function respondWithStatusCode(_0x3a299d,_0x4a36c6){_0x4a36c6=_0x4a36c6||0xcc;return function(_0x242879){if(_0x242879){return _0x3a299d['sendStatus'](_0x4a36c6);}return _0x3a299d[_0x54a9('0x1e')](_0x4a36c6)['end']();};}function respondWithResult(_0x2184b2,_0xea04fa){_0xea04fa=_0xea04fa||0xc8;return function(_0x4c19eb){if(_0x4c19eb){return _0x2184b2[_0x54a9('0x1e')](_0xea04fa)[_0x54a9('0x1f')](_0x4c19eb);}};}function respondWithFilteredResult(_0x4fa281,_0x2933c9){return function(_0x47d01a){if(_0x47d01a){var _0x5b9f33=_0x47d01a[_0x54a9('0x20')],_0x2a371d=_0x2933c9[_0x54a9('0x21')],_0x4ec197=_0x2933c9[_0x54a9('0x21')]+_0x2933c9['limit'],_0x3cd225;if(_0x4ec197>=_0x5b9f33){_0x4ec197=_0x5b9f33;_0x3cd225=0xc8;}else{_0x3cd225=0xce;}_0x4fa281[_0x54a9('0x1e')](_0x3cd225);return _0x4fa281['set'](_0x54a9('0x22'),_0x2a371d+'-'+_0x4ec197+'/'+_0x5b9f33)[_0x54a9('0x1f')](_0x47d01a);}return null;};}function patchUpdates(_0x384e79){return function(_0x4b77cd){try{jsonpatch['apply'](_0x4b77cd,_0x384e79,!![]);}catch(_0x191cbe){return BPromise['reject'](_0x191cbe);}return _0x4b77cd['save']();};}function saveUpdates(_0x28c608,_0x43c3e3){return function(_0x3e92ad){if(_0x3e92ad){return _0x3e92ad[_0x54a9('0x23')](_0x28c608)[_0x54a9('0x24')](function(_0xb87d92){return _0xb87d92;});}return null;};}function removeEntity(_0x2f5987,_0x20148){return function(_0x5c2def){if(_0x5c2def){return _0x5c2def[_0x54a9('0x25')]()[_0x54a9('0x24')](function(){_0x2f5987[_0x54a9('0x1e')](0xcc)[_0x54a9('0x26')]();});}};}function handleEntityNotFound(_0x2173bd,_0x43ec8f){return function(_0x53b8bf){if(!_0x53b8bf){_0x2173bd[_0x54a9('0x27')](0x194);}return _0x53b8bf;};}function handleError(_0x2a4b04,_0x3c788a){_0x3c788a=_0x3c788a||0x1f4;return function(_0x23e023){logger['error'](_0x23e023[_0x54a9('0x28')]);if(_0x23e023[_0x54a9('0x29')]){delete _0x23e023['name'];}_0x2a4b04[_0x54a9('0x1e')](_0x3c788a)['send'](_0x23e023);};}function getInteractionUsers(_0x297762,_0x579862){return new BPromise(function(_0x17279c,_0x23849){try{if(_0x579862[_0x297762['id']]){_0x297762['Users']=_[_0x54a9('0x2a')](_0x579862[_0x297762['id']],function(_0x18658a){return{'id':_0x18658a['id'],'fullname':_0x18658a[_0x54a9('0x2b')]};});}}catch(_0x1e09ce){_0x23849(_0x1e09ce);}_0x17279c(_0x297762);});}function getInteractionTags(_0x2bff36,_0x29b0e7){return new BPromise(function(_0x41c6b4,_0x46c9fa){try{if(_0x2bff36[_0x54a9('0x2c')]){_0x2bff36['Tags']=[];_0x2bff36[_0x54a9('0x2c')][_0x54a9('0x2d')](',')['forEach'](function(_0x11ccd9){_0x2bff36[_0x54a9('0x2e')]['push'](_0x29b0e7[_0x11ccd9]);});}delete _0x2bff36[_0x54a9('0x2c')];}catch(_0x2dc741){_0x46c9fa(_0x2dc741);}_0x41c6b4(_0x2bff36);});}function updateSmsInteraction(_0x48012f,_0x3a8ba0,_0x525a2){return new BPromise(function(_0x3981b5,_0x5c7105){return getInteractionUsers(_0x48012f,_0x525a2)[_0x54a9('0x24')](function(_0x5fcc6e){return getInteractionTags(_0x5fcc6e,_0x3a8ba0);})[_0x54a9('0x24')](function(_0x12ab68){_0x3981b5(_0x12ab68);})['catch'](function(_0x13ab6a){_0x5c7105(_0x13ab6a);});});}exports['index']=function(_0x2249c6,_0x1a9886){var _0x43c496={},_0x1d3105={},_0x52394f={'count':0x0,'rows':[]};var _0x41b0b9=_[_0x54a9('0x2a')](db[_0x54a9('0x2f')][_0x54a9('0x30')],function(_0x53842f){return{'name':_0x53842f[_0x54a9('0x31')],'type':_0x53842f[_0x54a9('0x32')][_0x54a9('0x33')]};});_0x1d3105['model']=_['map'](_0x41b0b9,'name');_0x1d3105['query']=_[_0x54a9('0x34')](_0x2249c6[_0x54a9('0x35')]);_0x1d3105[_0x54a9('0x36')]=_[_0x54a9('0x37')](_0x1d3105[_0x54a9('0x38')],_0x1d3105[_0x54a9('0x35')]);_0x43c496[_0x54a9('0x39')]=_['intersection'](_0x1d3105['model'],qs[_0x54a9('0x3a')](_0x2249c6[_0x54a9('0x35')][_0x54a9('0x3a')]));_0x43c496[_0x54a9('0x39')]=_0x43c496[_0x54a9('0x39')][_0x54a9('0x3b')]?_0x43c496[_0x54a9('0x39')]:_0x1d3105[_0x54a9('0x38')];if(!_0x2249c6[_0x54a9('0x35')][_0x54a9('0x3c')](_0x54a9('0x3d'))){_0x43c496[_0x54a9('0x3e')]=qs[_0x54a9('0x3e')](_0x2249c6[_0x54a9('0x35')][_0x54a9('0x3e')]);_0x43c496[_0x54a9('0x21')]=qs['offset'](_0x2249c6[_0x54a9('0x35')][_0x54a9('0x21')]);}_0x43c496[_0x54a9('0x3f')]=qs['sort'](_0x2249c6[_0x54a9('0x35')][_0x54a9('0x40')]);_0x43c496[_0x54a9('0x41')]=qs[_0x54a9('0x36')](_[_0x54a9('0x42')](_0x2249c6[_0x54a9('0x35')],_0x1d3105[_0x54a9('0x36')]),_0x41b0b9);var _0x50e5dd=[];var _0x11ce0a=squel[_0x54a9('0x43')]()[_0x54a9('0x44')]('id')[_0x54a9('0x44')](_0x54a9('0x29'))[_0x54a9('0x44')]('color')['from'](_0x54a9('0x45'));var _0x54af99=squel[_0x54a9('0x43')]()['field'](_0x54a9('0x46'))[_0x54a9('0x44')](_0x54a9('0x47'))[_0x54a9('0x44')](_0x54a9('0x48'))[_0x54a9('0x49')](_0x54a9('0x4a'),'ui')[_0x54a9('0x4b')](_0x54a9('0x4c'),'u',_0x54a9('0x4d'));var _0x4c68e4=squel[_0x54a9('0x43')]()[_0x54a9('0x49')](_0x54a9('0x4e'),'i')[_0x54a9('0x4b')](_0x54a9('0x4f'),'c',_0x54a9('0x50'))['left_join'](_0x54a9('0x4c'),'o','o.id\x20=\x20i.UserId')['left_join'](_0x54a9('0x51'),'a',_0x54a9('0x52'))[_0x54a9('0x4b')](_0x54a9('0x53'),'me',_0x54a9('0x54'))[_0x54a9('0x4b')]('sms_interaction_has_tags','it',_0x54a9('0x55'))[_0x54a9('0x4b')](_0x54a9('0x45'),'t','t.id\x20=\x20it.TagId');var _0x2988e0=squel[_0x54a9('0x56')]();var _0x20820c=[];var _0x3cb143=squel[_0x54a9('0x56')]();var _0x3d26a1;if(_0x2249c6[_0x54a9('0x35')][_0x54a9('0x57')]){_0x3d26a1=as[_0x54a9('0x58')](_0x2249c6['query'][_0x54a9('0x57')]);var _0x4d363c=_0x3d26a1['sqlOperator'];for(var _0x30590e=0x0;_0x30590e<_0x3d26a1['conditions'][_0x54a9('0x3b')];_0x30590e++){var _0x497055=_0x3d26a1['conditions'][_0x30590e];var _0x28a8be='i';var _0x29a2a4=_[_0x54a9('0x59')](_0x41b0b9,[_0x54a9('0x29'),_0x497055['field']]);if(!_0x29a2a4){switch(_0x497055['field']){case _0x54a9('0x5a'):if(_0x497055[_0x54a9('0x5b')]==0x1){_0x4c68e4['having']('`'+_0x497055[_0x54a9('0x44')]+'`\x20=\x200');}else{_0x4c68e4[_0x54a9('0x5c')]('`'+_0x497055[_0x54a9('0x44')]+'`\x20>\x200');}break;case _0x54a9('0x5d'):if(_0x497055['operator']===_0x54a9('0x5e')){if(_0x497055[_0x54a9('0x5b')][_0x54a9('0x2d')]('\x20')[_0x54a9('0x3b')]>0x1){_0x2988e0[_0x4d363c](_0x54a9('0x5f'),qs[_0x54a9('0x60')](_0x497055['value']),null);}else{var _0x301ee9='%'+_0x497055[_0x54a9('0x5b')]+'%';_0x2988e0[_0x4d363c]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x301ee9,_0x301ee9,_0x301ee9);}}else{_0x29a2a4=_[_0x54a9('0x59')](_0x41b0b9,[_0x54a9('0x29'),'ContactId']);_0x497055[_0x54a9('0x44')]='ContactId';_0x42018d=as['buildExpression'](_0x28a8be,_0x29a2a4[_0x54a9('0x32')],_0x497055);_0x2988e0[_0x4d363c](_0x42018d[_0x54a9('0x61')],_0x42018d[_0x54a9('0x5b')][_0x54a9('0x62')],_0x42018d[_0x54a9('0x5b')][_0x54a9('0x26')]);}break;case'Tag':var _0xd9d351=_0x497055['value'][_0x54a9('0x2d')](',')[_0x54a9('0x2a')](function(_0x326027){return Number(_0x326027);});_0xd9d351[_0x54a9('0x63')](function(_0x37c01b){_0x3cb143['or'](_0x54a9('0x64'),'%,'+_0x37c01b+',%');});_0x20820c=_[_0x54a9('0x65')](_0x20820c,_0xd9d351);break;case'User':if(_0x497055[_0x54a9('0x66')]==='$substring'){_0x2988e0[_0x4d363c](_0x54a9('0x67'),'%'+_0x497055['value']+'%',null);}else{_0x29a2a4=_[_0x54a9('0x59')](_0x41b0b9,['name',_0x54a9('0x68')]);_0x497055['field']=_0x54a9('0x68');_0x42018d=as[_0x54a9('0x69')](_0x28a8be,_0x29a2a4[_0x54a9('0x32')],_0x497055);_0x2988e0[_0x4d363c](_0x42018d['text'],_0x42018d[_0x54a9('0x5b')]['start'],_0x42018d[_0x54a9('0x5b')]['end']);}break;case'body':_0x42018d=as['buildExpression']('me',null,_0x497055);_0x2988e0[_0x4d363c](_0x42018d[_0x54a9('0x61')],_0x42018d[_0x54a9('0x5b')]['start'],_0x42018d['value'][_0x54a9('0x26')]);break;}}else{var _0x42018d=as[_0x54a9('0x69')](_0x28a8be,_0x29a2a4['type'],_0x497055);_0x2988e0[_0x4d363c](_0x42018d[_0x54a9('0x61')],_0x42018d[_0x54a9('0x5b')][_0x54a9('0x62')],_0x42018d[_0x54a9('0x5b')][_0x54a9('0x26')]);}}}else{var _0x2b4a57=_(_0x2249c6['query'])[_0x54a9('0x34')]()[_0x54a9('0x2a')](function(_0x586a02){return _[_0x54a9('0x6a')](_0x41b0b9,[_0x54a9('0x29'),_0x586a02])?_0x586a02:undefined;})[_0x54a9('0x6b')]()[_0x54a9('0x5b')]();if(!_['isEmpty'](_0x2b4a57)){_0x2b4a57[_0x54a9('0x63')](function(_0x134d50){if(_0x134d50===_0x54a9('0x6c')){_0x4c68e4[_0x54a9('0x41')]('i.SmsAccountId\x20IN\x20?',[][_0x54a9('0x6d')](_0x2249c6[_0x54a9('0x35')][_0x134d50]));}else if(_0x134d50===_0x54a9('0x6e')){var _0x401fd1=JSON['parse'](_0x2249c6[_0x54a9('0x35')][_0x134d50])[_0x54a9('0x6f')];var _0x46517f=JSON['parse'](_0x2249c6[_0x54a9('0x35')][_0x134d50])['$lte'];_0x4c68e4[_0x54a9('0x41')](_0x54a9('0x70'),_0x401fd1,_0x46517f);}else{if(_0x2249c6[_0x54a9('0x35')][_0x134d50]===_0x54a9('0x71')){_0x4c68e4['where']('i.'+_0x134d50+_0x54a9('0x72'));}else{_0x4c68e4[_0x54a9('0x41')]('i.'+_0x134d50+_0x54a9('0x73'),_0x2249c6['query'][_0x134d50]);}}});}if(_0x2249c6[_0x54a9('0x35')]['read']){if(_0x2249c6[_0x54a9('0x35')][_0x54a9('0x74')]==0x1){_0x4c68e4['having'](_0x54a9('0x75'));}else{_0x4c68e4[_0x54a9('0x5c')]('`unreadMessages`\x20>\x200');}}if(_0x2249c6[_0x54a9('0x35')][_0x54a9('0x76')]){_0x20820c=_[_0x54a9('0x77')](_0x2249c6[_0x54a9('0x35')][_0x54a9('0x76')])?_0x2249c6[_0x54a9('0x35')][_0x54a9('0x76')]:new Array(_0x2249c6[_0x54a9('0x35')]['tag']);_0x20820c['forEach'](function(_0x1a7c0d){_0x3cb143['or'](_0x54a9('0x64'),'%,'+_0x1a7c0d+',%');});}if(_0x2249c6[_0x54a9('0x35')]['filter']){var _0x1d1968=_0x2249c6[_0x54a9('0x35')][_0x54a9('0x78')][_0x54a9('0x79')]('\x5c','\x5c\x5c')[_0x54a9('0x79')](/'/g,'\x27\x27');if(qs['isNumeric'](_0x1d1968)){_0x2988e0['or'](_0x54a9('0x7a'),_0x1d1968+'%')['or']('i.phone\x20LIKE\x20?',_0x1d1968+'%');}else{_0x2988e0['or'](_0x54a9('0x7b'),qs[_0x54a9('0x60')](_0x1d1968))['or'](_0x54a9('0x7c'),_0x1d1968+'%');}}}_0x4c68e4[_0x54a9('0x41')](_0x2988e0);_0x4c68e4[_0x54a9('0x7d')]('i.id');var _0xc58eca={'type':db[_0x54a9('0x7e')]['QueryTypes']['SELECT'],'raw':!![]};var _0x26835d=_0x4c68e4[_0x54a9('0x7f')]();_0x26835d[_0x54a9('0x44')](_0x54a9('0x80'));_0x26835d[_0x54a9('0x44')](_0x54a9('0x81'),_0x54a9('0x5a'));if(_0x43c496[_0x54a9('0x3f')]){_0x43c496[_0x54a9('0x3f')][_0x54a9('0x63')](function(_0x41c937){var _0x5660ca=_0x41c937[0x0]==='contactName'?_0x41c937[0x0]:'i.'+_0x41c937[0x0];_0x4c68e4[_0x54a9('0x3f')](_0x5660ca,_0x41c937[0x1]===_0x54a9('0x82')?![]:!![]);});}if(!_['isEmpty'](_0x20820c)){_0x4c68e4[_0x54a9('0x5c')](_0x3cb143);_0x26835d[_0x54a9('0x41')](_0x54a9('0x83'),_0x20820c);}BPromise[_0x54a9('0x84')]()[_0x54a9('0x24')](function(){if(!_0x3d26a1){if(_0x2249c6[_0x54a9('0x35')][_0x54a9('0x6c')])return;_0x26835d[_0x54a9('0x41')](_0x54a9('0x85'));_0x4c68e4[_0x54a9('0x41')](_0x54a9('0x85'));return;}if(_0x2249c6[_0x54a9('0x86')][_0x54a9('0x87')]!=='agent')return;return _0x2249c6[_0x54a9('0x86')][_0x54a9('0x88')]({'attributes':['id'],'raw':!![]})['then'](function(_0x375e95){if(_[_0x54a9('0x89')](_0x375e95)){_0x26835d[_0x54a9('0x41')](_0x54a9('0x8a'));_0x4c68e4['where']('i.SmsAccountId\x20IS\x20NULL');}else{_0x26835d[_0x54a9('0x41')](_0x54a9('0x8b'),_[_0x54a9('0x2a')](_0x375e95,'id'));_0x4c68e4['where'](_0x54a9('0x8b'),_[_0x54a9('0x2a')](_0x375e95,'id'));}});})[_0x54a9('0x24')](function(){if(_0x2249c6[_0x54a9('0x86')]['role']===_0x54a9('0x8c')&&!_0x3d26a1&&!_0x2249c6[_0x54a9('0x35')][_0x54a9('0x6c')])return[];return db[_0x54a9('0x8d')][_0x54a9('0x35')](_0x26835d[_0x54a9('0x8e')](),_0xc58eca);})[_0x54a9('0x24')](function(_0x14a960){_0x52394f[_0x54a9('0x20')]=_0x14a960[_0x54a9('0x3b')];if(_0x52394f['count']===0x0)return[];return db[_0x54a9('0x8d')][_0x54a9('0x35')](_0x11ce0a[_0x54a9('0x8e')](),_0xc58eca)[_0x54a9('0x24')](function(_0x3760cf){_0x50e5dd=_[_0x54a9('0x8f')](_0x3760cf,'id');_0xc58eca=_[_0x54a9('0x90')](_0xc58eca,{'model':db[_0x54a9('0x2f')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x2249c6[_0x54a9('0x35')]['fields']){_0x43c496['attributes']['forEach'](function(_0x471d54){_0x4c68e4[_0x54a9('0x44')]('i.'+_0x471d54);});}else{_0x4c68e4[_0x54a9('0x44')](_0x54a9('0x81'),_0x54a9('0x5a'));_0x4c68e4[_0x54a9('0x44')](_0x54a9('0x91'),_0x54a9('0x92'));_0x4c68e4[_0x54a9('0x44')](_0x54a9('0x93'),'Account.mandatoryDisposition');_0x4c68e4[_0x54a9('0x44')](_0x54a9('0x94'),'contactName');_0x4c68e4[_0x54a9('0x44')](_0x54a9('0x95'));_0x4c68e4[_0x54a9('0x44')]('c.firstName',_0x54a9('0x96'));_0x4c68e4[_0x54a9('0x44')](_0x54a9('0x97'),_0x54a9('0x98'));_0x4c68e4[_0x54a9('0x44')](_0x54a9('0x99'),_0x54a9('0x9a'));_0x4c68e4[_0x54a9('0x44')](_0x54a9('0x9b'),_0x54a9('0x9c'));_0x4c68e4[_0x54a9('0x44')]('c.mobile',_0x54a9('0x9d'));_0x4c68e4['field'](_0x54a9('0x9e'),_0x54a9('0x9f'));_0x4c68e4[_0x54a9('0x44')](_0x54a9('0xa0'),_0x54a9('0xa1'));_0x4c68e4[_0x54a9('0x44')](_0x54a9('0xa2'),_0x54a9('0xa3'));_0x4c68e4[_0x54a9('0x44')](_0x54a9('0xa4'),_0x54a9('0x2c'));}if(_0x43c496[_0x54a9('0x3e')])_0x4c68e4['limit'](_0x43c496[_0x54a9('0x3e')]);if(_0x43c496[_0x54a9('0x21')])_0x4c68e4[_0x54a9('0x21')](_0x43c496['offset']);return db[_0x54a9('0x8d')]['query'](_0x4c68e4[_0x54a9('0x8e')](),_0xc58eca);})[_0x54a9('0x24')](function(_0x1ea508){_0x54af99[_0x54a9('0x41')](_0x54a9('0xa5'),_[_0x54a9('0x2a')](_0x1ea508,'id'));return db['sequelize'][_0x54a9('0x35')](_0x54af99[_0x54a9('0x8e')](),_0xc58eca)[_0x54a9('0x24')](function(_0xd509cb){var _0x3266bc=_['groupBy'](_0xd509cb,_0x54a9('0xa6'));var _0x5711a5=[];_0x1ea508['forEach'](function(_0x4bc02c){_0x5711a5[_0x54a9('0xa7')](updateSmsInteraction(_0x4bc02c,_0x50e5dd,_0x3266bc));});return BPromise[_0x54a9('0xa8')](_0x5711a5);});});})[_0x54a9('0x24')](function(_0x5b733c){_0x52394f[_0x54a9('0xa9')]=_0x5b733c;return _0x52394f;})['then'](respondWithFilteredResult(_0x1a9886,_0x43c496))['catch'](handleError(_0x1a9886,null));};exports[_0x54a9('0xaa')]=function(_0x3731cd,_0x69a60a){var _0x2d2adf={'raw':![],'where':{'id':_0x3731cd[_0x54a9('0xab')]['id']}},_0x28c079={};_0x28c079[_0x54a9('0x38')]=_[_0x54a9('0x34')](db[_0x54a9('0x2f')][_0x54a9('0x30')]);_0x28c079[_0x54a9('0x35')]=_[_0x54a9('0x34')](_0x3731cd[_0x54a9('0x35')]);_0x28c079[_0x54a9('0x36')]=_[_0x54a9('0x37')](_0x28c079[_0x54a9('0x38')],_0x28c079['query']);_0x2d2adf['attributes']=_['intersection'](_0x28c079[_0x54a9('0x38')],qs[_0x54a9('0x3a')](_0x3731cd[_0x54a9('0x35')][_0x54a9('0x3a')]));_0x2d2adf[_0x54a9('0x39')]=_0x2d2adf[_0x54a9('0x39')]['length']?_0x2d2adf[_0x54a9('0x39')]:_0x28c079['model'];if(_0x3731cd[_0x54a9('0x35')][_0x54a9('0xac')]){_0x2d2adf[_0x54a9('0xad')]=[{'all':!![]}];}_0x2d2adf=_[_0x54a9('0x90')]({},_0x2d2adf,_0x3731cd['options']);return db['SmsInteraction'][_0x54a9('0x59')](_0x2d2adf)[_0x54a9('0x24')](handleEntityNotFound(_0x69a60a,null))[_0x54a9('0x24')](respondWithResult(_0x69a60a,null))[_0x54a9('0xae')](handleError(_0x69a60a,null));};exports[_0x54a9('0xaf')]=function(_0x43c10b,_0xa81553){return db[_0x54a9('0x2f')][_0x54a9('0xaf')](_0x43c10b[_0x54a9('0xb0')],{})[_0x54a9('0x24')](respondWithResult(_0xa81553,0xc9))['catch'](handleError(_0xa81553,null));};exports[_0x54a9('0x23')]=function(_0x45488c,_0xa30d76){if(_0x45488c[_0x54a9('0xb0')]['id']){delete _0x45488c[_0x54a9('0xb0')]['id'];}return db[_0x54a9('0x2f')][_0x54a9('0x59')]({'where':{'id':_0x45488c['params']['id']}})[_0x54a9('0x24')](handleEntityNotFound(_0xa30d76,null))[_0x54a9('0x24')](saveUpdates(_0x45488c['body'],null))[_0x54a9('0x24')](respondWithResult(_0xa30d76,null))[_0x54a9('0xae')](handleError(_0xa30d76,null));};exports['destroy']=function(_0x5853ac,_0x14620a){return db[_0x54a9('0x2f')][_0x54a9('0x59')]({'where':{'id':_0x5853ac[_0x54a9('0xab')]['id']}})['then'](handleEntityNotFound(_0x14620a,null))[_0x54a9('0x24')](removeEntity(_0x14620a,null))[_0x54a9('0xae')](handleError(_0x14620a,null));};exports[_0x54a9('0xb1')]=function(_0x4dfe7c,_0x33d348){return db[_0x54a9('0x2f')][_0x54a9('0xb1')]()[_0x54a9('0x24')](respondWithResult(_0x33d348,null))[_0x54a9('0xae')](handleError(_0x33d348,null));};exports['addMessage']=function(_0xfe9875,_0x2d8f9a,_0x1c6845){return db[_0x54a9('0xb2')][_0x54a9('0x59')]({'where':{'id':_0xfe9875[_0x54a9('0xab')]['id']}})['then'](handleEntityNotFound(_0x2d8f9a,null))['then'](function(_0x2dc7a7){if(_0x2dc7a7){return _0x2dc7a7['addMessage'](_0xfe9875[_0x54a9('0xb0')][_0x54a9('0xb3')],_[_0x54a9('0xb4')](_0xfe9875[_0x54a9('0xb0')],['ids','id'])||{});}})[_0x54a9('0x24')](respondWithResult(_0x2d8f9a,null))[_0x54a9('0xae')](handleError(_0x2d8f9a,null));};exports[_0x54a9('0xb5')]=function(_0x201fa3,_0x2f3302,_0x10d9e7){var _0x117611={'raw':![],'where':{}};var _0x348487={};var _0x36c7f3={'count':0x0,'rows':[]};return db[_0x54a9('0x2f')][_0x54a9('0xb6')]({'where':{'id':_0x201fa3[_0x54a9('0xab')]['id']}})[_0x54a9('0x24')](handleEntityNotFound(_0x2f3302,null))[_0x54a9('0x24')](function(_0x3a2563){if(_0x3a2563){_0x348487[_0x54a9('0x38')]=_[_0x54a9('0x34')](db[_0x54a9('0xb2')][_0x54a9('0x30')]);_0x348487[_0x54a9('0x35')]=_['keys'](_0x201fa3[_0x54a9('0x35')]);_0x348487[_0x54a9('0x36')]=_[_0x54a9('0x37')](_0x348487['model'],_0x348487[_0x54a9('0x35')]);_0x117611['attributes']=_[_0x54a9('0x37')](_0x348487[_0x54a9('0x38')],qs[_0x54a9('0x3a')](_0x201fa3[_0x54a9('0x35')][_0x54a9('0x3a')]));_0x117611[_0x54a9('0x39')]=_0x117611[_0x54a9('0x39')][_0x54a9('0x3b')]?_0x117611[_0x54a9('0x39')]:_0x348487[_0x54a9('0x38')];if(!_0x201fa3[_0x54a9('0x35')][_0x54a9('0x3c')](_0x54a9('0x3d'))){_0x117611[_0x54a9('0x3e')]=qs[_0x54a9('0x3e')](_0x201fa3[_0x54a9('0x35')][_0x54a9('0x3e')]);_0x117611['offset']=qs[_0x54a9('0x21')](_0x201fa3['query'][_0x54a9('0x21')]);}_0x117611[_0x54a9('0x3f')]=qs[_0x54a9('0x40')](_0x201fa3[_0x54a9('0x35')][_0x54a9('0x40')]);_0x117611[_0x54a9('0x41')]=qs[_0x54a9('0x36')](_['pick'](_0x201fa3['query'],_0x348487['filters']));_0x117611['where'][_0x54a9('0xa6')]=_0x3a2563['id'];if(_0x201fa3['query']['filter']){_0x117611[_0x54a9('0x41')]=_[_0x54a9('0x90')](_0x117611[_0x54a9('0x41')],{'$or':_[_0x54a9('0x2a')](_0x117611['attributes'],function(_0x4e34f6){var _0x503d40={};_0x503d40[_0x4e34f6]={'$like':'%'+_0x201fa3[_0x54a9('0x35')][_0x54a9('0x78')]+'%'};return _0x503d40;})});}if(_0x201fa3[_0x54a9('0x35')][_0x54a9('0x6f')]){var _0x3c02cb=_0x201fa3[_0x54a9('0x35')][_0x54a9('0x6f')][_0x54a9('0x2d')](',');var _0x58dc80={};_0x58dc80[_0x3c02cb[0x0]]={'$gte':moment(_0x3c02cb[0x1])[_0x54a9('0xb7')](_0x54a9('0xb8'))};_0x117611[_0x54a9('0x41')]=_['merge'](_0x117611[_0x54a9('0x41')],_0x58dc80);}_0x117611=_[_0x54a9('0x90')]({},_0x117611,_0x201fa3[_0x54a9('0xb9')]);return db[_0x54a9('0xb2')][_0x54a9('0x20')]({'where':_0x117611[_0x54a9('0x41')]})[_0x54a9('0x24')](function(_0x246edc){_0x36c7f3[_0x54a9('0x20')]=_0x246edc;if(_0x201fa3['query'][_0x54a9('0xac')]){_0x117611[_0x54a9('0xad')]=[{'all':!![]}];}return db[_0x54a9('0xb2')][_0x54a9('0xba')](_0x117611);})[_0x54a9('0x24')](function(_0x107572){_0x36c7f3[_0x54a9('0xa9')]=_0x107572;return _0x36c7f3;});}})['then'](respondWithFilteredResult(_0x2f3302,_0x117611))['catch'](handleError(_0x2f3302,null));};exports['addTags']=function(_0x8b923e,_0x498003,_0x15b84b){return db[_0x54a9('0x2f')][_0x54a9('0x59')]({'where':{'id':_0x8b923e[_0x54a9('0xab')]['id']}})[_0x54a9('0x24')](handleEntityNotFound(_0x498003,null))[_0x54a9('0x24')](function(_0x1c919a){if(_0x1c919a){return _0x1c919a['setTags'](_0x8b923e['body'][_0x54a9('0xb3')],_['omit'](_0x8b923e[_0x54a9('0xb0')],[_0x54a9('0xb3'),'id'])||{})[_0x54a9('0xbb')](function(){return db[_0x54a9('0xbc')]['findAll']({'attributes':['id',_0x54a9('0x29'),_0x54a9('0xbd')],'where':{'id':_0x8b923e['body'][_0x54a9('0xb3')]}});})[_0x54a9('0x24')](function(_0x9ef5ef){socket['emit'](_0x54a9('0xbe'),{'id':Number(_0x8b923e[_0x54a9('0xab')]['id']),'tags':_0x9ef5ef||[]});return{'id':Number(_0x8b923e[_0x54a9('0xab')]['id']),'tags':_0x9ef5ef||[]};});}})[_0x54a9('0x24')](respondWithResult(_0x498003,null))['catch'](handleError(_0x498003,null));};exports['removeTags']=function(_0x4550ff,_0x5a6677,_0x3488ac){return db[_0x54a9('0x2f')][_0x54a9('0x59')]({'where':{'id':_0x4550ff[_0x54a9('0xab')]['id']}})[_0x54a9('0x24')](handleEntityNotFound(_0x5a6677,null))[_0x54a9('0x24')](function(_0x367333){if(_0x367333){return _0x367333['removeTags'](_0x4550ff[_0x54a9('0x35')][_0x54a9('0xb3')]);}})['then'](respondWithStatusCode(_0x5a6677,null))[_0x54a9('0xae')](handleError(_0x5a6677,null));};exports['download']=function(_0x490970,_0x468aba){var _0x20c00d=moment()['unix']()[_0x54a9('0x8e')]();var _0x4f84d0=path[_0x54a9('0xbf')](config['root'],'server',_0x54a9('0xc0'),_0x54a9('0xc1'));var _0xe12ac0=path[_0x54a9('0xbf')](config[_0x54a9('0xc2')],_0x54a9('0xc3'),_0x54a9('0xc0'),_0x54a9('0xc4'));var _0xd97dbe=path[_0x54a9('0xbf')](_0x4f84d0,_0x20c00d);var _0x353442=util[_0x54a9('0xb7')](_0x54a9('0xc5'),_0x490970[_0x54a9('0xab')]['id'],_0x20c00d);var _0x29775a=path[_0x54a9('0xbf')](_0x4f84d0,_0x353442);var _0x5be04b=[];_0x5be04b[_0x54a9('0xa7')]({'model':db[_0x54a9('0xc6')],'as':'User','attributes':['id',_0x54a9('0x2b')],'raw':!![]});_0x5be04b[_0x54a9('0xa7')]({'model':db['CmContact'],'as':'Contact','attributes':['id',_0x54a9('0xc7'),_0x54a9('0xc8')],'raw':!![]});var _0x58f809=[{'model':db[_0x54a9('0xb2')],'as':'Messages','attributes':['id',_0x54a9('0xb0'),_0x54a9('0x6e'),_0x54a9('0xc9'),'secret',_0x54a9('0x74')],'include':_0x5be04b}];_0x58f809[_0x54a9('0xa7')]({'model':db[_0x54a9('0xca')],'as':_0x54a9('0xcb'),'attributes':['id',_0x54a9('0x29')]});_0x58f809[_0x54a9('0xa7')]({'model':db[_0x54a9('0xc6')],'as':_0x54a9('0xcc'),'attributes':['id','fullname']});return db[_0x54a9('0x2f')][_0x54a9('0x59')]({'where':{'id':_0x490970['params']['id']},'include':_0x58f809})[_0x54a9('0x24')](handleEntityNotFound(_0x468aba,null))['then'](function(_0x4fc6d0){if(_0x4fc6d0){var _0x3358e0=_0x4fc6d0[_0x54a9('0xcd')]({'plain':!![]});fs[_0x54a9('0xce')](_0xd97dbe);var _0x15fc5c={'format':'A4','border':_0x54a9('0xcf'),'header':{'height':_0x54a9('0xd0'),'contents':{'first':_0x54a9('0xd1')}},'footer':{'height':_0x54a9('0xd2'),'contents':{'default':util[_0x54a9('0xb7')](_0x54a9('0xd3'),util[_0x54a9('0xb7')](_0x54a9('0xd4'),_0x54a9('0xd5'),_0x3358e0['id']),moment()['format'](_0x54a9('0xd6'))['toString']())}}};var _0x312848={'channel':_0x54a9('0xd5'),'account':_0x3358e0[_0x54a9('0xcb')][_0x54a9('0x29')],'agent':_0x3358e0[_0x54a9('0xcc')]?_0x3358e0[_0x54a9('0xcc')][_0x54a9('0x2b')]:'N.A.','createdAt':moment(_0x3358e0['createdAt'])[_0x54a9('0xb7')](_0x54a9('0xb8'))[_0x54a9('0x8e')](),'closedAt':_0x3358e0[_0x54a9('0xd7')]?moment(_0x3358e0[_0x54a9('0xd8')])[_0x54a9('0xb7')]('YYYY-MM-DD\x20HH:mm:ss')['toString']():'','disposition':_0x3358e0['disposition'],'messages':_(_0x3358e0[_0x54a9('0xd9')])[_0x54a9('0x78')]({'secret':![]})[_0x54a9('0x2a')](function(_0x3b9fa8){return{'date':moment(_0x3b9fa8[_0x54a9('0x6e')])[_0x54a9('0xb7')](_0x54a9('0xb8'))['toString'](),'sender':_0x3b9fa8['direction']===_0x54a9('0xda')?_0x3b9fa8[_0x54a9('0xc6')]?_0x3b9fa8['User']['fullname']:_0x54a9('0xdb'):_0x3b9fa8[_0x54a9('0x5d')][_0x54a9('0xc7')]+(_0x3b9fa8[_0x54a9('0x5d')][_0x54a9('0xc8')]?'\x20'+_0x3b9fa8['Contact']['lastName']:''),'body':_0x3b9fa8[_0x54a9('0xb0')],'direction':_0x3b9fa8[_0x54a9('0xc9')]===_0x54a9('0xda')?'A':'C','secret':_0x3b9fa8[_0x54a9('0xdc')],'read':_0x3b9fa8[_0x54a9('0x74')]};})['value']()};return ejs[_0x54a9('0xdd')](path[_0x54a9('0xbf')](config[_0x54a9('0xc2')],'server',_0x54a9('0xde'),_0x54a9('0xdf')),{'interaction':_0x312848})[_0x54a9('0x24')](function(_0x500ef3){return new BPromise(function(_0x1eaf98,_0x1c2fd2){pdf[_0x54a9('0xaf')](_0x500ef3,_0x15fc5c)[_0x54a9('0xe0')](path[_0x54a9('0xbf')](_0xd97dbe,_0x54a9('0xe1')+_0x3358e0['id']+'-'+_0x20c00d+_0x54a9('0xe2')),function(_0x2fedc1,_0x268c06){if(_0x2fedc1)return _0x1c2fd2(_0x2fedc1);_0x1eaf98(_0x268c06);});});})[_0x54a9('0x24')](function(){return new BPromise(function(_0x496467,_0x33dcc3){zipdir(_0xd97dbe,{'saveTo':_0x29775a},function(_0x6feadc,_0x541d02){if(_0x6feadc)return _0x33dcc3(_0x6feadc);return _0x496467(_0x541d02);});})[_0x54a9('0x24')](function(){return new BPromise(function(_0x73adc6,_0x3e8099){rimraf(_0xd97dbe,function(_0xb86718){if(_0xb86718)_0x3e8099(_0xb86718);return _0x73adc6();});});})[_0x54a9('0x24')](function(){return _0x468aba[_0x54a9('0xe3')](_0x29775a,_0x353442,function(_0x5cc66d){if(_0x5cc66d){console[_0x54a9('0xe4')]('err',_0x5cc66d);}else{fs['unlinkSync'](_0x29775a);}});});});}else{return _0x468aba[_0x54a9('0x27')](0xc8);}})[_0x54a9('0xae')](handleError(_0x468aba,null));};