2008ca68b94ca848d522ecb540999d48f0e35c0f
[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 _0x7a54=['server','files','tmp','attachments','format','transcript-%d-%s.zip','CmContact','firstName','lastName','Messages','direction','SmsAccount','Sms','Account','Owner','createdAt','closed','disposition','out','System','secret','renderFile','views','downloadInteraction.html','transcript-','.pdf','createPdfFromHTML','log','err','unlinkSync','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./smsInteraction.socket','register','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','map','fullname','TagIds','Tags','forEach','catch','index','rawAttributes','fieldName','type','key','model','query','filters','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','color','from','tools_tags','select','field','u.fullname','ui.SmsInteractionId','user_has_sms_interactions','left_join','users','u.id\x20=\x20ui.UserId','sms_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','sms_accounts','a.id\x20=\x20i.SmsAccountId','me.SmsInteractionId\x20=\x20i.id','sms_interaction_has_tags','it.SmsInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','sqlOperator','conditions','length','find','unreadMessages','value','having','`\x20>\x200','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','buildExpression','start','split','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','text','body','keys','compact','isEmpty','SmsAccountId','i.SmsAccountId\x20IN\x20?','concat','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','i.phone\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','Sequelize','QueryTypes','SELECT','clone','contactName','DESC','t.id\x20IN\x20?','resolve','i.SmsAccountId\x20IS\x20NOT\x20NULL','role','agent','user','getSmsAccounts','i.SmsAccountId\x20IS\x20NULL','sequelize','toString','keyBy','SmsInteraction','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','Account.key','a.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','c.lastName','Contact.lastName','Contact.email','c.phone','Contact.phone','Contact.fax','o.fullname','o.internal','GROUP_CONCAT(DISTINCT\x20t.id)','groupBy','push','show','params','intersection','includeAll','include','create','describe','SmsMessage','ids','omit','findOne','SmsInteractionId','merge','YYYY-MM-DD\x20HH:mm:ss','options','findAll','rows','setTags','Tag','emit','smsInteractionTags:save','removeTags','download','unix','join','root'];(function(_0x7b5cdd,_0x8c88d8){var _0x3a29ae=function(_0x17859a){while(--_0x17859a){_0x7b5cdd['push'](_0x7b5cdd['shift']());}};_0x3a29ae(++_0x8c88d8);}(_0x7a54,0x106));var _0x47a5=function(_0x475561,_0x15adee){_0x475561=_0x475561-0x0;var _0x2f2294=_0x7a54[_0x475561];return _0x2f2294;};'use strict';var emlformat=require(_0x47a5('0x0'));var rimraf=require(_0x47a5('0x1'));var zipdir=require(_0x47a5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x47a5('0x3'));var moment=require(_0x47a5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x47a5('0x5'));var util=require(_0x47a5('0x6'));var path=require(_0x47a5('0x7'));var sox=require(_0x47a5('0x8'));var csv=require(_0x47a5('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x47a5('0xa'));var _=require('lodash');var squel=require(_0x47a5('0xb'));var crypto=require(_0x47a5('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x47a5('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x47a5('0xe'));var authService=require(_0x47a5('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x47a5('0x10'));var pdf=require('../../components/export/pdf');var hardwareService=require('../../config/license/hardware');var logger=require(_0x47a5('0x11'))(_0x47a5('0x12'));var utils=require(_0x47a5('0x13'));var config=require(_0x47a5('0x14'));var licenseUtil=require(_0x47a5('0x15'));var db=require(_0x47a5('0x16'))['db'];config[_0x47a5('0x17')]=_['defaults'](config[_0x47a5('0x17')],{'host':_0x47a5('0x18'),'port':0x18eb});var socket=require(_0x47a5('0x19'))(new Redis(config[_0x47a5('0x17')]));require(_0x47a5('0x1a'))[_0x47a5('0x1b')](socket);function respondWithStatusCode(_0x3c6c46,_0x190faa){_0x190faa=_0x190faa||0xcc;return function(_0x4e99a8){if(_0x4e99a8){return _0x3c6c46[_0x47a5('0x1c')](_0x190faa);}return _0x3c6c46[_0x47a5('0x1d')](_0x190faa)[_0x47a5('0x1e')]();};}function respondWithResult(_0x2a2cbb,_0x1ef44c){_0x1ef44c=_0x1ef44c||0xc8;return function(_0x574af6){if(_0x574af6){return _0x2a2cbb['status'](_0x1ef44c)[_0x47a5('0x1f')](_0x574af6);}};}function respondWithFilteredResult(_0x4b966e,_0x5247fd){return function(_0x423a81){if(_0x423a81){var _0xaf70a6=_0x423a81[_0x47a5('0x20')],_0x2ce454=_0x5247fd[_0x47a5('0x21')],_0x1ef371=_0x5247fd[_0x47a5('0x21')]+_0x5247fd[_0x47a5('0x22')],_0x477b1d;if(_0x1ef371>=_0xaf70a6){_0x1ef371=_0xaf70a6;_0x477b1d=0xc8;}else{_0x477b1d=0xce;}_0x4b966e['status'](_0x477b1d);return _0x4b966e[_0x47a5('0x23')](_0x47a5('0x24'),_0x2ce454+'-'+_0x1ef371+'/'+_0xaf70a6)['json'](_0x423a81);}return null;};}function patchUpdates(_0x2b0360){return function(_0x1f03f7){try{jsonpatch[_0x47a5('0x25')](_0x1f03f7,_0x2b0360,!![]);}catch(_0x4c5910){return BPromise[_0x47a5('0x26')](_0x4c5910);}return _0x1f03f7[_0x47a5('0x27')]();};}function saveUpdates(_0x23db32,_0x7a9f9e){return function(_0x5ef1b1){if(_0x5ef1b1){return _0x5ef1b1[_0x47a5('0x28')](_0x23db32)[_0x47a5('0x29')](function(_0x513981){return _0x513981;});}return null;};}function removeEntity(_0x28747d,_0xc4cd63){return function(_0x4437f1){if(_0x4437f1){return _0x4437f1[_0x47a5('0x2a')]()[_0x47a5('0x29')](function(){_0x28747d['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x136745,_0x5686db){return function(_0x1ea9c8){if(!_0x1ea9c8){_0x136745['sendStatus'](0x194);}return _0x1ea9c8;};}function handleError(_0x23cb77,_0x378208){_0x378208=_0x378208||0x1f4;return function(_0x36ad34){logger[_0x47a5('0x2b')](_0x36ad34[_0x47a5('0x2c')]);if(_0x36ad34[_0x47a5('0x2d')]){delete _0x36ad34[_0x47a5('0x2d')];}_0x23cb77[_0x47a5('0x1d')](_0x378208)[_0x47a5('0x2e')](_0x36ad34);};}function getInteractionUsers(_0x361bfa,_0x1127f8){return new BPromise(function(_0x11a4fa,_0x3ad507){try{if(_0x1127f8[_0x361bfa['id']]){_0x361bfa['Users']=_[_0x47a5('0x2f')](_0x1127f8[_0x361bfa['id']],function(_0x51833b){return{'id':_0x51833b['id'],'fullname':_0x51833b[_0x47a5('0x30')]};});}}catch(_0x9ac908){_0x3ad507(_0x9ac908);}_0x11a4fa(_0x361bfa);});}function getInteractionTags(_0x16901f,_0x4d6b57){return new BPromise(function(_0x256650,_0x625952){try{if(_0x16901f[_0x47a5('0x31')]){_0x16901f[_0x47a5('0x32')]=[];_0x16901f['TagIds']['split'](',')[_0x47a5('0x33')](function(_0xfb5ddb){_0x16901f['Tags']['push'](_0x4d6b57[_0xfb5ddb]);});}delete _0x16901f[_0x47a5('0x31')];}catch(_0x51544e){_0x625952(_0x51544e);}_0x256650(_0x16901f);});}function updateSmsInteraction(_0x57bff6,_0x42f70c,_0x53119b){return new BPromise(function(_0x122ed6,_0xd972c){return getInteractionUsers(_0x57bff6,_0x53119b)['then'](function(_0x4843c0){return getInteractionTags(_0x4843c0,_0x42f70c);})[_0x47a5('0x29')](function(_0x5910bb){_0x122ed6(_0x5910bb);})[_0x47a5('0x34')](function(_0x87e4c9){_0xd972c(_0x87e4c9);});});}exports[_0x47a5('0x35')]=function(_0x52749b,_0x18f7e9){var _0x50c086={},_0x53c754={},_0x65542e={'count':0x0,'rows':[]};var _0x5a8a7c=_[_0x47a5('0x2f')](db['SmsInteraction'][_0x47a5('0x36')],function(_0x3534cb){return{'name':_0x3534cb[_0x47a5('0x37')],'type':_0x3534cb[_0x47a5('0x38')][_0x47a5('0x39')]};});_0x53c754[_0x47a5('0x3a')]=_[_0x47a5('0x2f')](_0x5a8a7c,_0x47a5('0x2d'));_0x53c754[_0x47a5('0x3b')]=_['keys'](_0x52749b[_0x47a5('0x3b')]);_0x53c754[_0x47a5('0x3c')]=_['intersection'](_0x53c754[_0x47a5('0x3a')],_0x53c754[_0x47a5('0x3b')]);_0x50c086[_0x47a5('0x3d')]=_['intersection'](_0x53c754[_0x47a5('0x3a')],qs[_0x47a5('0x3e')](_0x52749b['query'][_0x47a5('0x3e')]));_0x50c086[_0x47a5('0x3d')]=_0x50c086['attributes']['length']?_0x50c086['attributes']:_0x53c754[_0x47a5('0x3a')];if(!_0x52749b['query'][_0x47a5('0x3f')](_0x47a5('0x40'))){_0x50c086[_0x47a5('0x22')]=qs[_0x47a5('0x22')](_0x52749b[_0x47a5('0x3b')][_0x47a5('0x22')]);_0x50c086[_0x47a5('0x21')]=qs[_0x47a5('0x21')](_0x52749b[_0x47a5('0x3b')][_0x47a5('0x21')]);}_0x50c086[_0x47a5('0x41')]=qs[_0x47a5('0x42')](_0x52749b[_0x47a5('0x3b')]['sort']);_0x50c086[_0x47a5('0x43')]=qs[_0x47a5('0x3c')](_[_0x47a5('0x44')](_0x52749b[_0x47a5('0x3b')],_0x53c754['filters']),_0x5a8a7c);var _0x7de536=[];var _0x528ef3=squel['select']()['field']('id')['field'](_0x47a5('0x2d'))['field'](_0x47a5('0x45'))[_0x47a5('0x46')](_0x47a5('0x47'));var _0x494526=squel[_0x47a5('0x48')]()[_0x47a5('0x49')]('u.id')['field'](_0x47a5('0x4a'))['field'](_0x47a5('0x4b'))[_0x47a5('0x46')](_0x47a5('0x4c'),'ui')[_0x47a5('0x4d')](_0x47a5('0x4e'),'u',_0x47a5('0x4f'));var _0x434227=squel[_0x47a5('0x48')]()[_0x47a5('0x46')](_0x47a5('0x50'),'i')[_0x47a5('0x4d')](_0x47a5('0x51'),'c',_0x47a5('0x52'))[_0x47a5('0x4d')](_0x47a5('0x4e'),'o',_0x47a5('0x53'))['left_join'](_0x47a5('0x54'),'a',_0x47a5('0x55'))['left_join']('sms_messages','me',_0x47a5('0x56'))['left_join'](_0x47a5('0x57'),'it',_0x47a5('0x58'))['left_join']('tools_tags','t',_0x47a5('0x59'));var _0x52d409=squel[_0x47a5('0x5a')]();var _0x1d1039=[];var _0x3548bc=squel[_0x47a5('0x5a')]();var _0x44fe8a;if(_0x52749b[_0x47a5('0x3b')][_0x47a5('0x5b')]){_0x44fe8a=as['parseSearch'](_0x52749b['query'][_0x47a5('0x5b')]);var _0x411230=_0x44fe8a[_0x47a5('0x5c')];for(var _0x9ea93e=0x0;_0x9ea93e<_0x44fe8a[_0x47a5('0x5d')][_0x47a5('0x5e')];_0x9ea93e++){var _0x249de5=_0x44fe8a['conditions'][_0x9ea93e];var _0x45cca5='i';var _0x1c9a62=_[_0x47a5('0x5f')](_0x5a8a7c,['name',_0x249de5[_0x47a5('0x49')]]);if(!_0x1c9a62){switch(_0x249de5['field']){case _0x47a5('0x60'):if(_0x249de5[_0x47a5('0x61')]==0x1){_0x434227[_0x47a5('0x62')]('`'+_0x249de5[_0x47a5('0x49')]+'`\x20=\x200');}else{_0x434227[_0x47a5('0x62')]('`'+_0x249de5[_0x47a5('0x49')]+_0x47a5('0x63'));}break;case _0x47a5('0x64'):if(_0x249de5[_0x47a5('0x65')]===_0x47a5('0x66')){if(_0x249de5[_0x47a5('0x61')]['split']('\x20')[_0x47a5('0x5e')]>0x1){_0x52d409[_0x411230](_0x47a5('0x67'),qs[_0x47a5('0x68')](_0x249de5[_0x47a5('0x61')]),null);}else{var _0x3329aa='%'+_0x249de5[_0x47a5('0x61')]+'%';_0x52d409[_0x411230]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x3329aa,_0x3329aa,_0x3329aa);}}else{_0x1c9a62=_[_0x47a5('0x5f')](_0x5a8a7c,[_0x47a5('0x2d'),_0x47a5('0x69')]);_0x249de5['field']=_0x47a5('0x69');_0x4f8564=as[_0x47a5('0x6a')](_0x45cca5,_0x1c9a62[_0x47a5('0x38')],_0x249de5);_0x52d409[_0x411230](_0x4f8564['text'],_0x4f8564['value'][_0x47a5('0x6b')],_0x4f8564[_0x47a5('0x61')]['end']);}break;case'Tag':var _0x6d6b2b=_0x249de5['value'][_0x47a5('0x6c')](',')['map'](function(_0x482de6){return Number(_0x482de6);});_0x6d6b2b[_0x47a5('0x33')](function(_0x46d2d3){_0x3548bc['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x46d2d3+',%');});_0x1d1039=_[_0x47a5('0x6d')](_0x1d1039,_0x6d6b2b);break;case _0x47a5('0x6e'):if(_0x249de5['operator']==='$substring'){_0x52d409[_0x411230](_0x47a5('0x6f'),'%'+_0x249de5[_0x47a5('0x61')]+'%',null);}else{_0x1c9a62=_[_0x47a5('0x5f')](_0x5a8a7c,[_0x47a5('0x2d'),'UserId']);_0x249de5[_0x47a5('0x49')]=_0x47a5('0x70');_0x4f8564=as[_0x47a5('0x6a')](_0x45cca5,_0x1c9a62['type'],_0x249de5);_0x52d409[_0x411230](_0x4f8564[_0x47a5('0x71')],_0x4f8564['value'][_0x47a5('0x6b')],_0x4f8564[_0x47a5('0x61')][_0x47a5('0x1e')]);}break;case _0x47a5('0x72'):_0x4f8564=as[_0x47a5('0x6a')]('me',null,_0x249de5);_0x52d409[_0x411230](_0x4f8564['text'],_0x4f8564[_0x47a5('0x61')]['start'],_0x4f8564['value']['end']);break;}}else{var _0x4f8564=as[_0x47a5('0x6a')](_0x45cca5,_0x1c9a62[_0x47a5('0x38')],_0x249de5);_0x52d409[_0x411230](_0x4f8564[_0x47a5('0x71')],_0x4f8564['value']['start'],_0x4f8564[_0x47a5('0x61')][_0x47a5('0x1e')]);}}}else{var _0x45d4b6=_(_0x52749b[_0x47a5('0x3b')])[_0x47a5('0x73')]()['map'](function(_0x3474b7){return _['some'](_0x5a8a7c,[_0x47a5('0x2d'),_0x3474b7])?_0x3474b7:undefined;})[_0x47a5('0x74')]()['value']();if(!_[_0x47a5('0x75')](_0x45d4b6)){_0x45d4b6[_0x47a5('0x33')](function(_0x132854){if(_0x132854===_0x47a5('0x76')){_0x434227[_0x47a5('0x43')](_0x47a5('0x77'),[][_0x47a5('0x78')](_0x52749b[_0x47a5('0x3b')][_0x132854]));}else if(_0x132854==='createdAt'){var _0x2dcc3b=JSON[_0x47a5('0x79')](_0x52749b[_0x47a5('0x3b')][_0x132854])[_0x47a5('0x7a')];var _0x396cb0=JSON['parse'](_0x52749b[_0x47a5('0x3b')][_0x132854])[_0x47a5('0x7b')];_0x434227[_0x47a5('0x43')](_0x47a5('0x7c'),_0x2dcc3b,_0x396cb0);}else{if(_0x52749b[_0x47a5('0x3b')][_0x132854]===_0x47a5('0x7d')){_0x434227[_0x47a5('0x43')]('i.'+_0x132854+_0x47a5('0x7e'));}else{_0x434227[_0x47a5('0x43')]('i.'+_0x132854+_0x47a5('0x7f'),_0x52749b[_0x47a5('0x3b')][_0x132854]);}}});}if(_0x52749b[_0x47a5('0x3b')][_0x47a5('0x80')]){if(_0x52749b[_0x47a5('0x3b')][_0x47a5('0x80')]==0x1){_0x434227['having'](_0x47a5('0x81'));}else{_0x434227[_0x47a5('0x62')](_0x47a5('0x82'));}}if(_0x52749b['query'][_0x47a5('0x83')]){_0x1d1039=_[_0x47a5('0x84')](_0x52749b[_0x47a5('0x3b')][_0x47a5('0x83')])?_0x52749b['query'][_0x47a5('0x83')]:new Array(_0x52749b['query'][_0x47a5('0x83')]);_0x1d1039['forEach'](function(_0x43f649){_0x3548bc['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x43f649+',%');});}if(_0x52749b[_0x47a5('0x3b')][_0x47a5('0x85')]){var _0x2578d6=_0x52749b['query']['filter']['replace']('\x5c','\x5c\x5c')[_0x47a5('0x86')](/'/g,'\x27\x27');if(qs[_0x47a5('0x87')](_0x2578d6)){_0x52d409['or'](_0x47a5('0x88'),_0x2578d6+'%')['or'](_0x47a5('0x89'),_0x2578d6+'%');}else{_0x52d409['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x47a5('0x68')](_0x2578d6))['or'](_0x47a5('0x8a'),_0x2578d6+'%');}}}_0x434227[_0x47a5('0x43')](_0x52d409);_0x434227[_0x47a5('0x8b')](_0x47a5('0x8c'));var _0xb9f589={'type':db[_0x47a5('0x8d')][_0x47a5('0x8e')][_0x47a5('0x8f')],'raw':!![]};var _0xc69a68=_0x434227[_0x47a5('0x90')]();_0xc69a68[_0x47a5('0x49')]('i.id');_0xc69a68[_0x47a5('0x49')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x47a5('0x60'));if(_0x50c086[_0x47a5('0x41')]){_0x50c086[_0x47a5('0x41')][_0x47a5('0x33')](function(_0x40e584){var _0xa9c853=_0x40e584[0x0]===_0x47a5('0x91')?_0x40e584[0x0]:'i.'+_0x40e584[0x0];_0x434227[_0x47a5('0x41')](_0xa9c853,_0x40e584[0x1]===_0x47a5('0x92')?![]:!![]);});}if(!_[_0x47a5('0x75')](_0x1d1039)){_0x434227[_0x47a5('0x62')](_0x3548bc);_0xc69a68[_0x47a5('0x43')](_0x47a5('0x93'),_0x1d1039);}BPromise[_0x47a5('0x94')]()[_0x47a5('0x29')](function(){if(!_0x44fe8a){if(_0x52749b['query']['SmsAccountId'])return;_0xc69a68['where']('i.SmsAccountId\x20IS\x20NOT\x20NULL');_0x434227[_0x47a5('0x43')](_0x47a5('0x95'));return;}if(_0x52749b['user'][_0x47a5('0x96')]!==_0x47a5('0x97'))return;return _0x52749b[_0x47a5('0x98')][_0x47a5('0x99')]({'attributes':['id'],'raw':!![]})[_0x47a5('0x29')](function(_0x930d25){if(_[_0x47a5('0x75')](_0x930d25)){_0xc69a68[_0x47a5('0x43')](_0x47a5('0x9a'));_0x434227[_0x47a5('0x43')](_0x47a5('0x9a'));}else{_0xc69a68['where'](_0x47a5('0x77'),_[_0x47a5('0x2f')](_0x930d25,'id'));_0x434227[_0x47a5('0x43')]('i.SmsAccountId\x20IN\x20?',_[_0x47a5('0x2f')](_0x930d25,'id'));}});})[_0x47a5('0x29')](function(){if(_0x52749b[_0x47a5('0x98')]['role']===_0x47a5('0x97')&&!_0x44fe8a&&!_0x52749b['query']['SmsAccountId'])return[];return db[_0x47a5('0x9b')][_0x47a5('0x3b')](_0xc69a68[_0x47a5('0x9c')](),_0xb9f589);})[_0x47a5('0x29')](function(_0x164d42){_0x65542e[_0x47a5('0x20')]=_0x164d42['length'];if(_0x65542e['count']===0x0)return[];return db[_0x47a5('0x9b')]['query'](_0x528ef3[_0x47a5('0x9c')](),_0xb9f589)[_0x47a5('0x29')](function(_0x175dab){_0x7de536=_[_0x47a5('0x9d')](_0x175dab,'id');_0xb9f589=_['merge'](_0xb9f589,{'model':db[_0x47a5('0x9e')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x52749b['query']['fields']){_0x50c086[_0x47a5('0x3d')][_0x47a5('0x33')](function(_0x5b91f7){_0x434227[_0x47a5('0x49')]('i.'+_0x5b91f7);});}else{_0x434227[_0x47a5('0x49')](_0x47a5('0x9f'),'unreadMessages');_0x434227[_0x47a5('0x49')]('a.key',_0x47a5('0xa0'));_0x434227[_0x47a5('0x49')](_0x47a5('0xa1'),'Account.mandatoryDisposition');_0x434227[_0x47a5('0x49')](_0x47a5('0xa2'),_0x47a5('0x91'));_0x434227['field'](_0x47a5('0xa3'));_0x434227['field'](_0x47a5('0xa4'),'Contact.firstName');_0x434227[_0x47a5('0x49')](_0x47a5('0xa5'),_0x47a5('0xa6'));_0x434227[_0x47a5('0x49')]('c.email',_0x47a5('0xa7'));_0x434227[_0x47a5('0x49')](_0x47a5('0xa8'),_0x47a5('0xa9'));_0x434227[_0x47a5('0x49')]('c.mobile','Contact.mobile');_0x434227[_0x47a5('0x49')]('c.fax',_0x47a5('0xaa'));_0x434227[_0x47a5('0x49')](_0x47a5('0xab'),'Owner.fullname');_0x434227[_0x47a5('0x49')](_0x47a5('0xac'),'Owner.internal');_0x434227[_0x47a5('0x49')](_0x47a5('0xad'),_0x47a5('0x31'));}if(_0x50c086[_0x47a5('0x22')])_0x434227['limit'](_0x50c086['limit']);if(_0x50c086[_0x47a5('0x21')])_0x434227[_0x47a5('0x21')](_0x50c086['offset']);return db[_0x47a5('0x9b')][_0x47a5('0x3b')](_0x434227['toString'](),_0xb9f589);})[_0x47a5('0x29')](function(_0x2a02cd){_0x494526[_0x47a5('0x43')]('ui.SmsInteractionId\x20IN\x20?',_[_0x47a5('0x2f')](_0x2a02cd,'id'));return db['sequelize'][_0x47a5('0x3b')](_0x494526['toString'](),_0xb9f589)[_0x47a5('0x29')](function(_0x3c620e){var _0x4995be=_[_0x47a5('0xae')](_0x3c620e,'SmsInteractionId');var _0x1eabef=[];_0x2a02cd[_0x47a5('0x33')](function(_0x37e045){_0x1eabef[_0x47a5('0xaf')](updateSmsInteraction(_0x37e045,_0x7de536,_0x4995be));});return BPromise['all'](_0x1eabef);});});})[_0x47a5('0x29')](function(_0x593426){_0x65542e['rows']=_0x593426;return _0x65542e;})[_0x47a5('0x29')](respondWithFilteredResult(_0x18f7e9,_0x50c086))[_0x47a5('0x34')](handleError(_0x18f7e9,null));};exports[_0x47a5('0xb0')]=function(_0x96fb22,_0x380c8b){var _0x5b1f5e={'raw':![],'where':{'id':_0x96fb22[_0x47a5('0xb1')]['id']}},_0x1522a6={};_0x1522a6[_0x47a5('0x3a')]=_[_0x47a5('0x73')](db['SmsInteraction'][_0x47a5('0x36')]);_0x1522a6['query']=_[_0x47a5('0x73')](_0x96fb22[_0x47a5('0x3b')]);_0x1522a6[_0x47a5('0x3c')]=_[_0x47a5('0xb2')](_0x1522a6[_0x47a5('0x3a')],_0x1522a6[_0x47a5('0x3b')]);_0x5b1f5e[_0x47a5('0x3d')]=_[_0x47a5('0xb2')](_0x1522a6[_0x47a5('0x3a')],qs['fields'](_0x96fb22[_0x47a5('0x3b')][_0x47a5('0x3e')]));_0x5b1f5e['attributes']=_0x5b1f5e[_0x47a5('0x3d')][_0x47a5('0x5e')]?_0x5b1f5e[_0x47a5('0x3d')]:_0x1522a6['model'];if(_0x96fb22['query'][_0x47a5('0xb3')]){_0x5b1f5e[_0x47a5('0xb4')]=[{'all':!![]}];}_0x5b1f5e=_['merge']({},_0x5b1f5e,_0x96fb22['options']);return db[_0x47a5('0x9e')][_0x47a5('0x5f')](_0x5b1f5e)['then'](handleEntityNotFound(_0x380c8b,null))[_0x47a5('0x29')](respondWithResult(_0x380c8b,null))[_0x47a5('0x34')](handleError(_0x380c8b,null));};exports['create']=function(_0x16097e,_0x427310){return db[_0x47a5('0x9e')][_0x47a5('0xb5')](_0x16097e[_0x47a5('0x72')],{})[_0x47a5('0x29')](respondWithResult(_0x427310,0xc9))['catch'](handleError(_0x427310,null));};exports['update']=function(_0x5bd86e,_0x133b7a){if(_0x5bd86e[_0x47a5('0x72')]['id']){delete _0x5bd86e['body']['id'];}return db[_0x47a5('0x9e')][_0x47a5('0x5f')]({'where':{'id':_0x5bd86e[_0x47a5('0xb1')]['id']}})[_0x47a5('0x29')](handleEntityNotFound(_0x133b7a,null))[_0x47a5('0x29')](saveUpdates(_0x5bd86e['body'],null))[_0x47a5('0x29')](respondWithResult(_0x133b7a,null))['catch'](handleError(_0x133b7a,null));};exports['destroy']=function(_0x5db0ed,_0x21cb5f){return db['SmsInteraction'][_0x47a5('0x5f')]({'where':{'id':_0x5db0ed[_0x47a5('0xb1')]['id']}})[_0x47a5('0x29')](handleEntityNotFound(_0x21cb5f,null))['then'](removeEntity(_0x21cb5f,null))[_0x47a5('0x34')](handleError(_0x21cb5f,null));};exports[_0x47a5('0xb6')]=function(_0x35bf37,_0x121750){return db[_0x47a5('0x9e')]['describe']()[_0x47a5('0x29')](respondWithResult(_0x121750,null))[_0x47a5('0x34')](handleError(_0x121750,null));};exports['addMessage']=function(_0x42ba59,_0x419870,_0xafa46f){return db[_0x47a5('0xb7')][_0x47a5('0x5f')]({'where':{'id':_0x42ba59[_0x47a5('0xb1')]['id']}})['then'](handleEntityNotFound(_0x419870,null))[_0x47a5('0x29')](function(_0x2e418d){if(_0x2e418d){return _0x2e418d['addMessage'](_0x42ba59[_0x47a5('0x72')][_0x47a5('0xb8')],_[_0x47a5('0xb9')](_0x42ba59[_0x47a5('0x72')],['ids','id'])||{});}})['then'](respondWithResult(_0x419870,null))['catch'](handleError(_0x419870,null));};exports['getMessages']=function(_0x1946c6,_0x27793e,_0x2c5785){var _0x30def7={'raw':![],'where':{}};var _0x31f896={};var _0x6bc37b={'count':0x0,'rows':[]};return db[_0x47a5('0x9e')][_0x47a5('0xba')]({'where':{'id':_0x1946c6['params']['id']}})[_0x47a5('0x29')](handleEntityNotFound(_0x27793e,null))[_0x47a5('0x29')](function(_0x2eef05){if(_0x2eef05){_0x31f896[_0x47a5('0x3a')]=_['keys'](db['SmsMessage'][_0x47a5('0x36')]);_0x31f896['query']=_['keys'](_0x1946c6[_0x47a5('0x3b')]);_0x31f896[_0x47a5('0x3c')]=_['intersection'](_0x31f896[_0x47a5('0x3a')],_0x31f896[_0x47a5('0x3b')]);_0x30def7[_0x47a5('0x3d')]=_['intersection'](_0x31f896[_0x47a5('0x3a')],qs[_0x47a5('0x3e')](_0x1946c6['query'][_0x47a5('0x3e')]));_0x30def7[_0x47a5('0x3d')]=_0x30def7[_0x47a5('0x3d')][_0x47a5('0x5e')]?_0x30def7[_0x47a5('0x3d')]:_0x31f896[_0x47a5('0x3a')];if(!_0x1946c6['query'][_0x47a5('0x3f')]('nolimit')){_0x30def7[_0x47a5('0x22')]=qs[_0x47a5('0x22')](_0x1946c6[_0x47a5('0x3b')][_0x47a5('0x22')]);_0x30def7['offset']=qs[_0x47a5('0x21')](_0x1946c6[_0x47a5('0x3b')][_0x47a5('0x21')]);}_0x30def7[_0x47a5('0x41')]=qs[_0x47a5('0x42')](_0x1946c6[_0x47a5('0x3b')][_0x47a5('0x42')]);_0x30def7[_0x47a5('0x43')]=qs[_0x47a5('0x3c')](_[_0x47a5('0x44')](_0x1946c6[_0x47a5('0x3b')],_0x31f896[_0x47a5('0x3c')]));_0x30def7['where'][_0x47a5('0xbb')]=_0x2eef05['id'];if(_0x1946c6[_0x47a5('0x3b')]['filter']){_0x30def7[_0x47a5('0x43')]=_[_0x47a5('0xbc')](_0x30def7[_0x47a5('0x43')],{'$or':_[_0x47a5('0x2f')](_0x30def7[_0x47a5('0x3d')],function(_0x58fac0){var _0x2dee0d={};_0x2dee0d[_0x58fac0]={'$like':'%'+_0x1946c6[_0x47a5('0x3b')][_0x47a5('0x85')]+'%'};return _0x2dee0d;})});}if(_0x1946c6[_0x47a5('0x3b')][_0x47a5('0x7a')]){var _0x363077=_0x1946c6[_0x47a5('0x3b')]['$gte']['split'](',');var _0xa3d578={};_0xa3d578[_0x363077[0x0]]={'$gte':moment(_0x363077[0x1])['format'](_0x47a5('0xbd'))};_0x30def7['where']=_[_0x47a5('0xbc')](_0x30def7[_0x47a5('0x43')],_0xa3d578);}_0x30def7=_[_0x47a5('0xbc')]({},_0x30def7,_0x1946c6[_0x47a5('0xbe')]);return db['SmsMessage'][_0x47a5('0x20')]({'where':_0x30def7[_0x47a5('0x43')]})[_0x47a5('0x29')](function(_0x5a150a){_0x6bc37b['count']=_0x5a150a;if(_0x1946c6[_0x47a5('0x3b')][_0x47a5('0xb3')]){_0x30def7[_0x47a5('0xb4')]=[{'all':!![]}];}return db[_0x47a5('0xb7')][_0x47a5('0xbf')](_0x30def7);})[_0x47a5('0x29')](function(_0x1c0323){_0x6bc37b[_0x47a5('0xc0')]=_0x1c0323;return _0x6bc37b;});}})['then'](respondWithFilteredResult(_0x27793e,_0x30def7))[_0x47a5('0x34')](handleError(_0x27793e,null));};exports['addTags']=function(_0x346322,_0xc3b5e1,_0x5b0b0b){return db['SmsInteraction'][_0x47a5('0x5f')]({'where':{'id':_0x346322[_0x47a5('0xb1')]['id']}})['then'](handleEntityNotFound(_0xc3b5e1,null))[_0x47a5('0x29')](function(_0x2b2693){if(_0x2b2693){return _0x2b2693[_0x47a5('0xc1')](_0x346322[_0x47a5('0x72')]['ids'],_[_0x47a5('0xb9')](_0x346322['body'],['ids','id'])||{})['spread'](function(){return db[_0x47a5('0xc2')]['findAll']({'attributes':['id',_0x47a5('0x2d'),_0x47a5('0x45')],'where':{'id':_0x346322[_0x47a5('0x72')][_0x47a5('0xb8')]}});})[_0x47a5('0x29')](function(_0x1dae08){socket[_0x47a5('0xc3')](_0x47a5('0xc4'),{'id':Number(_0x346322[_0x47a5('0xb1')]['id']),'tags':_0x1dae08||[]});return{'id':Number(_0x346322[_0x47a5('0xb1')]['id']),'tags':_0x1dae08||[]};});}})[_0x47a5('0x29')](respondWithResult(_0xc3b5e1,null))[_0x47a5('0x34')](handleError(_0xc3b5e1,null));};exports[_0x47a5('0xc5')]=function(_0x1bfa3b,_0xff64fb,_0x5e17cb){return db[_0x47a5('0x9e')][_0x47a5('0x5f')]({'where':{'id':_0x1bfa3b[_0x47a5('0xb1')]['id']}})[_0x47a5('0x29')](handleEntityNotFound(_0xff64fb,null))['then'](function(_0x367662){if(_0x367662){return _0x367662['removeTags'](_0x1bfa3b[_0x47a5('0x3b')]['ids']);}})[_0x47a5('0x29')](respondWithStatusCode(_0xff64fb,null))[_0x47a5('0x34')](handleError(_0xff64fb,null));};exports[_0x47a5('0xc6')]=function(_0x5c20aa,_0x35f735){var _0x217e04=moment()[_0x47a5('0xc7')]()['toString']();var _0x52798d=path[_0x47a5('0xc8')](config[_0x47a5('0xc9')],_0x47a5('0xca'),_0x47a5('0xcb'),_0x47a5('0xcc'));var _0x579e5c=path[_0x47a5('0xc8')](config['root'],_0x47a5('0xca'),_0x47a5('0xcb'),_0x47a5('0xcd'));var _0x2d6ae7=path['join'](_0x52798d,_0x217e04);var _0x4dc67c=util[_0x47a5('0xce')](_0x47a5('0xcf'),_0x5c20aa[_0x47a5('0xb1')]['id'],_0x217e04);var _0x4339d4=path[_0x47a5('0xc8')](_0x52798d,_0x4dc67c);var _0x36a44c=[];_0x36a44c[_0x47a5('0xaf')]({'model':db[_0x47a5('0x6e')],'as':_0x47a5('0x6e'),'attributes':['id','fullname'],'raw':!![]});_0x36a44c['push']({'model':db[_0x47a5('0xd0')],'as':'Contact','attributes':['id',_0x47a5('0xd1'),_0x47a5('0xd2')],'raw':!![]});var _0x1bae88=[{'model':db['SmsMessage'],'as':_0x47a5('0xd3'),'attributes':['id',_0x47a5('0x72'),'createdAt',_0x47a5('0xd4'),'secret',_0x47a5('0x80')],'include':_0x36a44c}];_0x1bae88[_0x47a5('0xaf')]({'model':db[_0x47a5('0xd5')],'as':'Account','attributes':['id','name']});_0x1bae88['push']({'model':db['User'],'as':'Owner','attributes':['id',_0x47a5('0x30')]});return db['SmsInteraction'][_0x47a5('0x5f')]({'where':{'id':_0x5c20aa[_0x47a5('0xb1')]['id']},'include':_0x1bae88})['then'](handleEntityNotFound(_0x35f735,null))['then'](function(_0x4b3529){if(_0x4b3529){var _0x2a6dca=_0x4b3529['get']({'plain':!![]});fs['mkdirSync'](_0x2d6ae7);var _0x5d17dc={'channel':_0x47a5('0xd6'),'account':_0x2a6dca[_0x47a5('0xd7')][_0x47a5('0x2d')],'agent':_0x2a6dca[_0x47a5('0xd8')]?_0x2a6dca['Owner'][_0x47a5('0x30')]:'N.A.','createdAt':moment(_0x2a6dca[_0x47a5('0xd9')])['format'](_0x47a5('0xbd'))[_0x47a5('0x9c')](),'closedAt':_0x2a6dca[_0x47a5('0xda')]?moment(_0x2a6dca['closedAt'])[_0x47a5('0xce')](_0x47a5('0xbd'))[_0x47a5('0x9c')]():'','disposition':_0x2a6dca[_0x47a5('0xdb')],'messages':_(_0x2a6dca['Messages'])[_0x47a5('0x85')]({'secret':![]})[_0x47a5('0x2f')](function(_0x4eebcd){return{'date':moment(_0x4eebcd[_0x47a5('0xd9')])[_0x47a5('0xce')](_0x47a5('0xbd'))['toString'](),'sender':_0x4eebcd[_0x47a5('0xd4')]===_0x47a5('0xdc')?_0x4eebcd[_0x47a5('0x6e')]?_0x4eebcd[_0x47a5('0x6e')][_0x47a5('0x30')]:_0x47a5('0xdd'):_0x4eebcd[_0x47a5('0x64')][_0x47a5('0xd1')]+(_0x4eebcd[_0x47a5('0x64')][_0x47a5('0xd2')]?'\x20'+_0x4eebcd[_0x47a5('0x64')][_0x47a5('0xd2')]:''),'body':_0x4eebcd[_0x47a5('0x72')],'direction':_0x4eebcd[_0x47a5('0xd4')]===_0x47a5('0xdc')?'A':'C','secret':_0x4eebcd[_0x47a5('0xde')],'read':_0x4eebcd[_0x47a5('0x80')]};})['value']()};return ejs[_0x47a5('0xdf')](path['join'](config['root'],_0x47a5('0xca'),_0x47a5('0xe0'),_0x47a5('0xe1')),{'interaction':_0x5d17dc})['then'](function(_0x1f8e28){var _0xd8381b=path[_0x47a5('0xc8')](_0x2d6ae7,_0x47a5('0xe2')+_0x2a6dca['id']+'-'+_0x217e04+_0x47a5('0xe3'));var _0x28ba38={'path':_0xd8381b,'channel':_0x47a5('0xd6'),'interactionId':_0x2a6dca['id']};return pdf[_0x47a5('0xe4')](_0x1f8e28,_0x28ba38);})[_0x47a5('0x29')](function(){return new BPromise(function(_0x15f273,_0x10952f){zipdir(_0x2d6ae7,{'saveTo':_0x4339d4},function(_0x399026,_0x203bc9){if(_0x399026)return _0x10952f(_0x399026);return _0x15f273(_0x203bc9);});})['then'](function(){return new BPromise(function(_0x4aad5f,_0x2884c9){rimraf(_0x2d6ae7,function(_0x5e7d56){if(_0x5e7d56)_0x2884c9(_0x5e7d56);return _0x4aad5f();});});})[_0x47a5('0x29')](function(){return _0x35f735[_0x47a5('0xc6')](_0x4339d4,_0x4dc67c,function(_0x1f776e){if(_0x1f776e){console[_0x47a5('0xe5')](_0x47a5('0xe6'),_0x1f776e);}else{fs[_0x47a5('0xe7')](_0x4339d4);}});});});}else{return _0x35f735['sendStatus'](0xc8);}})[_0x47a5('0x34')](handleError(_0x35f735,null));};