4e96588c01f98774bb44add2a34f8dd7cbd519f7
[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 _0x7764=['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','contactName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.FaxInteractionId\x20IN\x20?','groupBy','FaxInteractionId','all','rows','catch','show','params','FaxInteraction','include','options','create','describe','FaxMessage','ids','omit','getMessages','findOne','nolimit','format','YYYY-MM-DD\x20HH:mm:ss','includeAll','addTags','findAll','emit','faxInteractionTags:save','removeTags','download','unix','join','root','server','tmp','attachments','transcript-%d-%s.zip','Attachment','Messages','createdAt','get','mkdirSync','basename','existsSync','createReadStream','createWriteStream','log','err','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','./faxInteraction.socket','register','status','end','json','offset','undefined','count','Content-Range','save','update','then','destroy','sendStatus','stack','name','send','Users','map','fullname','TagIds','Tags','forEach','push','waiting','talking','answered','total','closed','UserId','unmanaged','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','limit','sort','where','pick','select','field','color','from','u.id','u.fullname','ui.FaxInteractionId','user_has_fax_interactions','left_join','users','u.id\x20=\x20ui.UserId','fax_interactions','o.id\x20=\x20i.UserId','fax_accounts','me.FaxInteractionId\x20=\x20i.id','tools_tags','t.id\x20=\x20it.TagId','expr','search','sqlOperator','conditions','find','unreadMessages','value','`\x20=\x200','having','`\x20>\x200','Contact','operator','split','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','start','Tag','union','$substring','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','text','body','some','compact','isEmpty','FaxAccountId','i.FaxAccountId\x20IN\x20?','concat','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','i.id\x20LIKE\x20?','i.fax\x20LIKE\x20?','group','QueryTypes','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','DESC','t.id\x20IN\x20?','resolve','i.FaxAccountId\x20IS\x20NOT\x20NULL','role','agent','getFaxAccounts','i.FaxAccountId\x20IS\x20NULL','user','sequelize','toString','merge','Account.key','a.mandatoryDisposition'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0x7764,0x120));var _0x4776=function(_0x54b062,_0x264bb5){_0x54b062=_0x54b062-0x0;var _0x255e41=_0x7764[_0x54b062];return _0x255e41;};'use strict';var emlformat=require(_0x4776('0x0'));var rimraf=require(_0x4776('0x1'));var zipdir=require(_0x4776('0x2'));var jsonpatch=require(_0x4776('0x3'));var rp=require(_0x4776('0x4'));var moment=require(_0x4776('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x4776('0x6'));var util=require('util');var path=require(_0x4776('0x7'));var sox=require(_0x4776('0x8'));var csv=require(_0x4776('0x9'));var ejs=require(_0x4776('0xa'));var fs=require('fs');var fs_extra=require(_0x4776('0xb'));var _=require(_0x4776('0xc'));var squel=require('squel');var crypto=require(_0x4776('0xd'));var jsforce=require(_0x4776('0xe'));var deskjs=require(_0x4776('0xf'));var toCsv=require(_0x4776('0x9'));var querystring=require(_0x4776('0x10'));var Papa=require(_0x4776('0x11'));var Redis=require(_0x4776('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x4776('0x13'));var as=require(_0x4776('0x14'));var hardwareService=require(_0x4776('0x15'));var logger=require(_0x4776('0x16'))(_0x4776('0x17'));var utils=require(_0x4776('0x18'));var config=require(_0x4776('0x19'));var licenseUtil=require(_0x4776('0x1a'));var db=require(_0x4776('0x1b'))['db'];config[_0x4776('0x1c')]=_['defaults'](config[_0x4776('0x1c')],{'host':_0x4776('0x1d'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x4776('0x1c')]));require(_0x4776('0x1e'))[_0x4776('0x1f')](socket);function respondWithStatusCode(_0x1403b0,_0x512c8c){_0x512c8c=_0x512c8c||0xcc;return function(_0x79ed1a){if(_0x79ed1a){return _0x1403b0['sendStatus'](_0x512c8c);}return _0x1403b0[_0x4776('0x20')](_0x512c8c)[_0x4776('0x21')]();};}function respondWithResult(_0x1c314c,_0x1784e7){_0x1784e7=_0x1784e7||0xc8;return function(_0x38cea2){if(_0x38cea2){return _0x1c314c['status'](_0x1784e7)[_0x4776('0x22')](_0x38cea2);}};}function respondWithFilteredResult(_0x14b382,_0x4855c8){return function(_0x3583a3){if(_0x3583a3){var _0x27b347=typeof _0x4855c8[_0x4776('0x23')]===_0x4776('0x24')&&typeof _0x4855c8['limit']===_0x4776('0x24');var _0x49d68e=_0x3583a3['count'];var _0x4136c1=_0x27b347?0x0:_0x4855c8[_0x4776('0x23')];var _0x206a78=_0x27b347?_0x3583a3[_0x4776('0x25')]:_0x4855c8['offset']+_0x4855c8['limit'];var _0x1beccd;if(_0x206a78>=_0x49d68e){_0x206a78=_0x49d68e;_0x1beccd=0xc8;}else{_0x1beccd=0xce;}_0x14b382[_0x4776('0x20')](_0x1beccd);return _0x14b382['set'](_0x4776('0x26'),_0x4136c1+'-'+_0x206a78+'/'+_0x49d68e)['json'](_0x3583a3);}return null;};}function patchUpdates(_0x22e884){return function(_0x547ea3){try{jsonpatch['apply'](_0x547ea3,_0x22e884,!![]);}catch(_0x57b322){return BPromise['reject'](_0x57b322);}return _0x547ea3[_0x4776('0x27')]();};}function saveUpdates(_0x3316ee,_0x2a7a67){return function(_0x2dfc0c){if(_0x2dfc0c){return _0x2dfc0c[_0x4776('0x28')](_0x3316ee)[_0x4776('0x29')](function(_0x1bce63){return _0x1bce63;});}return null;};}function removeEntity(_0x27b39f,_0x3e40b4){return function(_0x57bd86){if(_0x57bd86){return _0x57bd86[_0x4776('0x2a')]()[_0x4776('0x29')](function(){_0x27b39f['status'](0xcc)[_0x4776('0x21')]();});}};}function handleEntityNotFound(_0x1da0a,_0x1489f9){return function(_0x559d1b){if(!_0x559d1b){_0x1da0a[_0x4776('0x2b')](0x194);}return _0x559d1b;};}function handleError(_0x4b4931,_0x1fd561){_0x1fd561=_0x1fd561||0x1f4;return function(_0x20eb1c){logger['error'](_0x20eb1c[_0x4776('0x2c')]);if(_0x20eb1c['name']){delete _0x20eb1c[_0x4776('0x2d')];}_0x4b4931[_0x4776('0x20')](_0x1fd561)[_0x4776('0x2e')](_0x20eb1c);};}function getInteractionUsers(_0x179a22,_0x4c59b9){return new BPromise(function(_0x171578,_0x1bd8b2){try{if(_0x4c59b9[_0x179a22['id']]){_0x179a22[_0x4776('0x2f')]=_[_0x4776('0x30')](_0x4c59b9[_0x179a22['id']],function(_0x1f7f38){return{'id':_0x1f7f38['id'],'fullname':_0x1f7f38[_0x4776('0x31')]};});}}catch(_0x50b6d8){_0x1bd8b2(_0x50b6d8);}_0x171578(_0x179a22);});}function getInteractionTags(_0xfacf3f,_0x554338){return new BPromise(function(_0x5762e5,_0x2e385a){try{if(_0xfacf3f[_0x4776('0x32')]){_0xfacf3f[_0x4776('0x33')]=[];_0xfacf3f['TagIds']['split'](',')[_0x4776('0x34')](function(_0x50c313){_0xfacf3f[_0x4776('0x33')][_0x4776('0x35')](_0x554338[_0x50c313]);});}delete _0xfacf3f[_0x4776('0x32')];}catch(_0x2ffd5e){_0x2e385a(_0x2ffd5e);}_0x5762e5(_0xfacf3f);});}function updateFaxInteraction(_0x2289d8,_0x1a6078,_0xb301a0){return new BPromise(function(_0x2a9484,_0x5c2d34){return getInteractionUsers(_0x2289d8,_0xb301a0)[_0x4776('0x29')](function(_0xee76b5){return getInteractionTags(_0xee76b5,_0x1a6078);})[_0x4776('0x29')](function(_0x1ed76d){return getStateInteraction(_0x1ed76d);})[_0x4776('0x29')](function(_0x4da301){_0x2a9484(_0x4da301);})['catch'](function(_0x903afb){_0x5c2d34(_0x903afb);});});}function getStateInteraction(_0x3142f6){return new BPromise(function(_0x207f64){_0x3142f6[_0x4776('0x36')]=0x0;_0x3142f6[_0x4776('0x37')]=0x0;_0x3142f6[_0x4776('0x38')]=0x0;_0x3142f6['unmanaged']=0x0;_0x3142f6[_0x4776('0x39')]=0x0;if(!_0x3142f6[_0x4776('0x3a')]&&!_0x3142f6[_0x4776('0x3b')]){_0x3142f6[_0x4776('0x36')]+=0x1;}if(!_0x3142f6[_0x4776('0x3a')]&&_0x3142f6[_0x4776('0x3b')]){_0x3142f6[_0x4776('0x37')]+=0x1;if(_0x3142f6['waiting']){_0x3142f6['waiting']-=0x1;}}if(_0x3142f6[_0x4776('0x3a')]&&_0x3142f6['UserId']){_0x3142f6[_0x4776('0x38')]+=0x1;if(_0x3142f6['talking']){_0x3142f6[_0x4776('0x37')]-=0x1;}}if(_0x3142f6['closed']&&!_0x3142f6[_0x4776('0x3b')]){_0x3142f6[_0x4776('0x3c')]+=0x1;if(_0x3142f6['waiting']){_0x3142f6[_0x4776('0x36')]-=0x1;}}_0x3142f6[_0x4776('0x39')]+=0x1;_0x207f64(_0x3142f6);});}exports['index']=function(_0x2625da,_0x4dd97d){var _0x1637d9={},_0x13c1a2={},_0x220daf={'count':0x0,'rows':[]};var _0x1179c4=_['map'](db['FaxInteraction'][_0x4776('0x3d')],function(_0x10b10b){return{'name':_0x10b10b[_0x4776('0x3e')],'type':_0x10b10b[_0x4776('0x3f')][_0x4776('0x40')]};});_0x13c1a2[_0x4776('0x41')]=_[_0x4776('0x30')](_0x1179c4,_0x4776('0x2d'));_0x13c1a2[_0x4776('0x42')]=_[_0x4776('0x43')](_0x2625da['query']);_0x13c1a2[_0x4776('0x44')]=_[_0x4776('0x45')](_0x13c1a2[_0x4776('0x41')],_0x13c1a2['query']);_0x1637d9[_0x4776('0x46')]=_[_0x4776('0x45')](_0x13c1a2[_0x4776('0x41')],qs['fields'](_0x2625da[_0x4776('0x42')][_0x4776('0x47')]));_0x1637d9[_0x4776('0x46')]=_0x1637d9[_0x4776('0x46')][_0x4776('0x48')]?_0x1637d9[_0x4776('0x46')]:_0x13c1a2[_0x4776('0x41')];if(!_0x2625da['query'][_0x4776('0x49')]('nolimit')){_0x1637d9[_0x4776('0x4a')]=qs[_0x4776('0x4a')](_0x2625da['query'][_0x4776('0x4a')]);_0x1637d9['offset']=qs[_0x4776('0x23')](_0x2625da[_0x4776('0x42')][_0x4776('0x23')]);}_0x1637d9['order']=qs['sort'](_0x2625da['query'][_0x4776('0x4b')]);_0x1637d9[_0x4776('0x4c')]=qs[_0x4776('0x44')](_[_0x4776('0x4d')](_0x2625da[_0x4776('0x42')],_0x13c1a2[_0x4776('0x44')]),_0x1179c4);var _0x83257d=[];var _0xa6a618=squel[_0x4776('0x4e')]()[_0x4776('0x4f')]('id')['field']('name')[_0x4776('0x4f')](_0x4776('0x50'))[_0x4776('0x51')]('tools_tags');var _0x17e18b=squel[_0x4776('0x4e')]()[_0x4776('0x4f')](_0x4776('0x52'))[_0x4776('0x4f')](_0x4776('0x53'))[_0x4776('0x4f')](_0x4776('0x54'))[_0x4776('0x51')](_0x4776('0x55'),'ui')[_0x4776('0x56')](_0x4776('0x57'),'u',_0x4776('0x58'));var _0x26d07f=squel[_0x4776('0x4e')]()[_0x4776('0x51')](_0x4776('0x59'),'i')[_0x4776('0x56')]('cm_contacts','c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0x4776('0x56')](_0x4776('0x57'),'o',_0x4776('0x5a'))[_0x4776('0x56')](_0x4776('0x5b'),'a','a.id\x20=\x20i.FaxAccountId')[_0x4776('0x56')]('fax_messages','me',_0x4776('0x5c'))['left_join']('fax_interaction_has_tags','it','it.FaxInteractionId\x20=\x20i.id')['left_join'](_0x4776('0x5d'),'t',_0x4776('0x5e'));var _0x34a2a5=squel[_0x4776('0x5f')]();var _0xd31b5e=[];var _0x4cecf8=squel[_0x4776('0x5f')]();var _0x50cb2d;if(_0x2625da[_0x4776('0x42')][_0x4776('0x60')]){_0x50cb2d=as['parseSearch'](_0x2625da[_0x4776('0x42')][_0x4776('0x60')]);var _0x549ee7=_0x50cb2d[_0x4776('0x61')];for(var _0x26c72d=0x0;_0x26c72d<_0x50cb2d['conditions'][_0x4776('0x48')];_0x26c72d++){var _0x4537cc=_0x50cb2d[_0x4776('0x62')][_0x26c72d];var _0x1ea373='i';var _0x49c7b0=_[_0x4776('0x63')](_0x1179c4,[_0x4776('0x2d'),_0x4537cc['field']]);if(!_0x49c7b0){switch(_0x4537cc[_0x4776('0x4f')]){case _0x4776('0x64'):if(_0x4537cc[_0x4776('0x65')]==0x1){_0x26d07f['having']('`'+_0x4537cc['field']+_0x4776('0x66'));}else{_0x26d07f[_0x4776('0x67')]('`'+_0x4537cc['field']+_0x4776('0x68'));}break;case _0x4776('0x69'):if(_0x4537cc[_0x4776('0x6a')]==='$substring'){if(_0x4537cc['value'][_0x4776('0x6b')]('\x20')[_0x4776('0x48')]>0x1){_0x34a2a5[_0x549ee7](_0x4776('0x6c'),qs['getFullTextValue'](_0x4537cc[_0x4776('0x65')]),null);}else{var _0x1e82f1='%'+_0x4537cc[_0x4776('0x65')]+'%';_0x34a2a5[_0x549ee7](_0x4776('0x6d'),_0x1e82f1,_0x1e82f1,_0x1e82f1);}}else{_0x49c7b0=_['find'](_0x1179c4,['name',_0x4776('0x6e')]);_0x4537cc[_0x4776('0x4f')]=_0x4776('0x6e');_0x338da7=as[_0x4776('0x6f')](_0x1ea373,_0x49c7b0[_0x4776('0x3f')],_0x4537cc);_0x34a2a5[_0x549ee7](_0x338da7['text'],_0x338da7[_0x4776('0x65')][_0x4776('0x70')],_0x338da7['value']['end']);}break;case _0x4776('0x71'):var _0x429069=_0x4537cc[_0x4776('0x65')][_0x4776('0x6b')](',')[_0x4776('0x30')](function(_0x48f00d){return Number(_0x48f00d);});_0x429069[_0x4776('0x34')](function(_0x13eb11){_0x4cecf8['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x13eb11+',%');});_0xd31b5e=_[_0x4776('0x72')](_0xd31b5e,_0x429069);break;case'User':if(_0x4537cc[_0x4776('0x6a')]===_0x4776('0x73')){_0x34a2a5[_0x549ee7](_0x4776('0x74'),'%'+_0x4537cc[_0x4776('0x65')]+'%',null);}else{_0x49c7b0=_[_0x4776('0x63')](_0x1179c4,['name','UserId']);_0x4537cc[_0x4776('0x4f')]='UserId';_0x338da7=as[_0x4776('0x6f')](_0x1ea373,_0x49c7b0[_0x4776('0x3f')],_0x4537cc);_0x34a2a5[_0x549ee7](_0x338da7[_0x4776('0x75')],_0x338da7[_0x4776('0x65')]['start'],_0x338da7[_0x4776('0x65')][_0x4776('0x21')]);}break;case _0x4776('0x76'):_0x338da7=as[_0x4776('0x6f')]('me',null,_0x4537cc);_0x34a2a5[_0x549ee7](_0x338da7[_0x4776('0x75')],_0x338da7[_0x4776('0x65')][_0x4776('0x70')],_0x338da7['value'][_0x4776('0x21')]);break;}}else{var _0x338da7=as[_0x4776('0x6f')](_0x1ea373,_0x49c7b0[_0x4776('0x3f')],_0x4537cc);_0x34a2a5[_0x549ee7](_0x338da7[_0x4776('0x75')],_0x338da7[_0x4776('0x65')][_0x4776('0x70')],_0x338da7['value'][_0x4776('0x21')]);}}}else{var _0x1ecb17=_(_0x2625da[_0x4776('0x42')])[_0x4776('0x43')]()['map'](function(_0x5ee2fd){return _[_0x4776('0x77')](_0x1179c4,[_0x4776('0x2d'),_0x5ee2fd])?_0x5ee2fd:undefined;})[_0x4776('0x78')]()['value']();if(!_[_0x4776('0x79')](_0x1ecb17)){_0x1ecb17[_0x4776('0x34')](function(_0x34bffa){if(_0x34bffa===_0x4776('0x7a')){_0x26d07f[_0x4776('0x4c')](_0x4776('0x7b'),[][_0x4776('0x7c')](_0x2625da[_0x4776('0x42')][_0x34bffa]));}else if(_0x34bffa==='createdAt'){var _0x129930=JSON[_0x4776('0x7d')](_0x2625da['query'][_0x34bffa])[_0x4776('0x7e')];var _0x52e4d3=JSON[_0x4776('0x7d')](_0x2625da[_0x4776('0x42')][_0x34bffa])[_0x4776('0x7f')];_0x26d07f[_0x4776('0x4c')](_0x4776('0x80'),_0x129930,_0x52e4d3);}else{if(_0x2625da[_0x4776('0x42')][_0x34bffa]==='null'){_0x26d07f[_0x4776('0x4c')]('i.'+_0x34bffa+_0x4776('0x81'));}else{_0x26d07f[_0x4776('0x4c')]('i.'+_0x34bffa+_0x4776('0x82'),_0x2625da['query'][_0x34bffa]);}}});}if(_0x2625da['query']['read']){if(_0x2625da['query'][_0x4776('0x83')]==0x1){_0x26d07f[_0x4776('0x67')](_0x4776('0x84'));}else{_0x26d07f[_0x4776('0x67')](_0x4776('0x85'));}}if(_0x2625da['query'][_0x4776('0x86')]){_0xd31b5e=_[_0x4776('0x87')](_0x2625da[_0x4776('0x42')][_0x4776('0x86')])?_0x2625da[_0x4776('0x42')][_0x4776('0x86')]:new Array(_0x2625da[_0x4776('0x42')][_0x4776('0x86')]);_0xd31b5e['forEach'](function(_0x4de351){_0x4cecf8['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x4de351+',%');});}if(_0x2625da[_0x4776('0x42')][_0x4776('0x88')]){var _0x513f0c=_0x2625da['query'][_0x4776('0x88')][_0x4776('0x89')]('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs['isNumeric'](_0x513f0c)){_0x34a2a5['or'](_0x4776('0x8a'),_0x513f0c+'%')['or'](_0x4776('0x8b'),_0x513f0c+'%');}_0x34a2a5['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x513f0c+'%');}}_0x26d07f[_0x4776('0x4c')](_0x34a2a5);_0x26d07f[_0x4776('0x8c')]('i.id');var _0x3f6332={'type':db['Sequelize'][_0x4776('0x8d')]['SELECT'],'raw':!![]};var _0x324e4b=_0x26d07f['clone']();_0x324e4b[_0x4776('0x4f')]('i.id');_0x324e4b['field'](_0x4776('0x8e'),'unreadMessages');if(_0x1637d9[_0x4776('0x8f')]){_0x1637d9[_0x4776('0x8f')][_0x4776('0x34')](function(_0xc451bf){var _0x34e18a=_0xc451bf[0x0]==='contactName'?_0xc451bf[0x0]:'i.'+_0xc451bf[0x0];_0x26d07f['order'](_0x34e18a,_0xc451bf[0x1]===_0x4776('0x90')?![]:!![]);});}if(!_[_0x4776('0x79')](_0xd31b5e)){_0x26d07f[_0x4776('0x67')](_0x4cecf8);_0x324e4b[_0x4776('0x4c')](_0x4776('0x91'),_0xd31b5e);}BPromise[_0x4776('0x92')]()[_0x4776('0x29')](function(){if(!_0x50cb2d){if(_0x2625da[_0x4776('0x42')]['FaxAccountId'])return;_0x324e4b[_0x4776('0x4c')](_0x4776('0x93'));_0x26d07f[_0x4776('0x4c')](_0x4776('0x93'));return;}if(_0x2625da['user'][_0x4776('0x94')]!==_0x4776('0x95'))return;return _0x2625da['user'][_0x4776('0x96')]({'attributes':['id'],'raw':!![]})[_0x4776('0x29')](function(_0x4de273){if(_['isEmpty'](_0x4de273)){_0x324e4b[_0x4776('0x4c')]('i.FaxAccountId\x20IS\x20NULL');_0x26d07f[_0x4776('0x4c')](_0x4776('0x97'));}else{_0x324e4b[_0x4776('0x4c')](_0x4776('0x7b'),_[_0x4776('0x30')](_0x4de273,'id'));_0x26d07f[_0x4776('0x4c')](_0x4776('0x7b'),_[_0x4776('0x30')](_0x4de273,'id'));}});})[_0x4776('0x29')](function(){if(_0x2625da[_0x4776('0x98')][_0x4776('0x94')]===_0x4776('0x95')&&!_0x50cb2d&&!_0x2625da[_0x4776('0x42')][_0x4776('0x7a')])return[];return db[_0x4776('0x99')]['query'](_0x324e4b[_0x4776('0x9a')](),_0x3f6332);})[_0x4776('0x29')](function(_0x3e41b7){_0x220daf[_0x4776('0x25')]=_0x3e41b7['length'];if(_0x220daf[_0x4776('0x25')]===0x0)return[];return db['sequelize'][_0x4776('0x42')](_0xa6a618[_0x4776('0x9a')](),_0x3f6332)['then'](function(_0x2170ea){_0x83257d=_['keyBy'](_0x2170ea,'id');_0x3f6332=_[_0x4776('0x9b')](_0x3f6332,{'model':db['FaxInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x2625da[_0x4776('0x42')][_0x4776('0x47')]){_0x1637d9[_0x4776('0x46')]['forEach'](function(_0x557b63){_0x26d07f['field']('i.'+_0x557b63);});}else{_0x26d07f[_0x4776('0x4f')](_0x4776('0x8e'),'unreadMessages');_0x26d07f[_0x4776('0x4f')]('a.key',_0x4776('0x9c'));_0x26d07f[_0x4776('0x4f')](_0x4776('0x9d'),_0x4776('0x9e'));_0x26d07f[_0x4776('0x4f')](_0x4776('0x9f'),_0x4776('0xa0'));_0x26d07f[_0x4776('0x4f')]('i.*');_0x26d07f['field']('c.firstName','Contact.firstName');_0x26d07f[_0x4776('0x4f')](_0x4776('0xa1'),_0x4776('0xa2'));_0x26d07f[_0x4776('0x4f')](_0x4776('0xa3'),_0x4776('0xa4'));_0x26d07f[_0x4776('0x4f')](_0x4776('0xa5'),_0x4776('0xa6'));_0x26d07f[_0x4776('0x4f')](_0x4776('0xa7'),_0x4776('0xa8'));_0x26d07f[_0x4776('0x4f')](_0x4776('0xa9'),_0x4776('0xaa'));_0x26d07f[_0x4776('0x4f')](_0x4776('0xab'),_0x4776('0xac'));_0x26d07f['field'](_0x4776('0xad'),_0x4776('0xae'));_0x26d07f[_0x4776('0x4f')](_0x4776('0xaf'),_0x4776('0x32'));}if(_0x1637d9[_0x4776('0x4a')])_0x26d07f['limit'](_0x1637d9[_0x4776('0x4a')]);if(_0x1637d9[_0x4776('0x23')])_0x26d07f[_0x4776('0x23')](_0x1637d9['offset']);return db[_0x4776('0x99')][_0x4776('0x42')](_0x26d07f[_0x4776('0x9a')](),_0x3f6332);})[_0x4776('0x29')](function(_0x85d7db){if(_0x85d7db[_0x4776('0x48')]>0x0)_0x17e18b['where'](_0x4776('0xb0'),_[_0x4776('0x30')](_0x85d7db,'id'));return db[_0x4776('0x99')][_0x4776('0x42')](_0x17e18b[_0x4776('0x9a')](),_0x3f6332)[_0x4776('0x29')](function(_0x3ac706){var _0x52aa1c=_[_0x4776('0xb1')](_0x3ac706,_0x4776('0xb2'));var _0x1b1f2b=[];_0x85d7db[_0x4776('0x34')](function(_0x8fec5e){_0x1b1f2b[_0x4776('0x35')](updateFaxInteraction(_0x8fec5e,_0x83257d,_0x52aa1c));});return BPromise[_0x4776('0xb3')](_0x1b1f2b);});});})['then'](function(_0x539e9c){_0x220daf[_0x4776('0xb4')]=_0x539e9c;return _0x220daf;})[_0x4776('0x29')](respondWithFilteredResult(_0x4dd97d,_0x1637d9))[_0x4776('0xb5')](handleError(_0x4dd97d,null));};exports[_0x4776('0xb6')]=function(_0x4c00ad,_0x3145d0){var _0x1661e1={'raw':![],'where':{'id':_0x4c00ad[_0x4776('0xb7')]['id']}},_0x1266d6={};_0x1266d6[_0x4776('0x41')]=_[_0x4776('0x43')](db[_0x4776('0xb8')][_0x4776('0x3d')]);_0x1266d6[_0x4776('0x42')]=_[_0x4776('0x43')](_0x4c00ad[_0x4776('0x42')]);_0x1266d6['filters']=_[_0x4776('0x45')](_0x1266d6[_0x4776('0x41')],_0x1266d6[_0x4776('0x42')]);_0x1661e1['attributes']=_[_0x4776('0x45')](_0x1266d6['model'],qs['fields'](_0x4c00ad['query'][_0x4776('0x47')]));_0x1661e1[_0x4776('0x46')]=_0x1661e1[_0x4776('0x46')][_0x4776('0x48')]?_0x1661e1[_0x4776('0x46')]:_0x1266d6[_0x4776('0x41')];if(_0x4c00ad[_0x4776('0x42')]['includeAll']){_0x1661e1[_0x4776('0xb9')]=[{'all':!![]}];}_0x1661e1=_['merge']({},_0x1661e1,_0x4c00ad[_0x4776('0xba')]);return db[_0x4776('0xb8')][_0x4776('0x63')](_0x1661e1)[_0x4776('0x29')](handleEntityNotFound(_0x3145d0,null))[_0x4776('0x29')](respondWithResult(_0x3145d0,null))[_0x4776('0xb5')](handleError(_0x3145d0,null));};exports[_0x4776('0xbb')]=function(_0x59d21f,_0x290db2){return db['FaxInteraction'][_0x4776('0xbb')](_0x59d21f[_0x4776('0x76')],{})[_0x4776('0x29')](respondWithResult(_0x290db2,0xc9))[_0x4776('0xb5')](handleError(_0x290db2,null));};exports['update']=function(_0xdb37a7,_0x1849d7){if(_0xdb37a7[_0x4776('0x76')]['id']){delete _0xdb37a7[_0x4776('0x76')]['id'];}return db[_0x4776('0xb8')][_0x4776('0x63')]({'where':{'id':_0xdb37a7[_0x4776('0xb7')]['id']}})[_0x4776('0x29')](handleEntityNotFound(_0x1849d7,null))[_0x4776('0x29')](saveUpdates(_0xdb37a7[_0x4776('0x76')],null))[_0x4776('0x29')](respondWithResult(_0x1849d7,null))[_0x4776('0xb5')](handleError(_0x1849d7,null));};exports[_0x4776('0x2a')]=function(_0x542150,_0x262f9a){return db[_0x4776('0xb8')][_0x4776('0x63')]({'where':{'id':_0x542150[_0x4776('0xb7')]['id']}})['then'](handleEntityNotFound(_0x262f9a,null))[_0x4776('0x29')](removeEntity(_0x262f9a,null))[_0x4776('0xb5')](handleError(_0x262f9a,null));};exports[_0x4776('0xbc')]=function(_0x475fd3,_0x2e8de1){return db[_0x4776('0xb8')][_0x4776('0xbc')]()[_0x4776('0x29')](respondWithResult(_0x2e8de1,null))[_0x4776('0xb5')](handleError(_0x2e8de1,null));};exports['addMessage']=function(_0x40957b,_0x5b02b1,_0x157190){return db[_0x4776('0xbd')][_0x4776('0x63')]({'where':{'id':_0x40957b['params']['id']}})['then'](handleEntityNotFound(_0x5b02b1,null))[_0x4776('0x29')](function(_0x13f28e){if(_0x13f28e){return _0x13f28e['addMessage'](_0x40957b['body'][_0x4776('0xbe')],_[_0x4776('0xbf')](_0x40957b[_0x4776('0x76')],[_0x4776('0xbe'),'id'])||{});}})[_0x4776('0x29')](respondWithResult(_0x5b02b1,null))[_0x4776('0xb5')](handleError(_0x5b02b1,null));};exports[_0x4776('0xc0')]=function(_0x2e6427,_0x7dd36e,_0x4905b2){var _0xb00640={'raw':![],'where':{}};var _0x37fe90={};var _0x314987={'count':0x0,'rows':[]};return db[_0x4776('0xb8')][_0x4776('0xc1')]({'where':{'id':_0x2e6427[_0x4776('0xb7')]['id']}})[_0x4776('0x29')](handleEntityNotFound(_0x7dd36e,null))[_0x4776('0x29')](function(_0x599076){if(_0x599076){_0x37fe90[_0x4776('0x41')]=_['keys'](db[_0x4776('0xbd')][_0x4776('0x3d')]);_0x37fe90[_0x4776('0x42')]=_['keys'](_0x2e6427[_0x4776('0x42')]);_0x37fe90['filters']=_[_0x4776('0x45')](_0x37fe90[_0x4776('0x41')],_0x37fe90[_0x4776('0x42')]);_0xb00640[_0x4776('0x46')]=_[_0x4776('0x45')](_0x37fe90[_0x4776('0x41')],qs['fields'](_0x2e6427['query']['fields']));_0xb00640[_0x4776('0x46')]=_0xb00640[_0x4776('0x46')][_0x4776('0x48')]?_0xb00640[_0x4776('0x46')]:_0x37fe90[_0x4776('0x41')];if(!_0x2e6427[_0x4776('0x42')]['hasOwnProperty'](_0x4776('0xc2'))){_0xb00640[_0x4776('0x4a')]=qs[_0x4776('0x4a')](_0x2e6427[_0x4776('0x42')][_0x4776('0x4a')]);_0xb00640['offset']=qs['offset'](_0x2e6427[_0x4776('0x42')][_0x4776('0x23')]);}_0xb00640[_0x4776('0x8f')]=qs[_0x4776('0x4b')](_0x2e6427[_0x4776('0x42')][_0x4776('0x4b')]);_0xb00640[_0x4776('0x4c')]=qs[_0x4776('0x44')](_[_0x4776('0x4d')](_0x2e6427[_0x4776('0x42')],_0x37fe90[_0x4776('0x44')]));_0xb00640[_0x4776('0x4c')][_0x4776('0xb2')]=_0x599076['id'];if(_0x2e6427[_0x4776('0x42')]['filter']){_0xb00640[_0x4776('0x4c')]=_[_0x4776('0x9b')](_0xb00640[_0x4776('0x4c')],{'$or':_[_0x4776('0x30')](_0xb00640[_0x4776('0x46')],function(_0x210d60){var _0x3c52f9={};_0x3c52f9[_0x210d60]={'$like':'%'+_0x2e6427[_0x4776('0x42')][_0x4776('0x88')]+'%'};return _0x3c52f9;})});}if(_0x2e6427[_0x4776('0x42')]['$gte']){var _0x48c400=_0x2e6427[_0x4776('0x42')][_0x4776('0x7e')][_0x4776('0x6b')](',');var _0x43b923={};_0x43b923[_0x48c400[0x0]]={'$gte':moment(_0x48c400[0x1])[_0x4776('0xc3')](_0x4776('0xc4'))};_0xb00640['where']=_[_0x4776('0x9b')](_0xb00640[_0x4776('0x4c')],_0x43b923);}_0xb00640=_[_0x4776('0x9b')]({},_0xb00640,_0x2e6427[_0x4776('0xba')]);return db[_0x4776('0xbd')][_0x4776('0x25')]({'where':_0xb00640['where']})[_0x4776('0x29')](function(_0x240142){_0x314987[_0x4776('0x25')]=_0x240142;if(_0x2e6427[_0x4776('0x42')][_0x4776('0xc5')]){_0xb00640[_0x4776('0xb9')]=[{'all':!![]}];}return db[_0x4776('0xbd')]['findAll'](_0xb00640);})[_0x4776('0x29')](function(_0x2990a9){_0x314987[_0x4776('0xb4')]=_0x2990a9;return _0x314987;});}})[_0x4776('0x29')](respondWithFilteredResult(_0x7dd36e,_0xb00640))['catch'](handleError(_0x7dd36e,null));};exports[_0x4776('0xc6')]=function(_0x315e69,_0x5b02b0,_0x3ab1a2){return db[_0x4776('0xb8')]['find']({'where':{'id':_0x315e69[_0x4776('0xb7')]['id']}})[_0x4776('0x29')](handleEntityNotFound(_0x5b02b0,null))['then'](function(_0x3d30ad){if(_0x3d30ad){return _0x3d30ad['setTags'](_0x315e69[_0x4776('0x76')]['ids'],_['omit'](_0x315e69['body'],[_0x4776('0xbe'),'id'])||{})['spread'](function(){return db[_0x4776('0x71')][_0x4776('0xc7')]({'attributes':['id',_0x4776('0x2d'),_0x4776('0x50')],'where':{'id':_0x315e69[_0x4776('0x76')][_0x4776('0xbe')]}});})[_0x4776('0x29')](function(_0x55c049){socket[_0x4776('0xc8')](_0x4776('0xc9'),{'id':Number(_0x315e69[_0x4776('0xb7')]['id']),'tags':_0x55c049||[]});return{'id':Number(_0x315e69[_0x4776('0xb7')]['id']),'tags':_0x55c049||[]};});}})[_0x4776('0x29')](respondWithResult(_0x5b02b0,null))[_0x4776('0xb5')](handleError(_0x5b02b0,null));};exports[_0x4776('0xca')]=function(_0x1269dc,_0x23a21b,_0x151973){return db[_0x4776('0xb8')][_0x4776('0x63')]({'where':{'id':_0x1269dc[_0x4776('0xb7')]['id']}})[_0x4776('0x29')](handleEntityNotFound(_0x23a21b,null))[_0x4776('0x29')](function(_0x5a27ba){if(_0x5a27ba){return _0x5a27ba[_0x4776('0xca')](_0x1269dc[_0x4776('0x42')]['ids']);}})[_0x4776('0x29')](respondWithStatusCode(_0x23a21b,null))[_0x4776('0xb5')](handleError(_0x23a21b,null));};exports[_0x4776('0xcb')]=function(_0x197432,_0x3c9ee0){var _0x283ef0=moment()[_0x4776('0xcc')]()['toString']();var _0xf555a0=path[_0x4776('0xcd')](config[_0x4776('0xce')],_0x4776('0xcf'),'files',_0x4776('0xd0'));var _0x36afe1=path[_0x4776('0xcd')](config[_0x4776('0xce')],'server','files',_0x4776('0xd1'));var _0x40cf9a=path[_0x4776('0xcd')](_0xf555a0,_0x283ef0);var _0x4f741d=util['format'](_0x4776('0xd2'),_0x197432['params']['id'],_0x283ef0);var _0x168fda=path[_0x4776('0xcd')](_0xf555a0,_0x4f741d);var _0x1fcbeb=[];_0x1fcbeb[_0x4776('0x35')]({'model':db[_0x4776('0xd3')],'as':'Attachment','raw':!![]});var _0x35b767=[{'model':db[_0x4776('0xbd')],'as':_0x4776('0xd4'),'attributes':['id',_0x4776('0x76'),_0x4776('0xd5')],'include':_0x1fcbeb}];return db[_0x4776('0xb8')][_0x4776('0x63')]({'where':{'id':_0x197432[_0x4776('0xb7')]['id']},'include':_0x35b767})[_0x4776('0x29')](handleEntityNotFound(_0x3c9ee0,null))[_0x4776('0x29')](function(_0x58ddcd){if(_0x58ddcd&&_0x58ddcd[_0x4776('0xd4')]){var _0xba7a75=_0x58ddcd[_0x4776('0xd6')]({'plain':!![]});fs[_0x4776('0xd7')](_0x40cf9a);for(var _0x2a2619=0x0;_0x2a2619<_0xba7a75[_0x4776('0xd4')]['length'];_0x2a2619++){var _0x404c76=_0xba7a75[_0x4776('0xd4')][_0x2a2619]['Attachment'];if(_0x404c76){var _0x442f7a=path[_0x4776('0xcd')](_0x36afe1,_0x404c76[_0x4776('0xd8')]);if(fs[_0x4776('0xd9')](_0x442f7a)){fs[_0x4776('0xda')](_0x442f7a)['pipe'](fs[_0x4776('0xdb')](path[_0x4776('0xcd')](_0x40cf9a,_0x404c76[_0x4776('0xd8')])));}}}return BPromise[_0x4776('0x92')]()['then'](function(){return new BPromise(function(_0x3e29b,_0x1eb298){zipdir(_0x40cf9a,{'saveTo':_0x168fda},function(_0x403552,_0xb4106){if(_0x403552)return _0x1eb298(_0x403552);return _0x3e29b(_0xb4106);});})[_0x4776('0x29')](function(){return new BPromise(function(_0x2733bf,_0xfc57fa){rimraf(_0x40cf9a,function(_0x38cbbc){if(_0x38cbbc)_0xfc57fa(_0x38cbbc);return _0x2733bf();});});})[_0x4776('0x29')](function(){return _0x3c9ee0[_0x4776('0xcb')](_0x168fda,_0x4f741d,function(_0x4d9bec){if(_0x4d9bec){console[_0x4776('0xdc')](_0x4776('0xdd'),_0x4d9bec);}else{fs[_0x4776('0xde')](_0x168fda);}});});});}else{return _0x3c9ee0[_0x4776('0x2b')](0xc8);}})[_0x4776('0xb5')](handleError(_0x3c9ee0,null));};