f0e4fe0cd618fd8357f7c7703582d6d9da24e52f
[motion2.git] / server / api / faxMessage / faxMessage.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 _0xc145=['save','update','destroy','name','send','index','map','FaxMessage','rawAttributes','fieldName','type','key','model','keys','query','filters','attributes','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','findAll','rows','show','intersection','fields','find','body','params','describe','fax-interactions','accept','fax','read','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','CmContact','get','FaxInteraction','FaxInteractionId','isNil','read1stAt','[FAXMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','event','EventManager','acceptmessage','interaction','[FAXMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','rejectMessage','rejectmessage','create','Attachment','findOne','SendFax','FaxAccountId','/var/opt/motion2/server/files/attachments/%s','download','join','root','server','files','attachments','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','jayson/promise','client','http','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','request','then','request\x20sent','FaxMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','FaxMessage,\x20%s,\x20%s','info','catch','sendStatus','status','end','json','count','offset','limit','set','reject'];(function(_0x4ff09b,_0x53f67d){var _0x3f5c2e=function(_0x124592){while(--_0x124592){_0x4ff09b['push'](_0x4ff09b['shift']());}};_0x3f5c2e(++_0x53f67d);}(_0xc145,0x1d8));var _0x5c14=function(_0x3460fa,_0x2bb992){_0x3460fa=_0x3460fa-0x0;var _0x4d13fe=_0xc145[_0x3460fa];return _0x4d13fe;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x5c14('0x0'));var rimraf=require(_0x5c14('0x1'));var zipdir=require(_0x5c14('0x2'));var jsonpatch=require(_0x5c14('0x3'));var rp=require(_0x5c14('0x4'));var moment=require(_0x5c14('0x5'));var BPromise=require(_0x5c14('0x6'));var Mustache=require(_0x5c14('0x7'));var util=require(_0x5c14('0x8'));var path=require(_0x5c14('0x9'));var sox=require(_0x5c14('0xa'));var csv=require(_0x5c14('0xb'));var ejs=require(_0x5c14('0xc'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x5c14('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x5c14('0xb'));var querystring=require(_0x5c14('0xe'));var Papa=require(_0x5c14('0xf'));var Redis=require('ioredis');var authService=require(_0x5c14('0x10'));var qs=require(_0x5c14('0x11'));var as=require(_0x5c14('0x12'));var hardwareService=require(_0x5c14('0x13'));var logger=require(_0x5c14('0x14'))('api');var utils=require('../../config/utils');var config=require(_0x5c14('0x15'));var db=require(_0x5c14('0x16'))['db'];config[_0x5c14('0x17')]=_[_0x5c14('0x18')](config[_0x5c14('0x17')],{'host':_0x5c14('0x19'),'port':0x18eb});var socket=require(_0x5c14('0x1a'))(new Redis(config[_0x5c14('0x17')]));require('./faxMessage.socket')[_0x5c14('0x1b')](socket);var jayson=require(_0x5c14('0x1c'));var client=jayson[_0x5c14('0x1d')][_0x5c14('0x1e')]({'port':0x232c});var client9002=jayson[_0x5c14('0x1d')][_0x5c14('0x1e')]({'port':0x232a});function checkPasswordPattern(_0x20fa97,_0x11297e,_0x486536){if(_0x486536){var _0x181f67=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x181f67['test'](_0x11297e)){return _0x20fa97;}else{throw new db['Sequelize'][(_0x5c14('0x1f'))](_0x5c14('0x20'));}}else{return _0x20fa97;}}function respondWithRpcPromise(_0x19fbb3,_0x195b70,_0x41e340,_0xcbf9b4){return new BPromise(function(_0x10bf4e,_0x152ad8){var _0x214f4d=_0xcbf9b4||client;return _0x214f4d[_0x5c14('0x21')](_0x19fbb3,_0x41e340)[_0x5c14('0x22')](function(_0x440f4c){logger['info']('FaxMessage,\x20%s,\x20%s',_0x195b70,_0x5c14('0x23'));logger['debug'](_0x5c14('0x24'),_0x195b70,'request\x20sent',JSON[_0x5c14('0x25')](_0x440f4c));if(_0x440f4c[_0x5c14('0x26')]){if(_0x440f4c[_0x5c14('0x26')]['code']===0x1f4){logger[_0x5c14('0x26')]('FaxMessage,\x20%s,\x20%s',_0x195b70,_0x440f4c[_0x5c14('0x26')][_0x5c14('0x27')]);return _0x152ad8(_0x440f4c['error'][_0x5c14('0x27')]);}logger[_0x5c14('0x26')](_0x5c14('0x28'),_0x195b70,_0x440f4c['error'][_0x5c14('0x27')]);return _0x10bf4e(_0x440f4c[_0x5c14('0x26')]['message']);}else{logger[_0x5c14('0x29')]('FaxMessage,\x20%s,\x20%s',_0x195b70,_0x5c14('0x23'));_0x10bf4e(_0x440f4c['result'][_0x5c14('0x27')]);}})[_0x5c14('0x2a')](function(_0x112696){logger[_0x5c14('0x26')](_0x5c14('0x28'),_0x195b70,_0x112696);_0x152ad8(_0x112696);});});}function respondWithStatusCode(_0x54180c,_0x2d857e){_0x2d857e=_0x2d857e||0xcc;return function(_0x25fd4c){if(_0x25fd4c){return _0x54180c[_0x5c14('0x2b')](_0x2d857e);}return _0x54180c[_0x5c14('0x2c')](_0x2d857e)[_0x5c14('0x2d')]();};}function respondWithResult(_0x241c85,_0xb58bac){_0xb58bac=_0xb58bac||0xc8;return function(_0x49a2f6){if(_0x49a2f6){return _0x241c85[_0x5c14('0x2c')](_0xb58bac)[_0x5c14('0x2e')](_0x49a2f6);}};}function respondWithFilteredResult(_0x377fb4,_0x46e361){return function(_0x3290d9){if(_0x3290d9){var _0x448877=_0x3290d9[_0x5c14('0x2f')],_0x1cdc69=_0x46e361[_0x5c14('0x30')],_0x55db5d=_0x46e361[_0x5c14('0x30')]+_0x46e361[_0x5c14('0x31')],_0xc5a5bc;if(_0x55db5d>=_0x448877){_0x55db5d=_0x448877;_0xc5a5bc=0xc8;}else{_0xc5a5bc=0xce;}_0x377fb4['status'](_0xc5a5bc);return _0x377fb4[_0x5c14('0x32')]('Content-Range',_0x1cdc69+'-'+_0x55db5d+'/'+_0x448877)['json'](_0x3290d9);}return null;};}function patchUpdates(_0x12695a){return function(_0x127588){try{jsonpatch['apply'](_0x127588,_0x12695a,!![]);}catch(_0x19b9c5){return BPromise[_0x5c14('0x33')](_0x19b9c5);}return _0x127588[_0x5c14('0x34')]();};}function saveUpdates(_0x42603b,_0x6a2bb2){return function(_0x54ac06){if(_0x54ac06){return _0x54ac06[_0x5c14('0x35')](_0x42603b)[_0x5c14('0x22')](function(_0xc993fb){return _0xc993fb;});}return null;};}function removeEntity(_0x5b8c5e,_0x39cd87){return function(_0x5c9e83){if(_0x5c9e83){return _0x5c9e83[_0x5c14('0x36')]()[_0x5c14('0x22')](function(){_0x5b8c5e['status'](0xcc)[_0x5c14('0x2d')]();});}};}function handleEntityNotFound(_0x50ad26,_0x3d2bbc){return function(_0x47bc06){if(!_0x47bc06){_0x50ad26[_0x5c14('0x2b')](0x194);}return _0x47bc06;};}function handleError(_0x302f60,_0x18ddce){_0x18ddce=_0x18ddce||0x1f4;return function(_0x9d1091){logger[_0x5c14('0x26')](_0x9d1091['stack']);if(_0x9d1091['name']){delete _0x9d1091[_0x5c14('0x37')];}_0x302f60[_0x5c14('0x2c')](_0x18ddce)[_0x5c14('0x38')](_0x9d1091);};}exports[_0x5c14('0x39')]=function(_0x1ae52e,_0x837957){var _0x47675a={},_0x591f2d={},_0x3cca05={'count':0x0,'rows':[]};var _0x5f3320=_[_0x5c14('0x3a')](db[_0x5c14('0x3b')][_0x5c14('0x3c')],function(_0x19f6c9){return{'name':_0x19f6c9[_0x5c14('0x3d')],'type':_0x19f6c9[_0x5c14('0x3e')][_0x5c14('0x3f')]};});_0x591f2d[_0x5c14('0x40')]=_['map'](_0x5f3320,_0x5c14('0x37'));_0x591f2d['query']=_[_0x5c14('0x41')](_0x1ae52e[_0x5c14('0x42')]);_0x591f2d[_0x5c14('0x43')]=_['intersection'](_0x591f2d[_0x5c14('0x40')],_0x591f2d[_0x5c14('0x42')]);_0x47675a[_0x5c14('0x44')]=_['intersection'](_0x591f2d['model'],qs['fields'](_0x1ae52e[_0x5c14('0x42')]['fields']));_0x47675a['attributes']=_0x47675a[_0x5c14('0x44')]['length']?_0x47675a[_0x5c14('0x44')]:_0x591f2d[_0x5c14('0x40')];if(!_0x1ae52e[_0x5c14('0x42')][_0x5c14('0x45')](_0x5c14('0x46'))){_0x47675a[_0x5c14('0x31')]=qs[_0x5c14('0x31')](_0x1ae52e[_0x5c14('0x42')][_0x5c14('0x31')]);_0x47675a[_0x5c14('0x30')]=qs[_0x5c14('0x30')](_0x1ae52e[_0x5c14('0x42')]['offset']);}_0x47675a[_0x5c14('0x47')]=qs[_0x5c14('0x48')](_0x1ae52e[_0x5c14('0x42')][_0x5c14('0x48')]);_0x47675a[_0x5c14('0x49')]=qs['filters'](_[_0x5c14('0x4a')](_0x1ae52e['query'],_0x591f2d['filters']),_0x5f3320);if(_0x1ae52e['query']['filter']){_0x47675a[_0x5c14('0x49')]=_[_0x5c14('0x4b')](_0x47675a[_0x5c14('0x49')],{'$or':_[_0x5c14('0x3a')](_0x5f3320,function(_0x5a7310){if(_0x5a7310[_0x5c14('0x3e')]!==_0x5c14('0x4c')){var _0x3747e1={};_0x3747e1[_0x5a7310[_0x5c14('0x37')]]={'$like':'%'+_0x1ae52e[_0x5c14('0x42')][_0x5c14('0x4d')]+'%'};return _0x3747e1;}})});}_0x47675a=_[_0x5c14('0x4b')]({},_0x47675a,_0x1ae52e[_0x5c14('0x4e')]);var _0x1abb05={'where':_0x47675a['where']};return db[_0x5c14('0x3b')]['count'](_0x1abb05)[_0x5c14('0x22')](function(_0xf0f756){_0x3cca05[_0x5c14('0x2f')]=_0xf0f756;if(_0x1ae52e['query'][_0x5c14('0x4f')]){_0x47675a['include']=[{'all':!![]}];}return db[_0x5c14('0x3b')][_0x5c14('0x50')](_0x47675a);})['then'](function(_0x320f49){_0x3cca05[_0x5c14('0x51')]=_0x320f49;return _0x3cca05;})['then'](respondWithFilteredResult(_0x837957,_0x47675a))[_0x5c14('0x2a')](handleError(_0x837957,null));};exports[_0x5c14('0x52')]=function(_0x10d347,_0x4fa88c){var _0xf7c104={'raw':!![],'where':{'id':_0x10d347['params']['id']}},_0x4d1cfc={};_0x4d1cfc[_0x5c14('0x40')]=_[_0x5c14('0x41')](db[_0x5c14('0x3b')][_0x5c14('0x3c')]);_0x4d1cfc[_0x5c14('0x42')]=_['keys'](_0x10d347['query']);_0x4d1cfc[_0x5c14('0x43')]=_[_0x5c14('0x53')](_0x4d1cfc[_0x5c14('0x40')],_0x4d1cfc[_0x5c14('0x42')]);_0xf7c104[_0x5c14('0x44')]=_[_0x5c14('0x53')](_0x4d1cfc[_0x5c14('0x40')],qs[_0x5c14('0x54')](_0x10d347[_0x5c14('0x42')][_0x5c14('0x54')]));_0xf7c104[_0x5c14('0x44')]=_0xf7c104[_0x5c14('0x44')]['length']?_0xf7c104[_0x5c14('0x44')]:_0x4d1cfc[_0x5c14('0x40')];if(_0x10d347[_0x5c14('0x42')][_0x5c14('0x4f')]){_0xf7c104['include']=[{'all':!![]}];}_0xf7c104=_[_0x5c14('0x4b')]({},_0xf7c104,_0x10d347['options']);return db[_0x5c14('0x3b')][_0x5c14('0x55')](_0xf7c104)[_0x5c14('0x22')](handleEntityNotFound(_0x4fa88c,null))[_0x5c14('0x22')](respondWithResult(_0x4fa88c,null))[_0x5c14('0x2a')](handleError(_0x4fa88c,null));};exports[_0x5c14('0x35')]=function(_0x9ea9c2,_0x487433){if(_0x9ea9c2[_0x5c14('0x56')]['id']){delete _0x9ea9c2[_0x5c14('0x56')]['id'];}return db[_0x5c14('0x3b')][_0x5c14('0x55')]({'where':{'id':_0x9ea9c2[_0x5c14('0x57')]['id']}})[_0x5c14('0x22')](handleEntityNotFound(_0x487433,null))[_0x5c14('0x22')](saveUpdates(_0x9ea9c2[_0x5c14('0x56')],null))[_0x5c14('0x22')](respondWithResult(_0x487433,null))[_0x5c14('0x2a')](handleError(_0x487433,null));};exports[_0x5c14('0x36')]=function(_0x5256ec,_0x10719f){return db[_0x5c14('0x3b')]['find']({'where':{'id':_0x5256ec[_0x5c14('0x57')]['id']}})[_0x5c14('0x22')](handleEntityNotFound(_0x10719f,null))['then'](removeEntity(_0x10719f,null))[_0x5c14('0x2a')](handleError(_0x10719f,null));};exports[_0x5c14('0x58')]=function(_0x5c48ee,_0x345c80){return db['FaxMessage'][_0x5c14('0x58')]()['then'](respondWithResult(_0x345c80,null))[_0x5c14('0x2a')](handleError(_0x345c80,null));};var interaction_log=require('../../config/logger')(_0x5c14('0x59'));exports[_0x5c14('0x5a')]=function(_0x32a31c,_0x18d7af,_0x582eeb){var _0x3d7445={'channel':_0x5c14('0x5b')};if(_0x32a31c['body']['id']){delete _0x32a31c[_0x5c14('0x56')]['id'];}_0x32a31c[_0x5c14('0x56')][_0x5c14('0x5c')]=!![];_0x32a31c[_0x5c14('0x56')]['readAt']=moment()[_0x5c14('0x5d')](_0x5c14('0x5e'));_0x32a31c[_0x5c14('0x56')][_0x5c14('0x5f')]=_0x32a31c[_0x5c14('0x56')]['UserId']||_0x32a31c[_0x5c14('0x60')]['id'];return db[_0x5c14('0x3b')][_0x5c14('0x55')]({'where':{'id':_0x32a31c[_0x5c14('0x57')]['id'],'UserId':null},'include':[{'model':db[_0x5c14('0x61')],'as':'Contact'}]})[_0x5c14('0x22')](handleEntityNotFound(_0x18d7af,null))[_0x5c14('0x22')](saveUpdates(_0x32a31c['body'],null))[_0x5c14('0x22')](function(_0x45b951){if(_0x45b951){_0x3d7445[_0x5c14('0x27')]=_0x45b951[_0x5c14('0x62')]({'plain':!![]});return db[_0x5c14('0x63')]['find']({'where':{'id':_0x45b951[_0x5c14('0x64')]}});}return null;})[_0x5c14('0x22')](handleEntityNotFound(_0x18d7af,null))[_0x5c14('0x22')](function(_0x26b62c){if(_0x26b62c){return _0x26b62c['update']({'UserId':_0x32a31c[_0x5c14('0x56')][_0x5c14('0x5f')],'read1stAt':_[_0x5c14('0x65')](_0x26b62c[_0x5c14('0x66')])?moment()[_0x5c14('0x5d')](_0x5c14('0x5e')):undefined});}return null;})['then'](function(_0x5132b1){if(_0x5132b1){_0x3d7445['interaction']=_0x5132b1[_0x5c14('0x62')]({'plain':!![]});interaction_log[_0x5c14('0x29')](_0x5c14('0x67'),_0x32a31c[_0x5c14('0x60')]['id'],_0x32a31c[_0x5c14('0x60')][_0x5c14('0x37')],_0x32a31c[_0x5c14('0x60')]['role'],_0x3d7445['interaction']['id'],_0x32a31c[_0x5c14('0x56')]?JSON[_0x5c14('0x25')](_0x32a31c['body']):'null');return respondWithRpcPromise(_0x5c14('0x68'),_0x5c14('0x69'),_0x3d7445);}return null;})['then'](function(_0x48b4c3){if(_0x48b4c3){if(_0x32a31c[_0x5c14('0x56')][_0x5c14('0x6a')]){_0x3d7445[_0x5c14('0x27')][_0x5c14('0x6b')]=util[_0x5c14('0x5d')](_0x5c14('0x6c'),_0x32a31c['user']['name']);_0x3d7445[_0x5c14('0x27')][_0x5c14('0x6d')]=_0x3d7445['channel'];_0x3d7445[_0x5c14('0x27')][_0x5c14('0x6e')]=_0x5c14('0x5a');return respondWithRpcPromise(_0x5c14('0x6f'),_0x5c14('0x6f'),{'event':_0x5c14('0x70'),'message':_0x3d7445['message']},client9002)['then'](function(){return _0x3d7445;});}return _0x3d7445;}return null;})[_0x5c14('0x22')](respondWithResult(_0x18d7af,null))[_0x5c14('0x2a')](handleError(_0x18d7af,null));};var interaction_log=require(_0x5c14('0x14'))(_0x5c14('0x59'));exports[_0x5c14('0x33')]=function(_0x5087fc,_0x47f7fc,_0x5beed6){var _0x5f29ea={'agent':{},'channel':_0x5c14('0x5b')};if(_0x5087fc[_0x5c14('0x56')]['id']){delete _0x5087fc[_0x5c14('0x56')]['id'];}_0x5087fc[_0x5c14('0x56')][_0x5c14('0x5f')]=_0x5087fc['body'][_0x5c14('0x5f')]||_0x5087fc[_0x5c14('0x60')]['id'];_0x5f29ea['agent']['id']=_0x5087fc[_0x5c14('0x56')][_0x5c14('0x5f')];return db[_0x5c14('0x3b')][_0x5c14('0x55')]({'where':{'id':_0x5087fc[_0x5c14('0x57')]['id'],'UserId':null}})[_0x5c14('0x22')](handleEntityNotFound(_0x47f7fc,null))['then'](function(_0x15faab){if(_0x15faab){_0x5f29ea['message']=_0x15faab[_0x5c14('0x62')]({'plain':!![]});return db[_0x5c14('0x63')][_0x5c14('0x55')]({'where':{'id':_0x15faab[_0x5c14('0x64')]}});}return null;})[_0x5c14('0x22')](handleEntityNotFound(_0x47f7fc,null))['then'](function(_0x3f5d8a){if(_0x3f5d8a){_0x5f29ea[_0x5c14('0x71')]=_0x3f5d8a['get']({'plain':!![]});interaction_log[_0x5c14('0x29')](_0x5c14('0x72'),_0x5087fc[_0x5c14('0x60')]['id'],_0x5087fc[_0x5c14('0x60')][_0x5c14('0x37')],_0x5087fc[_0x5c14('0x60')][_0x5c14('0x73')],_0x5f29ea[_0x5c14('0x71')]['id'],_0x5087fc[_0x5c14('0x56')]?JSON[_0x5c14('0x25')](_0x5087fc['body']):_0x5c14('0x74'));return respondWithRpcPromise('RejectMessage',_0x5c14('0x75'),_0x5f29ea);}return null;})['then'](function(_0x231287){if(_0x231287){_0x231287[_0x5c14('0x27')]['interface']=util[_0x5c14('0x5d')](_0x5c14('0x6c'),_0x5087fc[_0x5c14('0x60')][_0x5c14('0x37')]);_0x231287['message'][_0x5c14('0x6d')]=_0x5f29ea[_0x5c14('0x6d')];_0x231287[_0x5c14('0x27')]['event']=_0x5c14('0x33');respondWithRpcPromise(_0x5c14('0x6f'),_0x5c14('0x6f'),{'event':_0x5c14('0x76'),'message':_0x231287[_0x5c14('0x27')]},client9002);return _0x5f29ea;}return null;})[_0x5c14('0x22')](respondWithResult(_0x47f7fc,null))[_0x5c14('0x2a')](handleError(_0x47f7fc,null));};exports[_0x5c14('0x77')]=function(_0x4751c3,_0x4e83a6){var _0xa5526f;return db[_0x5c14('0x3b')][_0x5c14('0x77')](_0x4751c3['body'],{})['then'](function(_0x524702){_0xa5526f=_0x524702;return db['CmContact']['findOne']({'where':{'id':_0xa5526f['ContactId']}});})['then'](function(_0x13f08b){if(_[_0x5c14('0x65')](_0x13f08b)){return;}else{_0xa5526f[_0x5c14('0x5b')]=_0x13f08b[_0x5c14('0x5b')];return db[_0x5c14('0x78')][_0x5c14('0x79')]({'where':{'id':_0xa5526f['AttachmentId']}});}})[_0x5c14('0x22')](function(_0x37392a){return respondWithRpcPromise('SendFax',_0x5c14('0x7a'),{'FaxAccountId':_[_0x5c14('0x65')](_0x4751c3[_0x5c14('0x56')])?undefined:_0x4751c3[_0x5c14('0x56')][_0x5c14('0x7b')],'path':_['isNil'](_0x37392a)?undefined:util[_0x5c14('0x5d')](_0x5c14('0x7c'),_0x37392a['basename']),'fax':_['isNil'](_0xa5526f[_0x5c14('0x5b')])?undefined:_0xa5526f['fax'],'AttachmentId':_0xa5526f['AttachmentId']},client9002);})[_0x5c14('0x22')](respondWithResult(_0x4e83a6,0xc9))[_0x5c14('0x2a')](handleError(_0x4e83a6,null));};exports[_0x5c14('0x7d')]=function(_0x1769a2,_0x5c60d9){var _0x1c1e1c=path[_0x5c14('0x7e')](config[_0x5c14('0x7f')],_0x5c14('0x80'),_0x5c14('0x81'),_0x5c14('0x82'));return db[_0x5c14('0x3b')][_0x5c14('0x55')]({'where':{'id':_0x1769a2[_0x5c14('0x57')]['id']},'include':[{'model':db[_0x5c14('0x78')],'as':_0x5c14('0x78')}]})[_0x5c14('0x22')](handleEntityNotFound(_0x5c60d9,null))[_0x5c14('0x22')](function(_0x26012e){if(_0x26012e){return _0x5c60d9['download'](path[_0x5c14('0x7e')](_0x1c1e1c,_0x26012e[_0x5c14('0x78')]['basename']));}})[_0x5c14('0x2a')](handleError(_0x5c60d9,null));};