Built motion from commit 994c64e1.|2.6.1
[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 _0x4e83=['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?','find','ContactId','buildExpression','text','start','User','$substring','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','body','keys','some','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','filter','replace','isNumeric','i.phone\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','i.id','Sequelize','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','DESC','isEmpty','t.id\x20IN\x20?','SmsAccountId','i.SmsAccountId\x20IS\x20NOT\x20NULL','user','role','getSmsAccounts','i.SmsAccountId\x20IS\x20NULL','i.SmsAccountId\x20IN\x20?','agent','sequelize','toString','keyBy','merge','a.key','a.mandatoryDisposition','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','c.firstName','Contact.firstName','c.lastName','Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','Contact.fax','Owner.fullname','o.internal','Owner.internal','ui.SmsInteractionId\x20IN\x20?','SmsInteractionId','all','rows','show','params','includeAll','include','create','describe','SmsMessage','addMessage','omit','ids','getMessages','findOne','hasOwnProperty','format','YYYY-MM-DD\x20HH:mm:ss','addTags','setTags','spread','Tag','findAll','color','emit','smsInteractionTags:save','removeTags','download','unix','join','root','server','files','tmp','transcript-%d-%s.zip','CmContact','firstName','lastName','secret','SmsAccount','Account','Owner','get','mkdirSync','Sms','N.A.','closedAt','disposition','Messages','out','System','Contact','direction','renderFile','downloadInteraction.ejs','transcript-','.pdf','createPdfFromHTML','err','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','register','sendStatus','end','status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','destroy','then','error','stack','name','send','map','fullname','TagIds','split','forEach','Tags','push','catch','talking','answered','unmanaged','total','closed','waiting','UserId','index','SmsInteraction','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','select','field','from','u.fullname','ui.SmsInteractionId','user_has_sms_interactions','left_join','u.id\x20=\x20ui.UserId','sms_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','sms_accounts','a.id\x20=\x20i.SmsAccountId','sms_messages','it.SmsInteractionId\x20=\x20i.id','expr','search','parseSearch','conditions','unreadMessages','value'];(function(_0x10c47f,_0x1bc4fc){var _0x3b2b11=function(_0x2c41a8){while(--_0x2c41a8){_0x10c47f['push'](_0x10c47f['shift']());}};_0x3b2b11(++_0x1bc4fc);}(_0x4e83,0x88));var _0x34e8=function(_0x320c90,_0x515e0a){_0x320c90=_0x320c90-0x0;var _0x4b8824=_0x4e83[_0x320c90];return _0x4b8824;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x34e8('0x0'));var zipdir=require(_0x34e8('0x1'));var jsonpatch=require(_0x34e8('0x2'));var rp=require(_0x34e8('0x3'));var moment=require('moment');var BPromise=require(_0x34e8('0x4'));var Mustache=require(_0x34e8('0x5'));var util=require(_0x34e8('0x6'));var path=require(_0x34e8('0x7'));var sox=require(_0x34e8('0x8'));var csv=require(_0x34e8('0x9'));var ejs=require(_0x34e8('0xa'));var fs=require('fs');var fs_extra=require(_0x34e8('0xb'));var _=require(_0x34e8('0xc'));var squel=require(_0x34e8('0xd'));var crypto=require(_0x34e8('0xe'));var jsforce=require(_0x34e8('0xf'));var deskjs=require(_0x34e8('0x10'));var toCsv=require('to-csv');var querystring=require(_0x34e8('0x11'));var Papa=require(_0x34e8('0x12'));var Redis=require(_0x34e8('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x34e8('0x14'));var as=require(_0x34e8('0x15'));var pdf=require(_0x34e8('0x16'));var hardwareService=require(_0x34e8('0x17'));var logger=require(_0x34e8('0x18'))('api');var utils=require(_0x34e8('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x34e8('0x1a'));var db=require(_0x34e8('0x1b'))['db'];config[_0x34e8('0x1c')]=_[_0x34e8('0x1d')](config[_0x34e8('0x1c')],{'host':_0x34e8('0x1e'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x34e8('0x1c')]));require('./smsInteraction.socket')[_0x34e8('0x1f')](socket);function respondWithStatusCode(_0x544e36,_0x398621){_0x398621=_0x398621||0xcc;return function(_0x217e81){if(_0x217e81){return _0x544e36[_0x34e8('0x20')](_0x398621);}return _0x544e36['status'](_0x398621)[_0x34e8('0x21')]();};}function respondWithResult(_0x5628d2,_0x423e12){_0x423e12=_0x423e12||0xc8;return function(_0xed8219){if(_0xed8219){return _0x5628d2[_0x34e8('0x22')](_0x423e12)['json'](_0xed8219);}};}function respondWithFilteredResult(_0x8e15d2,_0x1a2fa7){return function(_0x3b83bb){if(_0x3b83bb){var _0x38edda=typeof _0x1a2fa7[_0x34e8('0x23')]===_0x34e8('0x24')&&typeof _0x1a2fa7[_0x34e8('0x25')]===_0x34e8('0x24');var _0xafe909=_0x3b83bb[_0x34e8('0x26')];var _0x498599=_0x38edda?0x0:_0x1a2fa7[_0x34e8('0x23')];var _0x7462d9=_0x38edda?_0x3b83bb[_0x34e8('0x26')]:_0x1a2fa7[_0x34e8('0x23')]+_0x1a2fa7[_0x34e8('0x25')];var _0x40e631;if(_0x7462d9>=_0xafe909){_0x7462d9=_0xafe909;_0x40e631=0xc8;}else{_0x40e631=0xce;}_0x8e15d2[_0x34e8('0x22')](_0x40e631);return _0x8e15d2[_0x34e8('0x27')](_0x34e8('0x28'),_0x498599+'-'+_0x7462d9+'/'+_0xafe909)[_0x34e8('0x29')](_0x3b83bb);}return null;};}function patchUpdates(_0xe68802){return function(_0x181d2e){try{jsonpatch[_0x34e8('0x2a')](_0x181d2e,_0xe68802,!![]);}catch(_0x2e3038){return BPromise[_0x34e8('0x2b')](_0x2e3038);}return _0x181d2e[_0x34e8('0x2c')]();};}function saveUpdates(_0x3df27a,_0x210d13){return function(_0x3ad08e){if(_0x3ad08e){return _0x3ad08e[_0x34e8('0x2d')](_0x3df27a)['then'](function(_0x4cf03e){return _0x4cf03e;});}return null;};}function removeEntity(_0x4a2caa,_0x3c8cb3){return function(_0x5e4809){if(_0x5e4809){return _0x5e4809[_0x34e8('0x2e')]()[_0x34e8('0x2f')](function(){_0x4a2caa['status'](0xcc)[_0x34e8('0x21')]();});}};}function handleEntityNotFound(_0x4cc3e5,_0x1440d0){return function(_0x57a1f6){if(!_0x57a1f6){_0x4cc3e5[_0x34e8('0x20')](0x194);}return _0x57a1f6;};}function handleError(_0x47fb2d,_0x3d6123){_0x3d6123=_0x3d6123||0x1f4;return function(_0x4087dc){logger[_0x34e8('0x30')](_0x4087dc[_0x34e8('0x31')]);if(_0x4087dc['name']){delete _0x4087dc[_0x34e8('0x32')];}_0x47fb2d[_0x34e8('0x22')](_0x3d6123)[_0x34e8('0x33')](_0x4087dc);};}function getInteractionUsers(_0x52b2ba,_0x14b416){return new BPromise(function(_0x5d60f0,_0x301c44){try{if(_0x14b416[_0x52b2ba['id']]){_0x52b2ba['Users']=_[_0x34e8('0x34')](_0x14b416[_0x52b2ba['id']],function(_0x396ac3){return{'id':_0x396ac3['id'],'fullname':_0x396ac3[_0x34e8('0x35')]};});}}catch(_0x3d0ec2){_0x301c44(_0x3d0ec2);}_0x5d60f0(_0x52b2ba);});}function getInteractionTags(_0xf2ba18,_0x210c99){return new BPromise(function(_0xe3ac21,_0x4f13da){try{if(_0xf2ba18[_0x34e8('0x36')]){_0xf2ba18['Tags']=[];_0xf2ba18[_0x34e8('0x36')][_0x34e8('0x37')](',')[_0x34e8('0x38')](function(_0x37d2f3){_0xf2ba18[_0x34e8('0x39')][_0x34e8('0x3a')](_0x210c99[_0x37d2f3]);});}delete _0xf2ba18[_0x34e8('0x36')];}catch(_0x57299d){_0x4f13da(_0x57299d);}_0xe3ac21(_0xf2ba18);});}function updateSmsInteraction(_0x3e74d5,_0x3d41eb,_0x1a26e3){return new BPromise(function(_0x35e21c,_0x3a600c){return getInteractionUsers(_0x3e74d5,_0x1a26e3)[_0x34e8('0x2f')](function(_0x22d507){return getInteractionTags(_0x22d507,_0x3d41eb);})[_0x34e8('0x2f')](function(_0x458587){return getStateInteraction(_0x458587);})[_0x34e8('0x2f')](function(_0x370d43){_0x35e21c(_0x370d43);})[_0x34e8('0x3b')](function(_0x36bd94){_0x3a600c(_0x36bd94);});});}function getStateInteraction(_0x5b81ed){return new BPromise(function(_0xbf00d6){_0x5b81ed['waiting']=0x0;_0x5b81ed[_0x34e8('0x3c')]=0x0;_0x5b81ed[_0x34e8('0x3d')]=0x0;_0x5b81ed[_0x34e8('0x3e')]=0x0;_0x5b81ed[_0x34e8('0x3f')]=0x0;if(!_0x5b81ed[_0x34e8('0x40')]&&!_0x5b81ed['UserId']){_0x5b81ed[_0x34e8('0x41')]+=0x1;}if(!_0x5b81ed[_0x34e8('0x40')]&&_0x5b81ed[_0x34e8('0x42')]){_0x5b81ed[_0x34e8('0x3c')]+=0x1;if(_0x5b81ed[_0x34e8('0x41')]){_0x5b81ed[_0x34e8('0x41')]-=0x1;}}if(_0x5b81ed['closed']&&_0x5b81ed[_0x34e8('0x42')]){_0x5b81ed[_0x34e8('0x3d')]+=0x1;if(_0x5b81ed[_0x34e8('0x3c')]){_0x5b81ed[_0x34e8('0x3c')]-=0x1;}}if(_0x5b81ed['closed']&&!_0x5b81ed[_0x34e8('0x42')]){_0x5b81ed['unmanaged']+=0x1;if(_0x5b81ed[_0x34e8('0x41')]){_0x5b81ed[_0x34e8('0x41')]-=0x1;}}_0x5b81ed[_0x34e8('0x3f')]+=0x1;_0xbf00d6(_0x5b81ed);});}exports[_0x34e8('0x43')]=function(_0x14ffe0,_0x4d14a6){var _0x2747f4={},_0x5ee752={},_0x1ac0e8={'count':0x0,'rows':[]};var _0x31d911=_[_0x34e8('0x34')](db[_0x34e8('0x44')][_0x34e8('0x45')],function(_0x24fddd){return{'name':_0x24fddd['fieldName'],'type':_0x24fddd[_0x34e8('0x46')][_0x34e8('0x47')]};});_0x5ee752[_0x34e8('0x48')]=_['map'](_0x31d911,_0x34e8('0x32'));_0x5ee752[_0x34e8('0x49')]=_['keys'](_0x14ffe0[_0x34e8('0x49')]);_0x5ee752[_0x34e8('0x4a')]=_[_0x34e8('0x4b')](_0x5ee752[_0x34e8('0x48')],_0x5ee752['query']);_0x2747f4[_0x34e8('0x4c')]=_[_0x34e8('0x4b')](_0x5ee752[_0x34e8('0x48')],qs[_0x34e8('0x4d')](_0x14ffe0[_0x34e8('0x49')][_0x34e8('0x4d')]));_0x2747f4[_0x34e8('0x4c')]=_0x2747f4[_0x34e8('0x4c')][_0x34e8('0x4e')]?_0x2747f4[_0x34e8('0x4c')]:_0x5ee752[_0x34e8('0x48')];if(!_0x14ffe0[_0x34e8('0x49')]['hasOwnProperty'](_0x34e8('0x4f'))){_0x2747f4['limit']=qs[_0x34e8('0x25')](_0x14ffe0['query']['limit']);_0x2747f4['offset']=qs['offset'](_0x14ffe0['query']['offset']);}_0x2747f4[_0x34e8('0x50')]=qs['sort'](_0x14ffe0['query'][_0x34e8('0x51')]);_0x2747f4[_0x34e8('0x52')]=qs[_0x34e8('0x4a')](_[_0x34e8('0x53')](_0x14ffe0[_0x34e8('0x49')],_0x5ee752[_0x34e8('0x4a')]),_0x31d911);var _0x595f01=[];var _0xfb37b3=squel[_0x34e8('0x54')]()[_0x34e8('0x55')]('id')['field']('name')[_0x34e8('0x55')]('color')[_0x34e8('0x56')]('tools_tags');var _0x611df8=squel[_0x34e8('0x54')]()[_0x34e8('0x55')]('u.id')[_0x34e8('0x55')](_0x34e8('0x57'))['field'](_0x34e8('0x58'))[_0x34e8('0x56')](_0x34e8('0x59'),'ui')[_0x34e8('0x5a')]('users','u',_0x34e8('0x5b'));var _0x1b244c=squel[_0x34e8('0x54')]()['from'](_0x34e8('0x5c'),'i')['left_join'](_0x34e8('0x5d'),'c',_0x34e8('0x5e'))[_0x34e8('0x5a')]('users','o',_0x34e8('0x5f'))[_0x34e8('0x5a')](_0x34e8('0x60'),'a',_0x34e8('0x61'))[_0x34e8('0x5a')](_0x34e8('0x62'),'me','me.SmsInteractionId\x20=\x20i.id')[_0x34e8('0x5a')]('sms_interaction_has_tags','it',_0x34e8('0x63'))['left_join']('tools_tags','t','t.id\x20=\x20it.TagId');var _0x1e8496=squel[_0x34e8('0x64')]();var _0x245145=[];var _0x3061c1=squel[_0x34e8('0x64')]();var _0x11fca6;if(_0x14ffe0['query'][_0x34e8('0x65')]){_0x11fca6=as[_0x34e8('0x66')](_0x14ffe0[_0x34e8('0x49')]['search']);var _0x2b970c=_0x11fca6['sqlOperator'];for(var _0x37b60d=0x0;_0x37b60d<_0x11fca6['conditions']['length'];_0x37b60d++){var _0x1b3762=_0x11fca6[_0x34e8('0x67')][_0x37b60d];var _0x4186d9='i';var _0x567c77=_['find'](_0x31d911,[_0x34e8('0x32'),_0x1b3762['field']]);if(!_0x567c77){switch(_0x1b3762[_0x34e8('0x55')]){case _0x34e8('0x68'):if(_0x1b3762[_0x34e8('0x69')]==0x1){_0x1b244c[_0x34e8('0x6a')]('`'+_0x1b3762[_0x34e8('0x55')]+'`\x20=\x200');}else{_0x1b244c['having']('`'+_0x1b3762[_0x34e8('0x55')]+_0x34e8('0x6b'));}break;case'Contact':if(_0x1b3762[_0x34e8('0x6c')]==='$substring'){if(_0x1b3762[_0x34e8('0x69')][_0x34e8('0x37')]('\x20')[_0x34e8('0x4e')]>0x1){_0x1e8496[_0x2b970c](_0x34e8('0x6d'),qs['getFullTextValue'](_0x1b3762[_0x34e8('0x69')]),null);}else{var _0x56fb47='%'+_0x1b3762['value']+'%';_0x1e8496[_0x2b970c](_0x34e8('0x6e'),_0x56fb47,_0x56fb47,_0x56fb47);}}else{_0x567c77=_[_0x34e8('0x6f')](_0x31d911,[_0x34e8('0x32'),_0x34e8('0x70')]);_0x1b3762[_0x34e8('0x55')]=_0x34e8('0x70');_0x21898a=as[_0x34e8('0x71')](_0x4186d9,_0x567c77[_0x34e8('0x46')],_0x1b3762);_0x1e8496[_0x2b970c](_0x21898a[_0x34e8('0x72')],_0x21898a['value'][_0x34e8('0x73')],_0x21898a[_0x34e8('0x69')][_0x34e8('0x21')]);}break;case'Tag':var _0x293cfa=_0x1b3762[_0x34e8('0x69')][_0x34e8('0x37')](',')['map'](function(_0x35cf0a){return Number(_0x35cf0a);});_0x293cfa[_0x34e8('0x38')](function(_0x242acb){_0x3061c1['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x242acb+',%');});_0x245145=_['union'](_0x245145,_0x293cfa);break;case _0x34e8('0x74'):if(_0x1b3762[_0x34e8('0x6c')]===_0x34e8('0x75')){_0x1e8496[_0x2b970c](_0x34e8('0x76'),'%'+_0x1b3762['value']+'%',null);}else{_0x567c77=_[_0x34e8('0x6f')](_0x31d911,[_0x34e8('0x32'),'UserId']);_0x1b3762['field']=_0x34e8('0x42');_0x21898a=as[_0x34e8('0x71')](_0x4186d9,_0x567c77[_0x34e8('0x46')],_0x1b3762);_0x1e8496[_0x2b970c](_0x21898a[_0x34e8('0x72')],_0x21898a[_0x34e8('0x69')][_0x34e8('0x73')],_0x21898a[_0x34e8('0x69')][_0x34e8('0x21')]);}break;case _0x34e8('0x77'):_0x21898a=as[_0x34e8('0x71')]('me',null,_0x1b3762);_0x1e8496[_0x2b970c](_0x21898a[_0x34e8('0x72')],_0x21898a[_0x34e8('0x69')][_0x34e8('0x73')],_0x21898a[_0x34e8('0x69')][_0x34e8('0x21')]);break;}}else{var _0x21898a=as[_0x34e8('0x71')](_0x4186d9,_0x567c77['type'],_0x1b3762);_0x1e8496[_0x2b970c](_0x21898a['text'],_0x21898a[_0x34e8('0x69')][_0x34e8('0x73')],_0x21898a[_0x34e8('0x69')][_0x34e8('0x21')]);}}}else{var _0x4493f0=_(_0x14ffe0['query'])[_0x34e8('0x78')]()[_0x34e8('0x34')](function(_0x3b5dc3){return _[_0x34e8('0x79')](_0x31d911,[_0x34e8('0x32'),_0x3b5dc3])?_0x3b5dc3:undefined;})['compact']()[_0x34e8('0x69')]();if(!_['isEmpty'](_0x4493f0)){_0x4493f0['forEach'](function(_0x185dbb){if(_0x185dbb==='SmsAccountId'){_0x1b244c[_0x34e8('0x52')]('i.SmsAccountId\x20IN\x20?',[][_0x34e8('0x7a')](_0x14ffe0[_0x34e8('0x49')][_0x185dbb]));}else if(_0x185dbb===_0x34e8('0x7b')){var _0x3a7d65=JSON[_0x34e8('0x7c')](_0x14ffe0[_0x34e8('0x49')][_0x185dbb])[_0x34e8('0x7d')];var _0xca869=JSON[_0x34e8('0x7c')](_0x14ffe0[_0x34e8('0x49')][_0x185dbb])[_0x34e8('0x7e')];_0x1b244c[_0x34e8('0x52')](_0x34e8('0x7f'),_0x3a7d65,_0xca869);}else{if(_0x14ffe0[_0x34e8('0x49')][_0x185dbb]===_0x34e8('0x80')){_0x1b244c['where']('i.'+_0x185dbb+_0x34e8('0x81'));}else{_0x1b244c[_0x34e8('0x52')]('i.'+_0x185dbb+_0x34e8('0x82'),_0x14ffe0[_0x34e8('0x49')][_0x185dbb]);}}});}if(_0x14ffe0[_0x34e8('0x49')][_0x34e8('0x83')]){if(_0x14ffe0['query']['read']==0x1){_0x1b244c[_0x34e8('0x6a')](_0x34e8('0x84'));}else{_0x1b244c['having'](_0x34e8('0x85'));}}if(_0x14ffe0[_0x34e8('0x49')][_0x34e8('0x86')]){_0x245145=_[_0x34e8('0x87')](_0x14ffe0[_0x34e8('0x49')][_0x34e8('0x86')])?_0x14ffe0[_0x34e8('0x49')][_0x34e8('0x86')]:new Array(_0x14ffe0[_0x34e8('0x49')][_0x34e8('0x86')]);_0x245145['forEach'](function(_0x25607f){_0x3061c1['or'](_0x34e8('0x88'),'%,'+_0x25607f+',%');});}if(_0x14ffe0[_0x34e8('0x49')][_0x34e8('0x89')]){var _0x4fff0c=_0x14ffe0[_0x34e8('0x49')]['filter']['replace']('\x5c','\x5c\x5c')[_0x34e8('0x8a')](/'/g,'\x27\x27');if(qs[_0x34e8('0x8b')](_0x4fff0c)){_0x1e8496['or']('i.id\x20LIKE\x20?',_0x4fff0c+'%')['or'](_0x34e8('0x8c'),_0x4fff0c+'%');}else{_0x1e8496['or'](_0x34e8('0x8d'),qs[_0x34e8('0x8e')](_0x4fff0c))['or'](_0x34e8('0x8f'),_0x4fff0c+'%');}}}_0x1b244c[_0x34e8('0x52')](_0x1e8496);_0x1b244c['group'](_0x34e8('0x90'));var _0xc171fa={'type':db[_0x34e8('0x91')][_0x34e8('0x92')][_0x34e8('0x93')],'raw':!![]};var _0xf2ad51=_0x1b244c[_0x34e8('0x94')]();_0xf2ad51[_0x34e8('0x55')](_0x34e8('0x90'));_0xf2ad51['field'](_0x34e8('0x95'),_0x34e8('0x68'));if(_0x2747f4['order']){_0x2747f4[_0x34e8('0x50')]['forEach'](function(_0x1b4ed6){var _0x3724ce=_0x1b4ed6[0x0]===_0x34e8('0x96')?_0x1b4ed6[0x0]:'i.'+_0x1b4ed6[0x0];_0x1b244c[_0x34e8('0x50')](_0x3724ce,_0x1b4ed6[0x1]===_0x34e8('0x97')?![]:!![]);});}if(!_[_0x34e8('0x98')](_0x245145)){_0x1b244c[_0x34e8('0x6a')](_0x3061c1);_0xf2ad51['where'](_0x34e8('0x99'),_0x245145);}BPromise['resolve']()[_0x34e8('0x2f')](function(){if(!_0x11fca6){if(_0x14ffe0[_0x34e8('0x49')][_0x34e8('0x9a')])return;_0xf2ad51[_0x34e8('0x52')](_0x34e8('0x9b'));_0x1b244c[_0x34e8('0x52')]('i.SmsAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x14ffe0[_0x34e8('0x9c')][_0x34e8('0x9d')]!=='agent')return;return _0x14ffe0[_0x34e8('0x9c')][_0x34e8('0x9e')]({'attributes':['id'],'raw':!![]})[_0x34e8('0x2f')](function(_0x430942){if(_[_0x34e8('0x98')](_0x430942)){_0xf2ad51[_0x34e8('0x52')](_0x34e8('0x9f'));_0x1b244c[_0x34e8('0x52')]('i.SmsAccountId\x20IS\x20NULL');}else{_0xf2ad51[_0x34e8('0x52')]('i.SmsAccountId\x20IN\x20?',_[_0x34e8('0x34')](_0x430942,'id'));_0x1b244c['where'](_0x34e8('0xa0'),_['map'](_0x430942,'id'));}});})[_0x34e8('0x2f')](function(){if(_0x14ffe0[_0x34e8('0x9c')][_0x34e8('0x9d')]===_0x34e8('0xa1')&&!_0x11fca6&&!_0x14ffe0[_0x34e8('0x49')][_0x34e8('0x9a')])return[];return db[_0x34e8('0xa2')]['query'](_0xf2ad51[_0x34e8('0xa3')](),_0xc171fa);})[_0x34e8('0x2f')](function(_0x1ecf94){_0x1ac0e8[_0x34e8('0x26')]=_0x1ecf94['length'];if(_0x1ac0e8[_0x34e8('0x26')]===0x0)return[];return db['sequelize'][_0x34e8('0x49')](_0xfb37b3[_0x34e8('0xa3')](),_0xc171fa)[_0x34e8('0x2f')](function(_0xbc610a){_0x595f01=_[_0x34e8('0xa4')](_0xbc610a,'id');_0xc171fa=_[_0x34e8('0xa5')](_0xc171fa,{'model':db[_0x34e8('0x44')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x14ffe0[_0x34e8('0x49')][_0x34e8('0x4d')]){_0x2747f4['attributes']['forEach'](function(_0x14ebc2){_0x1b244c[_0x34e8('0x55')]('i.'+_0x14ebc2);});}else{_0x1b244c[_0x34e8('0x55')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','unreadMessages');_0x1b244c['field'](_0x34e8('0xa6'),'Account.key');_0x1b244c[_0x34e8('0x55')](_0x34e8('0xa7'),_0x34e8('0xa8'));_0x1b244c['field'](_0x34e8('0xa9'),_0x34e8('0x96'));_0x1b244c['field']('i.*');_0x1b244c['field'](_0x34e8('0xaa'),_0x34e8('0xab'));_0x1b244c[_0x34e8('0x55')](_0x34e8('0xac'),'Contact.lastName');_0x1b244c[_0x34e8('0x55')]('c.email',_0x34e8('0xad'));_0x1b244c['field'](_0x34e8('0xae'),_0x34e8('0xaf'));_0x1b244c[_0x34e8('0x55')](_0x34e8('0xb0'),_0x34e8('0xb1'));_0x1b244c[_0x34e8('0x55')]('c.fax',_0x34e8('0xb2'));_0x1b244c[_0x34e8('0x55')]('o.fullname',_0x34e8('0xb3'));_0x1b244c[_0x34e8('0x55')](_0x34e8('0xb4'),_0x34e8('0xb5'));_0x1b244c[_0x34e8('0x55')]('GROUP_CONCAT(DISTINCT\x20t.id)','TagIds');}if(_0x2747f4[_0x34e8('0x25')])_0x1b244c[_0x34e8('0x25')](_0x2747f4[_0x34e8('0x25')]);if(_0x2747f4[_0x34e8('0x23')])_0x1b244c['offset'](_0x2747f4[_0x34e8('0x23')]);return db['sequelize'][_0x34e8('0x49')](_0x1b244c[_0x34e8('0xa3')](),_0xc171fa);})[_0x34e8('0x2f')](function(_0x2d0eda){if(_0x2d0eda['length']>0x0)_0x611df8[_0x34e8('0x52')](_0x34e8('0xb6'),_[_0x34e8('0x34')](_0x2d0eda,'id'));return db['sequelize'][_0x34e8('0x49')](_0x611df8['toString'](),_0xc171fa)[_0x34e8('0x2f')](function(_0x516324){var _0x34b983=_['groupBy'](_0x516324,_0x34e8('0xb7'));var _0x2580e4=[];_0x2d0eda[_0x34e8('0x38')](function(_0xc2349c){_0x2580e4[_0x34e8('0x3a')](updateSmsInteraction(_0xc2349c,_0x595f01,_0x34b983));});return BPromise[_0x34e8('0xb8')](_0x2580e4);});});})[_0x34e8('0x2f')](function(_0x4b8ec1){_0x1ac0e8[_0x34e8('0xb9')]=_0x4b8ec1;return _0x1ac0e8;})[_0x34e8('0x2f')](respondWithFilteredResult(_0x4d14a6,_0x2747f4))[_0x34e8('0x3b')](handleError(_0x4d14a6,null));};exports[_0x34e8('0xba')]=function(_0x3dd8a1,_0x151de2){var _0x3b6352={'raw':![],'where':{'id':_0x3dd8a1[_0x34e8('0xbb')]['id']}},_0x1cd418={};_0x1cd418[_0x34e8('0x48')]=_[_0x34e8('0x78')](db['SmsInteraction'][_0x34e8('0x45')]);_0x1cd418['query']=_[_0x34e8('0x78')](_0x3dd8a1[_0x34e8('0x49')]);_0x1cd418['filters']=_[_0x34e8('0x4b')](_0x1cd418[_0x34e8('0x48')],_0x1cd418[_0x34e8('0x49')]);_0x3b6352[_0x34e8('0x4c')]=_[_0x34e8('0x4b')](_0x1cd418[_0x34e8('0x48')],qs['fields'](_0x3dd8a1[_0x34e8('0x49')][_0x34e8('0x4d')]));_0x3b6352[_0x34e8('0x4c')]=_0x3b6352[_0x34e8('0x4c')]['length']?_0x3b6352[_0x34e8('0x4c')]:_0x1cd418[_0x34e8('0x48')];if(_0x3dd8a1[_0x34e8('0x49')][_0x34e8('0xbc')]){_0x3b6352[_0x34e8('0xbd')]=[{'all':!![]}];}_0x3b6352=_[_0x34e8('0xa5')]({},_0x3b6352,_0x3dd8a1['options']);return db[_0x34e8('0x44')]['find'](_0x3b6352)[_0x34e8('0x2f')](handleEntityNotFound(_0x151de2,null))[_0x34e8('0x2f')](respondWithResult(_0x151de2,null))[_0x34e8('0x3b')](handleError(_0x151de2,null));};exports[_0x34e8('0xbe')]=function(_0x399827,_0x5b7ab1){return db[_0x34e8('0x44')][_0x34e8('0xbe')](_0x399827[_0x34e8('0x77')],{})[_0x34e8('0x2f')](respondWithResult(_0x5b7ab1,0xc9))[_0x34e8('0x3b')](handleError(_0x5b7ab1,null));};exports[_0x34e8('0x2d')]=function(_0xda1871,_0xff09b5){if(_0xda1871[_0x34e8('0x77')]['id']){delete _0xda1871[_0x34e8('0x77')]['id'];}return db[_0x34e8('0x44')]['find']({'where':{'id':_0xda1871[_0x34e8('0xbb')]['id']}})['then'](handleEntityNotFound(_0xff09b5,null))[_0x34e8('0x2f')](saveUpdates(_0xda1871['body'],null))[_0x34e8('0x2f')](respondWithResult(_0xff09b5,null))['catch'](handleError(_0xff09b5,null));};exports[_0x34e8('0x2e')]=function(_0x865ead,_0x142952){return db[_0x34e8('0x44')][_0x34e8('0x6f')]({'where':{'id':_0x865ead['params']['id']}})[_0x34e8('0x2f')](handleEntityNotFound(_0x142952,null))[_0x34e8('0x2f')](removeEntity(_0x142952,null))[_0x34e8('0x3b')](handleError(_0x142952,null));};exports[_0x34e8('0xbf')]=function(_0x3a6f81,_0x3d6bad){return db[_0x34e8('0x44')][_0x34e8('0xbf')]()[_0x34e8('0x2f')](respondWithResult(_0x3d6bad,null))[_0x34e8('0x3b')](handleError(_0x3d6bad,null));};exports['addMessage']=function(_0x40a7f1,_0x5c2d2c,_0x4b0218){return db[_0x34e8('0xc0')][_0x34e8('0x6f')]({'where':{'id':_0x40a7f1[_0x34e8('0xbb')]['id']}})[_0x34e8('0x2f')](handleEntityNotFound(_0x5c2d2c,null))[_0x34e8('0x2f')](function(_0x1a93cf){if(_0x1a93cf){return _0x1a93cf[_0x34e8('0xc1')](_0x40a7f1[_0x34e8('0x77')]['ids'],_[_0x34e8('0xc2')](_0x40a7f1[_0x34e8('0x77')],[_0x34e8('0xc3'),'id'])||{});}})[_0x34e8('0x2f')](respondWithResult(_0x5c2d2c,null))[_0x34e8('0x3b')](handleError(_0x5c2d2c,null));};exports[_0x34e8('0xc4')]=function(_0x2b8795,_0x5abe28,_0x1b316f){var _0x40cfe3={'raw':![],'where':{}};var _0x33e887={};var _0x43e3f5={'count':0x0,'rows':[]};return db['SmsInteraction'][_0x34e8('0xc5')]({'where':{'id':_0x2b8795['params']['id']}})['then'](handleEntityNotFound(_0x5abe28,null))[_0x34e8('0x2f')](function(_0x346e01){if(_0x346e01){_0x33e887[_0x34e8('0x48')]=_[_0x34e8('0x78')](db[_0x34e8('0xc0')][_0x34e8('0x45')]);_0x33e887[_0x34e8('0x49')]=_[_0x34e8('0x78')](_0x2b8795[_0x34e8('0x49')]);_0x33e887[_0x34e8('0x4a')]=_['intersection'](_0x33e887['model'],_0x33e887[_0x34e8('0x49')]);_0x40cfe3['attributes']=_[_0x34e8('0x4b')](_0x33e887[_0x34e8('0x48')],qs[_0x34e8('0x4d')](_0x2b8795[_0x34e8('0x49')][_0x34e8('0x4d')]));_0x40cfe3[_0x34e8('0x4c')]=_0x40cfe3[_0x34e8('0x4c')]['length']?_0x40cfe3[_0x34e8('0x4c')]:_0x33e887['model'];if(!_0x2b8795[_0x34e8('0x49')][_0x34e8('0xc6')](_0x34e8('0x4f'))){_0x40cfe3[_0x34e8('0x25')]=qs[_0x34e8('0x25')](_0x2b8795[_0x34e8('0x49')][_0x34e8('0x25')]);_0x40cfe3[_0x34e8('0x23')]=qs[_0x34e8('0x23')](_0x2b8795['query'][_0x34e8('0x23')]);}_0x40cfe3['order']=qs[_0x34e8('0x51')](_0x2b8795[_0x34e8('0x49')]['sort']);_0x40cfe3['where']=qs['filters'](_[_0x34e8('0x53')](_0x2b8795[_0x34e8('0x49')],_0x33e887[_0x34e8('0x4a')]));_0x40cfe3[_0x34e8('0x52')][_0x34e8('0xb7')]=_0x346e01['id'];if(_0x2b8795[_0x34e8('0x49')][_0x34e8('0x89')]){_0x40cfe3['where']=_['merge'](_0x40cfe3[_0x34e8('0x52')],{'$or':_[_0x34e8('0x34')](_0x40cfe3[_0x34e8('0x4c')],function(_0x15fd6d){var _0x1f8c54={};_0x1f8c54[_0x15fd6d]={'$like':'%'+_0x2b8795[_0x34e8('0x49')][_0x34e8('0x89')]+'%'};return _0x1f8c54;})});}if(_0x2b8795[_0x34e8('0x49')][_0x34e8('0x7d')]){var _0x1e8a74=_0x2b8795['query'][_0x34e8('0x7d')][_0x34e8('0x37')](',');var _0x4492c8={};_0x4492c8[_0x1e8a74[0x0]]={'$gte':moment(_0x1e8a74[0x1])[_0x34e8('0xc7')](_0x34e8('0xc8'))};_0x40cfe3['where']=_[_0x34e8('0xa5')](_0x40cfe3[_0x34e8('0x52')],_0x4492c8);}_0x40cfe3=_[_0x34e8('0xa5')]({},_0x40cfe3,_0x2b8795['options']);return db[_0x34e8('0xc0')]['count']({'where':_0x40cfe3[_0x34e8('0x52')]})[_0x34e8('0x2f')](function(_0x31ff72){_0x43e3f5[_0x34e8('0x26')]=_0x31ff72;if(_0x2b8795['query'][_0x34e8('0xbc')]){_0x40cfe3[_0x34e8('0xbd')]=[{'all':!![]}];}return db[_0x34e8('0xc0')]['findAll'](_0x40cfe3);})['then'](function(_0x32efc3){_0x43e3f5[_0x34e8('0xb9')]=_0x32efc3;return _0x43e3f5;});}})[_0x34e8('0x2f')](respondWithFilteredResult(_0x5abe28,_0x40cfe3))[_0x34e8('0x3b')](handleError(_0x5abe28,null));};exports[_0x34e8('0xc9')]=function(_0x1113cb,_0x43e504,_0x6e98b6){return db[_0x34e8('0x44')][_0x34e8('0x6f')]({'where':{'id':_0x1113cb[_0x34e8('0xbb')]['id']}})[_0x34e8('0x2f')](handleEntityNotFound(_0x43e504,null))['then'](function(_0x59c33c){if(_0x59c33c){return _0x59c33c[_0x34e8('0xca')](_0x1113cb[_0x34e8('0x77')][_0x34e8('0xc3')],_[_0x34e8('0xc2')](_0x1113cb[_0x34e8('0x77')],['ids','id'])||{})[_0x34e8('0xcb')](function(){return db[_0x34e8('0xcc')][_0x34e8('0xcd')]({'attributes':['id',_0x34e8('0x32'),_0x34e8('0xce')],'where':{'id':_0x1113cb[_0x34e8('0x77')][_0x34e8('0xc3')]}});})[_0x34e8('0x2f')](function(_0x3da6b3){socket[_0x34e8('0xcf')](_0x34e8('0xd0'),{'id':Number(_0x1113cb[_0x34e8('0xbb')]['id']),'tags':_0x3da6b3||[]});return{'id':Number(_0x1113cb['params']['id']),'tags':_0x3da6b3||[]};});}})[_0x34e8('0x2f')](respondWithResult(_0x43e504,null))[_0x34e8('0x3b')](handleError(_0x43e504,null));};exports[_0x34e8('0xd1')]=function(_0x34139f,_0x28b6f7,_0x5a4fdd){return db['SmsInteraction']['find']({'where':{'id':_0x34139f[_0x34e8('0xbb')]['id']}})[_0x34e8('0x2f')](handleEntityNotFound(_0x28b6f7,null))[_0x34e8('0x2f')](function(_0x1e18e2){if(_0x1e18e2){return _0x1e18e2[_0x34e8('0xd1')](_0x34139f[_0x34e8('0x49')][_0x34e8('0xc3')]);}})[_0x34e8('0x2f')](respondWithStatusCode(_0x28b6f7,null))['catch'](handleError(_0x28b6f7,null));};exports[_0x34e8('0xd2')]=function(_0x26e30c,_0x55b1b0){var _0xf3d300=moment()[_0x34e8('0xd3')]()[_0x34e8('0xa3')]();var _0x42cde2=path[_0x34e8('0xd4')](config[_0x34e8('0xd5')],_0x34e8('0xd6'),_0x34e8('0xd7'),_0x34e8('0xd8'));var _0xaff8a0=path[_0x34e8('0xd4')](config[_0x34e8('0xd5')],_0x34e8('0xd6'),_0x34e8('0xd7'),'attachments');var _0x259d86=path['join'](_0x42cde2,_0xf3d300);var _0x23cf24=util['format'](_0x34e8('0xd9'),_0x26e30c['params']['id'],_0xf3d300);var _0x22e9b8=path['join'](_0x42cde2,_0x23cf24);var _0x5281a8=[];_0x5281a8[_0x34e8('0x3a')]({'model':db[_0x34e8('0x74')],'as':_0x34e8('0x74'),'attributes':['id','fullname'],'raw':!![]});_0x5281a8[_0x34e8('0x3a')]({'model':db[_0x34e8('0xda')],'as':'Contact','attributes':['id',_0x34e8('0xdb'),_0x34e8('0xdc')],'raw':!![]});var _0x550112=[{'model':db['SmsMessage'],'as':'Messages','attributes':['id',_0x34e8('0x77'),_0x34e8('0x7b'),'direction',_0x34e8('0xdd'),_0x34e8('0x83')],'include':_0x5281a8}];_0x550112[_0x34e8('0x3a')]({'model':db[_0x34e8('0xde')],'as':_0x34e8('0xdf'),'attributes':['id',_0x34e8('0x32')]});_0x550112[_0x34e8('0x3a')]({'model':db[_0x34e8('0x74')],'as':_0x34e8('0xe0'),'attributes':['id',_0x34e8('0x35')]});return db[_0x34e8('0x44')]['find']({'where':{'id':_0x26e30c[_0x34e8('0xbb')]['id']},'include':_0x550112})[_0x34e8('0x2f')](handleEntityNotFound(_0x55b1b0,null))[_0x34e8('0x2f')](function(_0x3ffef6){if(_0x3ffef6){var _0x7a104a=_0x3ffef6[_0x34e8('0xe1')]({'plain':!![]});fs[_0x34e8('0xe2')](_0x259d86);var _0x44a109={'channel':_0x34e8('0xe3'),'account':_0x7a104a['Account'][_0x34e8('0x32')],'agent':_0x7a104a[_0x34e8('0xe0')]?_0x7a104a['Owner'][_0x34e8('0x35')]:_0x34e8('0xe4'),'createdAt':moment(_0x7a104a[_0x34e8('0x7b')])['format'](_0x34e8('0xc8'))[_0x34e8('0xa3')](),'closedAt':_0x7a104a[_0x34e8('0x40')]?moment(_0x7a104a[_0x34e8('0xe5')])[_0x34e8('0xc7')](_0x34e8('0xc8'))['toString']():'','disposition':_0x7a104a[_0x34e8('0xe6')],'messages':_(_0x7a104a[_0x34e8('0xe7')])[_0x34e8('0x89')]({'secret':![]})[_0x34e8('0x34')](function(_0x3d423c){return{'date':moment(_0x3d423c[_0x34e8('0x7b')])[_0x34e8('0xc7')](_0x34e8('0xc8'))[_0x34e8('0xa3')](),'sender':_0x3d423c['direction']===_0x34e8('0xe8')?_0x3d423c[_0x34e8('0x74')]?_0x3d423c[_0x34e8('0x74')][_0x34e8('0x35')]:_0x34e8('0xe9'):_0x3d423c[_0x34e8('0xea')][_0x34e8('0xdb')]+(_0x3d423c['Contact']['lastName']?'\x20'+_0x3d423c[_0x34e8('0xea')][_0x34e8('0xdc')]:''),'body':_0x3d423c[_0x34e8('0x77')],'direction':_0x3d423c[_0x34e8('0xeb')]===_0x34e8('0xe8')?'A':'C','secret':_0x3d423c[_0x34e8('0xdd')],'read':_0x3d423c[_0x34e8('0x83')]};})[_0x34e8('0x69')]()};return ejs[_0x34e8('0xec')](path[_0x34e8('0xd4')](config[_0x34e8('0xd5')],_0x34e8('0xd6'),'views',_0x34e8('0xed')),{'interaction':_0x44a109})[_0x34e8('0x2f')](function(_0x3c6b5a){var _0x381e6a=path[_0x34e8('0xd4')](_0x259d86,_0x34e8('0xee')+_0x7a104a['id']+'-'+_0xf3d300+_0x34e8('0xef'));var _0x3ff582={'path':_0x381e6a,'channel':_0x34e8('0xe3'),'interactionId':_0x7a104a['id']};return pdf[_0x34e8('0xf0')](_0x3c6b5a,_0x3ff582);})['then'](function(){return new BPromise(function(_0x3594f8,_0x3d95c3){zipdir(_0x259d86,{'saveTo':_0x22e9b8},function(_0x30fc26,_0x413173){if(_0x30fc26)return _0x3d95c3(_0x30fc26);return _0x3594f8(_0x413173);});})[_0x34e8('0x2f')](function(){return new BPromise(function(_0x18b5f7,_0x44ff9c){rimraf(_0x259d86,function(_0x342ac2){if(_0x342ac2)_0x44ff9c(_0x342ac2);return _0x18b5f7();});});})[_0x34e8('0x2f')](function(){return _0x55b1b0['download'](_0x22e9b8,_0x23cf24,function(_0x362de8){if(_0x362de8){console['log'](_0x34e8('0xf1'),_0x362de8);}else{fs['unlinkSync'](_0x22e9b8);}});});});}else{return _0x55b1b0[_0x34e8('0x20')](0xc8);}})[_0x34e8('0x3b')](handleError(_0x55b1b0,null));};