60c87ecabb2799c617392e56f4787048a7299deb
[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 _0x99d1=['join','root','files','tmp','server','firstName','lastName','Messages','direction','secret','SmsAccount','Account','Owner','Sms','N.A.','YYYY-MM-DD\x20HH:mm:ss','closed','closedAt','disposition','out','System','renderFile','views','downloadInteraction.ejs','transcript-','.pdf','createPdfFromHTML','log','err','unlinkSync','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/export/pdf','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','stack','name','send','Users','map','fullname','TagIds','split','Tags','catch','SmsInteraction','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','length','sort','where','filters','select','field','from','tools_tags','u.id','u.fullname','ui.SmsInteractionId','left_join','users','o.id\x20=\x20i.UserId','sms_accounts','a.id\x20=\x20i.SmsAccountId','sms_messages','me.SmsInteractionId\x20=\x20i.id','sms_interaction_has_tags','it.SmsInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','value','having','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','text','forEach','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','UserId','body','start','some','compact','SmsAccountId','i.SmsAccountId\x20IN\x20?','concat','createdAt','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','i.id\x20LIKE\x20?','i.phone\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','i.id','SELECT','clone','DESC','t.id\x20IN\x20?','resolve','user','role','isEmpty','i.SmsAccountId\x20IS\x20NULL','agent','sequelize','toString','keyBy','merge','fields','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','contactName','c.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','Contact.fax','o.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','groupBy','SmsInteractionId','push','all','rows','show','params','includeAll','include','options','create','describe','addMessage','SmsMessage','omit','ids','getMessages','findOne','hasOwnProperty','order','$gte','format','findAll','addTags','setTags','spread','Tag','color','emit','smsInteractionTags:save','removeTags','download','unix'];(function(_0xfaf455,_0x13c0a9){var _0x5aaa60=function(_0x55ce23){while(--_0x55ce23){_0xfaf455['push'](_0xfaf455['shift']());}};_0x5aaa60(++_0x13c0a9);}(_0x99d1,0x104));var _0x199d=function(_0x4ed12e,_0x449d39){_0x4ed12e=_0x4ed12e-0x0;var _0x4b5f8a=_0x99d1[_0x4ed12e];return _0x4b5f8a;};'use strict';var emlformat=require(_0x199d('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x199d('0x1'));var jsonpatch=require(_0x199d('0x2'));var rp=require(_0x199d('0x3'));var moment=require(_0x199d('0x4'));var BPromise=require(_0x199d('0x5'));var Mustache=require('mustache');var util=require(_0x199d('0x6'));var path=require(_0x199d('0x7'));var sox=require(_0x199d('0x8'));var csv=require(_0x199d('0x9'));var ejs=require(_0x199d('0xa'));var fs=require('fs');var fs_extra=require(_0x199d('0xb'));var _=require(_0x199d('0xc'));var squel=require(_0x199d('0xd'));var crypto=require(_0x199d('0xe'));var jsforce=require(_0x199d('0xf'));var deskjs=require(_0x199d('0x10'));var toCsv=require(_0x199d('0x9'));var querystring=require(_0x199d('0x11'));var Papa=require(_0x199d('0x12'));var Redis=require('ioredis');var authService=require(_0x199d('0x13'));var qs=require(_0x199d('0x14'));var as=require('../../components/parsers/advancedSearch');var pdf=require(_0x199d('0x15'));var hardwareService=require(_0x199d('0x16'));var logger=require(_0x199d('0x17'))('api');var utils=require(_0x199d('0x18'));var config=require(_0x199d('0x19'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x199d('0x1a')]=_[_0x199d('0x1b')](config[_0x199d('0x1a')],{'host':_0x199d('0x1c'),'port':0x18eb});var socket=require(_0x199d('0x1d'))(new Redis(config[_0x199d('0x1a')]));require('./smsInteraction.socket')[_0x199d('0x1e')](socket);function respondWithStatusCode(_0x3800b4,_0x5b033d){_0x5b033d=_0x5b033d||0xcc;return function(_0x21ee01){if(_0x21ee01){return _0x3800b4[_0x199d('0x1f')](_0x5b033d);}return _0x3800b4[_0x199d('0x20')](_0x5b033d)[_0x199d('0x21')]();};}function respondWithResult(_0x46a10f,_0x3da481){_0x3da481=_0x3da481||0xc8;return function(_0x1fa235){if(_0x1fa235){return _0x46a10f[_0x199d('0x20')](_0x3da481)[_0x199d('0x22')](_0x1fa235);}};}function respondWithFilteredResult(_0x2c68a9,_0x1c99d2){return function(_0x2637a6){if(_0x2637a6){var _0x1bac24=typeof _0x1c99d2[_0x199d('0x23')]===_0x199d('0x24')&&typeof _0x1c99d2[_0x199d('0x25')]===_0x199d('0x24');var _0x28eb93=_0x2637a6[_0x199d('0x26')];var _0x4a4007=_0x1bac24?0x0:_0x1c99d2['offset'];var _0x5e0746=_0x1bac24?_0x2637a6['count']:_0x1c99d2[_0x199d('0x23')]+_0x1c99d2[_0x199d('0x25')];var _0x548a01;if(_0x5e0746>=_0x28eb93){_0x5e0746=_0x28eb93;_0x548a01=0xc8;}else{_0x548a01=0xce;}_0x2c68a9[_0x199d('0x20')](_0x548a01);return _0x2c68a9[_0x199d('0x27')](_0x199d('0x28'),_0x4a4007+'-'+_0x5e0746+'/'+_0x28eb93)['json'](_0x2637a6);}return null;};}function patchUpdates(_0x14bba2){return function(_0x32f7ea){try{jsonpatch[_0x199d('0x29')](_0x32f7ea,_0x14bba2,!![]);}catch(_0x903963){return BPromise['reject'](_0x903963);}return _0x32f7ea[_0x199d('0x2a')]();};}function saveUpdates(_0xac74fe,_0x167b34){return function(_0x582a1f){if(_0x582a1f){return _0x582a1f[_0x199d('0x2b')](_0xac74fe)[_0x199d('0x2c')](function(_0x34f330){return _0x34f330;});}return null;};}function removeEntity(_0x1f73de,_0x40832c){return function(_0x42ccbd){if(_0x42ccbd){return _0x42ccbd[_0x199d('0x2d')]()[_0x199d('0x2c')](function(){_0x1f73de[_0x199d('0x20')](0xcc)[_0x199d('0x21')]();});}};}function handleEntityNotFound(_0x2e35dc,_0x241ce0){return function(_0x4e8a18){if(!_0x4e8a18){_0x2e35dc['sendStatus'](0x194);}return _0x4e8a18;};}function handleError(_0x2e91fa,_0x17a289){_0x17a289=_0x17a289||0x1f4;return function(_0x4bdbda){logger['error'](_0x4bdbda[_0x199d('0x2e')]);if(_0x4bdbda[_0x199d('0x2f')]){delete _0x4bdbda[_0x199d('0x2f')];}_0x2e91fa['status'](_0x17a289)[_0x199d('0x30')](_0x4bdbda);};}function getInteractionUsers(_0x58ba02,_0x15bf09){return new BPromise(function(_0x26eb74,_0x5a2734){try{if(_0x15bf09[_0x58ba02['id']]){_0x58ba02[_0x199d('0x31')]=_[_0x199d('0x32')](_0x15bf09[_0x58ba02['id']],function(_0x1f7e4d){return{'id':_0x1f7e4d['id'],'fullname':_0x1f7e4d[_0x199d('0x33')]};});}}catch(_0x1dd441){_0x5a2734(_0x1dd441);}_0x26eb74(_0x58ba02);});}function getInteractionTags(_0x306af7,_0x1e05ec){return new BPromise(function(_0x22d17b,_0x3405f8){try{if(_0x306af7[_0x199d('0x34')]){_0x306af7['Tags']=[];_0x306af7[_0x199d('0x34')][_0x199d('0x35')](',')['forEach'](function(_0x4f7e41){_0x306af7[_0x199d('0x36')]['push'](_0x1e05ec[_0x4f7e41]);});}delete _0x306af7[_0x199d('0x34')];}catch(_0x487cc1){_0x3405f8(_0x487cc1);}_0x22d17b(_0x306af7);});}function updateSmsInteraction(_0x9fb64,_0x5a9ea0,_0x5b9709){return new BPromise(function(_0x17cfbe,_0x5b2a4e){return getInteractionUsers(_0x9fb64,_0x5b9709)['then'](function(_0x487432){return getInteractionTags(_0x487432,_0x5a9ea0);})[_0x199d('0x2c')](function(_0x171c36){_0x17cfbe(_0x171c36);})[_0x199d('0x37')](function(_0x1840e4){_0x5b2a4e(_0x1840e4);});});}exports['index']=function(_0x134484,_0x241b2e){var _0x11653a={},_0x40c716={},_0xb9a062={'count':0x0,'rows':[]};var _0x234e77=_[_0x199d('0x32')](db[_0x199d('0x38')][_0x199d('0x39')],function(_0x34691d){return{'name':_0x34691d[_0x199d('0x3a')],'type':_0x34691d[_0x199d('0x3b')][_0x199d('0x3c')]};});_0x40c716[_0x199d('0x3d')]=_[_0x199d('0x32')](_0x234e77,_0x199d('0x2f'));_0x40c716[_0x199d('0x3e')]=_[_0x199d('0x3f')](_0x134484[_0x199d('0x3e')]);_0x40c716['filters']=_[_0x199d('0x40')](_0x40c716['model'],_0x40c716[_0x199d('0x3e')]);_0x11653a[_0x199d('0x41')]=_[_0x199d('0x40')](_0x40c716['model'],qs['fields'](_0x134484['query']['fields']));_0x11653a[_0x199d('0x41')]=_0x11653a[_0x199d('0x41')][_0x199d('0x42')]?_0x11653a[_0x199d('0x41')]:_0x40c716[_0x199d('0x3d')];if(!_0x134484[_0x199d('0x3e')]['hasOwnProperty']('nolimit')){_0x11653a[_0x199d('0x25')]=qs[_0x199d('0x25')](_0x134484[_0x199d('0x3e')][_0x199d('0x25')]);_0x11653a[_0x199d('0x23')]=qs['offset'](_0x134484['query'][_0x199d('0x23')]);}_0x11653a['order']=qs[_0x199d('0x43')](_0x134484['query']['sort']);_0x11653a[_0x199d('0x44')]=qs[_0x199d('0x45')](_['pick'](_0x134484[_0x199d('0x3e')],_0x40c716['filters']),_0x234e77);var _0x35ca57=[];var _0x1d95e1=squel[_0x199d('0x46')]()[_0x199d('0x47')]('id')['field']('name')[_0x199d('0x47')]('color')[_0x199d('0x48')](_0x199d('0x49'));var _0x1ab5d8=squel['select']()[_0x199d('0x47')](_0x199d('0x4a'))[_0x199d('0x47')](_0x199d('0x4b'))[_0x199d('0x47')](_0x199d('0x4c'))[_0x199d('0x48')]('user_has_sms_interactions','ui')[_0x199d('0x4d')]('users','u','u.id\x20=\x20ui.UserId');var _0x1b6d3a=squel[_0x199d('0x46')]()['from']('sms_interactions','i')[_0x199d('0x4d')]('cm_contacts','c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0x199d('0x4d')](_0x199d('0x4e'),'o',_0x199d('0x4f'))['left_join'](_0x199d('0x50'),'a',_0x199d('0x51'))[_0x199d('0x4d')](_0x199d('0x52'),'me',_0x199d('0x53'))[_0x199d('0x4d')](_0x199d('0x54'),'it',_0x199d('0x55'))[_0x199d('0x4d')](_0x199d('0x49'),'t',_0x199d('0x56'));var _0x263c6c=squel[_0x199d('0x57')]();var _0x300e25=[];var _0x215b74=squel['expr']();var _0x92e7ca;if(_0x134484[_0x199d('0x3e')][_0x199d('0x58')]){_0x92e7ca=as[_0x199d('0x59')](_0x134484['query'][_0x199d('0x58')]);var _0x1884f3=_0x92e7ca[_0x199d('0x5a')];for(var _0x528c75=0x0;_0x528c75<_0x92e7ca[_0x199d('0x5b')]['length'];_0x528c75++){var _0xdcef98=_0x92e7ca[_0x199d('0x5b')][_0x528c75];var _0x152e10='i';var _0x59c5e9=_[_0x199d('0x5c')](_0x234e77,[_0x199d('0x2f'),_0xdcef98['field']]);if(!_0x59c5e9){switch(_0xdcef98[_0x199d('0x47')]){case _0x199d('0x5d'):if(_0xdcef98[_0x199d('0x5e')]==0x1){_0x1b6d3a[_0x199d('0x5f')]('`'+_0xdcef98[_0x199d('0x47')]+'`\x20=\x200');}else{_0x1b6d3a[_0x199d('0x5f')]('`'+_0xdcef98['field']+'`\x20>\x200');}break;case _0x199d('0x60'):if(_0xdcef98[_0x199d('0x61')]===_0x199d('0x62')){if(_0xdcef98[_0x199d('0x5e')][_0x199d('0x35')]('\x20')[_0x199d('0x42')]>0x1){_0x263c6c[_0x1884f3](_0x199d('0x63'),qs['getFullTextValue'](_0xdcef98[_0x199d('0x5e')]),null);}else{var _0x3efd95='%'+_0xdcef98[_0x199d('0x5e')]+'%';_0x263c6c[_0x1884f3](_0x199d('0x64'),_0x3efd95,_0x3efd95,_0x3efd95);}}else{_0x59c5e9=_['find'](_0x234e77,[_0x199d('0x2f'),'ContactId']);_0xdcef98['field']=_0x199d('0x65');_0x4216bc=as[_0x199d('0x66')](_0x152e10,_0x59c5e9[_0x199d('0x3b')],_0xdcef98);_0x263c6c[_0x1884f3](_0x4216bc[_0x199d('0x67')],_0x4216bc[_0x199d('0x5e')]['start'],_0x4216bc[_0x199d('0x5e')]['end']);}break;case'Tag':var _0x27b568=_0xdcef98['value']['split'](',')[_0x199d('0x32')](function(_0x418eb0){return Number(_0x418eb0);});_0x27b568[_0x199d('0x68')](function(_0x38c2e0){_0x215b74['or'](_0x199d('0x69'),'%,'+_0x38c2e0+',%');});_0x300e25=_[_0x199d('0x6a')](_0x300e25,_0x27b568);break;case _0x199d('0x6b'):if(_0xdcef98[_0x199d('0x61')]===_0x199d('0x62')){_0x263c6c[_0x1884f3]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0xdcef98['value']+'%',null);}else{_0x59c5e9=_['find'](_0x234e77,[_0x199d('0x2f'),_0x199d('0x6c')]);_0xdcef98['field']=_0x199d('0x6c');_0x4216bc=as[_0x199d('0x66')](_0x152e10,_0x59c5e9['type'],_0xdcef98);_0x263c6c[_0x1884f3](_0x4216bc[_0x199d('0x67')],_0x4216bc[_0x199d('0x5e')]['start'],_0x4216bc[_0x199d('0x5e')]['end']);}break;case _0x199d('0x6d'):_0x4216bc=as[_0x199d('0x66')]('me',null,_0xdcef98);_0x263c6c[_0x1884f3](_0x4216bc[_0x199d('0x67')],_0x4216bc[_0x199d('0x5e')][_0x199d('0x6e')],_0x4216bc['value'][_0x199d('0x21')]);break;}}else{var _0x4216bc=as[_0x199d('0x66')](_0x152e10,_0x59c5e9['type'],_0xdcef98);_0x263c6c[_0x1884f3](_0x4216bc[_0x199d('0x67')],_0x4216bc['value']['start'],_0x4216bc[_0x199d('0x5e')][_0x199d('0x21')]);}}}else{var _0x2a8d79=_(_0x134484['query'])['keys']()[_0x199d('0x32')](function(_0x31171f){return _[_0x199d('0x6f')](_0x234e77,[_0x199d('0x2f'),_0x31171f])?_0x31171f:undefined;})[_0x199d('0x70')]()[_0x199d('0x5e')]();if(!_['isEmpty'](_0x2a8d79)){_0x2a8d79['forEach'](function(_0x551102){if(_0x551102===_0x199d('0x71')){_0x1b6d3a[_0x199d('0x44')](_0x199d('0x72'),[][_0x199d('0x73')](_0x134484['query'][_0x551102]));}else if(_0x551102===_0x199d('0x74')){var _0x2b6562=JSON[_0x199d('0x75')](_0x134484[_0x199d('0x3e')][_0x551102])['$gte'];var _0x19fa45=JSON['parse'](_0x134484[_0x199d('0x3e')][_0x551102])[_0x199d('0x76')];_0x1b6d3a[_0x199d('0x44')](_0x199d('0x77'),_0x2b6562,_0x19fa45);}else{if(_0x134484[_0x199d('0x3e')][_0x551102]===_0x199d('0x78')){_0x1b6d3a['where']('i.'+_0x551102+_0x199d('0x79'));}else{_0x1b6d3a[_0x199d('0x44')]('i.'+_0x551102+_0x199d('0x7a'),_0x134484[_0x199d('0x3e')][_0x551102]);}}});}if(_0x134484['query'][_0x199d('0x7b')]){if(_0x134484['query'][_0x199d('0x7b')]==0x1){_0x1b6d3a[_0x199d('0x5f')]('`unreadMessages`\x20=\x200');}else{_0x1b6d3a[_0x199d('0x5f')](_0x199d('0x7c'));}}if(_0x134484['query'][_0x199d('0x7d')]){_0x300e25=_[_0x199d('0x7e')](_0x134484[_0x199d('0x3e')]['tag'])?_0x134484[_0x199d('0x3e')][_0x199d('0x7d')]:new Array(_0x134484['query'][_0x199d('0x7d')]);_0x300e25[_0x199d('0x68')](function(_0x50f7dd){_0x215b74['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x50f7dd+',%');});}if(_0x134484[_0x199d('0x3e')][_0x199d('0x7f')]){var _0x3dc861=_0x134484[_0x199d('0x3e')][_0x199d('0x7f')]['replace']('\x5c','\x5c\x5c')[_0x199d('0x80')](/'/g,'\x27\x27');if(qs['isNumeric'](_0x3dc861)){_0x263c6c['or'](_0x199d('0x81'),_0x3dc861+'%')['or'](_0x199d('0x82'),_0x3dc861+'%');}else{_0x263c6c['or'](_0x199d('0x83'),qs['getFullTextValue'](_0x3dc861))['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x3dc861+'%');}}}_0x1b6d3a['where'](_0x263c6c);_0x1b6d3a[_0x199d('0x84')](_0x199d('0x85'));var _0x341a10={'type':db['Sequelize']['QueryTypes'][_0x199d('0x86')],'raw':!![]};var _0x5dca3b=_0x1b6d3a[_0x199d('0x87')]();_0x5dca3b[_0x199d('0x47')]('i.id');_0x5dca3b['field']('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x199d('0x5d'));if(_0x11653a['order']){_0x11653a['order'][_0x199d('0x68')](function(_0xeaf7fa){var _0x440ceb=_0xeaf7fa[0x0]==='contactName'?_0xeaf7fa[0x0]:'i.'+_0xeaf7fa[0x0];_0x1b6d3a['order'](_0x440ceb,_0xeaf7fa[0x1]===_0x199d('0x88')?![]:!![]);});}if(!_['isEmpty'](_0x300e25)){_0x1b6d3a['having'](_0x215b74);_0x5dca3b[_0x199d('0x44')](_0x199d('0x89'),_0x300e25);}BPromise[_0x199d('0x8a')]()[_0x199d('0x2c')](function(){if(!_0x92e7ca){if(_0x134484[_0x199d('0x3e')][_0x199d('0x71')])return;_0x5dca3b[_0x199d('0x44')]('i.SmsAccountId\x20IS\x20NOT\x20NULL');_0x1b6d3a['where']('i.SmsAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x134484[_0x199d('0x8b')][_0x199d('0x8c')]!=='agent')return;return _0x134484['user']['getSmsAccounts']({'attributes':['id'],'raw':!![]})[_0x199d('0x2c')](function(_0x6cdb50){if(_[_0x199d('0x8d')](_0x6cdb50)){_0x5dca3b[_0x199d('0x44')](_0x199d('0x8e'));_0x1b6d3a['where'](_0x199d('0x8e'));}else{_0x5dca3b[_0x199d('0x44')](_0x199d('0x72'),_['map'](_0x6cdb50,'id'));_0x1b6d3a['where']('i.SmsAccountId\x20IN\x20?',_[_0x199d('0x32')](_0x6cdb50,'id'));}});})[_0x199d('0x2c')](function(){if(_0x134484[_0x199d('0x8b')]['role']===_0x199d('0x8f')&&!_0x92e7ca&&!_0x134484[_0x199d('0x3e')]['SmsAccountId'])return[];return db[_0x199d('0x90')][_0x199d('0x3e')](_0x5dca3b[_0x199d('0x91')](),_0x341a10);})['then'](function(_0x39553e){_0xb9a062['count']=_0x39553e[_0x199d('0x42')];if(_0xb9a062[_0x199d('0x26')]===0x0)return[];return db[_0x199d('0x90')][_0x199d('0x3e')](_0x1d95e1[_0x199d('0x91')](),_0x341a10)[_0x199d('0x2c')](function(_0x46cabe){_0x35ca57=_[_0x199d('0x92')](_0x46cabe,'id');_0x341a10=_[_0x199d('0x93')](_0x341a10,{'model':db[_0x199d('0x38')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x134484[_0x199d('0x3e')][_0x199d('0x94')]){_0x11653a[_0x199d('0x41')][_0x199d('0x68')](function(_0x24b001){_0x1b6d3a[_0x199d('0x47')]('i.'+_0x24b001);});}else{_0x1b6d3a['field']('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x199d('0x5d'));_0x1b6d3a['field']('a.key',_0x199d('0x95'));_0x1b6d3a[_0x199d('0x47')](_0x199d('0x96'),_0x199d('0x97'));_0x1b6d3a['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',_0x199d('0x98'));_0x1b6d3a['field']('i.*');_0x1b6d3a[_0x199d('0x47')](_0x199d('0x99'),'Contact.firstName');_0x1b6d3a[_0x199d('0x47')](_0x199d('0x9a'),_0x199d('0x9b'));_0x1b6d3a[_0x199d('0x47')](_0x199d('0x9c'),_0x199d('0x9d'));_0x1b6d3a['field'](_0x199d('0x9e'),_0x199d('0x9f'));_0x1b6d3a[_0x199d('0x47')](_0x199d('0xa0'),_0x199d('0xa1'));_0x1b6d3a[_0x199d('0x47')]('c.fax',_0x199d('0xa2'));_0x1b6d3a[_0x199d('0x47')](_0x199d('0xa3'),'Owner.fullname');_0x1b6d3a[_0x199d('0x47')](_0x199d('0xa4'),_0x199d('0xa5'));_0x1b6d3a[_0x199d('0x47')](_0x199d('0xa6'),'TagIds');}if(_0x11653a[_0x199d('0x25')])_0x1b6d3a[_0x199d('0x25')](_0x11653a[_0x199d('0x25')]);if(_0x11653a[_0x199d('0x23')])_0x1b6d3a[_0x199d('0x23')](_0x11653a[_0x199d('0x23')]);return db[_0x199d('0x90')][_0x199d('0x3e')](_0x1b6d3a[_0x199d('0x91')](),_0x341a10);})['then'](function(_0x5161bf){if(_0x5161bf[_0x199d('0x42')]>0x0)_0x1ab5d8['where']('ui.SmsInteractionId\x20IN\x20?',_[_0x199d('0x32')](_0x5161bf,'id'));return db[_0x199d('0x90')][_0x199d('0x3e')](_0x1ab5d8['toString'](),_0x341a10)['then'](function(_0x52cae7){var _0x4dc3ad=_[_0x199d('0xa7')](_0x52cae7,_0x199d('0xa8'));var _0x346ab2=[];_0x5161bf[_0x199d('0x68')](function(_0x430b19){_0x346ab2[_0x199d('0xa9')](updateSmsInteraction(_0x430b19,_0x35ca57,_0x4dc3ad));});return BPromise[_0x199d('0xaa')](_0x346ab2);});});})[_0x199d('0x2c')](function(_0x296003){_0xb9a062[_0x199d('0xab')]=_0x296003;return _0xb9a062;})[_0x199d('0x2c')](respondWithFilteredResult(_0x241b2e,_0x11653a))['catch'](handleError(_0x241b2e,null));};exports[_0x199d('0xac')]=function(_0x3071b3,_0x2891a0){var _0x260d3e={'raw':![],'where':{'id':_0x3071b3[_0x199d('0xad')]['id']}},_0x4f0d60={};_0x4f0d60['model']=_[_0x199d('0x3f')](db[_0x199d('0x38')]['rawAttributes']);_0x4f0d60[_0x199d('0x3e')]=_[_0x199d('0x3f')](_0x3071b3[_0x199d('0x3e')]);_0x4f0d60[_0x199d('0x45')]=_[_0x199d('0x40')](_0x4f0d60[_0x199d('0x3d')],_0x4f0d60['query']);_0x260d3e[_0x199d('0x41')]=_[_0x199d('0x40')](_0x4f0d60[_0x199d('0x3d')],qs[_0x199d('0x94')](_0x3071b3['query'][_0x199d('0x94')]));_0x260d3e['attributes']=_0x260d3e[_0x199d('0x41')][_0x199d('0x42')]?_0x260d3e[_0x199d('0x41')]:_0x4f0d60[_0x199d('0x3d')];if(_0x3071b3[_0x199d('0x3e')][_0x199d('0xae')]){_0x260d3e[_0x199d('0xaf')]=[{'all':!![]}];}_0x260d3e=_['merge']({},_0x260d3e,_0x3071b3[_0x199d('0xb0')]);return db[_0x199d('0x38')]['find'](_0x260d3e)[_0x199d('0x2c')](handleEntityNotFound(_0x2891a0,null))[_0x199d('0x2c')](respondWithResult(_0x2891a0,null))['catch'](handleError(_0x2891a0,null));};exports[_0x199d('0xb1')]=function(_0x53e2f8,_0x12b87f){return db[_0x199d('0x38')][_0x199d('0xb1')](_0x53e2f8[_0x199d('0x6d')],{})[_0x199d('0x2c')](respondWithResult(_0x12b87f,0xc9))[_0x199d('0x37')](handleError(_0x12b87f,null));};exports[_0x199d('0x2b')]=function(_0x44664f,_0x2ad3e7){if(_0x44664f['body']['id']){delete _0x44664f['body']['id'];}return db[_0x199d('0x38')][_0x199d('0x5c')]({'where':{'id':_0x44664f[_0x199d('0xad')]['id']}})[_0x199d('0x2c')](handleEntityNotFound(_0x2ad3e7,null))[_0x199d('0x2c')](saveUpdates(_0x44664f[_0x199d('0x6d')],null))['then'](respondWithResult(_0x2ad3e7,null))[_0x199d('0x37')](handleError(_0x2ad3e7,null));};exports[_0x199d('0x2d')]=function(_0x4347a0,_0x49307d){return db['SmsInteraction'][_0x199d('0x5c')]({'where':{'id':_0x4347a0[_0x199d('0xad')]['id']}})['then'](handleEntityNotFound(_0x49307d,null))[_0x199d('0x2c')](removeEntity(_0x49307d,null))[_0x199d('0x37')](handleError(_0x49307d,null));};exports[_0x199d('0xb2')]=function(_0x4d051d,_0x9d3040){return db[_0x199d('0x38')][_0x199d('0xb2')]()[_0x199d('0x2c')](respondWithResult(_0x9d3040,null))[_0x199d('0x37')](handleError(_0x9d3040,null));};exports[_0x199d('0xb3')]=function(_0x29a729,_0x6c9a59,_0x3aa329){return db[_0x199d('0xb4')][_0x199d('0x5c')]({'where':{'id':_0x29a729[_0x199d('0xad')]['id']}})[_0x199d('0x2c')](handleEntityNotFound(_0x6c9a59,null))['then'](function(_0x90fab5){if(_0x90fab5){return _0x90fab5[_0x199d('0xb3')](_0x29a729[_0x199d('0x6d')]['ids'],_[_0x199d('0xb5')](_0x29a729['body'],[_0x199d('0xb6'),'id'])||{});}})['then'](respondWithResult(_0x6c9a59,null))[_0x199d('0x37')](handleError(_0x6c9a59,null));};exports[_0x199d('0xb7')]=function(_0x2aad36,_0x46a21b,_0x4e299e){var _0x5f0f78={'raw':![],'where':{}};var _0xaf52ed={};var _0x5023d0={'count':0x0,'rows':[]};return db[_0x199d('0x38')][_0x199d('0xb8')]({'where':{'id':_0x2aad36[_0x199d('0xad')]['id']}})[_0x199d('0x2c')](handleEntityNotFound(_0x46a21b,null))[_0x199d('0x2c')](function(_0x10bf73){if(_0x10bf73){_0xaf52ed['model']=_['keys'](db['SmsMessage'][_0x199d('0x39')]);_0xaf52ed['query']=_['keys'](_0x2aad36[_0x199d('0x3e')]);_0xaf52ed[_0x199d('0x45')]=_[_0x199d('0x40')](_0xaf52ed[_0x199d('0x3d')],_0xaf52ed[_0x199d('0x3e')]);_0x5f0f78[_0x199d('0x41')]=_[_0x199d('0x40')](_0xaf52ed[_0x199d('0x3d')],qs['fields'](_0x2aad36[_0x199d('0x3e')][_0x199d('0x94')]));_0x5f0f78[_0x199d('0x41')]=_0x5f0f78[_0x199d('0x41')][_0x199d('0x42')]?_0x5f0f78[_0x199d('0x41')]:_0xaf52ed[_0x199d('0x3d')];if(!_0x2aad36[_0x199d('0x3e')][_0x199d('0xb9')]('nolimit')){_0x5f0f78[_0x199d('0x25')]=qs[_0x199d('0x25')](_0x2aad36[_0x199d('0x3e')]['limit']);_0x5f0f78[_0x199d('0x23')]=qs[_0x199d('0x23')](_0x2aad36[_0x199d('0x3e')][_0x199d('0x23')]);}_0x5f0f78[_0x199d('0xba')]=qs[_0x199d('0x43')](_0x2aad36[_0x199d('0x3e')]['sort']);_0x5f0f78[_0x199d('0x44')]=qs['filters'](_['pick'](_0x2aad36[_0x199d('0x3e')],_0xaf52ed[_0x199d('0x45')]));_0x5f0f78[_0x199d('0x44')][_0x199d('0xa8')]=_0x10bf73['id'];if(_0x2aad36[_0x199d('0x3e')][_0x199d('0x7f')]){_0x5f0f78[_0x199d('0x44')]=_[_0x199d('0x93')](_0x5f0f78[_0x199d('0x44')],{'$or':_[_0x199d('0x32')](_0x5f0f78[_0x199d('0x41')],function(_0x44c6fe){var _0x435c8c={};_0x435c8c[_0x44c6fe]={'$like':'%'+_0x2aad36['query'][_0x199d('0x7f')]+'%'};return _0x435c8c;})});}if(_0x2aad36[_0x199d('0x3e')][_0x199d('0xbb')]){var _0x28b5e1=_0x2aad36[_0x199d('0x3e')][_0x199d('0xbb')][_0x199d('0x35')](',');var _0x5a9902={};_0x5a9902[_0x28b5e1[0x0]]={'$gte':moment(_0x28b5e1[0x1])[_0x199d('0xbc')]('YYYY-MM-DD\x20HH:mm:ss')};_0x5f0f78[_0x199d('0x44')]=_[_0x199d('0x93')](_0x5f0f78['where'],_0x5a9902);}_0x5f0f78=_[_0x199d('0x93')]({},_0x5f0f78,_0x2aad36[_0x199d('0xb0')]);return db['SmsMessage']['count']({'where':_0x5f0f78[_0x199d('0x44')]})['then'](function(_0x1e4639){_0x5023d0['count']=_0x1e4639;if(_0x2aad36[_0x199d('0x3e')][_0x199d('0xae')]){_0x5f0f78['include']=[{'all':!![]}];}return db[_0x199d('0xb4')][_0x199d('0xbd')](_0x5f0f78);})['then'](function(_0x9f2e9){_0x5023d0[_0x199d('0xab')]=_0x9f2e9;return _0x5023d0;});}})[_0x199d('0x2c')](respondWithFilteredResult(_0x46a21b,_0x5f0f78))[_0x199d('0x37')](handleError(_0x46a21b,null));};exports[_0x199d('0xbe')]=function(_0x24b28a,_0x53dadf,_0x187053){return db['SmsInteraction']['find']({'where':{'id':_0x24b28a[_0x199d('0xad')]['id']}})[_0x199d('0x2c')](handleEntityNotFound(_0x53dadf,null))[_0x199d('0x2c')](function(_0x104558){if(_0x104558){return _0x104558[_0x199d('0xbf')](_0x24b28a[_0x199d('0x6d')]['ids'],_['omit'](_0x24b28a['body'],['ids','id'])||{})[_0x199d('0xc0')](function(){return db[_0x199d('0xc1')]['findAll']({'attributes':['id','name',_0x199d('0xc2')],'where':{'id':_0x24b28a[_0x199d('0x6d')][_0x199d('0xb6')]}});})[_0x199d('0x2c')](function(_0x2bfe5e){socket[_0x199d('0xc3')](_0x199d('0xc4'),{'id':Number(_0x24b28a[_0x199d('0xad')]['id']),'tags':_0x2bfe5e||[]});return{'id':Number(_0x24b28a[_0x199d('0xad')]['id']),'tags':_0x2bfe5e||[]};});}})[_0x199d('0x2c')](respondWithResult(_0x53dadf,null))['catch'](handleError(_0x53dadf,null));};exports[_0x199d('0xc5')]=function(_0xdfecd0,_0x406811,_0x1c4c08){return db[_0x199d('0x38')][_0x199d('0x5c')]({'where':{'id':_0xdfecd0[_0x199d('0xad')]['id']}})['then'](handleEntityNotFound(_0x406811,null))[_0x199d('0x2c')](function(_0x3088f1){if(_0x3088f1){return _0x3088f1[_0x199d('0xc5')](_0xdfecd0['query']['ids']);}})[_0x199d('0x2c')](respondWithStatusCode(_0x406811,null))['catch'](handleError(_0x406811,null));};exports[_0x199d('0xc6')]=function(_0x351f7e,_0x15e503){var _0x1dcc55=moment()[_0x199d('0xc7')]()[_0x199d('0x91')]();var _0x4825bb=path[_0x199d('0xc8')](config[_0x199d('0xc9')],'server',_0x199d('0xca'),_0x199d('0xcb'));var _0x2b8b90=path[_0x199d('0xc8')](config['root'],_0x199d('0xcc'),_0x199d('0xca'),'attachments');var _0xb140c8=path['join'](_0x4825bb,_0x1dcc55);var _0x203ff6=util[_0x199d('0xbc')]('transcript-%d-%s.zip',_0x351f7e[_0x199d('0xad')]['id'],_0x1dcc55);var _0x45b66f=path[_0x199d('0xc8')](_0x4825bb,_0x203ff6);var _0x48594e=[];_0x48594e[_0x199d('0xa9')]({'model':db[_0x199d('0x6b')],'as':'User','attributes':['id',_0x199d('0x33')],'raw':!![]});_0x48594e[_0x199d('0xa9')]({'model':db['CmContact'],'as':'Contact','attributes':['id',_0x199d('0xcd'),_0x199d('0xce')],'raw':!![]});var _0x4f915f=[{'model':db[_0x199d('0xb4')],'as':_0x199d('0xcf'),'attributes':['id',_0x199d('0x6d'),_0x199d('0x74'),_0x199d('0xd0'),_0x199d('0xd1'),_0x199d('0x7b')],'include':_0x48594e}];_0x4f915f[_0x199d('0xa9')]({'model':db[_0x199d('0xd2')],'as':_0x199d('0xd3'),'attributes':['id',_0x199d('0x2f')]});_0x4f915f[_0x199d('0xa9')]({'model':db[_0x199d('0x6b')],'as':_0x199d('0xd4'),'attributes':['id','fullname']});return db[_0x199d('0x38')][_0x199d('0x5c')]({'where':{'id':_0x351f7e[_0x199d('0xad')]['id']},'include':_0x4f915f})['then'](handleEntityNotFound(_0x15e503,null))['then'](function(_0x45667a){if(_0x45667a){var _0x82be14=_0x45667a['get']({'plain':!![]});fs['mkdirSync'](_0xb140c8);var _0x4063b4={'channel':_0x199d('0xd5'),'account':_0x82be14['Account'][_0x199d('0x2f')],'agent':_0x82be14[_0x199d('0xd4')]?_0x82be14['Owner'][_0x199d('0x33')]:_0x199d('0xd6'),'createdAt':moment(_0x82be14['createdAt'])[_0x199d('0xbc')](_0x199d('0xd7'))[_0x199d('0x91')](),'closedAt':_0x82be14[_0x199d('0xd8')]?moment(_0x82be14[_0x199d('0xd9')])['format'](_0x199d('0xd7'))[_0x199d('0x91')]():'','disposition':_0x82be14[_0x199d('0xda')],'messages':_(_0x82be14[_0x199d('0xcf')])[_0x199d('0x7f')]({'secret':![]})[_0x199d('0x32')](function(_0x45c587){return{'date':moment(_0x45c587[_0x199d('0x74')])[_0x199d('0xbc')](_0x199d('0xd7'))[_0x199d('0x91')](),'sender':_0x45c587['direction']===_0x199d('0xdb')?_0x45c587['User']?_0x45c587[_0x199d('0x6b')][_0x199d('0x33')]:_0x199d('0xdc'):_0x45c587['Contact'][_0x199d('0xcd')]+(_0x45c587[_0x199d('0x60')][_0x199d('0xce')]?'\x20'+_0x45c587[_0x199d('0x60')][_0x199d('0xce')]:''),'body':_0x45c587[_0x199d('0x6d')],'direction':_0x45c587[_0x199d('0xd0')]===_0x199d('0xdb')?'A':'C','secret':_0x45c587[_0x199d('0xd1')],'read':_0x45c587['read']};})['value']()};return ejs[_0x199d('0xdd')](path[_0x199d('0xc8')](config[_0x199d('0xc9')],_0x199d('0xcc'),_0x199d('0xde'),_0x199d('0xdf')),{'interaction':_0x4063b4})[_0x199d('0x2c')](function(_0x10a7fc){var _0x506900=path[_0x199d('0xc8')](_0xb140c8,_0x199d('0xe0')+_0x82be14['id']+'-'+_0x1dcc55+_0x199d('0xe1'));var _0x2dd8d3={'path':_0x506900,'channel':_0x199d('0xd5'),'interactionId':_0x82be14['id']};return pdf[_0x199d('0xe2')](_0x10a7fc,_0x2dd8d3);})[_0x199d('0x2c')](function(){return new BPromise(function(_0x21fb96,_0x382d22){zipdir(_0xb140c8,{'saveTo':_0x45b66f},function(_0x38e855,_0x3ed1cd){if(_0x38e855)return _0x382d22(_0x38e855);return _0x21fb96(_0x3ed1cd);});})[_0x199d('0x2c')](function(){return new BPromise(function(_0x7a7e4,_0x49666f){rimraf(_0xb140c8,function(_0x517543){if(_0x517543)_0x49666f(_0x517543);return _0x7a7e4();});});})[_0x199d('0x2c')](function(){return _0x15e503['download'](_0x45b66f,_0x203ff6,function(_0xcf54a){if(_0xcf54a){console[_0x199d('0xe3')](_0x199d('0xe4'),_0xcf54a);}else{fs[_0x199d('0xe5')](_0x45b66f);}});});});}else{return _0x15e503[_0x199d('0x1f')](0xc8);}})[_0x199d('0x37')](handleError(_0x15e503,null));};