a87f3a3777cac0605b9e3deb568218e09e04da2a
[motion2.git] / server / api / faxInteraction / faxInteraction.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 _0x0d92=['text','Tag','forEach','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','UserId','start','body','buildExpression','compact','isEmpty','i.FaxAccountId\x20IN\x20?','concat','$gte','parse','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','having','`unreadMessages`\x20=\x200','tag','filter','replace','isNumeric','i.fax\x20LIKE\x20?','group','i.id','Sequelize','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','resolve','FaxAccountId','i.FaxAccountId\x20IS\x20NOT\x20NULL','role','agent','user','getFaxAccounts','i.FaxAccountId\x20IS\x20NULL','sequelize','toString','keyBy','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','Contact.firstName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.FaxInteractionId\x20IN\x20?','groupBy','all','show','params','intersection','include','merge','options','create','destroy','describe','addMessage','ids','omit','getMessages','findOne','FaxMessage','hasOwnProperty','pick','format','YYYY-MM-DD\x20HH:mm:ss','includeAll','setTags','spread','findAll','emit','faxInteractionTags:save','removeTags','download','unix','join','root','files','tmp','server','attachments','transcript-%d-%s.zip','Attachment','Messages','createdAt','mkdirSync','basename','existsSync','pipe','createWriteStream','log','err','unlinkSync','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','sox','to-csv','ejs','fs-extra','lodash','desk.js','querystring','papaparse','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','redis','socket.io-emitter','./faxInteraction.socket','sendStatus','status','end','undefined','limit','count','offset','set','Content-Range','json','reject','save','update','then','error','stack','name','send','Users','map','fullname','TagIds','split','push','catch','index','FaxInteraction','rawAttributes','type','key','query','keys','model','fields','attributes','length','nolimit','order','sort','where','filters','select','field','color','from','u.id','u.fullname','ui.FaxInteractionId','user_has_fax_interactions','users','u.id\x20=\x20ui.UserId','left_join','cm_contacts','o.id\x20=\x20i.UserId','fax_accounts','a.id\x20=\x20i.FaxAccountId','fax_messages','me.FaxInteractionId\x20=\x20i.id','it.FaxInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','value','`\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','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId'];(function(_0x522e30,_0x4fb55c){var _0x1bf4a8=function(_0x78b33d){while(--_0x78b33d){_0x522e30['push'](_0x522e30['shift']());}};_0x1bf4a8(++_0x4fb55c);}(_0x0d92,0x72));var _0x20d9=function(_0x3ffaa7,_0x5b07ff){_0x3ffaa7=_0x3ffaa7-0x0;var _0x3cd853=_0x0d92[_0x3ffaa7];return _0x3cd853;};'use strict';var emlformat=require(_0x20d9('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x20d9('0x1'));var jsonpatch=require(_0x20d9('0x2'));var rp=require(_0x20d9('0x3'));var moment=require(_0x20d9('0x4'));var BPromise=require(_0x20d9('0x5'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x20d9('0x6'));var csv=require(_0x20d9('0x7'));var ejs=require(_0x20d9('0x8'));var fs=require('fs');var fs_extra=require(_0x20d9('0x9'));var _=require(_0x20d9('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x20d9('0xb'));var toCsv=require(_0x20d9('0x7'));var querystring=require(_0x20d9('0xc'));var Papa=require(_0x20d9('0xd'));var Redis=require('ioredis');var authService=require(_0x20d9('0xe'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x20d9('0xf'));var logger=require(_0x20d9('0x10'))('api');var utils=require(_0x20d9('0x11'));var config=require(_0x20d9('0x12'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x20d9('0x13')]=_['defaults'](config[_0x20d9('0x13')],{'host':'localhost','port':0x18eb});var socket=require(_0x20d9('0x14'))(new Redis(config[_0x20d9('0x13')]));require(_0x20d9('0x15'))['register'](socket);function respondWithStatusCode(_0x45031a,_0x13c9a4){_0x13c9a4=_0x13c9a4||0xcc;return function(_0x16ea8d){if(_0x16ea8d){return _0x45031a[_0x20d9('0x16')](_0x13c9a4);}return _0x45031a[_0x20d9('0x17')](_0x13c9a4)[_0x20d9('0x18')]();};}function respondWithResult(_0x44b538,_0x52ce25){_0x52ce25=_0x52ce25||0xc8;return function(_0x3faf88){if(_0x3faf88){return _0x44b538['status'](_0x52ce25)['json'](_0x3faf88);}};}function respondWithFilteredResult(_0x5ef508,_0x23b0ef){return function(_0x394915){if(_0x394915){var _0x4e5c6b=typeof _0x23b0ef['offset']===_0x20d9('0x19')&&typeof _0x23b0ef[_0x20d9('0x1a')]==='undefined';var _0x5e6396=_0x394915[_0x20d9('0x1b')];var _0x4779bf=_0x4e5c6b?0x0:_0x23b0ef[_0x20d9('0x1c')];var _0x3593ab=_0x4e5c6b?_0x394915[_0x20d9('0x1b')]:_0x23b0ef[_0x20d9('0x1c')]+_0x23b0ef[_0x20d9('0x1a')];var _0x45ad6e;if(_0x3593ab>=_0x5e6396){_0x3593ab=_0x5e6396;_0x45ad6e=0xc8;}else{_0x45ad6e=0xce;}_0x5ef508['status'](_0x45ad6e);return _0x5ef508[_0x20d9('0x1d')](_0x20d9('0x1e'),_0x4779bf+'-'+_0x3593ab+'/'+_0x5e6396)[_0x20d9('0x1f')](_0x394915);}return null;};}function patchUpdates(_0x30b6e7){return function(_0x4bb00f){try{jsonpatch['apply'](_0x4bb00f,_0x30b6e7,!![]);}catch(_0x4cddd9){return BPromise[_0x20d9('0x20')](_0x4cddd9);}return _0x4bb00f[_0x20d9('0x21')]();};}function saveUpdates(_0x59a7f4,_0x44d283){return function(_0x40a4e3){if(_0x40a4e3){return _0x40a4e3[_0x20d9('0x22')](_0x59a7f4)[_0x20d9('0x23')](function(_0x135684){return _0x135684;});}return null;};}function removeEntity(_0x102c5f,_0x583b57){return function(_0x317296){if(_0x317296){return _0x317296['destroy']()[_0x20d9('0x23')](function(){_0x102c5f[_0x20d9('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x6e6b29,_0x2c7aa8){return function(_0x3ca34d){if(!_0x3ca34d){_0x6e6b29['sendStatus'](0x194);}return _0x3ca34d;};}function handleError(_0x54cdea,_0x46a34a){_0x46a34a=_0x46a34a||0x1f4;return function(_0x54c9e7){logger[_0x20d9('0x24')](_0x54c9e7[_0x20d9('0x25')]);if(_0x54c9e7['name']){delete _0x54c9e7[_0x20d9('0x26')];}_0x54cdea[_0x20d9('0x17')](_0x46a34a)[_0x20d9('0x27')](_0x54c9e7);};}function getInteractionUsers(_0x18d43c,_0x22b8ac){return new BPromise(function(_0xad04fd,_0x1fe78e){try{if(_0x22b8ac[_0x18d43c['id']]){_0x18d43c[_0x20d9('0x28')]=_[_0x20d9('0x29')](_0x22b8ac[_0x18d43c['id']],function(_0x281d7a){return{'id':_0x281d7a['id'],'fullname':_0x281d7a[_0x20d9('0x2a')]};});}}catch(_0x1c351f){_0x1fe78e(_0x1c351f);}_0xad04fd(_0x18d43c);});}function getInteractionTags(_0x3b6a7f,_0x4cf922){return new BPromise(function(_0x423db1,_0xf48b1a){try{if(_0x3b6a7f[_0x20d9('0x2b')]){_0x3b6a7f['Tags']=[];_0x3b6a7f[_0x20d9('0x2b')][_0x20d9('0x2c')](',')['forEach'](function(_0x567518){_0x3b6a7f['Tags'][_0x20d9('0x2d')](_0x4cf922[_0x567518]);});}delete _0x3b6a7f['TagIds'];}catch(_0x1b8f4e){_0xf48b1a(_0x1b8f4e);}_0x423db1(_0x3b6a7f);});}function updateFaxInteraction(_0x26ae79,_0x188df2,_0x247533){return new BPromise(function(_0x2af486,_0x53852b){return getInteractionUsers(_0x26ae79,_0x247533)[_0x20d9('0x23')](function(_0x4ff9fc){return getInteractionTags(_0x4ff9fc,_0x188df2);})[_0x20d9('0x23')](function(_0x340615){_0x2af486(_0x340615);})[_0x20d9('0x2e')](function(_0x35047d){_0x53852b(_0x35047d);});});}exports[_0x20d9('0x2f')]=function(_0x2d9c4,_0x14496){var _0x5bbb9a={},_0x21675f={},_0x4a4f61={'count':0x0,'rows':[]};var _0x45952f=_['map'](db[_0x20d9('0x30')][_0x20d9('0x31')],function(_0x1a26be){return{'name':_0x1a26be['fieldName'],'type':_0x1a26be[_0x20d9('0x32')][_0x20d9('0x33')]};});_0x21675f['model']=_['map'](_0x45952f,_0x20d9('0x26'));_0x21675f[_0x20d9('0x34')]=_[_0x20d9('0x35')](_0x2d9c4[_0x20d9('0x34')]);_0x21675f['filters']=_['intersection'](_0x21675f[_0x20d9('0x36')],_0x21675f[_0x20d9('0x34')]);_0x5bbb9a['attributes']=_['intersection'](_0x21675f[_0x20d9('0x36')],qs[_0x20d9('0x37')](_0x2d9c4[_0x20d9('0x34')][_0x20d9('0x37')]));_0x5bbb9a[_0x20d9('0x38')]=_0x5bbb9a['attributes'][_0x20d9('0x39')]?_0x5bbb9a[_0x20d9('0x38')]:_0x21675f['model'];if(!_0x2d9c4[_0x20d9('0x34')]['hasOwnProperty'](_0x20d9('0x3a'))){_0x5bbb9a[_0x20d9('0x1a')]=qs[_0x20d9('0x1a')](_0x2d9c4['query'][_0x20d9('0x1a')]);_0x5bbb9a[_0x20d9('0x1c')]=qs['offset'](_0x2d9c4['query'][_0x20d9('0x1c')]);}_0x5bbb9a[_0x20d9('0x3b')]=qs[_0x20d9('0x3c')](_0x2d9c4[_0x20d9('0x34')][_0x20d9('0x3c')]);_0x5bbb9a[_0x20d9('0x3d')]=qs[_0x20d9('0x3e')](_['pick'](_0x2d9c4['query'],_0x21675f['filters']),_0x45952f);var _0x2d96a4=[];var _0x36481f=squel[_0x20d9('0x3f')]()['field']('id')[_0x20d9('0x40')]('name')['field'](_0x20d9('0x41'))[_0x20d9('0x42')]('tools_tags');var _0x416834=squel[_0x20d9('0x3f')]()[_0x20d9('0x40')](_0x20d9('0x43'))['field'](_0x20d9('0x44'))['field'](_0x20d9('0x45'))[_0x20d9('0x42')](_0x20d9('0x46'),'ui')['left_join'](_0x20d9('0x47'),'u',_0x20d9('0x48'));var _0x41e950=squel[_0x20d9('0x3f')]()[_0x20d9('0x42')]('fax_interactions','i')[_0x20d9('0x49')](_0x20d9('0x4a'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0x20d9('0x49')](_0x20d9('0x47'),'o',_0x20d9('0x4b'))[_0x20d9('0x49')](_0x20d9('0x4c'),'a',_0x20d9('0x4d'))[_0x20d9('0x49')](_0x20d9('0x4e'),'me',_0x20d9('0x4f'))[_0x20d9('0x49')]('fax_interaction_has_tags','it',_0x20d9('0x50'))[_0x20d9('0x49')]('tools_tags','t',_0x20d9('0x51'));var _0x49238b=squel[_0x20d9('0x52')]();var _0x324543=[];var _0x475926=squel[_0x20d9('0x52')]();var _0x2b04b2;if(_0x2d9c4[_0x20d9('0x34')][_0x20d9('0x53')]){_0x2b04b2=as[_0x20d9('0x54')](_0x2d9c4[_0x20d9('0x34')]['search']);var _0x11f19f=_0x2b04b2[_0x20d9('0x55')];for(var _0x5487ca=0x0;_0x5487ca<_0x2b04b2[_0x20d9('0x56')][_0x20d9('0x39')];_0x5487ca++){var _0x157001=_0x2b04b2[_0x20d9('0x56')][_0x5487ca];var _0x3e382b='i';var _0x1b28e9=_[_0x20d9('0x57')](_0x45952f,[_0x20d9('0x26'),_0x157001[_0x20d9('0x40')]]);if(!_0x1b28e9){switch(_0x157001[_0x20d9('0x40')]){case _0x20d9('0x58'):if(_0x157001[_0x20d9('0x59')]==0x1){_0x41e950['having']('`'+_0x157001['field']+'`\x20=\x200');}else{_0x41e950['having']('`'+_0x157001[_0x20d9('0x40')]+_0x20d9('0x5a'));}break;case _0x20d9('0x5b'):if(_0x157001[_0x20d9('0x5c')]===_0x20d9('0x5d')){if(_0x157001[_0x20d9('0x59')]['split']('\x20')[_0x20d9('0x39')]>0x1){_0x49238b[_0x11f19f](_0x20d9('0x5e'),qs[_0x20d9('0x5f')](_0x157001[_0x20d9('0x59')]),null);}else{var _0x3f9fb8='%'+_0x157001[_0x20d9('0x59')]+'%';_0x49238b[_0x11f19f](_0x20d9('0x60'),_0x3f9fb8,_0x3f9fb8,_0x3f9fb8);}}else{_0x1b28e9=_[_0x20d9('0x57')](_0x45952f,['name',_0x20d9('0x61')]);_0x157001[_0x20d9('0x40')]='ContactId';_0x24fc8d=as['buildExpression'](_0x3e382b,_0x1b28e9[_0x20d9('0x32')],_0x157001);_0x49238b[_0x11f19f](_0x24fc8d[_0x20d9('0x62')],_0x24fc8d[_0x20d9('0x59')]['start'],_0x24fc8d[_0x20d9('0x59')][_0x20d9('0x18')]);}break;case _0x20d9('0x63'):var _0x1c5761=_0x157001[_0x20d9('0x59')][_0x20d9('0x2c')](',')[_0x20d9('0x29')](function(_0x3f27ef){return Number(_0x3f27ef);});_0x1c5761[_0x20d9('0x64')](function(_0x38fd92){_0x475926['or'](_0x20d9('0x65'),'%,'+_0x38fd92+',%');});_0x324543=_[_0x20d9('0x66')](_0x324543,_0x1c5761);break;case _0x20d9('0x67'):if(_0x157001[_0x20d9('0x5c')]==='$substring'){_0x49238b[_0x11f19f]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x157001[_0x20d9('0x59')]+'%',null);}else{_0x1b28e9=_[_0x20d9('0x57')](_0x45952f,[_0x20d9('0x26'),_0x20d9('0x68')]);_0x157001[_0x20d9('0x40')]='UserId';_0x24fc8d=as['buildExpression'](_0x3e382b,_0x1b28e9[_0x20d9('0x32')],_0x157001);_0x49238b[_0x11f19f](_0x24fc8d['text'],_0x24fc8d[_0x20d9('0x59')][_0x20d9('0x69')],_0x24fc8d[_0x20d9('0x59')][_0x20d9('0x18')]);}break;case _0x20d9('0x6a'):_0x24fc8d=as[_0x20d9('0x6b')]('me',null,_0x157001);_0x49238b[_0x11f19f](_0x24fc8d[_0x20d9('0x62')],_0x24fc8d[_0x20d9('0x59')][_0x20d9('0x69')],_0x24fc8d[_0x20d9('0x59')][_0x20d9('0x18')]);break;}}else{var _0x24fc8d=as['buildExpression'](_0x3e382b,_0x1b28e9['type'],_0x157001);_0x49238b[_0x11f19f](_0x24fc8d[_0x20d9('0x62')],_0x24fc8d['value'][_0x20d9('0x69')],_0x24fc8d[_0x20d9('0x59')]['end']);}}}else{var _0x499246=_(_0x2d9c4['query'])[_0x20d9('0x35')]()[_0x20d9('0x29')](function(_0x1ee984){return _['some'](_0x45952f,[_0x20d9('0x26'),_0x1ee984])?_0x1ee984:undefined;})[_0x20d9('0x6c')]()[_0x20d9('0x59')]();if(!_[_0x20d9('0x6d')](_0x499246)){_0x499246[_0x20d9('0x64')](function(_0x436900){if(_0x436900==='FaxAccountId'){_0x41e950['where'](_0x20d9('0x6e'),[][_0x20d9('0x6f')](_0x2d9c4[_0x20d9('0x34')][_0x436900]));}else if(_0x436900==='createdAt'){var _0x1b57e0=JSON['parse'](_0x2d9c4['query'][_0x436900])[_0x20d9('0x70')];var _0x5edff2=JSON[_0x20d9('0x71')](_0x2d9c4[_0x20d9('0x34')][_0x436900])['$lte'];_0x41e950[_0x20d9('0x3d')](_0x20d9('0x72'),_0x1b57e0,_0x5edff2);}else{if(_0x2d9c4[_0x20d9('0x34')][_0x436900]===_0x20d9('0x73')){_0x41e950[_0x20d9('0x3d')]('i.'+_0x436900+_0x20d9('0x74'));}else{_0x41e950['where']('i.'+_0x436900+'\x20=\x20?',_0x2d9c4[_0x20d9('0x34')][_0x436900]);}}});}if(_0x2d9c4[_0x20d9('0x34')]['read']){if(_0x2d9c4['query']['read']==0x1){_0x41e950[_0x20d9('0x75')](_0x20d9('0x76'));}else{_0x41e950[_0x20d9('0x75')]('`unreadMessages`\x20>\x200');}}if(_0x2d9c4[_0x20d9('0x34')][_0x20d9('0x77')]){_0x324543=_['isArray'](_0x2d9c4['query'][_0x20d9('0x77')])?_0x2d9c4[_0x20d9('0x34')][_0x20d9('0x77')]:new Array(_0x2d9c4[_0x20d9('0x34')]['tag']);_0x324543[_0x20d9('0x64')](function(_0xd11aaa){_0x475926['or'](_0x20d9('0x65'),'%,'+_0xd11aaa+',%');});}if(_0x2d9c4['query'][_0x20d9('0x78')]){var _0x20e4ea=_0x2d9c4['query']['filter'][_0x20d9('0x79')]('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0x20d9('0x7a')](_0x20e4ea)){_0x49238b['or']('i.id\x20LIKE\x20?',_0x20e4ea+'%')['or'](_0x20d9('0x7b'),_0x20e4ea+'%');}_0x49238b['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x20e4ea+'%');}}_0x41e950[_0x20d9('0x3d')](_0x49238b);_0x41e950[_0x20d9('0x7c')](_0x20d9('0x7d'));var _0x38574e={'type':db[_0x20d9('0x7e')][_0x20d9('0x7f')][_0x20d9('0x80')],'raw':!![]};var _0x5947aa=_0x41e950[_0x20d9('0x81')]();_0x5947aa[_0x20d9('0x40')](_0x20d9('0x7d'));_0x5947aa[_0x20d9('0x40')](_0x20d9('0x82'),'unreadMessages');if(_0x5bbb9a['order']){_0x5bbb9a['order'][_0x20d9('0x64')](function(_0x360e62){var _0x31a475=_0x360e62[0x0]===_0x20d9('0x83')?_0x360e62[0x0]:'i.'+_0x360e62[0x0];_0x41e950[_0x20d9('0x3b')](_0x31a475,_0x360e62[0x1]==='DESC'?![]:!![]);});}if(!_[_0x20d9('0x6d')](_0x324543)){_0x41e950[_0x20d9('0x75')](_0x475926);_0x5947aa[_0x20d9('0x3d')]('t.id\x20IN\x20?',_0x324543);}BPromise[_0x20d9('0x84')]()[_0x20d9('0x23')](function(){if(!_0x2b04b2){if(_0x2d9c4[_0x20d9('0x34')][_0x20d9('0x85')])return;_0x5947aa[_0x20d9('0x3d')]('i.FaxAccountId\x20IS\x20NOT\x20NULL');_0x41e950[_0x20d9('0x3d')](_0x20d9('0x86'));return;}if(_0x2d9c4['user'][_0x20d9('0x87')]!==_0x20d9('0x88'))return;return _0x2d9c4[_0x20d9('0x89')][_0x20d9('0x8a')]({'attributes':['id'],'raw':!![]})[_0x20d9('0x23')](function(_0x98b5e8){if(_[_0x20d9('0x6d')](_0x98b5e8)){_0x5947aa[_0x20d9('0x3d')](_0x20d9('0x8b'));_0x41e950[_0x20d9('0x3d')](_0x20d9('0x8b'));}else{_0x5947aa[_0x20d9('0x3d')](_0x20d9('0x6e'),_[_0x20d9('0x29')](_0x98b5e8,'id'));_0x41e950[_0x20d9('0x3d')](_0x20d9('0x6e'),_[_0x20d9('0x29')](_0x98b5e8,'id'));}});})[_0x20d9('0x23')](function(){if(_0x2d9c4['user'][_0x20d9('0x87')]===_0x20d9('0x88')&&!_0x2b04b2&&!_0x2d9c4['query']['FaxAccountId'])return[];return db[_0x20d9('0x8c')]['query'](_0x5947aa[_0x20d9('0x8d')](),_0x38574e);})[_0x20d9('0x23')](function(_0x5b5f33){_0x4a4f61[_0x20d9('0x1b')]=_0x5b5f33['length'];if(_0x4a4f61[_0x20d9('0x1b')]===0x0)return[];return db['sequelize']['query'](_0x36481f[_0x20d9('0x8d')](),_0x38574e)[_0x20d9('0x23')](function(_0x326dd6){_0x2d96a4=_[_0x20d9('0x8e')](_0x326dd6,'id');_0x38574e=_['merge'](_0x38574e,{'model':db[_0x20d9('0x30')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x2d9c4['query'][_0x20d9('0x37')]){_0x5bbb9a[_0x20d9('0x38')][_0x20d9('0x64')](function(_0x5cc0ee){_0x41e950[_0x20d9('0x40')]('i.'+_0x5cc0ee);});}else{_0x41e950[_0x20d9('0x40')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x20d9('0x58'));_0x41e950[_0x20d9('0x40')](_0x20d9('0x8f'),_0x20d9('0x90'));_0x41e950[_0x20d9('0x40')](_0x20d9('0x91'),_0x20d9('0x92'));_0x41e950[_0x20d9('0x40')](_0x20d9('0x93'),'contactName');_0x41e950[_0x20d9('0x40')](_0x20d9('0x94'));_0x41e950[_0x20d9('0x40')](_0x20d9('0x95'),_0x20d9('0x96'));_0x41e950[_0x20d9('0x40')]('c.lastName',_0x20d9('0x97'));_0x41e950[_0x20d9('0x40')](_0x20d9('0x98'),_0x20d9('0x99'));_0x41e950['field'](_0x20d9('0x9a'),_0x20d9('0x9b'));_0x41e950[_0x20d9('0x40')](_0x20d9('0x9c'),_0x20d9('0x9d'));_0x41e950[_0x20d9('0x40')](_0x20d9('0x9e'),'Contact.fax');_0x41e950['field']('o.fullname',_0x20d9('0x9f'));_0x41e950[_0x20d9('0x40')](_0x20d9('0xa0'),_0x20d9('0xa1'));_0x41e950[_0x20d9('0x40')](_0x20d9('0xa2'),'TagIds');}if(_0x5bbb9a[_0x20d9('0x1a')])_0x41e950[_0x20d9('0x1a')](_0x5bbb9a['limit']);if(_0x5bbb9a['offset'])_0x41e950[_0x20d9('0x1c')](_0x5bbb9a['offset']);return db['sequelize'][_0x20d9('0x34')](_0x41e950[_0x20d9('0x8d')](),_0x38574e);})[_0x20d9('0x23')](function(_0x40250d){if(_0x40250d[_0x20d9('0x39')]>0x0)_0x416834[_0x20d9('0x3d')](_0x20d9('0xa3'),_[_0x20d9('0x29')](_0x40250d,'id'));return db[_0x20d9('0x8c')]['query'](_0x416834[_0x20d9('0x8d')](),_0x38574e)[_0x20d9('0x23')](function(_0xd10239){var _0x404893=_[_0x20d9('0xa4')](_0xd10239,'FaxInteractionId');var _0x223503=[];_0x40250d[_0x20d9('0x64')](function(_0x41d229){_0x223503[_0x20d9('0x2d')](updateFaxInteraction(_0x41d229,_0x2d96a4,_0x404893));});return BPromise[_0x20d9('0xa5')](_0x223503);});});})['then'](function(_0x2d40e5){_0x4a4f61['rows']=_0x2d40e5;return _0x4a4f61;})[_0x20d9('0x23')](respondWithFilteredResult(_0x14496,_0x5bbb9a))['catch'](handleError(_0x14496,null));};exports[_0x20d9('0xa6')]=function(_0x396f5d,_0x2e048f){var _0x2048fa={'raw':![],'where':{'id':_0x396f5d[_0x20d9('0xa7')]['id']}},_0x4c8d08={};_0x4c8d08[_0x20d9('0x36')]=_[_0x20d9('0x35')](db[_0x20d9('0x30')][_0x20d9('0x31')]);_0x4c8d08[_0x20d9('0x34')]=_['keys'](_0x396f5d[_0x20d9('0x34')]);_0x4c8d08['filters']=_[_0x20d9('0xa8')](_0x4c8d08[_0x20d9('0x36')],_0x4c8d08[_0x20d9('0x34')]);_0x2048fa['attributes']=_[_0x20d9('0xa8')](_0x4c8d08['model'],qs[_0x20d9('0x37')](_0x396f5d[_0x20d9('0x34')][_0x20d9('0x37')]));_0x2048fa[_0x20d9('0x38')]=_0x2048fa[_0x20d9('0x38')][_0x20d9('0x39')]?_0x2048fa[_0x20d9('0x38')]:_0x4c8d08[_0x20d9('0x36')];if(_0x396f5d['query']['includeAll']){_0x2048fa[_0x20d9('0xa9')]=[{'all':!![]}];}_0x2048fa=_[_0x20d9('0xaa')]({},_0x2048fa,_0x396f5d[_0x20d9('0xab')]);return db[_0x20d9('0x30')]['find'](_0x2048fa)[_0x20d9('0x23')](handleEntityNotFound(_0x2e048f,null))[_0x20d9('0x23')](respondWithResult(_0x2e048f,null))[_0x20d9('0x2e')](handleError(_0x2e048f,null));};exports[_0x20d9('0xac')]=function(_0x4cb848,_0x4b05ad){return db['FaxInteraction'][_0x20d9('0xac')](_0x4cb848[_0x20d9('0x6a')],{})[_0x20d9('0x23')](respondWithResult(_0x4b05ad,0xc9))[_0x20d9('0x2e')](handleError(_0x4b05ad,null));};exports[_0x20d9('0x22')]=function(_0x34fa58,_0x1e2c50){if(_0x34fa58[_0x20d9('0x6a')]['id']){delete _0x34fa58['body']['id'];}return db[_0x20d9('0x30')][_0x20d9('0x57')]({'where':{'id':_0x34fa58[_0x20d9('0xa7')]['id']}})[_0x20d9('0x23')](handleEntityNotFound(_0x1e2c50,null))[_0x20d9('0x23')](saveUpdates(_0x34fa58[_0x20d9('0x6a')],null))[_0x20d9('0x23')](respondWithResult(_0x1e2c50,null))[_0x20d9('0x2e')](handleError(_0x1e2c50,null));};exports[_0x20d9('0xad')]=function(_0x145574,_0x12fbb1){return db['FaxInteraction'][_0x20d9('0x57')]({'where':{'id':_0x145574[_0x20d9('0xa7')]['id']}})[_0x20d9('0x23')](handleEntityNotFound(_0x12fbb1,null))[_0x20d9('0x23')](removeEntity(_0x12fbb1,null))['catch'](handleError(_0x12fbb1,null));};exports['describe']=function(_0x7cf6e9,_0x504790){return db[_0x20d9('0x30')][_0x20d9('0xae')]()['then'](respondWithResult(_0x504790,null))[_0x20d9('0x2e')](handleError(_0x504790,null));};exports[_0x20d9('0xaf')]=function(_0x2ade15,_0x58e4ff,_0xeedb79){return db['FaxMessage'][_0x20d9('0x57')]({'where':{'id':_0x2ade15['params']['id']}})[_0x20d9('0x23')](handleEntityNotFound(_0x58e4ff,null))[_0x20d9('0x23')](function(_0x20d285){if(_0x20d285){return _0x20d285[_0x20d9('0xaf')](_0x2ade15[_0x20d9('0x6a')][_0x20d9('0xb0')],_[_0x20d9('0xb1')](_0x2ade15[_0x20d9('0x6a')],[_0x20d9('0xb0'),'id'])||{});}})['then'](respondWithResult(_0x58e4ff,null))['catch'](handleError(_0x58e4ff,null));};exports[_0x20d9('0xb2')]=function(_0x4b6d87,_0x1c9c26,_0x133326){var _0x40ba1e={'raw':![],'where':{}};var _0x7d9641={};var _0x2ba8d7={'count':0x0,'rows':[]};return db['FaxInteraction'][_0x20d9('0xb3')]({'where':{'id':_0x4b6d87[_0x20d9('0xa7')]['id']}})[_0x20d9('0x23')](handleEntityNotFound(_0x1c9c26,null))[_0x20d9('0x23')](function(_0x535194){if(_0x535194){_0x7d9641[_0x20d9('0x36')]=_['keys'](db[_0x20d9('0xb4')][_0x20d9('0x31')]);_0x7d9641['query']=_[_0x20d9('0x35')](_0x4b6d87[_0x20d9('0x34')]);_0x7d9641['filters']=_[_0x20d9('0xa8')](_0x7d9641['model'],_0x7d9641['query']);_0x40ba1e[_0x20d9('0x38')]=_[_0x20d9('0xa8')](_0x7d9641[_0x20d9('0x36')],qs[_0x20d9('0x37')](_0x4b6d87[_0x20d9('0x34')]['fields']));_0x40ba1e[_0x20d9('0x38')]=_0x40ba1e[_0x20d9('0x38')][_0x20d9('0x39')]?_0x40ba1e['attributes']:_0x7d9641['model'];if(!_0x4b6d87[_0x20d9('0x34')][_0x20d9('0xb5')](_0x20d9('0x3a'))){_0x40ba1e[_0x20d9('0x1a')]=qs[_0x20d9('0x1a')](_0x4b6d87[_0x20d9('0x34')][_0x20d9('0x1a')]);_0x40ba1e[_0x20d9('0x1c')]=qs[_0x20d9('0x1c')](_0x4b6d87['query'][_0x20d9('0x1c')]);}_0x40ba1e[_0x20d9('0x3b')]=qs[_0x20d9('0x3c')](_0x4b6d87[_0x20d9('0x34')]['sort']);_0x40ba1e['where']=qs[_0x20d9('0x3e')](_[_0x20d9('0xb6')](_0x4b6d87[_0x20d9('0x34')],_0x7d9641['filters']));_0x40ba1e[_0x20d9('0x3d')]['FaxInteractionId']=_0x535194['id'];if(_0x4b6d87[_0x20d9('0x34')]['filter']){_0x40ba1e['where']=_[_0x20d9('0xaa')](_0x40ba1e['where'],{'$or':_[_0x20d9('0x29')](_0x40ba1e['attributes'],function(_0x50772b){var _0x5d84c1={};_0x5d84c1[_0x50772b]={'$like':'%'+_0x4b6d87[_0x20d9('0x34')][_0x20d9('0x78')]+'%'};return _0x5d84c1;})});}if(_0x4b6d87[_0x20d9('0x34')][_0x20d9('0x70')]){var _0x1567b5=_0x4b6d87['query'][_0x20d9('0x70')]['split'](',');var _0x349719={};_0x349719[_0x1567b5[0x0]]={'$gte':moment(_0x1567b5[0x1])[_0x20d9('0xb7')](_0x20d9('0xb8'))};_0x40ba1e[_0x20d9('0x3d')]=_[_0x20d9('0xaa')](_0x40ba1e[_0x20d9('0x3d')],_0x349719);}_0x40ba1e=_[_0x20d9('0xaa')]({},_0x40ba1e,_0x4b6d87[_0x20d9('0xab')]);return db[_0x20d9('0xb4')][_0x20d9('0x1b')]({'where':_0x40ba1e[_0x20d9('0x3d')]})['then'](function(_0x1e6d12){_0x2ba8d7[_0x20d9('0x1b')]=_0x1e6d12;if(_0x4b6d87['query'][_0x20d9('0xb9')]){_0x40ba1e[_0x20d9('0xa9')]=[{'all':!![]}];}return db[_0x20d9('0xb4')]['findAll'](_0x40ba1e);})[_0x20d9('0x23')](function(_0x1399cf){_0x2ba8d7['rows']=_0x1399cf;return _0x2ba8d7;});}})[_0x20d9('0x23')](respondWithFilteredResult(_0x1c9c26,_0x40ba1e))['catch'](handleError(_0x1c9c26,null));};exports['addTags']=function(_0x4e7c95,_0x464aab,_0x2ee2b3){return db['FaxInteraction'][_0x20d9('0x57')]({'where':{'id':_0x4e7c95['params']['id']}})[_0x20d9('0x23')](handleEntityNotFound(_0x464aab,null))[_0x20d9('0x23')](function(_0x20a2bd){if(_0x20a2bd){return _0x20a2bd[_0x20d9('0xba')](_0x4e7c95[_0x20d9('0x6a')][_0x20d9('0xb0')],_['omit'](_0x4e7c95['body'],[_0x20d9('0xb0'),'id'])||{})[_0x20d9('0xbb')](function(){return db[_0x20d9('0x63')][_0x20d9('0xbc')]({'attributes':['id',_0x20d9('0x26'),_0x20d9('0x41')],'where':{'id':_0x4e7c95[_0x20d9('0x6a')][_0x20d9('0xb0')]}});})[_0x20d9('0x23')](function(_0x4d257c){socket[_0x20d9('0xbd')](_0x20d9('0xbe'),{'id':Number(_0x4e7c95[_0x20d9('0xa7')]['id']),'tags':_0x4d257c||[]});return{'id':Number(_0x4e7c95[_0x20d9('0xa7')]['id']),'tags':_0x4d257c||[]};});}})[_0x20d9('0x23')](respondWithResult(_0x464aab,null))[_0x20d9('0x2e')](handleError(_0x464aab,null));};exports[_0x20d9('0xbf')]=function(_0x2b0802,_0x4c88c8,_0x3a8d93){return db[_0x20d9('0x30')][_0x20d9('0x57')]({'where':{'id':_0x2b0802['params']['id']}})[_0x20d9('0x23')](handleEntityNotFound(_0x4c88c8,null))[_0x20d9('0x23')](function(_0x97eb99){if(_0x97eb99){return _0x97eb99[_0x20d9('0xbf')](_0x2b0802[_0x20d9('0x34')]['ids']);}})[_0x20d9('0x23')](respondWithStatusCode(_0x4c88c8,null))[_0x20d9('0x2e')](handleError(_0x4c88c8,null));};exports[_0x20d9('0xc0')]=function(_0xe5a46e,_0x5ef0e3){var _0x357482=moment()[_0x20d9('0xc1')]()['toString']();var _0x3afca2=path[_0x20d9('0xc2')](config[_0x20d9('0xc3')],'server',_0x20d9('0xc4'),_0x20d9('0xc5'));var _0x523270=path['join'](config['root'],_0x20d9('0xc6'),'files',_0x20d9('0xc7'));var _0x53ec06=path[_0x20d9('0xc2')](_0x3afca2,_0x357482);var _0x48bb16=util[_0x20d9('0xb7')](_0x20d9('0xc8'),_0xe5a46e[_0x20d9('0xa7')]['id'],_0x357482);var _0x509800=path['join'](_0x3afca2,_0x48bb16);var _0x64015e=[];_0x64015e[_0x20d9('0x2d')]({'model':db[_0x20d9('0xc9')],'as':_0x20d9('0xc9'),'raw':!![]});var _0x680abb=[{'model':db[_0x20d9('0xb4')],'as':_0x20d9('0xca'),'attributes':['id','body',_0x20d9('0xcb')],'include':_0x64015e}];return db['FaxInteraction'][_0x20d9('0x57')]({'where':{'id':_0xe5a46e[_0x20d9('0xa7')]['id']},'include':_0x680abb})[_0x20d9('0x23')](handleEntityNotFound(_0x5ef0e3,null))[_0x20d9('0x23')](function(_0x6172e7){if(_0x6172e7&&_0x6172e7['Messages']){var _0x33c50e=_0x6172e7['get']({'plain':!![]});fs[_0x20d9('0xcc')](_0x53ec06);for(var _0x148715=0x0;_0x148715<_0x33c50e['Messages'][_0x20d9('0x39')];_0x148715++){var _0x143da2=_0x33c50e[_0x20d9('0xca')][_0x148715][_0x20d9('0xc9')];if(_0x143da2){var _0x52064f=path['join'](_0x523270,_0x143da2[_0x20d9('0xcd')]);if(fs[_0x20d9('0xce')](_0x52064f)){fs['createReadStream'](_0x52064f)[_0x20d9('0xcf')](fs[_0x20d9('0xd0')](path[_0x20d9('0xc2')](_0x53ec06,_0x143da2[_0x20d9('0xcd')])));}}}return BPromise[_0x20d9('0x84')]()[_0x20d9('0x23')](function(){return new BPromise(function(_0x5568e0,_0x3f83ca){zipdir(_0x53ec06,{'saveTo':_0x509800},function(_0x5675f1,_0x7f8ffd){if(_0x5675f1)return _0x3f83ca(_0x5675f1);return _0x5568e0(_0x7f8ffd);});})[_0x20d9('0x23')](function(){return new BPromise(function(_0x240734,_0x17d1c0){rimraf(_0x53ec06,function(_0x401232){if(_0x401232)_0x17d1c0(_0x401232);return _0x240734();});});})['then'](function(){return _0x5ef0e3[_0x20d9('0xc0')](_0x509800,_0x48bb16,function(_0x156926){if(_0x156926){console[_0x20d9('0xd1')](_0x20d9('0xd2'),_0x156926);}else{fs[_0x20d9('0xd3')](_0x509800);}});});});}else{return _0x5ef0e3[_0x20d9('0x16')](0xc8);}})[_0x20d9('0x2e')](handleError(_0x5ef0e3,null));};