Built motion from commit 0555bc41.|2.5.41
[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 _0xc97e=['sox','to-csv','ejs','fs-extra','squel','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','socket.io-emitter','./smsInteraction.socket','register','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','reject','save','update','then','error','name','send','Users','map','fullname','TagIds','Tags','forEach','push','catch','waiting','answered','total','closed','UserId','talking','unmanaged','index','type','key','model','query','keys','filters','intersection','attributes','fields','nolimit','order','sort','where','pick','select','field','color','from','u.id','u.fullname','ui.SmsInteractionId','user_has_sms_interactions','left_join','users','u.id\x20=\x20ui.UserId','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','tools_tags','t.id\x20=\x20it.TagId','expr','search','sqlOperator','conditions','length','find','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','Contact','operator','$substring','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','text','start','Tag','split','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','buildExpression','some','compact','isEmpty','SmsAccountId','i.SmsAccountId\x20IN\x20?','createdAt','$gte','parse','$lte','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','i.phone\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','i.id','Sequelize','QueryTypes','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','t.id\x20IN\x20?','resolve','i.SmsAccountId\x20IS\x20NOT\x20NULL','agent','user','getSmsAccounts','i.SmsAccountId\x20IS\x20NULL','sequelize','toString','keyBy','merge','SmsInteraction','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','i.*','Contact.firstName','c.email','c.phone','Contact.phone','Contact.mobile','c.fax','o.fullname','Owner.fullname','o.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.SmsInteractionId\x20IN\x20?','groupBy','SmsInteractionId','all','rows','show','params','includeAll','include','create','body','destroy','describe','addMessage','SmsMessage','ids','omit','getMessages','findOne','rawAttributes','hasOwnProperty','format','YYYY-MM-DD\x20HH:mm:ss','options','findAll','addTags','setTags','spread','removeTags','download','unix','join','root','tmp','attachments','firstName','lastName','Messages','direction','SmsAccount','Account','Owner','N.A.','closedAt','disposition','out','secret','renderFile','server','views','downloadInteraction.ejs','transcript-','.pdf','Sms','log','err','unlinkSync','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path'];(function(_0x5a4915,_0x561449){var _0x8adb3f=function(_0x235969){while(--_0x235969){_0x5a4915['push'](_0x5a4915['shift']());}};_0x8adb3f(++_0x561449);}(_0xc97e,0x1c6));var _0xec97=function(_0x5f4a84,_0x33d504){_0x5f4a84=_0x5f4a84-0x0;var _0x2060fd=_0xc97e[_0x5f4a84];return _0x2060fd;};'use strict';var emlformat=require(_0xec97('0x0'));var rimraf=require(_0xec97('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xec97('0x2'));var rp=require(_0xec97('0x3'));var moment=require(_0xec97('0x4'));var BPromise=require(_0xec97('0x5'));var Mustache=require('mustache');var util=require(_0xec97('0x6'));var path=require(_0xec97('0x7'));var sox=require(_0xec97('0x8'));var csv=require(_0xec97('0x9'));var ejs=require(_0xec97('0xa'));var fs=require('fs');var fs_extra=require(_0xec97('0xb'));var _=require('lodash');var squel=require(_0xec97('0xc'));var crypto=require('crypto');var jsforce=require(_0xec97('0xd'));var deskjs=require(_0xec97('0xe'));var toCsv=require(_0xec97('0x9'));var querystring=require(_0xec97('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xec97('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xec97('0x11'));var pdf=require(_0xec97('0x12'));var hardwareService=require(_0xec97('0x13'));var logger=require(_0xec97('0x14'))('api');var utils=require(_0xec97('0x15'));var config=require(_0xec97('0x16'));var licenseUtil=require(_0xec97('0x17'));var db=require('../../mysqldb')['db'];config[_0xec97('0x18')]=_[_0xec97('0x19')](config[_0xec97('0x18')],{'host':'localhost','port':0x18eb});var socket=require(_0xec97('0x1a'))(new Redis(config['redis']));require(_0xec97('0x1b'))[_0xec97('0x1c')](socket);function respondWithStatusCode(_0x213dfb,_0x265024){_0x265024=_0x265024||0xcc;return function(_0x553843){if(_0x553843){return _0x213dfb[_0xec97('0x1d')](_0x265024);}return _0x213dfb[_0xec97('0x1e')](_0x265024)[_0xec97('0x1f')]();};}function respondWithResult(_0x135f10,_0x116dfa){_0x116dfa=_0x116dfa||0xc8;return function(_0x34da32){if(_0x34da32){return _0x135f10[_0xec97('0x1e')](_0x116dfa)[_0xec97('0x20')](_0x34da32);}};}function respondWithFilteredResult(_0x561c3f,_0x791ef3){return function(_0x46766b){if(_0x46766b){var _0x3548c1=typeof _0x791ef3['offset']===_0xec97('0x21')&&typeof _0x791ef3[_0xec97('0x22')]===_0xec97('0x21');var _0x137842=_0x46766b[_0xec97('0x23')];var _0x535e31=_0x3548c1?0x0:_0x791ef3['offset'];var _0x27641e=_0x3548c1?_0x46766b[_0xec97('0x23')]:_0x791ef3[_0xec97('0x24')]+_0x791ef3[_0xec97('0x22')];var _0x57187b;if(_0x27641e>=_0x137842){_0x27641e=_0x137842;_0x57187b=0xc8;}else{_0x57187b=0xce;}_0x561c3f[_0xec97('0x1e')](_0x57187b);return _0x561c3f[_0xec97('0x25')](_0xec97('0x26'),_0x535e31+'-'+_0x27641e+'/'+_0x137842)[_0xec97('0x20')](_0x46766b);}return null;};}function patchUpdates(_0x2e9bcf){return function(_0x426e17){try{jsonpatch['apply'](_0x426e17,_0x2e9bcf,!![]);}catch(_0x31c9f1){return BPromise[_0xec97('0x27')](_0x31c9f1);}return _0x426e17[_0xec97('0x28')]();};}function saveUpdates(_0x29fed2,_0x229a72){return function(_0x190948){if(_0x190948){return _0x190948[_0xec97('0x29')](_0x29fed2)[_0xec97('0x2a')](function(_0x269aba){return _0x269aba;});}return null;};}function removeEntity(_0x15f928,_0x18270a){return function(_0xb40aeb){if(_0xb40aeb){return _0xb40aeb['destroy']()[_0xec97('0x2a')](function(){_0x15f928['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x17a978,_0x45db59){return function(_0x8e62ce){if(!_0x8e62ce){_0x17a978[_0xec97('0x1d')](0x194);}return _0x8e62ce;};}function handleError(_0x130b56,_0x191edc){_0x191edc=_0x191edc||0x1f4;return function(_0x5101ba){logger[_0xec97('0x2b')](_0x5101ba['stack']);if(_0x5101ba['name']){delete _0x5101ba[_0xec97('0x2c')];}_0x130b56[_0xec97('0x1e')](_0x191edc)[_0xec97('0x2d')](_0x5101ba);};}function getInteractionUsers(_0x3ff4dc,_0x28a28f){return new BPromise(function(_0x100ef0,_0x375584){try{if(_0x28a28f[_0x3ff4dc['id']]){_0x3ff4dc[_0xec97('0x2e')]=_[_0xec97('0x2f')](_0x28a28f[_0x3ff4dc['id']],function(_0x2f286d){return{'id':_0x2f286d['id'],'fullname':_0x2f286d[_0xec97('0x30')]};});}}catch(_0x439c82){_0x375584(_0x439c82);}_0x100ef0(_0x3ff4dc);});}function getInteractionTags(_0x333ec5,_0x4a01b2){return new BPromise(function(_0x2e7d0d,_0x1c75fc){try{if(_0x333ec5[_0xec97('0x31')]){_0x333ec5[_0xec97('0x32')]=[];_0x333ec5[_0xec97('0x31')]['split'](',')[_0xec97('0x33')](function(_0x3239a5){_0x333ec5[_0xec97('0x32')][_0xec97('0x34')](_0x4a01b2[_0x3239a5]);});}delete _0x333ec5[_0xec97('0x31')];}catch(_0x8a711f){_0x1c75fc(_0x8a711f);}_0x2e7d0d(_0x333ec5);});}function updateSmsInteraction(_0x166970,_0x4c3994,_0xf1f80a){return new BPromise(function(_0x13c942,_0x3d6861){return getInteractionUsers(_0x166970,_0xf1f80a)['then'](function(_0x31014e){return getInteractionTags(_0x31014e,_0x4c3994);})[_0xec97('0x2a')](function(_0x146573){return getStateInteraction(_0x146573);})[_0xec97('0x2a')](function(_0x13975a){_0x13c942(_0x13975a);})[_0xec97('0x35')](function(_0x753b80){_0x3d6861(_0x753b80);});});}function getStateInteraction(_0x3a96c1){return new BPromise(function(_0x17e67c){_0x3a96c1[_0xec97('0x36')]=0x0;_0x3a96c1['talking']=0x0;_0x3a96c1[_0xec97('0x37')]=0x0;_0x3a96c1['unmanaged']=0x0;_0x3a96c1[_0xec97('0x38')]=0x0;if(!_0x3a96c1[_0xec97('0x39')]&&!_0x3a96c1[_0xec97('0x3a')]){_0x3a96c1[_0xec97('0x36')]+=0x1;}if(!_0x3a96c1[_0xec97('0x39')]&&_0x3a96c1['UserId']){_0x3a96c1[_0xec97('0x3b')]+=0x1;if(_0x3a96c1[_0xec97('0x36')]){_0x3a96c1[_0xec97('0x36')]-=0x1;}}if(_0x3a96c1['closed']&&_0x3a96c1[_0xec97('0x3a')]){_0x3a96c1[_0xec97('0x37')]+=0x1;if(_0x3a96c1['talking']){_0x3a96c1[_0xec97('0x3b')]-=0x1;}}if(_0x3a96c1[_0xec97('0x39')]&&!_0x3a96c1[_0xec97('0x3a')]){_0x3a96c1[_0xec97('0x3c')]+=0x1;if(_0x3a96c1[_0xec97('0x36')]){_0x3a96c1[_0xec97('0x36')]-=0x1;}}_0x3a96c1['total']+=0x1;_0x17e67c(_0x3a96c1);});}exports[_0xec97('0x3d')]=function(_0x50885d,_0x194707){var _0x1e7188={},_0x683af7={},_0x458110={'count':0x0,'rows':[]};var _0x5f15c6=_[_0xec97('0x2f')](db['SmsInteraction']['rawAttributes'],function(_0x477ebd){return{'name':_0x477ebd['fieldName'],'type':_0x477ebd[_0xec97('0x3e')][_0xec97('0x3f')]};});_0x683af7[_0xec97('0x40')]=_[_0xec97('0x2f')](_0x5f15c6,'name');_0x683af7[_0xec97('0x41')]=_[_0xec97('0x42')](_0x50885d['query']);_0x683af7[_0xec97('0x43')]=_[_0xec97('0x44')](_0x683af7[_0xec97('0x40')],_0x683af7['query']);_0x1e7188[_0xec97('0x45')]=_[_0xec97('0x44')](_0x683af7[_0xec97('0x40')],qs[_0xec97('0x46')](_0x50885d[_0xec97('0x41')][_0xec97('0x46')]));_0x1e7188[_0xec97('0x45')]=_0x1e7188[_0xec97('0x45')]['length']?_0x1e7188['attributes']:_0x683af7['model'];if(!_0x50885d['query']['hasOwnProperty'](_0xec97('0x47'))){_0x1e7188[_0xec97('0x22')]=qs['limit'](_0x50885d[_0xec97('0x41')][_0xec97('0x22')]);_0x1e7188[_0xec97('0x24')]=qs[_0xec97('0x24')](_0x50885d['query'][_0xec97('0x24')]);}_0x1e7188[_0xec97('0x48')]=qs['sort'](_0x50885d[_0xec97('0x41')][_0xec97('0x49')]);_0x1e7188[_0xec97('0x4a')]=qs[_0xec97('0x43')](_[_0xec97('0x4b')](_0x50885d[_0xec97('0x41')],_0x683af7[_0xec97('0x43')]),_0x5f15c6);var _0x16caea=[];var _0x37d669=squel[_0xec97('0x4c')]()['field']('id')[_0xec97('0x4d')]('name')[_0xec97('0x4d')](_0xec97('0x4e'))[_0xec97('0x4f')]('tools_tags');var _0x447c5f=squel[_0xec97('0x4c')]()[_0xec97('0x4d')](_0xec97('0x50'))[_0xec97('0x4d')](_0xec97('0x51'))[_0xec97('0x4d')](_0xec97('0x52'))[_0xec97('0x4f')](_0xec97('0x53'),'ui')[_0xec97('0x54')](_0xec97('0x55'),'u',_0xec97('0x56'));var _0x8a6c63=squel[_0xec97('0x4c')]()[_0xec97('0x4f')]('sms_interactions','i')[_0xec97('0x54')](_0xec97('0x57'),'c',_0xec97('0x58'))[_0xec97('0x54')](_0xec97('0x55'),'o',_0xec97('0x59'))[_0xec97('0x54')](_0xec97('0x5a'),'a',_0xec97('0x5b'))['left_join'](_0xec97('0x5c'),'me','me.SmsInteractionId\x20=\x20i.id')['left_join']('sms_interaction_has_tags','it','it.SmsInteractionId\x20=\x20i.id')[_0xec97('0x54')](_0xec97('0x5d'),'t',_0xec97('0x5e'));var _0x52248b=squel['expr']();var _0x355846=[];var _0x57c79b=squel[_0xec97('0x5f')]();var _0x5cd5d1;if(_0x50885d['query'][_0xec97('0x60')]){_0x5cd5d1=as['parseSearch'](_0x50885d[_0xec97('0x41')][_0xec97('0x60')]);var _0x128225=_0x5cd5d1[_0xec97('0x61')];for(var _0x29d016=0x0;_0x29d016<_0x5cd5d1[_0xec97('0x62')][_0xec97('0x63')];_0x29d016++){var _0x575e60=_0x5cd5d1[_0xec97('0x62')][_0x29d016];var _0xa8dbec='i';var _0x3af31e=_[_0xec97('0x64')](_0x5f15c6,[_0xec97('0x2c'),_0x575e60['field']]);if(!_0x3af31e){switch(_0x575e60[_0xec97('0x4d')]){case _0xec97('0x65'):if(_0x575e60[_0xec97('0x66')]==0x1){_0x8a6c63[_0xec97('0x67')]('`'+_0x575e60[_0xec97('0x4d')]+_0xec97('0x68'));}else{_0x8a6c63[_0xec97('0x67')]('`'+_0x575e60['field']+_0xec97('0x69'));}break;case _0xec97('0x6a'):if(_0x575e60[_0xec97('0x6b')]===_0xec97('0x6c')){if(_0x575e60[_0xec97('0x66')]['split']('\x20')[_0xec97('0x63')]>0x1){_0x52248b[_0x128225]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0x575e60[_0xec97('0x66')]),null);}else{var _0x341d81='%'+_0x575e60[_0xec97('0x66')]+'%';_0x52248b[_0x128225](_0xec97('0x6d'),_0x341d81,_0x341d81,_0x341d81);}}else{_0x3af31e=_[_0xec97('0x64')](_0x5f15c6,[_0xec97('0x2c'),_0xec97('0x6e')]);_0x575e60[_0xec97('0x4d')]=_0xec97('0x6e');_0x55d522=as['buildExpression'](_0xa8dbec,_0x3af31e['type'],_0x575e60);_0x52248b[_0x128225](_0x55d522[_0xec97('0x6f')],_0x55d522[_0xec97('0x66')][_0xec97('0x70')],_0x55d522[_0xec97('0x66')][_0xec97('0x1f')]);}break;case _0xec97('0x71'):var _0x2398d9=_0x575e60[_0xec97('0x66')][_0xec97('0x72')](',')['map'](function(_0x3d0bdf){return Number(_0x3d0bdf);});_0x2398d9[_0xec97('0x33')](function(_0x317e62){_0x57c79b['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x317e62+',%');});_0x355846=_[_0xec97('0x73')](_0x355846,_0x2398d9);break;case _0xec97('0x74'):if(_0x575e60['operator']==='$substring'){_0x52248b[_0x128225](_0xec97('0x75'),'%'+_0x575e60['value']+'%',null);}else{_0x3af31e=_[_0xec97('0x64')](_0x5f15c6,[_0xec97('0x2c'),'UserId']);_0x575e60[_0xec97('0x4d')]='UserId';_0x55d522=as[_0xec97('0x76')](_0xa8dbec,_0x3af31e[_0xec97('0x3e')],_0x575e60);_0x52248b[_0x128225](_0x55d522[_0xec97('0x6f')],_0x55d522[_0xec97('0x66')][_0xec97('0x70')],_0x55d522['value']['end']);}break;case'body':_0x55d522=as['buildExpression']('me',null,_0x575e60);_0x52248b[_0x128225](_0x55d522[_0xec97('0x6f')],_0x55d522[_0xec97('0x66')][_0xec97('0x70')],_0x55d522['value'][_0xec97('0x1f')]);break;}}else{var _0x55d522=as[_0xec97('0x76')](_0xa8dbec,_0x3af31e['type'],_0x575e60);_0x52248b[_0x128225](_0x55d522['text'],_0x55d522['value']['start'],_0x55d522['value'][_0xec97('0x1f')]);}}}else{var _0x2a0b82=_(_0x50885d[_0xec97('0x41')])[_0xec97('0x42')]()['map'](function(_0x543119){return _[_0xec97('0x77')](_0x5f15c6,[_0xec97('0x2c'),_0x543119])?_0x543119:undefined;})[_0xec97('0x78')]()['value']();if(!_[_0xec97('0x79')](_0x2a0b82)){_0x2a0b82[_0xec97('0x33')](function(_0x14b6e3){if(_0x14b6e3===_0xec97('0x7a')){_0x8a6c63[_0xec97('0x4a')](_0xec97('0x7b'),[]['concat'](_0x50885d['query'][_0x14b6e3]));}else if(_0x14b6e3===_0xec97('0x7c')){var _0x170d9b=JSON['parse'](_0x50885d[_0xec97('0x41')][_0x14b6e3])[_0xec97('0x7d')];var _0x19a9db=JSON[_0xec97('0x7e')](_0x50885d[_0xec97('0x41')][_0x14b6e3])[_0xec97('0x7f')];_0x8a6c63[_0xec97('0x4a')]('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x170d9b,_0x19a9db);}else{if(_0x50885d['query'][_0x14b6e3]==='null'){_0x8a6c63[_0xec97('0x4a')]('i.'+_0x14b6e3+_0xec97('0x80'));}else{_0x8a6c63[_0xec97('0x4a')]('i.'+_0x14b6e3+_0xec97('0x81'),_0x50885d[_0xec97('0x41')][_0x14b6e3]);}}});}if(_0x50885d[_0xec97('0x41')][_0xec97('0x82')]){if(_0x50885d['query']['read']==0x1){_0x8a6c63[_0xec97('0x67')](_0xec97('0x83'));}else{_0x8a6c63[_0xec97('0x67')](_0xec97('0x84'));}}if(_0x50885d[_0xec97('0x41')][_0xec97('0x85')]){_0x355846=_[_0xec97('0x86')](_0x50885d[_0xec97('0x41')][_0xec97('0x85')])?_0x50885d[_0xec97('0x41')][_0xec97('0x85')]:new Array(_0x50885d[_0xec97('0x41')]['tag']);_0x355846['forEach'](function(_0x18f3cf){_0x57c79b['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x18f3cf+',%');});}if(_0x50885d[_0xec97('0x41')][_0xec97('0x87')]){var _0x3c2dc8=_0x50885d[_0xec97('0x41')]['filter'][_0xec97('0x88')]('\x5c','\x5c\x5c')[_0xec97('0x88')](/'/g,'\x27\x27');if(qs[_0xec97('0x89')](_0x3c2dc8)){_0x52248b['or'](_0xec97('0x8a'),_0x3c2dc8+'%')['or'](_0xec97('0x8b'),_0x3c2dc8+'%');}else{_0x52248b['or'](_0xec97('0x8c'),qs[_0xec97('0x8d')](_0x3c2dc8))['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x3c2dc8+'%');}}}_0x8a6c63[_0xec97('0x4a')](_0x52248b);_0x8a6c63['group'](_0xec97('0x8e'));var _0x316014={'type':db[_0xec97('0x8f')][_0xec97('0x90')]['SELECT'],'raw':!![]};var _0x1376cb=_0x8a6c63['clone']();_0x1376cb['field'](_0xec97('0x8e'));_0x1376cb['field'](_0xec97('0x91'),_0xec97('0x65'));if(_0x1e7188[_0xec97('0x48')]){_0x1e7188['order'][_0xec97('0x33')](function(_0xcc4cc7){var _0x5c6d23=_0xcc4cc7[0x0]===_0xec97('0x92')?_0xcc4cc7[0x0]:'i.'+_0xcc4cc7[0x0];_0x8a6c63[_0xec97('0x48')](_0x5c6d23,_0xcc4cc7[0x1]==='DESC'?![]:!![]);});}if(!_['isEmpty'](_0x355846)){_0x8a6c63[_0xec97('0x67')](_0x57c79b);_0x1376cb[_0xec97('0x4a')](_0xec97('0x93'),_0x355846);}BPromise[_0xec97('0x94')]()[_0xec97('0x2a')](function(){if(!_0x5cd5d1){if(_0x50885d[_0xec97('0x41')][_0xec97('0x7a')])return;_0x1376cb[_0xec97('0x4a')](_0xec97('0x95'));_0x8a6c63[_0xec97('0x4a')]('i.SmsAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x50885d['user']['role']!==_0xec97('0x96'))return;return _0x50885d[_0xec97('0x97')][_0xec97('0x98')]({'attributes':['id'],'raw':!![]})['then'](function(_0x1c020b){if(_[_0xec97('0x79')](_0x1c020b)){_0x1376cb[_0xec97('0x4a')]('i.SmsAccountId\x20IS\x20NULL');_0x8a6c63['where'](_0xec97('0x99'));}else{_0x1376cb['where'](_0xec97('0x7b'),_[_0xec97('0x2f')](_0x1c020b,'id'));_0x8a6c63['where'](_0xec97('0x7b'),_[_0xec97('0x2f')](_0x1c020b,'id'));}});})[_0xec97('0x2a')](function(){if(_0x50885d['user']['role']==='agent'&&!_0x5cd5d1&&!_0x50885d[_0xec97('0x41')][_0xec97('0x7a')])return[];return db[_0xec97('0x9a')][_0xec97('0x41')](_0x1376cb[_0xec97('0x9b')](),_0x316014);})[_0xec97('0x2a')](function(_0xbbaf87){_0x458110[_0xec97('0x23')]=_0xbbaf87[_0xec97('0x63')];if(_0x458110[_0xec97('0x23')]===0x0)return[];return db[_0xec97('0x9a')]['query'](_0x37d669[_0xec97('0x9b')](),_0x316014)['then'](function(_0x10bc24){_0x16caea=_[_0xec97('0x9c')](_0x10bc24,'id');_0x316014=_[_0xec97('0x9d')](_0x316014,{'model':db[_0xec97('0x9e')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x50885d[_0xec97('0x41')][_0xec97('0x46')]){_0x1e7188[_0xec97('0x45')][_0xec97('0x33')](function(_0x4ab86f){_0x8a6c63[_0xec97('0x4d')]('i.'+_0x4ab86f);});}else{_0x8a6c63['field'](_0xec97('0x91'),'unreadMessages');_0x8a6c63[_0xec97('0x4d')](_0xec97('0x9f'),_0xec97('0xa0'));_0x8a6c63['field'](_0xec97('0xa1'),_0xec97('0xa2'));_0x8a6c63['field']('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','contactName');_0x8a6c63[_0xec97('0x4d')](_0xec97('0xa3'));_0x8a6c63[_0xec97('0x4d')]('c.firstName',_0xec97('0xa4'));_0x8a6c63[_0xec97('0x4d')]('c.lastName','Contact.lastName');_0x8a6c63['field'](_0xec97('0xa5'),'Contact.email');_0x8a6c63[_0xec97('0x4d')](_0xec97('0xa6'),_0xec97('0xa7'));_0x8a6c63['field']('c.mobile',_0xec97('0xa8'));_0x8a6c63[_0xec97('0x4d')](_0xec97('0xa9'),'Contact.fax');_0x8a6c63[_0xec97('0x4d')](_0xec97('0xaa'),_0xec97('0xab'));_0x8a6c63[_0xec97('0x4d')](_0xec97('0xac'),'Owner.internal');_0x8a6c63[_0xec97('0x4d')](_0xec97('0xad'),'TagIds');}if(_0x1e7188[_0xec97('0x22')])_0x8a6c63[_0xec97('0x22')](_0x1e7188[_0xec97('0x22')]);if(_0x1e7188[_0xec97('0x24')])_0x8a6c63[_0xec97('0x24')](_0x1e7188[_0xec97('0x24')]);return db[_0xec97('0x9a')]['query'](_0x8a6c63[_0xec97('0x9b')](),_0x316014);})['then'](function(_0x4314b8){if(_0x4314b8['length']>0x0)_0x447c5f[_0xec97('0x4a')](_0xec97('0xae'),_[_0xec97('0x2f')](_0x4314b8,'id'));return db['sequelize'][_0xec97('0x41')](_0x447c5f[_0xec97('0x9b')](),_0x316014)[_0xec97('0x2a')](function(_0xcc7fb7){var _0x6d23b=_[_0xec97('0xaf')](_0xcc7fb7,_0xec97('0xb0'));var _0x18b518=[];_0x4314b8[_0xec97('0x33')](function(_0x133275){_0x18b518[_0xec97('0x34')](updateSmsInteraction(_0x133275,_0x16caea,_0x6d23b));});return BPromise[_0xec97('0xb1')](_0x18b518);});});})[_0xec97('0x2a')](function(_0x2515c7){_0x458110[_0xec97('0xb2')]=_0x2515c7;return _0x458110;})[_0xec97('0x2a')](respondWithFilteredResult(_0x194707,_0x1e7188))['catch'](handleError(_0x194707,null));};exports[_0xec97('0xb3')]=function(_0x197f61,_0x45140f){var _0x126ced={'raw':![],'where':{'id':_0x197f61[_0xec97('0xb4')]['id']}},_0x584b50={};_0x584b50[_0xec97('0x40')]=_[_0xec97('0x42')](db[_0xec97('0x9e')]['rawAttributes']);_0x584b50[_0xec97('0x41')]=_['keys'](_0x197f61[_0xec97('0x41')]);_0x584b50[_0xec97('0x43')]=_[_0xec97('0x44')](_0x584b50[_0xec97('0x40')],_0x584b50['query']);_0x126ced['attributes']=_['intersection'](_0x584b50['model'],qs['fields'](_0x197f61['query'][_0xec97('0x46')]));_0x126ced[_0xec97('0x45')]=_0x126ced[_0xec97('0x45')][_0xec97('0x63')]?_0x126ced['attributes']:_0x584b50[_0xec97('0x40')];if(_0x197f61[_0xec97('0x41')][_0xec97('0xb5')]){_0x126ced[_0xec97('0xb6')]=[{'all':!![]}];}_0x126ced=_[_0xec97('0x9d')]({},_0x126ced,_0x197f61['options']);return db[_0xec97('0x9e')][_0xec97('0x64')](_0x126ced)['then'](handleEntityNotFound(_0x45140f,null))['then'](respondWithResult(_0x45140f,null))['catch'](handleError(_0x45140f,null));};exports[_0xec97('0xb7')]=function(_0x4e6ce3,_0x2b8253){return db['SmsInteraction']['create'](_0x4e6ce3[_0xec97('0xb8')],{})[_0xec97('0x2a')](respondWithResult(_0x2b8253,0xc9))[_0xec97('0x35')](handleError(_0x2b8253,null));};exports['update']=function(_0x522b88,_0x2140e8){if(_0x522b88[_0xec97('0xb8')]['id']){delete _0x522b88[_0xec97('0xb8')]['id'];}return db[_0xec97('0x9e')][_0xec97('0x64')]({'where':{'id':_0x522b88['params']['id']}})[_0xec97('0x2a')](handleEntityNotFound(_0x2140e8,null))[_0xec97('0x2a')](saveUpdates(_0x522b88[_0xec97('0xb8')],null))[_0xec97('0x2a')](respondWithResult(_0x2140e8,null))[_0xec97('0x35')](handleError(_0x2140e8,null));};exports[_0xec97('0xb9')]=function(_0x4ca1fb,_0x5065ec){return db[_0xec97('0x9e')][_0xec97('0x64')]({'where':{'id':_0x4ca1fb[_0xec97('0xb4')]['id']}})[_0xec97('0x2a')](handleEntityNotFound(_0x5065ec,null))[_0xec97('0x2a')](removeEntity(_0x5065ec,null))[_0xec97('0x35')](handleError(_0x5065ec,null));};exports[_0xec97('0xba')]=function(_0x19f00a,_0x55b6ca){return db['SmsInteraction']['describe']()[_0xec97('0x2a')](respondWithResult(_0x55b6ca,null))[_0xec97('0x35')](handleError(_0x55b6ca,null));};exports[_0xec97('0xbb')]=function(_0x47445a,_0x4d29a0,_0x6f053){return db[_0xec97('0xbc')]['find']({'where':{'id':_0x47445a[_0xec97('0xb4')]['id']}})[_0xec97('0x2a')](handleEntityNotFound(_0x4d29a0,null))[_0xec97('0x2a')](function(_0x16c380){if(_0x16c380){return _0x16c380[_0xec97('0xbb')](_0x47445a[_0xec97('0xb8')][_0xec97('0xbd')],_[_0xec97('0xbe')](_0x47445a[_0xec97('0xb8')],[_0xec97('0xbd'),'id'])||{});}})[_0xec97('0x2a')](respondWithResult(_0x4d29a0,null))[_0xec97('0x35')](handleError(_0x4d29a0,null));};exports[_0xec97('0xbf')]=function(_0x8347b1,_0x35a2d1,_0xab9548){var _0x5e5423={'raw':![],'where':{}};var _0x596dfb={};var _0x21d607={'count':0x0,'rows':[]};return db[_0xec97('0x9e')][_0xec97('0xc0')]({'where':{'id':_0x8347b1[_0xec97('0xb4')]['id']}})[_0xec97('0x2a')](handleEntityNotFound(_0x35a2d1,null))[_0xec97('0x2a')](function(_0x4ad38e){if(_0x4ad38e){_0x596dfb[_0xec97('0x40')]=_[_0xec97('0x42')](db[_0xec97('0xbc')][_0xec97('0xc1')]);_0x596dfb[_0xec97('0x41')]=_[_0xec97('0x42')](_0x8347b1['query']);_0x596dfb[_0xec97('0x43')]=_[_0xec97('0x44')](_0x596dfb[_0xec97('0x40')],_0x596dfb[_0xec97('0x41')]);_0x5e5423[_0xec97('0x45')]=_['intersection'](_0x596dfb[_0xec97('0x40')],qs[_0xec97('0x46')](_0x8347b1['query'][_0xec97('0x46')]));_0x5e5423[_0xec97('0x45')]=_0x5e5423['attributes'][_0xec97('0x63')]?_0x5e5423['attributes']:_0x596dfb['model'];if(!_0x8347b1[_0xec97('0x41')][_0xec97('0xc2')](_0xec97('0x47'))){_0x5e5423[_0xec97('0x22')]=qs['limit'](_0x8347b1[_0xec97('0x41')][_0xec97('0x22')]);_0x5e5423[_0xec97('0x24')]=qs[_0xec97('0x24')](_0x8347b1['query']['offset']);}_0x5e5423[_0xec97('0x48')]=qs[_0xec97('0x49')](_0x8347b1['query']['sort']);_0x5e5423['where']=qs[_0xec97('0x43')](_['pick'](_0x8347b1[_0xec97('0x41')],_0x596dfb[_0xec97('0x43')]));_0x5e5423[_0xec97('0x4a')][_0xec97('0xb0')]=_0x4ad38e['id'];if(_0x8347b1[_0xec97('0x41')][_0xec97('0x87')]){_0x5e5423['where']=_[_0xec97('0x9d')](_0x5e5423[_0xec97('0x4a')],{'$or':_['map'](_0x5e5423[_0xec97('0x45')],function(_0x5212a7){var _0x37eced={};_0x37eced[_0x5212a7]={'$like':'%'+_0x8347b1[_0xec97('0x41')]['filter']+'%'};return _0x37eced;})});}if(_0x8347b1[_0xec97('0x41')][_0xec97('0x7d')]){var _0xddf835=_0x8347b1['query'][_0xec97('0x7d')]['split'](',');var _0x37de45={};_0x37de45[_0xddf835[0x0]]={'$gte':moment(_0xddf835[0x1])[_0xec97('0xc3')](_0xec97('0xc4'))};_0x5e5423[_0xec97('0x4a')]=_[_0xec97('0x9d')](_0x5e5423['where'],_0x37de45);}_0x5e5423=_[_0xec97('0x9d')]({},_0x5e5423,_0x8347b1[_0xec97('0xc5')]);return db['SmsMessage'][_0xec97('0x23')]({'where':_0x5e5423[_0xec97('0x4a')]})['then'](function(_0x2d9cf4){_0x21d607[_0xec97('0x23')]=_0x2d9cf4;if(_0x8347b1[_0xec97('0x41')][_0xec97('0xb5')]){_0x5e5423[_0xec97('0xb6')]=[{'all':!![]}];}return db[_0xec97('0xbc')][_0xec97('0xc6')](_0x5e5423);})['then'](function(_0x1cce19){_0x21d607[_0xec97('0xb2')]=_0x1cce19;return _0x21d607;});}})[_0xec97('0x2a')](respondWithFilteredResult(_0x35a2d1,_0x5e5423))['catch'](handleError(_0x35a2d1,null));};exports[_0xec97('0xc7')]=function(_0x2d7ec7,_0x50a32a,_0x474bec){return db[_0xec97('0x9e')][_0xec97('0x64')]({'where':{'id':_0x2d7ec7[_0xec97('0xb4')]['id']}})[_0xec97('0x2a')](handleEntityNotFound(_0x50a32a,null))[_0xec97('0x2a')](function(_0x1582a5){if(_0x1582a5){return _0x1582a5[_0xec97('0xc8')](_0x2d7ec7[_0xec97('0xb8')]['ids'],_['omit'](_0x2d7ec7[_0xec97('0xb8')],['ids','id'])||{})[_0xec97('0xc9')](function(){return db[_0xec97('0x71')][_0xec97('0xc6')]({'attributes':['id','name',_0xec97('0x4e')],'where':{'id':_0x2d7ec7[_0xec97('0xb8')][_0xec97('0xbd')]}});})[_0xec97('0x2a')](function(_0x497bc1){socket['emit']('smsInteractionTags:save',{'id':Number(_0x2d7ec7[_0xec97('0xb4')]['id']),'tags':_0x497bc1||[]});return{'id':Number(_0x2d7ec7['params']['id']),'tags':_0x497bc1||[]};});}})[_0xec97('0x2a')](respondWithResult(_0x50a32a,null))['catch'](handleError(_0x50a32a,null));};exports[_0xec97('0xca')]=function(_0x2a2c97,_0x19b63b,_0x2412e8){return db[_0xec97('0x9e')]['find']({'where':{'id':_0x2a2c97[_0xec97('0xb4')]['id']}})[_0xec97('0x2a')](handleEntityNotFound(_0x19b63b,null))[_0xec97('0x2a')](function(_0x2d7fc2){if(_0x2d7fc2){return _0x2d7fc2[_0xec97('0xca')](_0x2a2c97[_0xec97('0x41')][_0xec97('0xbd')]);}})['then'](respondWithStatusCode(_0x19b63b,null))[_0xec97('0x35')](handleError(_0x19b63b,null));};exports[_0xec97('0xcb')]=function(_0x23db40,_0xeba8da){var _0x2fa8bd=moment()[_0xec97('0xcc')]()[_0xec97('0x9b')]();var _0x3d7554=path[_0xec97('0xcd')](config[_0xec97('0xce')],'server','files',_0xec97('0xcf'));var _0x37090d=path[_0xec97('0xcd')](config[_0xec97('0xce')],'server','files',_0xec97('0xd0'));var _0xfd460a=path[_0xec97('0xcd')](_0x3d7554,_0x2fa8bd);var _0x23196b=util[_0xec97('0xc3')]('transcript-%d-%s.zip',_0x23db40['params']['id'],_0x2fa8bd);var _0x1c8ad2=path[_0xec97('0xcd')](_0x3d7554,_0x23196b);var _0x46a783=[];_0x46a783[_0xec97('0x34')]({'model':db[_0xec97('0x74')],'as':_0xec97('0x74'),'attributes':['id',_0xec97('0x30')],'raw':!![]});_0x46a783[_0xec97('0x34')]({'model':db['CmContact'],'as':_0xec97('0x6a'),'attributes':['id',_0xec97('0xd1'),_0xec97('0xd2')],'raw':!![]});var _0x2e3af8=[{'model':db[_0xec97('0xbc')],'as':_0xec97('0xd3'),'attributes':['id',_0xec97('0xb8'),'createdAt',_0xec97('0xd4'),'secret','read'],'include':_0x46a783}];_0x2e3af8['push']({'model':db[_0xec97('0xd5')],'as':_0xec97('0xd6'),'attributes':['id',_0xec97('0x2c')]});_0x2e3af8['push']({'model':db[_0xec97('0x74')],'as':'Owner','attributes':['id',_0xec97('0x30')]});return db[_0xec97('0x9e')][_0xec97('0x64')]({'where':{'id':_0x23db40[_0xec97('0xb4')]['id']},'include':_0x2e3af8})[_0xec97('0x2a')](handleEntityNotFound(_0xeba8da,null))['then'](function(_0x4cbbbe){if(_0x4cbbbe){var _0x3b6d53=_0x4cbbbe['get']({'plain':!![]});fs['mkdirSync'](_0xfd460a);var _0x470001={'channel':'Sms','account':_0x3b6d53[_0xec97('0xd6')][_0xec97('0x2c')],'agent':_0x3b6d53[_0xec97('0xd7')]?_0x3b6d53[_0xec97('0xd7')][_0xec97('0x30')]:_0xec97('0xd8'),'createdAt':moment(_0x3b6d53[_0xec97('0x7c')])[_0xec97('0xc3')](_0xec97('0xc4'))[_0xec97('0x9b')](),'closedAt':_0x3b6d53['closed']?moment(_0x3b6d53[_0xec97('0xd9')])[_0xec97('0xc3')]('YYYY-MM-DD\x20HH:mm:ss')[_0xec97('0x9b')]():'','disposition':_0x3b6d53[_0xec97('0xda')],'messages':_(_0x3b6d53[_0xec97('0xd3')])[_0xec97('0x87')]({'secret':![]})['map'](function(_0x3f0ba9){return{'date':moment(_0x3f0ba9['createdAt'])[_0xec97('0xc3')](_0xec97('0xc4'))[_0xec97('0x9b')](),'sender':_0x3f0ba9[_0xec97('0xd4')]===_0xec97('0xdb')?_0x3f0ba9[_0xec97('0x74')]?_0x3f0ba9[_0xec97('0x74')][_0xec97('0x30')]:'System':_0x3f0ba9[_0xec97('0x6a')][_0xec97('0xd1')]+(_0x3f0ba9[_0xec97('0x6a')][_0xec97('0xd2')]?'\x20'+_0x3f0ba9[_0xec97('0x6a')][_0xec97('0xd2')]:''),'body':_0x3f0ba9[_0xec97('0xb8')],'direction':_0x3f0ba9[_0xec97('0xd4')]==='out'?'A':'C','secret':_0x3f0ba9[_0xec97('0xdc')],'read':_0x3f0ba9[_0xec97('0x82')]};})[_0xec97('0x66')]()};return ejs[_0xec97('0xdd')](path[_0xec97('0xcd')](config[_0xec97('0xce')],_0xec97('0xde'),_0xec97('0xdf'),_0xec97('0xe0')),{'interaction':_0x470001})[_0xec97('0x2a')](function(_0x445574){var _0x223bee=path['join'](_0xfd460a,_0xec97('0xe1')+_0x3b6d53['id']+'-'+_0x2fa8bd+_0xec97('0xe2'));var _0x5765d3={'path':_0x223bee,'channel':_0xec97('0xe3'),'interactionId':_0x3b6d53['id']};return pdf['createPdfFromHTML'](_0x445574,_0x5765d3);})[_0xec97('0x2a')](function(){return new BPromise(function(_0x4d6ffd,_0xeb277c){zipdir(_0xfd460a,{'saveTo':_0x1c8ad2},function(_0x146a0d,_0x22fa3f){if(_0x146a0d)return _0xeb277c(_0x146a0d);return _0x4d6ffd(_0x22fa3f);});})[_0xec97('0x2a')](function(){return new BPromise(function(_0x26238a,_0x45be76){rimraf(_0xfd460a,function(_0x5e5f18){if(_0x5e5f18)_0x45be76(_0x5e5f18);return _0x26238a();});});})[_0xec97('0x2a')](function(){return _0xeba8da[_0xec97('0xcb')](_0x1c8ad2,_0x23196b,function(_0x41680f){if(_0x41680f){console[_0xec97('0xe4')](_0xec97('0xe5'),_0x41680f);}else{fs[_0xec97('0xe6')](_0x1c8ad2);}});});});}else{return _0xeba8da[_0xec97('0x1d')](0xc8);}})[_0xec97('0x35')](handleError(_0xeba8da,null));};