5c44cbe62cfcc0bf9357e1d46087adb443d88879
[motion2.git] / server / api / plugin / plugin.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 _0x488d=['status','end','json','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','get','Plugins','UserProfileResource','error','stack','name','send','index','map','Plugin','type','key','model','query','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filters','filter','merge','VIRTUAL','options','includeAll','include','rows','show','params','keys','find','catch','download','format','%s.zip','basename','createWriteStream','zip','warning','code','ENOENT','Sequelize','Error','pipe','**/*','join','root','server/files/plugins','dirname','node_modules/**/*','attachments/**/*','finalize','existsSync','unlinkSync','info','Download\x20completed','upload','file','filename','Plugin\x20upload\x20filepath:\x20%s','Plugin\x20upload\x20destination:\x20%s','chmodSync','0777','Invalid\x20plugin\x20structure','lstatSync','isFile','isDirectory','readdirSync','some','manifest.json','parse','undefined','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','version','parameters','views','Invalid\x20manifest:\x20views\x20missing','Invalid\x20manifest:\x20no\x20view\x20specified','scriptName','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','Invalid\x20manifest:\x20invalid\x20type','description','icon','html','admin','Warning:\x20admin\x20view\x20not\x20specified','agent','plugins','Warning:\x20agent\x20view\x20not\x20specified','script','test','create','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','autoAssociation','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','delete','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','encoding','%s%s','headers','content-length','content-type','endsWith','statusCode','webhookPost','port','method','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','querystring','papaparse','extract-zip','archiver','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','socket.io-emitter','./plugin.socket','register','sendStatus'];(function(_0x1d1779,_0x284147){var _0x2377e9=function(_0x299f6f){while(--_0x299f6f){_0x1d1779['push'](_0x1d1779['shift']());}};_0x2377e9(++_0x284147);}(_0x488d,0x1df));var _0xd488=function(_0x557f4a,_0x4bfe60){_0x557f4a=_0x557f4a-0x0;var _0x19c609=_0x488d[_0x557f4a];return _0x19c609;};'use strict';var pdf=require(_0xd488('0x0'));var emlformat=require(_0xd488('0x1'));var rimraf=require(_0xd488('0x2'));var zipdir=require(_0xd488('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0xd488('0x4'));var moment=require(_0xd488('0x5'));var BPromise=require(_0xd488('0x6'));var Mustache=require(_0xd488('0x7'));var util=require(_0xd488('0x8'));var path=require(_0xd488('0x9'));var sox=require(_0xd488('0xa'));var csv=require(_0xd488('0xb'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xd488('0xc'));var squel=require(_0xd488('0xd'));var crypto=require(_0xd488('0xe'));var jsforce=require(_0xd488('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xd488('0x10'));var Papa=require(_0xd488('0x11'));var extract=require(_0xd488('0x12'));var rimraf=require(_0xd488('0x2'));var archiver=require(_0xd488('0x13'));var Redis=require(_0xd488('0x14'));var authService=require(_0xd488('0x15'));var qs=require('../../components/parsers/qs');var as=require(_0xd488('0x16'));var hardwareService=require(_0xd488('0x17'));var logger=require(_0xd488('0x18'))(_0xd488('0x19'));var utils=require(_0xd488('0x1a'));var config=require(_0xd488('0x1b'));var db=require(_0xd488('0x1c'))['db'];config[_0xd488('0x1d')]=_['defaults'](config[_0xd488('0x1d')],{'host':'localhost','port':0x18eb});var socket=require(_0xd488('0x1e'))(new Redis(config[_0xd488('0x1d')]));require(_0xd488('0x1f'))[_0xd488('0x20')](socket);function respondWithStatusCode(_0x5af518,_0x40321c){_0x40321c=_0x40321c||0xcc;return function(_0x20d7dc){if(_0x20d7dc){return _0x5af518[_0xd488('0x21')](_0x40321c);}return _0x5af518[_0xd488('0x22')](_0x40321c)[_0xd488('0x23')]();};}function respondWithResult(_0x288216,_0x200694){_0x200694=_0x200694||0xc8;return function(_0x442215){if(_0x442215){return _0x288216[_0xd488('0x22')](_0x200694)[_0xd488('0x24')](_0x442215);}};}function respondWithFilteredResult(_0x49d642,_0x302b9f){return function(_0x59e1e2){if(_0x59e1e2){var _0x588474=_0x59e1e2[_0xd488('0x25')],_0x333d9d=_0x302b9f[_0xd488('0x26')],_0x1a5ef6=_0x302b9f[_0xd488('0x26')]+_0x302b9f[_0xd488('0x27')],_0x128570;if(_0x1a5ef6>=_0x588474){_0x1a5ef6=_0x588474;_0x128570=0xc8;}else{_0x128570=0xce;}_0x49d642[_0xd488('0x22')](_0x128570);return _0x49d642[_0xd488('0x28')](_0xd488('0x29'),_0x333d9d+'-'+_0x1a5ef6+'/'+_0x588474)['json'](_0x59e1e2);}return null;};}function patchUpdates(_0x510688){return function(_0x2a085c){try{jsonpatch[_0xd488('0x2a')](_0x2a085c,_0x510688,!![]);}catch(_0x466570){return BPromise['reject'](_0x466570);}return _0x2a085c[_0xd488('0x2b')]();};}function saveUpdates(_0x51b059,_0x552a79){return function(_0x55bad4){if(_0x55bad4){return _0x55bad4[_0xd488('0x2c')](_0x51b059)[_0xd488('0x2d')](function(_0x438b4a){return _0x438b4a;});}return null;};}function removeEntity(_0x5a2350,_0x5c5bab){return function(_0x1124ea){if(_0x1124ea){return _0x1124ea[_0xd488('0x2e')]()[_0xd488('0x2d')](function(){var _0x2502c1=_0x1124ea[_0xd488('0x2f')]({'plain':!![]});var _0x35b901=_0xd488('0x30');return db[_0xd488('0x31')][_0xd488('0x2e')]({'where':{'type':_0x35b901,'resourceId':_0x2502c1['id']}})[_0xd488('0x2d')](function(){return _0x1124ea;});})[_0xd488('0x2d')](function(){_0x5a2350[_0xd488('0x22')](0xcc)[_0xd488('0x23')]();});}};}function handleEntityNotFound(_0x45a980,_0x1fc037){return function(_0x570f55){if(!_0x570f55){_0x45a980[_0xd488('0x21')](0x194);}return _0x570f55;};}function handleError(_0x888de6,_0x4b1f80){_0x4b1f80=_0x4b1f80||0x1f4;return function(_0x241568){logger[_0xd488('0x32')](_0x241568[_0xd488('0x33')]);if(_0x241568[_0xd488('0x34')]){delete _0x241568[_0xd488('0x34')];}_0x888de6['status'](_0x4b1f80)[_0xd488('0x35')](_0x241568);};}exports[_0xd488('0x36')]=function(_0x3edeca,_0x7b1acc){var _0x45bbe0={},_0x126fac={},_0x1aa0d8={'count':0x0,'rows':[]};var _0x159eed=_[_0xd488('0x37')](db[_0xd488('0x38')]['rawAttributes'],function(_0x49bb9b){return{'name':_0x49bb9b['fieldName'],'type':_0x49bb9b[_0xd488('0x39')][_0xd488('0x3a')]};});_0x126fac[_0xd488('0x3b')]=_[_0xd488('0x37')](_0x159eed,_0xd488('0x34'));_0x126fac[_0xd488('0x3c')]=_['keys'](_0x3edeca[_0xd488('0x3c')]);_0x126fac['filters']=_[_0xd488('0x3d')](_0x126fac[_0xd488('0x3b')],_0x126fac['query']);_0x45bbe0[_0xd488('0x3e')]=_[_0xd488('0x3d')](_0x126fac[_0xd488('0x3b')],qs[_0xd488('0x3f')](_0x3edeca['query'][_0xd488('0x3f')]));_0x45bbe0['attributes']=_0x45bbe0[_0xd488('0x3e')][_0xd488('0x40')]?_0x45bbe0['attributes']:_0x126fac['model'];if(!_0x3edeca[_0xd488('0x3c')][_0xd488('0x41')]('nolimit')){_0x45bbe0[_0xd488('0x27')]=qs['limit'](_0x3edeca[_0xd488('0x3c')][_0xd488('0x27')]);_0x45bbe0[_0xd488('0x26')]=qs['offset'](_0x3edeca[_0xd488('0x3c')][_0xd488('0x26')]);}_0x45bbe0[_0xd488('0x42')]=qs[_0xd488('0x43')](_0x3edeca[_0xd488('0x3c')][_0xd488('0x43')]);_0x45bbe0[_0xd488('0x44')]=qs['filters'](_[_0xd488('0x45')](_0x3edeca[_0xd488('0x3c')],_0x126fac[_0xd488('0x46')]),_0x159eed);if(_0x3edeca[_0xd488('0x3c')][_0xd488('0x47')]){_0x45bbe0[_0xd488('0x44')]=_[_0xd488('0x48')](_0x45bbe0[_0xd488('0x44')],{'$or':_[_0xd488('0x37')](_0x159eed,function(_0x5ee85e){if(_0x5ee85e['type']!==_0xd488('0x49')){var _0x4e8f7b={};_0x4e8f7b[_0x5ee85e['name']]={'$like':'%'+_0x3edeca[_0xd488('0x3c')][_0xd488('0x47')]+'%'};return _0x4e8f7b;}})});}_0x45bbe0=_[_0xd488('0x48')]({},_0x45bbe0,_0x3edeca[_0xd488('0x4a')]);var _0x19f24a={'where':_0x45bbe0['where']};return db[_0xd488('0x38')][_0xd488('0x25')](_0x19f24a)[_0xd488('0x2d')](function(_0x51eff7){_0x1aa0d8[_0xd488('0x25')]=_0x51eff7;if(_0x3edeca[_0xd488('0x3c')][_0xd488('0x4b')]){_0x45bbe0[_0xd488('0x4c')]=[{'all':!![]}];}return db[_0xd488('0x38')]['findAll'](_0x45bbe0);})[_0xd488('0x2d')](function(_0x756ff){_0x1aa0d8[_0xd488('0x4d')]=_0x756ff;return _0x1aa0d8;})['then'](respondWithFilteredResult(_0x7b1acc,_0x45bbe0))['catch'](handleError(_0x7b1acc,null));};exports[_0xd488('0x4e')]=function(_0x3d1367,_0x23f9c9){var _0x49fdf9={'raw':!![],'where':{'id':_0x3d1367[_0xd488('0x4f')]['id']}},_0x5b94db={};_0x5b94db[_0xd488('0x3b')]=_[_0xd488('0x50')](db[_0xd488('0x38')]['rawAttributes']);_0x5b94db[_0xd488('0x3c')]=_[_0xd488('0x50')](_0x3d1367[_0xd488('0x3c')]);_0x5b94db['filters']=_['intersection'](_0x5b94db[_0xd488('0x3b')],_0x5b94db[_0xd488('0x3c')]);_0x49fdf9[_0xd488('0x3e')]=_['intersection'](_0x5b94db[_0xd488('0x3b')],qs[_0xd488('0x3f')](_0x3d1367[_0xd488('0x3c')][_0xd488('0x3f')]));_0x49fdf9['attributes']=_0x49fdf9['attributes'][_0xd488('0x40')]?_0x49fdf9['attributes']:_0x5b94db[_0xd488('0x3b')];if(_0x3d1367[_0xd488('0x3c')][_0xd488('0x4b')]){_0x49fdf9[_0xd488('0x4c')]=[{'all':!![]}];}_0x49fdf9=_[_0xd488('0x48')]({},_0x49fdf9,_0x3d1367[_0xd488('0x4a')]);return db[_0xd488('0x38')][_0xd488('0x51')](_0x49fdf9)['then'](handleEntityNotFound(_0x23f9c9,null))['then'](respondWithResult(_0x23f9c9,null))[_0xd488('0x52')](handleError(_0x23f9c9,null));};exports[_0xd488('0x53')]=function(_0x39a2d0,_0x502e7b,_0x664d3){return db[_0xd488('0x38')][_0xd488('0x51')]({'where':{'id':_0x39a2d0['params']['id']},'attributes':[_0xd488('0x34'),_0xd488('0x9')],'raw':!![]})[_0xd488('0x2d')](handleEntityNotFound(_0x502e7b,null))[_0xd488('0x2d')](function(_0x3e08da){if(_0x3e08da){var _0x289c9f=path['join'](config['root'],'server/files/plugins',util[_0xd488('0x54')](_0xd488('0x55'),path[_0xd488('0x56')](_0x3e08da['path'])));var _0x26f1ea=fs[_0xd488('0x57')](_0x289c9f);var _0x1fd24f=archiver(_0xd488('0x58'),{'zlib':{'level':0x9}});_0x1fd24f['on'](_0xd488('0x59'),function(_0x3625ae){if(_0x3625ae[_0xd488('0x5a')]===_0xd488('0x5b')){logger[_0xd488('0x32')](_0x3625ae);}else{throw new db['Sequelize']['Error']('Error\x20while\x20generating\x20the\x20zip\x20archive');}});_0x1fd24f['on'](_0xd488('0x32'),function(_0x3d26f1){throw new db[(_0xd488('0x5c'))][(_0xd488('0x5d'))]('Error\x20while\x20generating\x20the\x20zip\x20archive');});_0x1fd24f[_0xd488('0x5e')](_0x26f1ea);_0x1fd24f['glob'](_0xd488('0x5f'),{'cwd':path[_0xd488('0x60')](config[_0xd488('0x61')],_0xd488('0x62'),path[_0xd488('0x63')](_0x3e08da['path'])),'ignore':[path[_0xd488('0x60')](path[_0xd488('0x56')](_0x3e08da['path']),_0xd488('0x64')),path[_0xd488('0x60')](path[_0xd488('0x56')](_0x3e08da[_0xd488('0x9')]),_0xd488('0x65'))],'nodir':!![]})[_0xd488('0x66')]();_0x26f1ea['on']('close',function(){if(!fs[_0xd488('0x67')](_0x289c9f)){throw new db['Sequelize']['Error']('Plugin\x20not\x20found');}return _0x502e7b[_0xd488('0x53')](_0x289c9f,util[_0xd488('0x54')](_0xd488('0x55'),path[_0xd488('0x56')](_0x3e08da[_0xd488('0x9')])),function(_0x235527){if(_0x235527){throw new db[(_0xd488('0x5c'))][(_0xd488('0x5d'))]('Error\x20while\x20downloading\x20the\x20plugin');}fs[_0xd488('0x68')](_0x289c9f);logger[_0xd488('0x69')](_0xd488('0x6a'));logger[_0xd488('0x69')]('Temporary\x20file\x20removed');});});}return null;})['catch'](handleError(_0x502e7b,null));};exports[_0xd488('0x6b')]=function(_0x5e4a04,_0x5e518f,_0x3ee4fa){var _0x164f54=path[_0xd488('0x56')](_0x5e4a04[_0xd488('0x6c')][_0xd488('0x6d')],path['extname'](_0x5e4a04[_0xd488('0x6c')]['filename']));var _0x1aaee7=path[_0xd488('0x60')](config[_0xd488('0x61')],_0xd488('0x62'),_0x5e4a04[_0xd488('0x6c')][_0xd488('0x6d')]);var _0x5282da=path[_0xd488('0x60')](config[_0xd488('0x61')],_0xd488('0x62'),_0x164f54);logger[_0xd488('0x69')](_0xd488('0x6e'),_0x1aaee7);logger[_0xd488('0x69')](_0xd488('0x6f'),_0x5282da);try{fs[_0xd488('0x70')](_0x1aaee7,parseInt(_0xd488('0x71'),0x8));extract(_0x1aaee7,{'dir':_0x5282da},function(_0x1d932a){if(_0x1d932a){logger['error'](_0x1d932a);handleError(_0x1d932a,!![]);};var _0x1d2490=fs['readdirSync'](_0x5282da);if(_0x1d2490[_0xd488('0x40')]>0x1){removeReferences(_0x1aaee7,_0x5282da);logger['error'](_0xd488('0x72'));return _0x3ee4fa(new Error('Invalid\x20plugin\x20structure'));}var _0x317c04=fs[_0xd488('0x73')](path[_0xd488('0x60')](_0x5282da,_0x1d2490[0x0]));if(_0x317c04[_0xd488('0x74')]()){removeReferences(_0x1aaee7,_0x5282da);logger[_0xd488('0x32')](_0xd488('0x72'));return _0x3ee4fa(new Error(_0xd488('0x72')));}if(_0x317c04[_0xd488('0x75')]()){var _0x4956a2=fs[_0xd488('0x76')](path[_0xd488('0x60')](_0x5282da,_0x1d2490[0x0]));if(_0x4956a2['length']===0x0){removeReferences(_0x1aaee7,_0x5282da);logger[_0xd488('0x32')](_0xd488('0x72'));return _0x3ee4fa(new Error(_0xd488('0x72')));}var _0x208583=_0x4956a2[_0xd488('0x77')](function(_0x555804){return _0x555804===_0xd488('0x78');});if(!_0x208583){return _0x3ee4fa(new Error('Plugin\x20manifest\x20missing'));}var _0x3d7955=fs['readFileSync'](path['join'](_0x5282da,_0x1d2490[0x0],_0xd488('0x78')));var _0x21c388=JSON[_0xd488('0x79')](_0x3d7955);if(_0xd488('0x7a')==typeof _0x21c388[_0xd488('0x34')]){return _0x3ee4fa(new Error(_0xd488('0x7b')));}if(_0xd488('0x7a')==typeof _0x21c388[_0xd488('0x39')]){return _0x3ee4fa(new Error(_0xd488('0x7c')));}if(_0xd488('0x7a')==typeof _0x21c388[_0xd488('0x7d')]){return _0x3ee4fa(new Error('Invalid\x20manifest:\x20version\x20not\x20specified'));}if(_0xd488('0x7a')==typeof _0x21c388[_0xd488('0x7e')]){return _0x3ee4fa(new Error('Invalid\x20manifest:\x20parameters\x20missing'));}if(_0x21c388['type']==='html'){if(_0xd488('0x7a')==typeof _0x21c388[_0xd488('0x7e')][_0xd488('0x7f')]){return _0x3ee4fa(new Error(_0xd488('0x80')));}if(_0xd488('0x7a')==typeof _0x21c388[_0xd488('0x7e')][_0xd488('0x7f')]['admin']&&_0xd488('0x7a')==typeof _0x21c388[_0xd488('0x7e')][_0xd488('0x7f')]['agent']){return _0x3ee4fa(new Error(_0xd488('0x81')));}}else if(_0x21c388[_0xd488('0x39')]==='script'){if(_0xd488('0x7a')==typeof _0x21c388[_0xd488('0x7e')][_0xd488('0x82')]){return _0x3ee4fa(new Error('Invalid\x20manifest:\x20script\x20name\x20missing'));}if(_0xd488('0x7a')==typeof _0x21c388[_0xd488('0x7e')][_0xd488('0x83')]){return _0x3ee4fa(new Error(_0xd488('0x84')));}}else{return _0x3ee4fa(new Error(_0xd488('0x85')));}var _0xd86993=_0x21c388[_0xd488('0x34')];var _0x1b8948=_0x21c388[_0xd488('0x86')];var _0x12d4b7=_0x21c388[_0xd488('0x39')];var _0x477db6=_0x21c388['sidebar']?_0x21c388['sidebar']:'always';var _0x2221d8=_0x21c388[_0xd488('0x87')]?_0x21c388[_0xd488('0x87')]:'icon-apps';var _0x308e17='';var _0x47ce9c='';var _0x1a4d69='';var _0x32c604='';var _0x422fcb=_0x21c388['version'];if(_0x12d4b7===_0xd488('0x88')){if(_0xd488('0x7a')!=typeof _0x21c388[_0xd488('0x7e')][_0xd488('0x7f')][_0xd488('0x89')]){var _0x29aa75=_0x21c388[_0xd488('0x7e')][_0xd488('0x7f')][_0xd488('0x89')];if(!/^(f|ht)tps?:\/\//i['test'](_0x29aa75)){_0x308e17=path[_0xd488('0x60')]('plugins',_0x164f54,_0x1d2490[0x0],_0x29aa75);}else{_0x308e17=_0x29aa75;}}else{logger[_0xd488('0x69')](_0xd488('0x8a'));}if(_0xd488('0x7a')!=typeof _0x21c388['parameters']['views'][_0xd488('0x8b')]){var _0x218237=_0x21c388[_0xd488('0x7e')][_0xd488('0x7f')][_0xd488('0x8b')];if(!/^(f|ht)tps?:\/\//i['test'](_0x218237)){_0x47ce9c=path['join'](_0xd488('0x8c'),_0x164f54,_0x1d2490[0x0],_0x218237);}else{_0x47ce9c=_0x218237;}}else{logger[_0xd488('0x69')](_0xd488('0x8d'));}}else if(_0x12d4b7===_0xd488('0x8e')){_0x1a4d69=_0x21c388[_0xd488('0x7e')][_0xd488('0x82')];_0x32c604=_0x21c388[_0xd488('0x7e')][_0xd488('0x83')];if(_0xd488('0x7a')!=typeof _0x21c388[_0xd488('0x7e')][_0xd488('0x7f')]){if(_0xd488('0x7a')!=typeof _0x21c388[_0xd488('0x7e')]['views'][_0xd488('0x89')]){var _0x29aa75=_0x21c388['parameters'][_0xd488('0x7f')][_0xd488('0x89')];if(!/^(f|ht)tps?:\/\//i[_0xd488('0x8f')](_0x29aa75)){_0x308e17=path['join']('plugins',_0x164f54,_0x1d2490[0x0],_0x29aa75);}else{_0x308e17=_0x29aa75;}}if(_0xd488('0x7a')!=typeof _0x21c388['parameters']['views'][_0xd488('0x8b')]){var _0x218237=_0x21c388[_0xd488('0x7e')][_0xd488('0x7f')][_0xd488('0x8b')];if(!/^(f|ht)tps?:\/\//i[_0xd488('0x8f')](_0x218237)){_0x47ce9c=path[_0xd488('0x60')]('plugins',_0x164f54,_0x1d2490[0x0],_0x218237);}else{_0x47ce9c=_0x218237;}}}}var _0x5676ec={'name':_0xd86993,'description':_0x1b8948,'path':path['join'](_0x164f54,_0x1d2490[0x0]),'type':_0x12d4b7,'sidebar':_0x477db6,'icon':_0x2221d8,'adminUrl':_0x308e17,'agentUrl':_0x47ce9c,'scriptName':_0x1a4d69,'scriptPath':_0x32c604,'version':_0x422fcb};removeReferences(_0x1aaee7,null);return db[_0xd488('0x38')][_0xd488('0x90')](_0x5676ec)[_0xd488('0x2d')](function(_0x1d89cf){var _0x17ed7d={'role':_0x5e4a04[_0xd488('0x91')]['role'],'userProfileId':_0x5e4a04['body'][_0xd488('0x92')]};if(!_0x17ed7d)throw new Error(_0xd488('0x93'));if(_0x17ed7d[_0xd488('0x94')]===_0xd488('0x95')){var _0x3909cb=_0x1d89cf[_0xd488('0x2f')]({'plain':!![]});return db[_0xd488('0x96')]['find']({'where':{'name':_0xd488('0x30'),'userProfileId':_0x17ed7d[_0xd488('0x92')]},'raw':!![]})['then'](function(_0x2f6f17){if(_0x2f6f17&&_0x2f6f17[_0xd488('0x97')]===0x0){return db[_0xd488('0x31')][_0xd488('0x90')]({'name':_0x3909cb[_0xd488('0x34')],'resourceId':_0x3909cb['id'],'type':_0x2f6f17[_0xd488('0x34')],'sectionId':_0x2f6f17['id']},{})[_0xd488('0x2d')](function(){return _0x1d89cf;});}else{return _0x1d89cf;}})[_0xd488('0x52')](function(_0x3359b9){logger[_0xd488('0x32')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3359b9);throw _0x3359b9;});}return _0x1d89cf;})[_0xd488('0x2d')](respondWithResult(_0x5e518f,null))[_0xd488('0x52')](handleError(_0x5e518f,null));}});}catch(_0x493c4d){_0x5e518f[_0xd488('0x22')](0x1f4)[_0xd488('0x35')](_0x493c4d);}};function removeReferences(_0x21c39c,_0x42b08b){try{if(_0x21c39c){fs['unlinkSync'](_0x21c39c);logger[_0xd488('0x69')](_0xd488('0x98'));}if(_0x42b08b){rimraf(_0x42b08b,function(){});logger['info'](_0xd488('0x99'));}}catch(_0x43300d){logger[_0xd488('0x32')](_0x43300d);}}exports[_0xd488('0x2c')]=function(_0x1d417e,_0x299f8a,_0x63c3e){return db[_0xd488('0x38')]['find']({'where':{'id':_0x1d417e['params']['id']}})['then'](handleEntityNotFound(_0x299f8a,null))[_0xd488('0x2d')](saveUpdates(_0x1d417e[_0xd488('0x91')],null))['then'](respondWithResult(_0x299f8a,null))['catch'](handleError(_0x299f8a,null));};exports[_0xd488('0x9a')]=function(_0xb2b68e,_0x466168,_0x4d1a17){return db[_0xd488('0x38')][_0xd488('0x51')]({'where':{'id':_0xb2b68e[_0xd488('0x4f')]['id']}})[_0xd488('0x2d')](function(_0x29974d){if(_0x29974d){return _0x29974d[_0xd488('0x2e')]();}})[_0xd488('0x2d')](function(_0x2b649a){rimraf(path[_0xd488('0x60')](config[_0xd488('0x61')],_0xd488('0x62'),path[_0xd488('0x63')](_0x2b649a[_0xd488('0x9')])),function(){});return _0x2b649a;})['then'](handleEntityNotFound(_0x466168,null))[_0xd488('0x2d')](respondWithStatusCode(_0x466168,null))['catch'](handleError(_0x466168,null));};exports[_0xd488('0x9b')]=function(_0x250f95,_0x365b47,_0x168166){return BPromise[_0xd488('0x9c')]()[_0xd488('0x2d')](function(){if(!_0x250f95[_0xd488('0x3c')][_0xd488('0x9')]){throw new Error(_0xd488('0x9d'));}if(!_0x250f95[_0xd488('0x3c')]['port']){throw new Error(_0xd488('0x9e'));}var _0xba8c81=_0x250f95[_0xd488('0x3c')][_0xd488('0x9f')]?_0x250f95['query'][_0xd488('0x9f')]+':'+_0x250f95[_0xd488('0x3c')]['port']:_0xd488('0xa0')+_0x250f95['query']['port'];var _0x4a4684=_0x250f95[_0xd488('0x3c')][_0xd488('0x24')]?_0x250f95['query'][_0xd488('0x24')]:!![];var _0x2776ac=_0x250f95['query'][_0xd488('0xa1')]?_0x250f95[_0xd488('0x3c')][_0xd488('0xa1')]:null;var _0x3bb707={'method':_0x250f95['method'],'uri':util[_0xd488('0x54')](_0xd488('0xa2'),_0xba8c81,_0x250f95[_0xd488('0x3c')][_0xd488('0x9')]),'json':_0x4a4684,'resolveWithFullResponse':!![],'encoding':_0x2776ac,'qs':_0x250f95[_0xd488('0x3c')]};if(_0x250f95[_0xd488('0xa3')]){_0x3bb707[_0xd488('0xa3')]=_0x250f95[_0xd488('0xa3')];if(_0x3bb707[_0xd488('0xa3')][_0xd488('0xa4')]){delete _0x3bb707[_0xd488('0xa3')][_0xd488('0xa4')];}}if(_0x3bb707[_0xd488('0xa3')]['content-type']){delete _0x3bb707[_0xd488('0xa3')][_0xd488('0xa5')];}return rp(_0x3bb707);})[_0xd488('0x2d')](function(_0x4018f1){if(_0x4018f1){_0x365b47[_0xd488('0x28')](_0x4018f1[_0xd488('0xa3')]);logger[_0xd488('0x69')](_0x4018f1['body']);if(_[_0xd488('0xa6')](_0x250f95[_0xd488('0x3c')]['path'],_0xd488('0x53'))&&_0x4018f1[_0xd488('0xa7')]==0x1f4){return _0x365b47[_0xd488('0x21')](_0x4018f1[_0xd488('0xa7')]);}else{return _0x365b47[_0xd488('0x22')](_0x4018f1['statusCode'])['send'](_0x4018f1[_0xd488('0x91')]);}}else{return _0x365b47[_0xd488('0x21')](0xc8);}})[_0xd488('0x52')](handleError(_0x365b47,null));};exports[_0xd488('0xa8')]=function(_0x3bc584,_0x2405cc,_0x3d5f9f){return BPromise[_0xd488('0x9c')]()[_0xd488('0x2d')](function(){if(!_0x3bc584[_0xd488('0x3c')][_0xd488('0x9')]){throw new Error(_0xd488('0x9d'));}if(!_0x3bc584[_0xd488('0x3c')][_0xd488('0xa9')]){throw new Error(_0xd488('0x9e'));}var _0x48fd51=_0x3bc584['query'][_0xd488('0x9f')]?_0x3bc584[_0xd488('0x3c')]['hostname']+':'+_0x3bc584[_0xd488('0x3c')]['port']:_0xd488('0xa0')+_0x3bc584[_0xd488('0x3c')]['port'];var _0x56c66b=_0x3bc584['query']['json']?_0x3bc584[_0xd488('0x3c')]['json']:!![];var _0x126946=_0x3bc584[_0xd488('0x3c')][_0xd488('0xa1')]?_0x3bc584[_0xd488('0x3c')]['encoding']:null;var _0x1ffbcf={'method':_0x3bc584[_0xd488('0xaa')],'uri':util['format'](_0xd488('0xa2'),_0x48fd51,_0x3bc584[_0xd488('0x3c')][_0xd488('0x9')]),'json':_0x56c66b,'resolveWithFullResponse':!![],'encoding':_0x126946,'body':_0x3bc584[_0xd488('0x91')]};if(_0x3bc584[_0xd488('0xa3')]){_0x1ffbcf['headers']=_0x3bc584[_0xd488('0xa3')];if(_0x1ffbcf[_0xd488('0xa3')][_0xd488('0xa4')]){delete _0x1ffbcf['headers']['content-length'];}}if(_0x1ffbcf[_0xd488('0xa3')][_0xd488('0xa5')]){delete _0x1ffbcf[_0xd488('0xa3')][_0xd488('0xa5')];}return rp(_0x1ffbcf);})[_0xd488('0x2d')](function(_0x3d28ba){if(_0x3d28ba){_0x2405cc['set'](_0x3d28ba[_0xd488('0xa3')]);logger[_0xd488('0x69')](_0x3d28ba['body']);return _0x2405cc[_0xd488('0x22')](_0x3d28ba[_0xd488('0xa7')])[_0xd488('0x35')](_0x3d28ba[_0xd488('0x91')]);}else{return _0x2405cc['sendStatus'](0xc8);}})[_0xd488('0x52')](handleError(_0x2405cc,null));};